안녕하세요,
프론트엔드 개발자 변수미입니다.

  • 끊임 없는 도전을 통해 꾸준히 성장해나아가고 있습니다.
  • 성능 최적화클린 코드에 대해 고민하고, 실제 프로젝트에 적용합니다.
  • 개발 과정에서 다양한 고민을 마주하는 것, 그리고 그 고민을 해결하는 것을 좋아해요.
  • 실력과 소통 능력을 모두 갖춘 '같이 일하고 싶은 개발자'가 되려고 노력합니다.
  • 사용자에게 불편한 점을 찾고 개선을 통해 사용성을 증진한 경험이 있습니다.

Work Experience

(주)아데나소프트웨어

페이먼츠 개발팀 / 프론트엔드 개발자2023.09 - 재직중 / 1년 3개월

Sticpay 서비스

상대방이 어디에 있든 실시간으로 송금/수취가 가능한 온라인 e-wallet 서비스

Next.js, TypeScript, Emotion.js, Recoil

인증 정보 쿠키로 마이그레이션

스토리지 기반 인증을 쿠키 기반으로 전환하고 데이터 암호화를 적용하여 보안을 강화하였습니다. 이를 통해 서브도메인이 다른 두 서비스 간 인증 정보 공유 문제를 해결하였습니다.

SVG 스프라이트 도입으로 성능 개선

국가 선택 UI에서 260개의 국기 이미지를 개별적으로 요청하여 발생하는 성능 저하 문제를 발견했습니다. 이를 해결하기 위해 SVG 스프라이트 기법을 도입하고, 로컬과 S3 환경에서 모두 사용할 수 있는 스프라이트 이미지 생성 스크립트를 개발했습니다. 결과적으로 이미지 요청 횟수를 260회에서 1회로 줄여 페이지 로딩 속도를 획기적으로 개선했습니다

SSO 계정 연동 중 API 요청 취소 문제 해결

페이지 이탈 시 API 요청이 중단되지 않도록 keepalive 옵션을 활용했으며, 요청 완료 후 페이지가 종료되도록 처리했습니다.이 방식을 SSO 계정 연동에 적용하여 polling 기반의 안정적인 통신을 구현했습니다.

React 18 마이그레이션

React 17과 Node 16 환경에서 발생하는 기능 제약을 해결하기 위해 React 18 마이그레이션을 진행했습니다. 먼저 Docker를 활용해 Node 20 환경을 구성했고, 이후 React 18로의 업그레이드를 진행했습니다. React Router, React Query 등 주요 라이브러리의 호환성 문제를 해결하며 안정적으로 마이그레이션을 완료했습니다.

Main 리뉴얼

이미지 최적화를 통한 성능 개선

메인 페이지의 이미지들을 WebP 형식으로 변환하고 뷰포트 밖 이미지에 지연 로딩을 적용하여 성능을 개선했습니다. 또한 WebP 미지원 브라우저를 위해 picture 태그를 활용해 PNG를 대체 제공하여 호환성을 확보했습니다. (모바일 LightHouse 26 → 72)

Money In&Out 리뉴얼

입출금 페이지 구조 개선

페이 메소드별로 개별 페이지를 만들어야 하는 입출금 시스템의 비효율적인 구조가 있었습니다. 페이 시스템을 카테고리화하고 서버 데이터에 따라 동적으로 처리되는 구조로 재설계했습니다. 그 결과 전체 페이지 수를 70% 줄이고, 새로운 페이 추가 시 별도 페이지 생성 없이 즉시 대응할 수 있게 되었습니다

많은 페이지를 관리하기 위해 퍼널 도입

각 카테고리마다, 페이마다 사용자에게 받아야하는 데이터가 많아 여러 스텝으로 이루어진 페이지가 많았습니다. 퍼널 간 상태를 관리하면서 단계를 명시적으로 이동시킬 수 있도록 useFunnel 이라는 custom hook을 만들어 사용하였습니다.

다이어그램을 활용한 복잡한 기능 개선

히스토리와 문서 없이 코드만으로 파악해야 했던 계정 연동 기능을 리뉴얼하며, 코드 분석을 통해 성공/실패 케이스를 포함한 상태 다이어그램을 작성했습니다. API 응답별 상태 흐름을 시각화하여 팀에 공유했고, 이를 통해 복잡한 기능을 효과적으로 구현했습니다. 작성된 다이어그램을 문서화하여 향후 유지보수성을 높이고 팀의 개발 생산성 향상에 기여했습니다.

Sticpay API Docs

STICPAY에서 제공하는 API에 대한 문서를 페이지로 제공하는 서비스

TypeScript, Next.js, App Router, Node 20

문서 관리 편의 개선

PDF 형태로 관리하던 API 문서를 MDX 기반 웹 페이지로 전환했습니다. MDX 파일을 로컬에서 관리하고 페이지에서 직접 렌더링하는 방식을 도입하여 문서 관리와 업데이트가 용이한 시스템을 구축했습니다.

API 문서 검색 기능

로컬 MDX 파일 기반의 문서 검색 시스템을 구현했으며, 퍼지 검색 알고리즘을 도입하여 유사 단어까지 검색 가능한 기능을 추가했습니다. 이를 통해 정확한 검색어를 모르는 사용자도 원하는 문서를 쉽게 찾을 수 있도록 개선했습니다.

검색 시스템 사용성 및 접근성 개선

검색 결과 내 키보드 네비게이션을 구현하고, 전역 단축키(cmd+k)로 검색창에 빠르게 접근할 수 있도록 했습니다. ARIA 속성을 활용해 웹 접근성을 준수하여 모든 사용자가 편리하게 검색할 수 있도록 개선했습니다.

Sticplay 신사업 개발

STICPAY에서 운영하는 iGaming 고객을 위한 캐시백 서비스

Node 16v, Zustand, next-i18next

다국어 언어 지원을 위한 i18n세팅

빌드 시마다 발생하는 다국어 API 호출로 인한 서버 부하 문제를 발견하고, 번역 데이터 자동화 스크립트를 구현하여 CI/CD 파이프라인에서만 실행되도록 개선했습니다. 이를 통해 불필요한 API 호출을 제거하고 서버 안정성을 확보했습니다

로그인, 2FA 연동 및 페이지 접근 제어

Next.js middleware를 활용하여 사용자 인증 시스템을 개선했습니다. 기존에는 페이지 이동마다 클라이언트에서 권한을 체크하여 화면이 잠시 노출되었다가 리다이렉션되는 문제가 있었습니다. Middleware를 도입하여 페이지 진입 전 서버에서 권한을 검증하도록 개선했고, 이를 통해 화면 깜빡임 현상과 동시성 문제를 해결했습니다.

Team Project

Git animals

Git animals

2023.05 - 진행중
깃허브 활동으로 나만의 귀여운 펫을 키워보세요. 매일 커밋하고 PR을 올리면서 펫이 성장하고 레벨업하는 재미를 느낄 수 있습니다.
Next.jsTypeScriptPanda css
  • Github 잔디를 이용해 포인트를 얻고, 펫을 모아 Github를 꾸미는 서비스
  • 사용자와 Github Issue을 통해 소통하며 꾸준히 서비스 개선 진행중 (서비스 내 피드백 폼을 Github issue과 연결 -> Blog)
  • 총 사용자 4000명대/Github Star > 1000
  • 외국 사용자를 타겟으로 하기 위해 다국어 기능 제공
  • remix(admin), next.js(main)을 모노레포로 구성, 공통적으로 사용하는 api, ui 등을 package로 분리하여 사용
na lab

na lab

2023.05 - 진행중
동료의 익명 피드백으로 자신의 성향과 장단점 등을 파악해요. 나의 강점은 살리고, 약점은 보완하기 위한 익명의 피드백 수집 및 통계 서비스.
Next.jsTypeScriptemotion.jsCloudflare pagesframer motionvitestGAHotjarMixpanel
  • 정식 출시 3일만에 사용자 1300명 달성
  • SSR에서 동적으로 커리어명함 이미지 생성 및 다운로드
  • Vitest, testing library로 선언적인 테스트 코드 작성
  • GA, Mixpanel을 이용한 사용자 흐름 분석, 인트로 스킵 기능을 추가해 이탈률을 18%에서 10%로 개선
  • DND기능 구현 중 기술적인 어려움 발생, 디자이너와 소통 끝에 대안을 제시하여 해결
10MM(십분만)

10MM(십분만)

2023.09 - 2024.02
하루 10분으로 시작하는 습관
Next.jsTypeScriptFramer motionJestPanda Css
  • 가설 검증과 사용자 지표 분석을 통해 꾸준히 서비스 개선, MAU 약 500명 수준 유지중
  • 디자인 가이드에 따라 UI 개발, 스토리북을 통해 디자이너와 소통
  • 서비스의 핵심 기능 “스톱워치 페이지” 구현
  • 사용자가 해당 페이지에서 이탈하지 않도록 하기 위해 사용자의 이탈을 감지해 알림창 표시, 백그라운드에서도 스톱워치가 동작되도록 구현

Personal Project

Thumbnail Maker

Thumbnail Maker

2025.12 - 진행중
블로그 포스트 썸네일을 자동으로 생성해주는 서비스
tailwind cssshadcn/uisupabase

Activities

글쓰는 또라이(글또) 활동

2024.10 - 진행중
글쓰는 또라이(글또) 활동 중

디프만 14기 운영진

2023.08 - 2024.02
디프만 14기 인사부 운영진으로 활동, 14기 인원 모집 및 면접 진행, 디프만 14기 웹 페이지 개발 10MM팀 팀장 및 프론트엔드 개발자로 활동

디프만 13기

2023.04 - 2023.07
'디자이너와 프로그래머가 만났을 때', 16주에 걸쳐 서비스 기획부터 론칭까지 함께 경험하는 성장추구형 커뮤니티에서 프론트엔드 개발자로 활동 디프만 13기에서 대상 수상 빠른 1차 MVP 배포 후 2차 MVP 배포를 통해 정식 출시 3일 만에 사용자 1300명 달성

Probrain 동아리

2019.04 - 2023.02
충남대학교 교내 웹 동아리원. 2021~2022의 2년간 임원 활동

테오의 스프린트 14기

2023.02 - 2023.02
시니어 개발자 테오가 주최하는 5일 동안의 구글 스프린트 활동

Education

충남대학교

2019.03 - 2023.02
컴퓨터공학과 전공

Certificates

TOEIC Speaking IM3

2022.12.25
ETS

SQLD

2021.06.08
한국데이터산업진흥원

Award

Depromeet 14th 최우수상

Depromeet / 2024.01.22
IT 연합 동아리 Depromeet 14기에서 ”10MM” 프로젝트로 최우수상 수상

Junction Asia 2023 Track 2nd winner

Junction Asia / 2023.08.20
”autoWaste” 프로젝트로 JAKA track 2nd winner 수상

Depromeet 13th 대상

Depromeet / 2023.07.22
IT 연합 동아리 Depromeet 13기에서 ”Na lab” 프로젝트로 대상 수상

2023 덕성 5K(OK)! Plus O2O 창업경진대회 대상

덕성여자대학교 / 2023.04.26
”오직 나만을 위한 맛집 검색” PREAT 프로젝트로 대상 수상

SPARCS 2023 StartUp Hackathon 우수상

SPARCS / 2023.01.29
“이것도 나고이것도 나야.” METAMON 서비스로 우수상 수상

주니어 창의작품 경진대회 장려상

충남대학교 컴퓨터공학과 / 2022.06.08
SCRAP 프로젝트로 참가, 장려상 수상

OpenSource Contribute

Next.js Docs Translation

2023.06.23
Next.js 공식문서 페이지 번역, 01-installation 담당

Chakra UI Ark Docs Style Bug Fix

2023.05.6
ark 공식문서 스타일 버그 수정

React Docs Translation

2023.05.15
리액트 공식문서 페이지 번역