Cloud클라우드 운영 환경 구성Cloud Computing & Deployment과거의 웹 개발은 프론트엔드와 백엔드처럼 포지션이 별도로 구분되지 않았습니다. 하지만 점점 뷰(View)의 영역이 커지며 각 영역을 전문적으로 개발하는 현재의 구조가 되었습니다. 우리가 만든 서버엔 뷰(View) 단이 빠져있기 때문에 배포 흐름에 대한 이해가 쉽지 않습니다. 따라서 이번 유닛에서 진행할 실습은 웹 애플리케이션 배포의 정확한 이해를 위해 풀스택 배포로(Client + Server + Database) 진행합니다. 우리가 만들고 있는 웹 서비스는 배포가 되지 않는다면, 더 이상 의미를 가질 수 없습니다. 따라서 웹 개발자는 배포에 대한 기본 지식을 탑재하고 있고, 간단한 배포 정도는 혼자 할 수 있어야 합니다...
Chapter - Spring Security에서의 OAuth2 인증OAuth 2의 개념과 OAuth 2의 인증 처리 흐름 등 이론적인 부분을 확인했으니 이제 아주 간단한 Spring Security 기반의 샘플 애플리케이션에 OAuth 2를 적용해 보면서 OAuth 2를 조금 더 구체적으로 이해해 보도록 하겠습니다.추가적으로 OAuth 2와 JWT를 함께 사용해 Frontend와 Backend 간에 인증을 처리하는 방식을 살펴보면서 여러분들이 CSR 방식의 애플리케이션에 OAuth 2를 적용할 수 있는 기반을 마련해 보도록 하겠습니다.학습 목표Spring Security 기반의 샘플 애플리케이션에 OAuth 2를 적용할 수 있다.Spring Security에서 지원하는 OAuth 2 인증을 위한 컴포넌..
[Spring Security] OAuth2 인증위 사이트는 카카오, 구글과 아무런 상관이 없는 별도의 서비스인데 어떻게 카카오와 구글 계정으로 로그인을 할 수 있는 걸까요?최근 들어 많은 서비스가 구글, 카카오, 네이버 등의 계정을 통해 더욱 쉽게 회원가입과 로그인을 할 수 있도록 제공하고 있으며, 서비스에 따라 회원 관리뿐만 아니라 다른 SNS에 게시글을 게시하도록 하거나 회원 정보를 연동하기도 합니다.일반적으로 웹에서 제공되는 서비스의 경우, 사용자가 해당 서비스를 이용하기 위해서는 회원가입과 로그인 인증을 통해 서비스를 이용할 권한을 부여받는 절차가 필요하고, 민감한 정보를 제공하는 서비스의 경우 인증을 위한 절차가 까다로운 것이 사실입니다.하지만 구글이나 카카오, 네이버 등의 신뢰할 만한 벤더를..
[Spring Security] JWT 인증(Authentication)이전 유닛에서 여러분들은 Hello Spring Security 애플리케이션을 구현해 보면서 Spring Security의 기본적인 폼 로그인 인증 방식을 경험해 보았습니다.그런데 Spring Security에서 지원하는 폼 로그인 방식은 기본적으로 서버 측 세션을 이용해 상태(Stateful)를 유지하는 방식이므로 REST API를 이용한 CSR 방식의 백엔드 서버와 어울리는 방식은 아닙니다.따라서 이번 유닛에서는 REST API 통신을 사용하는 백엔드 서버에 사용하기 적합한 자격 증명 방식 중 가장 활용도가 높은 JWT에 대해서 학습할 것입니다.이번 유닛을 통해 인증된 사용자를 증명하기 위한 토큰 방식이 무엇이며, 웹에서의 사용에..
[기본] Hello, Spring Security로 알아보는 Spring Security의 기본 구조 (2)이전 챕터에서 InMemory User를 이용해 애플리케이션 실행 시, 메모리에 두 개의 사용자 정보를 미리 등록(kevin@gmail.com, admin@gmail.com)한 후 사용자의 권한 별로 request URL의 접근이 제한되는지 여부 등을 살펴보았습니다.그런데 지난 챕터까지 학습한 내용만으로는 정상적으로 동작하지 않는 기능이 하나 있습니다.그것은 바로 회원 가입입니다.여러분들이 일반적으로 생각하기로 회원 가입 후, 가입한 회원 정보로 당연히 로그인을 할 수 있어야 할 텐데 현재 상태로는 회원 가입이 에러 없이 진행되는 것 같지만 가입한 회원 정보로 로그인해 보면 로그인 인증에 실패합니다..
[Spring Security] 기본여러분들이 Spring MVC를 학습하며 만들어보았던 샘플 애플리케이션은 단순하지만, Spring MVC 기반 애플리케이션에서 사용되는 웬만한 핵심 기술들은 모두 포함이 된 학습용으로 손색이 없는 꽤 괜찮은 애플리케이션입니다.하지만 겉으로 보기에 잘 만들어진 여러분들의 샘플 애플리케이션에는 눈에 보이지 않는 가장 중요한 한 가지 영역이 빠져있습니다.그것은 바로 보안(Security)입니다.보안이라는 영역이 얼마나 중요한지에 대해서 보안 침해로 인한 피해를 겪어보기 전에는 개발자가 애플리케이션 구현 단계에서 보안의 중요성에 대해 현실감 있게 체감하는 건 사실 쉽지 않습니다.‘소 잃고 외양간 고친다’라는 속담을 여러분들은 너무나도 잘 알고 있을 것입니다.소는 외양간에서 도..
[실습] 애플리케이션 빌드/실행/배포 실습Spring Boot 애플리케이션 Build 및 실행 실습 개요이번 실습은 여러분들이 만든 샘플 애플리케이션을 빌드 후, 실행해 보는 실습입니다빌드 및 애플리케이션 실행 파일을 실행해 보는 실습이므로 별도의 소스 코드 작성은 없습니다.실습용 프로젝트 패키지는 ‘com.springboot’ 패키지 하위에 아래와 같이 구성되어 있습니다.adviceauditcoffeeconfigdtoexceptionmemberorderresponsestampvalidator현재의 소스 코드는 API 문서화까지의 작업이 모두 반영되어 있으며, 모든 테스트 케이스 역시 “passed” 되도록 작성되어 있습니다.실습 사전 준비실습용 샘플 프로젝트 복제⭐ 애플리케이션 빌드 실습 과제는 별도의..
[실습] API 문서화 실습Spring Rest Docs를 이용한 API 문서화 실습 개요이번 실습은 Spring Rest Docs를 이용해 API 문서를 만들어 보는 실습입니다.지난 챕터까지 학습했던 구현 코드들이 기본적으로 포함되어 있으며, 이를 기반으로 요구 사항에 맞게 API 문서화를 위한 테스트 케이스를 작성한 후, API 문서를 생성하면 됩니다.실습용 프로젝트 패키지는 ‘com.springboot’ 패키지 하위에 아래와 같이 구성되어 있습니다.adviceauditcoffeeconfigdtoexceptionmemberorderresponsestampvalidator테스트 케이스는 일반적으로 Gradle 기반 프로젝트에서 ‘src/test/java/**’ 경로에 작성합니다.여러분들이 작성할 API..