1주차는 스프링 프로젝트에 적응하는 시간이었던 같습니다.
Jwt를 활용해서 간단한 로그인 로직을 개발 했습니다.
추후에 왜 ActNow 서비스에 소셜 로그인과 Jwt를 적용했는지에 대해 포스팅 할 예정입니다.
구현기능
2주차 부터 본격적으로 기능을 개발하기 시작했습니다.
이번 스프린트 기간동안 구현한 기능은 다음과 같습니다.
1. 배우 프로필 등록
2. 배우 프로필 이미지 등록 (S3 연동)
3. 배우 프로필 이미지 여러장 등록 (S3 연동)
4. 배우 프로필 단일 조회
5. 배우 프로필 리스트 조회 (페이징 기능 추가)
맞닥뜨린 문제
1. JPA 문법 미숙 문제
아무래도 기존 장고 ORM에 익숙한 상태에서 바로 JPA로 넘어오니 JPA 문법에 익숙하지 않아 시간을 잡아 먹는 부분이 많았습니다.
장고 ORM에서 역참조를 할 때 prefetch_related를 사용했는데 JPA에서는 어떻게 비슷한 기능을 사용하는지 몰라 상당히 애를 먹었습니다.
ManyToOne 필드를 선언했을 때 관꼐 테이블에서 OneToMany를 양방향으로 설정하지 않아서 조회를 하기 어려웠습니다.
Jpa에 대한 학습을 먼저 하지 않고 Spring Data Jpa를 바로 활용해서 Jpa의 원리를 잘 모르는 문제가 나타타서 프로젝트를 진행하면서 Jpa공부를 병행 하기로 했습니다.
2. Dto 매핑
Dto를 활용하는게 처음이다 보니 활용을 하는데 어려움이 많았습니다.
요청에서 Dto를 활용할 때, 응답에서 Dto를 활용할 때 어떻게 해야하는지 감이 잘 안왔는데 예제 검색과 몇번 사용하다보니 조금 익숙해졌습니다.
다만 아직까지 Dto에서 객체로 갖고 있는 필드나 리스트로 갖고있는 필드등을 빌드할 때 제가 지금 하고 있는 방식이 맞는지 의구심이 듭니다.
3. 에러 핸들링 & 입력값 검사
기존에 장고로 프로젝트를 할때 그 어떠한 입력값이나 에러 핸들링을 이잡듯이 했었는데
이번 스프링 프로젝트에서는 기능 구현도 많이 어려워서 에러 핸들링이나 입력값 검사등을 신경쓸 여유가 없었습니다.
입력값 검사나 에러 핸들링에 대해서도 하루 빨리 학습이 필요합니다.
4. 테스트 코드 부재
가장 아쉬운 점은 테스트 코드 작성이 완벽하지 않다는 점입니다.
테스트용 디비 설정, 외부 라이브러리 mock테스트가 미숙하여 진행하지 못했습니다.
테이블을 자주 바꾸거나 수정이 이루어질 때 마다 안전하게 수정이 이루어진지 확신이 서지 않고
각 APi마다 직접 서버를 켜서 테스트를 진행하다보니 테스트 코드의 부재가 큽니다.
결국은 게으름
회고를 작성하면서 느낀점은 역시나 저의 게으름 입니다.
기존 팀원들과 하던 프로젝트와 달리 백엔드 혼자 만들다보니 쉽게 게을러지는 것 같습니다.
출시를 목표로 하고 사용자들과 상호작용하는 서비스를 만들면서 책임을 올라 갔지만 책임에 부응하지 않고 있습니다.
3주차 스프린트에서 이번 스프린트에서 느낀점을 보완하겠습니다.
'ActNow' 카테고리의 다른 글
🎬 운영로그 day3 (0) | 2021.11.26 |
---|---|
🎬 운영로그 day2 (0) | 2021.11.25 |
아마존 그만하고 네이버 합시다! (0) | 2021.11.24 |
🍀 application.properties로 변수 숨기기 (0) | 2021.11.22 |
day2 error log (0) | 2021.11.02 |