본문 바로가기
  • Code Smell

Framework45

[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.
[MyBatis] org.apache.ibatis.binding.BindingException: Invalid bound statement org.apache.ibatis.binding.BindingException: Invalid bound statement org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): sunghs.test.mapper.TestMapper.selectInfoById at org.apache.ibatis.binding.MapperMethod$SqlCommand.(MapperMethod.java:227) at org.apache.ibatis.binding.MapperMethod.(MapperMethod.java:49) at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(Ma.. 2020. 6. 19.
[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.
[SPRING BOOT] 스프링부트로 웹 개발하기 3 - HandlerInterceptor [SPRING BOOT] 스프링부트로 웹 개발하기 3 - HandlerInterceptor 클라이언트에서 들어온 요청을 서블릿이 처리하기 전 후에 각각 전처리, 후처리를 할 수 있다. 모든 요청에 대해 공통으로 들어가는 로직을 구현하는 부분에 사용할 수 있다. HandlerInterceptor Interface 구현 JAVA8 부터 Interface에 존재하는 default method는 구현체에서 반드시 구현하지 않아도 된다. HandlerInterceptor에 존재하는 preHandle, postHandle, afterCompletion 메소드가 전부 default method 이므로 필요하면 직접 구현해야 한다. HandlerInterceptor 는 이렇게 생겼다. /* * Copyright 200.. 2019. 7. 31.
[SPRING BOOT] 스프링부트로 웹 개발하기 2 - MyBatis 연동 [SPRING BOOT] 스프링부트로 웹 개발하기 2 - MyBatis 연동 MVC 기본 모델인 Controller -> Service -> Mapper 구조로 구현 먼저 JDBC랑 MyBatis 사용을 위해 pom.xml 에 Dependency 추가 해 준다. org.mybatis.spring.boot mybatis-spring-boot-starter 1.3.2 mysql mysql-connector-java runtime org.springframework.boot spring-boot-starter-jdbc SQL을 관리 할 폴더를 만든다. 꼭 하위폴더에 없어도 된다. SqlSession Config Class에 resolver가 읽을 수 있게만 해주면 된다. 예제는 resources/mapper/.. 2019. 7. 30.
[SPRING BOOT] 스프링부트로 웹 개발하기 1 - Thymeleaf 사용하기 [SPRING BOOT] 스프링부트로 웹 개발하기 1 - Thymeleaf 사용하기 Spring Boot 2.2.0 + Template Engine (Thymeleaf) Spring Boot에서 JSP에 대한 지원을 줄이고 있다. Server Side Template Engine은 JSP 외에 HTML로 뷰를 구성하고, 서버에서 가져온 데이터를 엔진이 html에 넣어 클라이언트에 전달하는 방식이다. JSP에서는 스크립틀릿과 같은 방법으로 프론트엔드와 백엔드가 완전 분리가 안되었다면 템플릿 엔진으로 프론트엔드와 백엔드를 완전하게 분리 되도록 구성되었다. 스프링부트 템플릿엔진 - 제타위키 여러개의 템플릿 엔진 중 Thymeleaf (타임리프라고 읽음) 으로 웹을 구성한다. 프로젝트 생성 application.. 2019. 7. 25.
[SPRING BOOT] 스프링부트로 개발하기 8 - Apache Kafka 연동 2 [SPRING BOOT] 스프링부트로 개발하기 8 - Apache Kafka 연동 2 SPRING BOOT랑 APACHE-KAFKA 연동하기 Maven Dependency 추가 org.apache.kafka kafka-clients org.apache.kafka kafka-streams org.apache.kafka kafka_2.11 Consumer는 Listener를 사용하기 위해 라이브러리를 하나 더 추가 해 준다. org.springframework.kafka spring-kafka application.properties 설정 spring boot에 key값이 기본적으로 내장되어 있다. spring.kafka.bootstrap-servers=localhost:9092 spring.kafka.co.. 2019. 7. 18.