MVC(Model-View-Controller) 패턴이란 무엇인가요? 이 패턴의 각 구성 요소의 역할을 설명하고, MVC 패턴을 사용하는 이유와 그 장점에 대해 서술해주세요.
OAuth란 무엇인가요? 그리고 왜 사용하는지 설명해주세요.
MVC패턴이란?
Model, View, Controller의 약자로, 어떤 프로젝트에 있어 구성요소를 역할에 따라 세가지로 구분한 것이다.
다음 이미지는 MVC 패턴을 유저 관점에서 서술한 그림으로, User에게 보여지는 화면이나 UI는 View에 속하며 View를 통해 내부를 조작하는 Controller에 접근하며, Controller는 내부의 Model을 조작하고 이를 다시 View에 표시해 사용자에게 보여준다.
여기서 모델은 대개 앱의 정보, 데이터들을 나타내는데 주로 DB와 백엔드를 나타낸다.
모델은 세가지 원칙을 가진다.
1. 사용자에게 필요한 모든 데이터를 가진다.
2. 다른 계층에 대한 어떤 정보도 알지 못한다.
3. 변경이 생기면 변경을 통지할 처리 방법이 필요하다.
뷰 역시 세가지 원칙을 가진다.
1. 모델이 제공한 정보를 따로 저장하지 않는다.
2. 다른 계층에 대한 어떤 정보도 알지 못한다.
3. 변경이 생기면 변경을 통지할 처리 방법이 필요하다.
컨트롤러는 두가지 원칙을 가진다.
1. 모델과 뷰에 대해 알고 있어야 한다.
2. 모델과 뷰의 변경을 모니터링 해야 한다.
MVC 패턴의 가장 큰 의의는 캡슐화에 의한 책임의 분산 및 책임소재의 명확성이다.
각 계층이 서로의 역할에만 집중하며 해당 부분의 동작 오류에 대해서 각 계층이 따로 책임을 가지기에 오류 처리에 수월하다.
그리고 패턴 특성상 모듈화가 일어나는데, 이를 통해 유지보수성, 확장성, 재사용성이 올라간다.
OAuth란 사용자 - 앱 - 제3자 간의 정보 공유시 사용자의 인증 정보를 앱에 직접 전달하지 않고도 제3자의 정보에 접근할 수 있게 해주는 인증 프로토콜이다.
사용자는 앱을 통해 제3자의 정보를 제공할 것을 동의하고, 제3자는 접근할 수 있는 범위를 제한해 앱에 제공하고, 앱은 그 제공된 정보를 통해 필요한 처리를 한다.
이를 사용하는 가장 큰 이유는 보안성에 있다.
사용자는 앱에게 자신의 인증정보를 제공하지 않고도 필요한 서비스를 제공받을 수 있게 되어, 불필요한 인증 정보를 제공하지 않을 수 있고, 정보 유출의 가능성을 줄일 수 있다.
또한 권한이 제한되므로 앱이 필요한 범위를 넘어선 정보에 접근하는 것을 차단할 수 있다.
'CodeIt Fs 2nd > 위클리 페이퍼' 카테고리의 다른 글
codeit weekly paper6 (1) | 2024.09.18 |
---|---|
codeit weekly paper5 (3) | 2024.09.18 |
codeit weekly paper4 (0) | 2024.09.18 |
codeit weekly paper3 (0) | 2024.09.18 |
codeit weekly paper2 (0) | 2024.08.08 |