이터레이터 패턴

  • 이터레이터를 사용하여 컬렉션의 요소들에 접근하는 디자인 패턴
  • 순회할 수 있는 여러 가지 자료형의 구조와는 상관없이 이터레이터라는 하나의 인터페이스로 순회가 가능하다.

노출모듈 패턴

  • 즉시 실행 함수를 통해 private, public 같은 접근 제어자를 만드는 패턴 (js)
  • public: 클래스에 정의된 함수에서 접근 가능하며 자식 클래스와 외부 클래스에서 접근 가능한 범위
  • protected: 클래스에서 정의된 함수에서 접근 가능, 자식 클래스에서 접근 가능하지만 외부 클래스에서 접근 불가능한 범위
  • private: 클래스에 정의된 함수에서 접근 가능하지만 자식 클래스와 외부 클래스에서 접근 불가능한 범위
  • 즉시 실행 함수: 함수를 정의하자마자 바로 호출하는 함수. 초기화 코드, 라이브러리 내 전역 변수의 충돌 방지 등에 사용한다.

MVC 패턴

  • Model, View, Controller로 이루어진 디자인패턴

  • 재사용성과 확장성이 용이하다는 장점이 있고, 애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해지는 단점이 있다.

  • 모델

    • 애플리케이션의 데이터인 데이터베이스, 상수, 변수 등을 뜻한다.
    • 뷰에서 데이터를 생성하거나 수정하면 컨트롤러를 통해 모델을 생성하거나 갱신한다.
    • 모델을 기반으로 사용자가 볼 수 있는 화면
    • 모델이 가지고 있는 정보를 따로 저장하지 않아야 하며 단순히 화면에 표시하는 정보만 가지고 있어야 한다.
    • 변경이 일어나면 컨트롤러에 이를 전달해야 한다
  • 컨트롤러

    • 하나 이상의 모델과 하나 이상의 뷰를 잇는 다리 역할을 하며 이벤트 등 메인 로직을 담당한다.
    • 모델과 뷰의 생명주기도 관리한다.
  • MVC 패턴을 이용한 대표적인 프레임워크 Spring

MVP 패턴

  • MVC 패턴으로부터 파생되었으며 C가 presenter로 교체된 패턴이다.
  • 뷰와 프레젠터는 일대일 관계이기 때문에 MVC 패턴보다 더 강한 결합을 지닌 디자인패턴이다.

MVVM 패턴

  • MVC의 C에 해당하는 컨트롤러가 뷰모델로 바뀐 패턴
  • 뷰모델은 뷰를 더 추상화한 계층이며, MVC 패턴과는 다르게 커맨드와 데이터 바인딩을 가지는 것이 특징이다.
  • 뷰와 뷰모델 사이의 양방향 데이터 바인딩을 지원하며 UI를 별도의 코드 수정없이 재사용할 수 있고 단위 테스팅하기 쉽다는 장점이 있다.

*출처: 면접을위한CS전공지식노트

'CS 및 면접복기' 카테고리의 다른 글

[OS] JVM부터 동시성까지  (2) 2025.09.12
20250829  (2) 2025.08.29
20250818 - 디자인 패턴  (2) 2025.08.18
20250811 - Network  (2) 2025.08.11
20250808  (3) 2025.08.08

+ Recent posts