-
옵저버 패턴 구현 방법, 프록시 서버란? 및 사례, MVC, MVVM 패턴이란?IT/Tip 2022. 7. 6. 22:17
Q. 옵저버 패턴을 어떻게 구현하나요?
여러 방법이 있지만 프록시 객체를 써서 하곤합니다.
프록시 객체를 통해 객체의 속성이나 메서드 변화 등을 감지하고 이를 미리 설정해 놓은 옵저버들에게 전달하는 방법으로 구현
프록시 객체란?
프록시 객체는 어떠한 대상의 기본적인 동작 ( 속성 접근, 할당, 순회, 열거, 함수 호출 등) 의 작업을 가로챌 수 있는 객체를 뜻함
JS에서 프록시 객체는 2개의 매개변수를 가진다
target : 프록시할 대상
handler: 프록시 객체의 target 동작을 가로채서 정의할 동작들이 정해져 있는 함수
Q. 프록시 서버를 설명하고 사용 사례에 대해 설명해보세요
프록시 서버란 서버 앞단에 둬서 캐싱, 로깅, 데이터 분석을 서버보다 먼저 하는 서버를 말한다.
이를 통해 포트 번호를 바꾸어 사용자가 실제 서버의 포트에 접근하지 못하게 할 수 있으며 공격자의 DDOS 공격을 차단하거나 CDN을 프록시 서버로 달아서 캐싱 처리를 용이하게 할 수 있다.
nginx로 Node.js로 이루어진 서버의 앞단에 둬서 버퍼 오버플로우를 해결하거나 CloudFlare를 둬서 캐싱, 로그 분석등을 하는 사용 사례가 있음
Q. MVC, MVVM 패턴이란? 또한 차이는?
MVC 패턴은 모델, 뷰, 컨트롤러로 이루어진 디자인 패턴
앱의 구성요소를 세 가지 역할로 구분하여 개발 프로세스에서 각각의 구성 요소에만 집중해서 개발할 수 있다는 점과 재사용성과 확장성이 용이하다는 장점이 있고. 애플레키에시녀이 복잡해질수록 모델과 뷰의 관계 또한 복잡해지는 단점이 있다.
MVVC 패턴은 컨트롤러가 뷰모델로 바뀐 패턴, 여기서 뷰모델은 뷰를 더 추상화한 계층이며 MVVM 패턴은 MVC 패턴과 다르게 커맨드와 데이터바인딩을 가지는 것이 특징
뷰와 뷰모델 사이의 양방향 데이터 바인딩을 지원하며 UI를 별도의 코드 수정 없이 재사용할 수 있고 단위 테스팅하기 쉽다는 장점이 있음
'IT > Tip' 카테고리의 다른 글
[MDN/translated] 오픈소스 기여, MDN 번역 작업 참여 이후 (0) 2022.05.29 [Github] 브랜치 삭제, 원격과 로컬 브랜치 동기화 (0) 2022.05.27 [CSS] Loading Bar (로딩 게이지 CSS) (0) 2022.04.28 [CSS] Video Text (0) 2022.04.28 [CSS] Overlapping Image(Colum, Low), ButtonFilter(Rotate) (0) 2022.04.26