본문 바로가기

전체 글79

[Spring Batch] Spring Batch 정리 프로젝트를 진행하면서 사용했던 Spring Batch에 대해 정리해 보자 스프링 배치 Job 스프링 배치의 핵심은 Job이다. Job은 배치에서 가장 큰 단위이다. Job 내부에 각 로직 처리 순서 부분에 해당하는 게 Step이다. 따라서, 하나의 Job에 여러 개의 Step이 있는 1:N 관계이다. Step 스탭은 Tasklet 또는 ItemReader, ItemWriter, ItemProcessor로 구성된다. 그런데, Tasklet보다는 Chunk 기반으로 적극 사용하라고 멘토님께 조언을 받을 수 있었다. Chunk로 하면 Chunk size 단위로 처리할 수 있어서 그런 것 같다. 프로젝트를 하며 1시간마다 배치가 돌아가야 했다. 그런데, 배포 환경에서 배치가 실패하면 절대 안 되는 일이다. 따라.. 2023. 6. 1.
[백준] BOJ 2531 회전 초밥(자바) 문제 풀이 문제를 잘 못 이해해서 오래 걸렸던 문제였다. 문제에 'k개의 접시를 연속해서 먹을 경우' 라는 조건이 주어진다. 나는 이 조건에 대해 k개의 다른 종류를 먹어야 한다고 생각했다. 하지만, k개의 연속된 초밥을 먹는다라고 해석해야 한다. 또한, 주의해야 할 점이 회전 초밥은 원형이니까 배열 마지막 인덱스부터 다시 시작 인덱스 0 ~ k-1까지의 조합도 생각해야 한다. 예제 입력 1번을 예시로 설명해 보겠습니다. 25가 배열의 끝입니다. 그런데, 여기서 (25, 7, 9, 7)의 조합도 생각해야 합니다. 따라서, 다음과 같이 저는 배열의 끝에 k-1만큼 붙였습니다. 그러면 마지막 조합 ( 25, 7, 9, 7)에 대해서도 구해볼 수 있습니다. 구현 public class Main_2531 { s.. 2023. 5. 23.
[Jenkins] Jenkins와 Mattermost 알림 연동 팀 프로젝트를 진행하면서 Jenkins와 Mattermost를 연동해 알림을 받을 수 있으면 좋겠다고 생각했습니다. 그래서 다음 url을 참고하여 Mattermost와 연동해 Jenkins 실패, 성공에 대한 알림을 받도록 진행해 보았습니다. https://mattermost.com/blog/getting-started-with-mattermost-integrations/ Getting started with Mattermost integrations Mattermost is a flexible, open source messaging platform. What makes it even more useful is its ability to automate connections with integratio.. 2023. 5. 14.
[백준] BOJ 11501 주식(자바/시간 초과) 문제 유형 전부 계산해 보는 그리디 알고리즘이다. 어려웠던 점 1. 먼저 처음 풀이할 때는 배열을 int i = 0부터 시작하여 최대 수익을 계산했다. 이중 for문을 사용하여 문제를 풀었다. 그랬더니 시간초과가 발생했다. 그래서 뒤에서 부터 for문을 돌면서 수익을 낼 수 있으면 결괏값에 더하고, 아닌 경우 max를 갱신했다. 틀렸는데 반례를 확인해봐도 도저히 이유를 몰랐다. 이유는 문제에서 찾을 수 있었다. 무심코 넘어갔던 출력 조건인 부호 있는 64bit 정수형으로 표현 가능하다는 조건이 존재한다. 여기서 long 타입은 64bit 정수형, int 타입이 32bit 정수형이라는 점이다. 따라서, 결과값을 출력할 때 long 타입으로 출력해야 했다. 쉬웠던 문제인데 뭔가 실수도 많았던 것 같다. 조건.. 2023. 5. 2.