BACKEND ENGINEER · JAVA/SPRING

안녕하세요,
백엔드 개발자 지근영입니다.

보험 · 금융 도메인에서 PG · 은행 연동과 대용량 계약 조회를 맡았던 Java · Spring 백엔드 개발자입니다. 결제 승인 재조회부터 환불 · 정산까지, 실패 흐름을 테스트로 먼저 확인합니다.

요즘은 AI와 RAG에 관심이 많아, 답이 매번 달라지는 기능도 테스트로 믿을 수 있게 만드는 방법을 찾고 있습니다.

01

프로젝트

7개
  • Kidly 키 비주얼 — 로고와 홈 화면(이번 시즌 사이즈 120 추천), 주문 상세 화면(예치금 25,000원 결제 완료)

    팀 프로젝트2026.09 — 2026.10프로그래머스

    Kidly

    키즈 패션 이커머스 예치금 결제

    내 역할결제 도메인 전담 · CI 개선

    문제
    모든 검사가 한 job에서 차례로 돌아, 서로 상관없는 통합 · 기능 테스트도 앞 단계가 끝나길 기다려야 했다
    해결
    정적 검사 · 단위, 통합, 기능 테스트를 job 3개로 나눠 동시에 돌리고, Gradle 빌드 캐시를 켰다
    결과
    CI 시간을 약 28% 줄여, 팀원 모두가 PR마다 기다리는 시간이 줄었다

    자세히 보기 →GitHub ↗서비스 보기 ↗

  • 지금이니?! 서비스 키 비주얼 — 판매 상품 관리 화면과 AI 시세 분석 화면

    팀 프로젝트2026.09 — 2026.10스위프 웹 15기

    지금이니?!

    중고 상품 판매 타이밍 추천

    내 역할백엔드 — 시세 분석 · AI 연동 · 상품 등록 · 알림

    문제
    중고 매물은 제목 · 상태 · 가격이 제각각이라, 다른 물건이나 극단적인 가격이 섞이면 시세와 추천을 믿을 수 없었다
    해결
    최근 1주일 매물에서 중복 · 구매 글 · 이상값을 거르고 AI로 같은 물건만 고른 뒤, 매물 수와 가격 변동으로 신뢰도를 매겨 규칙으로 판매 · 구매 시점을 추천했다
    결과
    AI가 다르게 답해도 같은 데이터면 같은 추천이 나오고, 6시간마다 배치로 다시 분석한다

    자세히 보기 →GitHub ↗서비스 보기 ↗

  • 문단속 키 비주얼 — 점검 리포트(점수 50/100): 점검 5종 탭과 보안 헤더 상세(HSTS · nosniff · Referrer-Policy 통과, CSP · X-Frame-Options 없음과 설정 예시)

    개인 프로젝트2026.10 — 진행 중

    문단속

    기업 외부 노출 점검 서비스

    문제
    AI로 공격 정찰이 자동화되면서, 노출된 설정 파일과 만료된 인증서 같은 빈틈이 공격자에게 먼저 발견된다
    해결
    공격자와 같은 시선으로 회사 도메인을 먼저 점검해, 열려 있는 곳과 고치는 방법을 위험도순으로 알려 준다
    결과
    위험도별 피드백으로, 어떤 문제를 먼저 고쳐야 하는지 알 수 있었다

    자세히 보기 →GitHub ↗서비스 보기 ↗

  • LineUp 키 비주얼 — 대기 화면(예상 입장까지 12:27, 내 앞에 1,240명) · 입장 완료 화면과 k6 부하 테스트 결과(p95 3.25ms, 실패율 0.00%, 가상 사용자 5,000명)

    개인 프로젝트2026.07

    LineUp

    WebFlux · Redis 기반 고성능 대기열 서버

    문제
    기다리는 사람은 자기 차례를 몰라 새로고침을 반복하고, 그 요청이 서버 부담을 더 키운다
    해결
    1초마다 내 순번을 보여 주고, 대기를 취소하면 줄에서 바로 빼 뒤 사람들의 순번을 당겼다
    결과
    순번을 보며 기다리고, 입장은 도착 순서대로 분당 약 100명씩 이뤄진다

    자세히 보기 →GitHub ↗

  • Smart Order 키 비주얼 — 매장 찾기 화면(매장별 대기 건수 · 예상 시간)과 매장 메뉴 화면

    개인 프로젝트2026.08 — 2026.09

    Smart Order

    카페 실시간 선주문 & 픽업 플랫폼

    문제
    결제 버튼을 두 번 누르거나 응답이 늦어 다시 보내면, 같은 주문이 두 번 생길 수 있었다
    해결
    요청마다 멱등 키를 받아 같은 키면 이미 만든 주문을 돌려주고, 동시에 들어와도 DB 유니크 제약으로 하나만 남겼다
    결과
    같은 요청을 몇 번 보내도 주문은 하나만 생긴다

    자세히 보기 →GitHub ↗서비스 보기 ↗

  • QuantPilot 키 비주얼 — 이동평균 교차 매수 · 목표가 매도 신호가 표시된 전략 상세 화면과 대시보드 · 주문 내역 화면

    개인 프로젝트2026.09

    QuantPilot

    전략 기반 주식 자동매매

    문제
    정한 매매 규칙을 지키려면 장중 내내 시세를 지켜봐야 하고, 사람이 직접 하면 사고팔 시점을 놓친다
    해결
    실시간 시세가 들어올 때마다 그 종목을 지켜보는 전략만 골라 이동평균 교차 · 가격 기준으로 매수 · 매도를 판단하고, 주문 · 체결 확인 · 손익 반영까지 자동으로 이어지게 했다
    결과
    전략 판단부터 주문 · 부분 체결 · 평균 단가 · 실현 손익 반영까지 백엔드 테스트 34개로 검증했다

    자세히 보기 →GitHub ↗

02

경력

삼동흥산(주)

Backend Developer · 프리랜서2024.07 — 2025.06

보험 판매 플랫폼 — 보험료 수납 · 계약 관리 · 사고접수 시스템 개발과 운영

보험료 가상계좌 입금 매칭

월평균 가상계좌 입금 자동 매칭

1만 건 이상

2025년 상반기 월 수납 집계 기준 · 수작업은 미매칭 건(전체의 약 2%)만

  1. 문제

    고객이 금액을 틀리게 넣거나 여러 번 나눠 넣으면 수납 매칭이 어긋나, 운영자가 장부를 수작업으로 맞춰야 했다

  2. 해결 — 무엇을 바꿨나

    계약별 가상계좌를 실시간 채번해 입금자를 계좌로 식별하고, 은행 전문의 거래 번호로 중복 수신을 걸렀다. 금액이 맞지 않는 건은 자동 확정하지 않고 미매칭으로 분류했다

  3. 결과

    월평균 10,000건 이상을 자동 매칭하고, 수작업 대상을 미매칭 건(전체의 약 2%)으로 줄였다

대용량 계약 조회 Full Table Scan 제거

계약 목록 조회 평균 응답

86% 단축

전4.2초
후0.6초

운영 DB에서 변경 전후 평균 응답 비교

  1. 문제

    계약 목록 조회가 평균 4.2초 걸려, 상담 중 고객 계약을 띄울 때마다 대기가 생겼다

  2. 원인 — 어떻게 찾았나

    실행 계획을 떠 보니 계약 테이블을 Full Table Scan하고 있었다

  3. 해결 — 무엇을 바꿨나

    인덱스만 더하지 않고 자주 쓰는 조회 조건(상태 · 기간 · 담당자) 순서에 맞춰 복합 인덱스를 설계했고, 인덱스를 타지 못하던 조건절의 컬럼 가공도 걷어냈다

  4. 결과

    계약 목록 조회 평균 응답을 4.2초에서 0.6초로 줄였다

사고접수 연계

GPS 음영지역 사고 위치 오차

200m 이내

음영지역 테스트 접수 50건을 실제 사고 위치와 비교

  1. 문제

    GPS 음영지역에서 접수된 사고는 위치가 정확히 잡히지 않아, 담당자가 고객에게 사고 장소를 다시 확인해야 했다

  2. 원인 — 어떻게 찾았나

    사고 위치를 GPS 신호 하나로만 판단하고 있었다

  3. 해결 — 무엇을 바꿨나

    GPS 신호가 약하면 기지국 · Wi-Fi 정보로 위치를 보정했다. 사고 사진 등 첨부 파일은 확장자 대신 파일 헤더로 형식을 검사해 확장자를 바꾼 위변조 파일 업로드를 막았다

  4. 결과

    음영지역 테스트 접수 50건에서 실제 사고 위치와의 오차를 200m 이내로 맞췄다

디비에프아이에스

Backend Developer · 프리랜서2021.11 — 2024.06

보험 판매 플랫폼 — 상품 가입 · 보장분석 · 상담 운영 시스템 개발과 운영

보험 상품 가격 계산 전략 패턴 재설계

신규 보험 상품 추가 공수

60% 절감

전5일
후2일

신규 상품 1건 개발 · 회귀 테스트 평균

  1. 문제

    상품마다 가격 계산이 if-else로 따로 구현돼, 상품 하나를 추가할 때마다 기존 계산까지 다시 검증해야 했다

  2. 해결 — 무엇을 바꿨나

    계산 규칙을 Java Interface 기반 전략으로 분리하고, 상품 코드로 전략을 고르게 했다

  3. 결과

    신규 상품은 전략 클래스 하나만 추가하면 되어 추가 공수가 60% 줄었고, 기존 상품 계산은 건드리지 않게 됐다

적합성 자가진단 · 불완전판매 검증

불완전판매 진단 누락

0건

도입 후 1년간 가입 약 3만 건 전수 대조

  1. 문제

    적합성 진단을 건너뛰고 가입이 저장되는 경로가 있어, 불완전판매 감사에서 지적될 위험이 있었다

  2. 해결 — 무엇을 바꿨나

    진단 결과 저장과 가입 저장을 같은 트랜잭션으로 묶어 진단이 없거나 부적합이면 가입 전체를 롤백했다. 설문 가산점은 화면이 아닌 서버에서 계산해 조작된 점수를 막았다

  3. 결과

    도입 후 1년간 가입 약 3만 건을 전수 대조한 결과 진단 누락 0건이었다

보장분석 리포트 최적화

보장분석 리포트 평균 응답

83% 단축

전3초
후0.5초

APM 평균 응답 기준 변경 전후 비교

  1. 문제

    고객이 가입한 기존 보험을 모아 보여 주는 보장분석 리포트가 평균 3초 걸렸다

  2. 원인 — 어떻게 찾았나

    여러 보험사의 기존 보험을 한 번에 합산하는 복합 JOIN 쿼리가 무거웠다

  3. 해결 — 무엇을 바꿨나

    보험사별로 먼저 집계한 뒤 그 결과를 결합하도록 쿼리를 재구성했다

  4. 결과

    APM 평균 응답 기준 리포트 응답을 3초에서 0.5초로 줄였다

03

기술 스택

Backend10개

  • Java (주력)
  • Spring Boot (주력)
  • JPA (주력)
  • MyBatis (주력)
  • Node.js (주력)
  • TypeScript (주력)
  • QueryDSL
  • Kotlin
  • WebFlux
  • Spring AI

Data5개

  • PostgreSQL (주력)
  • Redis
  • Elasticsearch
  • Flyway
  • Oracle

Infra7개

  • Docker (주력)
  • GitHub Actions (주력)
  • Kubernetes
  • AWS(EC2·S3)
  • Nginx
  • Vercel
  • Heroku

Test5개

  • JUnit (주력)
  • Testcontainers
  • ArchUnit
  • k6
  • Playwright

Frontend4개

Web

  • React
  • Next.js

Mobile

  • React Native
  • Flutter

Tools3개

  • Git (주력)
  • Swagger (주력)
  • Claude Code

주력 기술

04

학력

고려사이버대학교 엠블럼

고려사이버대학교컴퓨터공학과

재직하면서 병행 · 자료구조, 알고리즘, 운영체제, 컴퓨터 네트워크 등 전공 핵심 과목 이수

졸업 예정2023.03 — 2027.02학점 3.8 / 4.5
05

활동

  1. 해커톤참가 예정

    젝커톤 2026 — 젝트 X 스위프 AI 해커톤

    AI 에이전트로 4시간 동안 MVP를 만드는 바이브톤(주제: 스포츠, 4인 팀)

  2. 2026.09 — 현재

    교육 과정진행 중

    프로그래머스 데브코스 백엔드 단기심화 8기

    팀 프로젝트 ‘Kidly’(5인)에서 결제 도메인 전담

    협업 · 기여

    코드 리뷰
    팀 PR 263건 중 66건 작성 — 이슈 · 변경 사항 · 참고 사항 PR 템플릿으로 리뷰
    CI
    CI · Claude 코드 리뷰 워크플로 구성 — PR마다 자동으로 실행
    자동화
    배포 결과 슬랙 알림 · 하루 작업 요약 자동화
    팀 규칙
    팀 공통 계층 규칙 9개를 ArchUnit 테스트로 고정

    회고

    토스 승인 결과를 모르는 순간을 실패와 따로 다루며, 성공 경로보다 ‘결과 불명’ 경로를 먼저 설계하게 됐다. 팀 규칙도 문서보다 DB 제약 · ArchUnit 테스트로 강제해야 다섯 명이 같은 기준으로 움직인다는 걸 배웠다.

    프로젝트 자료

    아키텍처 · 4장

    아키텍처1 / 4

    Kidly 아키텍처 다이어그램 — 클라이언트, Spring Boot 웹 서버의 도메인 모듈, PostgreSQL, 토스페이먼츠 · 카카오 로그인, GitHub Actions · Docker, AWS S3 · EC2

    팀 기획서 · 모듈러 모놀리스(Spring Boot) · PostgreSQL · AWS · CI/CD 구성

  3. 2026.09 — 2026.10

    IT 커뮤니티완료

    스위프(SWYP) 웹 15기

    5인 다직군 팀 프로젝트 ‘지금이니?!’에서 백엔드 담당 · 배포 서비스 운영

    협업 · 기여

    기여
    팀 저장소 커밋 387건 중 285건 작성
    코드 리뷰
    MR 승인 2명 이상 — 직접 push 금지 · 기능 브랜치 rebase 규칙으로 협업
    CI
    MR마다 도는 GitLab CI — 백엔드 테스트 · 프론트 검사 · Playwright e2e

    회고

    기획 · 디자인 직군과 한 서비스를 배포해 운영까지 해 보며, API는 화면에서 쓰이는 순서와 사용자가 기다리는 시간까지 생각해 설계해야 한다는 걸 배웠다. MR 승인 규칙과 CI가 있으니 리뷰가 사람의 기억이 아니라 정해진 절차로 돌아갔다.

    활동 사진 · 자료

    데모데이 단체 사진 · 5장

    데모데이 단체 사진1 / 5

    스위프 웹 15기 데모데이 참가자들이 현수막을 들고 찍은 단체 사진

    2026.10.17 · 스위프 웹 15기 Demoday & Networking

  4. 2025.10 — 2026.05

    교육 과정수료

    코드잇 클라우드 기반 Node.js 백엔드 엔지니어 부트캠프

    K-Digital Training · 팀 프로젝트 ‘위리브’에서 백엔드 담당

    협업 · 기여

    코드 리뷰
    위리브 PR 27건 작성 — 작업 유형 · 고민한 내용 · 체크리스트 · 테스트 결과를 적는 PR 템플릿으로 리뷰
    CI/CD
    CI 초기 설정 · main 머지 시 배포 자동화 담당

    회고

    Java · Spring으로 풀던 백엔드 문제를 Node.js로 다시 풀어 보며, 프레임워크가 바뀌어도 인가 · 트랜잭션 설계 원칙은 그대로라는 걸 확인했다. 팀 CI와 main 머지 배포를 맡아 머지가 곧 배포가 되는 흐름의 편리함과 책임을 함께 배웠다.

    수료증 · 활동 사진

    부트캠프 수료 · 15장

    부트캠프 수료1 / 15

    코드잇 클라우드 기반 Node.js 백엔드 엔지니어 부트캠프 수료 요약 — 2026년 5월 27일 수료, 수행 프로젝트 위리브

    2026.05.27 수료 · K-Digital Training

06

자격

  1. 2024.092개 취득

    • 정보처리기사

      한국산업인력공단 · 국가기술자격

      자격번호24202010882Q

    • SQLDSQL 개발자

      한국데이터산업진흥원 · 국가공인 민간자격

      자격번호SQLD-054002669

07 — 연락

함께 만들 서비스가 있다면
메일로 알려주세요.

방명록