사용자 인증 시스템
LocalStorage 기반 토큰 관리와 소셜 OAuth 연동을 통한 간편한 로그인/회원가입 기능 구현, 세션 유지 및 자동 로그인 지원
OHESHIO 브랜드의 리뉴얼 홈페이지로, 해외 감성을 담아 새롭게 제작되었습니다. 고급스럽고 세련된 디자인을 위해 벤치마킹을 활용했으며, 모델 컷을 중심으로 브랜드의 아이덴티티를 강조했습니다. 깔끔하면서도 직관적인 레이아웃이 특징입니다.
LocalStorage 기반 토큰 관리와 소셜 OAuth 연동을 통한 간편한 로그인/회원가입 기능 구현, 세션 유지 및 자동 로그인 지원
타이머 기반 이미지 슬라이드 기능으로 상품 모델컷을 자동 순환하여 다양한 착용 모습 제공, 상품 정보의 계층적 구조화로 사용자 경험 최적화
상품 선택부터 결제까지 원활한 사용자 경험 제공, 프로모션 코드 적용 기능 및 다양한 결제 방식 통합으로 사용자 편의성 극대화
상품 데이터 카테고리별 필터링을 통한 직관적인 색상 기반 검색 기능 구현, 실시간 결과 반영으로 사용자 검색 효율성 향상
최근 조회 상품 추적 및 사용자별 맞춤 데이터 관리 시스템, 실시간 토스트 알림을 통한 사용자 액션 피드백 및 상태 변화 시각화
리뉴얼 과정에서 원하는 이미지와 상세페이지 모델컷을 효과적으로 관리하기 위해 JSON 구조 설계가 중요했습니다. 표시해야 할 데이터는 많고 복잡하면서도 사용하기 편리한 구조가 필요했습니다.
E-commerce 플랫폼에서 사용자 편의성을 높이기 위해 소셜 로그인 기능을 필수적으로 구현하고자 했습니다. 카카오, 구글, 네이버 세 플랫폼을 통합하는 것이 목표였으나, 각 플랫폼별 인증 방식과 API 구조의 차이로 인해 일관된 구현에 어려움이 있었습니다.
이 프로젝트는 기존 지니뮤직의 웹 서비스를 현대적인 디자인과 향상된 사용자 경험으로 재해석한 작업입니다. HTML, CSS, JavaScript를 활용하여 개발되었으며, 실시간 음원 차트와 아티스트 상세 정보 등 핵심 기능들을 새롭게 구현했습니다. 특히 사용자 인터페이스 디자인에 중점을 두어 직관적인 네비게이션과 깔끔한 레이아웃으로 시각적 만족도를 높였습니다. GSAP 라이브러리를 활용하여 부드러운 페이지 전환과 요소 애니메이션을 구현함으로써 역동적이고 모던한 사용자 경험을 제공했습니다. 또한, 반응형 웹 디자인을 적용하여 다양한 디바이스에서도 일관된 서비스 경험을 제공할 수 있도록 하였습니다. 웹 표준과 웹 접근성 지침을 준수하여 개발되었으며, 크로스 브라우징 호환성을 고려한 코드 작성으로 안정적인 서비스 구현에 주력하였습니다.
페이지 첫 진입시 스크롤 할때마다 이미지가 scale이 조절되면서 transform이 움직이며 작동 하는 애니메이션, 클릭시 애니메이션으로 한번에 작동합니다.
img의 src속성을 활용하여 배경이미지로 저장을 했습니다. 그리고 섹션 진입시 박스 웨이브를 랜덤으로 설정하여, 음악이 재생되는 분위기를 만들었습니다.
GSAP과 FullPage.js를 함께 사용하는 과정에서 스크롤 이벤트 충돌 문제가 발생했습니다. 두 라이브러리가 서로 다른 방식으로 DOM을 조작하고 스크롤 이벤트를 핸들링하면서, 애니메이션이 끊기거나 스크롤이 정상적으로 동작하지 않는 현상이 발생했습니다.
GSAP의 .set() 메서드로 설정된 초기 위치값들이 윈도우 리사이즈 시 적절하게 업데이트되지 않아 반응형 레이아웃에서 애니메이션이 깨지는 현상이 발생했습니다. 특히 복잡한 시퀀스 애니메이션에서 위치 계산이 부정확해지는 문제가 있었습니다.
Gamers-Nest는 게이머들이 모여 커뮤니티를 형성하고 다양한 정보를 교류할 수 있는 플랫폼입니다. 플레이어는 팀 구성, 게임 리뷰, 멋진 게임 장면을 공유하며 활발히 소통할 수 있습니다. Next.js와 Tailwind CSS, Chakra-UI를 활용하여 개발되었으며, 팀원 모집 게시판, 게임 스크린샷 갤러리, 게임 리뷰 섹션 등 다양한 커뮤니티 기능을 구현했습니다. RAWG API를 활용하여 풍부한 게임 데이터베이스를 구축하고 상세한 게임 정보 페이지를 제공합니다. 특히 사용자 경험을 고려한 세련된 페이지네이션 시스템을 구축하였고, Swiper.js를 활용하여 직관적인 이미지 슬라이더를 구현했습니다. 다크모드를 지원하여 사용자의 선호도에 맞는 인터페이스를 제공하며, 반응형 디자인을 적용하여 데스크톱과 모바일 환경에서 모두 최적화된 서비스를 제공합니다. Vercel을 통해 배포되어 안정적인 서비스를 제공하고 있으며, 지속적인 업데이트를 통해 사용자들의 피드백을 반영하고 있습니다.
다양한 게임 타이틀을 빠르고 효율적으로 검색할 수 있는 통합 검색 시스템을 제공합니다.
유저들이 자유롭게 소통하고 정보를 공유할 수 있는 interactive한 커뮤니티 공간입니다.
게시글의 이미지를 클릭하여 상세하게 확대 확인할 수 있는 뷰어 기능을 제공합니다.
게시판의 콘텐츠를 사용자가 원하는 조건으로 분류하고 정렬할 수 있는 필터링 시스템을 제공합니다.
RAWG API에서 대량의 게임 데이터를 가져올 때 성능 이슈가 발생했습니다. 특히 이미지가 많은 데이터를 처리하고 캐싱하는 과정에서 렌더링 지연과 메모리 사용량 증가 문제가 있었습니다.
Grid로 구성된 레이아웃에 Swiper를 통합하는 과정에서 반응형 디자인 이슈가 발생했습니다. 특히 화면 크기 변경 시 Grid와 Swiper의 레이아웃이 충돌하면서 컨텐츠 깨짐과 스와이프 동작 오류가 발생했습니다.
사용자 취향 분석 알고리즘과 소셜 기능이 결합된 새로운 OTT 경험을 제공합니다. 콘텐츠 추천부터 시청 커뮤니티까지, 단순한 영상 시청을 넘어 콘텐츠와 소통하는 플랫폼입니다.
Viewee는 React-Vite 기반으로 개발된 OTT 플랫폼으로, 프로젝트 팀장으로서 전체 개발 과정을 주도했습니다. TMDB API 설계 및 사용자 데이터 연동을 담당하여 개인화된 콘텐츠 추천 시스템을 구현했습니다. 또한 실시간 알림 기능을 개발하여 사용자 경험을 향상시키고, Redux를 활용한 상태 관리와 반응형 디자인 적용으로 다양한 디바이스에서의 접근성을 확보했습니다.
TMDB API를 활용하여 카테고리별 필터링과 검색 기능을 구현했습니다. 사용자가 원하는 영화나 시리즈를 쉽게 찾을 수 있도록 직관적인 인터페이스를 설계했으며, 검색 결과는 실시간으로 업데이트되어 사용자 경험을 향상시켰습니다.
Local Storage를 활용하여 로그인 및 회원가입 기능을 구현했습니다. 사용자 데이터를 안전하게 저장하고 관리할 수 있으며, 개인화된 마이페이지를 통해 관심 콘텐츠와 시청 기록 등을 확인할 수 있도록 했습니다. 사용자 인증 상태에 따라 UI가 동적으로 변경되어 맞춤형 경험을 제공합니다.
토스트 알림과 팝업 알림을 통해 사용자에게 실시간 피드백을 제공했습니다. 사용자 활동(찜하기, 평가 등록, 로그인 등)에 따라 적절한 알림을 표시하여 상호작용을 강화했으며, 사용자 데이터와 연동하여 개인화된 알림 경험을 구현했습니다. 직관적인 디자인으로 사용자가 쉽게 알림을 인지하고 반응할 수 있도록 했습니다.
TMDB API를 통해 데이터를 비동기로 가져올 때, 외국 작품과 성인물을 제외하고 필터링하려 했으나 원하는 결과가 제대로 출력되지 않았습니다. API 응답에서 필터링 조건이 예상대로 작동하지 않는 문제가 발생했습니다.
Git을 활용한 팀 협업 중 각자의 브랜치에서 작업 후 develop 브랜치로 병합하는 과정에서 많은 충돌과 오류가 발생했습니다. 또한 개인 브랜치에 최신 develop 코드를 pull 받는 과정에서도 충돌이 자주 발생했습니다.
컴포넌트 렌더링 시 API를 통해 데이터를 불러오는 과정에서, 특히 이미지가 많은 경우 로딩 시간이 길어져 사용자 경험이 저하되었습니다. 로딩 스피너를 사용하지 않고 더 효율적인 데이터 로딩 방법이 필요했습니다.
인터랙티브한 애니메이션과 세련된 디자인이 특징인 개발자 포트폴리오 웹사이트
이 포트폴리오는 GSAP와 Lines 활용하여 부드러운 페이지 전환과 스크롤 기반 애니메이션을 구현했습니다. Next.js 13의 App Router를 도입하여 라우팅과 페이지 전환을 최적화했으며, Tailwind CSS를 사용하여 반응형 디자인을 구현했습니다. 특히 WebGL을 활용한 3D 요소와 커스텀 셰이더로 독특한 시각적 효과를 만들어냈으며, 성능 최적화를 통해 모바일 환경에서도 60fps의 부드러운 애니메이션을 구현했습니다.
GSAP와 Lenis 활용하여 페이지 전환 시 부드럽고 직관적인 애니메이션을 구현하였습니다. 또한, 스크롤 기반 인터랙션을 통해 사용자가 콘텐츠를 자연스럽게 탐색할 수 있도록 디자인하였습니다. 전체적인 색상 및 타이포그래피는 사용자 친화적인 경험을 제공하기 위해 세련되게 구성하였습니다.
Next.js 13의 App Router를 통해 서버 사이드 렌더링(SSR)과 클라이언트 사이드 렌더링(CSR)을 적절히 조합하여 빠르고 안정적인 라우팅 경험을 제공합니다. 사용자 요청 시 필요한 데이터만 로드되어 성능을 최적화하였습니다.
SCSS와 Tailwind CSS를 사용하여 다양한 디바이스에서도 콘텐츠가 보기 좋게 표시되도록 반응형 디자인을 적용하였습니다. 모바일, 태블릿, 데스크톱 환경 모두에서 일관된 사용자 경험을 제공합니다.
카드 애니메이션의 초기 상태가 잘못된 위치에서 시작하는 문제가 발생했습니다. 이는 애니메이션 초기화 시 CSS 트랜스폼 값이 제대로 적용이 되지 않는 문제 였습니다.
브라우저 창 크기를 조정할 때 애니메이션 요소의 위치값이 제대로 갱신되지 않아, 애니메이션 동작이 부자연스러워졌습니다.
같은 섹션을 클릭했을 때 비정상적인 동작: 같은 해시를 클릭해도 정상적으로 URL이 초기화되거나, 새로운 이벤트가 트리거되지 않는 문제가 있었습니다. 특정 링크를 클릭했을 때, 해시 상태를 토글하거나 초기화할 수 있도록 구현해야 했습니다.