작업 기간
2023.08 - 2023.10
업무/기여도
프론트엔드 개발, 퍼블리싱(PA) / 20%
기기 환경
반응형 웹
사용 기술
‘비스포크 웨딩 펀딩(BESPOKE Wedding FUNding)’ 은 삼성전자가 신혼부부의 새로운 시작을 응원하는 캠페인입니다. 캠페인에 참여한 예비 부부에게는 다양한 모바일 청첩장이 지원되며, 청첩장에 갖고 싶은 삼성 가전 위시리스트를 추가하면 펀딩금을 통해 해당 가전을 구매할 수 있습니다. 서브페이지를 중심으로 사용자의 PC/태블릿/모바일 디바이스 환경에 최적화된 반응형 웹을 구현하였습니다.
구축 프로젝트이며, Next.js 환경에서 emotion 이란 css 라이브러리를 사용하여 작업했습니다. 디자인 수급은 figma 로 이루어졌고 기획을 제외한, 디자인(7), 프론트엔드(6), 백엔드(5) 네이티브(2) 개발팀 전체가 TF팀으로 활동하였습니다. 기획의 경우 제일기획과의 협업으로 진행이 되었습니다.
체크박스 컴포넌트 활용 → 전체 선택/해제 기능을 포함한 상태 관리 로직 구현
개별 약관 동의 상태를 감지해 모든 필수 약관 동의 완료 시에만 다음 단계 진행 버튼이 활성화되도록 조건부 렌더링 구현
약관 내용 아코디언 탭 기능 구현 및 재사용성을 고려한 공통 컴포넌트 설계
사용자 정보 데이터 연동 및 수정 기능 구현
yup 라이브러리를 활용한 입력값 검증 구현 로그인 상태와 청첩장 생성 여부를 확인하여 접근 가능한 기능을 동적으로 제한하고, 권한에 맞게 UI를 제공
청첩장 공유하기, 수정하기, 펀딩금 관리하기 등 페이지 진입 라우팅
펀딩금 관리페이지 D-DAY 시스템: 마감 기한까지 남은 일수를 실시간으로 계산하고, 기한 상태(진행중/마감임박/마감)에 따라 조건부 디자인 적용
로그아웃, 탈퇴 등 주요 액션 관련 confirm 및 에러코드 값에 따른 에러 confirm 모달 구현
축하금 액수 및 전달 기한 실시간 데이터 연동
select box, input 등 입력폼
펀딩금 전달 리스트 데이터 반복문으로 구현 (요청 여부, 전달리스트 여부에 따라 형태 구현)
자세히 보기 버튼 → 펀딩금 송금 안내 팝업 구현
반응형 퍼블리싱 작업
폼 유효성 검사 에러 상태 초기화
문제: 날짜 선택 시 년도/월/일이 변경될 때마다 이전 에러 상태가 남아있어 사용자가 올바른 값을 입력해도 에러 메시지가 계속 표시되는 문제가 발생
해결: reat-hook-form 의 clearErrors 함수를 각 필드 변경 시점에 호출하여 에러 상태를 즉시 초기화하고, 사용자 경험을 개선
날짜 선택 컴포넌트 상태 동기화
문제: 년도/월/일을 선택 시 각 필드가 독립적으로 변경되어 유효하지 않은 날짜 조합이 생성되거나, 월 변경 시 일 필드가 초기화되지 않는 문제가 발생
해결: useEffect 를 활용하여 년도/월 변경 시 일 필드를 자동으로 초기화하고, 모든 필드가 완성되었을 때만 모든 년도/월/일이 기입된 값을 불러오는 로직을 구현
날짜 유효성 검사 로직
문제: 펀딩금 전달 기한 설정에서 오늘 이전 날짜 선택 시 에러 처리가 즉시 반영되지 않고, 60일 제한 검사가 복잡하게 구현된 문제가 발생
해결: 수정일(당일) 이전일 경우를 구하는 함수에서 시간을 0으로 설정하여 정확한 날짜 비교를 하고, 에러 상태를 즉시 업데이트하는 로직으로 개선
무한스크롤 스크롤 이벤트 최적화
문제: 펀딩금 전달 리스트 페이지의 인피니트 스크롤 로직에서 이벤트가 너무 자주 발생하여 성능 저하와 불필요하게 API 호출이 발생함
해결: lodash/debounce 를 활용하여 15ms 딜레이를 적용하여 스크롤 이벤트를 최적화하고 성능을 개선
스타일 관리의 비효율성 문제
문제: 기본적으로 스타일링의 경우 순수 scss를 사용해왔는데, 전역 네임스페이스 충돌 문제 혹은 컴포넌트 단위 스타일 관리에 어려움이 있거나 재사용성/유지보수 측면에서 한계가 드러남
해결: emotion 라이브러리를 도입하여 컴포넌트 단위로 스타일링을 적용 → 동적 스타일 제어를 통해 코드 가독성과 유지보수성을 개선, 전역 스타일 충돌 문제를 해소하여 개발 효율성과 환경을 향상