
미리보기
- 직업
- 백엔드 개발자
- 이름
- 김영현
- 이메일
- seaweed.0chord@gmail.com
- 간단소개
- 주어진 환경에서 최고의 퍼포먼스를 도출하기 위해 노력하는 개발자, 김영현입니다.
자기소개
- 자기소개
[함께 성장하고 원활하게 소통하는 문화를 중시합니다]
사내 깃 브랜치 전략을 직접 구성해 문서화하고, 이를 발표하여 팀원들의 작업 효율을 높였습니다.
네이버 부스트캠프에서 Node.js Event Loop 관련 발표를 진행하며, 기술 지식을 동료들과 적극적으로 공유했습니다.
경력
- 회사명
- 주식회사게임듀오
- 직책 • 부서
- Server Developer • Dev Team
- 근무 기간 (근무 형태)
- 2025.01. - 재직 중
- (5개월 | 정규직)
- 담당 업무
배포 속도 개선 (King받는겜)
문제 정의
AWS Elastic Beanstalk를 사용하여 sandbox 서버에 배포할 때, 실제 live 서버보다 배포 시간이 더 오래 걸리는 문제가 발생했습니다. sandbox 서버 배포에 평균 16~20분이 소요되어 긴급 테스트 및 일반 테스트에 애로사항이 발생했으며 개발 효율성을 저하시켰습니다. sandbox 서버가 무중단 배포(Immutable)로 설정된 반면, 실제 더 중요한 live 서버가 중단 배포 방식으로 구성된 점에서 설정상의 문제점과 의문점을 발견했습니다.
문제 해결 과정
빌드 캐시 도입
S3 버킷을 활용해 빌드 캐시를 저장한 뒤, 캐시를 다운로드하여 의존성을 주입하는 방식을 사용
이 방식을 시도했지만, 유의미한 개선은 발견하지 못했습니다
배포 방식 변경
sandbox 서버의 Immutable(무중단 배포) 설정이 불필요하다고 판단하여 일반 배포 방식으로 전환하여 배포 속도를 개선했습니다
기존에 중단 배포로 설정된 live 서버가 더 중요하다고 판단하여 live 서버를 무중단 배포(Immutable)로 전환하여 서비스 안정성을 확보했습니다
결과
sandbox 서버의 평균 배포 시간이 기존 17분에서 약 11분으로 단축되어 긴급 테스트 및 일반적인 테스트가 원할하게 진행되었습니다
live 서버는 무중단 배포로 변경하여 다운타임을 없애 서비스 안정성 및 신뢰성을 향상시켰습니다
전체적인 배포 프로세스 효율성이 개선되어 개발자의 작업 생산성이 증대되었습니다
평균 Latency 개선 (고양이 광산 & King받는겜)
문제 정의
고양이 광산은 신규 이벤트로 인한 유저 유입과 증가된 요청량으로 평균 Latency가 기존 170ms에서 220ms로 증가하여 성능 저하가 발생했습니다.
King받는겜은 글로벌 런칭으로 인한 트래픽 증가로 평균 Latency가 기존 150ms에서 200ms로 증가하여 서비스 품질이 저하되었습니다.
문제 해결 과정
DataDog 모니터링 도구를 통해 Slow API 및 요청량이 많은 API를 식별하고, 개선이 필요한 부분을 명확히 정의했습니다
데이터베이스 쿼리의 실행 계획을 분석하여 비효율적인 쿼리를 식별하고, 인덱스(Index)를 추가하여 조회 성능을 개선했습니다
자주 접근하는 Static Data를 S3에 등록할 때, Lambda를 통해 Redis에 캐싱하여 S3 접근 횟수를 줄이고 처리 속도를 높였습니다
결과
현재 평균 Latency에서 의미있는 감소를 이뤄냈지만, 불필요한 API 호출 등의 문제를 더 해결해야 하는 상황입니다
서버 자동 통합 및 이벤트 자동화 (King받는겜)
문제 정의
King받는겜에서는 언어와 인원수에 따라 서버를 나누어 관리하고 있었는데, 일부 서버의 활성 유저 수가 적어져 게임 내 경쟁 및 재미가 반감되는 문제가 발생했습니다.
주기적으로 반복되는 서버별 이벤트를 PM이 매번 직접 S3에 이벤트의 시작 및 종료 시간을 등록해야 했으며, 이는 수동 작업으로 비효율적이고 휴먼 에러 발생 가능성도 높았습니다.
문제 해결 과정
서버 통합의 경우, 기존에는 어드민 페이지를 통해 수동으로만 가능했지만, 서버 인원수를 주기적으로 체크하는 배치 처리를 구현하여 두 서버의 합산 인원이 500명 미만인 경우 자동으로 통합하도록 시스템을 개선했습니다.
이벤트 관리 자동화를 위해, 일주일 단위의 이벤트 데이터를 기준으로 서버에서 자동으로 배치 처리를 진행하여 이벤트를 등록하도록 구현했습니다.
다중 서버 환경에서의 배치 작업의 동시성 문제를 예방하기 위해 Redis의 분산 락을 활용하여 안정성을 확보했습니다.
결과
기존의 불필요한 수동 작업을 자동화하여 휴먼 에러를 방지하였고, 업무 효율성과 작업 생산성을 크게 개선할 수 있었습니다.
서버 비용 최적화를 통한 효율성 개선 (고양이광산)
문제 정의
AWS 오토스케일링 설정으로 인해 평균 CPU 사용량 대비 인스턴스가 과도하게 운영되고 있었습니다.
23:30~01:00 시간대에 인스턴스를 25대에서 60대로 확장하도록 설정되어 있었으나, 실제 트래픽은 평시보다 70% 증가에 불과했으며, CPU 사용량은 평균 15~17%로 유휴 리소스가 과다했습니다.
평시 CPU 사용량도 11~13%로 유휴 리소스가 과다했습니다.
문제 해결 과정
오토스케일링 서버 대수를 60대에서 40대로 축소 후 CPU 사용량 23% 확인했습니다.
평시 서버 대수를 25대에서 20대 그리고 17대로 단계적 축소를 진행하며 각 단계별로 일주일간 모니터링을 수행했습니다.
결과
비용 절감: 인스턴스 수를 32% 정도 절약하여 월간 AWS 비용을 대폭 감소시켰습니다.
성능 유지: CPU 사용량이 23~26%로 안정화되었으며, Latency는 기존과 같이 서비스 품질을 유지했습니다.
지속적인 모니터링: 주기적인 트래픽 패턴 분석을 통해 추가 최적화 기회를 발굴 중입니다.
기술스택 : Nest.JS, TypeORM, Redis, MySQL, AWS
[고양이 광산 & King받는겜] – 서버 운영 및 신규 이벤트/서비스 개발 담당
프로젝트
- 프로젝트명
- 화상채팅 마피아 게임, 마피아캠프
- 소속/기관명
- 네이버 부스트캠프 마피아캠퍼팀
- 프로젝트 기간
- 2024.10. - 2024.12.
- (3개월)
- 프로젝트 설명
팀 구성: 프론트엔드 1명, 백엔드 3명 (총 4인 협업)
개요: 화상·텍스트 채팅을 통해 실시간 마피아 게임을 즐길 수 있는 웹 애플리케이션
기술 스택: TypeScript, Nest.js, TypeORM, Jest, Docker, GitHub Actions 등
비즈니스 로직 구현: 전체 백엔드 PR 66건 중 36건 기여
실시간 게임 시스템: WebSocket과 RxJS를 활용해 직업 할당, 페이즈 관리, 투표 등 핵심 로직을 구축하여 다중 사용자 간 게임 상태를 실시간 동기화
동시성 이슈 해결: async-mutex 기반 LockManager 자료구조를 직접 구현해 투표 및 능력 사용 시 데이터 정합성 보장
인프라 및 안정성 강화:
Custom Exception과 Exception Filter로 일관된 에러 응답 포맷 구현
Kakao OAuth와 Custom Guard로 안전한 인증/인가 체계 수립
자동화된 테스트 코드(Jest) 작성으로 시스템 안정성 확보
테스트 및 배포:
알파/베타 테스트에서 발생할 수 있는 예외 상황을 사전에 식별·보완, 유저 친화적 인터페이스 구성
Docker, GitHub Actions, NCloud를 통해 CI/CD 파이프라인 및 인프라(NCloud VPC 3계층 아키텍처) 구축
프로젝트 내용
주요 역할 및 성과
- 프로젝트명
- 우리들의 소통 플랫폼, 하모니
- 소속/기관명
- 스마일게이트 데브캠프 리멤버팀
- 프로젝트 기간
- 2023.12. - 2024.06.
- (7개월)
- 프로젝트 설명
팀 구성: 4인 백엔드 팀
프로젝트 목표: 커뮤니티, 1대1 채팅, 음성·화상 채팅 등 다양한 소통 기능을 제공하는 디스코드(Discord) 클론 SNS 서비스 구축
기술 스택: Java, Spring Boot, JPA, JUnit, Docker
팀장 & DevOps 담당: 커뮤니티 서비스 및 로그 서비스 개발 주도, 전체 아키텍처 설계 및 운영 인프라 구성
MSA 설계 및 구현:
서비스 분리를 통한 독립적 배포 및 확장성 확보, 경계 설정 명확화
트랜잭션 범위 최적화:
강한 일관성이 필요한 작업과 결과적 일관성이 충분한 작업을 구분해 트랜잭션을 효율적으로 분리, 시스템 안정성·성능 동시 확보
CI/CD & 클라우드 인프라:
Docker 컨테이너화, Jenkins 기반 CI/CD 파이프라인을 GCP 환경에 구축해 개발·운영 환경 일관성 확보
확장성 높은 인프라 설계를 통해 향후 트래픽 증가에도 대응 가능한 구조 마련
프로젝트 개요
프로젝트 역할
기술 스택
- 기술 스택
- Java
- Spring Boot
- JPA
- JUnit
- JavaScript
- TypeScript
- Node.js
- NestJS
- MySQL
- Docker
대외활동
- 활동명
- 부스트캠프 9기 멤버십
- 소속/기관
- 네이버 커넥트
- 활동 연도
- 2024
- 활동 상세 설명
TypeScript 기반의 FrontEnd와 BackEnd 풀스택 개발 학습 및 구현
Template Engine과 Node.js를 사용하여 웹 애플리케이션 개발
TypeScript를 통해 TypeSafe하고 객체지향적인 코드를 작성하여 확장 가능한 설계 구축
- 활동명
- 부스트캠프 9기 챌린지
- 소속/기관
- 네이버 커넥트
- 활동 연도
- 2024
- 활동 상세 설명
데이터 구조, 알고리즘, 네트워크 등 주요 CS 개념 심화 학습 및 JavaScript 기반으로 미션을 구현
페어 프로그래밍, 피어 세션 등 다양한 캠퍼들과 함께 커뮤니케이션을 진행하며 커뮤니케이션 능력을 증진
- 활동명
- 2023 데브캠프
- 소속/기관
- 스마일게이트
- 활동 연도
- 2023
- 활동 상세 설명
약 1개월 간 인증 시스템 설계 및 구현하여 인증 시스템의 흐름 이해하는 개인 프로젝트를 진행
약 2개월 간 백엔드 4명으로 팀을 구성하여 소통 커뮤니티 하모니 팀 프로젝트 진행
자격증
- 자격증명
- 정보처리기사
- 점수/급 | 발급 기관
- 자격증 | 한국산업인력공단
- 취득월
- 2024.12
교육
- 소속/기관
- NEXTSTEP
- 종류 | 전공명/전공계열
- 사설 교육 | 도메인 주도 설계의 사실과 오해 수료
- 재학 기간 (재학 상태)
- 2024.04. - 2024.04. (졸업)
- 소속/기관
- 충북대학교
- 종류 | 전공명/전공계열
- 대학교(학사) | 정보통신공학부 전공/IoT융합 다전공
- 재학 기간 (재학 상태)
- 2018.03. - 2025.02. (졸업)