디자인 패턴과 프로그래밍 패러다임 - 그 외 패턴

code_j·2023년 1월 5일
post-thumbnail

이터레이터 패턴

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

노출모듈 패턴

즉시 실행 함수를 통해 private, public 같은 접근 제어자를 만드는 패턴이다.

public

클래스에 정의된 함수에서 접근 가능하며 자식 클래스와 외부 클래스에서 접근 가능하다.

protected

클래스에 정의된 함수에서 접근 가능하며 자식 클래스에서 접근 가능하지만 외부 클래스에서는 접근이 안된다.

private

클래스에 정의된 함수에서 접근 가능하며 자식이나 외부 클래스는 접근 불가능하다.

즉시 실행 함수

함수를 정의하자마자 바로 호출하는 함수를 의마한다. 초기화 코드, 라이브러리 내 전역 변수의 충돌 방지 용도로 사용한다.

MVC 패턴

Model, View, Controller로 이루어진 디자인 패턴이다. 재사용성과 확장성이 용이하다는 장점이 있고, 애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해진다는 단점이 있다.

모델

애플리케이션의 데이터인 데이터베이스, 상수, 변수 등을 의미한다.

사용자 인터페이스 요소를 의미한다. 모델을 기반으로 사용자가 볼 수 있는 화면을 뜻한다.

컨트롤러

하나 이상의 모델과 뷰를 잇는 역할을 하며 메인 로직을 수행하는 담당이다. 모델과 뷰의 생명주기를 관리하며 모델과 뷰의 변경 사항을 받으면 이를 해석하여 처리한다.

MVP 패턴

MVC 패턴에서 파생되었으며 컨트롤러가 프레젠터(Presenter)로 변경된 패턴이다. 뷰와 프레젠터가 일대일 관계이기에 강한 결합을 가지는 디자인 패턴이다.

MVVM 패턴

MVC 패턴의 컨트롤러를 대신하여 뷰모델(View Model)을 사용하는 패턴이다. 뷰모델은 뷰를 추상화한 계층이며 MVC 패턴과 다르게 커맨드와 데이터 바인딩을 가진다. 뷰와 뷰모델 사이의 양방향 데이터 바인딩을 지원하고 UI를 별도로 수정하지 않고 재사용할 수 있다. Vue.js가 대표적인 프레임워크다.

profile
어렵다고 피하지 말고 도전하자! 긍정!

0개의 댓글