대용량 지분율 데이터 처리 성능 개선과 동시성 제어 전략 Notes 이 글은 실제 운영 경험을 바탕으로 일부 표현과 도메인을 일반화해 재구성한 기록입니다. 문제 배경 운영 중인 시스템에서는 파트너사의 지분율 데이터를 정기적으로 갱신한다. 특히, 협회 유형 파트너의 경우 건수가 80만 건 이상으로 매우 방대하며, 매월 1회 정기적으로 등록된다는 특성이 있다. 근본적인 병목은 대량 삭제와 대량 등록이 하나의 작업 흐름... 2025/05/27 Notes, Common
JSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: MyBatis와 JPA 공존 환경의 데이터 정합성 전략 Notes 레거시(MyBatis)와 JPA 시스템의 공존 시 데이터 정합성 전략 새로운 시스템을 도입하면서 기존 레거시 시스템을 완전히 폐기하기는 현실적으로 어렵습니다. 이로 인해 두 시스템이 동시에 운영되거나 점진적 전환이 필요할 때, 데이터 정합성 문제는 필연적으로 발생합니다. 이번 글에서는 MyBatis 기반 레거시 시스템과 JPA 기반 신규 시스템이 ... 2025/05/22 Notes, Common
JSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: API 명세 없는 레거시 시스템의 신규 시스템 이관 전략 Notes API 명세가 없는 레거시 시스템을 새로운 시스템으로 이관하는 것은 많은 기업에서 실제로 겪는 어려운 과제입니다. 이 경우 소스코드 분석, 트래픽 리버스 엔지니어링, 실시간 미러링 테스트, 그리고 점진적 이관 전략을 병행하여야 안정적으로 마이그레이션할 수 있습니다. 아래는 이를 계획, 분석, 구현, 전환, 운영 단계로 나눠 상세히 설명한 전략입니다. ... 2025/05/22 Notes, Common
JSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: JavaScript에 과도하게 집중된 로직 분리하기 Notes JavaScript에 얽힌 로직을 백엔드로 분리한 개편기 레거시 JSP 시스템에서 JPA 기반의 백엔드와 프론트엔드 분리 구조로 개편하는 과정에서, 우리는 흔히 다음과 같은 문제를 마주합니다. “프론트에 너무 많은 로직이 얽혀 있다.” 특히 과거 JavaScript는 단순한 UI 역할을 넘어, 검증부터 비즈니스 로직 판단까지 상당한 책임을... 2025/05/22 Notes, Common
백엔드 시스템 로깅 베스트 프랙티스 Notes 로깅(logging)은 시스템의 상태를 추적하고 문제를 진단하며, 보안 및 감사 대응에 필수적인 요소입니다. 아래는 백엔드 시스템, 특히 Spring Boot 기반 서비스를 중심으로 정리한 로깅 베스트 프랙티스입니다. 1. 로깅 설계 원칙 항목 설명 📌 목적 정의 ... 2025/05/22 Notes, Common
ISMS 대응을 위한 로그 수집 체계 개선 Notes ISMS 인증을 위한 로그 수집 체계 전면 개선기 – JSON 포맷, MDC, Filebeat, Elasticsearch-Kibana로 완성한 실시간 감사 로그 대시보드 배경: 왜 로그 시스템을 개선해야 했는가? 정보보호 관리체계(ISMS) 인증을 준비하면서 가장 강하게 마주한 요구사항 중 하나는 감사 추적의 정밀도와 실시간 대응력이었습니다. ... 2025/05/22 Notes, Common
DB 스키마만으로 외주 시스템을 내재화한 리빌딩 여정 Notes 외주 개발 시스템을 DB 스키마 기반으로 완전 내재화한 이야기 외주 개발로 운영되던 시스템을 완전히 내재화했던 경험을 공유합니다. API 명세서나 코드 없이 DB 스키마와 일부 데이터만 존재하는 상태에서 시작한 프로젝트였고, 단순한 마이그레이션이 아니라 스키마 재설계부터 서비스 안정화까지 전방위적 개선을 수행한 사례입니다. 프로젝트 배경 기존... 2025/05/22 Notes, Common
대량 엑셀 다운로드를 메시지 큐와 S3 사전 생성으로 개선한 이야기 Notes 대량 엑셀 다운로드를 메시지 큐와 S3 사전 생성으로 개선한 구조 대량 데이터 엑셀 다운로드는 흔한 요구지만, 설계가 미흡하면 API 서버가 쉽게 병목 지점이 됩니다. 우리는 실제 운영 환경에서 전체 데이터를 조건 없이 반복 다운로드하는 요청으로 인해 API 서버 CPU 사용률이 85%까지 상승하는 문제를 경험했고, 이를 비동기 메시지 큐 처리 + ... 2025/05/22 Notes, Common
대용량 엑셀 다운로드 요청을 안정적으로 처리하는 방법 Notes 대용량 엑셀 다운로드 기능은 처음에는 단순해 보인다. 조회 쿼리를 실행하고, 결과를 엑셀 파일로 만든 뒤, 응답으로 내려주면 끝이기 때문이다. 하지만 사용자 수가 늘고 다운로드 대상 건수가 커지면 이 기능은 API 서버, DB, 스토리지 모두를 압박하는 고비용 작업으로 바뀐다. 특히 다음 조건이 겹치면 문제가 빠르게 드러난다. 같은 사용자가 ... 2025/05/22 Notes, Programming
무거운 엑셀 다운로드 요청을 사전에 판별하는 방법 Notes 엑셀 다운로드 기능을 운영하다 보면 모든 요청을 같은 방식으로 처리하기 어렵다는 사실을 금방 체감하게 된다. 어떤 요청은 수백 건 수준이라 즉시 응답해도 무리가 없지만, 어떤 요청은 수십만 건을 읽어야 해서 비동기 처리로 넘겨야 한다. 문제는 사용자가 요청을 보내기 전까지는 그 비용이 겉으로 드러나지 않는다는 점이다. 그래서 필요한 것이 사전 판별 ... 2025/05/22 Notes, Programming