분류 전체보기 20

[Kotlin] Singleton 디자인 패턴 토막글 (왜 static 이 아닌 object 인가?)

1. SingletonIn software engineering, the singleton pattern is a software design pattern that restricts the instantiation of a class to a singular instance.소프트웨어 공학에서, 싱글톤 패턴이란 한 클래스의 인스턴스화를 단 하나의 인스턴스로 규제하는 소프트웨어 디자인 패턴이다. 위는 싱글톤 디자인 패턴의 위키피디아 정의이다. 쉽게 말해, 하나의 클래스는 하나의 인스턴스만 가져야 하는 것이 싱글톤 패턴이라는 거다. 2. Java Static그럼 우리 이번에는 위 관점에서, 아래 코드를 보고 Java 의 Static 키워드는 과연 Singleton 패턴에 부합하는지 생각해보자.class E..

코틀린 언어 2024.05.21

[알고리즘] 인사고과 프로그래머스 Lv.3 파이썬

코드: Algorithm_test/Python3/프로그래머스/3/152995. 인사고과/인사고과.py at main · ddalkyTokky/Algorithm_test · GitHub1. 정렬하자 자신보다 두 수의 합이 더 큰 친구들의 수를 세서 +1 을 하면 자신의 순위이다.  가장 먼저 들었던 생각은 정렬하자. 였다. 중간에 사실 스택을 써야하나? 라는 생각에 코드가 조금 꼬이긴 했는데, 결과적으론 잘 동작한다. (개념적으론 크게 다르지 않은 아이디어 였어서 작동하는거다. 고쳐야하긴 한다.)2. 앞 수 기준으로만 정렬그런데, 인센티브의 후보가 아닐 수 있는건, 나뿐만이 아니다. 다른 사람도 후보에서 탈락 되는 경우의 수가 있다. 1, 나를 제외한 나머지들을 앞 수 기준으로 정렬해서 뒷수만 비교해 나간..

[알고리즘] 호텔대실 프로그래머스 Lv.2 파이썬

코드: Algorithm_test/Python3/프로그래머스/2/155651. 호텔 대실 at main · ddalkyTokky/Algorithm_test · GitHub1. 큐를 활용하자가장 먼저 들었던 생각은 큐를 활용해서, 최대 큐의 크기를 정답으로 내놓으면 된다였다. 예를들어, 예약 시간이 a, b, c, d, e 순으로 있다고 해보자. (시작 시간 기준)수행 순서큐 상태a 가 큐에 들어간다.[a]b 들어가기 전, b 의 시작 시간 기준으로 큐 안에 있는 녀석들중 대실 시간이 끝난 녀석이 있는지 확인한다. (정리하는 시간까지 +10분) a의 시간이 아직 안 끝났다면, [a]a의 시간이 끝났다면, []b 를 넣는다.a의 시간이 아직 안 끝났다면, [a, b]a의 시간이 끝났다면, [b]c 도 마찬가..

[Kotlin] Property 토막글 (Spring boot Setter에 관한 고찰)

1. Kotlin 만의 특이한 생성자 선언Kotlin 에서는 아래와 같이 소괄호 안에, 즉 하나의 생성자 패턴으로써 프로퍼티를 파라미터로 받음과 동시에, 선언할 수 있다. 문제는!! 이렇게 선언된 프로퍼티들이 그냥 선언만 되고 끝나는 것이 아니라, 자동으로 Getter 와 Setter 를 할당 받는다는 데에 있다. (물론 val 로 선언된다면, Setter는 할당받지 않는다.)@Entityclass Reply ( @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") var member: Member? = null @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "t..

코틀린 언어 2024.05.17

[스파르타 코딩클럽] TODO 서버 개발 기획 문서

코드: https://github.com/ddalkyTokky/KotlinSpring_TODO_Backend1. USE CASE1. 파란색 원들은 로그인 없이도 가능한 작업, 보라색 원들은 로그인이 되어야만 가능한 작업이다.2. 할일 등록하기를 제외한 나머지 보라색 원들은 할일 상세 보기 작업을 전제로 수행되어야 한다.2. DBMS2-1. Tables1. Todo작성자의 이름을 불러오기 위해 member_id 를 FK로 삼고 있다.2. Reply원래 순수 ERD 대로라면, (member_id, todo_id) 복합키를 PK 삼아 테이블을 완성할 수 있을 것이다. 하지만, 실제 물리 DB에서는 Reply row들을 하나씩 구분해야할 필요가 있기에, (member_id, todo_id) 로만으로는 부족하다...

[스파르타 코딩클럽] 후위연산식과 계산기

최종 코드: https://github.com/spartaCoding-2-4/ch2.SoonYong0. 과제 정의 (두 수 연산 abstract_class Branch)1. 더하기, 빼기, 나누기, 곱하기 연산을 수행할 수 있는 Calculator 클래스를 만들것.2. 아래 연산 클래스들을 AbstractOperation라는 클래스명으로 만들어 사용하여 추상 클래스로 정의하고 Calculator 클래스의 내부 코드를 변경합니다.AddOperation(더하기)SubtractOperation(빼기)MultiplyOperation(곱하기)DivideOperation(나누기)간단한 두 수 연산으로 구현해서 달리 코드 설명이 필요없을 정도로 아주 간단한 구조로 이루어져있다.자세한 코드는 abstract_class..

[Kotlin] Any 타입과 MutableList

1. MutableListAny> 아무거나 넣을 수 있는 가변리스트The root of the Kotlin class hierarchy. Every Kotlin class has Any as a superclass.코틀린 클래스의 상속 뿌리입니다. 모든 코틀린 클래스는 Any 클래스를 슈퍼클래스로 갖습니다. 자, 설명부터가 대놓고 Java Object를 떠오르게 한다. 실제로 사용하는 방법도 여러가지인데, 오늘은 리스트에 아무 타입이나 넣어 쓸 수 있게 만들어보려고 한다.아주 간단하게 파이썬처럼 여러 타입을 넣을 수 있는 리스트를 만들 수 있다!!2. Any is Class 타입 판별문제는 기존의 방식대로 클래스를 판별할 수가 없다는 것인데,보다시피 ::class.java.simplen..

코틀린 언어 2024.04.24

[Kotlin] 각종 배열 및 리스트 Collection, List, Set, Map, Deque 개념정리

1. Arrays길게 설명하지 않겠다. 배열은 배열이다! 칸수가 정해져 있고, 타입도 정해져있는 그냥 순수 배열이다. 코틀린이라고 다르지 않다. 자세한 용법은 링크안의 공식 문서가 더 명확하다. 다만, 공식 문서에서도 하드웨어 사양등의 특별한 제약만 없다면 Collection을 쓸 것을 강조하는데, 이것이 바로 오늘의 메인 주제이다.2. Collection벌써부터 머리가 어지럽다.. 공식 문서를 차근차근 하나씩 따라가보자. 3. var ? val ?공식문서에 따르면, 모든 collection들은 가급적 val 로 선언되어야 한다! val로 선언된다고 해서, 콜렌션 내부의 요소를 바꿀 수 없는것이 아니라, 콜렉션의 재할당이 금지될뿐이다. 아래는 공식문서의 예시이다.요약하자면 콜렉션을 ..

코틀린 언어 2024.04.24

[서버 개발] 한국도메인 DNS 설정하기

도메인 처리가 완료된 페이지: https://golden.retriever.kro.kr/1. 한국도메인 회원가입https://xn--220b31d95hq8o.xn--3e0b707e/ 내도메인.한국 - 한글 무료 도메인 등록센터한글 무료 도메인 내도메인.한국, 웹포워딩, DNS 등 무료 도메인 기능 제공xn--220b31d95hq8o.xn--3e0b707e2. 원하는 도메인 키워드 검색 후 등록하기!!예시에서는 이미 본인이 등록해서 등록불가로 표시된다.3. 서버 IP 입력하기가장 많이 사용하는 세 개에 대해서만 설명하려 한다.3 - 1. 웹포워딩 (Redirect)http://redirect.retriever.kro.kr/ 입력한 주소로 리다이렉트된다. 이때, 리다이..

서버 개발 2024.04.23

[서버 개발] Live Server OpenSSL HTTPS

1. Live Server Extension 설치 후 실행 Extesion에 들어가서 LiveServer 검색후, 마우스 우클릭 후 Open with Live Server 또는 Go Live로 시작하면 된다.2. OpenSSL 설치2-1. OpenSSL 다운로드다운로드 후 압축을 풀고, 해당 경로를 꼭 기억해두자!!https://code.google.com/archive/p/openssl-for-windows/downloads Google Code Archive - Long-term storage for Google Code Project Hosting. code.google.com2-2. OpenSSL 경로 환경변수 등록3. OpenSSL로 인증서 만들기프로젝트 폴..

서버 개발 2024.04.19