조건 기반 예측 캐싱: 고속 엑셀 다운로드 처리 구조 설계 Notes 전체 다운로드에 준하는 대량 데이터 요청을 실시간으로 처리하면서 API 서버 부하를 줄이고 응답 속도도 개선하려면 무엇을 바꿔야 하는가가 출발점이었다. 사전 생성은 어렵지만 반복되는 조건에 대해, 처리 비용을 먼저 예측해 분기하고 무거운 조건의 결과만 캐싱하는 구조를 설계했다. 배경: 사전 생성의 한계 앞서 전체 데이터를 필터 없이 다운로드하... 2025/05/22 Notes, Architecture
Redis 기반 인증 토큰 관리로 분산 환경의 인증 일관성 확보 Notes 분산 서버 환경에서는 사용자 인증 상태를 어느 서버에서든 같은 결과로 판단할 수 있어야 합니다. FLO 서버가 발급한 인증 토큰을 여러 서비스 서버에서 함께 쓰게 되면서, 인증 처리의 일관성을 확보하려고 Redis 기반 토큰 세션 관리 구조를 설계했습니다. 기존 문제점 기존 구조에서는 FLO 서버로부터 발급받은 인증 토큰을 단일 서버 메모리 또는 ... 2025/05/22 Notes, Common
JSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: DTO 중심 아키텍처 전환과 검증 체계 개선 Notes 레거시 JSP 시스템의 구조적 한계 극복기 - DTO 중심 아키텍처 전환과 검증 체계 개선 들어가며 오랜 기간 유지되어 온 JSP 기반의 웹 시스템은 빠르게 변화하는 비즈니스 요구사항과 정제되지 않은 데이터 흐름, 그리고 복잡하게 얽힌 UI 중심 로직으로 인해 유지보수가 점점 어려워지고 있었습니다. 특히 Map 기반의 비정형 데이터 처리, 검증 및... 2025/05/22 Notes, Common
JSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: 시퀀스 테이블 기반 코드 생성의 병목을 해결한 이야기 Notes 시퀀스 테이블 병목을 줄인 계약 코드 생성 최적화 사례 이 글은 계약 코드 생성 과정에서 발생한 시퀀스 테이블 병목을, 코드 체계를 유지한 채 선할당과 낙관적 락으로 줄인 기록입니다. 같은 키 생성 병목을 추적한 과정은 키 생성 병목을 추적해 구조를 바꾼 기록 시리즈에 따로 남겼습니다. 문제 상황: 시퀀스 기반 키 생성의 병목 계약 생성 시에... 2025/05/22 Notes, Common
JSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: MyBatis와 JPA 공존 환경의 데이터 정합성 전략 Notes 레거시(MyBatis)와 JPA 시스템의 공존 시 데이터 정합성 전략 새로운 시스템을 도입하면서 기존 레거시 시스템을 한 번에 폐기하기는 현실적으로 어렵습니다. 그래서 두 시스템을 동시에 운영하거나 점진적으로 전환하게 되는데, 두 시스템이 같은 테이블을 읽고 쓰는 동안에는 데이터 정합성 문제가 생기기 쉽습니다. 이 글은 MyBatis 기반 레거시 ... 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 기반 백엔드 서비스를 기준으로 로깅 설계 원칙, 레벨, 수집 체계, 그리고 코드의 어느 시점에 무엇을 남기는지를 다룬다. 로그를 메트릭, 트레이스와 어떻게 나눠 쓰는지는 메트릭, 로그, 트레이스에서 따로 다뤘다... 2025/05/22 Notes, Common
ISMS 대응을 위한 로그 수집 체계 개선 Notes JSON 포맷, MDC, Filebeat, Elasticsearch, Kibana로 감사 로그 대시보드를 만든 과정입니다. 각 요소의 일반적인 사용법은 백엔드 시스템 로깅 베스트 프랙티스에서 다뤘습니다. 배경: 왜 로그 시스템을 개선해야 했는가 정보보호 관리체계(ISMS) 인증을 준비하면서 가장 강하게 마주한 요구사항 중 하나는 감사 추적의 정밀도... 2025/05/22 Notes, Common
DB 스키마만으로 외주 시스템을 내재화한 리빌딩 여정 Notes 외주 개발로 운영되던 시스템을 완전히 내재화했던 경험을 정리합니다. API 명세서나 코드 없이 DB 스키마와 일부 데이터만 존재하는 상태에서 시작한 프로젝트였습니다. 그래서 기존 구조를 그대로 옮기는 마이그레이션이 아니라, 스키마 재설계부터 서비스 안정화까지 다시 만드는 작업이 되었습니다. 프로젝트 배경 기존 시스템은 수년간 외주사에서 개발·운... 2025/05/22 Notes, Common