안영준
인프라 엔지니어
EMAILahn479512@gmail.com
GITHUBgithub.com/Ahnyeongjun
BASE서울, Korea
5년차 인프라 엔지니어입니다. 서버 한 대에 직접 배포하던 시스템을, 에어갭·온프레미스 환경에서 자동화를 쌓아가며 K8s 클러스터 기반으로 직접 키워왔습니다.

서비스가 커지는 만큼 인프라도 함께 만들어온 경험

수동 배포를 자동화하고 컨테이너로 표준화해 어디서든 동일하게 실행되도록 만들었습니다. 서버가 늘어 수동 관리가 한계에 닿자 쿠버네티스를 도입했고, 손으로 반복하던 구축 절차는 쉘 스크립트로, 다시 Ansible로 옮기며 버전 관리되는 코드로 만들었습니다. 덕분에 KARI·국가보안기관·NIPA처럼 제약이 다른 기관마다 처음부터 만드는 대신, 검증된 구조를 조정해 배포할 수 있었습니다. 서비스가 여러 개로 쪼개진 뒤에는 서비스 사이에서 유실되던 데이터를 큐로, 흩어진 시크릿을 중앙화로 정리했습니다.

반복되는 작업은 자동화로 걷어냅니다

CRUD 보일러플레이트를 자동 생성 도구로, 작업 이력 정리·업무 보고를 팀 전체가 쓰는 에이전트로 없앴고, ML 실험에서는 GPU 상태와 학습 결과를 시각화하고 데이터셋 정리를 LLM으로 자동화하는 도구를 만들었습니다. 최근에는 CLAUDE.md와 Jira·Bitbucket을 연동해 개발 워크플로우 전체를 자동화했습니다. 백엔드·프론트엔드·AI를 직접 개발해본 경험이, 각 자리에서 무엇이 반복되는지 알아보는 눈이 됐습니다.

장애의 근본 원인을 끝까지 추적해 해결합니다

에어갭 환경이라 장애가 사용자 신고 후에야 드러나던 구조에 Zabbix 관측을 직접 도입해 사전 감지 체계를 갖췄습니다. 디스크 부족 표면 에러를 컨테이너→마운트→디바이스→펌웨어까지 추적해 NVMe 펌웨어 이관 로직 누락을 찾아냈고, Debezium replication slot이 반복 파손되는 근본 원인(상태 판정 우선순위 오류)까지 추적해 Outbox 아키텍처로 근본 전환했습니다. 표면 증상에서 멈추지 않고 원인을 끝까지 따라가는 편입니다.

01경력
한컴인스페이스
연구원 · 인프라 엔지니어링 · 재직 중
2021.07. ~ 재직 중 (5년)
클러스터 구축·운영
  • 클러스터 프로비저닝 쉘 스크립트화(수동 구축 1~2일 → 2~3시간) 후 Ansible 플레이북으로 전환 - 신규 노드 추가 시 pod·서비스 세팅 자동화, 수동 설정 편차 제거
  • 인터넷이 완전히 차단된 에어갭 환경에서 수십 대 서버 규모 클러스터를 롤링 방식으로 서비스 중단 없이 운영
  • K8s 인증서 만료 대응 자동화 - 연 1회 현장 방문 작업 제거
CI/CD·배포
  • 실제 상태와 스크립트가 갈려 추적이 안 되던 Jenkins 명령형 배포를 Argo Workflows/Events CI + ArgoCD GitOps로 분리 - 배포 드리프트 추적성 확보
  • 배포 후에만 드러나던 부하·트랜잭션 결함을 k6 부하테스트·유닛테스트의 CI 편입으로 배포 전 검출 - 에러율 11.22% → 0%
관측성·장애 대응
  • MSA 전환으로 서비스별로 흩어진 로그·트레이스를 OTel 기반 관측 스택(Prometheus·Tempo·Grafana) 신규 구축으로 통합 - 장애 원인분석 1~2시간 → 30분 이내
  • 에어갭이라 장애를 사용자 신고 후에야 인지하던 구조에 Zabbix 하드웨어·서비스 관측 도입 - 장애 사전 감지 체계 확보
  • 표면 에러(디스크 부족)를 컨테이너→마운트→디바이스→펌웨어로 추적해 NVMe 펌웨어 이관 로직 누락을 발견·복구 - 하루 이상 걸리던 원인 파악·수정을 수 시간 이내로 단축
네트워킹·보안
  • 서비스 증가로 드러난 처리 오버헤드·단일 장애점(SPOF)을 Cilium(eBPF)·kube-vip 전환으로 해결 - 팀원과 설계 방향 협의하며 참여
  • 서비스마다 개별 관리돼 로테이션 부담이 늘던 시크릿을 OpenBao+ESO 중앙 저장·자동 주입으로 일원화 - 로테이션이 배포 재시작만으로 반영
  • 서비스가 각자 노출돼 보안 정책이 분산되던 구조를 Nginx 게이트웨이로 통합 - 서비스 7개의 HTTPS 종단·인증서·보안 헤더 1곳 관리, Wireshark 정보 노출 점검
  • 잘고 빈번한 타일 요청마다 반복되던 TCP 핸드셰이크 지연을 Nginx Ingress keepalive 튜닝으로 제거 - 커넥션 재사용으로 응답 지연 단축
  • 사내 서버 간 통신을 OpenVPN으로 구성 - 물리적으로 분리된 서버를 안전한 터널로 연결
메시징·데이터 파이프라인
  • DB 폴링 락 경합으로 워커를 늘려도 확장되지 않던 처리 구조를 RabbitMQ 단계별 큐(ack/nack+DLQ)로 전환 - 처리 워커 1개 → 15개, 작업 유실 0건
  • 에어갭 망연계에서 Debezium replication slot이 반복 파손되던 문제를 AOP+MyBatis Outbox 라이브러리 직접 개발로 해결 - CDC 인프라 의존 제거, 이벤트 유실 0건
  • TTL이 필요한 휘발성 데이터·API/쿼리 응답 캐싱을 위해 Redis를 Helm으로 K8s에 배포·운영 - RDB 스냅샷으로 재시작 시에도 데이터 유지
업무 자동화
  • 40여 개 테이블 CRUD 계층 자동 생성 - 테이블당 30분~1시간 걸리던 보일러플레이트 작성을 몇 십초 내로 단축
  • FastMCP 사내 에이전트 개발 - Git·캘린더·HRWeb 통합·구글 드라이브 자동 관리 → 주 30~60분 수작업 제거
  • Claude 스킬·훅 기반 에이전트 개발 - 작업 계획·평가 자동화
  • Jira·Bitbucket 연동 자동화 - 자동 브랜치 생성 → PR 문화 정착
02프로젝트
NIPA 위성 변화탐지 플랫폼 - 클러스터·메시징 인프라 고도화주도(팀 5명)2025.07. ~ 진행 중
DB 폴링 방식이라 수평 확장이 막혀 있던 처리 구조를 메시지 큐 기반 비동기 아키텍처로 재설계하고, MSA 전환에 맞춰 클러스터 네트워킹·시크릿·배포·관측성까지 인프라 전 영역을 고도화했습니다.
메시지 큐 기반 파이프라인 전환 - RabbitMQ 단계별 큐 분리 → 처리 워커 1개→15개
원인DB 폴링 방식은 워커를 늘려도 같은 DB에 폴링 쿼리가 몰려 락 경합으로 수평 확장 효과가 거의 없었고, 완료 콜백 유실 시 작업이 고착되는 문제도 있었습니다.
해결RabbitMQ ack/nack+DLQ 기반으로 전환하고 파이프라인 단계별로 큐를 분리해, 처리 워커를 1개에서 15개로 수평 확장했습니다.
결과단계별 독립 확장 가능한 구조 확보, 처리 워커 컨테이너 1개→15개 수평 확장, 작업 유실 0건
클러스터 인프라 고도화 - Cilium·kube-vip·ArgoCD·OTel, 팀원과 설계
원인MSA 전환으로 네트워킹·시크릿·배포·관측성 각 영역에서 감당하기 어려운 문제가 동시에 드러났습니다.
해결팀원과 영역을 나눠 Cilium·kube-vip로 네트워킹·HA를, OpenBao+ESO로 시크릿을, ArgoCD·Pulp로 배포를, 신규 도입한 Prometheus·Grafana 등으로 관측성을 각각 해결했습니다.
결과클러스터 네트워킹·시크릿·배포를 팀 차원에서 표준화, 관측 스택을 신규로 갖춰 장애 원인분석 1~2시간 → 30분 이내로 단축
항공우주연구원(KARI) 위성영상 AI 처리 플랫폼 구축주도(팀 3명)2023.10. ~ 2025.07.
회사의 모든 K8s 기반 AI 처리 플랫폼의 출발점이 된 프로젝트입니다. 관리형 K8s가 없는 온프레미스 환경이라 kubeadm으로 클러스터를 직접 부트스트랩했습니다.
Kubernetes 클러스터 구축 - kubeadm 베어메탈 부트스트랩 + GPUShare 자원 공유
원인컨테이너 하나가 죽으면 작업이 사라지는 구조로는 운영이 불가능했고, 노드당 GPU 하나를 컨테이너 하나가 점유해 대부분의 시간 동안 GPU가 유휴 상태였습니다.
해결kubeadm으로 클러스터를 직접 부트스트랩하고, Aliyun GPUShare로 GPU를 fraction 단위로 나눠 GPU 4장에서 70파드 병렬 추론을 달성했습니다.
결과노드 장애 시에도 워크로드가 자동 복구되는 구조 확보(이후 모든 K8s 기반 AI 처리 플랫폼의 출발점이 됨), GPU 4장에서 70파드 병렬 추론
Debezium CDC 안정화 - Outbox 전환 및 자가치유 운영 → 이벤트 유실 0건
원인Debezium CDC의 replication slot이 반복 파손돼 전체 스냅샷 재수행이 필요했고, 망연계 솔루션은 파일 기반 전송만 지원해 API 폴링도 불가능했습니다.
해결일반 이벤트는 Outbox 라이브러리로 CDC 의존 자체를 걷어냈고, 망연계용으로 유지한 Debezium 구간은 상태 판정 순서를 재정렬해 자가치유 자동 복구 스크립트로 안정화했습니다.
결과이벤트 유실 0건으로 애플리케이션 레벨 이벤트 보장, 보안 지침을 지키면서도 망연계 실시간성 확보, 유지되는 CDC 구간도 재시도 폭주 없는 자가치유 구조 확보
Nginx 게이트웨이 구축 - HTTPS 종단·보안 헤더·정보 노출 점검 통합
원인Tomcat 단독으로는 인증서·보안 헤더 관리가 번거로웠고, 서비스가 각자 노출되다 보니 보안 정책 통합도 응답의 정보 노출 여부 확인도 어려웠습니다.
해결Nginx를 HTTPS 리버스 프록시 겸 단일 게이트웨이로 구성해 인증서·보안 헤더·라우팅을 통합하고, Wireshark 패킷 분석으로 정보 노출 여부까지 점검했습니다.
결과서비스 7개의 HTTPS 종단·인증서·보안 헤더를 게이트웨이 1곳으로 통합, 정보 노출 여부 사전 점검 체계 마련
Nginx Ingress keepalive 튜닝 → TCP 핸드셰이크 오버헤드 제거
원인타일 요청이 트래픽 대부분을 차지하는데 매 요청마다 TCP 핸드셰이크가 반복돼 응답 지연이 누적됐습니다.
해결Nginx Ingress upstream keepalive로 백엔드 커넥션을 재사용하도록 튜닝해 핸드셰이크 오버헤드를 제거하고 K8s 레플리카 확장에도 그대로 대응하도록 만들었습니다.
결과커넥션 재사용으로 응답 지연 단축, K8s 레플리카를 늘려도 그대로 스케일되는 구조 확보
CI 파이프라인 테스트 자동화 - k6 부하테스트·유닛테스트 도입 → 배포 후 에러율 11%→0%
원인배포 파이프라인에 자동화된 테스트가 없어 부하 상황에서만 드러나는 문제나 트랜잭션 결함이 배포 이후에야 발견됐습니다.
해결k6 부하테스트와 유닛테스트를 Jenkins CI 파이프라인에 편입해 배포 전 자동 검증 단계를 만들었고, 배포 후 에러율을 11.22%에서 0%로 낮췄습니다.
결과배포 후 에러율 11.22%→0%, 트랜잭션 경계·동기화 결함을 배포 전 CI 단계에서 검출
국가보안기관 위성영상 시스템 — 개발·에어갭 운영·신규 구축핵심 참여(인프라 1·풀스택 4·DB 1)2022.07. ~ 진행 중
위성영상을 수집·판독해 정부 표준 문서로 산출하는 시스템입니다. API·프론트 개발로 시작해 2024.07부터 에어갭 환경에서 5대 서버 규모 클러스터를 롤링 방식으로 서비스 중단 없이 운영했고, 2025.06~2025.12에는 다종위성 수집·처리 플랫폼을 물리 베어메탈 서버 설치부터 K8s 클러스터 구성, DB 설계, 파이프라인 구현까지 전 과정 신규 구축했습니다.
가시화 전면 실패 장애 - 표면 에러를 따라가 만난 진짜 원인
원인가시화 작업이 전부 실패했는데 로그상 디스크 부족처럼 보였지만 실제 마운트 용량은 여유가 있어, 표면적 에러와 실제 동작이 어긋나 있었습니다.
해결팀원과 함께 스토리지 장비에 직접 접속해 NVMe 실사용량을 확인하고 업체 코드까지 검토해 펌웨어 이관 로직 누락을 찾아, 임시 패치 후 정식 패치까지 연동해 복구했습니다.
결과컨테이너→마운트→디바이스→펌웨어로 경계를 넘어 근본 원인 추적, 외부 레퍼런스 없이 하루 이상 걸리던 원인 파악·수정을 수 시간 이내로 단축
DB 접근 계층 중앙화(신규 구축) → 스키마 변경 영향 API 레이어로 축소
원인서비스마다 ORM으로 DB에 직접 접근해 스키마 변경 시 여러 서비스를 동시 수정해야 했고, 언어별 ORM 개선만으로는 이 구조적 문제가 해결되지 않았습니다.
해결DB 접근을 Go 기반 API 한 곳으로 중앙화해, 스키마 변경 영향 범위를 API 레이어 하나로 좁히고 언어 무관하게 동일한 방식으로 DB에 접근하도록 만들었습니다.
결과7개 서비스가 직접 접근하던 DB를 API 1곳으로 중앙화, 스키마 변경 영향 범위가 API 레이어 한 곳으로 축소
베어메탈부터 시작한 신규 인프라 구축
원인관리형 인프라 없이 물리 서버 설치부터 시작해야 하는 신규 구축 프로젝트였습니다.
해결물리 서버·K8s 클러스터 구성부터 수집기 통합·포맷 변환 자동화·히스토그램 스트레칭·자동 삭제 워크플로우 구현까지 인프라 전 과정에 핵심 참여했습니다.
결과물리 서버부터 운영 가능한 시스템까지 전 과정 수행 경험 확보
03기술 스택
언어·프레임워크
GoPythonFastAPIJavaSpring Boot
오케스트레이션
KubernetesDockerDocker Compose
IaC·구성관리
TerraformAnsible
네트워킹·보안
Ciliumkube-vipNginxEnvoy GatewayKeycloakOpenBaoOpenVPN
데이터·메시징
PostgreSQLRedisRabbitMQ
관측성
OpenTelemetryPrometheusGrafanaLokiTempoZabbix
CI/CD
JenkinsArgoCD
아티팩트·패키지
NexusPulp
04대외활동
FESI 13기 - 백엔드 멘토링codeit · 2026
프론트엔드 부트캠프 수강생 6명 대상 실무 방식 기반 멘토링 (PR 리뷰, REST API 설계, DDD·TDD 실습).
[동시성] 동시 신청 시 maxMembers 초과 가능 → PESSIMISTIC_WRITE 락 + Batch UPDATE로 원자적 증감 처리
[강결합] 알림 실패가 모임 데이터에 영향 → @TransactionalEventListener(AFTER_COMMIT)로 이벤트 분리, fault tolerance 확보
[IaC] Terraform으로 AWS EC2 프로비저닝, Ansible로 구성 관리 - 프로비저닝/구성 계층 분리
[비용 설계] NLB 비용 구조 비교 후 EC2+Nginx 게이트웨이 직접 구성 - 실습 환경 규모에서 SPOF 감수·고정비 절감 판단
[성과] 51개 테스트 파일(단위·통합·E2E 3-layer 피라미드) + GitHub Actions CI 구성
스위프(SWYP) 웹 9기 ~ 11기, 앱 4기스위프 · 2025 ~ 2026
4개 기수에 백엔드·프론트엔드·PM으로 참여하며 팀 프로젝트를 웹·앱으로 출시했습니다.
9기 백엔드(모먼티어), 10기 프론트엔드(축지법), 11기 PM·프론트엔드(위딩), 앱 4기 백엔드(Mapin)
[배포] NCP(네이버클라우드플랫폼) 환경에 배포
항해99 백엔드코스 9기항해99 · 2025
동시성 제어와 이벤트 드리븐 아키텍처를 실전으로 검증하는 학습 프로젝트. 상위 10% 수료.
[좌석 중복 예약] 비관적 락 → Redis 분산락 → 낙관적 락 순으로 전환, k6 + Grafana 부하 테스트로 트레이드오프 검증
[분산 트랜잭션] Redis 대기열 → Kafka 전환, Choreography Saga + DLQ로 일관성 확보
[배포] WireGuard VPN으로 사내 서버와 WSL 워커를 연결해 온프레미스 K8s 클러스터 구성, Jenkins·Nexus CI/CD 파이프라인 구축, API Gateway가 서비스별 경로·Swagger 문서를 1:1 라우팅
05교육
한밭대학교
대학교(학사) · 융합기술학과
2022.03. ~ 2026.03. · 졸업
대덕소프트웨어마이스터고등학교
고등학교 · 소프트웨어개발과
2020.03. ~ 2022.03. · 졸업
06자격증
SQL개발자(SQLD)2025.12.
합격 · 한국데이터산업진흥원
정보처리기사2025.06.
합격 · 한국산업인력공단
정보기기운용기능사2021.12.
합격 · 한국산업인력공단
프로그래밍기능사2020.12.
합격 · 한국산업인력공단
이력서 | 안영준 | 안영준