본문 바로가기
TIL/CS

예상 질문

by J1-H00N 2023. 10. 12.

Q. 옵저버 패턴을 어떻게 구현하나요?

 

A. 여러가지 방법이 있으나 제가 아는 방법으로는 프록시 객체를 사용하는 방법이 있습니다. 어떠한 대상의 기본적인 동작의 작업을 가로챌 수 있는 프록시 객체를 통해 객체의 속성이나 메서드 변화 등을 감지하고, 이를 미리 설정해놓은 옵저버들에게 전달하는 방법으로 구현합니다.

 

Q. 프록시 서버를 설명하고 사용 사례에 대해 설명해보세요.

 

A. 프록시 서버란 캐싱, 로깅, 데이터 분석을 서버보다 먼저 하는 서버를 말합니다. 이를 통해 포트 번호를 바꿔서 사용자가 실제 서버의 포트에 접근하지 못하게 할 수 있으며, DDOS 공격을 차단하거나 CDN을 프록시 서버로 달아서 캐싱 처리를 용이하게 할 수 있습니다. nginx로 Node.js로 이루어진 서버의 앞단에 둬서 버퍼 오버플로우를 해결하거나 DloudFlare를 둬서 캐싱, 로그 분석 등을 하는 사례가 있습니다.

 

Q. MVC 패턴을 설명하고 MVVM 패턴과의 차이는 무엇인지 설명해보세요.

 

A. MVC 패턴은 모델, 뷰, 컨트롤러로 이루어진 디자인 패턴입니다. 앱의 구성 요소를 세 가지 역할로 구분하여 개발 프로세스에서 각각의 구성 요소에만 집중할 수 있고, 재사용성과 확장성이 높아지는 장점과 애플리케이션이 복잡해질수록 모델과 뷰의 관계도 같이 복잡해진다는 단점이 있습니다.

MVVM 패턴은 컨트롤러가 뷰 모델로 바뀐 디자인 패턴입니다. 뷰 모델은 뷰를 한층 더 추상화한 개념입니다. 커맨드와 데이터 바인딩을 가지는 것이 특징입니다. 또한 뷰와 뷰모델 사이의 양방향 데이터 바인딩을 지원하며 UI를 별도의 코드 수정 없이 재사용할 수 있고 단위 테스팅하기 쉽다는 장점이 있습니다.

'TIL > CS' 카테고리의 다른 글

TCP/IP 4계층 모델  (0) 2023.10.17
네트워크  (0) 2023.10.13
프로그래밍 패러다임  (0) 2023.10.12
디자인 패턴  (0) 2023.10.11
DBMS의 기능과 종류  (0) 2023.08.30