개발 기간: 25.07.10 ~ 25.07.25
친구, 동료에게 직접 전하지 못한 말을 글로 남기고 공유할 수 있는 감성 웹 서비스입니다.
단순 메시지 작성 그 이상의 경험을 제공하며, 사용자 친화적인 UI와 직관적인 흐름으로 구성되어 있습니다.
-
React 기반의 SPA 아키텍처 구조 이해 및 실습
→ 라우팅 구성, 컴포넌트 설계, 상태 전이 흐름 등 전체 흐름을 설계하고 구현함 -
사용자 중심 UX 흐름 설계
→ 단순한 CRUD를 넘어서 실제 유저 사용 시나리오에 맞는 페이지 흐름 구현 -
SCSS 기반 스타일 구성 및 생산성 향상 시도
→ CSS Module + classnames + SCSS 함수를 조합하여 스타일 재사용성과 유지보수성 고려 -
협업 중심 프로젝트 관리 경험
→ Git 브랜치 전략, 코드 스타일 규칙, 커밋 컨벤션, PR 리뷰 등을 통해 협업 경험 체득
구경해보기버튼 클릭 → 롤링페이퍼 리스트 페이지(/list)로 이동롤링페이퍼 만들기버튼 클릭 → 롤링페이퍼 생성 페이지(/post)로 이동
- 인기 롤링페이퍼 / 최신 롤링페이퍼 리스트 조회 (
GET) 나도 만들어보기버튼 클릭 → 롤링페이퍼 생성 페이지(/post)로 이동- 페이퍼 카드 클릭 → 해당 상세 페이지(
/post/{id})로 이동
- 선택 가능한 배경 컬러 / 이미지 목록 조회 (
GET) - 수신자 이름(To.) + 배경 선택 후
생성하기버튼 클릭 → 롤링페이퍼 상세 페이지(/post/{id})로 이동 (POST)
-
해당 대상에게 남긴 메시지 리스트 조회 (
GET) -
+버튼 클릭 → 메시지 작성 페이지(/post/{id}/message)로 이동 -
메시지 카드 클릭 → 모달로 메시지 내용 상세 확인
-
🙂 이모지 추가 버튼 클릭 → 이모지 선택 후 추가 (
POST) -
공유 기능
카카오톡 공유→ 카카오 로그인 새 탭 오픈URL 공유→ 현재 페이지 주소 복사
-
수정 모드 진입 (
수정하기버튼 클릭)- 메시지 카드 내
삭제 버튼 클릭→ 메시지 삭제 (DELETE) - 메시지 카드 클릭 → 수정 모달 표시 → 수정 후 저장 (
PATCH)
- 메시지 카드 내
- 작성자 이름, 이미지, 메시지 등 입력 →
등록클릭 → 롤링페이퍼 상세 페이지로 이동 및 메시지 전달 (POST)
| 예외 상황 | 처리 방식 |
|---|---|
| 존재하지 않는 URL 접근 | 404 페이지 또는 토스트 출력 |
| 메시지 작성 미완성 | 전송 버튼 비활성화 (유효성 검사) |
- 📌 Colocation 방식 적용
각 페이지에서 사용하는 컴포넌트, 스타일, 상수를 해당 폴더에 함께 배치 - 📌 SCSS Module + classnames 조합
컴포넌트 단위 캡슐화된 스타일 관리
📦 src
├── 📁 apis
│ └─ API 통신 모듈
│
├── 📁 assets
│ └─ 이미지, 폰트 등 정적 자원
│
├── 📁 components
│ ├── 📁 layout # Header 등 공통 레이아웃 컴포넌트
│ ├── 📁 PostNav # Post 페이지 전용 내비게이션 컴포넌트
│ └── 📁 ui # 버튼, 카드, 모달 등 공용 UI 요소
│
├── 📁 hooks
│ └─ 커스텀 훅 모음 (예: useAsync 등)
│
├── 📁 layouts
│ └─ 전체 페이지 공통 레이아웃
│
├── 📁 pages # 라우팅 기준 페이지, Colocation 방식 구성
│ ├── 📁 Home # 메인 페이지
│ ├── 📁 List # 롤링페이퍼 리스트
│ ├── 📁 Message # 메시지 작성 페이지
│ ├── 📁 PostCreate # 롤링페이퍼 생성
│ ├── 📁 PostDetail # 생성된 롤링페이퍼 상세 (무한스크롤 적용)
│ ├── 📁 PostEdit # 메시지 수정/삭제
│ └── 📁 NotFound # 404 페이지
│ └── *.module.scss # 컴포넌트별 스타일 파일
├── 📁 styles
│ └─ 전역 스타일 변수, reset, SCSS mixins 등
│
├── Main.jsx # React 앱 진입점 및 라우팅 정의
└── index.html # 정적 HTML 템플릿



