내가 처음으로 해본 팀 프로젝트이지만 아쉬움이 많이 남는다. 진행하면서 내가 많이 부족하단 생각도 들었음.
일단 고치고 싶은 부분은 아래와 같다.
- Post로 만든 음식 등록하는 api를 put으로 만들어야한다고 생각한다.
- 내가 만든 코드에서는 post 메서드를 이용해서 같은 음식명이 있다면 갱신하는 부분도 포함하는데, http 메서드 중 Put을 이용하는 것이 더 맞다고 생각한다. - 근데 api 구현 명세서 적을 때는 post, get메서드를 이용해서 새로운 데이터를 넣고, 반환 받는 것이 맞다고 생각했다.
- for 문으로 구현한 부분을 stream을 이용해서 다시 구현하고 싶다.
- java 8에서 추가된 문법인 stream을 이용해 더 간결하고 가독성 좋고, 병렬화를 통해 성능을 좋게 만들 수 있다고 한다.
- controller의 코드를 조금 더 간결하고, 여러 함수를 사용해 만들고 싶다.
- 지금 코드를 보면 하나의 메서드 안에 40줄이 되는 코드가 들어가 있는데, 최근 클린 코드 책을 보면서 기능 별로 함수를 만들어 하나의 함수는 하나의 동작만 하게끔 .! 만드는 것이 좋다고 한다... 클린 코드 책 100장도 안 읽었는데도 내가 짠 코드가 너무 하찮게 느껴진다.
- 엔티티에 setter를 사용했다.
- 이전에 개인적으로 개발 공부를 했을 때는 lombok을 사용해서 mapper를 이용해 dto와 entity를 연결했는데, 이번 프로젝트에서는 lombok을 사용하니 오류가 났다. 팀원 말로는 어떤 dependency와 충돌이 난다고 lombok을 사용하지 않고 getter와 setter를 만들어줘서 lombok을 사용하지 않는 방향으로 가는 것이 좋겠다고 했다. 그래서 lombok을 사용하지 않고 getter와 setter를 손으로 만들었다. 하지만 controller 단에서 entity의 setter를 정하지 않고는 ... post 메서드를 사용하는 방법을 도저히 못찾겠어서 그냥 entity에도 setter를 만들 수 밖에 없었다...... 팀원분은 dto와 엔티티를 따로 구분하지 않고, Controller안에서 dto를 만드셔서 바로 사용하는 방식으로 구현을 하셨다. 하지만 나는 원래 코드를 짜던대로 짰다.. 팀원분처럼 컨트롤러 안에서 dto를 만들어줘서 사용하는 방식으로 했어야했나? 사실 이 부분이 가장 마음에 안들고 이 부분 때문에 완성도가 낮다고 생각하는 부분이다.
새로운 프로젝트를 하고 있는 중인데 내가 아는 지식이 너무 얄팍한 것 같아서 공부를 깊게 하고 싶었다. 그래서 책도 사서 보고 있는 중인데 정말 나는 모르는 것이 너무 많다는 생각이 든다. 우매함의 봉우리에서 절망의 계곡으로 한순간에 떨어졌다. 얼른 이 새로운 프로젝트를 완성하고 캡디 프로젝트를 리펙토링하고 싶다. 홧팅!!!!!
그렇다면 내가 잘 했다는 생각이 든 부분
- junit을 이용해 테스트 코드 작성해보기
- 사실 근데 이 부분도 엣지 케이스나 여러 케이스로 테스트 코드를 짠게 아니라 조금 미흡하다는 생각이 들지만 여러 케이스를 포스트맨이랑 h2로 확인한 결과는 잘 되었음. 좋은 테스트 코드를 작성하는 방법도 공부해야하겠다.
-
시간 안에 잘 완성하기
-
github master......
- 진짜 깃허브 푸시 두려움은 없앴다. develop 브랜치에서 작업하고 main에 머지하는 것은 아직 두근대지만... develop브랜치에서는 뭘 하던 괜찮으니까 괜찮아~라고 생각하게 되었다. github action도 사용해보고, Revert도 해보고, organization도 사용해보고.. 해볼건 다 해봤다고 생각한다.
- 팀원과의 소통!!
- 잘 모르는게 있으면 물어보래서 많이 물어봄..ㅎㅎ 힘드셨을라나.. 피드백도 빨리 하고 전체적으로 빨리빨리 진행한 편이라고 생각한다. 중간에 한번 엎었음에도 불구하고 기한보다 한 일주일은 빨리 완성한 듯