Spring
-
java bean mapper와 DTO 소개Back-end 2018. 3. 19. 20:22
Overviewspring, jpa 기반으로 개발할때 도움이 될 수 있는 java bean mapper 라이브러리를 소개합니다. 아래와 같은 간단한 JPA Entity 객체를 가지고 설명합니다. Http 기반의 api 를 개발할때 필요에 따라 JPA Entity 를 바로 api 의 응답으로 내보내는 경우가 있습니다. 아래는 샘플 코드입니다. 그러면 다음 그림과 비슷한 결과를 응답하게 됩니다. 이럴 경우에 발생하는 순환 참조 문제같은 몇가지는 jackson json 라이브러리가 해결해주기도하지만 일반적으로 아주 작은 프로젝트가 아니라면 추천할만한 방식이 아닙니다. JPA Entity 도메인 데이터와 api 응답 데이터간에 생명주기가 틀리기 때문입니다. 데이터 생명주기프로젝트의 초기에는 요구사항에 잘 맞춰서..
-
spring-data-jpa + querydsl 로 개발하기 - 2Back-end 2016. 7. 28. 20:00
spring-data-jpa + querydsl 로 개발하기 - 1 에서 이어지는 글입니다. 3단계 - 네임드 쿼리@Query, @NamedQuery 어노테이션 다른 테이블과의 조인이 필요하거나 where 절이 꽤 복잡한 쿼리라면 method 이름만 가지고 모두 표현하기에는 무리가 있다.3단계는 복잡한 쿼리를 만드는 가장 쉬운 방법으로 저장소 인터페이스에 method를 생성하고 선언부에 @Query 어노테이션을 사용하는 방법이다. @Query 어노테이션을 사용하는 method의 이름은 2단계 쿼리 메서드규칙의 영향을 받지 않으므로 원하는데로 지으면 된다. 여기서 작성되는 쿼리는 JPQL 로 JPA의 쿼리 문법이다. 옵션을 통해 native SQL로 작성도 가능하다. 이 단계도 쿼리가 잘못 작성되었을 경우..
-
spring-data-jpa + querydsl 로 개발하기 - 1Back-end 2016. 6. 8. 00:31
소프트웨어 개발이라는것은 퍼즐 맞추기나 블럭쌓기 보다는 회화 그리기나 조각하기에 더 가깝다고 할 수 있다. 안개가 겉히듯 서서히 선명해지는 것이 소프트웨어 개발의 특성이라고 본다. spring에서 개발되는 제품들은 소프트웨어 개발의 이런 특성을 잘 고려하여 설계가 되어 있다. spring을 이용하여 프로그램을 개발할때 이런 점진적, 반복적 개발이 가능하도록 지원하고 있다. 제로 컨피규레이션이라고 하여 모든 상황에 대해서 미리 지정된 기본동작으로 작동하며, 개발자자 추가설정을 해나가면서 개별 프로젝트가 원하는 요구사항에 맞춰가게 되는 방식이다. 비교적 최근에 추가된 spring-boot를 통해 빠른 개발이 완성되어가는 모습이다. 사용하는 기술 간단 소개 JPA (java persistence api)per..