본문 바로가기
  • Code Smell

springboot8

[SPRING BOOT] REST API 개발하기 5 - Spring Security REST API 개발하기 5 - Spring Security 설정 GitHub 소스 swagger-ui 페이지에 대해 접근 권한을 부여하도록 Spring Security 설정을 한다. Spring Security는 위와 같이 흐름을 타는데 나머지는 Spring Security에 기본으로 구현되어 있는 구현체를 사용하고, WebSecurity를 재정의해서 사용할 수 있는 WebSecurityConfigurerAdapter 클래스를 재정의해서 사용한다. Spring Security는 기본 기능 자체는 막강하지만 실제로 입맛대로 재정의해서 사용해야 하는경우 생각보다 손을 대야하는 부분이 많기 때문에 최대한 기본기능 내에서 사용 할 수 있도록 구현해본다. spring-security 추가를 위한 build.gr.. 2020. 8. 12.
[SPRING BOOT] REST API 개발하기 4 - JUnit 테스트 REST API 개발하기 4 - JUnit 테스트 GitHub 소스 test 패키지에서 사용할 수 있도록 spring-boot-starter-test를 implementation으로 바꿔준다. dependencies { implementation('org.projectlombok:lombok') annotationProcessor('org.projectlombok:lombok') implementation('org.springframework.boot:spring-boot-starter') implementation('org.springframework.boot:spring-boot-starter-web') // swagger2 implementa.. 2020. 8. 5.
[SPRING BOOT] REST API 개발하기 3 - Root 경로 설정 REST API 개발하기 3 - Root 경로 설정 GitHub 소스 root 경로를 입력했을 때 redirect 시킬 수 있다. 예를 들어 http://localhost:8080/ 을 입력하게 되면 아무페이지도 나오지 않던가, tomcat과 같은 WAS를 사용하게 되면 컨테이너의 루트 페이지가 보이게 되는데, 이걸 redirect 시킨다. REST API이니 swagger-ui 페이지로 보일 수 있도록 구성한다. Config 패키지가 있다면 그곳에 설정 클래스를 만들고 WebMvcConfigurer를 구현한다. WebConfig package sunghs.rest.api.config; import org.springframework.context.annotation.Configuration; impor.. 2020. 7. 28.
[SPRING BOOT] REST API 개발하기 2 - ControllerAdvice, ExceptionHandler REST API 개발하기 2 - ControllerAdvice, ExceptionHandler GitHub 소스 ControllerAdvice 및 ExceptionHandler는 클라이언트에서 우리 API로 요청이 들어왔을 때, 에러가 발생한다면 어떻게 핸들링 할지에 대한 처리. 두 어노테이션은 하는 역할은 같지만, scope에 차이가 있는데, ExceptionHandler는 Exception마다 어떻게 처리할지에 대해 메소드 레벨에 선언하는 어노테이션이다. ControllerAdvice는 모든 컨트롤러에서 Exception이 발생한다면 핸들링을 담당할 핸들링 전용 Controller에 선언하는 어노테이션이다. Exception을 처리할 UserControllerAdvice를 만든다. package su.. 2020. 7. 11.
[SPRING BOOT] REST API 개발하기 1 - 프로젝트 생성 및 Swagger2 연동 REST API 개발하기 1 - 프로젝트 생성 및 Swagger2 연동 GitHub 소스 REST API란 REST API란? URL 디자인 가이드는 여기를 참조함. SWAGGER란 WEB API의 기능을 자동으로 문서화 해주는 라이브러리. 기존 API 기능을 PostMan등을 통해 테스트 해야 했다면, 그러한 불편한 과정을 전부 없애준다. API 기능 request, response가 전부 가능하며, 기능 별 정리 및 model 명세서까지 전부 화면에서 확인이 가능하다. 프로젝트 생성 환경 Spring Boot 2.3.1 Gradle 6.4.1 Java 11 (amazon-corretto 11) Lombok 1. Spring Initializer로 프로젝트를 생성하고 build.gradle에 아래 de.. 2020. 6. 28.
[SPRING BOOT] 스프링부트로 개발하기 10 - Batch Tasklet 처리 [SPRING BOOT] 스프링부트로 개발하기 10 - Batch Tasklet 처리 Tasklet이 아니라 Dependency 추가 및 Table DDL, Chunk (Reader -> (Processor) -> Writer)처리는 여기 Chunk 처리에 이어서 진행하므로 Dependency, Table DDL Script, AbstractClass 생성 등은 진행하지 않는다. Tasklet의 구조 (1회성) Tasklet은 계속 진행할지, 그리고 끝낼지 두가지 경우만 제공한다. Chunk와 같이 Reader, Processor, Writer 세 로직을 나눠 제공하는 형태가 아니라, 1회성 처리 로직 또는 Reader, Processor, Writer를 한 로직에 모아놓는 방식의 비즈니스 로직을 구현할.. 2020. 2. 3.
[SPRING BOOT] 스프링부트로 개발하기 10 - Batch Chunk 처리 [SPRING BOOT] 스프링부트로 개발하기 10 - Batch Chunk 처리 스프링부트에서 기존 SpringBatch 기능을 구현할 수 있다. 스프링 배치 기존 처리방법이 Tasklet, Chunk (Reader, Processor, Writer) 방식이 존재하는데 Chunk 처리를 구현해본다. Spring Batch Chunk의 구동원리 사진출처 : TERASOLUNA Batch Framework for Java (5.x) Development Guideline Dependency 추가 org.springframework.boot spring-boot-starter-batch Batch Meta Table 생성 스프링 배치는 실행 로그를 TX(기록), Ram(휘발성) 방식으로 관리 할 수 있는데 .. 2020. 1. 21.
[SPRING BOOT] 스프링부트로 개발하기 9 - Redis(NoSQL) 기본 연동 [SPRING BOOT] 스프링부트로 개발하기 9 - Redis(NoSQL) 기본 연동 Redis 설치가 안되어있다면 [REDIS] Redis 설치 (for Windows 64bit) 부트에서는 dependency만 추가하면 거의 바로 쓸 수 있도록 대부분 기능을 미리 세팅해놓았다. pom.xml Dependency 추가 org.springframework.boot spring-boot-starter-data-redis application.properties에 기본 설정 추가 host, port만 추가 하면 바로 사용 가능하다. 이외 세부설정은 다음에 다룬다. spring.redis.host=127.0.0.1 spring.redis.port=6379 Redis와 GET/SET을 이어줄 Test용 Cla.. 2020. 1. 13.