Tech Interview/Design Pattern

Tech Interview/Design Pattern

[Design Pattern] 목차

순번 유형 01 디자인 패턴 디자인 패턴이란 SOLID 02 어댑터 패턴 (Adapter) 03 싱글톤 패턴 (Singleton) 04 템플릿 메소드 패턴 (Template Method) 05 팩토리 메소드 패턴 (Factory Method) 06 옵저버 패턴 (Observer) 07 스트래티지 패턴 (Strategy) 08 컴포지트 패턴 (Composite) 09 MVC 패턴 더보기 https://refactoring.guru/ko

Tech Interview/Design Pattern

[Design Pattern] MVC 패턴

✔️ MVC 패턴 MVC 패턴이란? 사용자 인터페이스, 데이터 및 논리 제어를 구현하는 패턴으로 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세 가지의 역할로 구분한 패턴 MVC의 각 컴포넌트 Model : 컨트롤러가 호출할 때, 요청에 맞는 역할을 수행 비즈니스 로직을 구현하는 영역으로 응용 프로그램에서 데이터를 처리하는 부분 DB에 연결하고 데이터를 추출하거나 저장, 삭제, 업데이트, 변환 등의 작업을 수행하며 상태의 변화가 있을 때 컨트롤러와 뷰에 통보해 후속 조치 명령을 받을 수 있도록 함 View : 컨트롤러로부터 받은 모델의 결과값을 가지고 사용자에게 출력할 화면을 생성 만들어진 화면을 웹브라우저에 전송하여 웹브라우저가 출력하게 함 Controller : 일종의 조정자 클라이언트에..

Tech Interview/Design Pattern

[Design Pattern] 컴포지트 패턴

✔️ 컴포지트 패턴 컴포지트 패턴(복합체 패턴)이란? 복합 객체를 구성하는 개별적인 객체들을 모두 동일한 방법으로 다룰 수 있게 하는 패턴 트리 구조를 가진 객체들을 다루는데 유용하며 각각의 객체를 독립적으로 처리할 수 있어 객체 간의 결합도를 낮추어 주므로 새로운 개별 객체나 복합 객체를 추가하더라도 클라이언트의 코드를 수정할 필요가 없음 컴포지트 패턴의 UML Component : 개별 객체와 복합 객체에 공통적인 메서드를 정의 Leaf : 개별 객체 Composite : Leaf 객체들로 이루어진 복합 객체로 자식들을 관리 더 나아가 Composite 클래스가 자식들을 관리하기 위해 메소드를 작성할 때 어떻게 작성하느냐에 따라 다른 목적을 추구할 수 있음 일관성 추구 방식 : 객체가 자식을 다루는 ..

Tech Interview/Design Pattern

[Design Pattern] 스트래티지 패턴

✔️ 스트래티지 패턴 스트래티지 패턴(전략 패턴)이란? 어떤 동작(행위)을 하는 로직을 정의하고, 이것들을 하나로 캡슐화해 관리하는 패턴 로직에 들어가는 행동을 클래스로 선언하고, 인터페이스와 연결하는 방식으로 구성 전략을 바꾸기 위해 새로운 로직을 추가하거나 변경할 때, 한 번에 효율적으로 변경이 가능하며 로직을 독립적으로 관리하는 것이 편해짐 전략 패턴의 UML Strategy : 외부에서 동일한 방식으로 알고리즘을 호출하는 방법을 명시 ConcreteStrategy : 스트래티지 패턴에서 명시한 알고리즘을 실제로 구현한 클래스 Context : 스트래티지 패턴을 이용하는 역할 필요에 따라 동적으로 구체적인 전략을 바꿀 수 있도록 setter 메서드를 제공

Tech Interview/Design Pattern

[Design Pattern] 옵저버 패턴

✔️ 옵저버 패턴 옵저버 패턴(관찰자/감시자 패턴)이란? 상태를 가지고 있는 주체 객체와 상태의 변경을 알아야 하는 관찰 객체가 있을 때 객체와의 관계를 맺고 끊는 상태 변경 정보를 관리하는 패턴 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가고, 자동으로 정보가 갱신되게 됨 1:1 또는 1:N 관계에서 서로의 정보를 주고 받는 규모가 클수록 복잡성이 커질 때 사용 예1) 유튜브 구독, 잡지 구독 등 예2) 안드로이드의 OnClickListener을 통해 버튼을 클릭했을 때 상태 변화를 알려주는 것 옵저버 패턴의 UML Subject : Observer 객체들을 관리하는 객체 구독자가 이벤트를 받을 주요 주제로서 해당 Subject의 특정 이벤트 변경 시 구독하고 있는 구독자들이 ..

Tech Interview/Design Pattern

[Design Pattern] 팩토리 메소드 패턴

✔️ 팩토리 메소드 패턴 팩토리 메소드 패턴이란? 객체를 만드는 부분을 서브 클래스로 분리해 처리하도록 캡슐화하는 패턴 생성하는 객체를 별도로 둔 후, 그 객체에 넘어오는 값에 따라서 다른 객체를 만들어내게 됨 객체의 생성 코드를 별도로 분리함으로써 객체 생성의 변화에 대비할 수 있음 팩토리 메소드 패턴의 UML Product : 팩토리 메서드로 생성될 객체의 공통 인터페이스 ConcreteProduct : 구체적으로 객체가 생성되는 클래스 Creator : 팩토리 메서드를 갖는 클래스 ConcreteCreator : 팩토리 메서드를 구현하는 클래스로 ConcreteProduct 객체를 생성

Tech Interview/Design Pattern

[Design Pattern] 템플릿 메소드 패턴

✔️ 템플릿 메소드 패턴 템플릿 메소드 패턴이란? 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴 즉, 동일한 기능을 상위 클래스에서 정의하면서 확장, 변화가 필요한 부분만 서브 클래스에서 구현하여 사용 로직을 단계 별로 나눠야 하는 상황에 적용하며, 단계 별로 나눈 로직들이 앞으로 수정될 가능성이 있을 경우 더 효율적 전체적으로 동일하면서 부분적으로는 다른 구문으로 구성된 메서드의 코드 중복을 최소화할 수 있음 클래스는 추상으로 만들고 자식들만 활용할 수 있도록 protected 선언을 해야 하며 단계를 진행하는 메소드는 수정이 불가능하도록 final 키워드를 추가해야 함 템플릿 메소드 패턴의 UML Abstra..

Tech Interview/Design Pattern

[Design Pattern] 싱글톤 패턴

✔️ 싱글톤 패턴 싱글톤 패턴이란? 애플리케이션이 시작될 때, 어떤 클래스가 최초 한 번만 메모리를 할당하고 해당 메모리에 인스턴스를 만들어 사용하는 패턴 이때 생성자가 여러 번 호출돼도, 실제로 new를 통해 생성되는 객체는 하나이며 최초로 생성된 이후에 호출된 생성자는 getInstance() 메서드를 통해 이미 생성한 객체를 반환시키도록 하는 것 인스턴스가 필요할 때, 똑같은 인스턴스를 만들지 않고 기존의 인스턴스를 활용하여 메모리 낭비를 방지하며 싱글톤으로 구현한 인스턴스는 전역이므로 다른 클래스의 인스턴스들이 데이터를 공유하는 것이 가능하므로 커넥션 풀, 스레드 풀, 디바이스 설정 객체 등에서 사용 주로 공통된 객체를 여러 개 생성해서 사용하는 경우나 절대적으로 인스턴스가 한 개만 존재하는 것을..

김깅긍
'Tech Interview/Design Pattern' 카테고리의 글 목록