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를 사용하여 무중단 배포 구현
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 구성 시 인터페이스 불일치 문제 해결
- 장애 분석/해결 과정을 체계적으로 문서화
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