본문 바로가기

Programming/Spring Boot

(7)
[Spring Boot] RabbitMQ 연동하기 안녕하세요. 남산돈가스입니다. 2020/07/31 - [Programming] - Mac에 RabbitMQ 설치 및 실행하기 Mac에 RabbitMQ 설치 및 실행하기 안녕하세요. 남산돈가스입니다. 오늘은 Message Broker 역할로 자주 사용되는 RabbitMQ를 Mac 환경에서 설치해보고 실행하는 포스팅을 진행하겠습니다. 제 로컬환경인 Mac OS 기준으로 설명드리며, 패키� ibks-platform.tistory.com 지난 포스팅에서 설치한 RabbitMQ를 활용하여 Spring Boot 환경에서 간단하게 RabbitMQ의 사용법을 포스팅해보려고 합니다. RabbitMQ는 오픈소스로 제공되는 메시지 브로커이며, 비동기 작업 큐의 역할을 위해 사용하고 있습니다. Spring Boot는 이 Ra..
[Spring Boot] Spring Cloud Config를 이용해서 설정값 별도 관리하기 안녕하세요. 남산돈가스입니다. 오늘은 Spring Cloud Config를 이용하여 각 서비스의 정적 설정정보들을(properties)를 별도로 분리하여 관리하는 법에 대해서 알아보려고 합니다. 일반적으로 Spring 어플리케이션을 개발할 때, 설정파일을 .properties 나 .yml 로 관리하고 있습니다. 추가적으로 이 파일들을 각 profile별로 분리하여 각 시스템 환경에 따라서 적용되도록 관리하고 있는데, 이런 정적 파일로 관리되는 것들의 단점은 설정값에 변경사항이 발생한 경우, 빌드/배포를 다시 해야한다는 점입니다. 또한 혹시 모를 보안적인 이슈로 인하여 DB접속정보라던지 중요 Key값에 대한 정보가 담긴 설정파일이 유출 될 경우 심각한 보안사고를 초래할 수 있습니다. 이러한 문제들을 해결해..
[Spring Boot] REST API 문서를 Swagger로 관리하기 안녕하세요 명동역 델리만쥬입니다~! 실무에서 REST API를 개발할때면 API 관련 문서를 만들어야 합니다. API의 요청, 반환 값이 변경되거나 주소 및 API 속성이 변경되었을시에 문서를 일일이 업데이트를 해줘야 하는 번거로움이 존재합니다. 이번 포스팅에서는 API관련 명세를 만들어주는 Swagger를 써보려고 합니다!~ 기본 베이스 ( Spring Boot, Spring MVC, AOP, Gradle을 적용한 REST API 설계 구조 ) 위의 가정 아래 시작하겠습니다! build.gradle에 아래와 같은 설정을 해줍니다. compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'compile("io.springfo..
[Spring Boot] JPA Auditing 으로 생성/변경일시 관리하기 안녕하세요. 남산돈가스입니다. 오늘은 Spring Boot + JPA 환경에서 Auditing을 이용하여 생성/변경일시를 관리하는 법에 대해 포스팅하겠습니다. 일반적으로 테이블을 설계할 때, 거의 필수적으로 관리되는 컬럼들이 있습니다. 대표적인 예로 생성일시, 변경일시 등이 있을 것이고, 또 최종 변경자, 최초 생성자도 있을 수 있겠네요. JPA환경에서 Entity들을 관리할 때, 이 모든 Entity에서 위에서 언급한 컬럼들을 일일이 관리하기엔 번거로움이 있을 것 같습니다. 또한, 코드 레벨에서 이 데이터들의 값을 관리하기는 더 어려운 일이 아닐 수 없겠죠. 이런 불편함들을 해소하고자(?) 혹은 Spring Data JPA가 아닌 다른 프레임워크 환경에서의 ORM에서 기본적으로 제공되던 것(ex. Se..
[Spring Boot] Pageable 커스터마이징하기 안녕하세요. 남산돈가스입니다. 지난 포스팅 [Spring Boot] JPA + Pageable 을 이용한 페이징 처리 에서 마지막 Pageable 커스터마이징에 대한 언급을 했었는데, 이번 포스팅에서 그 내용을 다루어 보려고 합니다. 일반적으로, Pageable을 파라미터로 Controller를 구현하면 Request Parameter 를 통하여 Handling 할 수 있는 파라미터는 기본적으로 page, size, sort 이렇게 세 가지 입니다. page : 조회할 페이지 번호 (default : 0)size : 한 페이지 당 조회 갯 수 (default : 20)sort : 정렬 기준 (정렬할 기준컬럼,ASC|DESC)위와 같은 기본 설정을 가지고 Pageable 객체를 Handling 할 수 있습..
[Spring Boot] JPA + Pageable 을 이용한 페이징 처리 안녕하세요. 남산돈가스 입니다. 오늘은 Spring Boot JPA를 이용하여 API 개발 시 간단하게 Pagination 와 Sorting을 처리할 수 있도록 도와주는 Pageable에 대해서 알아보려고 합니다. 웹 개발 시 Pagination 과 Sorting은 필수적이라 할 수 있지만, 실제 개별적으로 구현 시 번거로운 작업이 생기기 마련입니다. 또한 각 데이터베이스마다 페이징 쿼리가 다를 수 있다는 점에서 모든 요구조건을 만족하기 어려운 부분들이 존재하기 마련입니다. Spring Data JPA와 Pageable을 이용하면 이런 문제들을 아주 쉽게 해결할 수 있어 비즈니스 로직에 집중할 수 있게 도와줍니다. 우선 Pageable을 사용하여 얻을 수 있는 이점은 대표적으로 두 가지 입니다. 요건에 ..
Spring Boot로 REST API 만들기 스프링 부트는 원래 자바로 만드는 마이크로서비스를 만들기 위한 프레임워크입니다. 여기서는 스프링부트를 사용하여 간단한 REST API를 만드는 방법을 소개하고자 합니다. 여기서는 다음의 내용을 다루고자 합니다.spring 개발환경 구축spring framework5 와 spring boot를 활용한 RESTful 서비스 개발 개발환경스프링 개발을 위해 일반적으로 아래 개발도구를 사용합니다.JDK 1.8 –> http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlSpring Tool Suite(STS) 3.8.2 –> http://spring.io/tools/sts/allMaven 3.3.1 –> https://..