"Pickly"๋ ๋ค์ํ ๋ถ์ผ์ ์ํ์ A/B ํ ์คํธ ๋ฐฉ์์ผ๋ก ๋น๊ตํ๊ณ , ๋ฆฌ๋ทฐ์ ๋ณ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์ต์ ์ ์ ํ์ ๋์์ฃผ๋ ์ํ ํ๋ ์ด์ ํ๋ซํผ์ ๋๋ค.
https://pickly-gamma.vercel.app/
- ํ ์คํธ ์์ด๋: test2639@naver.com
- ํ ์คํธ ๋น๋ฐ๋ฒํธ: @00000000
โ ์๋ฒ๋ฆฌ์ค ๋ฐฑ์๋
โ ์ ํ๋ธ, ์คํฌํฐํ์ด, OpenAI ๋ฑ ๊ฒ์ ๊ฒฐ๊ณผ ์ ์ฅ
โ ๋ก๊ทธ์ธ ์ ํ ํฐ์ HTTP-only ์ฟ ํค์ ์ ์ฅ
โ ์์
์ํ โ ํด๋น ์จ๋ฒ์ผ๋ก ์ฐ๋
โ ๋ฎค์ง๋น๋์ค ๋ฐ ์ฝํ
์ธ ์ ๊ณต
โ ์์น ๊ธฐ๋ฐ ์ ๋ณด ์ฐ๋
โ ์ํ๋ช
๊ณผ ์ค๋ช
์ ๋ถ์ํด YouTube/Spotify/Google Maps ๋งํฌ ์๋ ์์ฑ
- ์๋น์ค ์๊ฐ, ๋ก๊ทธ์ธ/ํ์๊ฐ์ ๋ฒํผ, ์ธ๊ธฐ ์ํ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฑ์ด ํฌํจ๋ ์ฒซ ์ง์ ํ์ด์ง์ ๋๋ค.
- ์ ํจ์ฑ ๊ฒ์ฌ์ Zustand๋ฅผ ํ์ฉํด ๋ก๊ทธ์ธ ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ํด๋ผ์ด์ธํธ ์ํ๋ก ๊ด๋ฆฌํฉ๋๋ค.
- ๋ก๊ทธ์ธ ์ Next.js API Routes ๊ธฐ๋ฐ ์์ฒด ๋ฐฑ์๋์์ ์ธ์ฆ์ ์ฒ๋ฆฌํ๋ฉฐ, ํ ํฐ์ HTTP-only ์ฟ ํค์ ์ ์ฅํด ๋ณด์์ฑ์ ๋์์ต๋๋ค.
- ์ํ ๊ฒ์, ์นดํ ๊ณ ๋ฆฌ๋ณ ์ ๋ ฌ, ๋ฌดํ ์คํฌ๋กค, ๋ก๋ฉ ๊ธฐ๋ฅ ๊ตฌํ
- ์ํ ์ถ๊ฐ ๊ธฐ๋ฅ์ผ๋ก ์ง์ ์ํ์ ๋ฑ๋กํ ์ ์์ต๋๋ค.
- ์ฐํ๊ธฐ, ๋ฆฌ๋ทฐ ์์ฑ/์์ /์ญ์ , ๋น๊ต ๊ธฐ๋ฅ ์ ๊ณตํฉ๋๋ค.
- ์ํ ๋ฑ๋ก์์๊ฒ๋ ํธ์ง ๋ฐ ์ญ์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ก ์ ๊ณต๋ฉ๋๋ค.
- ๋ฆฌ๋ทฐ ์, ํ๊ท ๋ณ์ , ์ฐ ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ ์ํ์ ๋น๊ตํฉ๋๋ค.
- ๋ก๊ทธ์ธํ์ง ์์๋ ๊ฒ์คํธ ๋ชจ๋๋ก ์ด์ฉ ๊ฐ๋ฅํฉ๋๋ค.
- ์ ์ ํ์ด์ง์์ ํ๋ก์, ํ๋ก์ฐ ๋ชฉ๋ก์ ๋ณผ ์ ์๊ณ ๋ฆฌ๋ทฐ ๋ฑ๋กํ ์ํ, ์ฐํ ์ํ, ๋ฑ๋กํ ์ํ ๋ํ ๋ณผ ์ ์์ต๋๋ค.
- ๋ง์ดํ์ด์ง์์๋ ์ถ๊ฐ๋ก ํ๋กํ ํธ์ง์ ํ ์ ์์ต๋๋ค.
โโโโpublic
โ โโโโanimations
โ โโโโicons
โ โโโโimages
โโโโsrc
โโโโapp
โ โโโโapi
โ โ โโโโcookie
โ โ โโโโlogin
โ โ โโโโlogout
โ โ โโโโopenai
โ โ โ โโโโextract-movie
โ โ โ โโโโextract-music
โ โ โ โโโโextract-place
โ โ โโโโspotify-token
โ โ โโโโyoutube-search
โ โโโโcompare
โ โโโโhomepage
โ โ โโโโ[id]
โ โโโโlandingpage
โ โโโโmypage
โ โโโโproduct
โ โ โโโโ[id]
โ โโโโproviders
โ โโโโsignin
โ โโโโsignup
โ โ โโโโ[provider]
โ โโโโtest
โ โ โโโโinput
โ โโโโusers
โ โโโโ[id]
โโโโcomponents
โ โโโโinput
โ โโโโshared
โโโโfeatures
โ โโโโcompare
โ โ โโโโapi
โ โ โโโโcomponents
โ โ โโโโhooks
โ โ โโโโtypes
โ โโโโheader
โ โ โโโโhooks
โ โโโโhome
โ โ โโโโcomponents
โ โ โโโโmodals
โ โ โ โโโโstore
โ โ โโโโservices
โ โ โโโโtypes
โ โโโโlanding
โ โ โโโโcomponents
โ โโโโproductId
โ โ โโโโcomponents
โ โ โ โโโโmodal
โ โ โ โ โโโโProductCompareModal
โ โ โ โ โโโโProductReviewModal
โ โ โ โโโโProductApi
โ โ โ โโโโProductIdDetail
โ โ โ โโโโProductIdStats
โ โ โ โโโโProductReviews
โ โ โโโโhooks
โ โ โโโโlibs
โ โโโโProfile
โ โ โโโโapi
โ โ โโโโcomponents
โ โ โโโโhook
โ โ โโโโtypes
โ โโโโsignin
โ โ โโโโcomponents
โ โโโโsignup
โ โโโโcomponents
โโโโlib
โ โโโโaxios
โ โโโโutils
โโโโtypesgit clone https://github.com/part4-team6/Pickly.git
cd pickly
npm install
npm run dev| ๋์ | ๊ท์น | ์์ |
|---|---|---|
| ํด๋๋ช | ์ผ๋ฐฅ์ผ์ด์ค (kebab-case) | components, user-profile |
| ์ปดํฌ๋ํธ ํ์ผ๋ช | ํ์ค์นผ์ผ์ด์ค (PascalCase) | UserProfile.jsx |
| ์คํ์ผ ํ์ผ๋ช | ์ผ๋ฐฅ์ผ์ด์ค + .styles.js | user-profile.styles.js |
| ์ด๋ฏธ์ง/์์ด์ฝ ํ์ผ๋ช | ์ผ๋ฐฅ์ผ์ด์ค | logo-icon.png, profile-default.png |
| ํจ์๋ช /๋ณ์๋ช | ์นด๋ฉ์ผ์ด์ค (camelCase) | fetchUserData, userList |
| ํ๊ฒฝ๋ณ์ | ๋๋ฌธ์+์ค๋ค์ดํฌ์ผ์ด์ค | REACT_APP_API_URL |
| ์ญํ | ๋ค์ด๋ฐ | ์์ |
|---|---|---|
| ๋ฉ์ธ ๋ธ๋์น(๋ฐฐํฌ์ฉ) | main | main/ |
| ๊ธฐ๋ฅ ๊ฐ๋ฐ ๋ธ๋์น | feature/๊ธฐ๋ฅ๋ช | feature/์ด๋ฆ/dashboard-modal |
| ๊ธด๊ธ ์์ ๋ธ๋์น | hotfix/์ด์๋ช | hotfix/์ด๋ฆ/login-error |
| ๋ฆด๋ฆฌ์ฆ ์ค๋น ๋ธ๋์น | release/๋ฒ์ ๋ช | release/์ด๋ฆ/v1.0.0 |
| ์คํ์ผ ์์ ๋ธ๋์น | style/์คํ์ผ์ด๋ฆ | style/์ด๋ฆ/login-mobile |
2025.05.26 ~ 2025.06.24 (์ฝ ํ ๋ฌ, ์ผ์์ผ ์ ์ธ)
| ๋ฉค๋ฒ | ์ญํ ๋ฐ ๊ธฐ์ฌ |
|---|---|
@๊น์์ฐ |
์์ธ ํ์ด์ง / ์ธ๋ถ API ์ฐ๋ - ์์ธ ํ์ด์ง ๊ตฌ์ฑ ๋ฐ ๋ฐ์ดํฐ ํ์ - Spotify, YouTube, Google Maps, OpenAI ๋ฑ ์ธ๋ถ API ํตํฉ - MongoDB ์ฐ๊ฒฐ ๋ฐ ์ํ ๊ด๋ฆฌ (Zustand) - ๋น๊ต ์ํ ๋ฑ๋ก ๊ธฐ๋ฅ ๊ตฌํ |
@๋ฐํ์ |
๋น๊ตํ๊ธฐ ํ์ด์ง ๊ฐ๋ฐ - A/B ํ ์คํธ ๊ธฐ๋ฐ UI/UX ์ค๊ณ ๋ฐ ๊ธฐ๋ฅ ๊ตฌํ - Zustand์ ์ฐ๋๋ ๋น๊ต ์ํ ๊ธฐ๋ฅ ํตํฉ |
@์ํ์ง |
๋ง์ดํ์ด์ง / ์ ์ ํ์ด์ง - ์ ์ ๊ฐ์ธ์ ๋ณด ๋ฐ ํ๋ ๋ด์ญ ํ์ด์ง ๊ตฌํ - ํ๋ก์ฐ/ํ๋ก์ ๊ธฐ๋ฅ ๋ฐ ๊ด๋ จ ๋ชจ๋ฌ ๊ฐ๋ฐ |
@์ก๋ฏธ์ง |
ํ์ ์ธ์ฆ / ์๋ฌ ํธ๋ค๋ง - ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์ ๊ธฐ๋ฅ (์ ํจ์ฑ ๊ฒ์ฌ ํฌํจ) - ์ ์ฒด ์๋น์ค์ ์๋ฌ ํ์ด์ง ๊ตฌ์ฑ |
@ํ์น์ |
ํํ์ด์ง / ์ธํ๋ผ / ๊ณตํต ์ปดํฌ๋ํธ - ๋๋ฉ ๋ฐ ๋ฉ์ธ ํ์ด์ง UI ๊ฐ๋ฐ - ๋ฐฑ์๋ API (Next.js API Routes) ๊ตฌํ - ๊ณตํต ์ปดํฌ๋ํธ (ํค๋ ๋ฑ) ๋ฐ ๋ก๋ฉ ์ฒ๋ฆฌ - SEO ์ต์ ํ ๋ฐ ํ๋ก์ ํธ ํ๊ฒฝ ์ค์ |
- ์นดํ ๊ณ ๋ฆฌ๋ณ๋ก ์ํ์ ๋น๊ต(A/B ํ ์คํธ)ํ๊ณ , ๋ฆฌ๋ทฐ ๊ธฐ๋ฐ ๋ญํน ์์คํ ์ ์ ๊ณตํฉ๋๋ค.
- OpenAI๋ฅผ ํ์ฉํด ์ ํ๋ธยท์คํฌํฐํ์ดยท์ง๋ ์ฝํ ์ธ ๋ฅผ ์๋ ์ฐ๋ํ์ฌ ์ ๋ณด ํ์ ๋น์ฉ์ ์ ๊ฐํ์ต๋๋ค. ์ ํ๋ธ API๋ MongoDB ์บ์ฑ์ ํตํด ํ ๋น๋์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ฉฐ ์์ ์ฑ์ ํ๋ณดํ์ต๋๋ค.
- ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ Next.js API Routes ๊ธฐ๋ฐ์ ์์ฒด ๋ฐฑ์๋๋ก ๊ตฌํํ์๊ณ , HTTP-only ์ฟ ํค์ ํ ํฐ์ ์ ์ฅํ๋ ํํธ, CSRF ํ ํฐ์ ๋์ ํด ๊ต์ฐจ ์ฌ์ดํธ ์์ฒญ ์์กฐ ๊ณต๊ฒฉ์ ๋ํ ๋ณด์์ฑ์ ์ถ๊ฐ๋ก ๊ฐํํ์ต๋๋ค.
- ๋ก๊ทธ์ธ ์์ด๋ ๋น๊ต ๊ธฐ๋ฅ ์ฌ์ฉ์ด ๊ฐ๋ฅํ์ฌ ์ง์ ์ฅ๋ฒฝ์ ๋ฎ์ท๊ณ , ํ์ ๊ธฐ๋ฅ์ ๋น ๋ฅด๊ฒ ์ ๊ทผํ ์ ์๋๋ก ์ค๊ณํ์ต๋๋ค.







