본문 바로가기
  • Code Smell

!101

[JAVA] Gson (Google Json) 사용하기 GSON 사용하기 Gson은 Json을 좀 더 편하게 사용할 수 있도록 Google에서 만든 Google Json 라이브러리 Object Class와 Json 간의 직렬/역직렬을 편하게 사용 가능하도록 도와줌 JsonSimple, Gson, Jackson 등의 json 라이브러리가 많은데, 대규모 용량이 아닌 상황에서는 gson이 좋은 성능을 보여줌. Maven 프로젝트인 경우 pom에 추가하고, 아닌경우 URL 들어가서 jar build path에 추가 com.google.code.gson gson TEST용 Object Class package sunghs.boot.gson; import java.util.UUID; import lombok.Data; public @Data class Models {.. 2019. 7. 19.
[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.
[SPRING BOOT] 스프링부트로 개발하기 8 - Apache Kafka 연동 1 [SPRING BOOT] 스프링부트로 개발하기 8 - Apache Kafka 연동 1 아파치 카프카 설치 링크 : Apache Kafka 리눅스의 경우 kafka/bin/ 안에 있는 sh를 실행하고 윈도우의 경우 kafka/bin/windows/ 안에 있는 bat을 실행한다. 여기서는 윈도우만 설명한다. zookeeper를 실행할때 사용되는 JAVA_HOME을 windows/kafka-run-class.bat 에서 가져와 실행하므로 특정 JDK로 실행하려면 kafka-run-class를 수정하면 된다. rem Which java to use IF ["%JAVA_HOME%"] EQU [""] ( set JAVA=java ) ELSE ( set JAVA="D:/Program/JAVA8/bin/java" ) .. 2019. 7. 18.
[SPRING BOOT] 스프링부트로 개발하기 7 - Mybatis 연동 2 [SPRING BOOT] 스프링부트로 개발하기 7 - Mybatis 연동 2 쿼리 바인딩 및 parameter 바인딩, result Model 사용하기 현재 TABLE에 이런 데이터가 있다고 할때 SELECT 결과를 가져올 Model Class (DTO 또는 VO) package sunghs.boot.db; public class Models { private String aa; private String bb; private String cc; } 이런 클래스가 있다면, 쿼리 SELECT 결과 컬럼에 변수명과 동일하게 ALIAS를 주면 자동 값 주입이 된다. SQL 파일 SELECT 'data1' AS aa, 'data2' AS bb, 'data3' AS cc.. 2019. 7. 17.
[SPRING BOOT] 스프링부트로 개발하기 7 - Mybatis 연동 1 [SPRING BOOT] 스프링부트로 개발하기 7 - Mybatis 연동 1 mybatis 연동 이전에 Spring Boot JDBC 연동이 완료되어 있어야 한다. pom.xml에 Dependency 추가 org.mybatis.spring.boot mybatis-spring-boot-starter 1.3.2 dependency 버전은 바뀔 수 있음. SqlSessionFactory Bean을 구성하는 Class (Mybatis 설정 클래스) package sunghs.boot; import javax.sql.DataSource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean.. 2019. 7. 17.
[SPRING BOOT] 스프링부트로 개발하기 6 - ThreadPoolExecutor 사용 [SPRING BOOT] 스프링부트로 개발하기 6 - ThreadPoolExecutor 사용 SpringBoot의 @EnableAsync 어노테이션을 이용해서 Async ThreadPoolExecutor를 사용할 수 있다. Bean 등록 자체는 java.util.concurrent.Executor를 사용하고, 메소드 단위로 비동기 Thread를 실행 시킬 수 있다. ThreadPool을 관리하는 Class package sunghs.boot; import java.util.concurrent.Executor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuratio.. 2019. 7. 17.
티스토리 마크다운 적용하기 티스토리 마크다운 적용하기 마크다운으로 쓰여진 문서 head 태그 사이에 삽입 body 태그 시작 부분에 삽입 cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/styles/monokai-sublime.min.css을 커스터마이징 해서 쓰고 싶다면 .hljs { display: block; overflow-x: auto; padding: 0.5em; font-family: "Courier New", "Courier New", "Courier New", Courier, monospace !important; background: #23241f } .hljs, .hljs-tag, .hljs-subst { color: #f8f8f2 } .hljs-strong, .hljs.. 2019. 7. 16.
[SPRING BOOT] 스프링부트로 개발하기 5 - 초기화 메소드 지정 (PostConstruct Annotation) [SPRING BOOT] 스프링부트로 개발하기 5 - 초기화 메소드 지정 (PostConstruct Annotation) Component 클래스는 Autowired시 (의존성 주입 후) 초기화 메소드를 실행할 수 있다. 이 메소드는 다른 곳에서 호출이 없어도 무조건 실행된다. 생성자가 호출되었을 때 bean이 초기화 되지 않은 상태인데, PostConstruct 어노테이션을 사용하면 bean이 초기화 되며 동시에 의존성 확인이 가능하다. 사용조건 인자값이 존재하면 안된다. 파라미터가 존재하는 경우 에러가 발생한다. (무슨 값을 넣어야 할지 모르기 때문) 리턴타입이 있어도 실행된다. 다만 리턴받은 값을 사용할 방법이 없다. 하나의 클래스에 여러개의 PostConstruct가 있어도 된다. package .. 2019. 7. 16.
[SPRING BOOT] 스프링부트로 개발하기 4 - appilcation.properties 내용 가져오기 [SPRING BOOT] 스프링부트로 개발하기 4 - appilcation.properties 내용 가져오기 appilcation.properties 에 있는 설정 내용을 가져오는 방법은 두가지가 있다. Environment 클래스에서 properties를 추출 @Value 어노테이션을 사용하기 Environment 클래스에서 properties를 추출 package sunghs.boot; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandL.. 2019. 7. 16.