아래는 팀 프로젝트를 마무리하고 포스팅한 링크이다.
https://velog.io/@a_rubz/TIL-%EC%8B%AC%ED%99%94-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-6%EC%9D%BC-%EC%B0%A8
이번 프로젝트에는 AOP를 활용한 예외처리와 관리자 기능을 구현했다. 추가로 다른 팀원이 맡은 도움 요청 게시판의 기능들도 일부 구현했다.
처음에는 해보지 않은 Spring Security와 JWT를 맡고 싶었지만 이 기능을 해보고 싶은 팀원이 있어서 양보하게 되었고 대신 저번에 했던 예외처리와 함께 관리자 기능 두 가지를 하게 되었다.
예외처리는 저번과 내용은 같지만 도메인에 따라 Exception의 종류를 여러가지로 나눠서 더 다양하게 만들었다. 또한, 파일 분리를 더 체계적으로 했다.
관리자 기능은 Spring Security가 제공하는 @PreAuthorize를 통해서 관리자를 검증했고 이후의 로직은 다른 기능들의 CRUD와 비슷했다.
기존에 했던 것과 같은 기능을 담당해도 좀 더 개선된 로직을 만들기 위해 노력해서 만족스러웠다.
다음의 링크는 프로젝트에 대해 튜터님께서 남겨주신 코멘트의 링크이다.
https://github.com/quipu1/ZIPSA-HelperPJT/issues/69
여기서 특히 인상 깊었던 점은 코드의 중복을 해결하는 부분이었다.
DTO에 모든 객체를 담아서 어쩔 수 없이 서비스단에서 거의 모든 부분에 DB에서 데이터 한 개를 가져오는(GET, findBy..) 로직이 중복된다.
그래서 아예 DTO에 담지 않고 객체 자체를 반환하는 로직을 만들고 이를 의존성 주입을 통해 가져다 쓰도록 하는 방법이었다.
최종 프로젝트에서는 기간이 길어진만큼 코드의 효율에 중점을 두고 더 좋은 코드에 대해 고민하는 시간을 충분히 가져야겠다.
이번 프로젝트는 아쉬운 부분이 꽤 됐다. 팀원의 질문을 많이 받았던 게 큰 부분을 차지했는데 이게 알려주기 위해서 해당 문제를 더 깊이 파고들게 되기 때문에 내가 아는 것이 많아져서 좋지만 그런 시간이 길어지면 내가 맡은 부분에 소홀해지게 되었다. 더 좋은 로직을 만들 수 있지 않았을까! 라는 아쉬움이 큰 프로젝트였다.
하여튼 최종은 이런 아쉬움이 적었으면 좋겠고 추가로 더 욕심을 내서 이제까지 한 프로젝트보다 규모를 키우고 싶다. 도메인을 더 다양하게 하거나 새로운 기능을 넣거나 아니면 대규모 트래픽을 다뤄보고싶다.
그래서 남은 기간동안 배웠던 걸 다시 복습하고 하고 싶은 기술에 대해 공부를 열심히 해야겠다! 마지막 프로젝트니 아쉬움이 남지 않도록! 파이팅 파이팅!