기술 Trouble Shooting
- JPA
- 영속성 컨텍스트의 이해
- 양방향 연관관계 편의 메서드
- N+1 문제 ⇒ fetch Join을 통해 해결
- database
- @GeneratedValue(strategy = GenerationType.AUTO) 선언시 DeadLock 발생
- MySQL의 기본전략 이해 (Table)
- auto Increment에 대한 이해
- Indexing을 통해서 성능 개선
- 성능 Test
- Jmeter를 통해서 성능 테스트
- AsciiDoc을 통한 API 문서 자동화
개선점
- 협업 환경
- git 충돌에 의해서 해결하는 과정에서 작성하였던 코드가 삭제되었다.
- git의 명령어와 작동 과정을 보다 정확하게 이해해야 할 것 같다.
- JIRA를 통해 스크럼 방식의 협업을 시도하였나 원활하게 진행되지 않았습니다.
- 기획
- 예약 가능한 시간을 조회 기능을 정적계산과 동적계산으로 나눠서 진행하였는데 패키지를 나눠서 개발하고 다시 합치는 과정에서 시간이 오래걸렸다.
- 프로젝트 환경
- 전체적인 Entity를 구현하지 않고 각자 맡은 기능을 구현하다 보니 많은 걸림돌이 발생하였다.
- Service, Controller 등의 기능 구현 전에 Entity를 모두 만들어 두어야 조금 더 독립적으로 개발이 가능할 것 같다.
- 코드 컨벤션
- 메서드명, URI, 등의 컨벤션을 명확히 정하고 시작하는 것이 좋을 것 같다는 생각이 들었다.
- 컬럼들을 더 줄여야 하겠다고 생각이 들었습니다.
- 필수 컬럼들만 선택.
느낀점
이번 첫 팀프로젝트를 통해서 협업의 경험을 쌓을 수 있었다.
팀원들과 매일 회의를 진행하면서 프로젝트를 한 경험은 처음이었다. 계속해서 프로젝트 구현에 대한 구체적인 의견을 나누고 고민하면서 같이 프로젝트를 개선해 나아간 좋은 경험이었다.
또한 이번 프로젝트를 하면서 기술적으로 많이 성장함을 느꼈다.
프로젝트를 진행하면서 발생하는 문제들을 해결해 나아가는 과정 속에서 사용했던 기술들을 더 깊이 이해 할 수 있었다.
이번 경험을 통해 부족한 점을 개선하여 다음 프로젝트를 진행한다면 많은 도움이 될 것 같다.