미리보기
기본 정보
안녕하세요. 프론트엔드 개발자 박수아입니다.
자기소개
저는 재사용 가능한 공통 컴포넌트를 설계하고 최적화하는 데 관심을 가지고 있으며, 이를 통해 개발 팀의 생산성과 코드 품질을 높이는 것을 목표로 하고 있습니다. 최근에는 Compound Components Pattern을 적극적으로 활용하여 Input 컴포넌트를 설계한 경험이 있습니다.
프로젝트에서는 다양한 Input 컴포넌트를 통합하기 위해 CCP를 적용하여 하나의 유연한 Input 컴포넌트로 구조화했습니다. 이를 통해 사용자는 단일 인터페이스로 여러 형태의 입력 방식을 관리할 수 있도록 했으며, 이를 팀원들과의 코드 리뷰 과정을 통해 더욱 개선했습니다. 이러한 경험은 일관성 있는 UI 설계를 가능하게 했을 뿐 아니라, 컴포넌트 사용성을 향상시켜 팀 전반의 생산성을 높이는 데 기여했습니다.
팀 내 협업에서는 코드 리뷰와 피드백 과정을 중요하게 생각하며, 이를 통해 컴포넌트의 유지 보수성과 확장 가능성을 지속적으로 발전시켜 왔습니다. 저는 새로운 기술과 패턴을 학습하고, 프로젝트에 이를 실험적으로 적용하며, 팀과 공유하는 것을 즐깁니다. 최근에도 Feature-Sliced Design(FSD) 아키텍처를 학습하고 있으며, 이를 프로젝트에 적용하는 방법에 대해 깊이 탐구하고 있습니다.
기술 스택
JavaScript, TypeScript, React, Next.js, zustand, react-query, TailwindCSS, aws-ec2, Docker, Notion, JIRA, Confluence, GitHub, Figma, HTML/CSS
대외활동
온라인 해커톤 포텐데이
비사이드
2024
프론트엔드 개발자
3위 수상
10일 간의 기간 동안 기획부터 배포까지 완료
길고양이 돌봄 문화의 선도를 위한 이냥저냥 서비스 출시
카카오 지도 API 연결 및 비즈니스 로직 적용 지도 컴포넌트
현재 위치 표시 애니메이션 제작 및 핀, 클러스터 커스텀 적용
거리 계산 함수
ToolTip
컴포넌트Toast
커스텀 훅 제작캐릭터 아이콘 디자인
프로젝트
옥동(한국 춘란 산채품 직거래 장터)
개인
2023.08. ~ 2024.11.
개요
스택
🛠 기술 스택
FrontendJavaScript
TypeScript
React.js
Next.js (v15)
TailwindCSS
MUI
Zustand
React Query
BackendNest.js
PostgreSQL
InfraGithub
AWS
Docker
Nginx
Firebase (이전)
주요 기능 및 구현 내용
✅ 프론트엔드 개발
Zustand 도입
기존 Recoil 사용 시 Next.js 15와의 호환성 문제 발생
→ Zustand로 전환하여 Provider 없이도 전역 상태 관리 구현
→ React Hook 스타일의 선언 방식과 간결한 Store 구조로 구현 및 유지보수 편의성 향상반응형 UI 설계
TailwindCSS를 활용한 반응형 UI 구현
→ 다양한 디바이스(pc, tablet, mobile)에서 일관된 사용자 경험 제공게시판 필터링 및 페이지네이션
클라이언트 측 필터 및 서버 연동 페이지네이션 기능 구현
→ 데이터 탐색 효율성 및 접근성 향상SEO 최적화
Next.js App Router 기반의 동적 sitemap.xml 및 robots.txt 자동 생성
→ 검색 엔진 크롤링 효율 및 검색 노출 제어 개선sitemap.xml
: 백엔드에서 게시물 정보를 동적으로 받아와 URL 맵핑robots.txt
: 검색 허용 범위 설정metadata
:layout.tsx
에서 페이지별 title, description, Open Graph 정보 추가
검색 포털 등록
Naver, Google 등 주요 검색 포털 3곳에 검색 노출 등록 완료
✅ 백엔드 및 서버 인프라
Nest.js 기반 API 서버 구축
RESTful 아키텍처 설계 및 비즈니스 로직 구현
Firebase → PostgreSQL 마이그레이션
Firebase의 Cursor 기반 페이지네이션 제약으로 임의 페이지 접근 불가 및 응답 지연(평균 3초)
→ PostgreSQL 도입 후 Offset 기반 페이지네이션 적용
→ 평균 응답 속도 0.5~0.7초로 약 3배 이상 성능 개선
컨테이너 기반 배포 환경 구축
AWS EC2 + Docker + Nginx 조합으로 프론트, 백엔드, DB 모두 컨테이너화하여 배포 및 운영
이미지 업로드 최적화
초기에는 클라이언트에서 이미지 리사이징 후 Firebase Storage 업로드
→ 서버에서 리사이징 후 AWS S3 업로드 방식으로 전환하여 클라이언트 부하 감소 및 처리 일관성 확보
✅ SEO 및 사용자 분석
분석 도구 연동
Naver Search Advisor, Google Analytics 연동을 통한 사용자 행동 데이터 수집
UX 개선
유입 경로, 디바이스 유형, 페이지별 체류 시간 등의 지표를 기반으로 UI/UX 개선 진행
Pet Diary(예방접종, 미용 예약 등 반려동물 일정 기록 관리 서비스)
기타
2023.10. ~ 2024.10.
개요
스택
FrontendJavascript
Typescript
React.js
Next.js
TailwindCSS
Recoil
Axios
React-query
ToolsGithub
Notion
주요 기능 및 구현 내용
✅ 프로젝트 협업 및 기획
디자이너, 프론트엔드 및 백엔드 개발자와의 협업 프로젝트
서비스 초기 기획 및 데이터 구조 설계 참여
✅ 프론트엔드 개발
지도 및 위치 검색 기능 구현
Kakao Map API를 활용해 지도 검색 기능 구현
→ 키워드 검색 API 응답을useInfiniteQuery
로 무한 스크롤 처리하여 UX 개선
Compound Components Pattern 적용
Input
컴포넌트를 CCP 기반으로 구현
→ 회원가입, 반려동물 등록 등 다양한 화면에서 통일된 UI 및 재사용성 확보
→ 유지보수성과 확장성 향상
✅ 배포 및 인증 처리
AWS + Docker를 이용한 프론트엔드 배포
→ Docker 기반 컨테이너 이미지로 배포 자동화 일부 진행 (CI/CD 예정)도메인 간 쿠키 인증 문제 해결
Next.js 서버가 클라이언트의 쿠키를 인식하지 못하는 문제 발생
→next.config.js
의rewrites
기능을 활용한 프록시 서버 설정
→ 로그인 토큰 전달 이슈 해결 및 인증 로직 안정화
이냥저냥(길고양이의 위치와 정보를 공유하여 올바른 길고양이 돌봄 문화를 만드는 서비스)
기타
2024.01. ~ 2024.10.
개요
스택
FrontendJavascript
Typescript
React.js
Next.js
TailwindCSS
Zustand
React-query
Tools
Github
Notion
Slack
주요 기능 및 구현 내용
✅ 프로젝트 협업 및 기획
기획자, 디자이너, 프론트엔드 및 백엔드 개발자와의 협업
초기 데이터 흐름 및 컴포넌트 구조 설계에 기여
✅ 프론트엔드 개발
공통 지도 컴포넌트 구현 (Kakao Map API 활용)
kakao-map-sdk
라이브러리를 사용하여 공통 지도 컴포넌트 개발
커스텀 위치 아이콘 및 클러스터 기능 추가
길고양이 위치 표시 아이콘을 선택 유무에 따라 동적으로 스타일 변경
현재 위치 아이콘에 TailwindCSS를 활용한 애니메이션 적용
두 위치 사이의 거리 계산 함수 구현
✅ 프론트엔드 개발
공통 지도 컴포넌트 개발
kakao-map-sdk
를 활용하여 지도 기능 컴포넌트화
→ 커스텀 마커, 클러스터링, 거리 계산 기능 구현동적 UI 적용
위치 아이콘 상태에 따른 스타일 변경
현재 위치 아이콘에 TailwindCSS 애니메이션 적용
두 지점 간 거리 계산 로직 구현
✅ 전역 상태 관리 및 UI 개선
Zustand 기반 전역 상태 관리 도입
React Hook 스타일의 선언 방식과 간결한 Store 구성으로 채택
자주 사용하는 커스텀 메서드를 store에 등록하여 관리 효율성 향상
Toast 커스텀 훅 개발
메시지 타입별 (
info
,check
,error
) 메서드 구분Zustand를 활용해 글로벌 상태에서 Toast 메시지 일괄 관리
setTimeout
으로 자동 사라짐 기능 구현 및 스타일 동적 제어
✅ 소셜 로그인 및 인증 처리 개선
SSR 환경에서 토큰 미전달 문제 발생
로그인 후 클라이언트에서만 토큰을 저장해, Next.js 서버 측에서 쿠키를 인식하지 못하는 이슈 발생
해결 방식
로그인 성공 시, Next.js API 라우트에서
HttpOnly
쿠키로 토큰 직접 설정next.config.js
에 프록시 설정 추가로 동일 도메인처럼 처리Middleware에서 쿠키를 읽어 인증 상태에 따라 페이지 접근 제어
결과
클라이언트와 서버 모두 인증 상태를 일관되게 유지하여, SSR 환경에서도 안정적인 로그인 처리 구현
포트폴리오
교육
울산대학교
대학교(학사) | 디지털콘텐츠디자인학과
2016.03. ~ 2020.02. | 졸업
한국조형예술고등학교
고등학교 | 컴퓨터 그래픽과
2013.03. ~ 2016.02. | 졸업
경력
FI 컴퍼니
팀원 | 디자인팀
2020.07. ~ 2021.08. (1년 2개월)
브랜드 디자인 및 웹디자인, 캐릭터 디자인(캐릭터 저작권 등록), 굿즈 디자인(폰 액세서리 및 스티커, 키링, 반지 등), SNS 홍보물 제작, 판매 상세페이지 관리, 상품 포장 및 출고, 재고 관리 등
울산항만공사
팀원 | 대외홍보팀
2019.07. ~ 2019.12. (6개월)
울산항만공사 SNS 계정관리 및 프로젝트 기획·시행