채용공고 올리기

김성민님을 응원해보세요!

지금 만족하고 있어요

미리보기

기본 정보

이름
김성민
직업
백엔드 개발자
간단 소개

기술 스택

기술 스택

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

연도

내용

인원

  1. 본인 포함 입사 동기 4명

진행 방식

  • 개발 관련 서적을 읽고 번갈아가면서 발표하면서 서로 토론

기간

  • 2023 ~ 진행중

완료한 서적

  • 가장 면접 사례로 배우는 대규모 시스템 설계 기초

  • Real MySQL 8.0

댓글