JVM 프로세스 내 Python 임베딩 전략
JVM 프로세스 안에 Python을 임베딩하는 Jep 도입 사례를 다루었습니다. 스레드 제약, GIL, 네이티브 라이브러리 경로 문제와 대응 방법을 정리했습니다.


JVM 프로세스 안에 Python을 임베딩하는 Jep 도입 사례를 다루었습니다. 스레드 제약, GIL, 네이티브 라이브러리 경로 문제와 대응 방법을 정리했습니다.

레거시 연동 수신 구간을 Inbox 패턴으로 바꾸고 Kafka 비동기 처리로 분리한 사례를 정리했습니다. 응답 시간 단축, 중복 방지, 장애 복구 자동화까지 실측으로 검증했습니다.

외부 API 수신과 실제 데이터 처리를 분리한 구조를 소개했습니다. 요청은 Payload로 저장하고 내부 Timer Event가 비동기로 처리하도록 설계했습니다.

ThreadLocal 기반 컨텍스트 전파를 Java 25 ScopedValue로 바꾸는 리팩토링을 다루었습니다. 대상 파일 분석, 필터 전환, 예외와 타입 추론 문제 해결까지 정리했습니다.

인력풀 초대 링크에 만료와 위변조 방지를 넣기 위해 HMAC 서명 토큰을 적용했습니다. 프론트는 토큰만 전달하고, 서버가 발급과 검증을 모두 맡도록 구성했습니다.

NATS JetStream Durable Consumer가 비정상 종료 이후 메시지를 소비하지 못한 장애를 분석했습니다. Consumer 상태값으로 원인을 식별하고, 재생성 및 초기화 스크립트로 복구했습니다.

외부 기관 조회 API의 호출 건수 기반 과금 문제를 줄이기 위해 조건부 호출을 적용했습니다. 조회 Timestamp와 배치 갱신, Lazy Loading으로 불필요한 호출을 최소화했습니다.

운영 중 PostgreSQL에서 wraparound 방지 autovacuum이 CPU 100%를 유발한 사례를 정리했습니다. xid_age 누적, lock 경합, 긴급 대응과 사전 모니터링 포인트를 함께 설명했습니다.

다운로드·업데이트 가능한 애플리케이션에서 Flyway로 DB Migration을 운영한 경험을 정리했습니다. 멱등성, 백업, 롤백, 버전 관리 규칙까지 함께 설계해야 안전하다는 점을 다뤘습니다.

Kafka Rebalancing 원인을 메시지 처리 지연과 DB 저장 병목에서 찾고, 운영 완화를 위해 설정을 조정했습니다. 이후 Batch Insert로 처리 시간을 줄여 반복 Rebalancing을 완화했습니다.

배치에서 로케일 기본값이 잘못 적용돼 한국어 부서명이 en에 저장되는 문제를 찾고 개선했습니다. 신규 등록 경로에는 언어 코드를 명시 전달하고 기존 데이터는 조건을 좁혀 안전하게 보정했습니다.

proms-image에서 이미지 조회 시 소유권 검증이 빠져 타 병원 리소스가 조회되는 문제를 수정했습니다. imageId와 fileId+fileNo 경로에 cineroomId를 포함하고, 연동 서비스와 develop/stg 검증까지 완료했습니다.

선상-육상 메시지 재전송 파이프라인의 TPS 제한을 검증하기 위해 스파이크 테스트를 적용했습니다. 재발행 폭주와 즉시 재시도 때문에 유실이 발생했고, 속도 제한과 지수 백오프로 개선했습니다.

선착순 수강 신청의 정원 초과를 막기 위해 동시성 제어 방식을 비교했습니다. 조건부 원자적 UPDATE와 유니크 제약, 트랜잭션으로 정합성을 보장했습니다.

Java 25의 Scoped Value 설계 원칙과 API 사용 패턴을 정리했습니다. 실무 적용 한계와 전환 판단 기준까지 함께 다뤘습니다.

Java 25의 Scoped Value 등장 배경과 ThreadLocal의 구조적 한계를 설명했습니다. 가상 스레드 시대에 안전한 컨텍스트 공유 방식으로의 전환 필요성을 다뤘습니다.

구조화된 동시성을 활용해 병렬 API 호출 코드를 리팩토링하는 과정을 다뤘습니다. 기존 스레드 풀과 CompletableFuture를 정리하고 예외 처리와 테스트까지 확인했습니다.

게시판 프로젝트의 병렬 API 호출을 CompletableFuture에서 Java 25 구조화된 동시성으로 바꾸는 설계 과정을 다뤘습니다. 취소 전파 문제와 스레드 관리 한계를 테스트로 확인하고 개선 방향을 정리했습니다.
