본문 바로가기

전체 글14

완전히 실행 가능한 Spring Boot 배포 Spring Boot를 $ java -jar 명령어를 이용해 실행할 수도 있지만 spring boot 1.3.0 버전에서 추가된 기능을 이용해 별도 스크립트 없이 리눅스 환경에서 서비스로 등록해서 실행, 관리할 수 있다. 스프링 레퍼런스에서는 이런 형태를 완전히 실행 가능한 jar (fully executable jar)로 표현하고 있다. 실행 가능한 jar를 만들기 위해서는 maven에 아래 plugin을 추가해야 한다. org.springframework.boot spring-boot-maven-plugin true 그리고 프로젝트를 빌드해서 생성되는 아티팩트를 그냥 스크립트처럼 아래와 같이 실행하면 된다. $ ./my-application.jar 이는 위에 추가한 플러그인으로 인해 생성되는 실행 스.. 2018. 2. 6.
@NamedNativeQuery 결과 POJO에 매핑 @NamedNativeQuery 결과 POJO에 매핑 JPQL에 사용할수 없는 기능들이 있는데 그 중 하나가 UNION 기능이다. 이를 보완하기 위해 @NamedNatvieQuery를 이용해 Natvie 쿼리를 사용할 수 있게 지원한다. 예제 먼저 사용된 예제를 살펴보자. 추출 목적은 STUDENT 테이블과 TEACHER 테이블의 데이터를 한번에 보여주고 싶다. @Data @NamedNativeQuery( name = "Person.methodNameInRepository", query = "SELECT s.id, s.name, s.phone, s.address FROM STUDENT s WHERE s.class_number = (?1) " + "UNION " + "SELECT t.id, t.name, .. 2018. 1. 15.
Building MicroServices Building MicroServices (저자: 샘 뉴먼) 마이크로 서비스 아키텍쳐(이하 MSA)에 대해 처음 들었던 건 대략 2년 전 쯤이었던 것 같다. 하나의 커다란 모놀리틱 서비스가 아닌 기능 또는 도메인 단위로 작게 분리된 서비스들로 구성된 아키텍쳐라는 개념만으로 막연히 좋아 보였다. 그리고 언젠가는 내가 담당하고 있는 시스템에 MSA를 적용해야겠다는 마음이 들었는데 단순히 트랜드를 따라가고 했던 마음이 앞섰던 것 같다. 그러다 어느 날 문득 관련 서적이 있지 않을까 찾아보다가 발견한게 이 책이었다. 이 책은 MSA를 구축하는데 필요한 특정 기술의 상세한 사용방법이나 코드 레벨의 가이드를 하지 않는다. 그보다는 MSA 근본적인 내용을 다룬다. 그래서 이 책을 읽고 MSA를 적용해봐야겠다는 생각으.. 2018. 1. 7.
자바 ORM 표준 JPA 프로그래밍 후기 사설 나의 개발 커리어는 조금 특이하다면 특이할 수 있는데, 본격적으로 개발을 시작하면서부터 DB 연동을 JPA로 시작해도 무방하다는 점이다. 그래서인지 ORM 프레임워크에 대해서 거부감이 거의 없다. 종종 지인들이나 블로그로부터 듣는 얘기 중 ORM에 대한 거부감, 낮은 신뢰도 때문에 사용하기를 꺼리는 경우가 많았다. 다행인지 불행인지 나의 경험 덕분에 개인적으로는 JDBC Template이나 Mybatis같이 직접 쿼리를 작성하는 방식보다는 ORM를 사용하는걸 더 선호한다. (경우에 따라서는 위에 두 가지 기술이 더 적합한 경우도 있다. 여러 테이블에 걸쳐 있는 데이터들을 기반으로 통계, 분석용 데이터 추출에는 ORM은 적절하지 않다고 생각한다. 물론 무지에 의한 판단일지 모르겠으나 지금까지 경험상 .. 2017. 12. 13.