[Java] SpringBoot JPA Rest API 토이 프로젝트 진행 회고
※ 목차
- 프로젝트를 시작하게된 계기
- 주요 기능
- KPT
- 진행 후기
- SpringBoot + JPA를 활용한 Rest API Example 입니다.
- Rest API 특성상 JWT를 활용하여 Front와 소통합니다.
GitHub : https://github.com/DoHyeonJ/SpringBoot_RestApi_Example
프로젝트를 시작하게된 계기
- 이커머스 웹 백엔드 개발자로 2년정도 근무를 하면서 Rest API 를 접하고 사용하였지만 직접 설계를 하거나 설계를 위한 고민을 해본적없이 이미 존재하는 로직들에 맞춰서 회사의 시스템에 문제되지 않게 개발하는일이 주된 개발목적이였습니다.
이런식의 개발을 계속해서 진행하게 된다면 추후 이직을 하거나 또는 새로운 프로젝트에 투입되어 설계를 해야되는 일이 생긴다면 기존 로직을 따라하게 될것이고 그렇다면 효율적인 설계를 하지 못할것이다 라는 결론을 내리게 되었습니다.
- 추후에 SpringBoot를 활용한 토이 프로젝트를 진행하는데 회원기능이 필요한 프로젝트라면 이렇게 만들어놓은 Rest API Example을 활용하여 빠르게 개발할 목적도 있습니다.
주요 기능
- 회원가입
- 이메일 토큰 인증
- Role 관리
- 로그인
- 이메일 인증 여부에 따른 로그인 허용 처리
- JWT 발급
- 프로필
- JWT 토큰을 사용한 페이지 접근권한 체크
- swagger
KPT
Keep - 지속할것
- SpringSecurity와 Filter를 활용한 JWT토큰 활용법은 프로젝트를 좀더 간결하고 효율적으로 만들어줬다.
Spring에서 사용할수 있는 패턴이나 어노테이션 들을 최대한으로 활용하는 방법을 터득한다면 추후 다른 프로젝트 진행시에 원활하게 진행할 수 있을것으로 예상된다.
Problem - 해결할것
- 테스트 코드 작성에 대한 이해도, 완성도, 테스트 코드를 작성하기 쉽도록 로직을 구성하지 못했다.
평소 테스트 코드를 상세히 작성할 경우가 많지 않았고 그로인해 서버 로직에 대한 테스트 코드의 완성도가 부족하였다.
Try - 시도할것
- TDD를 활용한 개발을 진행한다면 좀더 양질의 코드를 작성할 수 있을것 같다.
좋은 코드는 테스트하기에도 좋은 코드라는 유튜브, 강의, 책의 말을 이해하지 못했지만 이번 프로젝트를 진행하면서 Junit5를 활용하여 테스트 코드를 작성하였고 이를 통해서 "좋은 코드 = 테스트하기에도 좋음" 이라는 뜻을 깨닫게 되어 다음 프로젝트에는 TDD로 개발을 진행하고싶단 생각을 하게된다.
진행 후기
- Rest API의 구조와 작동원리를 상세히 알고싶어서 프로젝트를 진행하게 되었는데 확실히 A to Z 까지 개발을 하게되니 Rest API에 대한 이해도가 높아졌고 테스트 코드의 중요성, 설계단계에서 고민해야될 부분이 어떤 부분인지 설계가 왜 중요한지 Front와 소통하는데 있어서 어떤부분을 초점으로 두고 개발을 진행해야 되는지 스스로 생각하게 되었다.
확실히 좋은 경험이 되었고 개발자로 살아가는데 있어서 토이프로젝트를 지속적으로 진행해야 하는 이유를 알게되어 개인적으로 많은 성과를 거둔 프로젝트라고 생각한다.