- [ Spring ]Spring Batch의 세 가지 핵심 처리 방식: Quartz, Chunk, Tasklet 비교2025-09-06 08:25:31Spring Batch는 대용량 데이터 처리와 배치 작업 스케줄링에 특화된 프레임워크입니다. 이 글에서는 Spring Batch에서 자주 사용되는 세 가지 방식인 Quartz, Chunk, Tasklet을 설명하고, 각각의 특징과 차이점을 비교해보겠습니다.1️⃣ Quartz: 배치 작업의 스케줄링 담당Quartz는 배치 작업을 언제 실행할지를 제어하는 스케줄링 라이브러리입니다. Spring Batch와 통합하면, 특정 시간에 Job을 자동으로 실행하거나 복잡한 실행 조건을 설정할 수 있습니다.✔️ 특징Cron 표현식 기반의 정교한 스케줄링Job 실행 이력 관리 가능Spring과 쉽게 통합 가능✔️ 사용 예시 @Scheduled(cron = "0 0 2 * * ?") // 매일 새벽 2시 실행public ..
- [ Java ]BFF(Backend for Frontend) 아키텍처란?2025-09-05 09:52:431. BFF란 무엇인가요?**BFF(Backend for Frontend)**는 프론트엔드 애플리케이션에 특화된 백엔드 레이어를 의미합니다. 즉, 각 프론트엔드(웹, 모바일 등)에 맞는 전용 백엔드를 따로 구성하여, 클라이언트의 요구사항에 최적화된 API를 제공하는 방식입니다.기존에는 하나의 공통 백엔드가 모든 클라이언트에 데이터를 제공했지만, BFF는 클라이언트별로 맞춤형 백엔드를 두어 UI/UX의 복잡성과 성능 문제를 해결합니다.2. 왜 BFF가 필요한가요?✅ 다양한 클라이언트 대응웹, 모바일, 스마트워치 등 다양한 디바이스가 존재각 디바이스의 화면 크기, 기능, 사용자 경험이 다름✅ API 응답 최적화모바일은 네트워크가 느릴 수 있으므로, 최소한의 데이터만 필요웹은 더 많은 데이터를 한 번에 받아도..
- [ 리눅스 ]뮤텍스(Mutex)와 세마포어(Semaphore)란?2025-09-01 11:46:53sem_wait(&sem); // 세마포어 감소, 자원 접근// 공유 자원 사용sem_post(&sem); // 세마포어 증가, 자원 해제동시성 프로그래밍을 하다 보면 자주 마주치는 개념이 있습니다. 바로 **뮤텍스(Mutex)**와 **세마포어(Semaphore)**입니다. 이 둘은 멀티스레딩 환경에서 자원 접근을 제어하기 위한 도구로, 프로그램의 안정성과 성능을 좌우하는 중요한 역할을 합니다. 🧩 뮤텍스(Mutex)란?**뮤텍스(Mutual Exclusion)**는 말 그대로 상호 배제를 의미합니다. 하나의 스레드만 특정 자원(예: 파일, 메모리)에 접근할 수 있도록 제한하는 장치입니다.특징:한 번에 오직 하나의 스레드만 자원에 접근 가능자원을 사용 중인 스레드가 뮤텍스를 잠금(lock) 하..
- [ ETC ]SSL과 TLS 비교2025-03-07 11:52:29이전 글에서 HTTP 와 HTTPS 의 비교해본적이 있다.(이전글 참조 : https://junibong.tistory.com/96)HTTPS 통신에서 빠질 수 없는 SSL과 TLS를 비교해보려고 한다. TLS(Transport Layer Security) 란? TLS(Transport Layer Security)란 전송 계층 보안이라고도 하며 인터넷 상의 커뮤니케이션을 위한 개인 정보와 데이터 보안을 용이하게 하기 위해 설계되었으며 널리 채택된 보안 프로토콜입니다. TLS의 주료 사용 사례는 웹 사이트를 로드하는 웹 브라우저와 같이 웹 응용 프로그램과 서버 간의 커뮤니케이션을 암호화하는 것입니다. TLS 프로토콜은 암호화, 인증, 무결성이라는 세가지 주요 요소를 가지고 있습니다.암호화 - 제 3자로부터..
- [ 이클립스(Eclipse) ][Eclipse] 스프링부트 디버깅 breakpoint 에러2025-02-07 16:58:25스프링 부트에서 디버그를 사용하려고 Breakpoint 생성 후디버그 모드로 서버를 킬 경우 발생했다. 이런 에러가 발생하는 원인은스프링 부트는 런타임 컨트롤러에서 내부 클래스 형태로 생성되는데 내부 클래스는 컴파일 시점에 외부 클래스와는 다른 방식으로 처리되며, 이로 인해 디버깅 시 행 번호(Line Number) 정보가 누락된다. JVM이 클래스를 로드할 때 이 정보가 없으면 브레이크포인트를 설정할 수 없다는 경고가 발생하기 때문이다. 하지만 JVM 로드 후 IDE가 로드되면서breakpoint를 생성하므로 경고를 무시하고 사용해도사용에는 아무 문제가 없다 아래 설정값을 체크 해제만 해주면 문제 없이 사용 가능하다.
- [ Windows ][Windows] 폴더별 용량 확인2024-11-29 17:28:22프로그램을 설치하지 않고, 명령어를 통해 폴더 용량 계산이 가능하다. 1. Windows PowerShell(관리자) 를 실행 2. cd \ 실행 후 아래 코드를 실행시켜준다.$unitFactor = 1MB$unitLabel = "MB"Get-ChildItem . -Directory | ForEach-Object { $folderPath = $_.FullName $folderSize = (Get-ChildItem -Path $folderPath -Recurse -File | Measure-Object -Property Length -Sum).Sum [PSCustomObject]@{ FolderName = $_.Name FolderSize = [Math]::Roun..
- [ Git ][Git] 브랜치 전략 도입2024-10-03 18:24:321. 최초의 운영Git 브랜치 전략없이 master 하나로만 운영을 해왔다.시스템 운영자가 2~3명이였고, 하나의 화면을 동시에 수정하는 경우가 거의 없었기에 충돌이 자주 발생하지 않았다. 하지만 충돌이 발생하는 경우 overwrite 후 pull 작업이 잘 되지 않았고, reset 으로 강제 pull을 진행하곤 했다. 2. 개발환경 구성IT 보안진단을 통해 dev 환경을 구성하게 되면서, dev 브랜치를 구성하게 되었다. 하지만 dev를 거쳐 prd로 흘러가는 하나의 통로일 뿐, 개발에 대한 브랜치 전략을 세우지 않아 위에서 발생한 문제가 지속적으로 겪게 되었다. 3. 브랜치 전략 도입브랜치 전략에는 여러가지가 존재하지만, 먼 미래의 시스템 개발/운영의 분리를 위해 git-flow 전략을 도입한다. ..
- [ AWS(Amazon Web Service) ][AWS] SAA C03 - (301~330)2024-09-26 20:15:44301 - https://www.examtopics.com/discussions/amazon/view/99659-exam-aws-certified-solutions-architect-associate-saa-c03 302 - https://www.examtopics.com/discussions/amazon/view/99693-exam-aws-certified-solutions-architect-associate-saa-c03/ 303 - https://www.examtopics.com/discussions/amazon/view/99813-exam-aws-certified-solutions-architect-associate-saa-c03/ 304 - https://www.examtopics.com/dis..