채용공고 올리기

박수아님을 응원해보세요!

지금 만족하고 있어요

미리보기

기본 정보

이름
박수아
직업
프론트엔드 개발자
간단 소개

안녕하세요. 프론트엔드 개발자 박수아입니다.

자기소개

자기소개

저는 재사용 가능한 공통 컴포넌트를 설계하고 최적화하는 데 깊은 관심을 가지고 있으며, 이를 통해 개발 팀의 생산성과 코드 품질을 높이는 것을 목표로 하고 있습니다. 최근에는 Compound Components Pattern을 적극적으로 활용하여 Input 컴포넌트를 설계한 경험이 있습니다.

프로젝트에서는 다양한 Input 컴포넌트를 통합하기 위해 CCP를 적용하여 하나의 유연한 Input 컴포넌트로 구조화했습니다. 이를 통해 사용자는 단일 인터페이스로 여러 형태의 입력 방식을 관리할 수 있도록 했으며, 이를 팀원들과의 코드 리뷰 과정을 통해 더욱 개선했습니다. 이러한 접근은 일관성 있는 UI 설계를 가능하게 했을 뿐 아니라, 컴포넌트 사용성을 크게 향상시켜 팀 전반의 생산성을 높이는 데 기여했습니다.

팀 내 협업에서는 코드 리뷰와 피드백 과정을 중요하게 생각하며, 이를 통해 컴포넌트의 유지 보수성과 확장 가능성을 지속적으로 발전시켜 왔습니다. 저는 새로운 기술과 패턴을 학습하고, 프로젝트에 이를 실험적으로 적용하며, 팀과 공유하는 것을 즐깁니다. 최근에도 Feature-Sliced Design(FSD) 아키텍처를 학습하고 있으며, 이를 프로젝트에 적용하는 방법에 대해 깊이 탐구하고 있습니다.

기술 스택

기술 스택

JavaScript, TypeScript, React, Next.js, zustand, react-query, TailWindCSS, Firebase, aws-ec2, Docker, Notion, JIRA, Confluence, GitHub, Figma

교육

소속/기관명

울산대학교

종류 | 전공

대학교(학사) | 디지털콘텐츠디자인학과

재학 기간 | 재학 상태

2016.03. ~ 2020.02. | 졸업

소속/기관명

한국조형예술고등학교

종류 | 전공

고등학교 | 컴퓨터 그래픽과

재학 기간 | 재학 상태

2013.03. ~ 2016.02. | 졸업

경력

회사명

니토디자인

직급 | 부서 | 근무 유형

팀원 | 시각디자인팀

근무 기간

2021.12. ~ 2022.05. (6개월)

담당 업무

시각 디자인(명함, ppt 템플릿, 패키지, 캐릭터, 이모티콘 등 작업 진행)

회사명

㈜에스에이치컴퍼니

직급 | 부서 | 근무 유형

팀원 | 디자인팀

근무 기간

2021.05. ~ 2021.09. (5개월)

담당 업무

사내 프랜차이즈 브랜딩 디자인 및 사인물, SNS 홍보 컨텐츠 제작

회사명

FI 컴퍼니

직급 | 부서 | 근무 유형

팀원 | 디자인팀

근무 기간

2020.07. ~ 2021.08. (1년 2개월)

담당 업무

브랜드 디자인 및 웹디자인, 캐릭터 디자인(캐릭터 저작권 등록), 굿즈 디자인(폰 액세서리 및 스티커, 키링, 반지 등), SNS 홍보물 제작, 판매 상세페이지 관리, 상품 포장 및 출고, 재고 관리 등

회사명

울산항만공사

직급 | 부서 | 근무 유형

팀원 | 대외홍보팀

근무 기간

2019.07. ~ 2019.12. (6개월)

담당 업무

울산항만공사 SNS 계정관리 및 프로젝트 기획·시행

대외활동

활동명

온라인 해커톤 포텐데이

소속/기관명

비사이드

연도

내용

프론트엔드 개발자

  • 3위 수상

  • 10일 간의 짧은 시간 동안 기획부터 배포까지 완료

  • 우리 동네 길냥이들 올바른 돌봄 문화의 시작, 이냥저냥 서비스 출시

  • 카카오 지도 API 연결 및 비즈니스 로직 적용 지도 컴포넌트

    • 현재 위치 표시 애니메이션 제작 및 핀, 클러스터 커스텀 적용

    • 거리 계산 함수

  • ToolTip 컴포넌트

  • Toast 커스텀 훅 제작

  • 캐릭터 아이콘 디자인

프로젝트

프로젝트명

옥동

소속/기관명

개인

프로젝트 기간

2023.08. ~ 2024.11.

프로젝트 내용

개요

스택

Javascript TypescriptReact.jsNext.jsTailwindCSS MUIReact-query Zustand Nest.js postgreSQL Github AWS EC2 AWS ECR Docker nginx

Feature

  • RESTful API

  • AWS, Docker를 사용한 프론트엔드, 백엔드 서버 및 데이터 베이스 배포

  • 게시판 내 필터, 페이지네이션 기능 추가

  • 반응형 UI를 적용해 다양한 기기에서 일관된 사용자 경험을 제공

SEO 최적화

  • sitemap.xml

    • Next.js에서 제공하는 sitemap.ts 파일 변환 라우트 핸들러를 통해 동적 sitemap.xml 생성

    • 사이트맵 생성으로 인해 search bots 크롤링 최적화

  • robots.txt

    • Next.js에서 제공하는 robots.ts 파일 변환 라우트 핸들러를 통해 동적 robots.txt 생성

    • search bots 크롤링 허용 범위 설정

  • metadata

    • layout.tsx를 통해 metadata 작성으로 title, description, open graph 설정

    • contents detail 페이지의 경우, 서버 컴포넌트에서 서버 데이터를 받아와 페이지 layout에 추가적으로 설정하여 사용자의 접근성을 높이고자 함

  • 검색 포털 사이트 3사에 sitemap.xml, robots.txt 파일을 토대로 검색 노출 신청
    ⇒ 현재 검색 포털 사이트 3사에 키워드 검색 시 확인 가능

  • Naver Search Advisor, Google Analytics 추가
    ⇒ 웹 페이지 내 사용자 유입 경로 및 디바이스 등 인사이트 확보
    ⇒ 확보한 인사이트를 바탕으로 유입 keywords 수정 진행

서버 구현

  • Firebase를 이용해 초기 서버를 구축했으나 페이지네이션 구현이 복잡하고 대량 데이터를 처리할 때 속도 저하 문제 발생 (데이터 패칭 약 3s 가량 소요)
    ⇒ 이를 해결하기 위해, Nest.jsPostgreSQL로 직접 서버와 데이터베이스를 설계
    offset pagination 알고리즘을 적용해 API 성능을 크게 개선하여, 데이터 패칭 시간이 3배 이상 단축 (데이터 패칭 약 0.5 - 0.7s 소요)

  • 프론트엔드에서 이미지 리사이징 후 Firebase bucket 저장
    ⇒ 서버에서 이미지 리사이징 후, AWS S3에 업로드할 수 있도록 로직 수정

프로젝트명

pet diary

소속/기관명

기타

프로젝트 기간

2023.10. ~ 2024.10.

프로젝트 내용

개요

  • 반려동물의 예방접종, 미용 예약 등 일정을 달력에 기록하고 관리할 수 있는 서비스

  • Github

  • 배포 사이트

스택

Javascript TypescriptReact.jsNext.jsTailwindCSSRecoilAxios React-query Nest.js Github AWS Docker

Feature

  • 디자이너, 프론트엔드 및 백엔드 개발자 협업 프로젝트(기획 참여)

  • RESTful API

  • AWS, Docker를 사용한 프론트엔드 배포

  • kakao API를 통해 지도 및 위치 검색 기능 구현

Kakao API

  • 카카오 지도 키워드 검색 API에서 받아오는 서버 데이터를 React-query에서 제공하는 useInfiniteQuery를 활용하여 무한 스크롤 기능 구현

middleware

  • Next.js의 SSR 환경에서 도메인 간 쿠키 접근 제한으로 인해, 쿠키 값을 읽을 수 없는 undefined 에러 발생
    ⇒ 이 문제를 해결하기 위해 Next.js의 rewrite 기능을 사용하여 프록시 서버를 설정, 도메인 간 통신을 안전하게 처리하고, 토큰을 기반으로 정확한 페이지 리디렉션 구현. 이를 통해 로그인 및 인증 기능이 안정적으로 동작하도록 개선

Input Compound Components Pattern

  • 회원가입 시 뿐만아니라 반려동물 정보 및 일정 추가, 수정 등 많은 화면에서 다양한 Input 타입 사용
    ⇒ 디자인 패턴을 일정하게 조절할 수 있는 Compound Components Pattern을 이용하여 Input 컴포넌트 개발

프로젝트명

이냥저냥

소속/기관명

기타

프로젝트 기간

2024.01. ~ 2024.10.

프로젝트 내용

개요

  • 우리 동네 길고양이의 위치와 정보를 공유하여 올바른 길고양이 돌봄 문화를 만드는 서비스

  • Github

  • Notion

  • 배포 사이트

스택

Javascript Typescript React.js Next.js TailwindCSS Zustand React-query Github

Feature

  • 기획자 및 디자이너, 프론트엔드, 백엔드 개발자 협업 프로젝트

  • RESTful API

Kakao Map API

  • kakao-map-sdk 라이브러리를 사용하여 공통 지도 컴포넌트 구현

    • 단순 위치 표기용, 커스텀 위치 아이콘나 클러스터 표시 등 다양한 상황에서 목적에 맞게 활용 가능하도록 컴포넌트 설계

  • 커스텀 위치 아이콘 구현

    • 컨텐츠 위치 표시 아이콘

      • 선택 유무에 따라 css 적용

    • 현재 위치 표시 아이콘

      • tailwindCSS를 활용하여 애니메이션 추가

    • 커스텀 클러스터 추가

  • 두 위치 사이의 거리 계산 함수 구현

Zustand

  • 새로운 상태관리 라이브러리 도입
    ⇒ React Hook과 같은 선언 방식, store 생성 시 액션 작성이 용이하여 사용빈도가 높은 커스텀 메소드를 등록할 수 있다는 점이 좋아 채택

Toast 커스텀 훅 제작

  • Toast 커스텀 훅을 제작해 정보 알림, 확인, 에러 등 다양한 상태의 메시지를 동적으로 관리 및 각 메시지의 상태에 따라 유연하게 UI 변경
    Zustand 상태 관리를 활용해 Toast 메시지들을 전역적으로 관리, 이를 통해 각 컴포넌트에서 동일한 메시지 관리 로직을 공유
    setTimeout을 이용해 Toast 메시지가 일정 시간 후에 자동으로 사라지도록 구현
    다양한 UI 상태 관리: Toast 메시지를 단순히 텍스트만 출력하는 것이 아니라, 객체 형태로 전달된 다양한 상태(성공, 텍스트)에 맞춰 아이콘, 색상, 메시지 스타일을 유연하게 변경할 수 있도록 설계

    const { addToast } = useToast();
    
    addToast.check('새로운 소식을 등록했어요!');
    

Social Login + middleware

  • 위 pet diary 프로젝트와 마찬가지로 서버에서 토큰을 받아올 수 없는 문제 발생
    ⇒ 소셜 로그인 후 토큰 값을 Next.js 서버에서 토큰 값을 설정 후 미들웨어에서 페이지 리디렉션을 수행할 수 있도록 구현

포트폴리오

URL

link

포트폴리오

노션
link

블로그

URL 링크
댓글