[코드잇 풀스택 1기] - MVC 패턴 , OAuth

2024. 11. 16. 14:32취업 준비 !

MVC (Modle View Controller) 패턴

 

MVC

- M (Model) :

➡️ 모델은 애플리케이션의 데이터와 비즈니스 로직을 관리합니다.

➡️ 데이터베이스와의 상호작용, 데이터를 이고 쓰는 기능을 수행

➡️ 비즈니스 규칙을 정의하고, 데이터의상태를 관리합니다.

➡️ 데이터를 가져오거나 수정하는 요청을 처리합니다.

 

- V (View) :

➡️ 뷰는 사용자에게 출력되는 화면을 담당합니다.

➡️ 사용자가 볼 수 있는 UI를 생성합니다.

➡️  사용자의 입력을 받아 컨트롤러에 전달합니다.

 

- C (Controller) :

➡️  컨트롤러는 뷰와 모델 간의 중재자 역할을 수행합니다.

➡️ 사용자의 입력을 받아 이를 해석하고 처리합니다.

➡️ 모델을 업데이트하거나 데이터를 조회하여 뷰에 전달합니다.

➡️  특정 비즈니스 로직을 수행한 후, 결과를 뷰에 전달하여 화면을 갱신합니다.

 

⭐ 장점

➡️ 유지보수성 용이성 : 각 구성 요소가 분리되어 있어 수정 시 다른 부분에 영향을 최소화 합니다.

➡️ 재사용성 : 모델, 뷰 ,컨트롤러를 각각 재사용할 수 있습니다.

➡️ 테스트 용이성 : 각 구성 요소를 독립적으로 테스트할 수 있어 테스트 효율이 높습니다.

 

⭐ 단점

➡️ 구조를 엄격하게 분리하면 프로젝트가 복잡해질 수 있습니다.

➡️ 작은 프로젝트에서 과도한 구조로 인해 오히려 비효율적일 수 있습니다.

 


OAuth

OAuth ( Open Authorization )는 사용자가 자신의 로그인 자격 증명을 노출하지 않고, 제3자 애플리케이션이 사용자 정보를 안전하게 접근할 수 있도록 인증하고 권한을 부여하는 오픈 표준 프로토콜 입니다.

 

왜 사용할까 ?

➡️ 보안강화 : 

사용자가 직접 비밀번호를 입력하지 않으므로, 애플리케이션이 사용자의 비밀번호를 알 필요가 없습니다.

해킹 당했을 때 비밀번호가 유출되지 않으므로 사용자 계정이 안전함.

➡️ 편리한 사용자 경험 :

사용자는 이미 사용중잉ㄴ 서비스 (구글, 페이스북 등등)의 계정으로 다른 애플리케이션에 빠르게 로그인할 수 있다.

새로군 계정을 생성할 필요 없이, 기존 계정으로 간편하게 접근이 가능하다.

➡️ 세분화된 접근 권한 부여 :

사용자는 애플리케이션에 특정 권한만 부여할 수 있습니다. 이메일 주소만 접근허용시키거나, 사진만 읽을 수 있게 제한할 수 있습니다.

특정 권한을 언제든지 취소할 수 있어 사용자에게 더 큰 통제권을 제공합니다.

 

동작 방식

➡️ 사용자에게 애플리케이션 접근 

사용자는 애플리케이션 자신의 계정으로 로그인을 시도합니다.

➡️ 권한 요청

애플리케이션을 사용자가 소유한 서비스에 리다이렉트 합니다.

사용자는 로그인하고, 애플리케이션 접근하려는 권한을 검토합니다.

➡️ 사용자 권한 승인

사용자가 접근 권한을 승인하면, 해상더비스는 Authorization Code를 애플리케이션에 전달합니다.

➡️Access Token 발급

애플리케이션은 인증 코드를 사용해 서비스로부터 Access Token을 발급 받습니다.

토큰을 사용해 데이터에 접근할 수 있습니다.

➡️ API 요청

애플리케이션은 Access Token을 사용해 보호된 리소스에 접근하고, 필요한 데이터를 가져 옵니다.