230516 TIL #86 디자인패턴2 / 이터레이터 / 노출모듈 / MVC

김춘복·2023년 5월 16일
0

TIL : Today I Learned

목록 보기
86/543
post-custom-banner

230516 Today I Learned

지원 주차 넷째날. 오늘은 이력서를 마무리하고 cs 공부를 했다.


이터레이터 패턴(Iterator Pattern)

이터레이터를 사용해 컬렉션의 요소들을 순회하는 인터페이스.

  • 컬렉션의 내부 구현을 노출시키지 않으면서 요소들을 반복 처리할 수 있는 방법을 제공한다.

  • 자료형의 구조와 상관없이 하나의 인터페이스로 순회가 가능


노출모듈 패턴(Revealing Module Pattern)

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

  • 자바스크립트에는 접근제어자가 존재하지 않고 전역 범위에서 스크립트가 실행된다. 그래서 접근제어자를 구현하기 위해 노출모듈패턴을 써서 변수와 함수를 캡슐화한다.

MVC 패턴(Model View Controller)

모델, 뷰, 컨트롤러로 SW의 구조와 역할을 분리한다.
각 구성요소가 독립적으로 개발 및 테스트가 가능하다.
유지보수가 쉽고 확장성이 높다.

  • 모델 : 애플리케이션의 데이터와 비즈니스 로직을 담당.
    데이터를 유지하고 데이터의 변경 및 업데이트를 처리한다.
    일반적으로 DB, API호출 등과 상호작용해 데이터를 가져오거나 수정한다.

  • 뷰 : 데이터를 시각적으로 표현하는 부분을 담당한다.
    모델에서 가져온 데이터를 기반으로 사용자 인터페이스를 생성해 데이터의 표시 방식을 결정한다.
    사용자의 입력에 반응해 데이터 변경을 컨트롤러에 알린다.
    데이터를 따로 저장하지 않고, 화면에 표시하는 정보만 가지고 있다.

  • 컨트롤러 : 하나 이상의 뷰와 하나 이상의 모델을 잇는 다리 역할.
    메인 로직을 담당. 모델과 뷰 간의 상호작용을 조정.
    사용자의 요청을 받아 해당 요청에 맞는 모델의 처리를 지시하고 결과를 뷰에 전달한다.

  • 스프링에서 MVC패턴이 사용된다.

MVP 패턴

MVC에서 파생되어 컨트롤러가 프레젠터로 교체된 패턴이다.
뷰와 프레젠터가 1대 1의 관계. MVC패턴보다 더 강한 결합.

MVVM 패턴

MVC에서 파생되어 컨트롤러가 뷰모델로 바뀐 패턴

  • 뷰모델 : 뷰를 더 추상화한 계층. 뷰와 뷰모델 사이의 양방향 데이터 바인딩 지원. UI를 별도의 코드 수정 없이 재사용 가능.

  • 반응형 프레임워크인 Vue.js가 MVVM패턴.

profile
Backend Dev / Data Engineer
post-custom-banner

0개의 댓글