미리보기
기본 정보

기술 스택
C++, MySQL, Redis, Kotlin, Spring Boot, JPA, Lua
경력
NHN
사원 | SP개발팀 | 재직 중
2021.11. ~ 재직 중 (3년 4개월)
한게임 모바일포커 서버 파트 컨텐츠 개발 및 유지보수를 담당하고 있습니다.
프로젝트
한게임 모바일포커 개발
NHN
2021.11. ~ 진행 중
주요 업무
C++, Lua 기반의 언어와 MySQL, Redis로 구성된 프로젝트 유지보수
성과
DB 부하 개선
길드 관련 데이터 로딩 최적화:
길드 데이터를 조회하는 쿼리에서 조인으로 인해 발생한 장기간 트랜잭션 문제를 해결.
조인 쿼리를 단일 쿼리로 분리하여 트랜잭션 시간을 단축함으로써 DB 성능 개선.
휴면 계정 데이터 배치 작업 최적화:
단순 조회 쿼리가 마스터 DB를 타겟으로 하는 문제를 슬레이브 DB로 전환하여 DB 부하를 줄이고 성능을 향상.
잭팟 머니 조회 시 DB 슬로우 개선:
단일 레코드에 대한 다수의 실시간 조회 및 수정 쿼리로 인한 병목 현상을 해결하기 위해 해당 데이터를 Redis로 이전하여 성능을 개선.
통계 시스템 개발
게임 전체 통계는 메모리에 일정 시간 저장 후 DB에 반영하는 방식으로 구현, DB 부하를 최소화.
모바일 포커 상점을 리뉴얼하며 관심상품(장바구니) 및 실시간 판매량 순위 노출 기능 개발.
Redis를 활용해 실시간 판매량 순위를 노출하여 DB 부담을 감소.
데드락 개선
구매 통계 서비스 데드락 해결
INSERT ... ON DUPLICATE KEY UPDATE 다중 쿼리의 동시 호출로 인한 데드락 문제를 MySQL의 네임드 락을 활용하여 해결, 다중 서버에서 동시 요청을 동기화.
서비스 콜백 함수 최적화
서버 부하 개선:
유저 동작 관련 이벤트 기반의 콜백 함수 호출이 서버 부하를 증가시키는 문제를 해결하기 위해 공통 도메인을 상위 계층 서비스로 묶고 하위 서비스를 모듈화하여 콜백 함수 호출 수를 줄임.
프로젝트 빌드 시간 최적화
Jenkins의 버전업 및 freestyle project에서 pipeline project로 전환
각 stage에서 병렬로 스크립트가 실행되도록 스크립트 작성
빌드 시간을 25분에서 15분으로 40% 단축
ReSNS
개인
프로젝트 설명
실시간 SNS BeReal 벤치마킹 사이드 프로젝트
기술 스택
Spring Boot, JPA, MySQL, Kotlin, Docker, Spring Rest Docs, Kotest
팀 구성
서버 1명(본인), 안드로이드 1명, IOS 1명
진행
각자 사정으로 인해 진행 도중 중지
성과
게시물 관련 CRUD RESTful API 개발
Spring Rest Docs로 API 명세서 및 테스트 코드 작성
이미지 스토리지 서버개발
많은 양의 이미지 데이터의 IO 때문에 성능 저하 발생 우려로 인해 개발
요청하는 이미지의 크기를 줄여 부하를 감소 시키기 위해 webp 압축 방식을 사용 -> 기존 이미지 크기에서 약 20배 축소
같은 이미지 반복 요청 수 감소 및 응답속도 개선을 위해 Nginx를 도입하여 리버스 프록시 서버로 사용
캐시에 저장된 이미지는 서버에서 다시 로드하지 않고 캐시에 있는 이미지를 반환
교육
아주대학교
대학교(학사) | 소프트웨어학과
2015.03. ~ 2021.02. | 졸업
대외활동
사내 개발 스터디
NHN
인원
본인 포함 입사 동기 4명
진행 방식
개발 관련 서적을 읽고 번갈아가면서 발표하면서 서로 토론
기간
2023 ~ 진행중
완료한 서적
가장 면접 사례로 배우는 대규모 시스템 설계 기초
Real MySQL 8.0