프론트엔드 개발자 이현명입니다.
혼자 잘하는 것보다 함께 잘하는 환경을 만드는 데 관심이 많습니다.
다음 사람이 편하게 이어받을 수 있는 코드를 고민합니다.
Java 백엔드 개발로 시작해,
1인 팀에서 서비스를 처음부터 만들어 내보낸 경험 (2020 코액터스) ,
3인 팀에서 레거시를 걷어내고 개발 환경을 새로 세운 경험 (2021 오토위니) 이 있습니다.
현재는 어린이집·유치원 교사의 업무를 돕는 플랫폼 서비스 키즈노트에서 일하고 있습니다 (2022 ~ 현재) .
Experience
키즈노트 프론트엔드파트 2022.10 ~ 현재
B2B·B2C 웹 서비스의 주요 기능 개발 담당
외주로 개발되던 요양 ERP를 인수해, 문서 없는 코드베이스에서 핵심 도메인 화면 9개 를 사내 운영 체제로 전환 (2023~2024)
오토위니 프론트엔드개발팀 2021.09 ~ 2022.10 (1년 1개월)
중고차 경매 서비스 프론트엔드 개발 및 개발·배포 환경 구축
코액터스 프론트엔드개발 2020.11 ~ 2021.06 (7개월)
기업 전용 택시 예약 서비스를 초기 구축부터 런칭까지 프론트엔드 담당
Kakao Maps API 연동, Firebase 인증, 반응형 UI 구현
그로브소프트 백엔드개발팀 2017.10 ~ 2020.01 (2년 3개월)
아모레퍼시픽 계열 5개 이상 서비스 의 백엔드 개발 및 운영
Java·JSP·MySQL 기반 서버 사이드 개발, jQuery 기반 화면 구현 병행
Projects 대표 프로젝트 6건
배포 환경
CI/CD 배포 전환 및 표준 적용
키즈노트 · 2026.05 ~ 2026.07
담당 서비스의 배포를 사내 공통 GitHub Actions 재사용 워크플로우로 전환
Situation
담당 서비스가 서버에 직접 접속해 스크립트를 실행하는 방식 으로 배포되고 있었습니다. 팀 차원에서 Jenkins 폐기가 진행 중이라 전환이 필요했습니다.
Action
사내 공통 GitHub Actions 재사용 워크플로우로 전환
개발·검증·샌드박스·운영 4개 환경 워크플로우를 구성(총 12종 )하고, 환경별 워크플로우가 공용 워크플로우를 호출하는 구조 로 중복 제거
컨테이너 기반이 아닌 서버 환경 특성을 고려해 무중단 배포(blue/green) 를 설계하고, 배포 후 정상 확인에 실패하면 이전 버전으로 자동 복귀되도록 처리
PR 단계 품질 게이트(Lint·Test·Build)를 구성하고 단위·E2E 테스트 연동
Result
서버 접속 없이 환경별 워크플로우 실행만으로 배포 되고, 배포 이력·로그가 저장소에 기록되는 구조로 전환했습니다.
무중단 배포 전환 — 구버전 유지 → 신버전 준비 → 연결 전환 → 실패 시 복귀
워크플로우 실행
빌드 · 업로드
구버전 (blue)
그대로 유지
신버전 (green)
새 경로에 준비
현재 링크
요청이 향하는 곳
전환
배포 후 정상 확인
성공 / 실패
실패 시 구버전으로 자동 복귀
GitHub Actions
신규 기능
게시글 공감(리액션) 기능 및 디자인 협업 도구화
키즈노트 · 2026.05 ~ 2026.06
5개 화면에 공감 기능을 공통 구조로 도입하고, 애니메이션 수치를 디자이너가 직접 조정하는 튜닝 패널을 제작
Situation
공지사항·알림장·앨범·내소식·모아보기 5개 화면 에 공감 기능을 도입해야 했습니다. 화면마다 개별 구현하면 같은 로직이 반복되는 구조였고, 애니메이션 디테일을 맞추려면 디자이너 요청 → 개발자 수정 → 재확인 이 반복되는 상황이었습니다.
Action
기획 검토 단계부터 참여해 여러 화면이 공유하는 공통 구조를 설계
5개 화면에 순차 적용한 뒤 발견된 중복 로직을 공통 훅으로 다시 묶어 정리
리액션 6종·4개 언어 대응
화면 효과 애니메이션(Canvas)과 함께, 디자이너가 애니메이션 수치를 직접 조정하는 튜닝 패널을 별도 제작
iOS/Android와 애니메이션 값을 맞춰 플랫폼 간 동일한 효과 제공
Result
애니메이션 수치를 맞추는 데 들던 요청·수정·재확인 왕복과 대기 시간이 사라졌고 , 5개 화면을 중복 구현 없이 대응했습니다.
TypeScript React Custom Hooks
Canvas react-i18next
구조 개선
업무시간 외 방해금지 강화
키즈노트 · 2026.05
화면마다 따로 있던 업무시간 판단을 공통 모듈 하나로 통합
Situation
알림장·공지사항·앨범·투표 4개 발송 화면이 업무시간 판단을 각자 갖고 있어, 정책이 바뀌면 4곳을 모두 수정해야 했습니다. 학부모와 교사의 발송 정책도 달라 분기가 얽히는 구조였습니다.
Action
화면마다 따로 있던 업무시간 판단을 공통 모듈 하나로 통합
학부모·교사 역할별 정책 차이를 분리 구현
역할·시간대 조합별로 발송이 막히고 열리는 경우를 16가지로 정리해 검증
Result
업무시간 판단을 한 곳에서만 하도록 바꿔, 발송 정책이 바뀌어도 네 곳을 각각 고칠 필요가 없어졌습니다.
통합 전후 구조 비교 — 업무시간 판단 4개 → 공통 모듈 1개
BEFORE
AFTER
알림장
공지사항
앨범
투표
업무시간 판단 ①
업무시간 판단 ②
업무시간 판단 ③
업무시간 판단 ④
정책 변경 시 4곳 모두 수정
알림장
공지사항
앨범
투표
공통 업무시간 판단 모듈
역할별 정책 분리
한 곳만 수정
TypeScript React Custom Hooks react-i18next
신규 연동
퀵계좌이체(토스 PG) 결제수단 확장
키즈노트 · 2026.03 ~ 2026.04
앱 웹뷰 환경에서 정기결제 등록·단건·정기 4종 결제 흐름을 연동
Situation
기존 결제수단만으로는 결제 요구를 감당하기 어려웠습니다. 결제수단을 추가할 때마다 관리 화면을 손봐야 하는 구조 였고, 앱 웹뷰 안에서 외부 인증 왕복이 필요한 환경이었습니다.
Action
토스 SDK 인증 플로우를 연동하고 인증 성공 시 정기결제 등록을 처리
정기결제 등록·단건 결제·정기 첫결제·정기 관리 4종 결제 흐름 에 대응
별도 창에서 등록하고 완료 후 뒤로가기 기록이 남지 않도록 처리
등록 직후 서버 반영이 늦어질 때는 주기적 재조회로 대응해 등록 실패로 오인되지 않도록 처리
Result
퀵계좌이체를 4종 결제 흐름 으로 연동해 결제수단을 확장하고, 배포 후 프론트엔드 귀속 결함 0건 으로 마감했습니다.
앱 웹뷰 히스토리 처리 — 인증 왕복 후 뒤로가기가 외부 화면으로 되돌아가지 않도록
BEFORE
결제수단 관리
인증 화면
같은 웹뷰 안에서 이동
등록 완료
뒤로가기 → 인증 화면이 다시 노출
AFTER
결제수단 관리
인증 화면
별도 창에서 실행
등록 완료
뒤로가기 기록 정리
뒤로가기 → 결제수단 관리로 복귀
TypeScript React Toss Payments SDK
WebView Custom Hooks
신규 기능
보육일지 AI 컨설팅
키즈노트 · 2024.11 ~ 2025.08
수 분 걸리는 AI 처리를 백그라운드 확인 구조로 바꿔, 사용자가 화면에 묶이지 않도록 구현
Situation
교사가 작성한 보육일지를 AI가 항목별로 분석·첨삭해야 했는데, 처리에 수 분이 소요 돼 기다리는 동안 사용자가 화면에 묶이는 상황이었습니다.
Action
AI 처리 완료 여부를 백그라운드에서 주기적으로 확인하는 구조 를 설계
창을 닫아도 확인이 계속되도록 유지하고, 완료 시 전역 알림으로 안내
로딩 화면(Lottie)과 결과 리포트 모달, 리포트 출력 기능을 구현
Result
요청 후 다른 작업을 이어가다 완료 알림으로 확인하는 흐름 으로 전환했습니다.
요청 → 백그라운드 확인 → 완료 알림 흐름
컨설팅 요청
모달에서 시작
모달 닫기
사용자는 다른 작업
백그라운드 확인
완료 여부 주기적 조회
미완료 시 반복
대기
완료 감지
전역 알림 노출
결과 리포트 확인
모달 · 출력
TypeScript React TanStack Query
Recoil Lottie
레거시 전환
중고차 경매 서비스 마이그레이션 및 성능 개선
오토위니 · 2021.09 ~ 2022.10
jQuery 레거시를 React/TypeScript로 재구축하고, 메인 화면 Lighthouse 성능 점수를 30점대에서 80점대로 개선
Situation
jQuery 기반으로 모든 기능이 한 덩어리로 묶여 있어 유지보수·확장이 어려웠고, 메인 화면 초기 로딩이 느려 Lighthouse 성능 점수가 30점대 에 머물렀습니다.
Action
React/TypeScript로 재구축하며 프론트엔드와 백엔드를 분리
레이아웃 템플릿 및 컴포넌트 계층 설계
초기 로딩 병목을 8개 iframe 일괄 렌더 방식으로 특정 하고, 화면 단위 코드 분할·이미지 지연 로딩과 함께 개선
개발·운영 환경 분리 및 Nginx·Jenkins 기반 빌드/배포 프로세스 구축
Result
Lighthouse 메인 화면 성능 점수가 30점대에서 80점대로 개선 됐습니다.
구조 전환 — 한 덩어리 구조에서 React 화면 + API 분리로
BEFORE
AFTER
서버 (화면 + 데이터 결합)
JSP 템플릿
jQuery 스크립트
비즈니스 로직 · 데이터 조회
화면 변경이 서버 배포로 이어짐
React 화면
공통 컴포넌트 계층
서버 데이터 연동
API 서버
데이터 제공
비즈니스 로직
JSON
화면과 데이터를 독립적으로 배포
코드 분할 · 지연 로딩으로 초기 로딩 개선
TypeScript React Nginx Jenkins
Skills
언어·프레임워크 TypeScript React
스타일링 Emotion Tailwind CSS
상태 관리 TanStack Query Recoil
테스트 Jest React Testing Library Playwright
빌드·배포 GitHub Actions Nginx Jenkins
AI 도구 Claude Code Cursor CodeRabbit
Education · Certifications
덕성여자대학교 영어영문학과 · 졸업 2013.03 ~ 2016.02
오픈소스 기여 Next.js 한국어 문서 번역 2024.08
Java 프로그래밍 개발자 과정 교육 2017.01
© 이현명 · Frontend Developer