디자인 패턴(2)

2024. 6. 23. 22:02·CS
목차
  1. 이터레이터 패턴
  2. 노출모듈 패턴
  3. MVC 패턴
  4. MVP 패턴
  5. MVVM 패턴
반응형

이터레이터 패턴

- 이터레이터를 사용하여 컬렉션의 요소들에 접근하는 디자인 패턴이다.

- 이터레이터라는 하나의 인터페이스로 순회가 가능하다.

 

ex) javascript로 바라본 이터레이터 패턴

: set과 map은 다른 자료구조임에도 for a of b라는 이터레이터 프로토콜을 통해 순회가 가능하다.

const mp = new Map()
mp.set('a', 1)
mp.set('b', 2)
mp.set('c', 3)

const st = new Set()
st.add(1)
st.add(2)
st.add(3)

for (let a of mp) console.log(a)
for (let a of st) console.log(a)

노출모듈 패턴

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

- 전역 범위에서 스크립트가 실행되고, 이 패턴을 통해 private와 public 접근 제어자를 구현하기도 한다.

public

- 클래스에 정의된 함수에서 접근 가능하며 자식 클래스와 외부 클래스에서 접근 가능한 범위

private

- 클래스에 정의된 함수에서 접근 가능하지만 자식 클래스와 외부 클래스에서 접근 불가능한 범위

protected

- 클래스에 정의된 함수에서 접근 가능, 자식 클래스에서 접근 가능하지만 외부 클래스에서 접근 불가능한 범위

즉시 실행 함수

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


MVC 패턴

- 모델, 뷰, 컨트롤러로 이루어진 디자인 패턴이다.

- 애플리케이션의 구성 요소를 세 가지 역할로 구분하여 개발 프로세스에서 각각의 구성 요소에만 집중해서 개발할 수 있다.

- 재사용성과 확장성이 용이하다.

- 복잡해질수록 모델과 뷰의 관계가 복잡해진다.

- 가장 대표적인 프레임워크 : Spring(자바 플랫폼을 위한 오픈 소스 애플리케이션)

 

- 모델(Model)

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

    2. View에서 데이터를 생성하거나 수정하면 >> Controller를 통해 Model을 생성하거나 갱신한다.

 

- 뷰(View)

    1. inputbox, checkbox. textarea 등 사용자 인터페이스 요소를 나타낸다.

    2. 간단하게 생각하면 사용자가 보는 화면을 뜻한다.

    3. 화면에 표시하는 정보만 가지고 있어야 한다.

 

- 컨트롤러(Controller)

    1. 하나 이상의 Model과 하나 이상의 View를 잇는 다리역할을 한다.

    2. 이벤트 등 메인 로직을 담당한다.

    3. Model, View의 생명주기도 관리한다.

    4. 만약 변경사항을 받으면 이를 각각의 구성 요소에 해당 내용에 대해서 알려주는 역할을 한다.


MVP 패턴

- MVC로부터 파생되었고, C >> P(Presenter)로 교체된 패턴이다.

- View와 Presenter는 1:1 관계이기에 MVC보다 더 강한 결합을 지닌 디자인 패턴이라고 볼 수 있다.


MVVM 패턴

- MVC에서 C >> VM(View Model)로 바뀐 패턴이다.

- 커맨드와 데이터 바인딩을 가진다.

- View <ㅡ> View Model 사이의 양방향 데이터 바인딩을 지원

    ㅡ> UI를 코드 수정 없이 재사용 가능하고 단위 테스팅 하기 쉽다.

- 가장 대표적인 프레임워크 : View.js

    - 함수를 사용하지 않고 값 대입만으로도 변수가 변경되며 양방향 바인딩, html을 토대로 컴포넌트를 구축할 수 있는 특징이 있다.

반응형

'CS' 카테고리의 다른 글

자료구조 - 시간 복잡도 / 스택, 큐, 이중 연결 리스트  (0) 2024.11.03
디자인 패턴(1)  (0) 2024.04.25
  1. 이터레이터 패턴
  2. 노출모듈 패턴
  3. MVC 패턴
  4. MVP 패턴
  5. MVVM 패턴
'CS' 카테고리의 다른 글
  • 자료구조 - 시간 복잡도 / 스택, 큐, 이중 연결 리스트
  • 디자인 패턴(1)
Hyunily
Hyunily
HyunilyHyunily 님의 블로그입니다.
    반응형
  • Hyunily
    Hyunily
    Hyunily
  • 전체
    오늘
    어제
    • 분류 전체보기 (45)
      • Daily (16)
      • 한화시스템 Beyond (6)
      • CS (3)
      • Database (10)
      • Monitoring (2)
      • Spring (8)
  • 블로그 메뉴

    • 홈
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
Hyunily
디자인 패턴(2)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.