황인준

DevOps 엔지니어

다양한 관점에서 문제를 분석하고 특별한 인프라를 구축하는 것에 열정을 가진 DevOps 엔지니어입니다. 작은 개선이 큰 성장을 가져온다고 믿으며, 기술에 대한 호기심으로 계속해서 학습하고 도전합니다.

프로젝트

Kubernetes 기반 개인 GitOps 플랫폼

2024.09 - 진행중

프로젝트 개요

개인 프로젝트들의 자동화된 배포와 운영을 위한 GitOps 기반 클라우드 네이티브 플랫폼을 구축했습니다. Infrastructure as Code와 GitOps 원칙을 준수하며, 모든 변경사항이 Git을 통해 선언적으로 관리되도록 설계했습니다.

주요 역할 및 기술적 기여

  • 인프라 아키텍처 설계
    • Kubernetes 클러스터 설계 및 구축
    • 고가용성을 고려한 멀티 노드 아키텍처 구현
    • 효율적인 리소스 관리를 위한 노드 구성 최적화
  • GitOps 파이프라인 구축
    • Argo CD를 활용한 선언적 배포 파이프라인 구현
    • GitHub Actions를 통한 자동화된 Git 저장소 관리
    • 멀티 스테이지 배포 전략 수립
  • 모니터링 및 보안 인프라 구축
    • Grafana를 활용한 통합 모니터링 대시보드 구현
    • Traefik을 통한 엔드포인트 관리 및 트래픽 모니터링
    • Vault와 Longhorn을 통한 시크릿 및 스토리지 관리
    • Loki를 활용한 중앙 집중식 로그 관리 시스템 구축
  • CI/CD 파이프라인 구축
    • Argo CD와 Argo Workflows를 활용한 GitOps 기반 배포 자동화
    • Harbor를 통한 컨테이너 이미지 및 Helm 차트 관리
    • 보안 취약점 스캐닝 및 컴플라이언스 검사 자동화
  • 스토리지 및 데이터 관리
    • Longhorn을 활용한 분산 스토리지 시스템 구축
    • 볼륨 스냅샷 및 백업 자동화 구현
    • 고가용성을 위한 데이터 복제 정책 수립
  • 기술적 도전과 해결

    • Traefik과 Loki를 연동하여 실시간 트래픽 모니터링 및 로그 분석 파이프라인 구축
    • Argo Workflows를 활용한 복잡한 CI/CD 워크플로우 자동화
    • Vault와 Longhorn을 활용한 안전한 데이터 관리 체계 구현
    • Harbor의 취약점 스캐닝과 이미지 서명 기능을 활용한 보안 강화

    프로젝트 회고

    이 프로젝트를 통해 클라우드 네이티브 기술 스택에 대한 깊은 이해를 얻을 수 있었습니다. 특히 GitOps 방식의 인프라 관리가 가져다주는 투명성과 재현성의 이점을 체감했으며, 자동화된 파이프라인이 개발 생산성에 미치는 긍정적인 영향을 확인했습니다.

Kubernetes Argo CD Argo Workflows Harbor Traefik Grafana Loki Vault Longhorn Helm

URL 단축 서비스

2025.02.10 - 2025.02.20

프로젝트 개요

긴 URL을 짧고 기억하기 쉬운 URL로 변환해주는 서비스를 개발했습니다.

주요 역할 및 기술적 기여

  • 백엔드 아키텍처 설계
    • 헥사고날 아키텍처의 개념을 참고한 계층 구조 설계
    • 도메인 주도 설계의 개념을 참고한 도메인 모델 구현
    • 관심사 분리와 의존성 역전 원칙을 고려한 패키지 구조화
    • Go와 Gin 프레임워크를 활용한 RESTful API 개발
  • 데이터베이스 설계 및 최적화
    • Raw SQL을 활용한 데이터베이스 직접 통신 구현
    • ORM 제거를 통한 쿼리 최적화 및 성능 향상
    • URL 조회 성능을 위한 인덱싱 전략 수립
  • 보안 및 검증
    • Cloudflare Turnstile을 활용한 스팸 방지 시스템 구현

기술적 도전과 해결

  • ORM에서 Raw SQL로의 전환을 통해 쿼리 성능 30% 향상 및 코드 복잡도 감소
  • 클린 아키텍처와 헥사고날 아키텍처의 개념을 참고한 유지보수가 용이한 코드 구조 설계
  • 도메인 주도 설계의 개념을 참고하여 비즈니스 로직의 응집도 개선
  • 개인 GitOps 플랫폼을 활용한 자동화된 배포 및 운영 구현

배포 및 운영

  • GitOps 기반 배포 자동화
    • 기 구축된 Kubernetes 기반 GitOps 플랫폼 활용
    • Argo CD를 통한 선언적 배포 관리
    • Argo Workflows를 활용한 CI/CD 파이프라인 구성
  • 모니터링 및 운영
    • Grafana 대시보드를 통한 서비스 메트릭 모니터링
    • Loki를 활용한 로그 집중화
    • Traefik을 통한 트래픽 관리

프로젝트 회고

이 프로젝트를 진행하면서 ORM의 장단점을 직접 경험할 수 있었습니다. 처음에는 ORM을 사용했지만, Raw SQL로 전환하며 쿼리 최적화와 성능 개선을 경험했습니다. 또한 DDD와 클린 아키텍처의 개념들을 참고해 코드를 구조화하면서, 더 나은 설계 방식에 대해 고민하고 배울 수 있었습니다.

Go Gin MySQL React TypeScript Clean Architecture Kubernetes Argo CD Argo Workflows Cloudflare Turnstile

주요 성과

인프라 자동화

GitOps 방식의 배포 파이프라인을 구축해 배포 과정을 자동화했습니다. 쿠버네티스를 활용한 리소스 관리로 인프라 운영 효율을 높였습니다.

모니터링 시스템

Grafana와 Loki로 구성된 모니터링 환경을 구축했습니다. 실시간 서비스 상태 확인과 로그 분석이 가능한 대시보드를 만들었습니다.

배포 자동화

Argo CD와 Argo Workflows로 CI/CD 파이프라인을 구성했습니다. 코드 변경사항이 자동으로 반영되는 배포 환경을 구축했습니다.