프록시 패턴 (proxy pattern) :
대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴 입니다.
이를 통해 객체의 속성, 변환 등을 보환하며 보안, 데이터 검증, 캐싱, 로깅에 사용합니다.
프록시 패턴은 프록시 객체로 쓰기이도하지만 프록시 서버로도 활용됩니다.
프록시 서버(proxy server) :
서버와 클라이언트 사이에서 클라이언트가 자신을 통해 다른 네트워크서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 가리킵니다.
Content Delivery NetWork 의 약자로 각 사용자가 인터넷에 접속하는 곳과 가까운 곳에서 콘텐츠를 캐싱 또는 배포하는 서버 네트워크를 말한다. 이를 통해 사용자가 웹 서버로 부터 콘텐츠를 다운로드 하는 시간을 줄일 수 있습니다.
DDOS 공격 방어 :
DDOS 는 짧은 기간 동안 네트워크에 많은 요청을 보내 네트워크를 마비시켜 웹 사이트의 가용성을 방해하는 사이버 공격 유형 입니다.
CloudFlare 는 의심스러운 트래픽, 특히 사용자가 접속하는 것이 아닌 시스템을 통해 오는 트래픽을 자동으로 차단해서 DDOS 공격으로 부터 보호합니다. CloudFlare의 거대한 네트워크 용량과 캐싱 전략으로 소규모 DDOS 공격은 쉽게 막아낼 수 있으며 이러한 공격에 대한 방화벽 대시보드도 제공합니다.HTTPS 구축
서버에서 HTTPS를 구축할 때 인증서를 기반으로 구축할 수도 있습니다. 하지만 CloudFlare를 사용하면 별도의 인증서 설치 없이 좀 더 손쉽게 HTTPS를 구축 할 수 있습니다.
MVC 패턴 :
MVC 패턴은 모델(Model), 뷰(View), 컨트롤러(Controller)로 이루어진 디자인 패턴입니다.
애플리케이션의 구성 요소를 세 가지 역할로 구분하여 개발 프로세스에서 각각의 구성 요소에만 집중해서 개발 할 수 있습니다.
재사용성과 확장성이 용이하다는 장점이 있고, 애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해지는 단점이 있습니다.
모델 :
애플리케이션의 데이터인 데이터베이스, 상수, 변수 들을 뜻합니다. 뷰에서 데이터를 생성하거나 수정하면 컨트롤러를 통해 모델을 생성하거나 갱신합니다.
뷰 :
inputbox, checkbox, textarea 등 사용자 인터페이스 요소를 나타냅니다. 즉 모델을 기반으로 사용자가 볼 수 있는 화면을 뜻합니다. 모델이 가지고 있는 정보를 따로 저장하지 않아야 하며 단순히 화면에 표시하는 정보만 가지고 있어야 합니다.
컨트롤러 :
하나 이상의 모델과 하나 이상의 뷰를 잇는 다리 역할을 하며 이벤트 등 메인 로직을 당담합니다.
또한, 모델과 뷰의 생명주기도 관리하며 ,모델이나 뷰의 변경 통지를 받으면 이를 해석하여 각각의 구성요소에 해당하는 내용에 대해 알려줍니다.
출처 : 면접을 위한 CS 전공지식 노트 - 지은이 : 주홍철
을 읽고 정리한 내용입니다.