모든 태그
태그

Java 기술 블로그 글

Java 태그가 달린 국내 IT 기업 기술 블로그 글을 최신순으로 모았습니다.

전체 124최신 20개 표시
홈에서 필터

최신 게시글

20개 표시

아키텍처

Kiro 에이전트와 Harness Engineering: LGU+ Knowledge-based Mass Migration 자동화

LGU+의 대규모 AWS 마이그레이션에서 Kiro와 Harness Engineering으로 전환 작업을 표준화했습니다. 설정 자동화와 지식 자산화를 통해 개발자 편차를 줄이고 재사용성을 높였습니다.

#AWS#Kubernetes#Java
16200

백엔드

Swagger 기반 API 명세 자동화 PoC

고객사 환경 제약 때문에 Swagger를 서비스에 직접 붙이지 않고, 중앙 서버와 YAML 파일로 API 명세를 통합하는 PoC를 검증했습니다. 또한 Custom Annotation 기반으로 배포 시점에 명세를 자동 생성하는 확장 방향도 살펴봤습니다.

#Swagger#Spring Boot#Springfox
48000

백엔드

Vello: 클래스 패스에 없는 외부 이벤트 처리

클래스패스에 없는 외부 이벤트를 역직렬화 실패 없이 원시 형태로 보존하는 `LakeyEventConverter`를 소개했습니다. 대상 토픽 필터링과 중복 제거를 거쳐 `RawEvent`로 저장하는 흐름도 설명했습니다.

#Java#LLM#event
1400

백엔드

돌아오지 않는 메모리를 찾아서

Kubernetes에서 메모리 사용률이 99%까지 오르던 원인을 heap 누수로 의심했지만, JVM committed heap과 로그 파일 page cache가 핵심 원인이었습니다. JVM 옵션 조정과 FILE Appender 제거로 사용률을 크게 낮추고 안정화했습니다.

#Kubernetes#JVM#Java
7100

백엔드

데이터 Backfill을 위한 자원 격리 전략

실시간 트래픽과 백필 트래픽을 분리해 자원 고갈과 DB 스파이크를 막는 구조를 정리했습니다. 전용 큐와 비동기 스레드 풀, 크기 기반 청크 처리로 안정적인 대용량 재전송을 구현했습니다.

#NATS#Java#ConcurrentLinkedQueue
3400

백엔드

의심했던 범인은 알리바이가 있었다.

Jenkins 배치의 5분~12분 Hang 원인을 JFR로 추적해, 의심했던 로그 appender가 아니라 N+1 쿼리와 Aurora 읽기 지연이 범인임을 밝혀냈습니다. 운영 코드 변경 없이 JVM 옵션 한 줄로 진단하고 쿼리 통합으로 문제를 해결했습니다.

#Spring Batch#Jenkins#JFR
9100

아키텍처

되도록 최신 버전을 사용하는게 왜 이렇게 어려울까?

폴리레포에서 버전 관리 자동화를 가능하게 한 Version Family 설계와 전제 조건을 설명했습니다. 빌드 동형성과 단방향 의존 구조가 있어야 최신 버전 수렴이 가능하다고 정리했습니다.

#Gradle#pol리레포#versioning
2600

데브옵스

JVM Heap 설정과 OOMKilled

Kubernetes Pod의 OOMKilled 원인을 Memory Limit만으로 보지 않고 JVM Heap 설정까지 함께 점검했습니다. MaxRAMPercentage를 낮추자 Full GC가 정상 동작하며 재시작 문제가 해소됐습니다.

#Kubernetes#Java#GC
4700

백엔드

OpenHTMLtoPDF 적용 경험

OpenHTMLtoPDF를 검토하고 채택한 이유와 구현 구조를 정리했습니다. 한글 지원, 유지보수성, 보안 처리까지 함께 고려한 PDF 생성 경험입니다.

#Java#PDF#HTML
41800

AI

사조시스템즈의 사내 ERP 데이터 기반 Agentic AI 구축 여정 – Strands Agents SDK와 Kiro 활용기

사내 ERP 회계 데이터를 활용해 Agentic AI 프로토타입을 구축한 과정을 정리했습니다. Strands Agents SDK와 Kiro로 역할 분리, Context 관리, 데이터 추출과 후속 작업 연결을 검증했습니다.

#Agentic AI#AWS#Spring Boot
2000

백엔드

설문 관리 서비스 구현 사례

의료 설문 플랫폼에서 설문 정의와 수집을 담당하는 서비스를 헥사고날 구조와 CQRS로 설계했습니다. Master/Snapshot, Kafka, Outbox 등을 적용해 정합성과 운영 안정성을 확보했습니다.

#Java#Spring Boot#Kafka
1100

백엔드

putlfAbsent()의 한계와 변경감지 개선

실시간 모니터링에서 계산식 메타데이터 동기화 문제를 다뤘습니다. `putIfAbsent()` 한계를 보완하기 위해 `replace()`로 변경 감지와 이벤트 발행을 개선했습니다.

#Java#동시성#cache
900

데브옵스

채널톡 메인 백엔드 서버 CI 개선기

채널톡 메인 백엔드 서버의 CI 병목을 단계적으로 분해해 개선한 과정을 정리했습니다. 공유 상태 제거, prepare 분리, 동적 큐와 캐시로 실행 시간을 크게 줄였습니다.

#CI/CD#Java#PostgreSQL
300

데브옵스

채널톡 메인 백엔드 서버 CI 개선기

AI가 코드를 빠르게 만들수록 CI 병목과 피드백 속도가 더 중요해졌습니다. 채널톡은 공유 상태 제거와 캐시, 동적 큐로 메인 백엔드 CI를 36.6분에서 15분대까지 줄였습니다.

#CI/CD#Java#PostgreSQL
3300

AI

기존 개발 코드(Java)로 Amazon Neptune Analytics GraphRAG 구현하기

기존 Java/Spring 코드에서 그래프 스키마와 비즈니스 규칙을 추출해 spec.json을 만들고 GraphRAG를 구현하는 방법을 소개했습니다. Neptune Analytics와 Bedrock Knowledge Bases로 관계 기반 질의를 처리하는 흐름을 설명했습니다.

#Java#Spring Boot#JPA
5800

백엔드

biz-crm IndexedDAO 적용기

내부 백오피스 검색 지연 문제를 고객 사용 방식 인터뷰로 먼저 확인했습니다. IndexedDAO를 도입해 인덱스 히트를 보장하고 8초 쿼리를 200ms대로 개선했습니다.

#Java#DB#검색
200

백엔드

biz-crm IndexedDAO 적용기

biz-crm 대용량 검색 지연 문제를 사용자 인터뷰로 원인부터 재점검했습니다. 범용 필터를 줄이고 IndexedDAO를 도입해 인덱스 기반 조회로 개선했습니다.

#Java#JOOQ#검색
1100

데브옵스

수천 개의 API/BATCH 서버를 하나의 설정 체계로 관리하기

수천 개의 API/BATCH 서버 설정을 하나의 체계로 관리하는 방법을 소개했습니다. 오버레이, 템플릿, 선언형 설정과 동적 프로비저닝으로 설정을 진화시킨 사례를 다뤘습니다.

#Kubernetes#AWS#Java
13900

데브옵스

비용, 성능, 안정성을 목표로 한 지능형 로그 파이프라인 도입

네이버 Logiss의 로그 파이프라인 운영 문제와 개선 과정을 다뤘습니다. Storm Kafka spout 수정과 멀티 토폴로지 도입으로 비용·성능·안정성을 높이려 했습니다.

#Kafka#Storm#OpenSearch
11400

백엔드

Amazon Aurora를 위한 Advanced JDBC Wrapper Driver 소개

Amazon Aurora용 Advanced JDBC Wrapper Driver를 소개하며 장애조치와 인증 통합 기능을 설명했습니다. 또한 IAM과 Secrets Manager 연동, 플러그인 기반 설정과 사용 예시를 함께 다뤘습니다.

#AWS#Java#JDBC
5100