포트폴리오로

지금 보시는 분량: 대표 작업 셋의 핵심. 인쇄 창이 열리면 대상을 PDF로 저장으로 바꿔 주세요. 크롬의 인쇄 미리보기에서 저장하면 문서 안의 주소와 프로젝트 이름이 눌리는 링크로 남습니다.

최승은Seungeun Choi

디자인부터 서버·배포까지 한 번씩 끝까지 해 본 프론트엔드 개발자

plumxeun@gmail.comgithub.com/xeunniexeunnie.github.io

요약

  • 브라우저에서 다루기 까다로운 것들을 반복해서 맡아 왔습니다. 폐쇄망 지하철의 WebRTC CCTV, LiveKit SFU 화상회의, WebSocket·SSE 실시간 동기화가 그런 일이었습니다.
  • 만든 것이 현장에서 매일 돌아갑니다. Three.js 3D 관제와 GPS 기반 골프장 운영 서비스를 개발했고, 현장에 배포한 뒤 그 자리에서 고치는 일까지 맡았습니다.
  • 화면 밖도 필요한 만큼 했습니다. React Native 앱을 처음 맡아 네이티브 설정·릴리스 서명·스토어 제출까지 마치고 출시 뒤에도 버그 수정을 이어 갔으며, 서버가 필요한 자리에서는 MSA 7개 서비스를 설계해 구현했습니다.
  • 함께 일하는 자리를 자주 맡았습니다. 프로젝트 팀장을 다섯 번 맡고 스터디 세 개를 운영했습니다. 백엔드도 알아서, 디자이너와 백엔드 사이에서 서로의 말을 잇고 각자 잘하는 일을 하도록 나눴습니다.
  • 왜 그렇게 했는지를 남깁니다. 되돌린 결정도 근거와 함께 적어 두고, 인수인계 전에는 구조와 판단 근거를 문서로 정리했습니다.
주로
React · TypeScript · Next.js
실시간
WebRTC · WebSocket · SSE
웹 밖
React Native · Three.js
서버도
Kotlin · Go · Spring Boot

기술

프론트엔드
ReactNext.jsTypeScriptVue.js
실시간 · 3D
WebRTCLiveKitWebSocketThree.jsWebGL
테스트
StorybookJestTesting LibraryCypressPlaywright
백엔드 · 인프라
Spring BootKotlinGoDockerKafkaRedis
언어
JavaScriptJava
프레임워크 · 라이브러리
SvelteZustandReact QueryReduxPinia
데이터베이스
MySQLPostgreSQLMongoDBMariaDBAmazon S3
배포 · 운영
KubernetesJenkinsHAProxyNginxGCP
모니터링
PrometheusGrafanaJMeterSentryCodecov

경력

플럭시티 · 클라우드팀

2025.11 — 현재 · 정규직

골프장에서 매일 쓰이는 서비스를 제품 단위로 맡고 있습니다. GPS 좌표를 코스맵 픽셀로 변환하고, 움직이는 카트 위에서도 정확히 동작하는 터치 UX를 설계했으며, F&B 제품 전반과 React Native 앱은 각각 혼자 맡아 스토어 제출까지 진행했습니다. 사설망 프린터, 망분리 단말, 스토어 심사처럼 브라우저 밖의 조건까지 고려해야 했습니다.

  • Vgolf 경기관제 태블릿 앱 — 500ms GPS 폴링 데이터를 Proj4로 코스맵 픽셀 좌표에 매핑, 홀 폴리곤 지오펜싱으로 진행 홀 자동 전환
  • 움직이는 카트 환경의 터치 UX — 진동·속도 변수를 고려해 useTap(30px 허용 임계값), Ghost Click 방지, 더블클릭 가드를 설계
  • VGOLF F&B 제품 전반 단독 개발 (10개월 · 520커밋) — 주문·관리자·주방 영수증 출력·매장 사이니지 서브시스템을 설계·구현
  • ESC/POS 열전사 프린팅 직접 구현 — 클라우드 정적배포 앱과 매장 사설망(192.168.x.x) 프린터가 닿지 못하는 구조를 로컬 에이전트 경유 raw TCP 브릿지로 해결

플럭시티 · DX 기술팀

2025.04 — 2025.11 · 정규직

3D·지도 기반 관제 SI의 프론트엔드를 맡았습니다. 그 전 1년간 부트캠프와 스터디에서 익힌 것을 실무에서 본격적으로 쓴 곳입니다. 폐쇄망 현장에서 WebRTC CCTV를 운영까지 올렸고, 탄천 악취 관제는 화면·수집 API·DB·배포까지 혼자 맡아 마무리했으며, 프로젝트마다 복사되던 컴포넌트와 API 호출을 모노레포 패키지로 옮겼습니다.

  • 3D 역사 관제 — 자체 엔진으로 GLTF 모델을 띄우고 층별 전환·POI·장치 상태를 하나의 실시간 관제 화면에 통합
  • 다중 CCTV 동시 스트리밍과 ICE 상태 기반 재연결 로직 구현
  • 부산 도시철도 통합 관제 — 협업처 관제 플랫폼 API 스펙에 맞춰 시설물 9종(조명·셔터·CCTV·화재감지·엘리베이터 등)과 제어 인터페이스를 타입으로 고정해 연결
  • WebRTC CCTV — RTCPeerConnection recvonly 트랜시버로 게이트웨이와 SDP를 교환해 RTSP 카메라를 브라우저에서 재생, 현장 운영 적용

웹비즈 크리에이티브

2023.11 — 2024.02 · 정규직

공공기관 SI를 맡았습니다. 디자인 시안부터 반응형 퍼블리싱, PHP 연동까지 혼자 진행하는 일이었고, 6개 기관 약 200페이지를 일정에 맞춰 넘겼습니다. 쓸 수 있는 기술은 제한적이었지만 마감과 접근성 기준을 지키는 법을 익혔습니다.

  • 공공기관 SI 전 과정 — 디자인 시안, 반응형 퍼블리싱, PHP 템플릿 연동까지 한 사람이 담당
  • 리픽 — Vue.js + TypeScript 컴포넌트 설계, Pinia 상태 관리, Storybook UI 문서화로 디자이너·백엔드와 맞춰 볼 기준을 정리
  • 인천교육청 교육이음 — XD 기반 교육 플랫폼 UI/UX 디자인 + 반응형 퍼블리싱을 맡아 수행
  • 공공기관 6개 사이트 약 200페이지 — 이민재단(60) · 싸템(69) · 양구수목원(43) · 사회보장정보원(18) 등의 마크업을 전량 단독 수행

스탬퍼 (Cosmostation)

2022.09 — 2022.12 · 인턴

블록체인 생태계에서 React·TypeScript를 실무에 적용한 첫 현장입니다. 티켓 단위로 기능을 맡아 신규 체인 추가와 토큰 검색 페이지를 만들었고, 같은 기능을 리뷰 코멘트에 따라 여러 번 다시 올리며 '동작하는 코드'와 '리뷰를 통과하는 코드'의 차이를 배웠습니다.

  • Kujira 체인 추가 — 체인 상수·심볼 에셋·체인 목록 등록까지 신규 체인 온보딩 전 과정을 티켓 단위로 담당
  • ERC20·CW20 토큰 검색 페이지 제작 — 특정 체인 전용이던 CW20 검색을 전 체인 지원으로 확장
  • 검색 입력 디바운스 처리 — 입력마다 발생하던 조회를 줄이고, 직접 만든 로직을 공통 useDebounce 훅으로 정리
  • 리뷰 반영 반복 — 조건 판단 단순화, 불필요한 로그·주석 제거, 스타일 정리를 코멘트에 따라 여러 차례 다시 올림

아주대학교 커뮤니케이션팀

2021.08 — 2022.03 · 인턴

비개발 조직의 유일한 개발 담당이라 문제를 혼자 찾아 해결해야 했습니다. 직접 디자인해 올린 팝업의 반응을 Google Analytics로 확인하며, 만든 결과를 데이터로 확인하는 습관이 생겼습니다.

  • 교내 공식 웹사이트 유지보수 — 중복된 HTML 구조를 통합하고, CSS 네이밍 체계를 정리해 유지보수성 확보
  • 팝업 UI 직접 디자인·구현 후 Google Analytics로 반응 확인 — 코드가 사용자 행동에 미치는 영향을 체감
  • 레거시 리팩토링 — 불필요한 JS 로직 제거로 페이지 로딩 속도 개선 및 런타임 오류 감소
  • 계약 종료 후에도 외주 형태로 유지보수를 이어서 담당

대표 프로젝트

부산 도시철도 통합 관제 — 3D 역사 관제 + WebRTC CCTV 실시간 스트리밍

플럭시티 · 2025.05 — 2025.09

협업처 플랫폼 API 스펙에 맞춰 시설물 9종을 연결하고, WebRTC로 현장 CCTV를 붙여 실제 운영에 올린 도시철도 관제 화면

  • 협업처가 어떻게 구현했는지 알 수 없는 상태에서, 가능한 연결 방식을 미리 다 준비해 가서 현장에서 하나씩 붙여 보며 맞는 것을 찾아냄
  • WebRTC CCTV 연결 — RTCPeerConnection recvonly 트랜시버로 게이트웨이와 SDP를 교환해 RTSP 카메라를 브라우저에서 재생, 현장 운영 적용
  • ICE 상태 감시 + 스트림 정리 — failed/disconnected 시 연결을 닫고, 트랙 stop·srcObject 해제 후 재연결하는 경로를 분리
  • 협업처 플랫폼 API 스펙 기반 연결 — 조명·셔터·CCTV·화재감지·엘리베이터·에스컬레이터·물탱크·집수정·공기청정기 9종 + 역사 환경정보·이벤트 현황·제어 요청을 타입으로 고정
  • 서로 다른 두 백엔드를 한 화면에서 — 협업처 관제 플랫폼과 자사 API를 클라이언트 레벨에서 분리해 호출
ReactTypeScriptViteThree.jsWebGLWebRTCSSEZustandkyTailwind CSSpnpm

VGOLF 앱 — 골프 라운드 기록 모바일 앱 (iOS · Android)

플럭시티 · 2026.06 — 2026.09

React Native 앱을 개발부터 스토어 제출까지 — 555커밋, zod 2층 계약 테스트로 무증상 데이터 오류를 화면 반영 전에 검출

  • React Native 앱 — 555커밋, 화면 21개, 16.5k LOC, iOS·Android 동시 대응
  • FSD 5레이어 + 세그먼트 구조 — 슬라이스 공개 API 규칙으로 '기능 삭제 = 폴더 삭제'가 성립하는 코드베이스
  • zod 2층 스키마(런타임·엄격) 실서버 계약 테스트 — 서버 par: null로 모든 홀이 더블보기로 표시되던 무증상 오류를 사전 검출
  • API 응답 불일치 12건을 영향·우선순위(P0/P1) 표로 문서화해 백엔드에 전달 — 하위 호환을 지키는 형태로 제안
  • 3겹 안전망(ErrorBoundary · 전역 핸들러 · QueryState) + axios 에러 6종 정규화 — 로딩·에러·빈 상태를 컴포넌트 3개로 수렴
React NativeTypeScriptZustandReact QueryZodReact Hook FormNativeWindReanimatedMMKVAxiosSentryJestiOSAndroidFigmaStorybook

VGOLF F&B — 주방 프린터부터 디지털 사이니지까지, 매장을 돌리는 F&B 시스템

플럭시티 · 2025.12 — 2026.09

10개월 520커밋 — 클라우드 웹앱을 매장 사설망 프린터와 잇고, 무네트워크 부팅 사이니지까지 붙인 매장 운영 시스템

  • 10개월 · 520커밋 — Next.js App Router 정적 export, TypeScript strict
  • ESC/POS 열전사 프린팅 직접 구현 — 80mm 주방 영수증 바이트열 생성 + EUC-KR 인코딩, CJK를 폭 2로 계산하는 고정폭 레이아웃 엔진
  • 클라우드→LAN 브릿지 설계 — 정적 배포 앱과 매장 사설망 프린터가 서로 닿지 못하는 구조를, 로컬 프린트 에이전트를 경유해 raw TCP로 해결
  • 오프라인 부팅 사이니지(DID) — 망분리 미니 PC가 네트워크 없이 부팅해도 화면이 뜨도록 서비스워커 문서 프리캐시 설계
  • WYSIWYG 사이니지 편집기 — 편집 화면과 실제 표출이 동일하게 렌더되도록 %오프셋 저장 + container-query 폰트 자동 스케일
Next.jsReactTypeScriptReact QueryRecoilPWAWorkboxSSEdnd kitpdf.jsExcelJSESC/POSIndexedDBSCSS

그 외 프로젝트

  • OnMeet2026.01 — 2026.03
    프론트엔드와 Polyglot MSA 7개 서비스 설계를 맡은 팀 프로젝트 — File Service Go 전환으로 메모리 96% 감소, LiveKit SFU로 대역폭 O(N²)→O(N)
  • 탄천 악취 모니터링2025.06 — 2025.08
    고정 센서 8대 · 드론 측정 · CALPUFF 확산 모델링을 Cesium 3D 지형 하나에 올려, 지금 수치와 퍼지는 방향을 같은 화면에서 보게 만든 악취 관제 — 화면부터 API·DB·배포까지 혼자 맡음
  • Plug Platform2025.04 — 2025.09
    프로젝트마다 복사되던 컴포넌트와 API 호출을 모노레포 패키지로 걷어낸 작업 — 머지된 PR 17건, +13,391 / −9,701줄
  • Plug Atlas2025.10 — 2025.11
    센서가 언제 이벤트를 낼지 정하는 조건 관리부터 알람 수신·조치·통계까지, 관제의 이벤트 흐름 전체를 구현 — 머지된 PR 11건, +8,239 / −2,227줄
  • VGOLF 경기관제 PM302026.09 — 현재
    태블릿·모바일 통합 앱에서 모바일만 떼어내 PM30 전용으로 재정비 — 상태 저장 1회 7.89ms → 0.058ms, 진입 번들 −56%, 테스트 0 → 162개
  • Vgolf2026.01 — 2026.09
    매일 도는 경기관제 태블릿 — GPS 카트 추적과 지오펜싱 자동 홀 전환을 붙이고, 업데이트로 받는 파일을 72.9MB에서 8.5MB로 줄였습니다
  • 키키하이 (KiKiHi)2025.03 — 2025.09
    부품을 고르면 3D로 조립되는 커스텀 키보드 웹앱 — 부품 간 호환성 자동 검사와 실시간 3D 렌더링을 프론트에서 구현
  • VGOLF 스코어카드2026.01 — 2026.09
    인수인계받아 본업과 병행하며 9개월간 맡은 레거시 — 카카오·네이버 인앱브라우저에서 이미지 저장이 안 되던 문제를 재현부터 문서화까지 정리
  • 공공기관 웹 퍼블리싱2023.11 — 2024.02
    이민재단·싸템·양구수목원 등 공공기관 사이트 약 200개 페이지를 디자인부터 반응형 마크업까지 담당
  • Cosmostation 크롬 익스텐션2022.10 — 2022.12
    오픈소스 멀티체인 지갑에 Kujira 체인을 추가하고 ERC20·CW20 토큰 검색 페이지를 만들며, 리뷰를 반복해 반영한 첫 실무 경험
  • Argos2026.04
    AI에게 코드만 맡기지 않고 규칙·역할·검증까지 파이프라인으로 짜서 돌린 바이브코딩 프로젝트 — 프론트엔드 약 16,000줄, 500팀 중 3위(장려상)
  • BOOT_UP2024.07 — 2024.08
    같은 서비스를 백엔드 → 프론트 → 배포까지 세 번에 나눠 만든 캠프 프로젝트 — 프론트 단계에서는 커밋 54건, DevOps 단계는 혼자 맡음

학력

코드잇 프론트엔드 단기 심화 7기

2025.01 — 2025.03
  • Next.js, Framer Motion, Jest, Sentry, GA 등 프론트엔드 심화
  • 딥다이브 스터디 팀장, 프로젝트 투표 1위, 피어리뷰 1위

코리아IT 풀스택 과정

2024 — 2026
  • OnMeet — 팀장을 맡아 AI 회의록 자동 생성 화상회의 플랫폼을 팀원들과 기획부터 배포까지 개발, 과정 내 수강생 우수상
  • 제1회 코리아IT아카데미 바이브코딩 공모전 500팀 중 3위, 장려상 — Argos 프론트엔드 전담

한화시스템 Beyond SW Camp 6기

2024.04 — 2024.10
  • Spring, Docker, K8s, Jenkins, ArgoCD 등 백엔드 풀스택
  • BOOT_UP — 같은 서비스를 백엔드·프론트(Vue)·DevOps 세 단계로 나눠 구현, 최종 프로젝트는 CalIT
  • 프리코스 학생 대상 프론트·백엔드 크로스 강의 진행

아주대학교

졸업

활동

  • 군밤즈 스터디스터디 팀장 · 2025.01 — 2025.09
    스터디를 만들고 팀장을 맡음 — 회의를 진행하고, 주제와 진행 방식을 먼저 정리해 제안하며 깊이 있게 이어 가도록 챙김
  • 프론트 닌자스 스터디스터디 팀장 · 2025.01 — 2025.09
    스터디를 만들고 운영 — 두 레포의 장별 구조와, 일차마다 키워드와 질문을 꺼내는 토론 템플릿을 직접 만듦
  • Devlog Challengers스터디 참여자 · 2024.06 — 현재
    프론트·백엔드 개발자 간 지식 교류 목적의 블로그 기반 기술 스터디
  • 삐약톤 (Google Developers 해커톤)팀장 · 프론트엔드 · 2025.01
    팀장 — 디자이너 1 · 프론트엔드 3 · 백엔드 3명과 일을 나누고 맞춰 가며, 짧은 시간 안에 스터디 모집 서비스를 기획부터 배포까지
  • 쿠버네티스 · 도커 스터디스터디 팀장 · 프론트엔드 · 2024.12 — 2025.08
    스터디 팀장 — 프론트엔드를 맡아 화면부터 백엔드 연동까지 진행

팀 · 커뮤니티

  • 아주대학교 학보사 · Ajou Press정기자 → 미디어 편집장 · 2021.01 — 2022.12
    10명 이상의 팀과 주간 보도를 기획하고 기사 품질 점검을 맡음
  • Shalla 영어회화 동아리 · 서울경인 연합부회장 · 기획총무 · 2019.03 — 2021.08
    연 450명 이상 참여 행사의 기획과 운영 담당
  • Nubi Ajou 글로벌 교류단 · 아주대학교대외홍보팀장 · 2021.02 — 2022.12
    국제 학생 대상 문화 교류 프로그램 대외 홍보 담당
  • 링크 산학협력 서포터즈 · 링크사업단서포터즈 팀장 · 2021.08 — 2023.02
    창업 아이디어 공모전 홍보 기획과 콘텐츠 운영 담당
  • 일자리 서포터즈 · 경기도기획팀장 · 2021.08 — 2022.03
    50개 이상 기업과 연계한 채용 박람회 기획·운영 담당

프로젝트 이름을 누르면 무엇이 문제였고 그때 어떻게 판단했는지가 사이트에 적혀 있습니다. xeunnie.github.io

Seungeun Choi · Frontend Developerxeunnie.github.io/resume