채용공고 올리기

최현우님을 응원해보세요!

지금 만족하고 있어요

미리보기

기본 정보

이름
최현우
직업
백엔드 개발자
간단 소개

안녕하세요! Java, Spring을 주력으로 사용하는 9개월 차 백엔드 개발자로, 현재 누적 회원 수 40만의 글로벌 게임 테스팅 서비스를 제공하는 시리즈 A 규모의 스타트업에서 근무하고 있습니다. 지속적으로 성장하기 위하여 꾸준하게 개인 공부를 하며, 공부한 내용은 언제든지 업무에 적용할 수 있도록 반드시 직접 적용해보거나 블로그에 정리하여 기록하고 있습니다.

기술 스택

기술 스택

Java, Spring, JPA, nginx, AWS, Github

경력

회사명

GXC

직급 | 부서 | 근무 유형

사원 | 백엔드 개발팀 | 재직 중

근무 기간

2023.11. ~ 재직 중 (11개월)

담당 업무

신규 서비스 xCBT 개발 2024.07 ~ 2024.09

유저들이 클로즈 베타 테스트에 참여하고, 참여 후 게임 랭킹을 통해 보상을 받을 수 있는 신규 서비스 개발

  • Client 전용 프로젝트 생성부터 배포까지 백엔드 개발 담당

  • Test Code 120개, Line Coverage 100%

  • 프론트엔드 개발자와 소통 비용 감소 목적으로, Spring RestDocs 활용 API 문서화

  • Composite 패턴을 활용한 OAuth2.0 인증 구현 (구글 / 트위터 / 디스코드)

스토어 상품 관련 테이블 구조 개선 및 데이터 이관 2024.04 ~ 2024.07

상품 종류 별 테이블 혼합으로 인하여 신규 기능 개발의 어려움을 해결하기 위하여 테이블 구조를 개선하고, 관련 데이터 이관 및 로직 수정 프로젝트

  • 5개의 상품 및 주문 관련 테이블, 로직 수정

  • Mysql dump를 통하여 로컬 환경에 데이터를 dump 한 뒤, 설계대로 작성한 DDL 스크립트 및 데이터 이관 SQL 실행 이후 개발 서버에 적용하여 QA 이후 이슈 없이 안전하게 배포

PG 연동 결제 서비스 개발 2024.02 ~ 2024.04

글로벌 PG사 Stripe를 연동하여 현금 결제를 통해 포인트를 구매할 수 있는 서비스 개발

  • 결제 완료 이벤트를 웹훅으로 받아 결제내역 저장 이후 별도의 쓰레드에서 10초간 5번의 재조회를 해도 조회가 되지 않는 버그 발생 → 트랜잭션 격리 수준이 Repeatable Read였기에 발생했던 문제로, 재조회 시 매번 새로운 트랜잭션에서 수행하도록 수정하여 해결 (자세히 보기)

스토어 / 포인트 레거시 개편 및 주문 안정화 2023.11 ~ 2024.02

외주를 통해 개발된 스토어 / 포인트 시스템의 코드 품질 개선 및 불안정한 주문 기능 안정화 프로젝트

[레거시 개편]

  • Mybatis로 개발 된 55개의 API JPA로 재개발

  • 에러 로그 모니터링의 어려움으로, Logback을 통해 로그를 Json으로 남기도록 하고, Filebeat + ELK를 활용하여 에러 로그 발생 시 슬랙 채널 알림 기능 개발

  • Controller에서 try-catch를 통하여 Error Response를 반환하는 방식에서 RestControllerAdvice를 통한 예외 처리로 변경하여 관리 포인트 최소화

  • 불필요 14개 의존성 및 5개 모듈 제거

[주문 안정화]

  • N+1 문제 해결 및 불필요 쿼리 발생 로직 개선을 통한 주문 API 수행 속도 개선 (30초 → 6초)

  • Race Condition으로 인한 상품의 재고 데이터가 실제 재고와 맞지 않았던 문제를 Pessimistic Lock을 활용하여 재고감소 로직 안정화

  • 다중 데이터 소스로 인한 여러 Transaction Manager를 Chained Transaction Manager를 통하여 하나로 묶어 트랜잭션 보장 처리

기타 업무

프로젝트

프로젝트명

JustShop

소속/기관명

개인

프로젝트 기간

2023.09. ~ 2023.11.

프로젝트 내용

MSA 학습 이후 학습한 내용을 실제로 적용해보기 위하여 진행한 쇼핑몰 API 서버 구현 개인 프로젝트

  • Spring Cloud Gateway 활용 인증/인가 처리

  • 동시성 이슈 방지를 위한 Pessimistic Lock 활용 재고 감소 구현

  • Docker 활용 서비스 아키텍처 구성 및 배포

  • 92개의 통합/단위 테스트코드 작성

  • Github Action + Jenkins 조합 CI/CD 파이프라인 구축

  • Kafka 활용 Event-Driven Architecture 구현

  • 분산 트랜잭션 처리 구현에 대한 고민을 Saga Pattern을 활용하여 실패 시 보상 트랜잭션을 실행하는 방향으로 해결

  • Spring RestDocs 활용 API 문서 작성

  • Prometheus + Grafana 조합 서버 매트릭 수집 및 모니터링 시스템 구축

포트폴리오

URL

link

https://clammy-darkness-d71.notion.site/1e5b908957334ea9afc67f0aaf5ad6e0?pvs=4

노션
댓글