미리보기
기본 정보

대량 메시지 발송 시스템의 트랜잭션 구조를 개선하여 발송 누락률 0%를 달성한 백엔드 개발자 신지수입니다. AWS 아키텍처 개선을 통해 크롤링 처리 시간을 15분에서 1분으로 단축하며 성능 개선을 경험했습니다. 실무에서 경험한 구조적 문제를 객체지향 설계로 개선하며, 변경에 유연하고 유지보수 가능한 시스템을 지향합니다.
기술 스택
Java, Spring Boot, mybatis, JPA, JavaScript, Oracle, JUnit
프로젝트
SwimColor
개인
2025.12. ~ 진행 중
GitHub : https://github.com/Jisu-Shin/swimcolorProject
프로젝트 개요
수영복 구매 시 매칭되는 수모 색상을 직관적으로 확인하기 어려운 문제를 해결하기 위해, YOLO 세그멘테이션과 색상 분석 알고리즘을 활용한 수모 추천 서비스 개발
초기에는 Docker 기반 Spring Boot 서버와 Python AI 추론 서버를 각각 AWS App Runner에 배포하여 2주 내 MVP를 구현
이후 AI 추론 환경의 무거운 Docker 이미지와 긴 처리 시간을 개선하기 위해 크롤링·색상 추출을 Lambda로 분리하고 SQS 기반 이벤트 드리븐 비동기 구조로 재설계하여 성능을 개선
기술 스택
Spring Boot, JPA, MySQL(AWS RDS), AWS Lambda, SQS, EC2, Docker, ECR, GitHub Actions
역할
Backend API, AI 색상 분석 파이프라인, AWS 인프라 설계 및 구현 담당 (기여도 100%)
주요 성과
Lambda 기반 드리븐 이벤트 아키텍처 설계
FastAPI 기반 AI 서버의 무거운 Docker 이미지 문제를 해결하기 위해 크롤링·색상 분석 기능을 AWS Lambda로 분리
Lambda 간 직접 호출 시 동기(RequestResponse) 호출로 인한 블로킹 구조 가능성 확인
크롤링 완료 이벤트를 SQS에 적재하고 트리거로 색상 추출 Lambda가 실행되는 이벤트 드리븐 구조 설계
SQS 기반 이벤트 드리븐 비동기 처리 구조로 서비스 간 결합도 감소 및 확장성 확보
크롤링·AI 처리 성능 개선 (15분 → 1분, 약 93% 단축)
App Runner(2vCPU, 4GB) 단일 처리 구조에서 Lambda 분리 및 병렬 구조로 개선
100건 단위 SQS 배치 처리, 동시성 2 설정, DLQ(최대 수신 5회) 구성
124건 기준 처리 시간 15분 → 1분 이내 단축
Docker 이미지 최적화 및 실행 환경 분리
ML 의존성(torch 등) 포함 통합 Docker 이미지 4,864MB 확인 후 dive로 레이어 분석 수행
크롤링·색상 추출 역할 기준 이미지 분리하여 736MB / 695MB로 경량화 (약 85% 감소)
GitHub Actions CI에서 빌드 및 ECR 업로드 포함 8분 → 1분대 단축 (최대 87% 개선)
AI 기반 색상 분석 시스템 구축
YOLO Segmentation 기반 수영복·수모 객체 분리
K-means 클러스터링으로 대표 색상 3개 추출
RGB → LAB 색공간 변환 및 CIEDE2000 알고리즘 적용하여 인간 지각 기반 색상 유사도 매칭 구현
OO-SMS (Object-Oriented SMS)
개인
2024.11. ~ 2025.11.
GitHub : https://github.com/Jisu-Shin/oo-sms
프로젝트 개요
실무에서 신규 요건 추가 시 기존 클래스에 코드를 반복 수정하던 경험에서 출발, 인프런 '스프링 핵심 원리' 학습을 계기로 SRP·OCP를 제대로 적용한 구조로 실무 SMS 발송 시스템을 직접 개선해본 리팩토링 프로젝트
설계 개선 → 테스트 작성 → 커버리지 측정의 사이클을 반복하며 완성도를 높임 (Instruction 85%, Branch 86% 달성)
역할
절차지향 SMS 발송 로직을 분석하고 SOLID 원칙 기반 객체지향 구조로 리팩토링 설계 및 구현 (기여도 100%)
기술 스택
Java, Spring, Spring Data JPA, JUnit, Jacoco, Git
주요 성과
SRP 적용을 통한 책임 분리
발송 로직과 변수 바인딩 로직이 혼재된 96줄 단일 클래스를 책임별 클래스로 분리
평균 19줄 수준의 응집도 높은 클래스 구조로 재구성하여 약 80% 경량화
OCP 기반 확장 구조 설계
VariableBinder인터페이스와 추상 팩토리 패턴을 적용하여 도메인별 변수 바인딩 로직을 분리신규 도메인 추가 시 기존 코드 수정 없이 팩토리에서 구현체만 생성하도록 설계
DIP 기반 런타임 전략 선택 구조 구현
Spring Bean Map 기반 전략 패턴을 적용하여 도메인 타입에 따라
VariableBinder구현체를 런타임에 동적으로 선택발송 로직과 변수 바인딩 로직 간 결합도 제거
테스트 기반 리팩토링 안정성 확보
JUnit 테스트 작성 및 JaCoCo를 통한 테스트 커버리지 측정
Instruction 85%, Branch 86% 커버리지 달성
OK저축은행 차세대 전산시스템 프로젝트
뱅크웨어글로벌
2021.06. ~ 2023.07.
프로젝트 개요
OK저축은행의 차세대 전산시스템 구축 프로젝트에서 UMS(SMS/E-Mail/Fax) 영역 백엔드 개발 및 운영 개선 담당
대량 메시지 발송, 배치 처리, 트랜잭션 분리 등 메시징 시스템 전반의 안정성 및 성능 개선 수행
기술스택
Java, Spring, JavaScript, Mybatis, Oracle, Linux
주요 역할
UMS(SMS/E-Mail/Fax) 백엔드 개발 및 운영 개선 전담 (기여도 100%)
대량 발송, 배치 처리, 트랜잭션 분리 등 SMS 발송 시스템 구조 분석 및 개선 수행
Oracle RDBMS 기반 발송 이력 관리 및 데이터 구조 개선
주요 성과
① 대량 SMS 발송 구조 배치 전환으로 타임아웃 문제 해결
온라인 처리 방식의 SMS 발송 기능 테스트 중 대량 발송 시 타임아웃 발생하는 구조적 한계 발견
대량 발송 시나리오를 분리하여 배치 기반 비동기 처리 구조로 재설계 및 구현
엑셀 파일 기반 발송 대상 파싱, 메시지 템플릿 변수 추출 및 치환 로직 개발하여 안정적인 대량 발송 환경 구축
② 트랜잭션 분리를 통한 SMS 발송 누락률 0% 달성
SMS 발송, 이력 저장, 후속 연동이 단일 트랜잭션으로 처리되어 장애 시 전체 롤백 발생하는 구조 분석
@Transactional(REQUIRES_NEW)적용하여 핵심 발송·이력 저장 로직을 독립 트랜잭션으로 분리후속 연동 로직은 배치 기반 비동기 처리 구조로 전환
장애 발생 시 전체 롤백 문제를 제거하여 발송 누락률 0% 달성
③ SMS 발송 이력 Unique Key 중복 문제 해결
SMS 발송 API 호출 시 Unique Key 중복 예외 발생
Oracle 시퀀스 값 길이 제한 및 순환(cycle) 설정으로 인한 중복 가능성 파악
DBA와 협업하여 시퀀스 길이 및 순환 정책 개선으로 중복 예외 해결
④ SMS 발송 이력 조회 성능 개선
데이터 이행 이후 수억 건 규모 발송 이력 조회 시 간헐적 타임아웃 발생
실행 계획 분석을 통해 인덱스 정상 사용 여부 확인
애플리케이션 로그 기반 사용자 조회 패턴 분석
기본 조회 조건을 단기 기간 범위로 조정하여 조회 성능 안정화
경력
뱅크웨어글로벌주식회사
주임 | 뱅킹BU
2021.05. ~ 2023.08. (2년 4개월)
기술 스택 : Java, Spring, Oracle, Linux, Spring Batch, WebSquare, JavaScript
OK저축은행 차세대 전산시스템 구축 프로젝트 참여 (2021.06~2023.07)
UMS(SMS/Email/Fax) 영역 백엔드 개발 및 운영 개선 전담
포트폴리오
자기소개
경력 단절 기간 설명
퇴사 이후의 공백 기간은 제 개발 역량과 커리어 방향을 다시 정립하는 시간으로 활용했습니다. 금융권 차세대 프로젝트를 마무리하며 높은 책임감 속에서 업무를 수행했지만, 번아웃으로 인해 잠시 멈추고 스스로를 돌아볼 필요가 있었습니다. 2023년 8월부터 11월까지는 충분한 휴식을 통해 컨디션을 회복했고, 이후 카페 아르바이트를 병행하며 생활 리듬을 되찾는 동시에 장기적인 진로에 대해 깊이 고민했습니다.
회복 이후에는 백엔드 개발자로서의 기본기를 다시 다지는 데 집중했습니다. Java 기초(유튜브 ‘남궁성의 자바의 정석’)를 통해 언어의 동작 원리와 객체지향 개념을 재정리했고, 인프런 ‘스프링 핵심 원리’ 강의(2024.11 수료)를 통해 스프링의 핵심 개념과 설계 철학을 체계적으로 학습했습니다. 또한 2024년 9월부터는 주간 스터디에 참여해 알고리즘 문제 풀이, 스프링 핵심 코드 분석, CS 개념 정리를 병행하며 학습의 밀도를 높였습니다.
이러한 학습의 결과는 2024년 11월부터 진행한 OO-SMS 개인 프로젝트에서 명확히 드러났습니다. 단순 기능 구현에 그치지 않고, 역할과 책임을 분리한 객체지향적 구조를 설계하고 SRP·OCP를 고려한 코드 작성이 가능해졌습니다. 이전보다 설계 의도를 설명할 수 있는 코드, 테스트와 확장이 가능한 구조를 만드는 데 집중할 수 있었습니다.
또한 DASP(2024.04), SQLD(2024.06) 자격증 취득을 통해 데이터베이스 이론과 실무 관점의 이해도를 함께 높였습니다. 이 공백 기간은 단순한 휴식이 아닌, 제 개발 역량의 기초를 다시 다지고 장기적으로 성장할 수 있는 방향성을 명확히 한 준비의 시간이었습니다. 앞으로는 이 기간에 다진 기본기와 문제 해결 경험을 바탕으로, 꾸준히 성장하며 조직에 기여하는 백엔드 개발자로 역할을 수행하고자 합니다.
협업 경험
저는 협업에서 가장 중요한 가치는 체계적인 소통이라고 생각합니다. 기술적으로 문제를 해결하는 것에서 그치지 않고, 현업과 개발팀이 동일한 맥락을 공유할 때 비로소 안정적인 서비스 운영이 가능하다고 믿습니다. 이를 위해 상대의 상황을 이해하고, 실행 가능한 형태로 정보를 정리해 전달하는 태도를 지향해 왔습니다.
금융권 차세대 프로젝트에서 고객사 TFT 담당자로부터 ‘책임자 승인 알림 기능이 동작하지 않는다’는 문의를 받은 적이 있습니다. 초기에는 방화벽 설정 가이드를 전달했으나, “기존에는 되던 기능”이라는 재문의가 이어졌습니다. 단순 설명으로는 신뢰를 얻기 어렵다고 판단해 직접 담당자의 PC 환경을 함께 확인했고, 그 과정에서 포트 허용 설정의 미세한 누락을 발견해 즉시 조치했습니다. 이후 PC 교체 시 반드시 점검해야 할 항목을 정리한 가이드를 보완·공유하여, 동일 이슈의 재발을 방지할 수 있었습니다.
또한 대내 EAI 연동 과정에서는 이종 프레임워크 차이로 인해 타 팀 개발자들이 반복적으로 어려움을 겪고 있었습니다. 단순 개발 이슈가 아니라 인프라 협의가 선행되어야 한다는 점을 파악해 인프라 팀과의 협업을 주선했고, 연동에 필요한 파라미터 포맷과 필수·선택 값들을 정리한 인터페이스 가이드를 문서화해 배포했습니다. 그 결과 반복적인 질의응답이 줄어들었고, 이후 유사 연동 시에도 참고 자료로 활용될 수 있었습니다.
이러한 경험을 통해 저는 문제를 개인의 역량으로만 해결하기보다, 공유 가능한 지식과 구조로 전환하는 것이 진정한 협업이라는 것을 배웠습니다. 책임감 있게 문제를 끝까지 해결하되, 소통과 문서화를 통해 팀 전체의 효율을 높이는 개발자로 성장해 나가고자 합니다.
대외활동
SSAFY 삼성 청년 SW 아카데미 5기
삼성
2021
Java의 핵심개념과 Spring의 기초를 학습하고, 알고리즘 문제 풀이와 모의 코딩 테스트를 통해 실력을 향상했습니다.
얼굴 인식 기술을 기반으로 한 포인트 적립 웹 애플리케이션
강원대학교 컴퓨터정보통신공학과
2020
Django의 Channels 라이브러리와 Face Recognition 라이브러리를 활용하여 ‘얼굴 인식 기술을 기반으로 한 포인트 적립 웹 애플리케이션’을 개발했습니다. 이 프로젝트는 캡스톤 디자인 온라인 경진대회에서 장려상을 수상하며, 실시간 웹 소켓 통신 및 얼굴 인식 기술을 다룰 수 있는 기회였습니다. 이전의 딥러닝 챗봇 프로젝트에서 쌓은 Django 프레임워크에 대한 지식이 큰 도움이 되었습니다.
인공지능 딥러닝 기반 자연어처리 전문가과정
아시아경제 청년취업아카데미
2020
Django 프레임워크와 DNN 딥러닝 모델을 활용하여 복합쇼핑몰을 위한 정보 제공 챗봇을 개발하였습니다. MVC 패턴에 대한 학습을 통해 소프트웨어 아키텍처의 이해도가 향상되었습니다.
자격증
OPIc
IM2 | ACTFL
2025.12.
SQLD
한국데이터산업진흥원
2024.06.
DAsP
한국데이터산업진흥원
2024.04.
정보처리기사
한국산업인력공단
2019.05.
교육
강원대학교
대학교(학사) | 컴퓨터정보통신공학과
2016.03. ~ 2021.02. | 졸업