[1Day-1CS] 디자인 패턴 & 패러다임 정리

TraceofLight·2023년 4월 10일
0

ComputerScience

목록 보기
9/20
post-thumbnail

서론

지금 정리하고 있는 내용은 전부 "면접을 위한 CS 전공 지식 노트" 를 기반으로 이루어지고 있다. 사실 1일 1CS 시작하면서 언급했어야 할 내용 같지만 ㅋㅋ 지금에라도 적어본다.

디자인 패턴

  • 프로그램을 설계할 때 발생했던 문제점들을 객체 상호 관계 등을 통해 해결할 수 있도록 만든 규약

싱글톤 패턴: 1클래스 1인스턴스 / 모듈 결합력 이슈를 해결하기 위한 의존성 주입자 활용

팩토리 패턴: 상위 클래스에서 큰 틀을 잡고 하위 클래스가 상속을 통해 구체화

전략 패턴: 캡슐화된 알고리즘을 컨텍스트 내부에서 교체하며 활용

옵저버 패턴: 상태 변화를 관찰, 변화 시 메서드 등을 통해 변화한 정보 전달

프록시 패턴: 대상 객체에 접근하기 전 흐름을 가로채는 인터페이스의 역할

이터레이터 패턴: 이터레이터를 사용하여 컬렉션의 요소에 접근, 하나의 인터페이스로 순회가 가능하다.

노출모듈 패턴: 접근 제어자를 만드는 패턴

MVC 패턴: Model, View, Controller로 구성되어 애플리케이션의 구성 요소를 분할하여 개발할 수 있도록 함

  • MVP 패턴: Controller만 Presenter로 교체
  • MVVM 패턴: Controller만 View Model로 교체

프로그래밍 패러다임

  • 선언형과 명령형의 구분
    → 선언형은 무엇을? 명령형은 어떻게?

  • 선언형

    • 함수형 프로그래밍: 순수 함수를 쌓아 로직을 구현
  • 명령형

    • 객체지향 프로그래밍: 객체의 상호작용을 표현, 객체 메서드를 활용
    • 절차지향 프로그래밍: 연속적 계산으로 구성, 코드를 그대로 구현하는 것으로 충족
profile
24시간은 부족한 게 맞다

0개의 댓글