Validation(클라이언트로부터 전달된 데이터 검증), @AuthenticationPrincipal
spring에서 Validation이 필요한 이유웹 상에서 클라이언트로부터 전달되는 데이터를 신뢰할 수 없다.물론 프론트엔드에서 검증을 하겠지만 만일의 사태를 방지하기 위해null, 공백, 범위를 벗어난 숫자 등은 반드시 검증이 필요하다.검증하지 않으면 데이터가 null인 경우, NullPointerException 발생 가능성 및db 제약 조건 위반 등으로 이어질 수 있음.spring은 jakarta.validation 기반의 Bean Validation을 지원한다.DTO 클래스에 애너테이션만 붙여도 자동으로 유효성 검사를 수행할 수 있다.ex. @NotNull(null 불가), @NotEmpty(null과 ""불가), @NotBlank(null, "", " "불가),@Size(문자길이 측정), @Em..
더보기
DTO, VO(ex. record class), DAO(ex. JpaRepository 구현체) 개념 정리
dto(data transfer object, 데이터 전송 객체)는 클라이언트와 서버간 데이터를 전송할 때(계층간 데이터를 전송할 때 )사용되는 객체다. dto와 vo(Value Object)의 차이는vo는 값을 담은 객체로 불변성을 특징으로 하며, 값 자체를 표현하는데 중점을 둔다.vo는 불변적이며, 값과 관련된 로직 포함이 가능하다. vo는 값의 동일성, 불변성을 보장하는디자인 패턴이며, vo패턴을 간결하게 구현한 문법이 record class다.dao(data access object)는 데이터베이스 또는 기타 영구 저장소(파일 시스템, 외부 서비스 등)에접근하는 로직을 캡슐화하는 디자인 패턴이다(데이터베이스 접근 로직의 캡슐화).dao의 핵심 역할은 CRUD(create, read, update,..
더보기