이번 글을 통해 배워 갈 내용 ORM 정의 JPA 정의 ORM 만들어보기 실습 ORM 정의 Object Relational Mapping의 약자로서 객체 관계 맵핑을 해주고 객체 모델과 관계형 모델의 불일치를 해결하는데 도움을 줍니다. 객체를 테이블에 영속화하는데 도움을 주는 기능이라 보시면 됩니다. JPA 정의 Java Persistence API는 자바에서 주로 쓰는 ORM 기술표준입니다. ORM 만들어보기 먼저 Spring boot 프로젝트를 만들어줍니다. (쌩 JAVA 프로젝트로 하셔도 무방하나 편의를 위해서 Spring을 사용하였습니다) Dependency로는 편의를 위해서 Spring Web, Lombok 그리고 h2 인메모리 DB를 추가했습니다. h2 in memory db를 사용하기 위해서..
이번 글을 통해 배워 갈 내용 H2 in memory db 연결 시 문제 해결법 아침 4시에 일어나서 경건한 마음으로 코딩 공부를 하면서 Eureka Discovery Server에 Gateway와 Client Server를 붙이는 연습을 하고 있었는데 Client Server에 in memory Data를 붙이던 도중 아래와 같은 에러가 발생했습니다. Database "mem:testdb" not found, either pre-create it or allow remote database creation (not recommended in secure environments) 단순하게 로컬 환경에서 테스트하고자 하였기 때문에 아래와 같이 spring boot application.properties ..
이번 글을 통해 배워 갈 내용 @PathVariable @RequestParam @RequestBody 먼저 정답은 없음을 밝힙니다. 다만 제가 느끼기에 효율적인 방법을 공유합니다. 1. @PathVariable GET localhost:8080/cats/1 DELETE localhost:8080/cats/1 처럼 하나의 데이터, 객체를 GET 할 때 사용합니다. AKA 경로를 지정할 때 사용 @GetMapping("{cat-idx}") public Cat getCat(@PathVariable("cat-idx") int idx) { // 서비스에서 조회 // 값 리턴 return new Cat(idx, "puss", "fire"); } 2. @RequestParam GET localhost:8080/ca..
이번 글을 통해 배워 갈 내용 Spring boot 시작 시간을 줄이는 5가지 방법 1. Lazy Initialization 기능 1-1 버전 Spring boot 2.2.M1 버전부터 지원 가능한 기능입니다. 1-2 사용법 Lazy initialization 기능을 추가하는 법은 간단하게 appliction.properties 파일에 spring.main.lazy-initialization=true 를 추가해주면 됩니다. 1-3 장단점 시작시간을 줄여주는 장점이 있으나..... 시작시 몇 가지 에러를 확인하지 못해서 ClassNotFoundException을 발생시키는 경우와 부트 후 첫 API 요청이 느려지는 경우가 있습니다. 2. auto-configuration 설정 1-1 개요 Spring B..
이번 글을 통해 배워 갈 내용 자바 맵핑 MapStruct에 대한 소개 MapStruct 성능 소개 MapStruct 사용법 자바 맵핑 Spring 서버에서 Object 맵핑을 하기 위해서 BeansUtil을 사용하거나 손으로 하나하나 Setter와 Getter로 설정을 하는 경우 매우 힘이 드는 일이다. 성능 저하를 최대한 줄이고 Object Mapping을 할 때 하나하나 다 막일을 안 하려면 어떻게 해야 될까? 라고 고민을 한다면 MapStruct를 권장한다. MapStruct에 대한 소개 MapStruct는 Annotation 기반으로 type-safe bean mapping 클래스를 제공하는 기능이다. Mapping 되는 내용을 하나하나 다 적는 것보다 시간 절약이 되며 다른 동적 맵핑보다 시간..
Maven으로 다중 모듈을 만들어서 배포해보겠습니다. 스프링이나 메이븐에 대한 기초지식이 있다고 가정하고 진행합니다. 간단한 컨트롤러를 만들고 모듈끼리 연동한것을 Azure App Service에 배포합니다. 인텔리제이를 썻습니다만 이클립스로 따라 하셔도 무방합니다. 프로젝트를 만듭니다. Artifact, name, directory 등 현재 페이지는 크게 신경 쓸게 없습니다. 두 번째 페이지도 동일합니다. 추가 없이 진행합니다. 프로젝트에 마우스 올리고 New -> Module을 생성해줍니다. Maven 기반에 이름을 설정하고 OK를 합니다. 저는 core, web 모듈을 만들었고 web 모듈은 core에 종속적입니다. core 모듈은 다음과 같습니다. web 모듈은 다음과 같습니다. 부모 POM ma..