[최종] 피어리뷰

🦁 최종 프로젝트

어느덧 교육 중 마지막 프로젝트를 진행한다.
단순히 포트폴리오용 프로젝트가 아닌 나의 Code Convention을 확인할 수 있는 좋은 기회라고 생각한다.

📝 Rules

온보딩을 통해 본인의 코드리뷰 스타일을 공유하였고, 아래와 같이 팀내의 규칙을 정하였다.

1️⃣ : Commit은 기능 구현마다 한 번씩 나누어서 진행하기!
2️⃣ : 정답 코드 대신 참고 자료 올려주기!
3️⃣ : 명령조가 아닌 의견 제시형으로 리뷰하기!
4️⃣ : 코드 컨벤션 고려하여 리뷰하기!
5️⃣ : 자신의 코드와 비교하여 리뷰하기!
6️⃣ : 누구나 봐도 이해하기 쉬운 클린코드 리뷰하기!

🛠 Develop

  1. Member
    • 회원가입 / 로그인 및 로그아웃
    • 회원 정보 수정 (필명, 이메일)
    • 회원 정보 수정 (비밀번호)
    • 아이디 찾기
    • 비밀번호 찾기, 회원가입 이메일 발송
  2. Post
    • 게시글 작성, 게시글 리스트
    • 게시글 조회, 게시글 삭제
    • 게시글 수정
  3. Product
    • 상품 작성, 상품 리스트
    • 상품 조회, 상품 삭제
    • 상품 수정

😎 Review

1차 개발 기간이 끝나고 아래와 같은 리뷰를 받았다.

유효성 검증

  • 회원가입 시 Email 중복 체크
  • Email을 이용한 아이디 찾기 -> 올바르지 않거나 null값 체킹

유효성 검증에 최대한 집중해서 개발을 진행하였지만, 나도 모르게 진행하지 못한 부분이 있었다.
아이디 찾기와 회원가입에서 모두 사용이 가능하도록 독립적인 existByEmail() 메소드를 추가하였다.

Bug

  • @CreatedDate, @LastModifiedDate 미작동

개발을 완료하고, DB에 잘 들어가는지 체킹을 했지만, @CreateDate가 작동하지 않는 것을 확인했다.
당시에는 무엇이 문제인지 제대로 인지하지 못하고, 결국 @Builder를 통해 Date를 직접 주입해주었다.
리뷰를 진행하면서 이런 오류가 있다는걸 알고 @EnableJpaAuditing 어노테이션을 추가해주었다.

Code

  • WildCard 수정

IntelliJ의 설정 때문에 import가 되면서 자동으로 wildcard로 선언되는게 많아졌다.
wildcard를 사용할 때의 문제점은 다른 패키지에 동일한 클래스가 존재할 경우 충돌이 발생할 수 있다.
때문에 명확한 import를 통해 실수를 줄이는 습관이 필요하다!

참고 블로그

// BaseEntity
import lombok.*;
import javax.persistence.*;

🤔 Retrospect

미션을 진행하면서 가장 신경을 많이 쓴 것은 유효성 검증이라 생각한다.
DB에 가능하면 null이 들어가지 않도록 신경을 썼고, 대부분의 PostMapping에는 @Valid, BindingResult를 활용해 검증 처리를 진행했다.

모든 개발이 끝나고 피어리뷰를 통해 많은 것을 배웠다.
내가 발견하지 못한 버그 및 유효성 검증 등을 알 수 있었고, 팀원들이 공유해준 레퍼런스를 통해 새로운 지식들을 배울 수 있었다.
가장 좋은 점은 나의 코드와 팀원의 코드를 비교하면서 개발 안목을 넓힐 수 있다는 것이었다.

댓글남기기