Spring 17

[Spring] CrudRepository의 save vs saveAll

프로젝트를 하면서 데이터를 저장하는 부분을 구현하고 있었습니다. CrudRepository에는 Iterable을 input으로 여러 tuple을 저장하는 메서드인 saveAll을 제공하고 있습니다. 그런데 제가 구현하는 부분에서는 loop에서 여러 tuple을 save로 저장하고 싶었습니다. 두 메서드의 속도에 차이가 있을까요? save가 오래걸리지 않을까? 저는 단순하게 여러번 쿼리를 날리는 것보다 한 번 쿼리를 날리는 것이 더 시간이 덜 소요될 것이라 생각했습니다. 예를 들어 100개의 tuple을 저장해야한다고 했을 때, save 메서드로 tuple 하나마다 데이터베이스에 요청을 날리면, 데이터베이스는 쿼리가 올 때마다 해당 데이터를 저장하기위해 저장장치에 접근할 것이라 생각했기 때문입니다. sav..

HTTP Header는 case-sensitive인가

1. (동기) HTTP header를 가져오지 못하는 상황 Spring으로 REST API Controller를 구현하던 중, HTTP 헤더를 읽어오지 못하는 상황이 발생하였습니다. HTTP request는 Postman으로 전송하였고, 읽고자하는 HTTP header는 "Content-Type"이었습니다. Postman의 header 확인 Controller 확인 Response 확인 2. (문제접근) HTTP header가 정상적으로 서버에 실려왔는가? 먼저 HTTP header가 정상적으로 서버에 도착했는지 확인이 필요했습니다. 이를 위해 서버 controller에서 수신한 HTTP header의 모든 내용을 출력해보았습니다. Controller에서 출력 Controller에서 출력 확인 3. (문..

JAR와 WAR의 차이?

서비스에 맞는 Spring boot 패키징 방식? 프로젝트 도중 Spring boot를 이용한 서버를 만들려고한다. 이 서버는 API 서버로 배포하여 사용되고, 리소스 서버(DB)를 따로 두어 요청에 맞게 사용자에게 응답을 주는 역할을 하려한다. Spring boot에서는 jar와 war 2가지 방식의 패키징을 지원하는데, 어떤 방식을 사용해야할까? JAR (Java ARchive) Java 어플리케이션이 자바 환경 위에서 바로 동작할 수 있도록 자바 프로젝트를 압축한 파일 JRE(Java Runtime Environment)만 있으면 실행 가능 클래스 파일, 라이브러리, 리소스, 설정 파일들(META-INF 등)을 모여서 하나의 어플리케이션/라이브러리로 형성 META-INF - 자바 패키징 기술인 ja..

고민하기 2021.08.22

Spring Rest API 튜토리얼

아래 사이트를 참조함 https://www.leafcats.com/173 같은 패키지에 RestTestController 클래스 만들어줌 아래 코드 삽입 @RestController public class RestTestController { @RequestMapping("/restTest") public String restTest(@RequestParam String str){ return str + " : test 완료"; } } Spring REST API 생성, 호출 REST는 Representational State Transfer의 약자이다. 다른 웹 시스템에서 제공하는 기능을 사용하고자 할 때 사용자는 API의 URL만 알면 되기 때문에 SOAP보다 사용이 간편하다. 구글, 네이버 등 많은..

Spring Hello world 출력

구성 Intellij Ultimate, Gradle, openjdk 11 Openjdk11 설치 >> choco install openjdk11 다음은 아래 개발환경세팅 블로그 참조함 (다만 openjdk 11이라는 점만 차이남 https://jetalog.net/92 프로젝트 생성시 Spring Initializr로 생성하기 Group은 보통 도메인 역순 jar는 spring boot 내장, War는 원하는 WAS에 배포할 때 사용 Dependency Developer Tools > Spring Boot DevTools Developer Tools > Lombok: Annotation Web > Spring Web: Spring Framework Template Engines > Thymeleaf: S..