ArtTalkTalk은 신진 작가들이 자신의 작품을 전시하고, 피드백을 받으며, 자유롭게 소통할 수 있는 온라인 플랫폼입니다. 작품 구매 및 나눔, 기부 기능도 지원하여 예술 생태계 형성을 목표로 합니다.
담당한 기능
공통 컴포넌트 개발, 마이 페이지 / 프로필 수정 페이지 / 계정 정보 페이지 구현, 탈퇴 기능 구현, 댓글 CRUD 구현
Next.js의 Parallel Routes 기능을 활용하여 내 계정 페이지 내에서 계정 편집/계정 삭제 탭 전환 UI를 구현했습니다. URL은 유지하면서, 각 탭에 대응하는 페이지 컴포넌트를 병렬로 렌더링할 수 있도록 구성했습니다.
@editProfile
, @deleteProfile
구조를 통해 서로 다른 페이지 컴포넌트를 독립적으로 병렬 구성할 수 있도록 디렉토리 구조를 설계layout.tsx
에서 editProfile
, deleteProfile
을 props로 받아 탭 전환 시 필요한 컴포넌트만 조건 렌더링되도록 구현하여, 라우팅 성능과 사용자 경험을 향상시킴react-hook-form
의 Controller
를 사용해 입력 상태 관리와 유효성 검사를 통합하고, 성능을 개선했습니다.
Controller
를 통해 외부 컴포넌트와의 폼 연동 로직 간소화고화질 PNG 이미지로 인해 느려졌던 초기 페이지 로드 성능을 최적화했습니다.
Image
컴포넌트에 formats: ['image/avif', 'image/webp']
옵션을 적용하여 자동 포맷 변환 및 브라우저 최적 형식 제공lazy loading
, placeholder
기능을 함께 사용해 사용자 체감 성능 향상API 요청 최적화를 통해 성능 향상 및 데이터 동기화 효율화했습니다.
React Query
를 도입하여 API 응답 캐싱, 중복 요청 방지, 자동 리페칭 구현계정 관련 핵심 페이지(Mypage, 프로필 수정, 회원 탈퇴 등 사용자 계정 기능)를 일관된 UI/UX로 구축했습니다.
모바일, 태블릿, 데스크탑 환경에서도 일관된 사용자 경험을 제공하는 반응형 UI를 구현했습니다.
Tailwind CSS
를 활용한 반응형 레이아웃 및 유연한 그리드 시스템 구축📌 문제 배경
프로젝트에서 다양한 입력 폼을 처리할 때, 각 입력 필드의 상태를 useState
로 개별적으로 관리하고 유효성 검사 로직을 직접 구현했습니다. 그러나 입력 필드가 많아질수록 코드의 복잡도가 증가하고, 중복 코드가 발생하여 가독성과 유지보수성이 저하되었습니다. 또한, 불필요한 리렌더링이 발생하면서 폼의 성능 저하가 우려되는 문제도 있었습니다.
🔍 원인 분석
useState
를 이용한 개별 상태 관리로 인한 코드 중복과 복잡도 증가🛠 해결 과정
react-hook-form
을 활용하여 각 입력 필드의 상태를 중앙에서 관리하고, 불필요한 useState
사용을 줄여 코드 구조를 단순화Controller
를 통해 입력 값과 폼 상태를 효과적으로 연동하고 이벤트 핸들러를 간결하게 처리✅ 결과
react-hook-form
도입으로 유효성 검사 로직을 일관되게 유지하며 가독성 향상🧠 배운 점
이 경험을 통해 폼 상태 관리 및 유효성 검사 최적화의 중요성을 배웠습니다. react-hook-form
을 적용하면서 코드의 복잡도를 줄이고 유지보수성을 높일 수 있었으며, 성능 최적화를 통해 사용자 경험을 개선할 수 있었습니다.
📌 문제 배경
프로젝트 초기에는 프론트엔드, 백엔드, 디자이너 간의 원활하지 않은 소통으로 인해 작업 지연 및 요구사항 전달 문제가 발생했습니다. 각 팀의 작업 타임라인과 우선순위가 일치하지 않아 협업이 비효율적으로 이루어졌으며, 즉각적인 피드백이 어려워 개발 과정에서 요구사항 변경이 생길 때 대응 속도가 느려졌고, 프로젝트 일정에 부정적인 영향을 미쳤습니다.
🔍 원인 분석
🛠 해결 과정
Block / Done / To-do
형식으로 매일 각자의 업무 상황을 공유하며, 필요한 협업을 빠르게 파악하고 문제를 조기에 해결✅ 결과
🧠 배운 점
이 경험을 통해 팀 간 소통의 중요성을 실감했습니다. 코어타임을 활용한 실시간 피드백 덕분에 의사결정이 신속하게 이루어졌고, 데일리 스크럼을 통해 개발 진행 상황을 명확하게 공유하면서 협업의 효율성이 향상되었습니다. 이러한 경험을 바탕으로 앞으로도 효과적인 협업 환경을 구축하는 데 집중하고, 팀워크를 극대화할 수 있는 소통 방식을 지속적으로 적용할 계획입니다.