231227
한 일
- 1차 과제를 제출하고 남은 기간이 생겨서 바로 리팩토링을 준비하고 있다. 어떤걸 준비하고 있는지 맨 아래에 적어 놓겠다.
- DTO 클래스와 Entity 클래스가 가지는 Validation 책임과 범위를 찾아 학습했다
간단 회고
- 오늘 만큼 의미 있는 인풋을 많이 받은 날이 있을까? 또 있으면 좋겠다.
- 잠이 안오는게 너무 힘들다
할 일
- 프록시 학습 & 인터페이스 빈주입 사용 이유 학습
- 리팩토링
- RequestBody 사용시 @Valid 가 필요한 부분이 누락 됐다. 리퀘스트의 검증이 필요한 Controller 메서드에 누락된 @Valid를 추가한다.
- Request와 관련된 DTO 클래스 들에 대해 @NotNull 또는 @NotBlank 등의 Validation 관련 어노테이션을 다시 고민해서 추가하기
- DTO에서의 검증은 DTO 수준에서 검증 가능한 수준으로만 체크한다. 당장 생각 드는건, Null이 들어왔다던가, 예상 범위 밖 사이즈를 넘긴다던가, 공백값이라던가, 정수값만 받아야 된다던가
- 아마
implementation(”org.springframework.boot:spring-boot-starter-validation”)
의존성으로 주입되는 내부 어노테이션들이 DTO수준에서 사용할 수 있는 검증 관련 어노테이션이 아닐까? 조심스레 예상한다.
- 아마
- DTO에서의 검증은 DTO 수준에서 검증 가능한 수준으로만 체크한다. 당장 생각 드는건, Null이 들어왔다던가, 예상 범위 밖 사이즈를 넘긴다던가, 공백값이라던가, 정수값만 받아야 된다던가
- Step 1 단계에서 엔티티 클래스의 검증이 필요해보이는 순간은 없었지만, 검증이 필요하다면 private으로 만들어서 어떤 검증을 하는지 외부로 노출이 안되게 설정하는게 맞는것 같다.
- 이 때, 필드가 JVM 컴파일 시점에서 Java Primitive Type으로 변경되면 Primitive Type의 Default Value로 설정되기 때문에 Kotlin에서 Nullable한 타입으로 지정을 해줘야 TypeMissMatchException이 뜨지 않고 Validation이 제대로 적용된다.
- 그리고 각 검증 어노테이션의 메세지는 정적 변수로 미리 만들어서 메모리에 단 한 번만 올라가게 설정하는 것이 효율적일 거라고 생각이 든다.
'스파르타 코딩 클럽' 카테고리의 다른 글
스파르타 코딩클럽 TIL - 23 (0) | 2024.01.02 |
---|---|
스파르타 코딩클럽 TIL - 22 (0) | 2024.01.02 |
스파르타 코딩클럽 TIL - 20 (0) | 2023.12.26 |
스파르타 코딩클럽 TIL - 19 (0) | 2023.12.22 |
스파르타 코딩클럽 TIL - 18 (0) | 2023.12.21 |
231227
한 일
- 1차 과제를 제출하고 남은 기간이 생겨서 바로 리팩토링을 준비하고 있다. 어떤걸 준비하고 있는지 맨 아래에 적어 놓겠다.
- DTO 클래스와 Entity 클래스가 가지는 Validation 책임과 범위를 찾아 학습했다
간단 회고
- 오늘 만큼 의미 있는 인풋을 많이 받은 날이 있을까? 또 있으면 좋겠다.
- 잠이 안오는게 너무 힘들다
할 일
- 프록시 학습 & 인터페이스 빈주입 사용 이유 학습
- 리팩토링
- RequestBody 사용시 @Valid 가 필요한 부분이 누락 됐다. 리퀘스트의 검증이 필요한 Controller 메서드에 누락된 @Valid를 추가한다.
- Request와 관련된 DTO 클래스 들에 대해 @NotNull 또는 @NotBlank 등의 Validation 관련 어노테이션을 다시 고민해서 추가하기
- DTO에서의 검증은 DTO 수준에서 검증 가능한 수준으로만 체크한다. 당장 생각 드는건, Null이 들어왔다던가, 예상 범위 밖 사이즈를 넘긴다던가, 공백값이라던가, 정수값만 받아야 된다던가
- 아마
implementation(”org.springframework.boot:spring-boot-starter-validation”)
의존성으로 주입되는 내부 어노테이션들이 DTO수준에서 사용할 수 있는 검증 관련 어노테이션이 아닐까? 조심스레 예상한다.
- 아마
- DTO에서의 검증은 DTO 수준에서 검증 가능한 수준으로만 체크한다. 당장 생각 드는건, Null이 들어왔다던가, 예상 범위 밖 사이즈를 넘긴다던가, 공백값이라던가, 정수값만 받아야 된다던가
- Step 1 단계에서 엔티티 클래스의 검증이 필요해보이는 순간은 없었지만, 검증이 필요하다면 private으로 만들어서 어떤 검증을 하는지 외부로 노출이 안되게 설정하는게 맞는것 같다.
- 이 때, 필드가 JVM 컴파일 시점에서 Java Primitive Type으로 변경되면 Primitive Type의 Default Value로 설정되기 때문에 Kotlin에서 Nullable한 타입으로 지정을 해줘야 TypeMissMatchException이 뜨지 않고 Validation이 제대로 적용된다.
- 그리고 각 검증 어노테이션의 메세지는 정적 변수로 미리 만들어서 메모리에 단 한 번만 올라가게 설정하는 것이 효율적일 거라고 생각이 든다.
'스파르타 코딩 클럽' 카테고리의 다른 글
스파르타 코딩클럽 TIL - 23 (0) | 2024.01.02 |
---|---|
스파르타 코딩클럽 TIL - 22 (0) | 2024.01.02 |
스파르타 코딩클럽 TIL - 20 (0) | 2023.12.26 |
스파르타 코딩클럽 TIL - 19 (0) | 2023.12.22 |
스파르타 코딩클럽 TIL - 18 (0) | 2023.12.21 |