개발 지식 공유, 복습

모각코 Part 6 본문

모각코

모각코 Part 6

like_sonny 2022. 11. 30. 00:07

이번주는 디자인 패턴을 주제로 공부했습니다.

 

디자인 패턴은 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용해 해결할 수 있도록 하나의 규약 형태로 만들어 놓은 것이다.

 

  • 싱글톤 패턴 (Single Pattern)

    하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴으로, 데이터베이스 연결 모듈에 많이 사용한다. 하나의 인스턴스      를 생성하고 해당 인스턴스를 다른 모듈들이 공유하며 사용하므로 인스턴스를 생성하는 비용을 줄일 수 있는 장점이 있      지만 의존성이 높아진다는 단점이 있다.

  • 팩토리 패턴 (Factory Pattern)

    객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴으로, 상속 관계에 있는 두 클래스에서 상위 클래스        가  중요한 뼈대를 결정하고 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴이다.

    상위 클래스와 하위 클래스가 분리되므로 느슨한 결합을 가지고 상위 클래스는 인스턴스 생성 방식에 대해 알 필요가          없으므로 더 많은 유연성을 가지고 리팩토링 시 한 곳만 고치며 유지 보수성이 증가하는 장점이 있다,

  • 전략 패턴 (Strategy Pattern)

    객체의 행위를 바꾸고 싶은 경우 직접 수정하지 않고 전략이라 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주며      상호 교체가 가능하게 만드는 패턴이다.

  • 옵저버 패턴 (Observer Pattern)

    주체가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드를 통해 옵저버 목록에 있는 옵저버들에게      변화를 알리는 패턴이다. 옵저버는 객체의 상태 변화에 따라 전달되는 메서드 등을 기반으로 변화 사항이 생기는 객체        들을 의미한다. 

  • 프록시 패턴 (Proxy Pattern)

    대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 패턴이다. 이는 객체      의 속성, 변환 등을 보완하여 보안, 데이터 검증, 캐싱, 로깅에 사용하고 프록시 서버로도 사용된다.

    프록시 서버는 서버와 클라이언트 사이에서 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수        있게 해주는 컴퓨터 시스템, 프로그램을 의미한다.

  • 이터레이터 패턴 (Iterator Pattern)

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

  • 노출모듈 패턴 (Revealing Module Pattern)

    즉시 실행 함수를 통해 접근 제어자를 만드는 패턴으로, 자바스크립트와 같이 접근 제어자가 없어 전역 범위에서 스크립트가 실행되어 노출모듈 패턴을 통해 private와 public 과 같은 접근 제어자를 구현한다.

  • MVC 패턴

    모델 (Model), 뷰 (View), 컨트롤러 (Controller)로 이루어진 디자인 패턴으로, 애플리케이션의 구성 요소를 3가지 역할로     구분하여 개발 프로세스에서 각각의 구성 요소에만 집중해 개발이 가능하여 재사용성과 확장성이 용이하다는 장점이 있     다. 하지만 애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해진다는 단점이 있다.

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

    - 뷰: input box, text area와 같은 사용자 인터페이스 요소를 의미한다. 그리고 변경이 일어나면 컨트롤러에 전달한다.

    - 컨트롤러: 모델과 뷰를 잇는 다리 역할로, 메인 로직을 담당한다.

MVC 패턴

  • MVP 패턴

    MVC 패턴으로부터 파생되었으며 C에 해당하는 컨트롤러가 프레젠터 (Presenter)로 교체된 페턴이다. 뷰와 프레젠터가      1대1 관계이므로 MVC 패턴보다 더 강한 결합을 지닌 패턴이다. 하지만 애플리케이션이 복잡해질수록 뷰와 프레젠터          사이의 의존성이 강해지는 단점이 있다.

MVP 패턴

  • MVVM 패턴

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

MVVM 패턴

* 데이터 바인딩: 화면에 보이는 데이터와 웹 브라우저의 메모리 데이터를 일치시키는 기법

 

'모각코' 카테고리의 다른 글

모각코 Part 5  (0) 2022.11.29
모각코 Part 4  (1) 2022.11.13
모각코 Part 3  (0) 2022.11.10
모각코 Part 2  (0) 2022.10.19
모각코 Part 1  (1) 2022.10.03