데브코스 JPA 게시판미션 회고

박세준·2022년 12월 20일
0

JPA 로 간단한 게시판 만들기

강의 내용을 베이스로 진행한 JPA게시판 만들기 미션의 회고 입니다.

배운 것

  1. TDD
    페어프로그래밍을 하는 김에 팀내에서 진행하는 스터디(실전 자바 소프트웨어)에 나온 방식대로, TDD도 한번 해보기로 하였다. mokito를 이용해 mocking도 진행하고, 테스트 코드를 먼저 작성하고 구현을 하는 프로세스를 실제로 진행해 보았다.
  2. Rest doc
    요구사항 중 Rest doc을 이용한 API의 문서화가 있었다. MockMvc와 Rest doc의 document를 이용해 Rest doc을 이용해 문서화 할 수 있도록 하는 테스트 코드를 작성할 수 있었다.
  3. JPA
    jpa를 활용한 프로젝트다 보니, jpa의 활용은 필수였다. 그중 기본적인 JPA의 사용법과 더불어 Pageable을 이용해 findAll를 해 pagination 을 쉽게 해주는 Page 를 다루는 방법을 배울 수 있었다.
  4. 페어프로그래밍
    이번 게시판 미션은 우리 팀의 다른 분들과 함께 페어 프로그래밍을 진행하였다.하나의 레포지토리 3명이서 30분씩 돌아가면서 코딩을 한 후 개인 레포로 포크를 따서 각자 개발을 진행하는 방식으로 페어프로그램을 하였다. intelij의 codit 으로 3명이서 페어프로그래밍을 진행하였다. 시간은 오래 걸렸지만, 서로의 지식 공유를 할 수 있었기 때문에 유익한 방향이었던 것 같다.

느낀점

.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를 해야할까?
	같은 고민들이 있었다.

프로젝트에 아쉬운점

  • 제출 기한 때문에 너무 날림으로 코딩한 것 같다... 여유가 된다면 테스트 코드도 더 빡빡하게 짜고, User 관련 controller,service 추가, validation 처리 등등도 하고 싶다.
  • 그러고도 여유가 된다면 React 로 간단한 게시판 까지 만들어 보고 싶다.
profile
책을 좋아하는 대학생

0개의 댓글