드디어 프로젝트까지 끝났다. 프로젝트 시작 전에는 걱정이 많았는데 걱정과 달리 무난하게 프로젝트를 마친 것 같다. 적극적으로 참여하면서 팀원들과 소통하는 방법도 익힐 수 있었고 고민하면서 코드를 짜는 연습이 되었다.
Section 4가 끝났다. 이 말은 즉... 이제 프로젝트라는 것이다. Section 3의 문을 닫고 Section 4의 문을 열었을 땐 발등에 불이 붙기 직전이었고, Section 4의 문을 닫은 지금은 불이 붙어버렸다.
이번에도 어김없이 Section의 마지막 날, 항상 있는 기술 면접을 봤다. 모의 면접이긴 하지만 답변을 준비하면서 느낀 것은 이번 Section에 대한 이해가 완벽하지 않다는 것이다.
서비스 규모가 복잡해지고 커질수록, 서비스 배포 과정이 복잡해지고 소요 시간이 늘어나게 된다. 변경 사항이 생길 때마다 배포 과정을 수동으로 진행하면 많은 시간을 허비해야 할 것이다. 버튼 하나만 클릭하면 모든 배포 과정이 자동으로 진행되게 할 수 있다!
서비스 규모가 복잡해지고 커질수록, 서비스 배포 과정이 복잡해지고 소요 시간이 늘어나게 된다. 변경 사항이 생길 때마다 배포 과정을 수동으로 진행하면 많은 시간을 허비해야 할 것이다. 버튼 하나만 클릭하면 모든 배포 과정이 자동으로 진행되게 할 수 있다!
물자의 수송에 획기적인 단축을 가져다준 컨테이너 기술을 "소프트웨어 배포에 사용할 수 없을꺼?"라는 생각을 하게 되었고, 리눅스 컨테이너(lxc)라는 것을 만들어냈다. 2013년 Docker가 등장했고, 개발자들은 쉽게 애플리케이션을 배포하고 실행할 수 있게 되었다.
개발 중인 웹 서비스가 배포가 되지 않는다면, 더 이상의 의미를 가질 수 없다. 웹 개발자는 배포에 대한 기본 지식을 탑재하고, 간단한 배포는 혼자 할 수 있어야 한다. 배포를 위한 클라우드 서비스인 AWS를 이용해 웹 애플리케이션을 배포해보자.
Spring WebFlux는 전통적인 Spring MVC 방식의 애플리케이션보다 대량의 클라이언트 요청을 조금 더 효율적으로 처리할 수 있는 현대적인 애플리케이션 구현을 위한 기술이다.
Reactor는 Reactive Streams의 구현체 중 하나로, Reactive 기반의 Spring Web Application을 만들고 싶다면 반드시 알아야 하는 핵심 기술이다.
이전까지 학습하며 만들어 본 애플리케이션은 명령형 프로그래밍 방식을 사용했다. 명령형 프로그래밍 방식은 전통적인 개발 방식이다. 반면에 리액티브 프로그래밍은 전통적인 명령형 프로그래밍 방식과 달리 선언형 프로그래밍 방식을 사용한다.
CSR 방식의 애플리케이션에 OAuth 2 + JWT를 제대로 잘 적용하기 위해서는 OAuth 2의 인증 처리 흐름과 JWT를 통한 자격 증명 정보 제공 시점에 대해 이해하는 것이 중요하다.
REST API 통신을 사용하는 백엔드 서버에 사용하기 적합한 자격 증명 방식 중, 가장 활용도가 높은 JWT에 대해 학습해보자!
이전 챕터에서 보호된 애플리케이션 개발을 위해 반드시 알아야 하는 중요한 보안 요소 두 가지 중 하나인 인증(Authentication)에 대해 살펴봤다. 애플리케이션 서비스를 이용하기 위한 사용자 인증에 성공해도, 체크해야 할 또 하나의 보안 요소가 있다.
안전하게 보호된 애플리케이션을 개발하기 위해 반드시 익혀야 되는 중요한 보안 요소는 두 가지인데, 그 중 하나는 바로 인증이다. Spring Security에서는 Spring Security Filter Chain을 통해 보안을 위한 특정 작업을 처리한다.
눈에 보이지 않는 가장 중요한 영역은 바로 보안(Security)이다. 보안은 굉장히 어려운 영역이지만, Spring Security라는 아주 잘 만들어진 보안 프레임워크가 있다.
우리가 접속한 사이트가 보안이 된 웹사이트인지 알 수 있는 방법은 현재 화면의 주소 옆에 자물쇠 아이콘을 클릭해보면 된다. 자물쇠 아이콘을 눌러보면 `이 사이트는 보안 연결(HTTPS)이 사용되었습니다.` 라는 메세지를 확인할 수 있다.
오늘은 Section 3 마지막 날이기 때문에 기술면접 실습이 있었다. 아래는 내가 받은 질문과 그에 대한 답변을 정리해보았다. 기술면접을 해보면서 느낀점은 아직 개념이 머릿속에 정리되어 있지 않았다는 점이다.
오늘 Section 3가 끝났다. 매 회고 때마다 하는 말이지만, 시간은 참 빠르다. (앞으로 쓰게 될 회고록에도 시간이 빠르다 하겠지...) 특히, Section 3는 유독 순식간에 지나간 것 같다.