Frontend Developer

문제를 발견하고
끝까지 만드는
최윤성입니다

단순한 고민에 머물지 않고, 이를 발전시켜 실질적인 솔루션을 찾아내는 것에 가치를 둡니다.

Values

끝까지 파고들어 원인을 잡습니다.

  • 재현되지 않는 버그일수록 승부욕이 생깁니다. 로그를 뒤지고 커밋을 되짚으며, 근본 원인을 찾을 때까지 놓지 않는 끈기가 저의 무기입니다.

  • '일단 되니까 넘어가자'를 경계합니다. 임시방편으로 덮은 코드는 미래의 비용이 된다고 생각해, 왜 이 문제가 생겼는지 이해하고 넘어갑니다.

어제의 코드보다 나은 코드를 씁니다.

  • 성장은 멈추면 도태되는 것이라 생각합니다. 새로운 패턴을 학습하고, 예전 코드를 다시 보며 '지금이라면 이렇게 짰을 텐데'를 되새깁니다.

  • 리뷰 피드백과 제 실수를 기록으로 남깁니다. 같은 실수를 반복하지 않도록 배운 것을 체화하는 데 집중합니다.

반복은 자동화하고, 아이디어는 코드로 만듭니다.

  • 좋은 생각도 실행되지 않으면 아이디어로 끝난다고 믿습니다. 머릿속 구상을 직접 동작하는 서비스로 구현하고, 실제 사용자를 모아 세상에 내놓는 과정을 즐깁니다.

  • 같은 작업을 세 번 반복하고 있다면 자동화의 신호라 생각합니다. 손이 많이 가는 작업을 스크립트로 만들어 팀과 저의 시간을 아낍니다.

  • 회의에서 나온 구상을 바로 프로토타입으로 찍어보며, 팀이 눈으로 확인하고 논의할 수 있게 만듭니다.

Experience

경력

팀오투 (TeamO2)

팀오투 (TeamO2)

2024.05 — 2024.11

프론트엔드 개발자

·

정규직

모빌리티

카모아 — 렌트카 플랫폼

자사 렌트카·호텔 예약 플랫폼의 유지보수와 신규 기획 개발을 담당했습니다. 오랫동안 유지되어 온 Vanilla JS 코드베이스를 React로 점진적으로 전환하면서, 기존 비즈니스 로직을 유지한 채 컴포넌트 구조를 현대화했습니다.
React TypeScript Redux Webpack5 Pug Vanilla JS
  • Vanilla JS 레거시 코드를 React로 마이그레이션, 재사용 가능한 컴포넌트 구조 수립
  • 기존 시스템 내 동작 오류 원인 분석 및 수정
CNAI

CNAI

2022.10 — 2024.05

프론트엔드 개발자

·

정규직

식품 · 헬스케어

식단 관리 앱 / 영양사 관리 웹

사용자가 음식을 촬영하면 자사 AI가 영양소를 분석하고, 영양사가 해당 데이터를 기반으로 맞춤 식단을 제안하는 서비스입니다. 앱은 기존에 존재했고, 영양사 관리 웹은 프레임워크 선정부터 설계·구현·유지보수까지 전반적으로 진행했습니다.
Remix React Native TypeScript Jotai Storybook JavaScript
  • 영양사 관리 웹을 처음부터 독립적으로 구축 — 프레임워크 선정(Remix), 아키텍처 설계, 전체 구현 및 유지보수까지 단독 진행
  • Android / iOS Code Push 연동으로 UI 변경 사항을 앱 스토어 배포 없이 즉시 반영되도록 자동화
  • 외부 AI 서비스를 자사 AI 기술로 전환, 기존 시스템 구조 분석 및 요구사항 파악
  • 사용자 설문 페이지 및 관리자 페이지 구조 설계·구현·유지보수
  • React Native 기반 크로스 플랫폼 앱을 설계부터 구축, QA 리스트 관리 및 지속 유지보수
  • 저칼로리 맞춤 영양소 분석 및 환자 식사 기록 뷰어 기능 구현
  • 키오스크 공통 템플릿을 구조화해 고객사별 반복 구현 작업을 줄이고 납품 속도를 단축
  • 개발 과정에서 겪은 문제와 해결 방식을 정리한 기술 회고록 작성

필터링 속도 5s → 2.5s 개선

Remix action 함수는 form 내 모든 필드 변경을 일괄 처리합니다. 필터 조건을 hidden input으로 관리하던 구조에서, 조건이 바뀔 때마다 검색 로직이 의도치 않게 중복 실행되는 문제가 있었습니다. sessionStorage에 이전 검색 상태를 캐싱해 중복 실행을 차단하고, 필터링 응답 속도를 5초에서 2.5초로 단축했습니다.

컴포넌트-서버 간 통신 구조 정립

자식 컴포넌트에서 action 없이 Prisma와 직접 통신해야 하는 케이스가 있었습니다. Remix routes에 경량 API 파일을 분리하고 axios로 요청을 라우팅하는 패턴을 정립해, 컴포넌트 구조를 손상시키지 않고 서버 접근 문제를 해결했습니다.

Storybook 기반 컴포넌트 설계 패턴 구축

앱과 관리 웹을 동시에 개발하면서 동일한 UI 요소가 두 플랫폼에 걸쳐 반복 사용되는 상황이 많았습니다. Storybook을 도입해 버튼, 인풋, 카드 등 핵심 컴포넌트를 독립적으로 개발하고 각 상태(기본·비활성·에러 등)를 Story로 정의했습니다. 이를 통해 컴포넌트의 재사용 범위를 명확히 하고, 디자이너·개발자 간 UI 기준을 문서 형태로 공유할 수 있는 환경을 만들었습니다. 개발 중 발생하는 스타일 회귀도 Storybook에서 시각적으로 바로 확인할 수 있어 QA 부담이 줄었습니다.

키오스크

키오스크 개발

고객사별 요구사항에 맞는 키오스크 UI를 개발했습니다. 납품마다 유사한 구조가 반복되는 문제를 파악하고, 공통 템플릿을 설계해 재사용 가능한 구조를 갖췄습니다.
React TypeScript Electron
  • 고객사별 키오스크 UI 구현 및 비즈니스 로직 연결
  • 공통 템플릿을 구조화해 고객사마다 반복되던 구현 작업을 줄이고 납품 속도를 단축
  • 고객 시연을 위해 태블릿·모바일 반응형 대응 — 전시·현장에서 실기기로 즉시 시연 가능
  • 한국어·영어 전환 지원으로 외국어 사용 고객사 납품 대응

인터랙티브 트리 구조 키오스크 템플릿 설계

납품마다 유사한 구조를 처음부터 다시 구현하는 비효율을 해소하기 위해 재사용 가능한 공통 템플릿을 설계했습니다. 화면 중앙에는 AI 휴먼 영상이 재생되며 사용자에게 안내 멘트를 제공하고, 사용자가 항목을 누르면 트리 구조로 분기가 생성되어 각 섹션으로 전환되는 방식입니다. 분기 구조는 JSON 설정만으로 노드와 연결 관계를 정의할 수 있도록 설계해, 고객사별 메뉴 구성이 달라지더라도 템플릿 코드 수정 없이 설정만으로 대응할 수 있게 했습니다. 한국어·영어 전환 역시 JSON에 언어별 텍스트를 정의하면 UI 전체에 즉시 반영되는 구조로, 별도 코드 수정 없이 다국어를 지원했습니다.

태블릿·모바일 반응형 대응

키오스크 UI는 고정 해상도 환경을 전제했지만, 고객 시연 현장에서 태블릿이나 스마트폰으로도 동작해야 하는 요구가 있었습니다. 뷰포트 크기에 따라 레이아웃과 터치 인터랙션이 자연스럽게 조정되도록 반응형 처리를 적용해, 별도 기기를 준비하지 않고도 현장에서 실기기 시연이 가능해졌습니다.

스포츠

야구 팬 플랫폼

8만 명 이상이 이용하는 야구 팬 플랫폼의 전체 구조를 파악하고 유지보수를 담당했습니다. 레거시 코드에서 비롯된 데이터 불일치 문제와 이벤트 추첨 로직의 설계 결함을 발견하고 수정했으며, 수동으로 운영되던 멤버십 발급 체계를 자동화했습니다.
jQuery Vanilla JS
  • 티켓 사이트 정보와 플랫폼 데이터가 불일치하던 문제 원인 파악 및 수정
  • 회원 티켓 구매 시 포인트가 정상 지급되지 않던 로직 오류 수정
  • 화면 UI 퍼블리싱 및 비즈니스 로직 연결
  • 아이핀·PASS 인증 오류 해결
  • Google Play 정책 위반으로 앱이 스토어에서 내려간 이슈 대응 — 개인정보 처리방침 미비가 원인임을 파악하고 수집 항목 명시, UI 접근성 개선, 데이터 보안 설문지 재작성으로 복구

이벤트 추첨 시스템 재설계

기존 로직은 이전에 당첨된 이력이 있는 사용자를 추첨 대상에서 제외하는 방식이었습니다. 이 때문에 당첨 확률이 구매 이력에 따라 달라지는 공정성 문제가 있었고, 반복 구매 사용자일수록 오히려 불이익을 받는 역설적인 구조였습니다. 모든 티켓 구매자를 동등한 조건으로 포함하는 랜덤 추첨 시스템으로 재설계해 공정성을 확보했습니다.

추첨 명단 엑셀 업로드 자동화

기존에는 추첨 대상 명단을 관리자가 백엔드 시스템에 직접 수작업으로 입력해야 했습니다. 엑셀 파일을 업로드하면 데이터를 파싱해 백엔드 서버에 자동으로 전송하는 기능을 구현해, 명단 등록 과정에서 발생하던 수동 작업과 입력 오류를 줄였습니다. 기존에 하루 이틀씩 소요되던 이벤트 명단 관리 작업이 한 시간 안에 완료될 수 있게 되었고, 야구 플랫폼 관계자로부터 직접 긍정적인 피드백을 받았습니다.

멤버십 회원가입 자동화

기존에는 관리자가 백엔드 시스템에 멤버십 코드를 직접 입력한 뒤 사용자에게 전달하는 수동 방식으로 운영됐습니다. 백엔드에서 코드를 자동 생성·발급하는 로직으로 전환해, 관리자 개입 없이 가입 시 코드가 자동 발송되도록 개선했습니다.

학력

GSM

광주소프트웨어 마이스터고등학교

2020.03 — 2023.01

소프트웨어 개발과 · 졸업

Awards

2021 4개교 연합 해커톤 🥇2021 교내 올림피아드 🥇2021 KDN SW경진대회 🥉2020 교내 해커톤 🥈

Certifications

정보처리기능사 (2023)

Skills

Frontend

ReactTypeScriptReact NativeRemixNext.jsTailwind CSSHTML / CSS

State & Tooling

JotaiReduxStorybookWebpack5Vite

Etc

Git / GitHubjQueryVanilla JSPugFigma

Contact

새로운 기회나 협업,
단순한 인사도 환영합니다.

12345ggh81@gmail.com ↗