유형찬 프로필 사진

유형찬

INTRODUCE

AI/채용 평가 도메인에서 대용량 배치, 이벤트 파이프라인, LLM 런타임을 운영하며 성능 병목과 장애 복구, 데이터 일관성을 개선해온 백엔드 엔지니어입니다.

  • Java/Spring 기반 서비스 개발을 중심으로 Kafka, Redis, MariaDB/MySQL, MongoDB를 활용한 비동기 처리와 데이터 처리 구조를 설계하고 운영해왔습니다.
  • Kubernetes/EKS, ArgoCD, AWS 환경에서의 운영 경험을 바탕으로 애플리케이션 코드뿐 아니라 배포, 리소스, 장애 원인까지 함께 보는 것을 중요하게 생각합니다.
  • 운영 이슈를 재현 조건, 영향 범위, 원인 후보와 지표로 구조화하고, 병목 제거와 재발 방지까지 연결하는 방식으로 문제를 해결합니다.
  • 백엔드 전문성을 기반으로 분산 시스템, 인프라, 시스템 프로그래밍 영역까지 기술적 범위를 넓혀가고 있습니다.

SKILL

Backend

Java 21Spring BootSpring Data JPAQuerydslPython / FastAPI

Distributed & Data

KafkaRedisMariaDB/MySQLMongoDBPerformance Testing

Cloud & Ops

KubernetesEKSArgoCDAWS LambdaCloudWatch

AI Runtime

Spring AILangchain4jOpenAI GPTSTT/TTSLangfuse

Systems / Open Source

RustmacOS Mach APIMach-O

EXPERIENCE 총 3년 3개월

2025. 05 ~

재직 중1년 4개월

마이다스인

BACKEND DEVELOPER
  • AI 역량검사 센터(ACCA) 백엔드 개발 - AI 면접/평가, LLM 런타임, 대용량 배치, 스케줄러, 멀티테넌트 데이터 영역 개발 및 운영
  • 4만 명 규모 메일·SMS 파이프라인을 cursor batch와 Kafka 비동기 처리로 개선하고, ST2 41,289명 검증에서 약 14.5만 건의 상태 event backlog를 13분 34초 만에 해소
  • durable worker queue, runtime state, inbox/outbox와 재시도·복구 흐름을 설계해 장시간 LLM 평가 중단과 중복 처리 리스크를 완화
  • Querydsl 조회 최적화와 대용량 엑셀 처리 구조 개선으로 관리자 조회 쿼리를 93% 감소시키고 OOM 리스크를 완화
  • QA/배포 이슈를 재현 조건, 영향 범위, 원인 후보 단위로 정리하고 DevOps/기획/동료 개발자와 함께 운영 병목과 반복 장애를 개선
Java 21Spring Boot 3.3Spring AILangchain4jOpenAI GPT-5OpenAI STT/TTSJPA/HibernateQuerydslMariaDBMongoDBRedisKafka

2023. 04 ~ 2025. 02

1년 11개월

그릿스탠다드

BACKEND DEVELOPER
  • 물류 플랫폼/ERP 백엔드 개발 및 클라우드 운영 - API, 데이터 모델, 문서 처리, 이벤트 파이프라인과 배포 환경 개발
  • AWS Kubernetes 환경과 Docker, ArgoCD 기반 GitOps 배포 파이프라인을 도입하고 FastAPI Blocking I/O, JVM/Kubernetes 리소스 설정 등 운영 병목을 개선
  • AWS Lambda, Kafka MSK, S3, Elasticsearch 기반 이메일 처리 시스템을 개발하고 CloudWatch 로그/알람과 장애 복구 흐름을 구성
  • Java Lambda에 SnapStart를 적용해 cold start를 10초에서 1초 수준으로 단축하고, 물류 ERP 웹 전환과 자동화를 통해 운영 효율을 개선
JavaSpringJPAQuerydslPythonFastAPIKubernetesEKSArgoCDAWS LambdaKafka MSKMySQL

PROJECT

2025. 05 ~

AI 역량검사 센터 (ACCA)
마이다스인 (백엔드 개발자)
  • 기술 스택
    Java 21Spring Boot 3.3Spring AI 1.0Langchain4jOpenAI GPT-5OpenAI STT/TTSJPA/HibernateQuerydslMariaDBMongoDBRedisKafka
    • 문제와 제약
      • LLM 기반 면접/평가 기능은 응답 형식 불일치, 장시간 평가 중단, 평가 기준 누락이 곧 고객 신뢰도와 결과 데이터 신뢰성 리스크로 이어질 수 있었습니다.
      • AI 면접, 실무능력 LLM 런타임, NCS/공공 역검, 파일/엑셀 배치, 스케줄러, 멀티테넌트 DB가 12개 독립 모듈에 걸쳐 있어 장애 원인 추적과 팀 간 변경 조율이 어려운 구조였습니다.
      • 4만 명 규모 안내 발송에서 전형 전체 대상·본문 적재, 장기 tenant transaction, 순차 Kafka 발행이 메모리·DB 부하와 서버 재시작 후 중복 발송 위험으로 이어졌습니다.
    • 핵심 구현
      • LLM 런타임
        • 평가 중단 시 고객 응시 경험이 끊기지 않도록 질문 계획, 답변 추적, 꼬리질문, Phase2 생성, 결과 outbox 발행 흐름을 설계하고 durable worker queue를 도입했습니다.
        • 장시간 평가의 재현/복구 근거를 남기기 위해 MongoDB 기반 session, turn, event log, trace, transcript, runtime inbox/outbox 문서 모델로 런타임 상태를 저장했습니다.
        • 모듈 간 변경 충돌을 줄이기 위해 Kafka topic/DTO, Redis lock/progress cache, 질문 출처 enum, TTS scene 분기 기준을 공통 계약으로 이동했습니다.
      • AI 연동/관측성
        • 면접 품질이 곧 서비스 신뢰도로 이어지는 영역에서 OpenAI native SDK 기반 STT/TTS, realtime STT client secret, 파일 전사 API, TTS streaming/cache/voice option을 분리 구현했습니다.
        • LLM 장애와 비용 이슈를 감으로 추적하지 않도록 Langfuse trace, prompt link, token/rate-limit metadata logging을 보강했습니다.
      • 평가/결과표 도메인
        • 기획/운영 담당자의 질문 설계 시간을 줄이기 위해 GPT-5 기반 Spring AI ChatClient, Tool 호출, JSON Schema Structured Output으로 면접 질문 생성/평가기준 검증 흐름을 설계했습니다.
        • 전형 운영 중 설정 오류와 결과 해석 혼선을 줄이기 위해 ACC/NCS 필터, 설정 검증, 결과/코멘트/점수 변환, 평가 보조 지표 노출을 데이터 모델에 반영했습니다.
        • 결과표를 다양한 소비 경로에서 안정적으로 활용하도록 LLM-friendly 결과표 텍스트화, section separator, Apache POI 기반 엑셀 생성, 출력용 블라인드 옵션을 구현했습니다.
      • 성능/운영 안정화
        • 전형 전체 적재 구조를 200건 cursor batch와 최대 4개 묶음의 Kafka 비동기 callback으로 분리하고, 발행 결과를 조건부 bulk update로 반영했습니다.
        • 메일·SMS consumer를 4개 partition에 맞춰 병렬화하고 poll 크기를 10건으로 조정했으며, 상태 변경이 없는 이벤트는 DB 접근 전에 종료했습니다.
        • SMS fallback polling을 100건 cursor 조회와 JDBC batch update로 전환하고 외부 API 호출을 transaction 밖으로 이동해 DB 점유 범위를 축소했습니다.
        • CMS 발송 결과 조회를 애플리케이션 후처리에서 DB status/name filter와 page/count 조회로 전환해 대량 조회 비용과 상태 정합성 문제를 개선했습니다.
        • 행 잠금·처리 시도 ID로 중복 선점을 방지하고 발행 결과를 50건 또는 첫 결과 후 1초마다 반영했으며, 15분 WAITING 복구와 동일 발송 ID 재조회·graceful shutdown으로 상태별 재개 흐름을 구성했습니다.
        • 관리자 조회 지연과 반복 쿼리 비용을 줄이기 위해 Querydsl, Fetch Join, where in 일괄 조회, batch size 설정을 적용했습니다.
        • 대량 응시자 결과표 처리 중 OOM과 운영 지연을 줄이기 위해 SXSSFWorkbook, pagination, batch size, map-in 조회, SQL 기반 복사 흐름을 적용했습니다.
        • DevOps 팀의 DB 운영 부담을 줄이기 위해 성능 개선 전후 비교 근거를 남기고, S3/temp cleanup, 전형 삭제 FK 정리로 배치 안정성을 개선했습니다.
    • 결과
      • ST2 41,289명 부하 검증에서 약 14.5만 건의 Kafka 상태 event backlog를 13분 34초 만에 해소했고, 관련 자동화 테스트 147건을 통과했습니다.
      • 12개 독립 모듈에 걸친 채용 평가 플랫폼에서 장애 원인 추적, 재시도/복구, 결과 데이터 일관성을 확보하는 백엔드 기반을 마련했습니다.
      • 운영자 질문 설계 플로우 기준으로 Spring AI 기반 질문 생성/평가기준 검증을 적용해 면접 질문 설계 시간 70% 단축에 기여했습니다.
      • 관리자 조회 쿼리 수 비교 기준으로 Querydsl 조회 최적화를 적용해 쿼리 93% 감소 및 대용량 엑셀 OOM 리스크 완화에 기여했습니다.

2024. 02 ~

물류 플랫폼 자동화 서비스
Grit Standard (백엔드 개발자, 6인 팀)
  • 기술 스택
    JavaSpring BootJPA/HibernateQuerydslAWS LambdaMySQLAWS S3EKS
    • 문제와 제약
      • 수작업 중심의 세관 신고와 문서 처리 흐름 때문에 고객 응대 속도와 데이터 일관성이 업무 병목이었습니다.
      • 물류 도메인 특성상 400개 이상 필드를 가진 복잡한 테이블과 문서 변환, S3 저장, 외부 연동 흐름을 함께 다뤄야 했습니다.
    • 역할과 판단
      • 반복 입력과 누락 가능성을 줄이기 위해 물류 도메인 테이블을 정규화하고 핵심 CRUD/API, 세관 연동 데이터 확보, 신고 자동화 흐름을 개발했습니다.
      • 문서 처리 지연을 줄이기 위해 LibreOffice Lambda Layer 기반 PDF 변환과 S3 저장 흐름을 구현하고, AWS Lambda SnapStart로 Java Lambda cold start 병목을 줄였습니다.
      • 팀 간 API 이해와 데이터 이전 리스크를 줄이기 위해 SQL Migration, Restdocs, Swagger 문서화를 정비했습니다.
    • 결과
      • 세관 연동 데이터 확보와 신고 자동화 시스템 구축으로 고객 응대 병목이던 세관 처리 속도 2배 향상에 기여했습니다.
      • AWS Lambda SnapStart 도입으로 Java Lambda Cold Start를 10초에서 1초 수준으로 단축.
      • AI 기반 PDF 분석 파이프라인으로 인보이스 데이터 추출, 저장, 신고서 생성을 자동화해 반복 수작업을 줄였습니다.

2023. 08 ~ 2024. 08

물류 ERP 시스템 현대화 프로젝트
Grit Standard (백엔드 개발자, 3인 팀)
  • 기술 스택
    PythonFastAPIAWSDockerKubernetesMySQL
    • 문제와 제약
      • Windows 기반 ERP에 업무가 집중되어 기능 변경과 배포가 특정 인력에게 몰렸고, 실무 담당자의 반복 작업 비용이 컸습니다.
      • 기존 레거시 업무 흐름을 유지하면서도 웹 기반 기능으로 전환해야 해, 실무 담당자와 Windows 개발자 간 요구사항 조율이 중요했습니다.
    • 역할과 판단
      • 실무 담당자의 반복 업무를 웹 기능으로 분리하기 위해 백엔드 1인 개발자로 요구사항 분석, API 설계, FastAPI 기반 서비스 구현을 주도했습니다.
      • 배포 대기와 운영 변경 부담을 줄이기 위해 AWS Kubernetes 클러스터, Docker 배포 환경, ArgoCD 기반 GitOps CI/CD 파이프라인을 도입했습니다.
      • 기존 Windows 개발자 및 실무 담당자와 요구사항을 조율하며 레거시 업무 흐름을 웹 기반 기능으로 재설계했습니다.
    • 결과
      • Windows 기반 ERP를 클라우드 웹 환경으로 전환하여 특정 인력 의존도를 낮추고 팀별 업무 분담과 운영 효율을 개선했습니다.
      • 업무 분업화와 자동화 흐름 개선으로 업무 처리 속도 30% 이상 향상에 기여했습니다.
      • GitOps 기반 배포 자동화로 배포 반복 작업과 변경 공유 비용을 줄였습니다.

2023. 05 ~ 2023. 11

대규모 이메일 처리 시스템 (Mailbox Engine)
Grit Standard (백엔드 개발자)
  • 기술 스택
    AWS LambdaKafka MSKAmazon S3ElasticsearchNode.jsSpring Boot
    • 문제와 제약
      • 다중 이메일 계정의 수집/동기화 과정에서 중복 다운로드와 Elasticsearch/RDBMS 간 상태 불일치가 발생할 수 있었습니다.
      • 메일 원문 저장, 검색 인덱싱, 이벤트 처리 부하 분산을 함께 해결해야 해 서버리스 함수 간 책임 분리가 중요했습니다.
    • 역할과 판단
      • 총 11개의 Lambda 함수를 개발해 이메일 수집, 처리, 저장, 검색 흐름을 단계별로 분리했습니다.
      • 이메일 UID 상태 관리와 upsert 로직을 적용해 재처리 상황에서도 중복 저장을 방지하도록 설계했습니다.
      • Kafka MSK 기반 이벤트 파이프라인으로 컴포넌트 간 결합도를 낮추고 처리 부하를 분산했습니다.
    • 결과
      • 서버리스 아키텍처 기반으로 다중 이메일 계정의 수집, 동기화, 저장 흐름을 자동화했습니다.
      • S3와 Elasticsearch 기반 저장/검색 구조로 대용량 메일 데이터 처리와 검색 성능을 개선했습니다.
      • CloudWatch 로그/알람과 장애 복구 흐름을 구성해 운영 모니터링과 데이터 무결성을 강화했습니다.

OPEN SOURCE

Wuma Tracker

  • 오픈소스 게임 맵 트래커 프로젝트에 macOS 네이티브 트래커 지원을 기여하고 PR을 머지했습니다.
  • 공개 핀 체크 수 기준 1만 명 이상 사용자가 확인되는 명조 맵스 생태계의 Windows-only 트래커를 macOS에서도 동작하도록 포팅했습니다.
  • Mach API 기반 외부 프로세스 메모리 읽기 백엔드를 구현하고, macOS 앱 서명 entitlement 및 ad-hoc DMG 빌드 문서를 추가했습니다.
  • Mach-O 심볼 테이블에서 _GWorld 주소를 런타임에 계산해 Windows의 버전별 GWorld 오프셋 관리 부담을 macOS에서 줄였습니다.
  • Windows/macOS 공통 pointer-chain 로직을 ProcessBackend trait 기반으로 정리하고, upstream 리뷰를 반영해 캐시/lock/clone 구조를 개선했습니다.
  • Pull Request: https://github.com/wuwamoe/wuma-tracker/pull/6
  • Repository: https://github.com/wuwamoe/wuma-tracker

EDUCATION

2017. 03 ~ 2024. 03

대진대학교 | 졸업 | 평점 3.93/4.5
산업경영학과 / 컴퓨터공학과(복수전공)
  • 주요 과목
    객체지향 프로그래밍자바 프로그래밍데이터베이스운영체제컴퓨터 네트워크컴퓨터 알고리즘캡스톤 디자인

2014. 03 ~ 2017. 02

저동고등학교
인문계 이과

ETC

2022. 06

정보처리기사
자격증

2024. 09

OPIC
IM2