디자인 패턴 3

제어의 역전(Inversion of Control, IoC) 파헤치기

Inversion of Control(IoC), 제어의 역전이라고도 번역되는 이 개념은 Dependency Injection(DI)에 대한 개념을 찾아보면 반드시 등장하는 개념입니다. 처음 접했을 땐 여러 블로그의 설명을 읽어도 확실하게 이해가 되지 않아서 사전적인 정의와 예시 코드 정도만 정리하고 넘어갔었는데 안드로이드의 DI 라이브러리인 Hilt에 대해 복습을 하던 중 IoC를 간단명료하게 설명해주는 유튜브 영상을 발견하여 스스로 IoC에 대해 다시 한 번 정리하고자 글을 작성합니다. 게임 엔진은 라이브러리가 아니라 왜 프레임워크로 분류하는 것이 적절한 지 IoC에 대한 개념을 함께 설명하는 2분도 안되는 짧은 영상인데, 이 영상에 대해 고마움을 표현하는 댓글들을 읽어보는 재미가 있습니다. 대충 과거..

Android 2022.07.06

Android Dependency Injection(DI, 의존성 주입) 정리

의존성 주입(Dependency injection, DI) 외부에서 하나의 객체가 다른 객체의 의존성을 제공하는 디자인 패턴 의존성(dependency): 클래스가 참조를 필요로 하는 다른 클래스를 의존성이라 한다. 주입(injection): 외부에서 객체를 생성해서 사용하려는 객체에게 전달하는 것 의존성 주입의 의도: 객체 생성과 사용의 관심을 분리하는 것 객체 사이의 결합도를 느슨하게 하고 의존 관계 역전 원칙과 단일 책임 원칙을 따르도록 하여 객체의 생성에 대한 부분을 객체의 사용(행위)와 분리하도록 한다. 단일 책임 원칙(Single Responsibility Principle, SRP) : 모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 한다. 의존 관계 역전 원칙(D..

Android 2022.03.21

[디자인 패턴] 반복자 패턴 (Iterator Pattern) with 코틀린

내부 표현부를 노출하지 않고 어떤 객체 집합에 속한 원소들을 순차적으로 접근할 수 있는 방법을 제공하는 패턴 반복자 패턴의 아이디어는 객체가 데이터를 저장하는 방법과 이 데이터를 순회하는 방법을 분리하는 것이다. (집합 객체 단순화) 구조 Iterator: 원소를 접근하고 순회하는 데 필요한 인터페이스를 제공한다. ConcreteIterator: Iterator에 정의된 인터페이스를 구현하는 클래스로, 순회 과정 중 집합 객체 내에서 현재 위치를 기억한다. Aggregate: Iterator 객체를 생성하는 인터페이스를 정의한다. (Aggreate는 '집합'이라는 뜻을 가지고 있음) ConcreteAggregate: 해당하는 ConcreteIterator의 인스턴스를 반환하는 Iterato..