Skip to content

코드 리뷰 내용 반영#5

Open
hajin0829 wants to merge 5 commits into
mainfrom
hajin
Open

코드 리뷰 내용 반영#5
hajin0829 wants to merge 5 commits into
mainfrom
hajin

Conversation

@hajin0829
Copy link
Copy Markdown
Collaborator

  1. Entity에 @Setter annotation을 넣으면 안 된다.
  1. 캡슐화(서로 관련 있는 기능들을 하나로 묶어 데이터를 보호)를 무시한다.
  2. 유지보수가 어렵다.
    -> 빌더패턴 사용, update 메서드를 추가해서 사용
  1. @NoArgsConstructor
  1. @NoArgsConstructor(access = AccessLevel.PROTECTED)
  2. JPA entity에서 주로 사용한다.
  3. 외부에서 들어오는 new Board()를 막을 수 있다.
  4. JPA만 사용하게 한다.
  5. @entity가 붙은 클래스는 반드시 기본 생성자가 필요하다.
  1. @GeneratedValue에서의 strategy 명시
  1. @GeneratedValue(strategy = GenerationType.IDENTITY)
  2. IDENTITY(AUTO_INCREMENT역할, MySQL에서 주로 사용)
  3. AUTO
  4. SEQUENCE(H2에서 주로 사용)
  5. TABLE
  1. DTO
  1. 엔티티의 내부 구조를 숨길 수 있다.
  2. 전송할 데이터의 양을 최적화 할 수 있다.
  3. 유연한 변경이 가능하다.
  4. 컬럼에 있는 값은 dto 뿐만 아니라 entity에도 있어야 한다.
  5. dto는 요청과 응답에 사용되는 값만 담는다.
    -> BoardCreateRequestDTO, BoardUpdateRequestDTO 생성
  1. @AllArgsConstructor
  1. 롬복 라이브러리의 어노테이션
  2. 클래스의 모든 필드를 매개변수로 받는 생성자를 생성한다.
  3. 의존성을 주입한다.
  1. @NoArgsConstructor
  1. 롬복 라이브러리의 어노테이션
  2. 기본 생성자 생성
  3. Entity 생성 시에 사용
  4. 빈 객체 생성 시에 사용
  1. 의존성 주입
  1. 강하게 결합된 클래스를 분리한다.
  2. 결합도를 낮추고 유연성을 확보한다.
  1. @RequestMapping 대신 @PostMapping, @GetMapping 등을 사용

  2. PUT과 PATCH의 차이

  1. PUT: 자원의 전체를 업데이트 한다.(기존 값을 모두 알고 있어야 함)
  2. PATCH: 자원의 일부를 업데이트 한다.(변경할 값만 알아도 가능)

Board.java의 전체적인 코드 구조를 개선하였습니다. createdAt이 null 값으로 찍히는 문제와 불필요한 주석 정리는 추후 수정 예정입니다.
기존 코드를 dto를 사용하여 수정하고 createdAt이 null값으로 찍히는 문제를 해결하였습니다.
기존 h2 기반의 db를 MySQL로 변경하였습니다.
기존 update API를 PUT 메소드에서 PATCH 메소드로 변경하였습니다.
@plmokn044330-ship-it
Copy link
Copy Markdown
Collaborator

기본기가 매우 탄탄하신 것 같습니다. 그리고 전반적인 JPA와 계층 분리,DTO에 대한 이해도가 높으신것 같습니다. @Setter를 지양하고 팩토리 메서드나 빌더를 활용하신 점이 인상 깊습니다.

특히 @NoArgsConstructor(access = AccessLevel.PROTECTED) 와 빌더 패턴을 통해서 개발자가 지정한 형식으로만 객체를 생성하도록 하여 데이터 정합성을 견고히 하는 부분을 새로 배워갑니다.

Copy link
Copy Markdown
Collaborator

@daeyeon0214 daeyeon0214 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다!

@yell252
Copy link
Copy Markdown
Collaborator

yell252 commented Mar 10, 2026

본인이 궁금한 걸 바로바로 찾아내시는 모습을 꼭 본받아야 할거 같습니다! 수고하셨습니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants