avatar

안녕하세요.

Product Engineer 유준상입니다.

    항상 제품 관점에서 사고합니다.

    • Product Engineer로서, 기술적 해답보다 제품의 목적과 사용자의 맥락을 먼저 고민합니다.
    • Product Engineering 철학을 공유하기 위해 Product Engineering Community를 운영하고 있습니다.

    조직의 생산성 향상을 통해 좋은 제품을 만드는 문화를 만들어갑니다.

    • CI 테스트 속도를 1200초에서 90초로 개선하여 개발 생산성을 크게 향상시켰습니다.
    • 운영 배포 시 수동으로 진행하던 Git 태그 생성 작업을 자동화하여 반복 작업을 줄이고, 배포 실수를 방지했습니다.
    • 피처 개발 일정 속에서도 조직의 불편을 인지하고, 선제적 해결을 위해 노력합니다.

Work Experience

클랩(CLAP)

Frontend Engineer

2024.03 ~ 재직 중

💡 최고의 조직을 만드는 성장관리 솔루션 클랩을 개발, 유지보수합니다.

제품의 복잡도를 줄이고, 사용자 경험을 향상시키는 방향으로 기능을 설계하고 개발합니다.

Next.jsReactTypeScriptTanstack QueryStorybookJest

📦 대용량 데이터 테이블 컴포넌트를 설계하였습니다.

  • 사내 디자인 시스템에서 사용하는 Material UI 기반의 Material React Table 채택 및 PoC 공유
    • Headless 모드가 아닌, MRT의 기본 기능을 활용하면서 사내 디자인 시스템에 맞춘 스타일 커스터마이징 적용
  • Row selection, tree 등 다양한 시나리오에 대응 가능한 테이블 컴포넌트 개발
  • 고객 UX 분석을 통해 전체 선택 제거 → 최대 Page Size 선택 정책으로 인터랙션 간소화
  • 가상 스크롤 + O(n) 트리 유틸 적용으로 대용량 렌더링 최적화
  • 무한 스크롤로 초기 로딩 성능 개선
  • Optimistic Update를 통하여 별도의 로딩 없이 사용자 액션에 대한 즉각적 피드백 제공

📝 가장 복잡한 도메인인 리뷰 도메인을 고도화하여 고객에게 편의를 제공하였습니다.

  • 피평가자별 리뷰 작성자 매칭·승인 기능
    • 평가 준비 과정에서 발생할 수 있는 오류를 최소화하고, 피평가자의 평가자 관리를 시스템에서 할 수 있도록 함
  • 리뷰 예약 기능
    • 사용자가 원하는 시간에 리뷰를 시작할 수 있도록 하여, 기존에 즉시 시작해야만 했던 불편함을 해소
  • '리뷰 작성 관리자' 권한 분리 기능
    • 관리자 외에도 리뷰 작성자 및 피평가자를 관리할 수 있도록 하여, 관리자가 아닌 사람도 더 효율적으로 프로세스를 진행 가능
  • 목표 연계형 리뷰 기능
    • 리뷰와 목표를 자동으로 연결, 목표 달성 경로를 명확하게 제시하여 사용자 피드백을 더 직관적으로 제공
  • 즉시 목표 추가 기능
    • 사용자가 리뷰 작성 중 목표를 추가할 수 있도록 하여, 수립한 목표가 없더라도 평가할 수 있는 목표를 추가할 수 있는 기능을 제공

🧪 메이커들의 생산성을 높이기 위해 노력합니다.

  • CI 테스트 속도를 1200초에서 90초로 대폭 개선 (링크)
    • ts-auto-mock의 런타임 타입 체크로 인한 성능 이슈를 해결하기 위해 createMock 유틸 함수를 개발하여 2600개의 테스트 케이스 실행 시간 단축
  • 릴리즈 커맨드를 자동 생성하는 기능 개발 및 npm 패키지 배포 (링크)
    • 이를 통해 릴리즈 드라이버가 수동으로 커밋 해시를 수집하고, 시간 순으로 정렬하는 작업을 자동화하였습니다.
  • Production 배포 시에 자동으로 Git Tag를 생성하고 push 하도록 워크플로우를 개선
    • 이를 통해 수동으로 Git Tag를 생성하고 push하는 불편함을 해결하였습니다.
  • Atomic Design, Storybook 기반의 컴포넌트 단위 개발 및 문서화
  • Jest 기반 테스트 코드 작성으로 유틸/훅의 신뢰성 확보
  • Sentry 수집 에러 필터링 → 의미 있는 에러 대응 체계 구축
  • VOC 이전에 문제를 발견하고 해결하는 사전 대응 시스템 운영

🛠 조직이 겪는 기술적인 문제를 피쳐 개발과 병렬적으로 해결합니다.

  • DTO ↔ 클라이언트 타입 불일치 이슈를 병렬적으로 해결하여 일정 지연 없이 배포

중고나라

Frontend Engineer

2023.03 ~ 2024.03

�� MAU 160만의 중고나라 웹서비스, 앱서비스 내의 웹뷰를 개발 및 유지보수합니다.

중고거래 헤비 유저로서, 사용자 관점에서 다양한 의견을 제시하고, 개발 뿐 아니라 기획 측면에서도 기여하였습니다.

🛒 매출이 없던 웹 서비스에서 앱 서비스 대비 10% 매출을 낼 수 있도록 기여하였습니다.

  • Web Socket 기반 채팅 서비스 신규 구축으로 앱 대비 웹 서비스에서 매출 10% 달성에 기여
  • AWS Amplify의 고정 IP 미지원 문제를 파악하고, 사내망 전용 테스트 환경Docker 기반으로 마이그레이션
  • Tanstack Query의 staleTime/cacheTime 설정을 통해 네트워크 요청 수 최적화

🛠 한 명의 중고거래 유저의 관점에서, 제품 사용성 개선에 기여하였습니다.

  • Suspense & Lazy Loading을 활용해 스켈레톤 UI 제공, Network Waterfall 문제를 해결하여 로딩 속도 개선
  • Elasticsearch의 비실시간성 이슈를 낙관적 업데이트로 해결하여 사용자 대기 시간 최소화

🔧 부족한 리소스에서도 코드 품질 개선을 멈추지 않았습니다.

  • React Testing Library로 배송 관련 UI 테스트를 구축하여 QA 리소스 없이 '받는 분/보내는 분' 로직을 안정적으로 분리
  • 팀원이 개발한 로직을 테스트 코드 기반으로 체화하고, 세븐일레븐 편의점 택배 서비스 기능을 안정적으로 런칭

📝 새로운 팀원이 빠르게 적응할 수 있도록 온보딩 가이드를 문서화하였습니다.

  • 처음 들어오는 팀원이 생소해할 수 있는 AWS 환경 설정 및 사용법을 문서화하였습니다.
  • 웹, 앱 서비스의 히스토리 및 개발 환경을 문서화하였습니다.

Project

또잇또잇

2023.11 ~ 2024.02

맛집을 알아보기 위한 새로운 기준을 제공합니다.
두 번 이상 간 내 맛집을 공유하는 서비스

  • 팀 리드로서 회의를 주도적으로 진행하고, 파트 별 일정관리를 담당하였습니다.
  • 로그인, 약관, 검색, 리뷰 작성 페이지 및 기능을 담당하여 개발하였습니다.
  • Github Actions의 workflow를 통해 CI 단계에서 Lint, 빌드 테스트, 프리뷰 기능을 추가하여 배포 시 에러가 발생할 수 있는 가능성을 낮췄습니다.
  • 첫 로그인 여부에 따른 리다이렉트 로직을 Next.js의 middleware를 활용하여 서버 사이드에서 수행하도록 하였고, 이를 통해 사용자가 빈 화면을 보지 않도록 하였습니다.

Activity

디프만 14, 15기

2023.11 ~ 2024.09

  • 디자이너와 개발자가 만나 서비스 기획부터 런칭까지 하나의 프로덕트를 완성하며 성장하는 IT 커뮤니티인 디프만에 프론트엔드 개발자로 참여하였습니다.
  • 프로젝트 팀 리드를 담당하였습니다.
  • 15기에는 운영진으로 참여하여, 70명 규모의 행사를 전반적으로 관리하였습니다.

SOPT 31기

2022.09 ~ 2023.01

  • 대학생 연합 IT 벤쳐창업 동아리인 SOPT에 프론트엔드 개발자로 참여하였습니다.
  • 기획자, 디자이너, 백엔드 개발자와 협업하여 서비스 배포를 경험하였습니다.

멋쟁이사자처럼 프론트엔드 스쿨 2기

2022.03 ~ 2023.08

  • 멋쟁이사자처럼에서 주관하는 프론트엔드 스쿨 2기에 참여하였습니다.
  • 프론트엔드 개발자 4명이 팀을 이뤄 React 기반 오픈마켓 서비스를 개발하였습니다.
  • 팀장 역할을 수행하고, Git, Github 사용이 처음이라 어려움을 겪는 팀원들을 위해 프로젝트 이전 시뮬레이션을 기획하고 주도하였습니다.

Education

경희대학교

2017.03 ~ 2023.08

산업경영공학과 졸업