디자인패턴
[디자인 패턴] MVC 패턴 / MVP 패턴 / MVVM 패턴
본 포스팅은 [면접을 위한 CS 전공지식 노트]의 내용을 참고하여 작성하였습니다. 1.1 디자인 패턴 프로그램을 설계할 때 발생했던 문제점들을, 객체 간의 상호 관계를 이용하여 해결할 수 있도록 '규약' 형태로 만든 것이다. 1) MVC 패턴 모델(Model), 뷰(View), 컨트롤러(Controller)로 이루어진 디자인 패턴이다. 애플리케이션의 구성 요소를 세 가지 역할로 구분하여 개발 프로세스에서 각각의 구성 요소에만 집중해서 개발 가능하다. 재사용성과 확장성이 용이하고, 애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해진다. 모델 모델은 애플리케이션의 데이터인 데이터베이스, 상수, 변수 등을 뜻한다. 뷰에서 데이터를 생성하거나 수정하면 컨트롤러를 통해 모델을 생성하거나 갱신한다. 뷰 inpu..
[디자인 패턴] 프록시 패턴 / 이터레이터 패턴 / 노출모듈 패턴
본 포스팅은 [면접을 위한 CS 전공지식 노트]의 내용을 참고하여 작성하였습니다. 1.1 디자인 패턴 프로그램을 설계할 때 발생했던 문제점들을, 객체 간의 상호 관계를 이용하여 해결할 수 있도록 '규약' 형태로 만든 것이다. 1) 프록시 패턴 대상 객체에 접근하기 전, 그 접근에 대한 흐름을 가로채 객체 앞단의 인터페이스 역할을 하는 디자인 패턴이다. 이를 통해 객체의 속성, 변환 등을 보완할 수 있고 보안, 캐싱, 로깅, 데이터 검증에 사용한다. - 프록시 서버 서버와 클라이언트 사이에서 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템 혹은 응용 프로그램이다. 2) 이터레이터 패턴 이터레이터를 사용하여 컬렉션의 요소들에 접근하는 디자인 패턴이다. 순회 가..
[디자인 패턴] 싱글톤 패턴 / 팩토리 패턴 / 전략 패턴 / 옵저버 패턴
본 포스팅은 [면접을 위한 CS 전공지식 노트]의 내용을 참고하여 작성하였습니다. 1.1 디자인 패턴 프로그램을 설계할 때 발생했던 문제점들을, 객체 간의 상호 관계를 이용하여 해결할 수 있도록 '규약' 형태로 만든 것이다. 1) 싱글톤 패턴 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다. 보통 데이터베이스 연결 모듈에 많이 활용된다. 하나의 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에, 인스턴스를 생성할 때 드는 비용이 줄어드는 장점이 있다. 하지만 의존성이 높아진다는 단점이 있다. 싱글톤 패턴은 TDD(Test Driven Developmenet)를 할 때 문제가 된다. TDD를 할 때 단위 테스트를 주로 하는데, 단위 테스트는 서로 독립적이어야 하며 어떤 순서로든 실행할 수 있어야 한..