백엔드 개발자 · 입사 가능 Backend developer · open to work

돌아가게 만드는 것과,
계속 돌아가게 만드는 것.

Making it work,
and keeping it working.

시스템이 느려지는 지점을 수치로 추적해 병목을 하나씩 풀어내는 과정을 좋아합니다.

I like tracing where a system slows down and taking the bottlenecks apart one at a time.

service hyungjoo-yoon  ·  role backend  ·  focus keeping-it-running  ·  status ● operational

github.com/yhj0904 blog linkedin ujk6073@gmail.com

소개about

돌아가게 만드는 일과, 계속 돌아가게 만드는 일은 다른 문제였습니다.

Getting it to run and keeping it running turned out to be two different problems.

‘돌아가게 만드는 것’은 공공기관 SI 현장에서 배웠습니다. 농촌진흥청 LMS 초기 로딩을 5.7초→2.4초로, 통합 알림 서버의 1,000명 발송을 30초→5초로 줄이며, 발주처·점검 기관과의 합의까지가 품질이라는 것을 익혔습니다.

‘계속 돌아가게 만드는 것’은 직접 출시한 프로덕트가 가르쳤습니다. Garabu쉐어핏을 혼자 운영하며 통계 API를 2초→50ms(40배)로 개선했고, 키 유출 사고 뒤 배포 파이프라인을 재설계해 위험을 없애고 인스턴스 다운사이즈로 운영 비용을 약 50% 줄였습니다.

지금은 이 경험을 AI 기능에 적용합니다. 폐쇄망 RAG 챗봇으로 검색 정확도를 약 40% 높였고, 영화 117만 건 위에서 4인 팀의 PM 겸 백엔드 리드로 추천 서비스를 완성했습니다.

Making it run I learned on public-sector SI — cutting LMS initial load 5.7s→2.4s and a 1,000-recipient send 30s→5s, and learning that agreement with clients and auditors is part of quality.

Keeping it running my own products taught me. Operating Garabu and ShareFit solo, I cut the stats API from 2s to 50ms (40×); after a key-leak incident I redesigned the deploy pipeline to remove the risk, and an instance downsize cut running costs ~50%.

Now I apply both to AI features — a closed-network RAG chatbot ~40% more accurate than keyword search, and a movie recommender over 1.17M titles as PM & backend lead of a team of four.

기술skills

손에 익은 것, 파고드는 것, 함께 쓰는 것

What I rely on, dig into, and reach for

분류표보다, 지금 어디에 자신이 있고 어디를 배우는 중인지로 적었습니다.

Less a category chart, more an honest map of where I am confident and where I am still learning.

확신을 갖고confident

손에 익은 도구

In hand

설계부터 배포·운영, 장애 대응까지

Design, deploy, operate, respond

  • Java
  • Spring Boot
  • JPA · MyBatis
  • MySQL · query tuning
  • Redis
  • REST API design
  • JWT · OAuth2
  • Docker · AWS
  • vLLM on-prem serving
깊게 파는 중exploring

요즘 파고드는 것

Digging in

AI를 실서비스에 얹고, 분산 환경을 다루는 법

AI in production, distributed systems

  • LangGraph · multi-agent
  • Hybrid RAG
  • Qdrant · Elasticsearch · Neo4j
  • Spring WebFlux · Virtual Threads
  • Kubernetes · Istio
끝까지 내보내려to ship

제품을 내보내는 손

To deliver

백엔드 바깥까지 닿아야 할 때

When work reaches past the backend

  • React Native · Expo
  • React
  • FastAPI · Django
  • Prometheus · Grafana · ELK
  • GitHub Actions · Jenkins · ArgoCD

경력과 프로젝트는 모두 문제 → 해결 → 성과 3단계로 정리했습니다. 각 항목 상단의 흐름 표시는 접근 방식(가설·검증 / 협업·조율)을 나타냅니다.

Every entry below is told in three beats — problem → solve → outcome. The tag on each entry marks its approach (hypothesis-led / collaboration-led).

FLOW ① · 가설·검증형
FLOW ① · hypothesis-led

문제 정의define실행·검증build & verify성과outcome

FLOW ② · 협업·조율형
FLOW ② · collaboration-led

문제 정의define해결·협업solve & collaborate성과outcome

회사 경력experience

현장에서 부딪히며 만든 것들

Built in the field, with people

대학·공공기관 SI/SM과 사내 솔루션. 발주처·점검기관·여러 팀과 합을 맞추며 LMS, 통합 알림 서버, 온프레미스 AI 챗봇, 데이터 수집 파이프라인을 만들고 운영했습니다.

University and public-sector SI/SM, plus in-house solutions — building and operating an LMS, a unified notification server, an on-prem AI chatbot, and a data pipeline alongside clients, auditors, and other teams.

(주)나우리

2024.09 – 2025.10 · 개발3팀 · 사원

대학·공공기관 SI/SM 및 사내 솔루션 구축·유지보수. 단일 프로젝트를 넘어 개발·통합·운영을 병행했습니다.

University & public-sector SI/SM and in-house solutions — development, integration, and operations in parallel.

DELIVERED FLOW ② · 협업·조율형collaboration-led

농촌진흥청 차세대 LMS

Rural Development Administration — Next-Gen LMS

2024.11 – 2025.05
백엔드 · 기여도 51%Backend · 51%

노후화된 공공 LMS를 차세대로 전면 재구축. 보안·웹 접근성 통과가 오픈의 전제였습니다.

A full rebuild of an aging public-sector LMS, where passing security and accessibility audits was the condition to launch.

01문제 정의problem
  • 노후화로 응답이 느려진 기존 LMS
  • 공공기관 오픈의 전제 조건인 보안 취약점 통과
  • 법적 의무인 웹 접근성 기준 충족
  • A legacy LMS slowed by years of accretion
  • Security clearance required to launch
  • Mandatory web-accessibility compliance
02해결solve
  • 회원·게시판·쪽지·관리자 대시보드·수강신청 등 핵심 기능 백엔드 개발
  • 실행계획을 분석해 풀스캔을 인덱스 스캔으로 전환하고, 중첩 서브쿼리를 조인으로 평탄화
  • 발주처와 요구사항을 직접 조율하고 점검 기관의 지적사항을 기한 내 반영
  • Built the backend for core user and admin features
  • Read execution plans to turn full scans into index scans; flattened nested subqueries into joins
  • Negotiated requirements with the client and closed auditors' findings within deadline
03성과outcome
  • 초기 로딩 속도 5.7초 → 2.4초로 58% 단축
  • 웹 취약점 점검(SQL Injection·XSS 등) 통과
  • 한국형 웹 콘텐츠 접근성 지침(KWCAG) 기반 웹 접근성 점검 통과 — 공공 오픈 품질 확보
  • Cut initial load 5.7s → 2.4s (−58%)
  • Passed the web vulnerability inspection (SQL injection, XSS, and more)
  • Passed the KWCAG-based web accessibility inspection, securing launch quality
5.7s2.4s
초기 로딩initial load · −58%
51%
핵심 기능 기여도of core features
PASS
보안·웹 접근성 점검security & a11y audits
Java 8Spring MVCeGovFrame 4.3TiberoJenkins

공개 화면public site

농촌진흥청 농촌인적자원개발센터 LMS 공개 포털 화면
hrd.rda.go.kr · 대표/교육 포털hrd.rda.go.kr · public portal
DELIVERED FLOW ② · 협업·조율형collaboration-led

사내 통합 알림 서버

In-house Unified Notification Server

2025.01 – 2025.06
백엔드Backend

서비스마다 제각각이던 Push·알림톡·SMS를, 여러 팀이 공통으로 쓰는 플러그인형 알림 서버로 통합.

Folded push, AlimTalk, and SMS — reimplemented per service — into one plug-in notification server shared across teams.

01문제 정의problem
  • 서비스마다 Push·알림톡·SMS를 따로 구현해 생긴 코드 중복
  • 서비스별로 제각각이던 발송 품질
  • 여러 팀이 공통으로 가져다 쓸 알림 서버의 부재
  • Push/AlimTalk/SMS reimplemented per service — duplicated code
  • Delivery quality that varied service to service
  • No shared notification server for teams to reuse
02해결solve
  • 세 채널을 공통 발송 모델로 추상화한 플러그인형 알림 서버 설계 — 새 채널은 어댑터로 확장
  • 비동기 처리와 배치 FCM 호출로 발송 성능 개선, 요청·성공·실패 이력화로 추적·재처리 지원
  • 연동 가이드를 문서화하고 여러 서비스 팀의 도입을 직접 지원
  • Designed a plug-in server unifying all three channels — new channels plug in as adapters
  • Improved throughput with async processing and batched FCM; logged every send for tracing and reprocessing
  • Documented an integration guide and supported adoption across teams
03성과outcome
  • 비동기·배치 처리로 1,000명 발송 30초 → 5초
  • 복합 인덱스로 발송 이력 검색 3초 → 0.5초
  • Push·알림톡·SMS 3개 채널 통합과 Stateless 인증 체계 완성
  • 1,000-recipient send 30s → 5s via async batching
  • History search 3s → 0.5s with composite indexes
  • Three channels unified under one stateless-auth platform
30s5s
1,000명 발송1,000-recipient send
3s0.5s
발송 이력 검색history search
3
채널 통합 (Push·알림톡·SMS)channels unified
stateless
JWT 인증 체계JWT auth scheme
Spring Boot 3.4.5Java 21FCMMyBatisJWTSpring Security
DELIVERED FLOW ① · 가설·검증형hypothesis-led

사내 AI 챗봇 온프레미스 RAG

In-house AI Chatbot on-prem RAG

2025.03 – 2025.06
AI · 백엔드AI · Backend

폐쇄망이라 외부 LLM을 못 쓰는 환경에서, 방대한 사내 매뉴얼·규정을 답해 주는 온프레미스 RAG 시스템.

An on-prem RAG system answering across vast internal manuals, in a closed network where no external LLM was allowed.

01문제 정의problem
  • 방대한 사내 매뉴얼·규정에서 답을 빠르게 찾기 어려운 환경
  • 폐쇄망이라 외부 LLM API를 쓸 수 없는 제약
  • 키워드 검색만으로는 한계가 분명한 정확도
  • Answers buried in vast internal manuals and regulations
  • A closed network that ruled out external LLM APIs
  • Accuracy that keyword search alone could not reach
02실행·검증build & verify
  • PDF·HWPX·Excel·PPT 임베딩 파이프라인을 Qdrant HNSW에 적재
  • LangGraph로 Rewrite·Retrieve·Grade·Regenerate 그래프 구성, LLM-as-Judge로 관련성 자동 평가
  • 현업 부서의 매뉴얼·QA 셋으로 정확도 검증
  • Loaded a PDF/HWPX/Excel/PPT embedding pipeline into Qdrant HNSW
  • Built a Rewrite-Retrieve-Grade-Regenerate graph in LangGraph with LLM-as-Judge relevance scoring
  • Validated accuracy against the field team's QA set
03성과outcome
  • 키워드 검색 대비 정확도 약 40% 개선
  • 폐쇄망 vLLM 서빙으로 외부 API 의존도 0
  • 외부 API 없이 평균 응답 2~3초 달성
  • ~40% higher accuracy than keyword search
  • Zero external-API dependence via on-prem vLLM
  • 2–3s average response with no external API
+40%
정확도 (키워드 검색 대비)accuracy vs keyword
2–3s
평균 응답 (온프레미스)avg response, on-prem
4
문서 포맷 (PDF·HWPX·Excel·PPT)doc formats ingested
0
외부 API 의존external API calls
PythonDjangoLlamaQdrantvLLMLangGraphCUDA 12.3
DELIVERED FLOW ② · 협업·조율형collaboration-led

국가정책·과제정보 수집 파이프라인

National Policy & R&D Data Pipeline

2025.08 – 2025.10
백엔드Backend

7개 정부·공공기관에 흩어진 사업·입찰·공지를, LLM이 분석할 수 있는 형태로 모으는 수집 파이프라인.

A pipeline that gathers projects, bids, and notices scattered across 7 agencies into an LLM-analyzable form.

01문제 정의problem
  • 7개 정부·공공기관에 흩어진 사업·입찰·공지를 일일이 수작업 확인
  • 모은 데이터를 분석에 바로 쓰기 어려운 형식
  • 기관마다 다른 사이트 구조와 갱신 주기
  • Projects/bids/notices scattered across 7 agencies, checked by hand
  • Gathered data that wasn't ready for analysis
  • Site structures and refresh cycles differing by agency
02해결solve
  • 동적 페이지는 Playwright, 정적 페이지는 BeautifulSoup — 기관별 전용 크롤러·수집 Agent 구성
  • 사이트별 어댑터로 수집 로직을 추상화해 사이트 변경에 대응
  • LLM이 분석할 수 있는 형태로 정제·가공해 구조화 적재
  • Playwright for dynamic pages, BeautifulSoup for static — per-agency crawlers and collection agents
  • Abstracted collection logic behind per-site adapters to absorb site changes
  • Refined the data into an LLM-analyzable, structured form
03성과outcome
  • 7개 기관(NIA·NIPA·IITP·KIRIA·KIAT·KOSME·TIPA) 수집 자동화
  • 매일 사람이 확인하던 일을 파이프라인이 대체
  • 정책·과제 2,000여 건을 구조화해 적재
  • Automated collection across 7 agencies
  • Replaced a daily manual check with the pipeline
  • Structured and stored 2,000+ policy/R&D items
7
기관 수집 자동화agencies automated
per-site
전용 크롤러·수집 Agentcrawlers & agents
LLM-ready
정제·구조화 적재structured for analysis
Spring Boot 3.4.5PlaywrightSeleniumBeautifulSoup4MySQLQdrant

공개 화면public site

전북디지털융합센터 국가정책·과제정보 수집 결과 목록 (2,105건)
jdcc.or.kr · 수집 정책·과제 2,105건jdcc.or.kr · 2,105 collected
OPERATIONS FLOW ② · 협업·조율형collaboration-led

유지보수 · 품질 · 인프라 다수 시스템 병행

Maintenance · Quality · Infra parallel systems

2025.05 – 2025.09
운영 · 서버관리Ops · Server admin

군산대·국민연금공단·군장대·호원대 등 여러 대학·공공기관 시스템을 동시에 맡아 장애 대응·성능 개선·인증 취득·서버 셋업을 병행한 운영 업무.

Owning several university and public-sector systems at once — Kunsan Univ., the National Pension Service, Gunjang, Howon — with incident response, tuning, certification, and server setup in parallel.

01문제 정의problem
  • 군산대·국민연금·군장대·호원대 등 여러 시스템을 동시 운영
  • 장애 대응·성능 개선·보안·인증을 한꺼번에 진행
  • 시스템마다 다른 스택과 운영 요구
  • Running Kunsan, NPS, Gunjang, and Howon systems at once
  • Incidents, tuning, security, and certification in parallel
  • Different stacks and operational demands per system
02해결solve
  • 군산대 학사·교원 시스템 MyBatis 매퍼·인덱스 튜닝, 군장대 장학금 시스템 Oracle 테이블 설계
  • 국민연금공단 4대사회보험정보연계센터 SSL/TLS·브라우저 호환성·방화벽·패킷 점검
  • GS 인증 기준 트랜잭션 경계 재설계, Jira·Confluence 이슈·산출물 관리와 고객 교육·보고
  • Tuned Kunsan's academic/faculty systems with MyBatis and indexes; built Gunjang's scholarship system from the Oracle schema up
  • Ran SSL/TLS, browser-compatibility, firewall, and packet checks for the NPS social-insurance data-linkage center
  • Redrew transaction boundaries to GS criteria; managed issues in Jira/Confluence with client training and reports
03성과outcome
  • 사내 CMS/LMS의 GS 인증 Level 1 취득
  • 서버 10대의 운영 환경 문서화
  • 신규 서버 3대의 OS·보안·네트워크 초기 셋업
  • Earned GS Certification Level 1 for the in-house CMS/LMS
  • Documented the operating environment of 10 servers
  • Set up OS, security, and networking for 3 new servers
Lv.1
GS 인증 취득 (CMS/LMS)GS Certification earned
28%
군산대 시스템 고도화 담당of Kunsan system
10
서버 운영 환경 문서화servers documented
3
신규 서버 초기 셋업new servers set up
SpringOracleNexacroeGovFrame 4.3Jira · Confluence

공개 화면public site

호원대학교 공개 웹사이트 메인 화면
howon.ac.kr · 운영 시스템howon.ac.kr · operated site

개인 프로젝트personal projects

직접 설계하고, 직접 운영하는 것들

Designed by me, operated by me

세 개의 프로덕트. 설계부터 배포·운영까지 혼자 책임지며, 만든 다음에도 멈추지 않게 지킵니다.

Three products I own end to end — design, deploy, operate — and keep from stopping after launch.

DEPLOYED FLOW ① · 가설·검증형hypothesis-led

MonglePick 몽글픽

2026.01 – 2026.05
PM 겸 백엔드 리드 · 4인PM & Backend Lead · 4

자연어 대화로 취향을 읽어, 117만 건의 영화에서 개인화된 추천을 건네는 AI 챗봇.

An AI chatbot that reads taste through conversation and draws personalized picks from 1.17M movies.

01문제 정의problem
  • 평점 높은 순 나열은 "왜 좋아하는지"의 맥락을 담지 못함
  • 기록 없는 신규 사용자의 Cold Start 문제
  • 한 가지 검색 방식에만 기대는 추천 편향
  • Ranking by score never carries the why behind a pick
  • Cold start for users with no history
  • Bias from leaning on a single retrieval method
02실행·검증build & verify
  • LangGraph 5개 그래프·52개 노드로 멀티 에이전트 라우팅 구성
  • 벡터·BM25·그래프 검색을 병렬 수행해 RRF로 융합
  • 비관적 락·AOP로 55종 리워드 동시성, 멱등성 키로 중복 결제 차단
  • Multi-agent routing over 5 graphs / 52 nodes in LangGraph
  • Parallel vector/BM25/graph search fused with RRF
  • Pessimistic locks/AOP for 55-reward concurrency; idempotency keys block duplicate payments
03성과outcome
  • 영화 117만 건·58GB를 스트리밍·체크포인트 재개로 처리해 OOM 해결
  • 카카오 클라우드 4-VM에 GitHub Actions CI/CD·Prometheus·Grafana·Loki로 운영
  • 308개 테스트·골든 60건으로 품질 검증, 4인 팀 PM 겸 백엔드 리드
  • Streamed 1.17M movies / 58GB with checkpoint resume, resolving OOM
  • Operated on a 4-VM Kakao Cloud setup with CI/CD and Prometheus/Grafana/Loki
  • Verified by 308 tests + 60 golden cases; PM & backend lead of four
1.17M
영화 데이터 (58GB)movies (58GB)
79
관리자 에이전트 도구 (read-only)admin agent tools (read-only)
3-way
벡터·BM25·그래프 RRF 융합retrieval fused by RRF
308+60
테스트 · 골든셋tests · golden suite
FastAPILangGraphSpring BootQdrantElasticsearchNeo4jKakao CloudKubernetes

화면 · 아키텍처screens & architecture

몽글픽 대화형 영화 추천 홈 화면
대화형 추천 홈Conversational home
몽글픽 개인화 추천 결과 TOP 10 영화 카드
개인화 추천 TOP 10Personalized Top-10
몽글픽 관리자 AI 에이전트 퀴즈 생성 화면
관리자 AI 에이전트Admin AI agent
하이브리드 RAG — 벡터·BM25·그래프 RRF 융합 다이어그램
하이브리드 RAG · RRF 융합Hybrid RAG · RRF fusion
4-VM 카카오 클라우드 인프라 아키텍처 다이어그램
4-VM 카카오 클라우드4-VM Kakao Cloud
LIVE FLOW ① · 가설·검증형hypothesis-led

Garabu 가라부

2024.04 – 진행 중present
1인 · iOS · Android 운영Solo · iOS · Android

직접 출시해 매일 운영하는 멀티 플랫폼 가계부. 복식부기 엔진부터 인프라까지 혼자 책임집니다.

A multi-platform finance app I shipped and run every day — owning everything from the double-entry engine to the infrastructure.

01문제 정의problem
  • 개인용 가계부를 커플·가족·모임이 한 장부로 함께 관리하고 싶음
  • 여러 기기에서 네트워크가 끊겨도 쓸 수 있어야 함
  • 1인 개발자에게 가장 어려운 건 출시 이후에도 멈추지 않게 지키는 것
  • Wanted a couple/family/group to share one ledger
  • Had to work across devices, even offline
  • The hard part for a solo dev: keeping it running after launch
02실행·검증build & verify
  • 차변·대변 분개·계정 트리·손익계산서·재무상태표 자동 생성 복식부기 엔진 구현
  • Redis 캐싱으로 통계 API 2초→50ms(40배), Elasticsearch 한글 전문 검색·감사 추적
  • 오프라인 퍼스트 — 비로그인 전 기능 사용, 로그인 시 트랜잭션 동기화 후 로컬ID→서버ID 매핑
  • Hand-built a double-entry engine: journaling, account trees, auto-generated statements
  • Redis cache cuts the stats API from 2s to 50ms (40×); Elasticsearch Korean full-text search and audit trail
  • Offline-first — full features without login; transactional sync then local→server ID mapping
03성과outcome
  • 서버·앱·웹·인프라를 혼자 운영하며 iOS·Android·Web 실사용자에게 서비스
  • 키 유출 사고 이후 레지스트리 미경유 배포로 재설계해 위험 제거
  • 인스턴스 다운사이즈로 운영 비용 약 50% 절감
  • Operate server/app/web/infra solo for real iOS/Android/Web users
  • After a key leak, rebuilt the deploy path to skip any registry, removing the risk
  • A server downsize cut running cost ~50%

곁들여 — 복식부기를 코드로

On the side — double-entry bookkeeping in code

단순 수입·지출 기록을 넘어, 차변·대변 분개 규칙을 도메인 모델로 구현해 손익계산서·재무상태표를 자동 생성합니다. "숫자가 안 맞으면 어딘가 분개가 틀렸다"는 복식부기의 자기검증 성질을, 거래 데이터 정합성을 지키는 장치로 그대로 활용했습니다.

Beyond logging income and expenses, the double-entry rules live in the domain model — journal entries, account trees, and auto-generated income statements and balance sheets. Double-entry's self-checking nature — if the numbers don't balance, an entry is wrong somewhere — doubles as a built-in integrity guard for transaction data.

40×
통계 API (Redis 캐싱)statistics API, Redis cache
3
플랫폼 (iOS·Android·Web)platforms
~50%
운영 비용 절감running cost cut
1
설계·배포·운영 전부person: design to ops
Spring BootSpring WebFluxJava 21MySQLRedisElasticsearchReact NativeDockerAWS

화면screens

Garabu 메인 대시보드 — 수입·지출 한눈에
메인 대시보드Dashboard
Garabu 통계 — 카테고리별 차트, Redis 캐싱으로 40배
통계 · Redis 캐싱 40×Statistics · cache 40×
Garabu 복식부기 — 분개·계정·재무제표
복식부기 · 재무제표Double-entry ledger
Garabu 자산 관리 — 계좌별 잔액
자산 관리Accounts
Garabu 거래 추가 — 수입·지출·이체 입력
거래 추가Add transaction
LIVE FLOW ① · 가설·검증형hypothesis-led

ShareFit 쉐어핏

2025.12 – 진행 중present
1인 · iOS · Android 운영Solo · iOS · Android

운동 기록을 실시간으로 나누고 응원하는 소셜 피트니스 앱. 알림과 실시간 통신을 처음부터 직접 설계했습니다.

A social fitness app for sharing and cheering workouts in real time — notifications and live transport designed from scratch.

01문제 정의problem
  • 운동 기록은 혼자보다 함께 나눌 때 지속됨
  • 실시간 응원이 핵심 경험
  • 서버가 여러 대로 늘면 한 인스턴스의 SSE 연결로는 모두에게 닿지 못함
  • Workout logs stick when shared, not hoarded
  • Real-time cheering is the core experience
  • Once scaled out, one instance's SSE can't reach everyone
02실행·검증build & verify
  • 6개 도메인 130개 이상 REST API를 SpringDoc OpenAPI로 문서 자동화
  • JWT·OAuth2(Google·Apple·Kakao)·Spring Security·BCrypt·Rate Limiting으로 인증 강화
  • SSE 실시간 알림에 Redis Pub/Sub 브로드캐스트와 FCM 폴백
  • 130+ REST endpoints across 6 domains, auto-documented with SpringDoc OpenAPI
  • Hardened auth with JWT, OAuth2, Spring Security, BCrypt, and rate limiting
  • Layered Redis Pub/Sub broadcast and FCM fallback over SSE alerts
03성과outcome
  • AWS EC2·RDS·S3·SES와 Docker 멀티스테이지 빌드로 배포 파이프라인 구성
  • App Store·Google Play 정식 출시·운영
  • REST API·실시간 통신·소셜 로그인·배포까지 1인으로 완수
  • Stood up a deploy pipeline on AWS EC2/RDS/S3/SES with multi-stage Docker
  • Live on the App Store and Google Play
  • REST APIs, real-time transport, social login, and deploy — carried solo
130+
REST API · 6 도메인endpoints · 6 domains
3
소셜 로그인 (Google·Apple·Kakao)OAuth providers
2
실시간 경로 (SSE + FCM)live paths (SSE + FCM)
2
스토어 출시stores shipped
Spring BootMySQLRedisSSEFCMReact NativeExpoDockerAWS

화면screens

쉐어핏 운동 기록 — 세트·무게·휴식 타이머
운동 기록 · 타이머Workout log
쉐어핏 소셜 피드 — 좋아요·댓글·팔로우
소셜 피드Social feed
쉐어핏 운동 요약 카드 — 오운완
운동 요약 카드Summary card
쉐어핏 2인 협업 운동 카드 — 상태머신
2인 협업 · 상태머신Collab · state machine
쉐어핏 운동 통계 — 요일별 빈도·부위별 분포
운동 통계Workout stats

AI 활용working with AI

AI는 페어로, 결정은 내가

AI as a pair — the call stays mine

LangGraph 멀티 에이전트 서비스를 만드는 사람이, 같은 오케스트레이션 원리로 자기 개발 환경을 자동화합니다. 설계·결정·검증은 직접, 반복·탐색은 에이전트에. (주로 Claude Code — 스킬·서브에이전트·훅·MCP)

The person who builds LangGraph multi-agent services automates his own dev environment on the same orchestration principles. Design, decisions, and verification stay with me; repetition and exploration go to agents. (mostly Claude Code — skills, subagents, hooks, MCP)

context

컨텍스트 설계 — .md 작성 구조

Context design — the .md structure

계층형 단일 진실 원본

A layered single source of truth

  • CLAUDE.md(197줄)는 매 세션 자동 로드되는 ‘프로젝트 헌법’ — 핵심 요약만 유지
  • CLAUDE.md (197 lines) is the auto-loaded “project constitution” — summary only
  • docs/PROGRESS.md 인덱스 → docs/progress/{주제}.md 상세로 내려가는 계층 구조
  • Layered: docs/PROGRESS.md index → docs/progress/{topic}.md details
  • 같은 사실은 한 곳에만 — 운영 원칙은 상단 고정, 스킬·훅이 실제로 강제
  • One place per fact; operating principles pinned on top, enforced by skills and hooks
skills

커스텀 스킬 7종 — 슬래시 명령

7 custom skills — slash commands

반복 작업을 명령 1회로

Repeated work becomes one command

  • /commit · /create-pr · /review-code · /git-status-all · /sync-fork · /deploy-staging · /infra-status
  • /commit · /create-pr · /review-code · /git-status-all · /sync-fork · /deploy-staging · /infra-status
  • 쓰기 스킬은 FAIL-FAST 안전 가드 + 5개 레포 일괄 처리 내장
  • Write skills ship FAIL-FAST guards and 5-repo batch handling
  • 커밋 컨벤션은 하드코딩 대신 레포에서 자동 학습
  • Commit conventions learned per repo, never hardcoded
subagents

서브에이전트 7종 — 권한·모델 차등

7 subagents — tiered privilege & models

작업을 전문가에게 위임

Delegate to specialists

  • 도메인 구현 5종(R/W) + code-reviewer·test-runner(read-only)
  • Five domain implementers (R/W) + read-only reviewer and test-runner
  • 모델 차등(구현=sonnet·검증=haiku), maxTurns 상한, 컨텍스트 격리
  • Model tiering (build=sonnet · verify=haiku), maxTurns caps, context isolation
  • 레포에 커밋되어 4인 팀 누구든 같은 기준으로 작업
  • Committed to the repo — all four teammates share the standard
hooks

훅 — 손대지 않는 자동화 워크플로

Hooks — hands-off automation

커밋→PR→리뷰→배포가 끊기지 않게

Keep commit→PR→review→deploy flowing

  • PostToolUse 훅 — 변경 파일을 컨텍스트에 자동 주입해 변경 추적 유지
  • PostToolUse hook injects changed files into context
  • Stop 훅 — 5개 레포 미커밋 감지로 커밋 누락 차단
  • Stop hook catches uncommitted work across 5 repos
  • 권한 allowlist 556건 — 승인 중단 없는 흐름
  • A 556-entry permission allowlist — no approval breaks
mcp

MCP 연동 — 코드 밖까지

MCP integrations — beyond the code

관리·QA·검증을 한 대화 흐름으로

PM and QA in the same conversation

  • Google Sheets — WBS 진척 갱신
  • Google Sheets — WBS progress updates
  • Atlassian — Jira 이슈 생성·전이, Confluence 문서 작성
  • Atlassian — Jira issue create/transition, Confluence docs
  • Playwright — E2E 시나리오 구동·스크린샷 검증
  • Playwright — E2E scenario runs, screenshot verification
case

대표 사례 — 사고를 체계로

Case — incidents into systems

@Transactional 전파 회귀(500 오류)

A @Transactional propagation regression

  • 원인 문서화(docs/progress/) → /review-code 체크 반영 → reflection 테스트로 회귀 고정
  • Documented root cause → /review-code check → reflection test pins the regression
  • Codex로 교차 검증 — 만드는 도구와 검증하는 도구 분리
  • Cross-verified with Codex — builder and verifier kept separate
  • 같은 사고가 리뷰·테스트 단계에서 걸러짐
  • The same incident now gets caught in review and tests

그 외education & more

배우고, 나누고, 고쳐온 것들

Learning, sharing, and fixing

2025.11 – 2026.05

카카오클라우드 활용 AIaaS 마스터 클래스 · 우수 수료팀 · 스나이퍼팩토리 · 카카오엔터프라이즈

Kakao Cloud AIaaS Master Class · Top graduating team · SnifferFactory · Kakao Enterprise

Kakao Cloud VPC·Transit Gateway·Kubernetes/Istio Ambient·로드밸런서·오브젝트 스토리지를 설계·운영하고, GitHub Actions와 ArgoCD로 CI/CD를 구축했습니다. LoRA Fine-tuning과 RAG Agent 구성을 실습했습니다.

Designed and operated Kakao Cloud VPC, Transit Gateway, Kubernetes/Istio Ambient, load balancers, and object storage; built CI/CD with GitHub Actions and ArgoCD; practiced LoRA fine-tuning and RAG agents.

2021 – 2023

SW공학 연구실 랩장 · 튜터링 튜터 · 전주대학교 컴퓨터공학과

SE Lab Lead · Tutor · Jeonju Univ., Computer Engineering

학부생 Java 멘토링과 정기 스터디를 운영하며 후배들의 프로젝트를 1:N으로 지도했습니다. 오픈소스로는 GlueSQL에 웹 SQL 테스트 페이지를 만들고 코어 버그를 찾아 수정 PR을 올렸습니다 (gluesql/gluesql#24).

Mentored undergraduates in Java and ran study groups, guiding juniors' projects one-to-many. In open source, built a web SQL test page for GlueSQL and submitted a core bug-fix PR (gluesql/gluesql#24).

2018.03 – 2024.02

전주대학교 컴퓨터공학과 졸업 · 학점 3.0 / 4.5

B.S. Computer Engineering, Jeonju University · GPA 3.0 / 4.5

2025.12

정보처리기사 · 한국산업인력공단

Engineer Information Processing · HRD Korea

회고lookback

프로젝트가 나를 어떻게 바꿨나

What the work made of me

기능을 만드는 개발과, 계속 굴러가게 만드는 개발은 다른 일이었습니다.

Building a feature and keeping a system running turned out to be two different jobs.

여러 프로젝트를 거치며, 기능을 완성하는 일과 출시 이후에도 멈추지 않게 지키는 일은 다른 문제라는 것을 배웠습니다.

공공기관 업무 시스템에서는 정확한 요구사항 분석과 안정적인 데이터 처리, 그리고 발주처·점검 기관과의 합의가 품질을 좌우했습니다.

사내 알림 서버와 온프레미스 AI 챗봇에서는 확장 가능한 구조와 운영(이력·실패 추적·관측성)을 먼저 설계해야 장애에 강하다는 것을 익혔습니다.

직접 출시한 프로덕트에서는 배포·모니터링·사고 대응까지가 진짜 개발이었습니다. 앞으로도 문제를 구조화하고, 운영까지 책임지는 백엔드 개발자로 나아가려 합니다.

Across these projects I learned that finishing a feature and keeping it from stopping after launch are two different problems.

On public-sector systems, accurate requirements analysis, stable data handling, and agreement with the client and audit bodies decided the quality.

On the in-house notification server and on-prem AI chatbot, designing for extensibility and operability — history, failure tracing, observability — up front is what makes a system resilient.

On products I shipped myself, deployment, monitoring, and incident response are the real work. I want to keep growing as a backend developer who structures the problem and owns it through operations.

연락contact

좋은 팀에서, 계속 돌아가는 것을 함께 만들고 싶습니다. 메일 보내기 →

I would like to build things that keep running, with a good team. Say hello →