김현기

서버 백엔드 엔지니어

이메일: rlagusrl928@gmail.com

연락처: 010 9916 1042

블로그: https://velog.io/@disdos0928

About Me

비즈니스를 기술로서 해결하는 과정이 즐거운 백엔드 개발자 김현기입니다.

서버 개발자로서 장애 발생 시 임시 조치에 그치지 않고 데이터 기반의 근거를 찾는 것을 선호하며, 근본 원인을 규명하고 공유하는 것을 중요하게 생각합니다.

품질 유지를 개인의 역량에만 의존하지 않도록 NullAway, Pre-commit Hook 등을 도입하여, 동료들과 함께 일관된 품질을 강제할 수 있는 시스템을 구축하는 일을 좋아합니다.

기술적 욕심으로 인한 오버엔지니어링은 경계하되, 시도한 개선의 결과가 미비하다면 이를 솔직하게 ‘실패’로 인정하고 더 실용적인 대안을 찾는 데 집중합니다.

이러한 고민의 흔적을 1년간 100건이 넘는 작업 관리 노트로 기록해 왔으며, 체계적인 문서화를 통해 팀 전체의 시행착오를 줄이는 과정에서 큰 보람을 느낍니다.

경력

오프너드 (OPND)

서버 백엔드 매니저

2024.08 ~ 현재

B2B 소프트웨어 솔루션 및 데이터 파이프라인 개발

Backend : Java 17/21 Spring Boot 3.x Go Database : PostgreSQL Redis Elasticsearch Infra : Apache Camel K8s Gitea Gitea Actions AWS

다양한 산업군의 B2B 솔루션 백엔드 개발과 데이터 파이프라인 구축을 담당하고 있습니다.

PostgreSQL GIN Index + Trigram 한글 검색 최적화

  • 한글 LIKE 검색에 GIN Index + pg_trgm 익스텐션 적용
  • 쿼리 응답 시간 6.967ms → 0.395ms (17.6배 개선)

Virtual Thread 기반 대량 데이터 병렬 처리

  • Java 21 Virtual Thread로 대량 처리 로직 리팩토링
  • 처리 시간 311초 → 30초 (10.3배 개선)

ShedLock 분산락 기반 캐시 워밍업 최적화

  • 다중 인스턴스 환경에서 중복 캐시 생성 방지
  • 워밍업 시간 35분 36초 → 68초 (31배 개선)

전사 공용 라이브러리 설계 (openerd-java)

  • opnd-commons, opnd-auth, opnd-observability 모듈 구조 설계
  • 95%+ 테스트 커버리지 품질 기준 및 JaCoCo 검증 파이프라인 구축
  • Git 태그 기반 버전 관리 및 Maven 저장소 자동 퍼블리시

External API Key 인증 시스템

  • SHA-256 + Salt 기반 무결성 검증 구현
  • Timing attack 방지를 위한 상수 시간 비교 적용
  • JWT와 독립된 이중 인증 구조 설계

PII Filter Worker 개발 (Go)

  • 개인정보 필터링 전담 워커 구현
  • 12종 개인정보 패턴(여권번호, 계좌번호, 주민등록번호 등) 탐지/마스킹
  • JSON Schema 기반 메시지 검증 체계 구축

분산 트레이싱 환경 구축 (LGTM 스택)

  • Jaeger → Grafana Tempo 마이그레이션
  • OpenTelemetry 표준 환경변수 준수
  • Traces, Metrics, Logs 통합 관측성 플랫폼 구축

SGU

IT 2팀 사원

2022.08 ~ 2024.04

패션 산업에 특화된 전사적 자원 관리 시스템(ERP) 개발 및 유지보수

Backend : Java Spring MyBatis Database : Oracle Infra : GitLab Jenkins AWS CentOS Docker

ERP의 특성 상 WMS, CRM, SCM 등 다양한 부분의 여러 도메인을 경험할 수 있었습니다. 기존 레거시 코드를 적극적으로 리팩토링하고, 새로운 기술을 도입하여 성능 개선 및 유지보수성을 높였습니다.

주요 업무 경험

ERP-Groupware 전자결재 연동 API 개발

  • 전략 패턴을 적용해 전자결재 상태 관리 및 승인 프로세스 일관성을 확보
  • 추상화된 공통 인터페이스 모듈화로 예상 개발 시간을 6주 → 2주로 단축

통계성 데이터 처리 개선

  • 브랜드/품목별 연간 매출, 시즌별 실적 목표 등 대규모 데이터 쿼리 최적화
  • 뷰 테이블, 인덱스, 로컬 캐시를 활용해 15초 → 5초로 단축

API 처리 속도 개선

  • 레거시 코드에 페이지네이션 도입으로 데이터 조회 중복 문제 해결
  • API 응답 속도 800ms → 450ms로 단축

CRM 네이티브 쿼리 개선

  • 연관 정보 노출로 인한 속도 저하 문제를 subquery → join 변환으로 해소
  • 3.5초 → 0.8초로 단축

커뮤니티 서비스 리팩토링

  • 추상 팩토리 패턴을 활용해 매장/본사/MD 간 커뮤니티의 중복 서비스 제거
  • 유지보수성 향상

공통 기능 모듈화

  • 서비스별 필요 기능만 포함하도록 모듈 분리
  • 중복 코드 제거로 유지보수성과 재사용성 향상

WMS-ERP 물류 연동 API 개발

  • 자사 WMS와 타사 ERP 간 물류 데이터 연동
  • Optimistic Locking으로 데이터 정합성 확보

프로젝트

Backend : Java 17 SpringBoot 3.x Junit5 Spring Data JPA Database : MySQL Infra : GitHub Actions Docker Grafana Prometheus

욕설 필터링을 위한 API 서비스입니다. 경량화된 KISO 모델과 비슷한 형태의 가용성 오픈소스 비속어 필터링 API를 제공합니다.

주요 경험

아호코라식 알고리즘 활용

  • 대량의 단어 비교를 위해 아호코라식 알고리즘을 사용하여 비속어 필터링 API를 구현

Classicist Test 기반 개발

  • 실제 객체를 사용한 white box test로 테스트 신뢰성과 편의성을 증가

시스템 모니터링 환경 구축

  • on-premise 환경에서 Prometheus와 Grafana를 활용한 실시간 모니터링

무중단 다중화 서버 구축

  • 분산화된 서버를 통해 고가용성 확보

Blue-Green 배포 전략

  • GitHub Actions와 blue-green deploy를 사용하여 무중단 배포 구현

HomeLab K8s Platform

2024.11 ~ 현재

https://github.com/Whale0928/k8s-platform

Platform : K3s ArgoCD Flannel VXLAN Network : Tailscale VPN NGINX Ingress Cert-Manager Security : External Secrets Operator SOPS Monitoring : Grafana LGTM Stack

개인 프로젝트들을 프로덕션 환경에서 운영하기 위한 Kubernetes 기반 홈랩 클러스터입니다.

주요 구성

Multi-Cloud 하이브리드 클러스터

  • Oracle Cloud(arm64) 3노드 + On-Premise Proxmox(amd64) 2노드
  • 3-Node HA Control Plane으로 고가용성 확보
  • Tailscale VPN 기반 mesh 네트워크 구성

GitOps 기반 인프라 관리

  • ArgoCD를 통한 선언적 배포 (Self-Heal, Auto-Prune)
  • Kustomize 기반 환경별(dev/prod) 설정 분리
  • bottle-note, profanity-filter-api 등 5개 Application 운영

보안 및 시크릿 관리

  • External Secrets Operator로 AWS Secrets Manager, 1Password 연동
  • Cert-Manager를 통한 Let’s Encrypt TLS 인증서 자동 갱신
  • SOPS를 활용한 GitOps 시크릿 암호화

네트워크 트러블슈팅 경험

  • Flannel VXLAN over Tailscale 구성 시 인터페이스 불일치 문제 해결
  • 장애 분석/해결 과정을 체계적으로 문서화

bottle-note

2024.01 ~ 현재 (앱 출시 준비)

https://github.com/bottle-note

Backend : Java 17 SpringBoot 3.0 Spring Security QueryDSL Spring Data JPA Database : MySQL Infra : AWS (ECS, ECR, Route53, S3) GitHub Actions Docker Monitoring : Grafana Prometheus Restdocs

술을 리뷰하고 평가할 수 있는 Spring Boot 기반의 프로젝트입니다. 총 5명의 팀으로서 진행하며, back-end, devops, infra를 담당합니다.

주요 경험

Presigned URL 이미지 업로드

  • 보안과 효율성을 고려한 이미지 업로드 구현
  • Template Method Pattern으로 S3 업로드 확장성 고려

Local Cache 구현

  • CaffeineCache를 활용한 조회 성능 개선
  • 400ms → 17ms로 단축

QueryDSL 다이나믹 쿼리

  • 변동 사항이 많은 검색/정렬 조건을 처리하기 위해 도입
  • 팀원에게 사용법 공유 및 전파

모니터링 환경 구축

  • on-premise 환경에서 Prometheus, Grafana를 활용한 실시간 모니터링

CI/CD 파이프라인 구축

  • GitHub Actions과 AWS ECS를 활용한 인프라 환경 구축
  • 프론트엔드/백엔드 레포지토리 검증 워크플로우 추가

정적 분석 도입

  • Qodana, SonarQube, CheckStyle을 활용한 코드 품질 향상

앱 출시 준비

  • Android/iOS 빌드 배포 환경 구축
  • QC 프로세스 수립 및 품질 검증 참여

대외활동

DDD 세레나데 6기

nextstep에서 진행하는 DDD 과정

2024.04 ~ 2024.06

  • 레거시 프로젝트를 DDD로 점진적 리팩터링하는 경험
  • 도메인에 대해 깊이 이해하고 도메인 주도 설계를 경험
  • DDD에 대한 지식과 이벤트 스토밍부터 이벤트 소싱, CQRS, 코드리뷰 스킬 등 다양한 개발 스킬을 경험

TDD with Java

nextstep에서 진행하는 TDD 과정

2023.09 ~ 2023.11

  • 테스트 기반으로 리팩토링을 통해 클린 코드를 경험하는 과정
  • 테스트 코드의 장점과 테스트 주도 개발의 장점을 경험
  • 클린코드의 필요성과 리팩토링의 방법 등을 학습

F-LAB

Back-End 멘토링 과정

2023.02 ~ 2023.08

  • Back-end 시니어 개발자와 함께하는 백엔드 멘토링 과정
  • 실무에서 경험하는 다양한 문제 해결과정을 경험
  • 내부적으로 진행되는 다양한 해커톤에 참여

클라우드 AWS 구축/운영

시나리오형 기반 클라우드 환경 활용 과정

2022.10 ~ 2022.12

  • 클라우드 환경 구축 및 운영을 경험
  • AWS EC2, EKS, CloudFormation, CloudWatch, IAM 등을 경험

교육

HYCU

컴퓨터공학과

2016.03 ~ 2023.02 (졸업)

  • 컴퓨터공학과
  • 리눅스, DB, 소프트웨어 공학 등의 분야를 학습

KH education

스프링 웹 기반 교육과정

2022.02 ~ 2022.08

  • Spring 기반의 웹 개발 교육과정

병역

대한민국 공군

병장 만기전역

2018.09 ~ 2020.07