지금까지는 Spring 개인프로젝트를 진행했었다.
한주간이지만 4명이서 팀프로젝트를 진행했다.
나는 팔로우기능을 맡아서 개발했고 추가적으로 게시판 작업 리팩토링/추가기능 개발, Git 작업 플로우, 단위테스트 기능을 맡았다.
사용기술
- Java 17
- Mysql 8
- Spring security
- Jwt
- Redis
- Jpa
ERD
발표자료 링크
https://teamsparta.notion.site/1ba2dc3ef51481539903e1714d083dc0
발제/특강 자료 | Notion
📚 Chapter 1 미니 프로젝트
teamsparta.notion.site
GIT 링크
https://github.com/Feeda-Project/spring-feeda
GitHub - Feeda-Project/spring-feeda: 모두가 모여 서로의 스터디 정보와 노하우를 나누는 커뮤니티 SNS입
모두가 모여 서로의 스터디 정보와 노하우를 나누는 커뮤니티 SNS입니다. Contribute to Feeda-Project/spring-feeda development by creating an account on GitHub.
github.com
회고
이전 프론트엔드 개발을 할 때에는 다양하게 팀플을 해봤기에 어려움이 없을거라 생각했는데 프론트에서 타입스크립트를 쓸 때도 마찬가지이지만 기본적인 타입이 설정되어있지 않으면 개발에 있어 생산성이 떨어진다는 것을 다시 느꼈다.
특히나 JPA를 사용했기에 Entity 연관관계를 설정했어야 했는데 그 부분을 초반에 미리 정하지 못했기에 그 부분이 더욱 아쉽게 느껴졌다.
다음 프로젝트에서는 기본적으로 사용하는 Entity는 Erd 구축 이후 프로젝트 개발에 투입하기 전 미리 생성을 해놓는게 나을 것 같다라는 생각이 들게 되었다.
또한 JwtToken 을 사용해 인증 / 인가를 진행했는데 그 과정에서 로그아웃을 할 수 있는 방법이 없었다. jwttoken은 stateless 이기 때문이다. 따라서 만료시간까지 토큰이 쭉 살아있게 되는데, 이를 컨트롤 하기 위해서 Redis를 사용했다.
팀원분이 맡은 역할이기에 리뷰를 남기며 코드를 봤는데, Redis는 어떠한 경우에 사용하는지만 들어보고 사용해본 적은 없었는데 생각보다 코드가 복잡하지 않았다.
현재 진행중인 개인 프로젝트에 도입해서 블로깅할 생각이다. 우리는 로그아웃 시에만 BlackList를 통해 사용했었고 Refresh Token은 따로 사용하지 않았었는데 RefreshToken에도 사용하면 좋을 것 같다는 생각이 들었다.