디자인 패턴 : 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것
● 싱글톤 패턴 : 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 ( 보통 데이터베이스 연결 모듈에 많이 사용 )
● 팩토리 패턴 : 객체 생성 로직을 클래스 외부로 분리하여 객체를 생성하는 생성 패턴 중 하나
● 전략 패턴 : 알고리즘을 객체화하여 동적으로 알고리즘을 선택하여 사용할 수 있도록 하는 행위패턴
- 쉽게 말해 같은 작업을 처리하는 여러 방법을 만들어 두고 필요에 따라 그 전략을 바꿔가며 사용할 수 있게 하는 패턴
● 옵저버 패턴 : 주체가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴
- 쉽게 말해 유튜브 채널에서 새로운 동영상을 업로드할 때 구독자들에게 알람이 가는 시스템이 옵저버 패턴이다.
이 때 주체는 유튜브 채널장이고 옵저버는 구독자이다.
● 프록시 패턴 : 대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 해당 접근을 필터링하거나 수정하는 등의 역할을 하는 계층이 있는 디자인 패턴
● 프록시 서버 : 서버와 클라이언트 사이에서 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 응용 프로그램
● DDOS : 짧은 기간 동안 네트워크에 많은 요청을 보내 네트워크를 마비시켜 웹 사이트의 가용성을 방해하는 사이버 공격 유형
● CDN(Content Delivery Network) : 인터넷 콘텐츠를 더 빠르고 효율적으로 사용자에게 전달하기 위해 설계된 분산 서버 네트워크 / 여러 지역에 분산된 서버들이 사용자와 가까운 곳에서 콘텐츠를 제공한다.
● CORS(Cross Origin Resource Sharing) : 웹 브라우저의 보안 정책으로 한 웹 사이트에서 다른 도메인의 리소스에 접근할 때 허용 여부를 결정하는 메커니즘이다.
- 쉽게 말해 A 사이트에서 B 사이트의 데이터나 리소스를 요청할 때 브라우저가 이 요청을 허용할지 말지를 판단하는 규칙이다.
● 이터레이터 패턴 : 순회할 수 있는 여러 가지 자료형의 구조와는 상관없이 이터레이터라는 하나의 인터페이스로 순회가 가능한 디자인 패턴
● 노출모듈 패턴 : 즉시 실행 함수를 통해 private, public 같은 접근 제어자를 만드는 패턴을 말한다.
● MVC 패턴 : 모델, 뷰, 컨트롤러로 이루어진 디자인 패턴
대표적인 프레임워크 : Spring
● MVP 패턴 : MVC 패턴으로부터 파생되었으며 컨트롤러(Controller)가 프레전터(Presenter)로 교체된 패턴
뷰와 프레전터는 일대일 관계이기 때문에 MVC 패턴보다 더 강한 결합을 지닌 디자인 패턴이라고 볼 수 있다.
● MVVM 패턴 : MVC의 C에 해당하는 컨트롤러가 뷰 모델로 바뀐 모델(Model, View, View Model)
대표적인 프레임워크 : Vue.js
'책 > 면접을 위한 CS 전공지식 노트' 카테고리의 다른 글
책 간단 요약정리(2) - 프로그래밍 패러다임 (1) | 2024.12.14 |
---|