허동영 프론트엔드 개발자 포트폴리오 (요약)
2025.07.111. 소개
안녕하세요. 프론트엔드 개발자 취업을 준비 중인 허동영입니다.
저는 사용자 경험과 유지보수성을 고려하여, 직관적으로 파악할 수 있는 구조적이고 안정적인 프론트엔드 개발을 지향합니다.
폴더·파일 구조와 이름으로 각 요소의 역할과 기능을 명확히 나타냅니다.
외부 라이브러리 도입 시 프로젝트의 적합성과 비용을 우선 고려합니다.
모든 예외상황을 사전에 대비하는 로직을 구현합니다.
적절한 추상화를 통해 내부 로직 이해나 추가 설정 없이 직관적인 사용성을 제공합니다.
제네릭, 타입 가드, 오버로딩을 활용한 정교한 TypeScript 기반 타입 설계를 합니다.
2. 프로젝트 경험
2.1. [Next.js 풀스택 블로그 플랫폼 서비스 (개인 프로젝트)](/)
**기술 스택**
Next.js 15, React 19, TypeScript
Zustand, React Query, SCSS
MongoDB, next-auth
Vitest, Testing Library
**프로젝트 개요**
기존 블로그 플랫폼(네이버, 티스토리, velog)의 단점을 보완하고 Next.js 서버 컴포넌트 및 SEO 최적화를 목표로 직접 설계한 블로그 플랫폼 서비스입니다.
**핵심 기능 및 구현 사항**
**창 관리 시스템 도입**
하나의 페이지에서 여러 관리 작업을 동시에 수행 가능
React에 맞게 변형한 C++ 윈도우 프로시저 방식으로 구현
윈도우 포커스, 크기, 위치, z-index 조절 가능
**비동기 작업 동기화 관리 모듈**
버전 충돌 방지를 위해 비동기 작업을 순차적으로 처리
ESM 모듈 캐싱을 활용한 싱글톤 방식
제네릭과 타입 가드 활용으로 타입 안정성 확보
**공통 API와 내부 API 분리**
내부 API는 환경변수 기반 인증 미들웨어를 통해 보안 유지
서버 컴포넌트 및 내부 Fetch 캐시 활용
**기능별 폴더 구조 분리**
유지보수성을 위해 fetch, service, data-access 로직을 루트 폴더에 별도 관리
**Toast 메시지 함수 추상화**
createRoot와 ESM 모듈 캐싱으로 단일 인스턴스 유지
간단한 함수 호출로 즉시 Toast 렌더링 가능
**성과**
Chrome Lighthouse 성능 100, SEO 100, 접근성 92점 달성

vitest 및 Testing Library로 FE 통합테스트 및 BE 단위테스트 진행

**주요 기능 시연 영상**
[백오피스 폴더 CRUD](https://youtu.be/7wFrWxA7SMw)
[백오피스 시리즈 CRUD](https://youtu.be/SwSVdyQCm_E)
[백오피스 기타 기능](https://youtu.be/4kyABKAPXpk)
2.2. Softeer 부트캠프 통학버스 예매 서비스 (팀 프로젝트)

**기술 스택**
React 19, TypeScript, React Query, StyledComponent, WebSocket
**역할**
팀 프론트엔드 개발자로 참여하여 실시간 UI 관리 및 네트워크 최적화 구현 담당
**핵심 기능 및 구현 사항**
**WebSocket 기반 실시간 상태관리**
실시간 버스 위치 데이터를 바이너리 인코딩하여 전송량 최소화
실시간 상태 변화에 따른 UI 즉시 반영
**React Query 캐시 활용**
서버 요청 없이 클라이언트 캐시 직접 조작으로 UX 최적화
**중앙 집중식 에러 처리**
미들웨어 기반 CustomError 클래스 사용으로 에러 유형별 대응
에러 발생 시 URL 유지하며 모달로 안내하여 사용자 흐름 유지
**결제 페이지 세션 보호**
서버에서 HttpOnly 쿠키 기반 결제 토큰 검증으로 비정상 접근 방지
**주요 기능 시연 영상**
[소프티어(팀딩동) - 버스 예매 시연](https://www.youtube.com/watch?v=0TkXbVG22q4)
[소프티어(팀딩동) - 시간표 기반 버스 예매 추천 시연](https://www.youtube.com/watch?v=WM2Vxulxat4)
[소프티어(팀딩동) - 버스 예매 시연2](https://www.youtube.com/watch?v=xmwGNTA5W9g)
[소프티어(팀딩동) - 실시간 버스 위치 시연](https://www.youtube.com/watch?v=EVAXyae8B5E)
2.3. Vanilla JS 기반 React 직접 구현 및 Taskify 페이지 제작 (개인)

**기술 스택**
JavaScript
**핵심 구현 사항**
React 렌더링 사이클(createRoot, render, commit 단계) 직접 구현
setState 배치 처리(마이크로 큐 개념) 및 생명주기(useEffect, cleanup) 구현
React Node, hook(useState, useEffect, useRef, createPortal) 구현
WeakMap 활용 이벤트 위임 및 메모리 관리 구현
[깃헙 저장소](https://github.com/vavoya/vanillaJsReact_Taskify)
[구현 페이지](https://vanilla-js-react-taskify.vercel.app/)
2.4. Obsidian 스타일 Markdown → AST 파서 라이브러리 제작 (개인)
**기술 스택**
TypeScript
**핵심 구현 사항**
함수형 프로그래밍 원칙을 기반으로 파서 구현
상태 머신과 prefix 기반 파싱 방식 적용
LRU 캐시 활용으로 성능 최적화 적용
[NPM 패키지 배포](https://www.npmjs.com/package/md-ast-parser)
2.5. 대학 동아리 떨이식품 중개 서비스 (팀 프로젝트)
**기술 스택**
React, React Native, StyledComponent, Redux
**주요 협업 경험**
Git을 통한 협업 (브랜치 전략, PR 리뷰, 커밋 컨벤션 도입)
API 통신 오류 및 상태관리 이슈 대응 경험
[프로젝트 깃허브](https://github.com/jaetteoli)