미리보기
기본 정보

자기소개
[함께 성장과 커뮤니케이션 능력을 중요하게 생각합니다.]
[기본기를 위해 끊임없이 고민합니다.]
[확장이 가능한 코드를 작성하기 위해 노력합니다.]
경력
주식회사게임듀오
Server Developer | Dev Team | 재직 중
2025.01. ~ 재직 중 (2개월)
[Glider Start-Kit]
전사 게임 쿠폰 시스템 개발 및 동시성/분산 처리 최적화
쿠폰 사용 로직 구현
전사 게임 내 유저가 쿠폰을 발급, 사용, 관리할 수 있는 통합 쿠폰 시스템을 NestJS/TypeScript 기반으로 설계 및 구현
쿠폰 사용 로직에서 동시성 및 분산 환경에서 발생할 수 있는 경쟁 조건(race condition)과 데이터 정합성 이슈를 해결하기 위해, 다양한 기법을 적용
동시성/분산 처리 기법 비교 및 적용
Redis Lua Script, Sorted Set, Watch + Transaction, 분산 락 + Transaction, MySQL E-lock 등 여러 기법에 대해 각각의 구현체를 개발하고, 성능 및 안정성을 비교 분석하여 최적의 솔루션을 도출
이벤트 처리 및 Transactional Outbox Pattern
쿠폰 사용 시 발생하는 이벤트를 분리하여 비동기적으로 처리하고, Transactional Outbox Pattern을 도입해 이벤트 유실 가능성이 있는 데이터를 보장
Outbox에 저장된 이벤트 데이터의 정합성을 확보하기 위해 배치 작업을 구현, Redis에 저장된 데이터를 주기적으로 RDBMS와 동기화하는 시스템을 구축
[고양이 광산] & [King받는겜] – 게임 서버 유지 보수 및 신규 이벤트/서비스 개발 담당
게임 서버 안정화 및 신규 서비스 개발
서버 모니터링, 장애 대응, 성능 최적화 작업을 통해 안정적인 게임 서버 운영을 보장하고, 사용자 경험 개선 및 게임 내 경제 활성화를 위한 신규 이벤트 및 서비스 개발 주도
리플레이 서비스 성능 개선 (King받는겜)
기존 리플레이 서비스는 하나의 리플레이 처리를 위해 5개 이상의 API 호출과 복잡한 로직으로 인해 5초 이상의 실행 시간이 소요
자료구조와 로직을 재설계하고, API 호출 수를 5개에서 1개로 대폭 축소하는 개선 작업을 통해 전체 로직 실행 시간을 90% 이상 단축
프로젝트
화상채팅 마피아 게임, 마피아캠프
네이버 부스트캠프 마피아캠퍼팀
2024.10. ~ 2024.12.
프로젝트 내용
4인 팀(프론트엔드 1명, 백엔드 3명)으로 구성된 협업 프로젝트
화상채팅과 텍스트 채팅으로 소통과 게임을 할 수 있는 마피아 게임 프로젝트
TypeScript, Nest.js, TypeORM, Jest, Docker, GitHub Actions 기술 스택을 사용한 프로젝트
프로젝트 역할
마피아 게임의 핵심 비즈니스 로직 구현 (프로젝트 전체 백엔드 PR 36/66 기여)
WebSocket과 RxJs를 활용한 실시간 게임 시스템(직업 할당, 페이즈 관리, 투표)을 구축하여 다중 사용자 간 게임 상태 동기화 및 실시간 상호작용 구현
단일 서버 환경에서의 동시성 이슈 해결을 위해 async-mutex 기반의 LockManager 자료구조를 직접 구현하여 투표와 직업 능력 사용 시 데이터 정합성 보장
안정적인 서비스 운영을 위한 인프라 구축
Custom Exception과 Exception Filter로 일관된 에러 응답 포맷 구현
Kakao OAuth와 Custom Guard를 활용해 안전한 인증/인가 시스템 구현
시스템 안정성 확보를 위한 자동화된 테스트 코드 구현
게임 알파 테스트와 베타 테스트를 통해 게임에서 발생할 수 있는 예외 처리와 유저 친화적인 게임 구현
Docker, Github Action, NCloud를 활용해 서비스 인프라와 CI/CD 파이프라인 구축
Docker, GitHub Action, NCloud를 통한 인프라 및 CI/CD 파이프라인 구축 (NCloud VPC 기반 3계층 아키텍처 적용)
우리들의 소통 플랫폼, 하모니
스마일게이트 데브캠프 리멤버팀
2023.12. ~ 2024.06.
프로젝트 내용
4인으로 구성된 백엔드 팀으로 프로젝트 진행
커뮤니티, 1대1 채팅, 음성 채팅, 화상 채팅 등을 통해 소통을 도와주는 SNS 디스코드 클론 프로젝트
Java, Sprint Boot, JPA, Junit 기술스택을 사용한 프로젝트
프로젝트 역할
커뮤니티 서비스, 로그 서비스, DevOps, 팀장 담당
확장성과 유지보수성이 뛰어난 도메인 레이어를 설계하고 구현
도메인 모델 패턴을 적용하여 비즈니스 로직을 객체 내부로 캡슐화하고, 객체 간 책임과 협력을 명확히 정의해 높은 응집도와 낮은 결합도를 달성한 도메인 로직 구현
시스템 안정성 확보를 위한 테스트 코드 구현
492개의 단위/통합 테스트 코드 구현으로
테스트 유실, 시나리오 공유 어려움과 같은 동적 테스트의 한계를 극복했으며
코드 형태의 테스트를 통해 버전 관리와 팀 공유 용이성 확보
ERD 재설계와 쿼리 최적화로 데이터베이스 성능을 개선
불필요한 양방향 연관관계와 CQRS로 인한 중복 테이블을 제거하여 ERD 재설계
EXPLAIN 기반 쿼리 분석과 JPQL Bulk 연산을 활용하여 인덱스 최적화 및 N+1 문제를 해결해 데이터베이스 성능 개선
K6 테스트 도구를 활용한 성능 테스트를 통해 유의미한 개선 확인
강한 일관성이 필요한 작업과 결과적 일관성으로 충분한 작업을 식별하여 트랜잭션 범위를 최적화하여 시스템의 성능과 안정성 향상
EFK Stack으로 마이크로서비스 환경의 Observability 구현
운영 중 장애 발생 시 신속한 원인 파악을 위해 FluentD 기반 사이드카 패턴의 마이크로서비스 로깅 시스템과 실시간 에러 알림을 구축하여 장애 감지 시간을 단축하고 서비스 안정성 향상 기여
Docker 컨테이너 화와 Jenkins CI/CD 파이프라인을 GCP 클라우드 환경에 구축하여 개발-운영 환경 일관성 확보 및 인프라 확장성 향상
기술 스택
Java, Spring Boot, JPA, JUnit, JavaScript, TypeScript, Node.js, NestJS, MySQL, Docker
대외활동
부스트캠프 9기 멤버십
네이버 커넥트
TypeScript 기반의 FrontEnd와 BackEnd 풀스택 개발 학습 및 구현
Template Engine과 Node.js를 사용하여 웹 애플리케이션 개발
TypeScript를 통해 TypeSafe하고 객체지향적인 코드를 작성하여 확장 가능한 설계 구축
부스트캠프 9기 챌린지
네이버 커넥트
데이터 구조, 알고리즘, 네트워크 등 주요 CS 개념 심화 학습 및 JavaScript 기반으로 미션을 구현
페어 프로그래밍, 피어 세션 등 다양한 캠퍼들과 함께 커뮤니케이션을 진행하며 커뮤니케이션 능력을 증진
2023 데브캠프
스마일게이트
약 1개월 간 인증 시스템 설계 및 구현하여 인증 시스템의 흐름 이해하는 개인 프로젝트를 진행
약 2개월 간 백엔드 4명으로 팀을 구성하여 소통 커뮤니티 하모니 팀 프로젝트 진행
자격증
정보처리기사
한국산업인력공단
2024.12.
교육
NEXTSTEP
사설 교육 | 도메인 주도 설계의 사실과 오해 수료
2024.04. ~ 2024.04. | 졸업
충북대학교
대학교(학사) | 정보통신공학부 전공/IoT융합 다전공
2018.03. ~ 2025.02. | 졸업