Java / Spring Boot
단순 기능 구현을 넘어 시스템의 병목을 분석하고 개선하는 데 집중합니다.
N+1 쿼리 문제를 벌크 조회와 메모리 매핑으로 해결해
응답 시간을 25초에서 0.9초로 단축했습니다.
또한 직접 만든 11종의 템플릿으로
기획·개발·이슈 해결 과정을 기록하며
협업 과정의 정보 손실을 줄이는 개발 방식을 지향합니다.
대규모 실시간 통신 및 상태 관리 최적화를 적용한 단일 기업용 B2B HR·웰빙 SaaS 통합 관리 플랫폼.
다중 접속 환경에서의 WebSocket·SSE 기반 실시간 데이터 스트리밍과 멀티테넌시 아키텍처를 통한 기업 간 완전한 데이터 격리를 구현한 클라우드 구독형 서비스입니다.
React ➡️ Nginx ➡️ Spring Boot API ➡️
Redis Cache ➡️ MySQL
GET /api/employee/dashboard (직원 대시보드 상태 및 통계 데이터 조회)PUB /pub/chat/message (WebSocket 실시간 그룹/개인 채팅 메시지 발송)
for) 내에서 직원별 휴가, 스트레스, 쿨다운 정보를 3개의 레포지토리로 각각 조회하여
총 150개의 단건 쿼리가 연쇄적으로 발생하는 N+1 구조적 결함을 발견했습니다. 이로 인해 화면 로딩에 25초가
소요되었습니다.WHERE IN 절을 활용한 벌크 조회(Batch Fetch)로 변경하고, 이를 애플리케이션
메모리 단에서 Map 자료구조를 이용해 매핑(O(1))하는 방식으로 리팩토링했습니다. 결과적으로
쿼리 호출 횟수를 150개에서 3개로 단축하고 응답 속도를 0.9초로 대폭 개선하여 DB 부하를
원천 차단했습니다.
token vs
authToken)와 순수 Axios 직접 import 휴먼 에러를 교차 분석해 해결했습니다.
수기·엑셀 기반 병원 관리의 비효율을 해결하기 위한 통합 병원 ERP 시스템.
예약, 진료, 근태 관리를 포함한 병원 운영 전 영역을 디지털화.
JSP / JSTL ➡️ Spring Boot API ➡️ Oracle DB
CONSTRAINT FK_...,
CONSTRAINT CHK_STATUS CHECK (STATUS IN ('Y', 'N', 'R')) 등 데이터베이스 단의 무결성 검증
설정 주도
LISTAGG(name, ',') WITHIN GROUP (ORDER BY id) 및 서브쿼리 활용으로 N+1 데이터 병합
해결. View 도입으로 비즈니스별 복잡한 Join 성능 향상 및 SQL 복잡도 감소
CONSTRAINT CHK_STATUS CHECK (STATUS IN ('Y', 'N', 'R'))와 같은 데이터베이스 단의 Check
제약 조건을 강제했습니다. 이후 공통 더미 데이터를 배포하여 팀 전체의 개발 환경을 동기화하고 잠재적인 데이터 무결성 훼손을
차단했습니다.
파편화된 큐브 기능(타이머·기록·알고리즘·커뮤니티)을 통합한 스피드큐빙 올인원 비동기 웹 플랫폼.
수많은 큐브 이용자에게 필요한 기능성 도구들과 실시간 통계를 집약하여 통합 관리하며 타이머의 누적 오차와 렌더링 성능 최적화에 집중한 1인 기획/개발 프로젝트입니다.
React ➡️ Spring Boot API ➡️ MySQL
setInterval 특성 상 발생하는 밀리초 단위 누적 오차를 발견했습니다.Date.now() 기반의 Delta Time(현재 시간 -
시작 시간) 방식으로 타이머 로직을 전면 수정하여 0.001초 단위의 실제 경기용 정밀 계측을 시현했습니다.