ssh tunneling을 이용해 local port로 원격 DB에 접속하기

LINUX OSX

여러가지 이유로 DB에 바로 접속하지 못하고 SSH tunneling을 이용해야 하는 경우가 발생하게 되는데, Datagrip등의 DB Handling Tool에서는 자체적으로 ssh tunneling을 지원하지만 로컬에서 테스트할 때 사용하는 개발 언어에서 공식적으로 지원하지 않는다면 별도의 라이브러리를 사용한다던가 하는 귀찮음이 발생한다. 라이브러리 사용 시 connection이나 query execution등의 구문들도 다 바꿔주어야하니 여간 귀찮은게 아니다. (물론 connection과 execution등을 wrapping 해두었다면 한두군데만 수정하면 …

Continue Reading

SpringBoot Pageable로 페이징 구현하기

미분류

쿼리로 직접 페이징을 구현하려고 삽질한 웹프 초창기의 기억..프레임워크가 편리하게 처리해주니 너무 편해졌다.Spring Boot에서도 간편하게 처리가 가능하여 아주 간단히 끄적여본다. 사용법은 매우 간단한데, findAll의 파라미터로 Pageable 혹은 Pageable의 구현체인 PageRequest를 넘겨주면 된다. Controller에서 아래와 같이 pageable로 받아주면 @PathVariable로 page, size, sort, direction 등을 별도로 처리하지 않아도 알아서 처리해준다.@PageableDefault 를 사용하면 pageable이 전달되지 않았을 때의 default 값도 …

Continue Reading

ajax로 받아온 CSV 데이터 파일로 저장하기

DEVELOPMENT JavaScript jQuery IT

바로 이전 포스팅에서는 Spring Boot에서 CSV 출력하는 방법을 포스팅 했는데, 이번에는 받아온 response데이터를 JS 를 이용하여 파일로 저장하는 방법을 간단히, 코드만, 작성해본다. ajax call은 jQuery를 이용했지만 파일 저장부분은 javascript 를 이용했기에 axios를 이용하든 뭘 이용하든 간에 CSV 데이터를 파일로 저장시에 활용 가능한 코드이다.

Continue Reading

Spring Boot에서 CSV 출력 기능 만들기

Spring Boot Kotlin DEVELOPMENT IT

테이블의 데이터를 CSV로 출력할 일이 생겨서 이리저리 검색하다 알게된 내용을 간단히 정리한다. 이 정리는 Kotlin + Gradle 기반으로 진행한다. Dependency CSV Generator Class 위와 같이 CSV Generator의 dataToCSV 메소드에서 전달받은 dataList의 내용을 루프를 돌면서 item에 매핑하여 csvPrinter.printRecord에 넘겨준다. Controller 컨트롤러에서는 위와같이 /csv로 들어온 request에 따라 testDataService의 데이터를 모두 읽어와서 dataList에 저장하고, 이녀석을 CSVGenerator.dataToCSV에 response.writer과 함께 …

Continue Reading

Spring Boot CharacterSet 설정

Spring Boot

데이터를 CSV로 출력할 일이 있어서 디펜던시 추가하고 기능 구현을 하고 정상적으로 작동하긴 하는데 한글이 다 깨져나와서 이리저리 알아보다가 작동하는 방법을 정리한다. bean으로 필터를 등록하는 방법도 있겠지만, application.properties에 설정 해주는 것만으로도 캐릭터셋 변경이 가능하다. 스프링부트에서는 기본적으로 CharacterEncodingFilter가 등록되어 있다고 한다. 예전에는 다음과 같이 사용했었는데, 위와같이 입력하니 IntelliJ IDEA가 Deprecated되었다고 알려주면서 다음과 같이 사용하란다. 위와같이 추가해주고, 다시 …

Continue Reading