류기현
Frontend Developer복잡한 인터랙션 레이어를 상태 흐름 중심으로 설계하고 구현했습니다.
개인 작업에 머무르지 않고, 팀 차원의 문제를 함께 해결하려고 합니다.
경력
메디컬에이아이
서울2024.11 – 현재소프트웨어그룹 프로덕트본부 FE팀 · Frontend Developer
핵심 역량
복합 입력 인터랙션 설계
심전도 그래프 위에서 터치·마우스·키보드 입력이 함께 동작하는 인터랙션 레이어를 설계하고 구현했습니다.
초기 제품 구조 설계
신규 제품의 v1.0 단계에서 기술 스택, 구현 구조, 공통 패턴을 정하는 데 참여했습니다.
대표 프로젝트
ECG-GRAPH Ruler for Tablet
메디컬에이아이2025.02 ~ 2025.04태블릿 환경에서 줌·드래그·정밀측정 간 터치 충돌을 해소한 심전도(ECG) 그래프 측정 도구
- ·태블릿 환경에 맞는 심전도 측정 인터랙션 설계 및 구현
- ·터치 제스처 충돌 해소를 위한 상태·이벤트 구조 재설계
주요 기여
터치 의도를 즉시 판정하지 않는 지연 평가 설계
데스크톱에서는 마우스와 키보드로 줌과 측정을 구분할 수 있었지만, 태블릿에서는 줌·측정·정밀측정이 모두 한 손가락 터치였습니다. 터치 시작만으로는 사용자의 의도를 알 수 없었습니다.
→ 터치 시작 시 의도를 즉시 결정하지 않고, 후속 이벤트에서 홀드 시간(800ms)·이동량·터치 수를 기준으로 의도를 판별하는 상태 흐름을 설계했습니다.
✓ 단일 터치 입력에서도 줌·측정·정밀측정 의도를 높은 정확도로 구분하여 오작동을 줄였습니다.
여러 기능 레이어가 공유하는 상태를 '트랜잭션'처럼 관리
줌 레이어와 측정 레이어가 같은 pointer 이벤트를 동시에 수신하는 구조에서, 한쪽이 활성인 동안 다른 쪽이 반응하면 화면이 의도치 않게 움직이거나 측정이 끊기는 문제가 있었습니다.
→ 5개 상태(Ruler, Zoom, PreciseMeasurement, ButtonDragging, RulerOff)를 갖는 Ref 기반 공유 제어 상태를 도입하고, 줌·측정 레이어 양쪽이 이 상태를 읽어 자기 동작의 실행 여부를 결정하도록 전환했습니다. 드래그처럼 짧은 행동은 진입 시 이전 상태를 저장하고 종료 시 복원하는 트랜잭션 방식으로 분리했습니다.
✓ 여러 인터랙션 레이어가 같은 이벤트를 두고 경쟁하는 환경에서도, 각 행동이 서로를 침범하지 않는 구조를 만들었습니다.
플랫폼별 인터랙션 정책을 분리한 드래그 훅 설계
태블릿 특성 상 드래그 가능한 요소가 늘어나면서, 드래그 자체의 메커니즘과 '드래그 중 다른 인터랙션을 어떻게 제어할 것인가'라는 플랫폼별(데스크톱·태블릿) 로직이 뒤섞일 수 있었습니다.
→ 드래그 메커니즘만 다루는 base 훅과, 모바일 고유 로직(상태 전환, 드래그 가능 여부 판단)을 주입하는 mobile 래퍼로 분리했습니다.
✓ 데스크톱 환경에서는 base 훅을 그대로, 태블릿에서는 mobile 래퍼를 통해 동일한 드래그 요소를 다른 인터랙션 정책으로 동작시킬 수 있는 구조를 만들었습니다.
Modal Impact Radar
메디컬에이아이2026.03디자인 시스템 Modal 변경의 영향 범위를 12개 프로덕트에서 자동 수집하고, 위험도 기반으로 리뷰 우선순위를 제공하는 분석 도구
- ·12개 레포 소스 자동 수집 및 모달 사용처 분석 파이프라인 구축
- ·위험도·도달 난이도·진입 경로 분류 기준 설계
- ·리뷰 및 셀프 QA용 대시보드 구현
주요 기여
팀의 문제 정의와 해결방안 제시
디자인 시스템의 Modal 컴포넌트를 변경할 때, 12개 프로덕트에 퍼져 있는 사용처의 영향 범위를 파악하기 어려웠습니다.
→ 레포별 소스를 자동 수집하고, 모달 사용처를 분석하여 커스텀 유형·위험도·진입 난이도를 분류하는 파이프라인과 대시보드를 구축했습니다.
✓ 변경 전 영향 범위를 한눈에 파악할 수 있게 되어, 리뷰와 셀프 QA에 활용할 수 있는 기반을 마련했습니다.
AI의 일관된 분석을 위한 프롬프트 설계
LLM에게 '모달을 찾아달라'고만 지시하면 레포마다 추출 기준이 달라지고, useModal 훅을 래핑한 커스텀 훅(useAlert, useConfirm 등)을 통한 간접 사용은 누락되기 쉬웠습니다.
→ 15개 필드 스키마, useModal 훅 체인 추적 규칙, 위험도·진입 난이도 분류 기준을 정의한 분석 프롬프트를 설계하고, 첫 레포 결과를 품질 체크리스트로 검증한 뒤 나머지에 적용했습니다.
✓ 12개 레포에서 일관된 기준으로 모달 사용처를 추출할 수 있었고, confidence 필드로 불확실한 항목을 별도 관리하는 구조를 만들었습니다.
참여 프로젝트
고객지원 시스템
2025.07 ~ 2025.08, 2026.02 ~ 2026.03v1.1 개발 오너로서 기획 검토·백로그 구조화·일정 관리까지 주도한 고객지원 웹 어플리케이션
- ·기획을 백로그로 구조화하고, 플래닝 포커로 스토리 포인트를 산정하며, 티켓별 소요시간과 병목을 기록했습니다.
- ·판매관리 시스템에서 쌓은 권한 체계 이해를 바탕으로 기획을 검토하고, 기획/Auth/Backend 팀과 정책을 조율했습니다.
판매관리 시스템
2025.09 ~ 2025.12회사의 자산, 매출, 거래처를 관리하는 사내 경영관리 시스템
- ·디자인 시스템 위에 react-hook-form 래퍼와 제네릭 Form Field 컴포넌트를 설계했습니다.
- ·스트리밍 다운로드와 클라이언트 사이드 zip 암호화를 설계했습니다.
ECG-GRAPH Labeling Tool 개선
2025.05 ~ 2025.07심전도 그래프에 특정 지점을 표시해 학습용 데이터를 생성하는 라벨링 도구
- ·d3-zoom 대신 IntersectionObserver로 경계를 감지하는 PanGroup을 설계하여, 줌 이벤트와의 중첩 없이 독립적으로 동작하는 Panning을 구현했습니다.
개인 프로젝트
의사정족수·의결정족수를 지원하는 실시간 투표 시스템의 프론트엔드 전체 담당
- ·이벤트 수신 시점과 캐시 기록 시점에서 각각 타임스탬프를 비교하는 2단계 검증을 설계하여, 오래된 이벤트가 최신 데이터를 덮어쓰지 못하도록 했습니다.
- ·초기 연결과 재연결을 구분하여, 재연결 시에만 서버 데이터를 다시 조회해 유실 구간을 복구하는 구조를 설계했습니다.
SSE와 REST가 공존하는 환경에서의 데이터 정합성 설계와, 실시간 서비스의 커넥션 관리 경험을 보여주는 사례
카카오맵 API를 Vue.js 컴포넌트로 추상화한 오픈소스 NPM 패키지 라이브러리
- ·빌드 산출물(.d.ts)에서 절대경로가 남아있는 문제를 발견하고, 타입 정의 파일에 한정한 ESLint 룰로 재발을 방지했습니다.
- ·기존 도구(vite-plugin-dts)와 교체한 도구(vue-tsc)의 빌드 산출물을 비교하여, .d.ts 가독성 차이가 실제 타입 추론에 영향이 없는 것을 확인하고, 기존 도구가 경로 별칭을 자동 해소해 파이프라인이 더 단순해진다는 것을 검증했습니다.
명령형 SDK를 선언적 컴포넌트로 래핑하는 설계와, 빌드 파이프라인 진단·개선 경험을 보여주는 사례
학력
연세대학교
서울문과대학 중어중문학과
2018.03 – 2023.08교육
SSAFY 삼성청년소프트웨어 아카데미
서울비전공 Java반
2023.07 – 2024.06멋쟁이사자처럼 웹 프론트엔드 스쿨
온라인프론트엔드 중점 과정
2022.07 – 2023.01