Spring

· Spring
개요 업무상 Amazon SQS를 적용할 일이 있어 예전에 정리한 SQS 설정 방법대로 설정했지만 Listener이 작동하지 않는 이슈가 있었습니다. 서칭해본 결과 Spring Cloud AWS 2.x 버전은 Spring Boot 3.x에 완전히 호환되지 않는 것처럼 보입니다. AWS @SqsListener not working with spring cloud (using springboot 3) Currently, we have an SQS client configured using an IAM Role that is picked up on the cluster. However, migrating over to Springboot 3 the @SqsListener is no longer consumin..
· Spring
Spring Boot Admin은 Spring Boot 애플리케이션을 관리하고 모니터링하기 위한 커뮤니티 프로젝트이다. 현재 업무에는 ELK를 구축해 실시간 로깅, 서버 매트릭 정보 모니터링 등등을 사용하고 있지만, 서버 이전 시 한정적인 환경에서 Spring Boot Admin을 사용할 가능성도 있어 정리하며 구축하려 한다. 아래 예제는 Spring Boot 2.6.7 버전 기준이다. 1. Spring Boot Admin Server 구축 build.gradle Spring Boot 프로젝트 생성 후 사용할 라이브러리를 추가한다. dependencies { .... // 접속 시 보안 처리 implementation 'org.springframework.boot:spring-boot-starter-se..
· Spring
Application에 개발자가 예상하지 못한 오류가 발생하면 사용자의 문의보다 빠르게 발생과 원인을 알 수 있도록 슬랙 알림 설정을 해보자. Application은 Spring Boot로 로그는 Logback을 사용해서 간단한 설정으로 Slack 알림을 받아볼 수 있다. 1. Slack Webhook 앱 생성 슬랙 사이드 바 하단에 앱 추가 버튼을 클릭 해 WebHooks 앱을 추가한다. 생성된 웹후크 URL을 복사 2. Logback Slack Appender 의존성 추가 및 Logback 설정 build.gradle dependencies { ... implementation group: 'com.github.maricn', name: 'logback-slack-appender', version: ..
· Spring
개발을하며 사용한 모든 오픈소스에 대한 라이센스를 고지해야 한다. 손수 작성하기엔 어려움이 있어 자동으로 작성하는 방법을 찾아보았고 Gradle를 사용하고 있다면 Gradle License Report 플러그인을 사용해서 라이센스를 고지하는 파일을 만들 수 있다. 사용법 build.gradle에 플러그인을 추가한다. 사용하고 있는 gradle 버전에 따라 사용하는 플러그인 버전이 다르다. Gradle 7+ plugins { id 'com.github.jk1.dependency-license-report' version '2.0' } Gradle 6.x plugins { id 'com.github.jk1.dependency-license-report' version '1.17' } 플러그인을 추가했다면 아..
· Spring
도입한 이유 업무를 진행하던 중 로깅과 오류 모니터링을 해야 했다. ELK를 도입하고 싶지만 주어진 시간이 너무 없어서 도입하고 공부할 시간이 너무 없었다. 나는 도입하는 것도 중요하지만 어떻게 효율적으로 사용하고 고도화가 가능한지를 생각해보고 도입하는 것이 중요하다 생각돼서 간단한 Sentry를 이용해 로깅과 오류 모니터링을 구축하였다. Sentry는 여러 언어와 프레임워크를 지원하고 구축 방법도 매우 쉬워서 쉽게 로깅과 모니터링이 가능하다. 가격 정보를 간단하게 정리하면 아래와 같다. 더 자세한 정보는 홈페이지를 참고 바란다. Developer : 1개 계정 사용, 30일 데이터 보존, 오류 5,000개 제한, 트랜잭션 10,000개 제한 Team, Business : 무제한 계정 사용, 90일 데이..
· Spring
개요 기존에 Jenkins 자동화 배포를 할때 민감한 정보(db 정보 및 암호화 키 ...)가 기입되어 있는 설정파일(yml, properties ...) 파일은 gitignore를 적용하고 직접 Jenkins 서버에 접속해 넣어주고 빌드를 시켰다. 하지만 프로젝트가 많아졌을때 설정파일을 최신화 하게 되면 직접 프로젝트 루트에 설정파일을 직접 넣기 너무 귀찮고 빌드도 다시 시켜야 했다. Spring Cloud Config를 사용하게 되면 한 곳에서 모든 설정파일을 관리하고, 수정이 있더라도 다시 배포하지 않아도 되는 장점이 있다. 단점은 한마디로 보안이 굉장히 중요하다. 물론 보안은 어느곳에도 중요하지만 만약 Spring Cloud Config 암호화 대칭값이 노출되거나, 암호화 및 복호화 기능에 적용한..
· Spring
고 평소 API 문서를 적용할때는 Spring Rest Docs를 많이 사용했는데 이번 기회에 Spring Docs + Swagger ui를 적용해서 둘의 장단점 비교를 해보고 싶어서 사용해봤다. Spring Docs. + Swagger 설정 예제 개발 환경은 Spring Boot 2.6.6 버전에 Gradle을 사용하였다. 1. dependency 설정 dependencies { ... compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' implementation 'org.springdoc:springdoc-openapi-ui:1.6.8' } springdoc-openapi-ui 안에는 Swagger-..
· Spring
회사 업무 중에 데이터 마이그레이션을 해야했는데 약 9만건의 데이터와 13만건의 데이터를 옮기는 작업을 해야했다. Connection는 총 3개고 A Database에서 각각 B, C Database로 마이그레이션을 하는 상황이다. 업무를 하면 작성한 코드를 기준으로 예제를 정리해보겠다. 해당 예제는 Spring Boot, Gradle을 기준으로 하겠다. Spring Batch의 개념 및 설정하는 방법은 얼마전에 작성한 블로그 글을 참고 바란다. 1. application.yml Docker를 통해 mysql를 생성하고 hikariCP와 JPA를 사용해 마이그레이션 하려고 한다. spring: datasource: hikari: a-database: jdbc-url: jdbc:mysql://localho..
· Spring
앞서 Spring Batch를 소개하고 간단한 예제를 작성하고 실행해보 Meta Data엔 어떤 정보들이 있는지 알아보았다. 이번에는 실전에서 사용할 수 있는 간단한 Spring Batch 내용들을 실행해보며 정리하겠다. Next next()는 step1 -> step2 -> stpe3 순으로 하나씩 Step을 실행시킬때 사용한다. @Slf4j @RequiredArgsConstructor @Configuration public class NextSimpleJobConfiguration { private final JobBuilderFactory jobBuilderFactory; private final StepBuilderFactory stepBuilderFactory; @Bean public Job n..
· Spring
앞서 Spring Batch를 소개하고 간단한 예제를 작성하고 실행해보았다. Spring Batch는 메타 테이블이 있어야 정상적으로 작동하고 MySQL을 사용할때는 직접 메타 테이블을 생성해야 한다고 했다. 그렇다면 메타 테이블에는 어떤 정보들이 있는지 간단히 알아보자. BATCH_JOB_INSTANCE BATCH_JOB_INSTANCE 테이블은 Job Parameter에 따라 생성되는 테이블이다. Job Parameter는 Spring Batch가 실행될때 외부에서 받을 수 있는 파라미터를 의미한다. 예를 들어, 특정 날짜를 Job Parameter로 넘기면 Spring Batch에서는 해당 날짜 데이터로 조회/가공/입력 등의 작업을 할 수 있다. @Slf4j @RequiredArgsConstruct..
beekei
'Spring' 카테고리의 글 목록