스프링 (Spring)

여러가지 예제를 통하여 Spring에 대해서 소개해드립니다.


2020

[Spring Boot] InputStream to ByteArray 변환
[Spring Boot] InputStream to ByteArray 변환

이미지, PDF, text 파일 등을 다루다보면 Java의 byte[]로 변환해야하는 경우가 있습니다. 저도 개발을 하다보니 이미지 바이너리를 저장하거나 클라이언트에 내려주어야 하는 경우가 생겼습니다. 문제는 외부 이미지 파일을 다운받아서 byte array로 변환하는 과정에서 발생했습니다.

Spring Boot Batch + Scheduler Example
Spring Boot Batch + Scheduler Example

기존 spring과 spring batch 모듈을 이용하여, 배치 프로젝트를 만드는 것은 굉장한 시간과 노력이 들어 갔었습니다. 하지만 Spring Boot에서 간단하게 배치를 설정하고, Quartz의 Scheduler를 이용하여 일정 시간마다 실행되는 작업을 만들어 보도록 하겠습니다.

톰캣 OpenSSL 적용하기 (Apply openssl in tomcat)
톰캣 OpenSSL 적용하기 (Apply openssl in tomcat)

과거 글 중에 톰캣에 오라클에서 만든 Keytool이라는 커맨드라인 프로그램을 이용하여 만든 키를 적용하는 방법에 대해서 소개해 드린적이 있습니다. 하지만 만약 웹 어플리케이션이 FE와 BE로 나뉘어져 있는 상태에서 FE에서 사용하는 인증서와 BE에서 사용하는 인증서가 다를 수 밖에 없습니다. 그 이유는 BE에서는 keytool을 이용하여 인증서를 대체할 파일을 만들었기 때문입니다.

[Spring Boot] Return byte array by Jackson
[Spring Boot] Return byte array by Jackson

스프링을 이용하여 개발을 하던 중, 이미지를 가공하여 클라이언트에 내려줘야 하는 요구사항이 생겼습니다. 이미지는 Java Application 내에서는 Byte Array로, DB에서는 Binary 형태로 데이터를 핸들링하거나 저장하고 있습니다. DB와 Java 사이에서 데이터가 깨지거나 하는 등의 문제는 없었지만, 데이터를 API로 제공하려고 할 때 문제가 발생했습니다.

스프링부트 jar 실행하기 (Run spring boot runnable jar)
스프링부트 jar 실행하기 (Run spring boot runnable jar)

웹 개발을 하다보면 jar 파일을 서버에서 수동으로 동작시켜야하는 경우가 있습니다. 이런 경우에 사용할 수 있는 spring boot의 bootWar, bootJar설정 및 실행 방법에 대해서 알아보겠습니다.

spring transactional propagation options
spring transactional propagation options

스프링을 사용하면서 가장 편리한 부분 중에 하나는 @Transactional이라고 생각합니다. 정말 간단하게 트랜잭션처리를 할 수 있도록 기술을 제공하고 있는데요. 하지만 이 annotation에는 여러가지 속성들(properties)이 있습니다.

스프링 부트 내장 톰캣 SSL 적용하기 (apply ssl in spring boot internal tomcat)
스프링 부트 내장 톰캣 SSL 적용하기 (apply ssl in spring boot internal tomcat)

개발 환경이 SPA(Single Page Application) + spring boot이면서 내장 톰캣(internal tomcat)을 사용 중일 때, 간혹 내장 톰캣에 SSL을 적용해야할 때가 있습니다.