본문으로 건너뛰기

Security Ticket

수동 점검 프로세스를 디지털화한 웹 기반 관리 시스템

1. 프로젝트 요약

  • 한 줄 정의: Excel·이메일 중심의 수동 프로세스 → 웹 기반 자동화 전환
  • 팀 구성: BE 8명 (A팀 4명, B팀 4명), FE 3명
  • 기간: 2025.04 ~ 2025.05 (2개월)
  • 나의 역할: 백엔드 API 설계 및 사용자 관리 도메인 개발
    1. 코드 컨벤션 정의, 공통 응답 및 예외 처리 표준화 주도
    2. 팀 내 통합 API 규약 문서 작성 → BE/FE 협업 속도 및 구현 일관성 향상
  • 핵심 성과: MyBatis 하이브리드 도입을 통한 복합 검색 최적화

2. 기술 스택 및 시스템 아키텍처

  • 기술 스택: Java, Spring Boot 3, MySQL, Redis, Docker, GitLab, nginX
    • GitLab, nginX: 폐쇄망 기반 온프레미스 + Nexus로 패키지 관리
  • 구조: On-Premises 기반 개발/운영 존 분리 구조
시스템 다이어그램
ERD시스템 다이어그램
Flow chart
시스템 다이어그램

3. 핵심 문제 해결 및 성과

Trouble 1. MyBatis 하이브리드 도입 및 EXISTS 서브쿼리를 통한 복합 검색 최적화

1) Problem

  • 복합 조건 검색 시, JPA Specification 사용 시,
  • 가독성 저하, 복잡한 쿼리 작성의 어려움, 쿼리 튜닝의 어려움 등 한계 발생

2) Action

  • MyBatis의 부분적 도입을 통한 성능 향상
  • 추가 1) choose 중첩 → OR 조건 통합을 통한 쿼리 재사용성 향상
  • 추가 2) JOIN → EXISTS 서브쿼리 기반 카운팅을 통한 쿼리 최적화

3) Result

그래프성능 그림
항목JPA SpecificationMyBatis (최종)개선율
평균 응답시간24.45ms15.51ms36.8% ↓
최대 응답시간83.67ms54ms35% ↓
처리량 (TPS)221.77273.3423% ↑
  • 평균 응답시간: 24.56ms → 15.51ms (36.8% 개선)
  • 최대 응답시간: 473ms → 54ms (88.5% 단축)
  • 처리량: 66.7 TPS → 273 TPS (약 3.9배 향상)
  • 복합 검색 조건에서도 안정적인 응답 시간 유지

4) Deep Dive

4. 관련 블로그 포스팅