한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.

우리나라에서 백엔드 개발은 주로 JVM 계열 언어로 개발을 합니다. 채용 공고의 절반 이상은 자바나 코틀린 언어라고 해도 과언이 아닐 텐데요. 그중 스프링 부트 프레임워크를 안 쓰는 회사를 찾기 힘듭니다. 10년 전만 하더라도 관련된 강의나 책은 부족했습니다. 그래서 공식 문서 읽고 스택 오버플로우를 바탕으로 실력을 쌓았죠. 현재는 1티어 개발자들이 저렴한 가격에 온 오프라인 강의도 많고 책도 잘 나옵니다. 다만 책은 번역서를 보면 최신 버전이 아닐 수 있는데요. 이때는 국내 저자 책을 읽으면 좋습니다. 최근에 나온 스프링 부트 개발자 온보딩 가이드 책은 박상현 CTO 님이 썼습니다. 이 책은 스프링 부트에 대한 기본적인 설명부터 운영방법을 친절한 설명으로 알려줍니다. 이 책에 대해서 자세히 알아보도록 하겠습니다.
1) 인증 기능
인증은 사용자가 애플리케이션이나 웹 사이에 접근할 때 사용자의 신원을 확인하는 과정인데요. 주로 3가지로 나뉩니다. 세션, 토큰 기반, Oauth 2.0입니다. 이 중 보안상 Oauth 2.0 기반인 네이버, 카카오, 구글 로그인을 표준처럼 사용합니다. 그렇다고 Oauth2.0만 딱 쓰는 것은 아니며 세부 로직은 토큰과 세션을 합쳐서 쓰거나 2차 인증 등 보안을 강화할 수도 있습니다.
스프링 부트 개발자 온보딩 가이드 책은 토큰 기반으로 JWT 토큰을 활용한 인증 기능을 만듭니다. JWT는 인증과 권한 부여를 동시에 지원하는 무상태 방식 토큰입니다. 헤더는 알고리즘에 대한 정보와, 페이로드는 사용자 ID, 역할, 토큰 발행시간 등이 존재합니다. 이 책은 스프링 시큐리티를 바탕으로 구현한 내용이 있습니다.
2) GraphQL
REST API와 달리 GraphQL은 클라이언트가 원하는 데이터 구조를 직접 정의할 수 있어 유연하고 효율적이라 할 수 있습니다. 즉 데이터 형태를 선언적으로 정의해 서버가 그 구조에 맞게 정확히 일치하는 데이터를 반환한다고 볼 수 있죠. 스프링 부트 개발자 온보딩 가이드 책은 게시글, 팔로우, 사용자 관련된 내용을 GraphQL로 만들었습니다. 기능 구현 한 부분은 GraphiQL/Swagger-ui 이용해 API 테스트할 수 있게끔 방법도 알려줍니다.