반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

undefined

디자인 패턴(design pattern)에 대하여 본문

CS

디자인 패턴(design pattern)에 대하여

JavaScripter 2022. 10. 22. 15:23
반응형

소프트웨어의 재사용성과 호환성 그리고 유지보수성을 위함

 

원칙

객체지향적으로 설계되어야함

 

객체지향적이란?

  1. 하나의 클래스는 하나의 역할을 수행한다.
  2. 상속에는 열려있으나 수정에는 닫혀있다.
  3. 자식은 부모를 대체할 수 있어야 한다.
  4. 인터페이스가 분리되어 클래스는 최소한의 구현만 해야한다.
  5. 상위 모듈은 하위모듈에 의존적이면 안된다.

종류

  1. 생성 패턴 - 객체의 생성 방식을 결정한다
  2. 구조 패턴 - 객체간의 관계를 조직한다.
  3. 행위 패턴 - 객체의 행위를 조직, 관리한다.

어댑터 패턴

현재 진행중인 클라이언트에서 사용하지 못하는 클래스를 사용하기 위해 어댑터 패턴을 거치면서 변환시킨다.

 

방식 : 상속

특징 : 기존의 클라이언트는 바뀔 필요가 없다.

싱글톤 패턴

클래스가 하나의 메모리를 할당하고 그 메모리에 인스턴스를 생성한다.

 

하나의 객체만 사용하기 때문에 메모리 낭비를 막을 수 있다.

또한 싱글톤 패턴의 객체는 전역적이기 때문에 데이터를 공유하는데 용이하다.

 

하지만 하나의 인스턴스에서 너무 많은 일을 하거나 많은 데이터를 처리한다면 유지보수하는데 힘들고 테스트에도 용이하지 못할 수 있다.

템플릿 메소드 패턴

상황에 맞게 변경하거나 확장한다.

추상 클래스와 구현 클래스가 있다.

 

추상 클래스 : 핵심 로직을 메소드로 선언한다.

구현 클래스 : 메소드를 호출한다.

 

구현 클래스에서는 추상 클래스에서 선언 했던 메소드만 사용하기에 핵심 로직을 관리하기에 용이하다.

그러나 추상메소드가 많아 진다면 관리가 복잡해진다.

팩토리 메소드 패턴

객체의 생성을 다른 클래스에서 수행한다.

옵저버 패턴

상태를 변경하는 주체 객체와 상태의 변경을 알아야 하는 관찰 객체로 이루어져있다.

주체 객체의 상태가 변경되면 그 객체에 의존하고 있던 객체에 연락이 가고 정보가 갱신된다.

스트레티지 패턴

같은 동작을 하는 객체 끼리 묶어 캡슐화 한다.

새로운 로직을 수정할 때 효율적인 변경이 가능하다.

컴포지트 패턴

객체를 계층화 시켜 동일한 인터페이스에서 독립적으로 정의된 하위 객체들을 관리한다.

 

참고자료 : https://github.com/gyoogle/tech-interview-for-developer

반응형

'CS' 카테고리의 다른 글

사용자 로그인 인증 방법 알아보기 - React Authentication  (0) 2022.10.21
WEB CS 기술면접 대비 간단 정리  (0) 2022.10.20
MVC 아키텍쳐  (0) 2022.09.11
Test Driven Development (TDD)  (0) 2022.09.11
REST API  (0) 2022.09.08
Comments