본문 바로가기

전체 글43

[디자인 패턴] 생성패턴 - 빌더 생성패턴 - 빌더 이전 글 : 생성패턴 - 추상 팩토리 2023.05.24 - [Engineering/SW Design] - [디자인 패턴] 생성패턴 - 추상 팩토리 [디자인 패턴] 생성패턴 - 추상 팩토리 생성패턴 - 추상 팩토리 이전 글 : 생성패턴 - 팩토리 메서드 2023.05.22 - [Engineering/SW Design] - [디자인 패턴] 생성패턴 - 팩토리 메서드 [디자인 패턴] 생성패턴 - 팩토리 메서드 생성패턴 - 팩토리 메 skidrow6122.tistory.com 요약 복잡한 객체들을 단계별로 생성할 수 있도록 한다. 같은 제작 코드를 사용하여 객체의 다양한 유형들과 표현을 찍어 낼 수 있는 생성패턴이다. 즉, 동일한 프로세스를 거쳐 다양한 구성의 인스턴스를 만드는 방법이라고도 .. 2023. 5. 25.
[디자인 패턴] 생성패턴 - 추상 팩토리 생성패턴 - 추상 팩토리 이전 글 : 생성패턴 - 팩토리 메서드 2023.05.22 - [Engineering/SW Design] - [디자인 패턴] 생성패턴 - 팩토리 메서드 [디자인 패턴] 생성패턴 - 팩토리 메서드 생성패턴 - 팩토리 메서드 이전 글 : 디자인 패턴 개요 2023.05.19 - [Engineering/SW Design] - 디자인 패턴 개요 디자인 패턴 개요 디자인 패턴 이란? 디자인 패턴 SW 설계 과정에서 자주 발생하는 문제들에 skidrow6122.tistory.com 요약 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체의 조합을 만드는 인터페이스를 제공하는 생성패턴이다. 즉, 관련성 있는 여러 종류의 객체를 일관된 방식으로 생성하는 경우에 유용하다. 내부적으로 .. 2023. 5. 24.
[디자인 패턴] 생성패턴 - 팩토리 메서드 생성패턴 - 팩토리 메서드 이전 글 : 디자인 패턴 개요 2023.05.19 - [Engineering/SW Design] - 디자인 패턴 개요 디자인 패턴 개요 디자인 패턴 이란? 디자인 패턴 SW 설계 과정에서 자주 발생하는 문제들에 대한 전형적인 해결책이다. 이는 코드에서 반복되는 디자인 문제들을 해결하기 위해 미리 만들어진 코드의 붕어빵 틀 skidrow6122.tistory.com 요약 부모 클래스에서 객체들을 생성할 수 있는 인터페이스를 제공하지만, 자식 클래스들이 생성될 객체들의 유형을 변경할 수 있도록 하는 생성패턴이다. 객체를 생성할 때 어떤 클래스의 인스턴스를 만들지를 서브 클래스에서 결정하게 한다. 부모 추상 클래스는 인터페이스에만 의존하고, 실제로 어떤 구현 클래스를 호출할 지는 서.. 2023. 5. 22.
디자인 패턴 개요 디자인 패턴 이란? 디자인 패턴 SW 설계 과정에서 자주 발생하는 문제들에 대한 전형적인 해결책이다. 이는 코드에서 반복되는 디자인 문제들을 해결하기 위해 미리 만들어진 코드의 붕어빵 틀과 같은 frame을 제공한다. 다만, 디자인 패턴은 단지 frame 에 불과하며, skeleton code를 표준화된 라이브러리나 함수처럼 그대로 패턴 형태를 복붙 해넣는 형태로는 사용할 수 없다. 패턴은 재사용 할 수 있는 코드 조각이 아니라 특정 문제를 해결하는 방식을 알려주는 일반적인 개념이기 때문이다. 따라서 개발자나 설계자는 이러한 디자인 패턴의 다양한 세부 개념들을 적용하여 각자의 프로그램에 맞는 해결책을 구현할 수 있다. 일반적인 문제에 대한 일반적인 해결책이라는 점에서 디자인 패턴은 알고리즘과 유사하지만 .. 2023. 5. 19.
Companion object Companion object object Companion object 를 알아보기 전에 object 를 먼저 살펴보면, kotlin 에서는 object 키워드를 통해 객체를 별다른 정의 없이 싱글톤으로 구현을 지원한다. 즉, JAVA 에서는 클래스 내부에서 Static 객체로 한번만 할당해주는 코드가 Kotlin 에서는 class 키워드 대신 object 키워드를 사용 함으로서 마치 static 객체에 할당 하는 것처럼 자동으로 생성 해주는 것이다. object ServiceRepo { val allService = arrayListOf() fun getService() { // ... } } // 호출부 ServiceRepo.getService() ServiceRepo.allService.add(S.. 2023. 5. 18.
Constructor Constructor 개요 일반적으로 객체 지향 언어에서 사용하는 생성자는 클래스 내에서 객체를 생성하고 초기화 하기 위한 특별한 메서드를 의미한다. 객체의 기본 상태를 설정하는 공간이며, 일반적인 함수와는 다른 방식으로 클래스 객체가 인자를 전달받도록 한다. 즉, 인스턴스가 생성 될 때 디폴트로 호출되는 ‘인스턴스 초기화 메서드’ 라고 이해하면 쉽다. 따라서 인스턴스 변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행 되어야 할 루틴을 위해서도 사용 되기도 한다. Kotlin 의 Primary constructor Kotlin 의 클래스는 하나의 Primary constructor와 복수의 Secondary constructor를 가질 수 있다. Primary constructor는 cons.. 2023. 5. 16.
Interface VS Abstract? java, c# 등 OOP 기반 언어를 주로 사용할때 가장 중요한 것들 중 하나가 클래스, 메서드 간 상속 구조, 오버라이딩, 오버로딩을 적절히 활용하여 SW 아키텍처를 효율적으로 만드는 것이다. Kotlin은 Java 와 매우 흡사한 구조를 가지고 있지만 엄연히 용법은 다르다. Kotlin 기반의 Interface , abstract 의 specific 한 구현 예제를 언어 적응 차원에서복기 해본다. Interface 개요 SW 아키텍처에서 의존성 역전을 통한 아키텍처 경계 설정을 위해 자주 사용되는 패턴으로, 클래스, 함수, 변수의 틀을 지정한다. 즉, 구현 부분이 없게 틀을 만들어 여러 종류의 비슷한 형태의 오브젝트들을 만들 수 있도록 frame을 잡아 주는 역할을 한다. 단, 인터페이스의 생성자는.. 2023. 5. 14.
Exploration and Exploitation Action 을 선택할때의 기로. Exploitation 하고 말 것인가? Exploration 해볼 것인가? 이전 글 : 검색 - Search Technique 2022.06.13 - [Artificial Intelligence/Reinforcement Learning] - 검색 - Search Technique 검색 - Search Technique Experience를 얻기 위해 시행한 매우 다양한 trial에서 state 결과를 효과적으로 찾는 방법에 대해 알아보자 이전 글 : 모델결합 학습 [Artificial Intelligence/Reinforcement Learning] - 모델결합 학습 - Integrating Le skidrow6122.tistory.com Exploration VS E.. 2023. 5. 11.