자격증/정보처리기사

정보처리기사 1과목 소프트웨어 설계 (뒷목을 잡게 만드는 디자인 패턴 외우는 꿀팁)

ByeongJun 2023. 5. 3. 19:31
반응형

정보처리기사 시험 1과목 소프트웨어 설계에서

비전공자인 나의 뒷목을 잡을 만한 내용은 

 

[애플리케이션 설계] - [디자인 패턴] 부분이라고 생각한다.

 

혹시 나와 같은 사람이 이 글을 만난다면

조금이라도 도움이 되고싶다. 

 

'확실히 알아서 설명한다' 보다는 조심스럽게

내가 이해하려고 노력한 과정을 공유하고자 한다. 

 


디자인 패턴

  • 아키텍처 패턴이 디자인 패턴보다 상위 수준의 설계에 사용
  • 서브 시스템에 속하는 컴포넌트들과 그 관계를 설계하기 위한 참조 모델

 


생성 패턴 (Creational Pattern)

   - 기존 코드의 유연성과 재사용을 증가시키는 다양한 객체 생성 매커니즘들을 제공 

추상 팩토리
(Abstract Factory)
서로 연관, 의존하는 객체들을 그룹으로 생성해 추상적으로 표현
빌더
(Builder)
객체의 생성 과정과 표현 방법 분리 (동일한 객체 생성에도 서로 다른 결과)
팩토리 메소드
(Factory Method)
객체를 생성하기 위한 인터페이스를 정의하여 어떤 클래스가 인스턴스화 될 것인지
서브클래스가 결정하도록 하는 것 (Virtual-Constructor 패턴)
프로토타입
(Prototype)
원본 객체를 복사하는 방법
싱글톤
(Singleton)
하나의 객체를 여러 프로세스가 동시에 참조할 수 없음

 

 

구조 패턴 (Structural Pattern)

   - 객체들과 클래스들을 구조를 유연하고 효율적으로 유지하면서 더 큰 구조로 조립하는 방법을 설명

어댑터
(Adapter)
호환성이 없는 클래스 (인터페이스를 이용할 수 있도록 변환해주는 패턴)
브리지
(Bridge)
구현부에서 추상층을 분리하여 독립적으로 확장 및 다양성을 가지는 패턴
컴포지트
(Composite)
여러 객체를 가진 복합, 단일 객체를 구분 없이 다룰 때 사용하는 패턴
데코레이터
(Decorator)
상속을 사용하지 않고도 객체의 기능을 동적으로 확장해주는 패턴
퍼싸드
(Facade)
서브 클래스들의 기능을 간편하게 사용할 수 있도록 하는 패턴   ex) 리모컨
플라이웨이트
(Flyweight)
공유해서 사용함으로써 메모리를 절약하는 패턴
프록시
(Proxy)
접근이 어려운 객체를 연결해주는 인터페이스 역하을 수행하는 패턴

 

 

행동 패턴 (Behavioral Pattern)

   - 알고리즘들 및 객체 간의 책임 할당과 관련

책임 연쇄
(Chain of Responsibility)
한 객체가 처리하지 못하면 다음 객체로 넘어가는 패턴
커맨드
(Command)
요청에 사용되는 각종 명령어들을 추상, 객체 클래스로 분리하여 단순화함
인터프리터
(Interpreter)
언어에 문법 표현을 정의하는 패턴
반복자
(Iterator)
동일한 인터페이스를 사용하도록 하는 패턴
중재자
(Mediator)
서로의 존재를 모르는 상태에서도 협력할 수 있게 하는 패턴
메멘토
(Memento)
서로의 존재를 모르는 상태에서도 협력할 수 있게 하는 패턴
옵서버
(Observer)
관찰 대상의 변화를 탐지하는 패턴
상태
(State)
객체의 상태에 따라 동일한 동작을 다르게 처리해야 할 때 사용하는 패턴
전략
(Strategy)
클라이언트에 영향을 받지 않는 독립적인 알고리즘을 선택하는 패턴
템플릿 메소드
(Template Method)
유사한 서브 클래스를 묶어 공통된 내용을 상위 클래스에 정의하는 패턴
방문자
(Visitor)
필요할 때마다 해당 클래스에 방문해서 처리하는 패턴

 

 

 


공시탈출넘버원 님의 블로그에서 가져온 내용이다.

 

어렴풋이 봤던 내용인지라 디자인 패턴, 생성패턴 스타크래프트 설명 등

여러 키워드를 검색해본 끝에 다시 만난 블로그 글이라 반가워 남겨본다. 

 

스타크래프트 게임을 하지 않아 정확히 이해는 안되지만 대충은 이해가 됐다. 

또한 11개의 행동 패턴의 앞글자만 따서 CISMOSTV 라고 꼼수(?)도 알려주니 감사하다. 

 

나만의 방법대로 글을 다시 정리하자면 

생성 패턴은 스타크래프트 그림 + 표 내용 참고하여 암기 

행동 패턴은 CISMOSTV (코스모스 티비) 느낌으로 암기 

 

그리고 나머지 7개는 구조 패턴으로 구분하면 어떨까 싶다. 

 

반응형