diff --git a/README.md b/README.md
index 49c627e3..8881b941 100644
--- a/README.md
+++ b/README.md
@@ -1,29 +1,75 @@
+
+
+ ![header](https://capsule-render.vercel.app/api?type=waving&height=300&color=0075FF&text=Washfit&reversal=false&textBg=false&fontColor=EEEEEE)
+
+
+
# ๐ ์์ ํ ์ธ์ฐจ์ฉํ ์ ๋ณด ์ ๊ณต ํ๋ซํผ
## ๐ ํ๋ก์ ํธ ๋งํฌ
-- [๋ฐฐํฌ URL](https://dev.washfit.site/)
+- [์ด์ ์๋ฒ URL](https://www.washfit.site/)
+- [๊ฐ๋ฐ ์๋ฒ URL](https://dev.washfit.site/)
- [์คํ ๋ฆฌ๋ถ URL](https://www.chromatic.com/library?appId=659a0cf1b613430cc09b3672)
- [ํผ๊ทธ๋ง URL](https://www.figma.com/file/B4wGiQ4M4k3mtcSyyK0ATf/washpedia?type=design&node-id=241-4547&mode=design&t=IuuBM2gGXeTFVTIW-0)
- [๋
ธ์
URL](https://www.notion.so/Wash-pedia-0d4a31ff248349b3a3ea202e048303d5)
-## ๐ ํ๋ก์ ํธ ์๊ฐ
+## ๐ ๊ฐ์
-- Washpedia๋ ์ฐจ๋ฅผ ๊นจ๋ํ๊ฒ ๋ง๋๋ "์ธ์ฐจ ์ฉํ"์ ๋ํ ๊ธฐ๋ณธ ์ ๋ณด์ ์ ํด์ฑ ์ ๋ฌด๋ฅผ ์ฝ๊ฒ ์ฐพ์๋ณผ ์ ์๋ ์น ์๋น์ค์
๋๋ค.
-- ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์ธ์ฐจ์ฉํ์ ์ถ์ฒ ๋ฐ์ ์ ์์ต๋๋ค.
-- ์ฃผ๋ณ์ ์ธ์ฐจ์ฅ์ด ์ด๋ ์๋์ง, ์ด๋ค ํ๊ธฐ๊ฐ ๋ด๊ฒจ์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
-- ์ธ์ฐจ ๊ด๋ จ ์ ํ๋ธ ์์์ ์ถ์ฒ ๋ฐ์ ์ ์์ด์.
+Washfit๋ ์ฐจ๋ฅผ ๊นจ๋ํ๊ฒ ๋ง๋๋ "์ธ์ฐจ ์ฉํ"์ ๋ํ ๊ธฐ๋ณธ ์ ๋ณด์ ์ ํด์ฑ ์ ๋ฌด๋ฅผ ์ฝ๊ฒ ์ฐพ์๋ณผ ์ ์๋ ์น ์๋น์ค์
๋๋ค.
+## ๐ฅ ์ฃผ์ ๊ธฐ๋ฅ ์๊ฐ
+
+**์ง๋**
+- ์นด์นด์ค ์คํ api์ ์ด์ฉํ์ฌ ์ฌ์ฉ์ ์ฃผ๋ณ ์ธ์ฐจ์ฅ ์์น์ ์ธ์ฐจ์ฅ ์ ๋ณด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
+- ๋ด ์์น๋ก ์ด๋ ๋ฒํผ์ ํตํด ์ ์ ์์น๋ก ์ด๋ํ ์ ์์ต๋๋ค.
+
+**์ฆ๊ฒจ์ฐพ๊ธฐ**
+- ์ฌ์ฉ์๊ฐ ์ฐํ ์ธ์ฐจ ์ฉํ๋ค์ ๋ณผ ์ ์์ต๋๋ค.
+- ์กฐํ์ / ํน์ด์ฌํญ / ์ต์ ์ / ์ถ์ฒ์์ผ๋ก ์ธ์ฐจ์ฉํ๋ค์ ํํฐ๋ง ํ ์ ์์ต๋๋ค.
+
+**ํํ์ด์ง**
+- ๊ณต์ง์ฌํญ์ ์ฌ๋ผ์ด๋๋ก ์ฐ์ํด์ ๋ณผ ์ ์์ต๋๋ค.
+- ๋ง์ดํ์ด์ง์์ ๋ฑ๋กํ ์ ๋ณด๋ฅผ ํ ๋๋ก ํ์๋ค์ด ๋ง์ด ์ฐํ ์ธ์ฐจ ์ฉํ์ ์ถ์ฒ ๋ฐ์ ์ ์์ต๋๋ค
+- ์กฐํ์ / ํน์ด์ฌํญ / ์ต์ ์ / ์ถ์ฒ์์ ๋ฐ๋ผ ์ธ์ฐจ ์ฉํ์ ๋ณผ ์ ์์ต๋๋ค.
+
+**์ฑ๋**
+- 10๋ง๋ช
์ด์์ ๊ตฌ๋
์๋ฅผ ๋ณด์ ํ ์ ๋ช
์ ํ๋ฒ 5๋ช
์ ์ถ๋ ค ์ต์ ์ธ์ฐจ ๊ด๋ จ ์์์ ์ถ์ฒ๋ฐ์ผ์ค ์ ์์ต๋๋ค.
+
+**๊ฒ์**
+- 2000๊ฐ ์ด์์ ์ธ์ฐจ ์ฉํ์ ์กฐํ์ / ํน์ด์ฌํญ / ์ต์ ์ / ์ถ์ฒ์์ผ๋ก ๊ฒ์ํ ์ ์์ด์.
+
+**์ธ์ฐจ ์ฉํ ์์ธ ํ์ด์ง**
+- ์ธ์ฐจ ์ฉํ์ ์ด๋ฏธ์ง์ ์ ํ๋ช
, ๋ธ๋๋, ์
์ฒด๋ช
, ์ ํ์ฉ๋, ์๊ธ์ฒ์น ๋ฑ ๋ค์ํ ์ ๋ณด๋ฅผ ์ ๊ณต๋ฐ์ ์ ์์ต๋๋ค.
+- ์ฌ์ฉ์๋ค์ ์ง์ ์ ์ธ ๊ฒฝํ์ ๋ฆฌ๋ทฐ๋ฅผ ํตํด ํ์ธํ ์ ์์ด์.
+- ์ฐ ๋ฒํผ์ ์ด์ฉํด ๋๋ง์ ์ธ์ฐจ ์ฉํ์ ์ฆ๊ฒจ์ฐพ๊ธฐ ํ์ด์ง์ ๋ด์ ์ ์์ต๋๋ค.
+- ์นด์นด์ค ๊ณต์ ํ๊ธฐ ๊ธฐ๋ฅ์ ์ด์ฉํด ํ์ธ๊ณผ ์ธ์ฐจ์ฉํ์ ๊ณต์ ํ ์ ์์ต๋๋ค.
+
+**์ธ์ฆ**
+- ์์ด๋ / ๋น๋ฐ๋ฒํธ / ์ด๋ฉ์ผ / ์ฑ๋ณ / ์ฐ๋ น์ธต์ ํ ๋๋ก ํ์๊ฐ์
ํ ์ ์์ต๋๋ค.
+- ํ์๊ฐ์
๋ ํ์ ์ ๋ณด๋ฅผ ์ด์ฉํ์ฌ ๋ก๊ทธ์ธ ํ ์ ์์ต๋๋ค.
+- ์นด์นด์ค ๊ณ์ ์ ์ด์ฉํ์ฌ ๋ก๊ทธ์ธ ํ ์ ์์ต๋๋ค.
+- ์์ด๋๋ฅผ ์์ด๋ฒ๋ ธ๋ค๋ฉด ๊ฐ์
๋ ์ด๋ฉ์ผ์ ํตํด ์์ด๋๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
+- ๋น๋ฐ๋ฒํธ๋ฅผ ์์ด๋ฒ๋ ธ๋ค๋ฉด ๊ฐ์
๋ ์์ด๋๋ฅผ ํตํด ๋น๋ฐ๋ฒํธ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
+
+**๋ง์ดํ์ด์ง**
+- ๋ด ํ๋กํ์ ์์ ํ ์ ์์ต๋๋ค.
+- 5๋จ๊ณ์ ์ฐจ๋ ์ ๋ณด์ 3๋จ๊ณ์ ์ธ์ฐจ ์ฉํ์ ์ ๋ณด๋ฅผ ์
๋ ฅํ์ฌ ํ์๋ค์ด ๋ง์ด ์ฌ์ฉํ๋ ์ธ์ฐจ ์ฉํ์ ์ถ์ฒ ๋ฐ์ ์ ์์ต๋๋ค.
+- ๋ฌธ์ํ๊ธฐ๋ฅผ ์ด์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ๋ถํธํ๋ ์ ์ด๋ ๊ฐ์ ํ๊ณ ์ถ์ ์ฌํญ์ ์ ๋ฌ ๋ฐ์ ์ ์์ต๋๋ค.
+- ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ์ ํ ์ ์์ต๋๋ค.
+
+
## ๐น๏ธ ๊ธฐ์ ์ ์ฑ์ทจ
- ๋ฐฑ์๋ ํ๊ณผ ๋น๋๊ธฐ์ ์ํต ๋ฐ ํ์
๊ฒฝํ
-- ๊ธฐํ๋ถํฐ ๋์์ธ๊น์ง ์ฐธ์ฌํ ๊ฒฝํ
-- ci/cd ๋ฐฐํฌ,๋น๋,ํ
์คํธ ์๋ํ ํ์ดํ ๋ผ์ธ ๊ตฌ์ถ
+- CI/CD ๋ฐฐํฌ,๋น๋,ํ
์คํธ ์๋ํ ํ์ดํ ๋ผ์ธ ๊ตฌ์ถ
- storybook์ ์ด์ฉํ ์๊ฐ์ ํ๊ท ํ
์คํธ ๋ฐ vitest, msw๋ฅผ ์ด์ฉํ ํ
์คํธ ์ฝ๋ ์์ฑ
+- ํ๋ก์ ํธ ์ค์ ๋ถํฐ ์ค์ ์ด์๊น์ง์ ๊ฒฝํ
+- ๋ก์ปฌ / ๊ฐ๋ฐ / ์ด์ ์๋ฒ๋ฅผ ๋ถ๋ฆฌํ์ฌ ์์
ํ ๊ฒฝํ
@@ -63,6 +109,7 @@
![Notion](https://img.shields.io/badge/notion-000000?style=for-the-badge&logo=notion&logoColor=white)
![Slack](https://img.shields.io/badge/slack-4A154B?style=for-the-badge&logo=slack&logoColor=white)
![Figma](https://img.shields.io/badge/figma-%23F24E1E.svg?style=for-the-badge&logo=figma&logoColor=white)
+![Postman](https://img.shields.io/badge/postman-FF6C37.svg?style=for-the-badge&logo=postman&logoColor=white)
**๋ฒ์ ๊ด๋ฆฌ**
![Git](https://img.shields.io/badge/git-%23F05033.svg?style=for-the-badge&logo=git&logoColor=white)
@@ -76,25 +123,30 @@
![Swiper](https://img.shields.io/badge/swiper-6332F6?style=for-the-badge&logo=swiper&logoColor=white)
**๋ฐฐํฌ**
+![AMAZON EC2](https://img.shields.io/badge/AMAZON_EC2-FF9900?style=for-the-badge&logo=amazonec2&logoColor=white)
+![DOCKER](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white)
![Vercel](https://img.shields.io/badge/Vercel-000000?style=for-the-badge&logo=vercel&logoColor=white)
![Chromatic](https://img.shields.io/badge/chromatic-FC521F?style=for-the-badge&logo=chromatic&logoColor=white)
**๊ทธ ์ธ**
![Eslint](https://img.shields.io/badge/eslint-3A33D1?style=for-the-badge&logo=eslint&logoColor=white)
+![Style_Lint](https://img.shields.io/badge/style_lint-263238?style=for-the-badge&logo=stylelint&logoColor=white)
## ๐ ์ฑ๋ฅ ์ต์ ํ
+- ๋ฆฌํ๋ก์ฐ์ ๋ฆฌํ์ธํธ ๊ณผ์ ์ ์๋ตํ๊ธฐ ์ํด transform ์์ฑ ์ฌ์ฉ
+- throttling์ ์ด์ฉํ ๋ฌด๋ถ๋ณํ ์คํฌ๋กค ์ด๋ฒคํธ ๋ฐฉ์ง
- ์น ํฐํธ ๋ค์ด๋ก๋ ์๊ฐ์ ์ค์ด๊ธฐ ์ํด woff2 ํ์ฅ์ ์ถ๊ฐ ๋ฐ 3์ด ์ด์ ํฐํธ๊ฐ ๋ค์ด๋ก๋ ๋์ง ๋ชปํ ๊ฒฝ์ฐ, ๊ธฐ์กด ํฐํธ๋ฅผ ์ฌ์ฉํ๋๋ก fallback ์ค์
- ํ์ํ ์์ ์ ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ค๋๋ก lazy loading์ ์ ์ฉ ๋ฐ layout shift๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํ Next.js image ํ๊ทธ ์ ์ฉ
-- ๋ ๋๋ง ์ ๋ถํ์ํ ์ฐ์ฐ์ ์ค์ด๊ธฐ ์ํด useCallback, useMemo ์ฌ์ฉ
+- ๋ ๋๋ง ์ ๋ถํ์ํ ์ฐ์ฐ์ ์ค์ด๊ธฐ ์ํด useCallback, useMemo, React.memo ์ฌ์ฉ
- dynamic import๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ ํ์์ด ์๋ ๋ฐํ์์์ ์ปดํฌ๋ํธ๋ฅผ ๋๋๋ง ํ๋๋ก ์ฝ๋ ์คํ๋ฆฌํ
์ ์ฉ
- react-hook-form์ ์ฌ์ฉํ์ฌ ๋ถํ์ํ ๋ฆฌ๋๋๋ง ๋ฐฉ์ง ๋ฐ ๋ง์ดํ
์๋ ์ฆ๊ฐ
- ๋ถํ์ํ api ์์ฒญ์ ๋ฐฉ์งํ๊ธฐ ์ํด tanstack-query๋ฅผ ํ์ฉํ ๋ฐ์ดํฐ ์บ์ฑ
-## โ๏ธ ์งํ ์ฌํญ
+## โ๏ธ ์์
๋ด์ฉ
- ์ด๊ธฐ ํ๊ฒฝ ์ค์
- ๋ฆฐํธ ๋ฐ ์คํ์ผ ๋ฆฐํธ ์ค์
- tanstack-query ๋ณด์ผ๋ฌ ํ๋ ์ดํธ ์ ์
@@ -104,24 +156,18 @@
- msw ๋ณด์ผ๋ฌ ํ๋ ์ดํธ ์ ์
- pretandard ํฐํธ ์ค์
- ์ปฌ๋ฌ ํ๋ ํธ ์ ์
- - ci / cd workflow ์์ฑ
- - vercel ๋ฐฐํฌ
-- 20๊ฐ ๊ณตํต ์ปดํฌ๋ํธ ์ ์
- - [์คํ ๋ฆฌ๋ถ URL](https://www.chromatic.com/library?appId=659a0cf1b613430cc09b3672) <- ์ฐธ๊ณ ํด์ฃผ์ธ์!
+- ํ
์คํธ
+ - 25๊ฐ ์ด์์ ๊ณตํต ์ปดํฌ๋ํธ ์ ์๊ณผ storybook์ ์ด์ฉํ ๋ฐ์ดํฐ ์๊ฐ์ ํ๊ท ํ
์คํธ ๋ฐ chromatic ๋ฐฐํฌ
+ - vitest๋ฅผ ์ด์ฉํ ํ์๊ฐ์
ํ์ด์ง ์ ํจ์ฑ ๊ฒ์ฌ ๋ก์ง ์์ ์ฑ ํฅ์ ๋ฐ ์ฝ๋ ํ์ง ๊ฐ์
+ - ๋ฐฑ์๋์ api ์ ์ ๊ธฐ๊ฐ์ด ๊ธธ์ด์ง์ ๋ฐ๋ผ ๊ฐ๋ฐ ์์กด์ฑ์ ๋ฐฐ์ ํ ์ ์๋๋ก msw๋ฅผ ์ด์ฉํ mocking ์์
+
+- ๋ฐฐํฌ ํ๊ฒฝ
+ - CI/CD ๋ฐฐํฌ,๋น๋ ,ํ
์คํธ ์๋ํ ํ์ดํ ๋ผ์ธ ๊ตฌ์ถ
+ - vercel๊ณผ vultr์ ์ด์ฉํ ๊ฐ๋ฐ ์๋ฒ ๋ฐฐํฌ
+ - docker container์ amazon ec2๋ฅผ ์ด์ฉํ ์ด์ ์๋ฒ ๋ฐฐํฌ
+
-- ํ์ด์ง <- ๋ชจ๋ฐ์ผ ํ๊ฒฝ์์ ๋ด์ฃผ์ธ์!
- - ๋ฉ์ธ ํ์ด์ง UI ์ ์ [ํ ํ์ด์ง](https://f1-wash-pedia-fe.vercel.app)
- - ํ์ ๊ฐ์
ํ์ด์ง UI ๋ฐ ํ
์คํธ ์ฝ๋ ์์ฑ [ํ์๊ฐ์
ํ์ด์ง](https://f1-wash-pedia-fe.vercel.app/signup)
- - ๋ก๊ทธ์ธ ํ์ด์ง UI ์ ์ [๋ก๊ทธ์ธ ํ์ด์ง](https://f1-wash-pedia-fe.vercel.app/login)
-
-## ๐๏ธ ์ง๋ฌธ ์ฌํญ
-1. ์คํ ๋ฆฌ๋ถ์ ์ฌ์ฉํ๊ณ ์์ง๋ง ๋จ์ํ props๋ง ๋ฐ๊ฟ๊ฐ๋ฉฐ ๋ณ๊ฒฝ๋ UI๋ง ๋ณผ ์ ์๋๋ก ํ
์คํ
์ ํ๊ณ ์๋๋ฐ ํ์
์์ ์ด๋ค ์์ผ๋ก ์คํ ๋ฆฌ๋ถ์ ์ฌ์ฉํ๋์?
-2. next.js์์ private router ๊ตฌํํ๋ ค๋ฉด HOC๋ฅผ ์ด์ฉํ์ฌ ์ปดํฌ๋ํธ๋ฅผ ๊ฐ์ธ ์ ์ ๊ฐ ๊ฐ์ง token์ ์ด์ฉํ์ฌ ์ ํจํ ํ์์ธ์ง ํ๋จํ๋ ๋ก์ง ์ผ๋ฐ์ ์ธ๊ฐ์? ๊ทธ๊ฒ ์๋๋ผ๋ฉด
-์ด๋ค ์์ผ๋ก ๊ตฌํํ๋ ๊ฒ ์ข์๊น์?
-3. swiper.js๋ฅผ ์ฌ์ฉํ์ฌ ์บ๋ฌ์
์ ์ ์ํ๋๋ฐ ์ด๊ธฐ ๋๋๋ง ์ layout shift๊ฐ ๋ฐ์ํ๋ ๋ฌธ์ ์ ์ด ์์ด์. ์ด ๋ฌธ์ ์ ์ ํด๊ฒฐํ ์ ์๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์๊น์?
-
-
diff --git a/src/app/(my-page)/my-page/profile/page.tsx b/src/app/(my-page)/my-page/profile/page.tsx
index b162dcb7..2dc134d9 100644
--- a/src/app/(my-page)/my-page/profile/page.tsx
+++ b/src/app/(my-page)/my-page/profile/page.tsx
@@ -35,8 +35,8 @@ function ProfilePage() {
return {
id: profile?.value.id,
email: profile?.value.email,
- gender: profile?.value.gender === 'OTHERS' ? 'DEFAULT' : profile?.value.gender,
- age: profile?.value.age === 'AGE_99' ? 'DEFAULT' : profile?.value.age,
+ gender: profile?.value.gender === 'OTHERS' ? 'MALE' : profile?.value.gender,
+ age: profile?.value.age === 'AGE_99' ? 'AGE_20' : profile?.value.age,
};
}, [profile]),
mode: 'onBlur',
@@ -53,8 +53,8 @@ function ProfilePage() {
reset({
id: profile?.value.id,
email: profile?.value.email,
- gender: profile?.value.gender === 'OTHERS' ? 'DEFAULT' : profile?.value.gender,
- age: profile?.value.age === 'AGE_99' ? 'DEFAULT' : profile?.value.age,
+ gender: profile?.value.gender === 'OTHERS' ? 'MALE' : profile?.value.gender,
+ age: profile?.value.age === 'AGE_99' ? 'AGE_20' : profile?.value.age,
});
}, [profile, reset]);
diff --git a/src/constants/dropdownMap.ts b/src/constants/dropdownMap.ts
index f2481499..91d7b24f 100644
--- a/src/constants/dropdownMap.ts
+++ b/src/constants/dropdownMap.ts
@@ -1,7 +1,6 @@
export const GENDER_MAP = {
MALE: '๋จ์ฑ',
FEMALE: '์ฌ์ฑ',
- DEFAULT: '์์ ํ์',
} as const;
export const AGE_MAP = {
@@ -10,7 +9,6 @@ export const AGE_MAP = {
AGE_40: '40๋',
AGE_50: '50๋',
AGE_60: '60๋ ์ด์',
- DEFAULT: '์์ ํ์',
} as const;
export type GenderType = keyof typeof GENDER_MAP;
diff --git a/src/constants/myPage.ts b/src/constants/myPage.ts
index ebba4219..7ae36007 100644
--- a/src/constants/myPage.ts
+++ b/src/constants/myPage.ts
@@ -7,10 +7,6 @@ export const GENDER_OPTIONS = [
label: '์ฌ์ฑ',
value: 'FEMALE',
},
- {
- label: '์์ ํ์',
- value: 'DEFAULT',
- },
];
export const AGE_OPTIONS = [
@@ -33,8 +29,4 @@ export const AGE_OPTIONS = [
label: '60๋ ์ด์',
value: 'AGE_60',
},
- {
- label: '์์ ํ์',
- value: 'DEFAULT',
- },
];