강의 내용을 베이스로 진행한 JPA게시판 만들기 미션의 회고 입니다.
.1. 난 아직 부족한 점이 많다.
다른 사람들이 코딩하는 방식을 보니, 그리고 실습을 하면서 확실히 아직은 모르는게 많은 것 같다는 느낌이 들었다. properties.yml 파일의 활영법, JPA의 다양한 어노테이션, 메소드 같은 것들을 제대로 활용하지 못하는 느낌? 이런걸 늘리기 위해 좀 많이 이런 JPA 사이드 프로젝트를 진행해야 할 것 같다는 생각이 들었다.
2. 스스로 처음 계획한 시간의 2배정도의 시간을 두고 개발 계획을 잡는게 좋을 것 같았다.
엄청 간단한것 같아도 생각보다 시간이 많이 들기도 한다. 숙련도 부족과 연관된 문제긴 하지만, 개발을 하다보면 크고 작은 분기점을 만나고, 그 순간 순간마다 어떤식으로 문제를 해결할지, 어디까지 표현을 해야할지 선택해야 했다. 그래서 내가 예상하는 시간보다 2배의 시간은 여유롭게 잡아야 할것 같은데? 라는생각을 가지게 되었다.
3. TDD는 어렵다.
뭔가 TDD 스러운 TDD를 처음해봤는데, 유닛테스트를 진행할 때 의존성을 제거하기 위해 mocking을 이용했다. 근데, mocking으로 유닛 테스트를 진행하기에 생각보다 많은 에로사항들이 있었다. 일단은 테이블의 id 정책은 SEQUENCE로 기본키를 점차 증가시키는 정책을 택했는데, 이를 repository를 mock 하고 service 단에서 테스트를 하기에는 여러 에로 사항이 많았다. mockito에 미숙한 이슈일 수도 있는데, save의 순서에 따라 나오는 Entitiy의 id 가 달라졌어야 했는데 이런걸 어떻게 처리해야 할 지 잘 몰르겠어서 테스트를 1개의 entity에 대해서만 진행을 하는등 간단한 테스트밖에 못했다. 이런 크고 작은 문제들이 있다 보니, 중간중간 유닛 테스트가 아닌 통합 테스트를 하고 싶은 욕구가 솟구치기도 하고 그랬다. TDD를 쉽게 하는 그날까지 열심히 노력해야 겠다.
2에 대해...
본 미션을 진행하면서는 pagination, 그리고 TDD를 시작할 때 많이 느꼈는데,
대표적으로 Page<T>의 필드중 어디까지 사용자에게 보내줄까, Repository 까지 TDD를 해야할까?
같은 고민들이 있었다.