여러가지 이유로 DB에 바로 접속하지 못하고 SSH tunneling을 이용해야 하는 경우가 발생하게 되는데, Datagrip등의 DB Handling Tool에서는 자체적으로 ssh tunneling을 지원하지만 로컬에서 테스트할 때 사용하는 개발 언어에서 공식적으로 지원하지 않는다면 별도의 라이브러리를 사용한다던가 하는 귀찮음이 발생한다. 라이브러리 사용 시 connection이나 query execution등의 구문들도 다 바꿔주어야하니 여간 귀찮은게 아니다. (물론 connection과 execution등을 wrapping 해두었다면 한두군데만 수정하면 …
Month: 2021 10월
SpringBoot Pageable로 페이징 구현하기
쿼리로 직접 페이징을 구현하려고 삽질한 웹프 초창기의 기억..프레임워크가 편리하게 처리해주니 너무 편해졌다.Spring Boot에서도 간편하게 처리가 가능하여 아주 간단히 끄적여본다. 사용법은 매우 간단한데, findAll의 파라미터로 Pageable 혹은 Pageable의 구현체인 PageRequest를 넘겨주면 된다. Controller에서 아래와 같이 pageable로 받아주면 @PathVariable로 page, size, sort, direction 등을 별도로 처리하지 않아도 알아서 처리해준다.@PageableDefault 를 사용하면 pageable이 전달되지 않았을 때의 default 값도 …
ajax로 받아온 CSV 데이터 파일로 저장하기
바로 이전 포스팅에서는 Spring Boot에서 CSV 출력하는 방법을 포스팅 했는데, 이번에는 받아온 response데이터를 JS 를 이용하여 파일로 저장하는 방법을 간단히, 코드만, 작성해본다. ajax call은 jQuery를 이용했지만 파일 저장부분은 javascript 를 이용했기에 axios를 이용하든 뭘 이용하든 간에 CSV 데이터를 파일로 저장시에 활용 가능한 코드이다.
Spring Boot에서 CSV 출력 기능 만들기
테이블의 데이터를 CSV로 출력할 일이 생겨서 이리저리 검색하다 알게된 내용을 간단히 정리한다. 이 정리는 Kotlin + Gradle 기반으로 진행한다. Dependency CSV Generator Class 위와 같이 CSV Generator의 dataToCSV 메소드에서 전달받은 dataList의 내용을 루프를 돌면서 item에 매핑하여 csvPrinter.printRecord에 넘겨준다. Controller 컨트롤러에서는 위와같이 /csv로 들어온 request에 따라 testDataService의 데이터를 모두 읽어와서 dataList에 저장하고, 이녀석을 CSVGenerator.dataToCSV에 response.writer과 함께 …
Spring Boot CharacterSet 설정
데이터를 CSV로 출력할 일이 있어서 디펜던시 추가하고 기능 구현을 하고 정상적으로 작동하긴 하는데 한글이 다 깨져나와서 이리저리 알아보다가 작동하는 방법을 정리한다. bean으로 필터를 등록하는 방법도 있겠지만, application.properties에 설정 해주는 것만으로도 캐릭터셋 변경이 가능하다. 스프링부트에서는 기본적으로 CharacterEncodingFilter가 등록되어 있다고 한다. 예전에는 다음과 같이 사용했었는데, 위와같이 입력하니 IntelliJ IDEA가 Deprecated되었다고 알려주면서 다음과 같이 사용하란다. 위와같이 추가해주고, 다시 …
[kotlin] SpringBoot Timezone 설정
SpringBoot 실행 시 타임존이 맞지 않아서 난감한 경우가 발생하여 알아보니 다음과 같은 방법으로 해결할 수 있었다.
Spring Boot 기본 포트 변경
application.properties에 다음과 같이 세팅
JPA repository에서 데이터 가져올 때 limit 사용하기
JPA에서 제한된 데이터를 가져올 때 repository에서 메소드를 다음과 같이 작성해주면 된다. Kotlin 기준. 위의 메소드를 실행 시 UserName으로 검색하여 나온 결과 중 10개만을 리턴해준다.
JAVA or Kotlin LocalDateTime 비교하기
어느 데이터가 더 최신인가를 코드에서 비교해야할 일이 있어서 어떻게 하지?하고 검색을 했는데 너무 간단해서 놀랐음. LocalDateTime 형식의 a와 b가 있을 때, a가 b보다 빠른것인가, 느린것인가(최신인가), 같은가 를 비교하기 위해서 각각 다음과 같이 작성하면 된다. 끝.
JPA Entity 작성 시 val?? var??
PK의 경우 변하지 않아야하므로 val, 그 외에 변경 가능한 녀석들은 var로…