profile
우당탕탕

Spring Batch 트랜잭션 매니저 충돌 트러블슈팅

우편번호 마스터 동기화 배치(ZipcdSyncTasklet)를 신규 개발 후 Jenkins에서 실행했더니,cmm_road_cd_d 테이블은 정상적으로 bulk upsert 되는데 cmm_road_addr_d는 계속 실패했다.에러 로그만 보면 SQL 파라미터 바인딩 문제

2026년 7월 3일
·
0개의 댓글
·

whofeeding.gg 개발기 1편

LoL 트롤 신고 커뮤니티 + 전적 통계 서비스를 직접 만들어보는 과정을 기록합니다.whofeeding.gg는 League of Legends 전적 통계와 트롤 신고 커뮤니티를 결합한 웹 서비스입니다.서비스 이름은 LoL 게임 중 채팅에서 자주 사용되는 문구나 단어를

2026년 6월 7일
·
0개의 댓글
·

쿼리 N번 → 1번: TODO 주석으로 남아있던 주문분배 N+1

우리 시스템의 주문분배(Order Distribution) 는 주문이 들어왔을 때 어느 물류센터에서 출고할지를 결정하는 핵심 배치다.분배 로직의 핵심은 간단하다.센터별 실제 가용재고 = 외부 시스템 재고 − 이미 분배된 주문 수량여기서 "이미 분배된 주문 수량"을 계산

2026년 6월 5일
·
0개의 댓글
·

GS리테일 WMS — 슈퍼마켓 TC 출고확정 시스템 개발기

GS리테일 WMS — 슈퍼마켓 TC 출고확정 시스템 개발기대규모 물류센터의 출고확정 플로우를 처음부터 설계하고, 성능 병목을 찾아 개선하고, 재고 오판단 버그를 잡기까지의 기록입니다.배경GS리테일 슈퍼마켓 물류센터에는 TC(Transfer Center, 크로스도킹 센터

2026년 6월 5일
·
0개의 댓글
·

[트러블슈팅] 스프링부트 배치 개선작업 (N+1, 병렬처리)

일수불 배치 성능 개선기 — N+1 제거 & 병렬 처리 개요 회사에서 나는 매일 재고 입출고 및 기타상황에 따라 발생되는 입출고 데이터와 정산데이터를 통해 생성 비교되는 배치인 일수불데이터 배치와 매달 첫 영업일 마감작업을 위한 정합성 배치를 사용하며 운영업무를 진행

2026년 5월 28일
·
0개의 댓글
·

VSCode에서 Claude API 연결하는 법 (Continue.dev) — Claude 에이전트 팀 시리즈 1편

Date: 2026-05-22이 시리즈는 Claude 에이전트 팀을 구성해서 React + Spring Boot 포트폴리오 웹사이트를 만드는 과정을 기록한다.1편에서는 VSCode 안에서 Claude를 채팅으로 쓸 수 있도록 환경을 세팅한다.GitHub Copilot

2026년 5월 22일
·
0개의 댓글
·

[트러블슈팅] M8i 인스턴스 업그레이드 후 Oracle DB 연결이 갑자기 끊기는 현상

EC2 인스턴스 타입을 C5에서 M8i로 변경한 이후, Oracle DB의 idle 상태 TCP 연결이 7~10분 후 아무런 에러 없이 끊기는 현상이 발생했다. 원인은 최신 Nitro Card(Nitro v6) 의 기본 connection tracking idle ti

2026년 5월 22일
·
0개의 댓글
·

[DCommerce] 6편 - k6 성능 테스트로 Redis 동시성 검증하기

5편까지 Redis 동시성 제어와 Kafka 비동기 처리를 구현했다. 이번 편에서는 k6를 사용해서 실제로 동시 주문이 들어왔을 때 재고가 정확히 차감되는지 성능 테스트로 검증했다.k6는 JavaScript로 테스트 스크립트를 작성할 수 있는 오픈소스 성능 테스트 툴이

2026년 5월 19일
·
0개의 댓글
·

[DCommerce] 5편 - Kafka로 주문 이벤트 비동기 처리하기

4편에서 Redis로 동시성 문제를 해결했다. 이번 편에서는 Kafka를 도입해서 주문 완료 이벤트를 비동기로 처리하는 구조를 만들었다.주문이 완료되면 이메일 발송, 포인트 적립, 배송 시작 등 여러 작업이 필요하다. 이걸 동기로 처리하면 문제가 생긴다.이메일 서버가

2026년 5월 15일
·
0개의 댓글
·
post-thumbnail

[DCommerce] 4편 - Redis로 재고 동시성 문제 해결하기

기존 코드는 이런 흐름이었다:동시에 2명이 주문하면:재고가 마이너스가 되는 overselling 문제가 발생한다.Redis의 increment 연산은 원자적(Atomic) 으로 처리된다.Redis에 재고를 관리하는 서비스.키 형식은 stock:{productId} 로

2026년 5월 7일
·
0개의 댓글
·

[DCommerce] 3편 - 상품 API + 주문 API 구현하기

new 키워드 대신 static 메서드로 객체를 생성하는 패턴.첫째, 이름을 줄 수 있다둘째, Entity 변경이 한 곳에 집중된다Product 필드가 추가되거나 바뀌면 from() 메서드 하나만 고치면 된다.셋째, Setter가 필요 없어진다Setter 없이 객체를

2026년 4월 29일
·
0개의 댓글
·

2편 - 로그인 API + JWT 발급 구현하기

JWT(JSON Web Token)는 로그인 인증에 사용되는 토큰 방식이야.핵심 포인트: 서버는 토큰을 저장하지 않는다.일반적인 세션 방식은 서버가 로그인 상태를 저장하지만, JWT는 다르다.서버는 Secret Key로 서명만 해서 클라이언트에게 토큰을 발급하고,이후

2026년 4월 24일
·
0개의 댓글
·

Spring Boot 프로젝트 설계 — ERD와 첫 API 만들기

대용량 주문 처리 API 서버를 만들면서 Java 백엔드 기술을 정리합니다.기술 스택Spring Boot 3.2.xJava 17MySQL + JPARedis Kafka JWT 인증 주문 시스템에 필요한 테이블 5개를 설계했습니다.주문 당시 가격을 스냅샷으로 저장합니다.

2026년 4월 24일
·
0개의 댓글
·

[데이터베이스] Key 개념 정리 (PK, FK, Unique, Composite Key)

key key key...

2026년 3월 5일
·
0개의 댓글
·

[주니어 탈출기] IoC와 DI 부수기

이 개념을 공부해야 하는 이유 실무에서 IoC/DI가 중요한 상황 설명 IoC (Inversion of Control) 정의 특징 DI (Dependency Injection) 정의 주입 방식 (생성자, Setter, 필드) Spring Container

2025년 8월 31일
·
0개의 댓글
·

백준 11050번 이항계수 JAVA 풀이

문제 번호: 11050 푼 날짜: 2025-08-31 이항 계수가 무엇인지 이해하고 공식화 하면 되는 문제!이항계수 공식을 적용하자 헷갈려서 나누는 분모를 자꾸 여러번틀림 \> 구글링해서 공식을 다시 알게됐고 오랜만에 팩토리얼 사용

2025년 8월 31일
·
0개의 댓글
·

백준 1032번 명령 프롬프트 JAVA 풀이

문제 번호: 1032 푼 날짜: 2025-08-31 배열을 입력받아 n개의 배열에서 다른값을 가진 인덱스에 ? 를 넣어주면되는 문제 숫자를 입력받아보자숫자만큼 String\[] 배열을 입력받아보자 배열을 비교하고 다르면 ? 를 넣는것을 구현해보자 \> 근데 2번 틀

2025년 8월 31일
·
0개의 댓글
·

백준 1107번 리모컨 JAVA 풀이

문제 번호: 1107푼 날짜: 2025-06-10 https://www.acmicpc.net/problem/1107\> 구현력이 아직 매우 부족하다.

2025년 6월 10일
·
0개의 댓글
·

백준 1476번 날짜계산 JAVA 풀이

BOJ 1476 | 날짜 계산 🍬 문제 번호: 3085 푼 날짜: 2025-06-08 📌 문제 요약 N×N 보드에 다양한 색 사탕이 있고, 인접한 사탕을 한 번 교환할 수 있다. 이때 가장 긴 연속 같은 색 사탕 길이를 구하는 문제. 💡 접근 아이디어 보드의

2025년 6월 9일
·
0개의 댓글
·

백준 3085번 사탕게임 JAVA 풀이

코딩테스트... 현업2년차에 다시 시작하다..

2025년 6월 8일
·
0개의 댓글
·