🖥️ 주요 담당 업무
📝 프로젝트를 통해 배운 점
📂 Spring batch
- batch 프로세스를 구현하면서 batch에 대해 공부하고 spring batch를 통해 직접 구현해보았습니다.
- 이 과정에서 spring batch의 구조와 설정의 편리성을 알 수 있었습니다.
- job이 끝난 후 다른 job을 시작할 수 있고, 실패 시의 동작을 포함하여 다양한 설정을 간편하게 할 수 있었습니다.
- 또 서비스에 따라 job이 실패 시 해야할 동작이 달라질 수 있다는 것을 깨달았습니다.
📂 동시성
- JPA 뿐만이 아니라 여러 스레드에서 하나의 데이터에 동시에 접근할 경우 동시성 문제로 인해 업데이트가 이루어지지 않는다는 것을 실제로 경험해보았습니다.
- 따라서 이러한 상황이 발생하지 않도록 방지하는 거나 그럴 수 없다면 lock이나 사전 설정 등을 통해 최대한 문제가 발생하지 않도록 설정해주어야 한다는 것을 깨달았습니다.
📂 테스트 코드의 중요성
- 이번 프로젝트를 수행하며 백엔드의 경우 JUnit을 통한 컨트롤러, 서비스 테스트를 실행하였습니다.
- 실제로 예상과 다른 결과를 도출하는 서비스에 대해 로직을 검토해서 수정할 수 있었습니다.
📂 로그 관리
- 사용자 이용에 따른 로그를 추적, 저장해 관리하였는데 실제로 추후 기능을 개발하며 문제가 발생했을 때 저장된 로그를 활용해서 어떠한 부분에서 어떤 문제가 발생하는 지 빠르게 파악할 수 있었습니다.
📚 프로젝트 리뷰 및 아쉬웠던 점
- 프로젝트에서 BE 개발을 맡은 것은 처음이었습니다. 재미있기도 했지만 아직 제가 모르는 부분이 많고, 코드를 수정할 때 단위 테스트 코드는 고치지 않아 오류가 발생하는 등 익숙하지 않아서 발생하는 문제들에 대해 더 공부하고 싶습니다.
- 프론트엔드의 경우 기초 설정부터 구조까지 설정했는데, 개발 기간 이슈로 typeScript를 사용하지 못한 것이 아쉽습니다.