채용공고 올리기

김승환님을 응원해보세요!

이직/구직 중이에요
책임감
열정적
참을성

미리보기

기본 정보

이름
김승환
직업
백엔드 개발자
이메일
qaws789789@gmail.com
간단 소개

저는 요구 사항 구현과 아키텍처 설계 사이의 균형을 중요하게 생각하는 개발자입니다. 프로젝트를 진행하면서 기능을 빠르게 구현하는 데 집중하면 설계를 충분히 고민하지 못해 코드가 점점 복잡해지고 유지보수가 어려워지는 문제를 겪었습니다. 반대로, 설계에 지나치게 몰두하면 개발 시작이 늦어져 기한 내에 기능을 완성하지 못하는 상황도 발생했습니다. 이러한 경험을 통해 저는 기한 내에 완성할 수 있을 정도의 설계를 우선적으로 진행하고, 기능 구현 이후에도 꾸준히 리팩토링을 이어가는 것이 가장 효율적인 접근이라는 결론에 도달했습니다. 결국 구현과 설계에 투자하는 시간은 적절히 타협되어야 하며, 이러한 균형이 프로젝트의 완성도와 효율성을 높인다고 생각합니다. 앞으로도 이 균형을 유지하기 위해 지속적으로 학습하고 경험을 쌓으며, 개인의 역량을 강화하는 동시에 팀과 조직에 실질적인 가치를 제공하는 개발자로 성장해 나가겠습니다.

기술 스택

기술 스택

Java, Spring Boot, querydsl, JPA, MySQL, Redis, MongoDB, aws-ec2, aws-rds, aws-s3

교육

소속/기관명

순천향대학교

종류 | 전공

대학교(학사) | 정보보호학과

재학 기간 | 재학 상태

2019.03. ~ 2025.02. | 졸업

프로젝트

프로젝트명

수능 문제 마켓 플랫폼 - 개인 프로젝트

소속/기관명

개인

프로젝트 기간

2024.08. ~ 진행 중

프로젝트 내용

프로젝트 개요

본 프로젝트는 고등학교 수학, 생명과학, 지구과학, 화학, 물리 문제를 크리에이터가 직접 제작하고 판매할 수 있는 교육 콘텐츠 마켓플레이스입니다.

사용자는 포인트를 이용해 원하는 문제를 구매할 수 있으며, 포인트는 현금 결제를 통해 충전하는 방식으로 운영됩니다.

정교한 결제 시스템을 구축하는 것을 목표로 두고 있습니다.

기술적 도전 및 구현 사항

  1. MongoDB 조회 성능 최적화

    • 프로파일링Query Explain을 통한 병목 지점 추적

    • 복합 인덱스를 활용해 불필요한 Sort 단계 제거 및 성능 개선

    • Spring Data Mongo의 기본 매핑 Converter에서 병목 현상을 확인 후 Custom Converter로 개선.

    • TPS 1937 -> 3900

    • 관련 포스팅

  2. MongoDB를 활용한 조회용 모델 설계

    • 초기 설계

      • 결제 내역 조회 시 8개 테이블 조인을 포함한 복잡한 Querydsl 코드 사용

    • 개선점

      • 결제 내역 데이터를 문서형 모델로 전환하여 Mongo DB에 저장.

      • 조회 시 단순한 쿼리만으로 데이터를 조회할 수 있게 됨.

      • 관련 포스팅

  3. 리뷰 평점 통계 성능 개선

    • 초기 설계

      • API 요청 시 마다 DB의 SUM, COUNT 함수를 사용하여 리뷰 평점 통계를 계산하였으나, 데이터 증가에 따른 성능 저하 발생

    • 개선점

      • 리뷰 평점 통계 데이터를 별도 테이블에 저장

      • 리뷰 생성, 수정, 삭제 시 마다 간단한 로직으로 통계 데이터를 계산 후 업데이트

      • 리뷰 평점 조회 API는 리뷰 데이터 증가에 영향을 받지 않게 됨.

      • 관련 포스팅

  4. 결제 프로세스 설계 및 개선

    • 초기 설계

      • 결제 안정성을 보장하기 위해 결제 관련 메서드를 단일 트랜잭션으로 처리

    • 개선점

      • 외부 API 요청과 트랜잭션 분리

      • 결제 프로세스를 단계별로 나누고, 예외 처리 로직을 강화하여 효율성과 안정성을 동시에 확보

      • 관련 포스팅

  5. 메시지 발행을 통한 결제 취소 처리(예외 처리) 보장

    • 문제점

      • 결제 도중 예외가 발생한 경우 결제 취소 처리 및 롤백이 수행 됨.


        하지만 예외 처리 도중에 예외가 발생하여 롤백 처리가 완료되지 않은 채 끝날 수 있음.

    • 해결방안

      • 메시지 브로커는 메시지가 정상적으로 소비 될 때 까지 유실되지 않는 다는 점을 이용하여
        예외가 발생한다면 결제 실패 메시지를 발행하여 결제 취소 처리를 보장할 수 있도록 함

      • 관련 포스팅

프로젝트명

PSAT 인터넷 강의 플랫폼 - 아웃소싱 프로젝트

소속/기관명

개인

프로젝트 기간

2022.07. ~ 2022.11.

프로젝트 내용

프로젝트 개요

PSAT(공직적격성평가) 인터넷 강의 플랫폼 프로젝트에 백엔드 개발자로 참여했습니다.

주요 성과

  1. 결제 시스템 설계

    • 결제 솔루션 Portone을 사용하여 Webhook 수신 시 애플리케이션 내부에서 결제 처리, 강의 시청 권한 부여, 교재 배송 준비와 같은 후속 작업을 자동화했습니다.

  2. 쿠폰 중복 등록 방지

    • 쿠폰 등록 과정에서 발생할 수 있는 동시성 이슈를 해결하기 위해 Lock 대신 DB unique key(userId + couponId)를 활용하였습니다.

    • 데이터베이스 수준에서 중복 등록을 방지하여 성능 저하 없이 안정성을 확보했습니다.

  3. 정기 결제 구현

    • 결제 솔루션 Portone을 사용해 빌링키 발급 및 예약 결제를 처리하여 30일 주기의 정기 결제 기능을 구현했습니다.

    • 발급된 빌링키는 DB에 저장하며, 이를 통해 구독 취소 및 환불 요청을 효율적으로 처리할 수 있도록 설계했습니다.

  4. Batch Update를 통한 운송장 상태 변경

    • 기존 수동 운송장 입력의 한계를 극복하기 위해 CSV 파일 업로드 방식을 도입하였습니다.

    • 업로드된 csv 파일을 파싱하여 결제 번호와 운송장 번호를 매핑하고, jdbcTemplate의 batchUpdate를 사용하여 운송장 상태를 일괄적으로 업데이트했습니다.

    • 이 방식은 판매량 증가에 따라 작업 효율을 대폭 개선했습니다.

프로젝트명

폐기물 수거 서비스 - 아웃소싱 프로젝트

소속/기관명

개인

프로젝트 기간

2023.10. ~ 2024.02.

프로젝트 내용

프로젝트 개요

소상공인을 대상으로 식당 및 가게에서 발생하는 폐기물을 수거하고, 이를 통해 리워드를 제공하는 앱 플랫폼의 백엔드 개발자로 참여했습니다.

  • 주요 기능: 소상공인과 수거기사를 매칭하는 시스템.

  • 소상공인은 폐기물 수거량에 따라 리워드를 받고, 리워드로 다양한 물건을 구매할 수 있는 상점 기능을 제공합니다.

주요 성과

  1. 소상공인과 수거기사 매칭 기능 설계

    • 소상공인의 수거 요청과 수거기사의 승인 요청을 연결하는 비즈니스 로직을 설계하였습니다.

  2. APP Push 알림 기능

    • 수거 상태 변경 시 소상공인에게 알림을 전송하기 위해 Firebase FCM을 활용한 APP Push 알림 기능을 구현하였습니다.

  3. 관리자 백오피스 API 개발

    • 소상공인 및 수거기사 정보 조회, 서비스 통계 및 정산, 리워드 상점 관리 API를 개발하였습니다.

  4. 소상공인 리워드 상점

    • 카카오 선물하기(Kakao Biz) API를 연동하여 소상공인이 리워드 포인트로 기프티콘을 구매하고 전송받을 수 있는 기능을 구현하였습니다.

    • 구매 과정에서 발생할 수 있는 리워드 포인트 차감 및 상품 재고 관리 동시성 이슈를 방지하기 위해 DB의 비관적 락(Pessimistic Lock)을 활용하였습니다.

포트폴리오

URL

link

수능 문제 마켓 플랫폼 - 개인프로젝트 Github Repository

깃허브

대외활동

활동명

순천향대학교 정보보호학과 학술동아리 SecurityFirst

소속/기관명

SecurityFirst

연도

2019

내용

순천향대학교 정보보호학과 학술동아리 SecurityFirst

2019.06.~ 2020.12 : 리버싱 엔지니어링 팀원 활동
2021.03 ~ 2021.12 : 개발팀장 활동
- 2021.04 ~ 2021.06 : 순천향대학교 청소년 정보보호 페스티벌 (YISF) 웹 사이트 개발
- 2021.11 ~ 2021.12: 교내 보안 대회 웹 사이트 개발

자기소개

자기소개

댓글