권형민 Portfolio

Career

  • 2025.06 ~ 2025.11 인피니쇼 대리
    • 비엠스마일 법인 분리회사로서 시스템 유지보수 전반
    • 카페24 정기배송 확장 시스템 개발
  • 2023.10 ~ 2025.06: 비엠스마일 대리
    • 고양이 모래 전문 쇼핑몰 미우타임즈 신규버전 출시
    • 반려동물 iot 연동 앱 페스룸 케어 개발
    • 카페24 상품 상세페이지 에디터 개발
  • 2021.06 ~ 2023.10: 에브리바이크
    • 공유 자전거 시스템 백엔드 개발
    • 이벤트 웹뷰 페이지 제작
    • 앱 개발
  • 이하 생략

주요 프로젝트

미우타임즈 신규버전 런칭

2024.01 ~ 2024.05

php 기반 쇼핑몰을 nestjs 기반으로 이전

  • PHP 기반 쇼핑몰을 NestJS + Next.js로 전면 재작성하여 성능과 유지보수성을 향상
    • 촉박한 일정에서 빠른 개발을 위해 Typescript 기반 기술 스택(NestJS/Next.js) 을 선택
    • 백엔드와 프론트엔드 모두 Typescript를 사용함으로써 언어 컨텍스트 스위치 비용을 최소화하고 개발 생산성 향상
  • 적립금 적립 사용 환불 만료 기능 개발
    • 적립금 시스템에서 발급·사용·환불·만료 등 다양한 상태 변화를 관리하기 위해 부모-자식 구조의 모델을 설계
    • 발급 레코드를 부모 row로 두고, 사용/환불/취소 시 자식 row로 기록하는 구조를 적용하여 이력 추적 및 무결성 보장
    • 만료일자를 부모 단위로 관리하고, 사용 시점에 “현재 시점 유효한 발급 레코드”를 선입선출(FIFO) 방식으로 조회하여 정확한 차감 로직 구현
  • sns 회원 가입 기능 개발
  • 크리마 리뷰 연동 및 기존 쇼핑몰에 등록된 리뷰 마이그레이션

상품 상세페이지 제작 프로세스 개선

2024.11 ~ 2025.09

이미지와 비디오를 업로드하면 html로 변환해주는 백오피스 제공

  • 백오피스 제작 배경은 gif로 올라간 상품 상세 페이지 로딩속도 개선작업
    • gif를 ffmpeg로 비디오로 전환하여 로딩속도를 대폭 개선 (2024년 11월)
    • 그러나 비디오 화질이 좋지 못한 문제점과
    • 상세페이지 담당 부서가 프로세스를 어려워하는 문제가 있었음.
  • gif를 변환하지 말고 원본 영상을 인코딩하여 올리자는 의견이 나옴
  • 이미지와 비디오를 업로드하면 이를 s3에 업로드하고 링크된 이미지 비디오 태그가 포함된 html 문서로 만드는 툴 개발 (2025년 2월)
  • 원활한 시스템 개선 및 버그 수정을 위해 무중단 배포기능 추가 (3월)
    • docker compose와 nginx를 사용하여 서버1,2 순차적으로 배포하는 롤링 배포방식
    • 비디오 인코딩 작업중 종료 시그널 받을 시 서버만 닫고 비디오 작업은 마무리하고 종료
  • 9월 시스템 장애 발생. 비디오 인코딩이 완료되지 않음
    • 한번에 여러건의 비디오를 등록시 각 요청을 병렬처리하다가 인코딩 과부화로 서버 다운되는것이 원인으로 추정
    • 비디오 인코딩을 한 건씩 진행해보고 장애 없이 처리됨을 확인
    • rabbitmq를 추가하고 인코딩 작업은 한번에 한개씩만 처리하도록 수정

공유 자전거 반납 어뷰징 방지

2023.08 ~ 2025.08

정책을 악용하여 반납 불가지역 페널티를 무효화하는 어뷰징 방지

  • 3분 무료 정책이 있음. 운행이 3분 이내에 종료시
    • 비용청구 없음
    • 비주차구역 반납페널티 면제
    • 이는 고장난 자전거 환불 절차를 간소화하기 위한 정책
  • 비주차구역 반납 페널티는 1시간 유예기간동안 운행이 시작되면 해소됨
    • 페널티에 대한 책임은 새로운 운행자에게 부여
  • 정책에 따라 유저는 비주차구역에 반납하고 운행을 다시 시작한 뒤 즉시 종료함으로 페널티를 면제받을 수 있었음
  • 3분 운행시 이전 운행자를 확인하고 해당 자전거로 페널티가 예약된 경우 페널티 면제 하지 않도록 수정하여 어뷰징 방지