김 수용

📞 [연락처 입력]✉ [이메일 입력][거주지 입력]

금융·공공 도메인에서 8년간 API와 배치 시스템을 만들고 운영해온 Java/Spring 백엔드 개발자입니다.

도메인 모델과 아키텍처로 변경에 강한 코드를 만들고, 컨테이너와 쿠버네티스 위에서 끝까지 운영하는 것을 좋아합니다.

Education

학력사항

[학교명 입력]

[입학] – [졸업]

전자공학 전공 · 졸업

Experience

경력사항 · 총 8년 5개월

나이스평가정보 CB개발실 · 백엔드 매니저

2023.04 – 2025.04

CB 특화·배치 시스템 및 마이데이터 플랫폼

수행 업무
신용정보(CB) 플랫폼
├─ CB 특화·배치 시스템 개발 및 운영 리드
├─ 마이데이터 API
│   ├─ AML
│   ├─ 부동산 · 대부업
│   └─ 공공 마이데이터
├─ 보이스피싱 방지 서비스
└─ KISA 전자유통허브 연계 API
주요 성과
  • 부동산·대부업·공공 등 신규 업권 마이데이터 API 구축 및 운영
  • CB 배치 시스템 운영 리드로 대량 신용정보 처리의 안정성 확보
  • KISA 전자유통허브 연계 API 개발로 공공 전자문서 유통 채널 확보
Skills

Java / Spring Boot / REST API / Batch / OAuth 2.0 (마이데이터)

인비즈넷 나이스평가정보 파견 · 백엔드 매니저

2021.05 – 2023.04

보이스피싱 방지 · 마이데이터 · 전자유통허브

수행 업무
  • 보이스피싱 방지 서비스 개발 및 운영
  • 공공·대부업 마이데이터 개발 및 운영
  • KISA 전자유통허브, Qplus 개발 및 운영
Skills

Java / Spring / REST API

아비도스 시스템사업부 · 풀스택 대리

2020.05 – 2021.04

공공기관 시스템 유지보수 및 개발

수행 업무
공공 · 기업 시스템
├─ KISA smartG2B · 보호나라 · ePrivacy
├─ KAIT 전자계약
├─ 타타대우 TOSS
└─ 멀티캠퍼스
Skills

Java / Spring Framework / Frontend

이젠솔루션 SI사업부 · 백엔드 주임

2018.01 – 2020.01

인증 · 모바일 상품권 서비스

수행 업무
  • PASS 인증서, 본인확인 서비스 백엔드 개발
  • FIDO SDK 연동 개발
  • LG U+ 모바일 상품권 시스템 개발
Skills

Java / Spring / FIDO

코리아인 웹 개발 사원

2016.08 – 2017.10
수행 업무
  • 닐슨코리아 파견, 설문조사 시스템 개발

Certificate

기술 자격증

[자격증명 입력]

[취득일]

[발급기관]

Curriculum

교육이수 · Inflearn

토비의 클린 스프링 — 도메인 모델 패턴과 헥사고날 아키텍처 Part 1 · 2

수료

DDD 애그리거트, 포트와 어댑터, 애플리케이션 컴포넌트, ArchUnit 아키텍처 검증, Instancio 테스트 픽스처

Spring Cloud로 개발하는 마이크로서비스 애플리케이션 (MSA)

수료

Eureka, Spring Cloud Gateway, Config·Bus, FeignClient, Kafka Connect, Resilience4J, Zipkin, Micrometer

EKS를 활용한 Spring 운영서버 배포 (feat. DevOps의 모든 것)

수료

Docker, EKS, Ingress, Route53·HTTPS, GitHub Actions CI/CD, HPA·Cluster Autoscaler, ArgoCD, Prometheus·Grafana

Spring 개발자를 위한 실전 LLM 서비스 개발

수료

Spring AI ChatClient, RAG·pgvector, RAG 평가, Tool Calling·MCP, Dify 연동, 가드레일, 멀티모달

Spring AI LLM 비용 모니터링 — Actuator 토큰 대시보드

수료

Observation API, Actuator 메트릭, Prometheus·Grafana 토큰 비용 대시보드

핵심만 빠르게 끝내는 실전 카프카

수료

클러스터 구조, 컨슈머 그룹, key 기반 순서 보장, offset 수동 커밋

실전! 스프링 데이터 JPA

수료

공통 인터페이스, 쿼리 메서드, 페이징, 확장 기능

개발자라면 알아야 할 Redis 기본

수료

자료구조별 활용, 동시성 이슈와 캐싱 처리

김영한의 실전 자바 고급 1편 — 멀티스레드와 동시성

수료

스레드 생명주기, 메모리 가시성, 동기화, 락, 스레드 풀과 Executor

외워서 끝내는 SSL과 최소한의 암호기술

수료

대칭·비대칭 암호, 해시, 전자서명, 인증서와 TLS 핸드셰이크

스프링 MVC 2편 · 토비의 스프링 부트 — 이해와 원리

수료

검증, 예외 처리, 파일 업로드, 자동 구성 원리

Skills

기술 스택

Language

  • Java멀티스레드와 동시성 제어를 이해하고 실무 코드로 작성할 수 있습니다.

Framework

  • Spring BootREST API, 배치, 예외 처리 구조를 설계하고 운영할 수 있습니다.
  • Spring Data JPA도메인 모델과 매핑 정보를 분리해 엔티티를 설계할 수 있습니다.
  • Spring CloudGateway, Eureka, Config 기반 MSA를 구성할 수 있습니다.
  • Spring AIRAG 파이프라인과 Tool Calling 기반 LLM 기능을 만들 수 있습니다.

Architecture

  • Hexagonal포트와 어댑터로 계층을 나누고 ArchUnit으로 의존 규칙을 검증합니다.
  • DDD애그리거트와 값 객체로 도메인 규칙을 엔티티 안에 담습니다.

Data

  • MySQL운영 환경 쿼리 튜닝과 데이터 관리를 할 수 있습니다.
  • Redis캐싱, 토큰 저장소, 분산 락 용도로 활용할 수 있습니다.
  • Kafka이벤트 기반 데이터 동기화와 순서 보장 설계를 할 수 있습니다.

DevOps

  • Docker멀티 스테이지 빌드와 Compose로 로컬 환경을 구성합니다.
  • KubernetesEKS에 배포하고 오토스케일과 ArgoCD로 운영합니다.
  • CI/CDGitHub Actions로 빌드부터 배포까지 자동화합니다.
  • MonitoringPrometheus·Grafana로 메트릭 대시보드를 구성합니다.

Project Ⅰ

Splearn
Clean Architecture · DDD

Splearn — 온라인 강의 플랫폼

회원, 강사, 강의, 수강, 커리큘럼 다섯 개 도메인을 가진 강의 플랫폼입니다. 도메인 모델 패턴과 헥사고날 아키텍처를 적용해, 비즈니스 규칙이 프레임워크와 인프라에 의존하지 않도록 설계했습니다.

역할개인 프로젝트 · 설계와 개발 전체
도메인회원 · 강사 · 강의 · 수강 · 커리큘럼
테스트도메인 · 서비스 · API · 아키텍처
splearn
├─ domain          애그리거트, 값 객체, 도메인 규칙
├─ application
│   ├─ provided    인바운드 포트 (MemberRegister, CourseFinder …)
│   ├─ required    아웃바운드 포트 (MemberRepository, EmailSender …)
│   └─ service     애플리케이션 컴포넌트
└─ adapter
    ├─ webapi      REST API, ProblemDetail 예외 처리
    ├─ persistence JPA 매핑 (도메인과 분리)
    └─ security    회원 인증 어댑터
회원 인증 포트

비밀번호 해싱과 인증을 아웃바운드 포트로 분리해 도메인이 보안 구현을 모르게 했습니다.

ArchUnit 의존 규칙 검증

계층과 애플리케이션 컴포넌트 간 의존 방향을 테스트로 고정해 구조가 무너지지 않게 했습니다.

JPA 매핑 분리

엔티티 클래스에서 매핑 정보를 떼어내 도메인 코드를 순수하게 유지했습니다.

테스트 픽스처 개선

Instancio로 랜덤 데이터를 생성해 테스트가 특정 값에 기대지 않도록 했습니다.

TROUBLE SHOOTING

커리큘럼과 강의 컴포넌트가 서로를 참조하는 양방향 의존이 생겼습니다. 커리큘럼 쪽에 필요한 기능만 담은 포트를 정의하고 강의 컴포넌트가 이를 구현하도록 의존을 역전(DIP)해 순환을 끊었고, ArchUnit 슬라이스 테스트로 재발을 막았습니다.

JavaSpring Boot 3Spring Data JPAJUnit 5ArchUnitInstancioGradle

Project Ⅱ

E-commerce MSA
Microservices · Event Driven

E-commerce 마이크로서비스

사용자, 상품, 주문 서비스를 분리한 쇼핑몰 백엔드입니다. API Gateway에서 JWT 인증을 처리하고, 서비스 간 데이터는 Kafka로 동기화합니다.

역할개인 프로젝트 · 설계와 개발 전체
서비스User · Catalog · Order + 인프라 4종
배포Docker · Kubernetes
Client
  └─ API Gateway ── AuthorizationHeaderFilter (JWT 검증)
       ├─ User Service     Spring Security, BCrypt, JWT 발급
       ├─ Catalog Service  ◀── Kafka ── 재고 차감 이벤트
       └─ Order Service    ── Kafka Producer ──▶ Sink Connect ─▶ DB
Discovery: Eureka · Config: Spring Cloud Config + Bus(RabbitMQ)
Tracing: Zipkin · Metrics: Micrometer → Prometheus → Grafana
Gateway 인증 필터

로그인 시 JWT를 발급하고, Gateway 필터에서 토큰을 검증해 각 서비스가 인증 로직을 중복 구현하지 않게 했습니다.

설정 중앙화와 암호화

Config 서버로 설정을 모으고 비대칭키로 민감 값을 암호화했으며, Bus로 무중단 갱신했습니다.

장애 전파 차단

Resilience4J CircuitBreaker로 주문 조회 실패가 사용자 서비스 전체 장애로 번지지 않게 했습니다.

분산 추적

Zipkin으로 요청 하나가 여러 서비스를 거치는 경로와 지연 구간을 추적했습니다.

TROUBLE SHOOTING

주문 서비스를 여러 인스턴스로 늘리자 각 인스턴스의 DB에 주문이 흩어지는 동기화 문제가 생겼습니다. 주문 이벤트를 Kafka 토픽으로 발행하고 Sink Connector가 단일 DB에 적재하도록 바꿔 인스턴스 수와 무관하게 데이터 일관성을 확보했습니다.

Spring Cloud GatewayEurekaSpring Cloud ConfigOpenFeignKafka ConnectResilience4JZipkinMariaDB

Project Ⅲ

EKS Deployment
Cloud · DevOps

Spring 서비스 EKS 운영 환경 구축

Spring Boot 서비스와 MSA 모듈을 AWS EKS에 배포하고, 코드 푸시부터 배포·확장·모니터링까지 자동화한 운영 환경입니다.

역할개인 프로젝트 · 인프라 구성 전체
인프라EKS · VPC · RDS · Route53
배포 방식GitOps (ArgoCD)
git push
  └─ GitHub Actions ── Gradle build ─▶ Docker image ─▶ Container Registry
       └─ manifest 갱신 ─▶ ArgoCD sync ─▶ EKS
EKS
├─ Ingress (ALB) + Route53 + HTTPS 인증서
├─ Deployment / Service / ReplicaSet
├─ HPA (Pod 자동 확장) + Cluster Autoscaler (노드 확장)
└─ Prometheus + Grafana 대시보드
CI/CD 자동화

GitHub Actions로 빌드와 이미지 푸시를 자동화하고 ArgoCD로 선언형 배포를 구성했습니다.

두 단계 오토스케일

트래픽에 따라 HPA가 Pod를, Cluster Autoscaler가 노드를 늘리도록 IAM 권한까지 설정했습니다.

도메인과 HTTPS

Route53 도메인과 인증서를 Ingress에 연결해 외부 트래픽을 HTTPS로 받았습니다.

MSA 배포

API Gateway와 각 서비스 모듈을 EKS에 올려 서비스 간 통신을 클러스터 안에서 처리했습니다.

AWS EKSDockerKubernetesGitHub ActionsArgoCDPrometheusGrafanaRoute53

Project Ⅳ

AI Assistant
LLM · RAG

사내문서 AI Assistant

사내 문서를 벡터 DB에 적재하고, 질문에 근거 문서와 함께 답하는 RAG 기반 Q&A 서비스입니다. 응답 품질 평가와 토큰 비용 모니터링까지 운영 관점으로 구성했습니다.

역할개인 프로젝트 · 설계와 개발 전체
저장소PostgreSQL + pgvector
운영평가 · 가드레일 · 비용 대시보드
적재 흐름
  문서 ─ DocumentReader ─ Chunking ─ Embedding ─▶ pgvector
질의 흐름
  질문 ─ 가드레일(입력) ─ 하이브리드 검색 ─ QuestionAnswerAdvisor
       ─ LLM ─ 가드레일(출력) ─ 근거 포함 응답
  └─ Tool Calling: DB 조회 · MCP 서버
관측
  Spring AI Observation ─ Actuator ─ Prometheus ─ Grafana (토큰·지연·오류)
RAG 품질 개선

청킹 크기와 검색 파라미터를 튜닝하고 하이브리드 검색을 적용해 답변의 근거 정확도를 높였습니다.

평가 자동화

Spring AI Evaluator로 평가셋을 단위 테스트처럼 돌려 개선 전후를 리포트로 비교했습니다.

3중 가드레일

입력 검사, 프롬프트 제약, 출력 검사로 프롬프트 인젝션과 부적절한 응답을 막았습니다.

Dify Fallback

Spring AI와 Dify를 연동하고, 한쪽 장애 시 대화 연속성을 유지한 채 다른 쪽으로 넘기게 했습니다.

TROUBLE SHOOTING

검색 결과 수(topK)를 4에서 20으로 늘리자 컨텍스트가 커지며 요청당 토큰 비용이 급증했습니다. Actuator 메트릭으로 토큰 사용량을 Grafana에 시각화해 원인을 바로 확인했고, topK를 되돌리는 대신 검색 품질 튜닝으로 정확도를 확보하는 방향으로 조정했습니다.

Spring AIOpenAIpgvectorMCPDifyOllamaActuatorGrafana

Interests

관심사

LLM을 백엔드 서비스에 안전하게 붙이는 방법에 관심이 많습니다. 로컬 LLM(Ollama)을 Docker로 띄워 비용 없이 실험하고, 반복되는 일은 작은 도구로 자동화합니다. 최근에는 Spotify 플레이리스트 갱신 결과를 Slack으로 알려주는 개인 도구를 만들었습니다.

Spring AILocal LLM자동화 도구Kubernetes 보안

Contact

연락처
Email[이메일 입력]
GitHub[GitHub 주소 입력]
Blog[블로그 주소 입력]