이터레이터 패턴

- 이터레이터를 사용하여 컬렉션의 요소들에 접근하는 디자인 패턴
- 순회할 수 있는 여러 가지 자료형의 구조와는 상관없이 이터레이터라는 하나의 인터페이스로 순회가 가능하다.
노출모듈 패턴
- 즉시 실행 함수를 통해 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 |