보통 bean validation은 controller나 service 단위에서 호출하여 사용한다. API를 호출을 통해 bean validation을 체크하지만 다른 서비스에서 controller를 호출할 경우나 수동으로 직접 체크해줘야 할 일이 있을 수도 있다. 그럴 경우 유효성 검사를 트리거 할 수 있는 방법이다. public static void validate(T object, Class... groups) { ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); Validator validator = factory.getValidator(); Set violations = validator.validate(object, g..
● 변경 정보 확인 개발을 진행하다 보면 두개의 값을 비교해야 하여 서로 다른 데이터를 확인해야 하는 경우가 있다. 예를 들면 변경 이력을 저장하고 히스토리로 활용하고자 할 경우이다. zjsonpatch.JsonDiff 와 guava.MapDifference를 확인 하고 어떻게 데이터를 비교하여 보여주는지 알아보자 ● git 주소 bitbucket.org/technology-team/object-differing/src/master/ ● 공통설정 데이터가 다른 오브젝트를 만들기 위해 dto를 생성합니다. - Member.class import java.util.List; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Gett..
● graphql이란? Graphql은 페이스북에서 만든 쿼리 언어입니다. 웹 클라이언트가 데이터를 서버로 부터 효율적으로 가져오는 것이 목적입니다. 클라이언트 시스템에서 작성하고 호출합니다. ● rest API 와 비교 REST API는 URL, METHOD등을 조합하기 때문에 다양한 Endpoint가 존재 합니다. 반면, graphql은 단 하나의 Endpoint가 존재 합니다. 또한, graphql API에서는 불러오는 데이터의 종류를 쿼리 조합을 통해서 결정 합니다. 예를 들면, REST API에서는 각 Endpoint마다 데이터베이스 SQL 쿼리가 달라지는 반면, graphql API는 graphql 스키마의 타입마다 데이터베이스 SQL 쿼리가 달라집니다. ● 예제 GIT 주소 bitbucket..