Polynomeer

JSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: 시퀀스 테이블 기반 코드 생성의 병목을 해결한 이야기

아래는 레거시(MyBatis 기반) 시스템과 신규(JPA 기반) 시스템의 공존 및 배포 과정에서 발생할 수 있는 데이터 정합성 문제와 이를 해결하기 위한 전략 및 실무적 대응 방법을 상세하게 정리한 기술 문서 스타일의 글입니다. 기술 블로그나 사내 문서로도 바로 활용 가능하게 구성했습니다. 💡 레거시(MyBatis)와 JPA 시스템의 공존 시 데...

JSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: 시퀀스 테이블 기반 코드 생성의 병목을 해결한 이야기

💥 시퀀스 테이블 병목을 잡아라 – 계약 코드 생성의 병렬 트랜잭션 최적화 사례 운영 중인 시스템에서 병목 현상을 해결하는 것은 언제나 현실적 제약과의 싸움입니다. 이번 글에서는 계약 코드 생성 과정에서 발생한 시퀀스 테이블 병목 문제를 해결하며 경험한 설계적 고민, 실용적인 트랜잭션 전략, 그리고 그 성과를 공유하려고 합니다. ❗ 문제 상황:...

JSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: DTO 중심 아키텍처 전환과 검증 체계 개선

🛠️ 레거시 JSP 시스템의 구조적 한계 극복기 — DTO 중심 아키텍처 전환과 검증 체계 개선 ✍️ 들어가며 오랜 기간 유지되어 온 JSP 기반의 웹 시스템은 빠르게 변화하는 비즈니스 요구사항과 정제되지 않은 데이터 흐름, 그리고 복잡하게 얽힌 UI 중심 로직으로 인해 유지보수성에 큰 어려움을 겪고 있었습니다. 특히 Map 기반의 비정형 데이터 ...

[3주차] 속도를 지배하는 DB 인덱스

03. 인덱스란? 책갈피를 끼워두고 필요할 때 바로 해당 페이지를 펼 수 있게 하는 것과 같다. 즉, DB에서 자주 사용하는 필드 값의 위치를 저장해놓음으로써, 데이터를 빠르게 탐색할 수 있다. 탐색을 빠르게 할 수 있는 반면, 데이터가 추가될 때마다 책갈피를 꽂아 넣어야해서(인덱스 생성), 데이터의 탐색 속도는 빠르지만 데이터를 추가하는 속도는 느...

Chapter 2. Architectural Thinking

아키텍처 사고란, 단순이 ‘아키텍처를 생각하는 것’이 아니라 아티텍처적인 눈으로 아키텍처 관점에서 사물을 바라보는 것이다. 아키텍처와 설계의 차이를 이해하고 아키텍처 작업을 진행하려면 개발팀과 어떻게 협력해야할 지 아는 것 어느 정도 기술 깊이를 유지하면서 폭넓은 기술 지식을 확보하는 것 다양한 솔루션과 기술 간의 트레이드 오프를 이해하고...

헬퍼 클래스는 안티패턴일까?

실무에서는 도메인 객체가 너무 비대해지는 걸 막기 위해 Helper 클래스가 자주 사용된다. 하지만 어느 순간부터 로직이 섞이고, 도메인 책임과 기술 책임이 뒤섞이면서 코드 유지보수가 어려워진다. 객체 지향 프로그래밍의 SOLID 원칙을 기준으로 하면 헬퍼 클래스는 존재 자체가 안티패턴이라고도 주장할 수 있으나, 실질적으로 도메인과 전혀 관련없는 정적...