Portfolio

주요 프로젝트

공공 G사 온프레미스 → NCP 클라우드 마이그레이션 & 컨테이너화

2025년 10월 - 2025년 12월 (예정) | Naver Cloud Platform

온프레미스 환경을 NCP 컨테이너 환경으로 마이그레이션하고 CI/CD 파이프라인 구축

프로젝트 규모

  • 서비스: 6개 (Java Spring 1.8, PHP-FPM 8.3)
  • 서버: Web/WAS/DB 각 2대 HA 구성 × 6개 사이트 = 18대 + GitLab, Jenkins, ELK, Zabbix, Matomo 등 솔루션 서버
  • 아키텍처: Nginx - WAS - MariaDB 3티어 컨테이너 구조
  • 일정: 10월 KT Cloud 테스트 환경 구축 → 11월 NCP 본격 마이그레이션 → 12월 중순 기관 최종 발표

담당 역할 (95% 단독 수행)

1. 인프라 설계 및 구축

  • NCP 리소스 설계 및 구축 (Server, Load Balancer, ACG, VPC)
  • GitLab + GitLab Container Registry 구축 및 리포지토리 관리
  • Jenkins 구축 및 CI/CD 파이프라인 설계
  • SVN → Git 형상 관리 체계 전환

2. 컨테이너화 및 CI/CD 구현

  • PHP-FPM 8.3, Spring Java 1.8 애플리케이션 Dockerfile 작성
  • docker-compose 기반 멀티 컨테이너 환경 구성
  • GitLab Webhook 기반 자동 CI/CD 파이프라인 구축
    • Main 브랜치 Protected 설정
    • Push 트리거 → CI (소스 빌드 → 이미지 빌드 → Registry 푸시) → CD (자동 배포)
  • GitLab Container Registry를 활용한 이미지 버전 관리

3. 자동화

  • Ansible Playbook을 통한 서버 초기 설정 자동화
    • sar, logrotate 설정
    • Docker 설치 및 daemon.json 관리
    • /etc/hosts 파일 관리

기술적 챌린지

1. MTU 불일치로 인한 간헐적 네트워크 타임아웃

2. GitLab Container Registry 이미지 푸시 실패

  • 문제: 사설 IP로 Registry 접근 시 푸시 중단 (GitLab 웹콘솔은 공인 IP 사용)
  • 원인: GitLab이 내부적으로 공인 IP로 redirect하면서 연결 끊김
  • 해결: 도메인 기반 접근으로 전환
    • DNS A 레코드: 도메인 → 공인 IP
    • 이미지 푸시 서버 /etc/hosts: 도메인 → 사설 IP
    • 불필요한 공인 IP 트래픽 절감 (이미지당 1GB+ 절약)

성능 최적화

웹 애플리케이션 응답 시간 최적화

  • 개선 전: 평균 3초 이상
  • 개선 후: 평균 150ms
  • 개선율: 20배 성능 향상

최적화 작업:

  • Nginx gzip 압축 설정 (4096+ 파일 대상)
  • Nginx keepalive 설정
  • MariaDB 인덱스 추가 (개발팀 협업)
  • WAS/DB connection pool 및 buffer 튜닝
  • hey, jmeter 부하 테스트 기반 튜닝 (CPU, Memory, Connection 모니터링)

사용 기술

  • Cloud: Naver Cloud Platform (Server, Load Balancer, ACG, VPC)
  • Container: Docker, docker-compose
  • CI/CD: GitLab (SCM, Container Registry, Webhook), Jenkins (Pipeline)
  • Automation: Ansible
  • Monitoring: ELK, Zabbix, Matomo
  • Load Testing: hey, jmeter

관련 포스트:


공공 H사 KT Cloud 운영 자동화

2024년 11월 - 현재 | KT Cloud

3티어 인프라 운영 및 Ansible 기반 자동화

  • 규모: 10개 시스템, 40여대 서버
  • 주요 성과:
    • Ansible 기반 보안 취약점 점검 및 조치 자동화
    • Shell Script를 활용한 WEB/WAS 로그 관리 및 백업 이중화
    • Nagios/Munin 기반 메트릭 모니터링 및 장애 알람 운영

셀프 매니지드 Kubernetes 클러스터 구축 (개인 프로젝트)

2024년 8월 - 현재

CSP 없이 자체 관리형 Kubernetes 클러스터를 구축하며 내부 동작 원리 학습

구축 환경:

  • MetalLB + HAproxy + Nginx Ingress Controller (네트워크)
  • Longhorn (분산 스토리지, 고가용성 PV)
  • Jenkins, GitLab, Prometheus, Grafana (Helm Chart 기반 배포)

주요 성과:

  • CSP의 ALB/EBS를 대체하는 오픈소스 기반 네트워크/스토리지 구성
  • 115개 이상의 기술 블로그 포스트 작성 (학습 과정 문서화)

관련 포스트: Kubernetes 카테고리


기술 블로그

115개 이상의 기술 포스트 (2024년 11월 - 현재)

실무 경험과 학습 내용을 기록합니다.

  • Kubernetes - 셀프 매니지드 클러스터 구축
  • Container - Docker, CI/CD 파이프라인
  • Linux - 시스템 관리 및 자동화

블로그: joonlog.github.io


연락처

Licensed under CC BY-NC-SA 4.0