본문 바로가기

프로그래밍337

Spring Batch 관리 도구로서의 Jenkins Spring Batch는 아직까지 확실한 표준 관리 도구가 없습니다. 각 팀/회사마다 상이한 방법들을 사용하는데요. 대표적인 방법들은 아래와 같습니다. Cron 클라우드 서버리스 이를테면 AWS의 Lambda 에 배치 코드를 등록하고, AWS CloudWatch에서 스케줄링 실행을 하도록 구성하는 방식입니다. API 기반의 직접 만든 관리자 페이지 Spring Batch Admin Deprecated 되었습니다. 더이상 개선하지 않겠다고 합니다. Spring Cloud Data Flow 로 전환하라고 합니다. 참고 Quartz를 이용한 관리자 페이지 Scheduler 역할로 Quartz를 사용하고 그에 대한 UI 대시보드를 직접 만드는 경우입니다. 참고 CI 서비스 (Jenkins / Teamcity 등.. 2020. 3. 22.
Spring Batch의 유니크 Job Parameter 활용하기 Spring Batch의 경우 일반적으로 동일 Job Parameter로 실행시 어떻게 처리할 것인지에 대해 여러가지 옵션을 제공합니다. 해당 파라미터로 최근 실패한 이력이 있다면 이어서 실행할 것인지 해당 파라미터로 최근 실패 혹은 성공한 이력이 있다면 실행하지 않을 것인지 해당 파라미터로 최근 실행한 이력이 있어도 무시하고 다시 실행할 것인지 등등이 있습니다. 대부분의 경우 동일 Job Parameter 실행을 막곤 하는데요. (중복 데이터가 쌓일 수가 있기 때문에) 일부 배치에서는 동일 Job Parameter로 계속 실행이 될 수 있길 원하기도 합니다. 예를 들어 특정 데이터에 대한 검증 로직 혹은 데이터 갱신 배치 등이 이에 해당 됩니다. 이번 글에서는 바로 이렇게 동일 Job Parameter.. 2020. 3. 15.
IntelliJ 에서 적록색약 모드 적용하기 적록 색약이라고 하여 적색과 녹색을 잘 구분하지 못하는 증상이 있습니다. 실제로 제가 그런 상황입니다. 살면서 크게 부담이 있는건 아닌데, IDE의 경우 이 적색 (Error)과 녹색 (Warning) 이 많이 사용되다보니 둘을 구분하지 못하는건 조금(?) 불편하기도 합니다. 저 같은 분들을 위해서 IntelliJ IDEA에서는 적록 색약 모드를 지원하는데요. 적색은 오렌지색으로 녹색은 청색으로 색상이 변경되어 노출됩니다. 한번 적용해보겠습니다. 설정 IDEA의 좌측 상단에 있는 Settings/Preferences 으로 이동합니다. 해당 설정 창을 열어 Appearance & Behavior -> Appearance로 이동하셔서 "Adjust colors for red-green vision defic.. 2020. 3. 14.
2.0 까지 해본 개발자 아래 글은 제 페이스북에 올렸던 글을 기록 차원에서 블로그로 옮긴 글입니다. 예전에 99콘 세미나 에서 7개의 타이틀, 7번의 기회 라는 주제로 최지호 님이 발표해주셨던 내용 중에 가장 와닿는 문장이 있다. "2.0까지 해본 사람이 진짜 기획자다" (지호님 말씀주셔서 감사합니다!) 그러니깐 어떤걸 런칭을 했는게 중요한게 아니라, 그걸 실제로 런칭해서 사용자 피드백을 받고 운영/개선을 계속 해본 사람이 진짜라는 의미였다. 이건 꼭 기획자만 포함되는게 아니라 개발자도 포함된다고 생각한다. 신규 프로젝트를 오픈하거나 신규 서비스를 런칭하는것도 대단한 일이고 어려운일을 해낸거지만, 기존에 있던 운영 업무의 비효율화를 얼마나 효율적으로 개선해나갔는지도 그만큼 중요한 일이다. 비단 개발자들의 테스트 자동화나 도구 .. 2020. 3. 13.
[DynamoDB] Spring Data DynamoDB와 Embedded 개발 환경 구축하기 모든 코드는 Github에 있습니다. 이번 시간엔 로컬 개발 환경에서 DynamoDB를 Embedded로 활용하는 방법에 대해서 알아보겠습니다. 이미 도커를 적극적으로 테스트와 개발에 사용하고 계신 분들이라면 LocalStack 으로 구성하셔도 무방합니다. 참고: LocalStack을 활용한 Integration Test 환경 만들기 다만 아직 도커를 사용하고 있지 않거나, 굳이 도커 설치해서 매번 테스트를 돌릴때마다 도커를 실행하는게 귀찮다고 생각하시는 분들은 한번 고려해보셔도 좋을것 같습니다. 0. 들어가며 사용한 의존성은 다음과 같습니다. Spring Boot: 2.2.5 Spring Cloud AWS: 2.2.1 Spring Cloud Dependencies: Hoxton.SR3 Spring Da.. 2020. 3. 8.
[DynamoDB] Spring Data DynamoDB와 JPA 함께 적용후 문제 발생시 해결방법 모든 코드는 Github에 있습니다. Spring Data JPA를 사용중인 기존 프로젝트에 Spring Data DynamoDB 를 바로 적용하면 아래와 같은 문제들이 발생할때가 있습니다. Caused by: java.lang.IllegalArgumentException: Not a managed type: class XXX 혹은 BeanDefinitionOverrideException: Invalid bean definition with name 'XXXRepository' defined in null: Cannot register bean definition 어떨때 이런 문제가 발생하는지, 어떻게 해결하는지 빠르게 확인해보겠습니다. 1. 문제 상황 먼저 JPA만 프로젝트에 추가해서 테스트를 진행해보.. 2020. 3. 7.