전체 글(47)
-
[Spring Batch] 인사 관리 시스템에서 스프링 배치 사용
스프링 배치를 공부하며 추가적으로 인사 관리 시스템을 주제로 프로젝트를 진행하고 있는데 여기서 스프링 배치를 통한 데이터 관리하고자 한다.인사 관리 시스템에서 스프링 배치 사용 예1. 급여 계산 작업설명: 매월 말이나 특정 날짜에 모든 직원의 급여를 자동으로 계산해야 하는 작업이 있습니다. 직원의 근무 시간, 휴가, 상여금, 세금 등을 반영해 정확한 급여를 산출해야 합니다.배치 작업:ItemReader: 직원의 근무 기록, 출퇴근 시간, 휴가 내역, 상여금 정보를 데이터베이스에서 읽어옵니다.ItemProcessor: 각 직원의 데이터를 기반으로 급여를 계산합니다. 이때 세금이나 보험 공제, 상여금 지급 등을 적용할 수 있습니다.ItemWriter: 계산된 급여 데이터를 급여 내역 테이블에 기록하거나 급여..
2024.09.16 -
[Spring Batch] 스프링 배치 동작 구조
https://www.youtube.com/@xxxjjhhh개발자 유미님의 유튜브를 참고하여 스프링 배치 공부를 시작..스프링 배치(Spring Batch)는 대규모 데이터를 효율적으로 처리하기 위한 프레임워크로, 주기적으로 실행되는 배치 작업을 통해 데이터를 읽고, 처리하고, 쓰는 작업을 반복적으로 수행합니다. 스프링 배치의 동작 구조는 크게 다음과 같은 요소들로 구성됩니다.1. 핵심 요소와 흐름읽기 (ItemReader): 데이터를 소스에서 읽어오는 역할을 담당합니다. 주로 데이터베이스, 파일, API 등 다양한 소스에서 데이터를 읽습니다.처리 (ItemProcessor): 읽어온 데이터를 가공하거나 변환하는 작업을 수행합니다. 여기서 데이터를 필터링하거나, 형식을 변환하는 등의 처리가 가능합니다.쓰..
2024.09.16 -
[코딩테스트] 백준 7576번 토마토
문제철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다.창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지, 그 최소 일수를 알고 싶어 한다.토마토를 창고에 보관하는 격자모양의 상자들의 크..
2024.09.15 -
[코딩테스트] 백준 1012번 유기농 배추
문제차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우에 서로 인접해있는 것이다.한나가 배추를 재배하는 땅은 고르지 못해서 배추를 군데군데 심어 놓았다. 배추들이 모여있는 곳에는 배추흰지렁이가 한 마리만 있으면 되므로 서로 인접해있는 배추들이 몇 군데에..
2024.09.15 -
[그래프] 깊이 우선 탐색 DFS
DFSDFS는 그래프나 트리에서 탐색하는 알고리즘 중 하나로, 시작점에서부터 가능한 깊은 곳까지 탐색한 후에 백트래킹(backtracking)하여 다른 경로를 탐색하는 방식입니다. 즉, 한 경로를 따라 최대한 깊게 탐색한 후, 더 이상 탐색할 노드가 없으면 이전 노드로 돌아가 다른 경로를 탐색합니다.특징깊이 우선 탐색: DFS는 가능한 한 깊은 노드까지 탐색한 후, 더 이상 내려갈 수 없을 때 돌아가서 다른 경로를 탐색합니다. 노드를 "깊이"를 기준으로 탐색합니다.스택(Stack)을 이용한 구현: DFS는 노드를 저장하고 탐색 순서를 관리하기 위해 스택 자료 구조를 사용합니다. 현재 노드에서 인접한 노드를 스택에 추가하고, 가장 나중에 추가된 노드부터 처리합니다(LIFO, Last In, First Ou..
2024.09.14 -
[그래프] 너비 우선 탐색 BFS
BFS (너비 우선 탐색)특징계층적 탐색: BFS는 시작 노드에서 가까운 노드부터 탐색을 시작하여 점차 거리가 먼 노드들을 탐색합니다. 노드를 "너비"를 기준으로 탐색합니다.큐(Queue) 사용: BFS는 큐를 이용하여 노드를 저장하고 순차적으로 처리합니다. 큐는 FIFO(First In, First Out) 방식으로, 먼저 삽입된 노드를 먼저 처리합니다.최단 경로 보장: 무가중치 그래프에서는 BFS가 시작 노드로부터 모든 다른 노드까지의 최단 경로를 보장합니다.방문 여부 체크: BFS는 동일 노드를 여러 번 방문하지 않도록 방문 여부를 체크합니다. 이를 위해 방문 여부를 기록하는 배열이나 집합(Set)을 사용합니다.장단점장점:최단 경로 탐색에 유용합니다.모든 노드를 확실히 탐색할 수 있습니다.단점:큐와..
2024.09.13