Spring/spring boot 및 기타
-
[spring boot] 스프링 firebase database 사용하기Spring/spring boot 및 기타 2021. 5. 4. 18:31
firebase 가 클라이언트 사이드에서 구현하기 위한 severless db 로 많이 쓰이는데, 나 같은 경우는 db 를 구축하기 일단 비용 및 인프라가 없어서 간단히 만들려고 firebase 를 서버에서 사용하기 위한 db 로 일단은 선택했다. 일정량 이하는 free 로 사용할 수 있다. firebase 프로젝트 생성 대쉬보드에서 프로젝트 추가를 통해 프로젝트를 생성 console.firebase.google.com/ firestore Database 를 생성하자. 주의 할 것은 realtime database 와 firestore database 는 다르다. 다른 점으로는 과금 정책도 다르고, realtime 이 더 비싸다고 한다. 둘의 차이점은 아래 링크 문서에 있다. firebase.google..
-
[spring boot] 스프링 부트 h2 인메모리 db 시작하기Spring/spring boot 및 기타 2021. 4. 27. 18:29
외부에 물리db 를 생성하기 어려울떄가 있다. 나 같은 경우 사이드 프로젝트를 하고 싶은데 물리 db 를 생성하기 부담스러울때 간단히 내부 db 를 사용하고 싶어 인메모리 h2 를 사용한다. h2 는 보통 프로덕션보다는 보통 test 용으로 사용한다. 왜냐면 휘발성이기 때문이다. 디스크가 아닌 주 메모리에 모든 데이터를 보유하고 있는 데이터베이스입니다. 디스크 검색보다 자료 접근이 훨씬 빠른 것이 큰 장점입니다. 단점은 매체가 휘발성이기 때문에 DB 서버가 꺼지면 모든 데이터가 유실된다는 단점이 있습니다. 스프링 부트에서 H2, HSQL 같은 인메모리, 디스크 기반 DB를 지원합니다. 라이브러리 추가 현재 spring boot 버젼 2.4.5 org.springframework.boot spring-bo..
-
[spring] 스프링 HikariDatasource 속성 값Spring/spring boot 및 기타 2021. 3. 31. 17:59
세팅 옵션 - autoCommit: auto-commit설정 (default: true) - connectionTimeout: pool에서 커넥션을 얻어오기전까지 기다리는 최대 시간, 허용가능한 wait time을 초과하면 SQLException을 던짐. 설정가능한 가장 작은 시간은 250ms (default: 30000 (30s)) - idleTimeout: pool에 일을 안하는 커넥션을 유지하는 시간. 이 옵션은 minimumIdle이 maximumPoolSize보다 작게 설정되어 있을 때만 설정. pool에서 유지하는 최소 커넥션 수는 - - - - minimumIdle (A connection will never be retired as idle before this timeout.). 최솟값은..
-
[spring] 스프링 elasticsearch NativeSearchQuery 사용방법Spring/spring boot 및 기타 2021. 3. 16. 18:37
ElasticsearchRepository search 메소드 내부에 NativeSearchQuery 를 넘겨 사용 가능하다. 또는 ElasticsearchTemplate 및 elasticsearchOperations 을 사용할떄도 NativeSearchQuery 를 사용할 수 있다. 쿼리 클래스의 종류로는 CriteriaQuery, StringQuery, NativeSearchQuery NativeSearchQuery 란 복잡한 쿼리를 사용하려 할때 Criteria 로는 표현이 불가할때 사용한다. CriteriaQuery 와 StringQuery 의 단점을 보완한 클래스이다. ElasticsearchRepository 를 상속받아 사용하는 방식 @Repository public interface Per..
-
[spring] 스프링 elasticsearch ElasticsearchRepository underscore 오류 해결방법Spring/spring boot 및 기타 2021. 3. 16. 11:50
엘라스틱 을 조회할떄 네이밍에 언더바(언더스코어)가 들어간 경우 일반적인 방법으로 ElasticsearchRepository 라이브러리로 조회가 가능하지 않다. EX) name_field : '데이터' 이거 오류 해결 방법 좀 알고 싶었으나 지지고 볶아도 오류해결 방법이 없다. 애초에 네이밍을 카멜로 했거나 그게 안되면 ElasticsearchOperations 을 사용해서 엘라스틱 조회를 해야한다. 간편하게 사용하기에는 아무래도 ElasticsearchRepository 가 jpa 랑 같아 사용하기 편한데, 복잡한 쿼리에는 불편한 점이 따르니 어쩔 수 없다. 굳이 언더바를 검색하려면 방법은 있다. @Repository public interface SampleRepository extends Elast..
-
[spring] 스프링에서 사용하는 RestTemplate - http 라이브러리Spring/spring boot 및 기타 2021. 2. 26. 14:06
RestTemplate이란 스프링에서 제공하는 http 통신에 유용하게 쓸 수 있는 템플릿 Spring 3부터 지원 되었고 REST API 호출이후 응답을 받을 때까지 기다리는 동기방식이다 AsyncRestTemplate Spring 4에 추가된 비동기 RestTemplate이다 Spring 5.0에서는 deprecated 되었다 메소드 메서드 HTTP 설명 getForObject GET 주어진 URL 주소로 HTTP GET 메서드로 객체로 결과를 반환받는다 getForEntity GET 주어진 URL 주소로 HTTP GET 메서드로 결과는 ResponseEntity로 반환받는다 postForLocation POST POST 요청을 보내고 결과로 헤더에 저장된 URI를 결과로 반환받는다 postForOb..
-
[spring boot] 스프링부트 에서 elasticsearch 시작하기Spring/spring boot 및 기타 2021. 2. 24. 18:46
스프링 부트 2.3 버젼부터 spring-data-elasticsearch 버젼도 4 버젼으로 올라가고, 여기서 부터 기존 설정 이 조금 달라졌다. 아래 내용은 버젼명시가 없다면 2.3 버젼부터 사용가능한 버젼이다. 소스코드 버젼 spring boot 2.4.3 spring-data-elasticsearch 4.1.3 pom.xml dependency 추가 org.springframework.boot spring-boot-starter-data-elasticsearch config 설정소스 @Configuration @EnableElasticsearchRepositories(basePackages = "com.baeldung.spring.data.es.repository") @ComponentScan(b..
-
Jasypt 암호화 - spring 설정파일 암호화하기Spring/spring boot 및 기타 2021. 1. 28. 16:40
스프링에서 설정파일 값을 외부에 노출하고 싶지 않을떄, Jasypt 를 사용하면 된다. 라이브러리 spring boot starter 용 3.0.3 이 작성기준 2021년 1월 28일 기준 최신버젼이다. 3,0.3 이 출시된 날짜는 2020년 5월 31일 이다. com.github.ulisesbocchio jasypt-spring-boot-starter 3.0.3 위와 같이 라이브러리를 추가하면 @SpringBootApplication or @EnableAutoConfiguration 어노테이션을 메인에 추가해 주어야 한다. 이렇게 해주면 환경설정 파일 command line argument, application.properties, yaml properties 들을 암호화 할 수 있다. @Spring..