문제의 원인을 분석하고 구조적인 개선으로 연결하는 프론트엔드 개발자
- 다양한 경험을 바탕으로 서비스 구조와 API 동작 방식에 대한 이해도를 갖춘 2년 차 프론트엔드 개발자입니다.
- React와 Next.js, Vue.js를 사용하며 백엔드 경험을 가지고 있습니다..
- 사용자 경험을 중요시하고 누구나 사용하고 싶은 서비스를 목표로합니다.
- 다양한 환경을 경험하고 학습하는것을 좋아하며, 다양한 팀 프로젝트를 참여하고 있습니다.
- 협업을 중요시하고 많은 경험으로 소통을 쉽게 풀어내며, 문제를 해결하는것을 좋아합니다.
Work Experience.

DEVER
Front-end Engineer2024.04 - 2026.03
프론트엔드 서비스팀으로 사내프로젝트, SI 프로젝트 신규개발 및 유지보수를 담당하였습니다.
[DEVER 프로젝트]
-
Vue3, React 기반 서비스 개발
-
개발 효율화
- 서비스 통합을 위한 Vue → React 마이그레이션
(유지보수 효율 30% 상승)
- 모노레포 도입 제안 및 마이그레이션 주도
- 사내 프로젝트가 여러 개로 분리되어 있어 하나의 컴포넌트 수정 시 5~6번의 수정과 커밋/배포가 발생하는 문제점 발견
- 향후 유지보수와 관리를 위해
모노레포 마이그레이션을 제안하고 실행
- 8개 프로젝트 중 6개를 모노레포로 통합하여 작업 시간 단축
(8번의 수정/배포 → 3번으로 감소)
- 공통 UI 컴포넌트, 디자인 컴포넌트, Util 등을 중앙화하여 관리
- 동일한 컴포넌트를 공유함으로써 유지보수 효율성 향상
-
Base Code 및 템플릿 관리
- 사내 디자인 시스템과 토큰 도입에 따른 개발 표준화 필요성 인식
- Vue, React, Tailwind, Nuxt 등 회사에서 사용하는 기술 스택별 보일러플레이트 템플릿 제안 및 구축
- 초기 세팅 시간 단축 및 일관된 개발 환경 제공
- 공통 Util 함수 및 라이브러리를 관리하는 Base Repository 구축
- 프로젝트 간 Util 함수를 복사하여 사용하던 비효율적인 방식 개선
- 중앙화된 Util 관리로 코드 재사용성 및 일관성 향상
-
인증 및 최적화
- 사내 SSO 로그인 연동 및 관리
- SEO 최적화를 통해 Google 검색엔진 상단 노출 개선
[Gifca 프로젝트]
-
플랫폼 개발
- Vue2 기반 디지털카드 선물하기 플랫폼 유지보수 및 신규개발
-
사용자 경험 개선
- 카카오톡 OAuth 앱 로그인 개선 작업 (유저 로그인 시간 30초 → 1초 단축)
- 딥링크를 통한 선물하기 플로우 개선 작업
[위아오너 (창업 플랫폼)]
-
플랫폼 개발
- Vue3 SPA 기반 창업 상담 및 지원 플랫폼, 백오피스 구현
- 웹뷰 개발을 위한 네이티브 브릿지 연동
-
코드 품질 관리
- 코드 컨벤션 및 포맷팅 표준화를 위한 ESLint, Prettier, Husky 도입 주도
- 실질적인 코드 리뷰가 어려운 상황에서 자동화된 컨벤션 검증 필요성 제기
- Husky를 통한 Commit Lint 자동화로 일관적인 코드 포맷 유지
- ESLint를 통해 빌드 에러를 사전에 발견하여 코드 안정성 향상
- Storybook 도입 및 적용을 통한 컴포넌트 문서화 및 시각적 테스트 환경 구축
- 공통된 코드 품질 개선 프로세스 구축 및 팀 내 표준화

나이스데이
Back-end Engineer2022.08 - 2022.11
담당업무
- 회사내 업무 프로세스 온보딩
- 데일리 스크럼
- 전반적인 업무 프로세스에 교육 (컨벤션, gitLab)
- 프로시저, 사내 프레임워크 교육 및 발표

PREF
Back-end Engineer2021.10 - 2022.07
백엔드 서비스팀으로 SI 프로젝트 신규개발 및 유지보수를 담당하였습니다.
[SK 다뉴 리뉴얼 프로젝트]
- ASP 레거시 프로젝트 분석 및 리뉴얼
- 레거시 ASP 프로시져 기반 분석 및 Spring 리뉴얼 진행
- thymeleaf 개발
- ERP 시스템 연동
- 내부망 Linux 작업 및 배포 경험
- 웹 취약성 분석 및 수정
[Digital Lab 프로젝트]
- 내부망 프로젝트 구현 및 배포
- API 설계 및 개발
- thymeleaf 개발
- toastGrid 차트, 테이블 구현
- 내부망 Linux 작업 및 배포 경험
- 웹 취약성 분석 및 수정
[WALA]
- 스타일리스트 협찬 플랫폼 API 설계 및 백오피스 구현
- API 설계 및 개발
- AWS 서버 구축 및 서버 배포
- 백오피스 thymeleaf 개발
Team Project.
서울시 지하철을 이용하는 교통 약자를 위한 엘리베이터 정보 제공 서비스입니다.
Next.jsTypescriptReact-Querystyled-componentsframer-motionNaver Map APIWeb Speech API
react로 구성된 프로젝트를 서비스를 준비하며 검색엔진 최적화를 위해 next.js로 마이그레이션을 진행
kakao map api로 구현된 지도 및 마커를 naver map api로 마이그레이션
- 앱 서비스를 준비하며 통일된 라이브러리를 사용하기 위해 마이그레이션
react-query를 적용하여 server state cache
- bottom-sheet 슬라이드 인터렉션을
framer-motion을 사용하여 부드럽게 개선
- 라이브러리 버젼 관리
문제 및 해결방법
Next CSS-in-JS
- react에서 next.js로 마이그레이션을 진행하면서 기존에 작성되어 있던
styled-components가 적용되지 않는 이슈가 발생했습니다.
- 기본적으로 SSR로 동작하며
pre-rendering을 합니다. 페이지가 미리 렌더링 되기 떄문에 스크립트로 작성된 스타일이 바로 적용되지 않고 렌더링 되는 이슈가 발생합니다.
- next.js에서 styled-components 문제를 해결하기 위한 방법을 제공하고 있어 문제를 해결했습니다. link
깨달은 점
다른사람의 코드를 한 줄 이라도 더보자
- 프론트엔드로 프로젝트를 혼자서만 진행을하면서 내가 작성하던 코드에 대해서 많은 고민을 하지 않았습니다.
- 이번 프로젝트에서 협업을 하며 같인 공동작업을 하면서 맞춰야하는 것이 많았습니다.
- 또 같이 작업하는 팀원에 코드를 보고 저런방법으로 접근할 수 있구나를 알게되었고, 기본적인 부분임에도 놓치는 부분이 너무나도 많다는것을 알게 되었습니다.
- 협업은 혼자 작업하는것이 아니기에 다른 사람들의 코드를 많이 접하고 고민하고 발전해야하는거 같습니다.
배포는 시작과 동시에 (CI/CD)
- 프로젝트를 시작하면서 배포를 후순위로 생각하고 진행을 했습니다. 마감기한이 다가와서야 배포를 진행하게 되었는데, 셋팅부터 설정까지 생각보다 쉽지가 않았습니다.
- QA를 진행하는데 미리 배포가 되었더라면 미리 확인하면서 수정할 수 있었지만 그 부분이 아쉬웠고, CI/CD가 구축되지 않아 손수 배포를 해야하는 수고로움까지 있었습니다.
- 협업을 하면서 업무의 효율성을 위해 배포는 선택이 아닌 필수인거 같습니다.
뚜벅이 여행자들을 위한 제주 여행 경험 공유 서비스입니다.
ReactTypescriptStyled-componentsKakao Map API
- 공통된 스타일 스택인
styled-components를 사용
- 버스 정류장의 위치와 방명록에 따른 이미지를
kakao map api를 사용하여 버스의 정류장을 마커로 구현
- bottom-sheet 슬라이드 인터렉션 구현
vercel을 이용하여 배포

Yogizogi
2023.06 - 2023.07
여행할때 필요한 숙소를 쉽게 비교하고 예약할 수 있는 서비스입니다.
ReactTypescriptRecoilReact-QueryTailwindKakao Map API
- 디자인 레퍼런스를 가지고
figma를 사용하여 디자인 레이아웃 제공
- 검색된 숙소를 시각적으로 제공하기 위해
kakao map api를 사용하여 위치와 정보를 지도의 마커로 구현
- 숙소 주변 편의시설 정보를 제공하기 위해
kakao local api를 사용하여 정보를 제공
JWT를 이용하여 로그인을 구현하였으며 Recoil과 LocalStorage, SessionStorage로 상태를 관리
typescript를 사용하여 협업을 하며 필요한 안정성과 명확한 코드를 작성
문제 및 해결방법
OAuth 로그인 방법
- OAuth 로그인으로 kakao 로그인을 추가하였는데 서버에서 구현한 OAuth API에서 Token을 클라이언트로 전해주는 방법에 대해서 고민하게 되었습니다.
- 예전에도 비슷한 문제가 있어 리다이렉트 URL을 통해 queryString으로 token을 보내주는 방법으로 해결했습니다.
- 하지만 보안적으로나 서버와 클라이언트가 서로 URL을 정의하고 공유받아야하것이 좋은 방법이 아닌거 같아 찾아보게 되었습니다.
클라이언트에서 OAuth Login을 구현 => token으로 서버 API 호출 => 서버에서 전달 받은 token으로 다시 OAuth 인증 => 인증완료시 서버에서 JWT토큰을 발급
- 전체적인 프로젝트의 일정이 있어 리다이렉트로 결정하고 구현하게 되었습니다.
신체 정보를 넣으면 BMI를 자동으로 계산해주고, 목적에 맞는 운동을 선택하면 꼭 맞는 운동 루틴을 추천해주는 서비스입니다.
ReactTypescriptRecoilstyled-components
- 슬라이드 UI를 제공하기 위해
styled-components를 사용하여 슬라이드 인터렉션을 구현
- 운동 상태를 관리하고 저장하기 위해 전역상태 라이브러리로
recoil을 사용
- API 연결하며 cors 문제를 해결하기 위해
nginx로 클라우드 배포
문제 및 해결방법
CORS
- API를 연결하면서 cors문제가 발생하여 서버에서 arrow 설정을 했지만 문제가 해결되지 않았습니다.
- 클라이언트에서 프록시 우회를 통해 API를 연결하기 위해
nginx로 클라우드 배포를 진행하였고, proxy를 설정하여 API를 연결할 수 있었습니다.
깨달은 점
- 프론트엔드로 다른직군과의 첫 협업경험으로 기획부터 디자인 개발까지 함께 참여하여 시행착오와 다른 직군의 업무를 이해할 수 있었습니다.
- vercel과 같은 호스팅이 아닌 클라우드서버에 직접 배포를 진행하였고 서버 세팅 및 배포, 도메인 작업을 경험할 수 있었습니다.
Personal Project.
TABTAB은 평소에 하지 못하는 표현이나, 대화를 하고 답장을 하기에 부담스러운분들을 위해 만들어졌습니다. 간단한 이모티콘과 텍스트로 쪽지 푸쉬알림을 보낼 수 있습니다.
Next.jsTypescriptRecoiltailwindfirestore-databasefirebase-messaging
- client와 server를 구현하기 위해
next.js를 사용하였습니다.
- next.js에서 유저의 세션을 쉽게 관리하기 위해
next-auth를 사용하여 세션을 관리하였습니다.
- 디자인이 정해지지 않은 프로젝트에서 통일된 디자인을 제공하기 위해
tailwind를 사용하였습니다.
- 푸쉬 알림을 구현하기 위해
web notification api을 적용하였고 firebase에서 제공하는 FCM을 사용하여 구독서비스를 구현했습니다.
- 푸쉬 알림을 모바일에서 동작하게 하기 위해
PWA를 적용하였습니다.
- firebase 서비스로 통일하기 위해 DB로
firestore-database를 사용하였고, 추가 구현없이 쉽게 DB를 이용할 수 있었습니다.
문제 및 해결방법
tailwind의 동적 스타일
- 동적 스타일을 작성하기 위해 tailwind로 동적으로 클래스를 적용하였는데 스타일이 적용되지 않는 문제가 발생했습니다.
- 찾아보니 tailwind는 컴파일시 사용하지 않는 css를 제거한다고 되어 있었고, 공식 문서에서도
tailwind는 동적으로 생성된 클래스는 인식하지 않는다 되어 있었습니다.
- 이를 해결하기 위해 객체를 사용한 방법이 있었지만 적용해보지는 못하였고, 기본 style 속성을 사용하여 동적 스타일 문제를 해결했습니다.
PWA Notification permission
- 로그인시 notification 권한을 요청해 token을 발급하도록 되어있습니다. 하지만 PWA에서 kakao 로그인시 정상적으로 토큰이 발급되지 않는 문제가 발생했습니다.
- ios를 사용하기에 safari로 동작하게 되는데 ios safari 개인정보 보안정책에 위반되기 때문에 동작하지 않았습니다.
Apple은 개인정보에 관련되어 매우 엄격한 보안정책을 가지고 있어 사용자에 정보 요청을 사용자의 상호작용 없이는 실행할 수 없었습니다.
- kakao 로그인 같은 경우는 리다이렉션으로 동작하며 상호작용이 아닌 새 페이지로 넘어가게되어 permission 요청이 거부되었습니다.
- 해결방법으로 정책과 같이 알림을 설정할 수 있는 버튼을 추가하여 동작하도록 기능을 추가하였습니다.

Music-Player
2023.03 - 2023.04
음악을 검색하고 플레이리스트에 저장하고 들을 수 있는 뮤직 플레이어입니다.
JavaScriptExpressmongoDBsasslast.fm APIYoutube API
express로 서버를 구성하고 템플릿 엔진으로 ejs를 사용했습니다.
- module별 controller를 생성하여 view, api routing을 관리하였습니다.
scss를 사용하여 component와 view로 나누어 style을 관리하였습니다.
last.fm API에서 제공받은 앨범, 아티스트 데이터를 mongoDB에 추가하여 관리하였습니다.
Youtube API로 영상을 검색하여 음원을 재생하였습니다.
Activities.
프로그라피 9기
2024.03 - 2024.09다채로운 경험을 지닌 IT 크루가 모여 프로덕트를 개발하고, 함께 추억을 쌓아가는 커뮤니티테오의 스프린트 16기
2023.10 - 2023.10시니어 개발자 테오가 주최하여 5일간 진행하는 구글 스프린트 프로그램Junction Asia 2023
2023.08 - 2023.083일간 세계의 다양한 사람들이 한데 모여 다양한 창작자 간의 한계를 허무는 해커톤 프로그램6th goormthon
2023.07 - 2023.07구름과 카카오가 주관하여 진행하는 해커톤 프로그램SeSACTHON
2023.06 - 2023.08구름과 SBA가 주관하여 진행하는 해커톤 프로그램비사이드 305 포텐데이
2023. 05 - 2023. 05기획자, 디자이너, 개발자가 팀을 구성하여 10일 동안 프로토타입을 기획하고 개발합니다.Education.
제로베이스 프론트엔드스쿨
2022.12 - 2023.07부트캠프 프론트엔드과정 (React & Vue & Typescript)
- 프레임워크 미니 프로젝트, 협업 팀 프로젝트
- HTML/CSS, 컴퓨터 공학, JavaScript, 자료구조/알고리즘, 프레임워크 (React or Vue), Typescript디지털컨버전스 기반 융합기술을 활용한 SW 웹 개발자 양성과정
2021.02 - 2021.08Java기반의 하이브리드 웹 개발자 과정(JSP, Spring , MVC)
- MVC 패턴 미니 프로젝트 , 메인 프로젝트
- JAVA, Database, 웹표준구현 ,JSP & Servlet, Spring 전자프레임워크
- 스프링 기반 개인프로젝트와, 팀프로젝트를 진행아세아 항공 전문학교
2014.03 - 2016.02항공정비학과 전공Award.
Junction Asia 2023 - [Track 2nd Winner]
Junction Asia / 2023.08.20
폐기물 매칭 플랫폼 ”autoWaste” 프로젝트로 Jaka Track 2nd Winner 수상SeSACTHON - [우수상]
SBA x goorm / 2023.06.16
서울시 교통약자들을 위한 지하철 실시간 정보 제공 서비스 'FREEWAY'로 우수상 수상