Skip to content

wooriki/Hippop-popupStore-info-share-service

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

How to

  • yarn start

๐Ÿ’ฅ HIPPOP ๐Ÿ’ฅ

๐Ÿ’ฅ Project summary

  • ํŒ์—…์Šคํ† ์–ด ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๋ฉฐ ์œ ์ €๋“ค ๊ฐ„์˜ ์†Œํ†ต์„ ๋„๋ชจํ•˜๋Š” interactive communication service

๐Ÿ’ฅ Service URL


๐Ÿ’ฅ Project period

  • 2023.08.16 ~ 2023.09.18

๐Ÿ’ฅ Wire frame

Figma | ํŽผ์น  ์‹œ ์Šคํฌ๋ฆฐ์ƒท

1 2 3 4 5



๐Ÿท Folder structure

View detailed structure
 โ”ฃ ๐Ÿ“‚api
 โ”ƒ โ”ฃ ๐Ÿ“œalarm 2.ts
 โ”ƒ โ”ฃ ๐Ÿ“œalarm.ts
 โ”ƒ โ”ฃ ๐Ÿ“œbookmark.ts
 โ”ƒ โ”ฃ ๐Ÿ“œcomment.ts
 โ”ƒ โ”ฃ ๐Ÿ“œmessage.ts
 โ”ƒ โ”ฃ ๐Ÿ“œpost 2.ts
 โ”ƒ โ”ฃ ๐Ÿ“œpost.ts
 โ”ƒ โ”ฃ ๐Ÿ“œstore.ts
 โ”ƒ โ”ฃ ๐Ÿ“œsubscribe.ts
 โ”ƒ โ”ฃ ๐Ÿ“œsupabase.ts
 โ”ƒ โ”— ๐Ÿ“œuser.ts
 โ”ฃ ๐Ÿ“‚components
 โ”ƒ โ”ฃ ๐Ÿ“‚about
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAboutBannser.tsx
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œAboutInfo.tsx
 โ”ƒ โ”ฃ ๐Ÿ“‚auth
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚style
 โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œSt.Login.tsx
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œLogin.tsx
 โ”ƒ โ”ฃ ๐Ÿ“‚common
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚style
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.AlarmBox.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.Footer.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.Header.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.NotFound.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œSt.TopButton.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAlarm.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAlarmBox.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œFooter.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œHeader.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œNotFound.tsx
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œTopButton.tsx
 โ”ƒ โ”ฃ ๐Ÿ“‚community
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚detail
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚style
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.Comments.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.Subscribe.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œSt.Writer.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œComments.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSubscribe.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œWriter.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚main
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚mate
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚style
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œSt.MPosts.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œMNewPosts.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œMPosts.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œMStorePosts.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚review
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚style
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œSt.RPosts.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCommentCount.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œRNewPosts.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œRPopularPosts.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œRPosts.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œRStorePosts.tsx
 โ”ƒ โ”ƒ โ”— ๐Ÿ“‚write
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚style
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.Edit.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.SearchDefault.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.SearchModal.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œSt.Write.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œEdit.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œEditor.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSearchDefault.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSearchModal.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œWrite.tsx
 โ”ƒ โ”ฃ ๐Ÿ“‚detail
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚style
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.BookMark.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.Calendar.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.HotPlace.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.NearbyStore.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.Share.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.StoreDetail.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œSt.StoreMap.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œBookMark.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCalendar.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œHotPlace.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œNearbyStore.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œShare.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œStoreDetail.tsx
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œStoreMap.tsx
 โ”ƒ โ”ฃ ๐Ÿ“‚main
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚style
 โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œSt.Card.tsx
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œCard.tsx
 โ”ƒ โ”ฃ ๐Ÿ“‚message
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚style
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.Message.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.MessageDetail.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.MessageReply.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.ReceiveBox.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œSt.SendBox.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œMessage.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œMessageDetail.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œMessageReply.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œReceiveBox.tsx
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œSendBox.tsx
 โ”ƒ โ”ฃ ๐Ÿ“‚mypage
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œMyBookmark.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œMyReview.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œMySubModal.tsx
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œUserInfo.tsx
 โ”ƒ โ”— ๐Ÿ“‚search
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚style
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.SearchCalender.tsx
 โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œSt.SearchList.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSearchCalendar.tsx
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œSearchList.tsx
 โ”ฃ ๐Ÿ“‚hooks
 โ”ƒ โ”ฃ ๐Ÿ“œuseHandleImageName.ts
 โ”ƒ โ”— ๐Ÿ“œuseRealTimeData.ts
 โ”ฃ ๐Ÿ“‚pages
 โ”ƒ โ”ฃ ๐Ÿ“‚style
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.About.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.Main.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.Mate.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.MDetail.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.MyPage.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.RDetail.tsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSt.Review.tsx
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œSt.YourPage.tsx
 โ”ƒ โ”ฃ ๐Ÿ“œAbout.tsx
 โ”ƒ โ”ฃ ๐Ÿ“œDetail.tsx
 โ”ƒ โ”ฃ ๐Ÿ“œMain.tsx
 โ”ƒ โ”ฃ ๐Ÿ“œMate.tsx
 โ”ƒ โ”ฃ ๐Ÿ“œMDetail.tsx
 โ”ƒ โ”ฃ ๐Ÿ“œMyPage.tsx
 โ”ƒ โ”ฃ ๐Ÿ“œRDetail.tsx
 โ”ƒ โ”ฃ ๐Ÿ“œReview.tsx
 โ”ƒ โ”ฃ ๐Ÿ“œSearch.tsx
 โ”ƒ โ”— ๐Ÿ“œYourPage.tsx
 โ”ฃ ๐Ÿ“‚shared
 โ”ƒ โ”ฃ ๐Ÿ“œLayout.tsx
 โ”ƒ โ”— ๐Ÿ“œRouter.tsx
 โ”ฃ ๐Ÿ“‚store
 โ”ƒ โ”ฃ ๐Ÿ“œindex.ts
 โ”ƒ โ”— ๐Ÿ“œuserStore.ts
 โ”ฃ ๐Ÿ“‚types
 โ”ƒ โ”ฃ ๐Ÿ“œprops.ts
 โ”ƒ โ”— ๐Ÿ“œtypes.ts
 โ”ฃ ๐Ÿ“œApp.css
 โ”ฃ ๐Ÿ“œApp.test.tsx
 โ”ฃ ๐Ÿ“œApp.tsx
 โ”ฃ ๐Ÿ“œGlobalStyle.tsx
 โ”ฃ ๐Ÿ“œindex.css
 โ”ฃ ๐Ÿ“œindex.tsx
 โ”ฃ ๐Ÿ“œreact-app-env.d.ts
 โ”ฃ ๐Ÿ“œreportWebVitals.ts
 โ”ฃ ๐Ÿ“œsetupTests.ts
 โ”— ๐Ÿ“œsupabase.d.ts

๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Team introduction

  • Team Name : ๊ทธ ์—ฌ๋ฆ„, ์šฐ๋ฆฌ๋Š”
  • Team members
Role Name In charge GitHub
๋ฆฌ๋” ์กฐ์„ฑ๋ก ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ / ํ”„๋กœํ•„ ํŽ˜์ด์ง€ / ์ชฝ์ง€ / ๋ถ๋งˆํฌ / ๊ณต์œ ํ•˜๊ธฐ / ๋‹ฌ๋ ฅ https://github.com/pigrok
๋ถ€๋ฆฌ ์žฅํ˜œ์ง„ ์ƒ์„ธ ํŽ˜์ด์ง€ / ํŒ์—…์Šคํ† ์–ด ์ง€๋„ / ํ•ซํ”Œ๋ ˆ์ด์Šค ์ถ”์ฒœ / ๋™์ผ ์ง€์—ญ ํŒ์—…์Šคํ† ์–ด https://github.com/huizhenz
ํŒ€์› ๊น€์šฐ๋ฆฌ ์†Œ์…œ ๋กœ๊ทธ์ธ / ๋งˆ์ด ํŽ˜์ด์ง€ https://github.com/wooriki
ํŒ€์› ๋‚˜์œค๋นˆ ๋ฆฌ๋ทฐ & ๋ฆฌ๋ทฐ ๋””ํ…Œ์ผ ํŽ˜์ด์ง€ / ๋ฉ”์ดํŠธ & ๋ฉ”์ดํŠธ ๋””ํ…Œ์ผ ํŽ˜์ด์ง€ / ๊ธ€ ์ž‘์„ฑ ๋ชจ๋‹ฌ / ๊ตฌ๋… / ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ https://github.com/skdbsqls
ํŒ€์› ์กฐ์ง„๋ช… ๋ฉ”์ธํŽ˜์ด์ง€ ํ”ผ๋“œ ํ…Œ์ด๋ธ” ์ž‘์—… https://github.com/nbcnvc

โ›“๏ธ Service Architecture

HIPPOP แ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณ แ„‹แ…กแ„แ…ตแ„แ…ฆแ†จแ„Žแ…ง


โ›“๏ธ Database Schema

ๆˆชๅฑ2023-09-18 ไธ‹ๅˆ5 20 00


๐Ÿ“Œ Implementation of key features

  • supabase๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ถ”์ ํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์—…๋ฐ์ดํŠธ๋ฅผ ์ž๋™์œผ๋กœ ํ‘ธ์‹œํ•  ์ˆ˜ ์žˆ๋Š” realtime์„ ์ œ๊ณตํ•œ๋‹ค.
  • realtime์€ Broadcast, Presence, Postgres Changes์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์„ ํฌํ•จํ•œ๋‹ค.
  • Postgres Changes ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฐ์ง€ํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ํ‘ธ์‹œํ•œ๋‹ค.
  • ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ๋…ํ•œ ์‚ฌ๋žŒ์ด ์ƒˆ ๊ธ€์„ ์ž‘์„ฑํ–ˆ์„ ๋•Œ, ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ๊ตฌ๋…ํ–ˆ์„ ๋•Œ, ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ชฝ์ง€๋ฅผ ๋ฐ›์•˜์„ ๋•Œ ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ์„ ์ œ๊ณตํ•œ๋‹ค.

Kakao Map API

  • Kakao Map API๋Š” Kakao์—์„œ ์ œ๊ณตํ•˜๋Š” ์ง€๋„ API๋กœ ์ง€๋„๋ฅผ ์ด์šฉํ•œ ์„œ๋น„์Šค๋ฅผ ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.
  • MAP API๋Š” addressSearch, keywordSearch ๋“ฑ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•œ๋‹ค.
  • addressSearch ๋ฉ”์„œ๋“œ๋Š” ์ฃผ์†Œ๋ฅผ ์ขŒํ‘œ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , keywordSearch ๋ฉ”์„œ๋“œ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ํŒ์—…์Šคํ† ์–ด์˜ ์œ„์น˜, ์ฃผ๋ณ€ ํ•ซํ”Œ๋ ˆ์ด์Šค ์ถ”์ฒœ, ๋™์ผ ์ง€์—ญ ํŒ์—…์Šคํ† ์–ด์˜ ์œ„์น˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

๐ŸŽฌ Service capture image

Summary

main main2 main3 main4 main5 main6


โš™๏ธ Technology stack

  • Typescript / React

โš™๏ธ Library

  • router-dom
  • zustand
  • @tanstack/react-query
  • styled-components
  • styled-reset
  • @supabase/supabase-js
  • @types/navermaps
  • @mui/types
  • @mui/styles
  • @mui/icons-material
  • @supabase/auth-ui-react
  • @supabase/auth-ui-shared
  • axios
  • @types/axios
  • react-kakao-maps-sdk
  • react-slick
  • @types/react-slick
  • slick-carousel
  • @tanstack/react-query-devtools
  • react-toastify

โš™๏ธ Version control system

  • Git/Github

โš™๏ธ Collaboration tool

  • Visual Studio
  • Slack
  • Figma

๐Ÿšจ Trouble Shooting

์†Œ์…œ ๋กœ๊ทธ์ธ ๋ฐ ์œ ์ € ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ
  • ์š”๊ตฌ์‚ฌํ•ญ

    • ์†Œ์…œ ๋กœ๊ทธ์ธ (๊ตฌ๊ธ€ / ์นด์นด์˜คํ†ก / ํŽ˜์ด์Šค๋ถ) ํ•˜๊ธฐ.
    • ์ตœ์ดˆ ์†Œ์…œ ๋กœ๊ทธ์ธ ์‹œ, ์†Œ์…œ Provider์—์„œ ์ œ๊ณตํ•˜๋Š” ์œ ์ € ํ”„๋กœํ•„ ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ๊ฐ€์ ธ์˜จ ์œ ์ € ํ”„๋กœํ•„ ์ •๋ณด supabase user ํ…Œ์ด๋ธ”์— ์ €์žฅ.
    • ์†Œ์…œ ๋กœ๊ทธ์ธ ์‹œ ์œ ์ €์˜ ํ”„๋กœํ•„ ์ •๋ณด user ํ…Œ์ด๋ธ”์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ.
    • ๋กœ๊ทธ์ธ ํ•œ ์œ ์ €๋Š” ์ „์—ญ ์ƒํƒœ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ.
  • ๋ฌธ์ œ ์ƒํ™ฉ

    • ์†Œ์…œ ๋กœ๊ทธ์ธ์€ ๊ฐ€๋Šฅํ•˜๋‚˜ ์ƒˆ๋กœ๊ณ ์นจ ์‹œ ๋กœ๊ทธ์ธ ํ•œ ์œ ์ € ์ •๋ณด๋ฅผ ํ™”๋ฉด์—์„œ ์œ ์ง€ํ•˜์ง€ ๋ชปํ•จ.
    • ์œ ์ € ํ”„๋กœํ•„ ๋ณ€๊ฒฝ ์‹œ ๋ณ€๊ฒฝ๋œ ํ”„๋กœํ•„์ด ๋ฐ”๋กœ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ๊ณ ์นจ ์ดํ›„ ์—…๋ฐ์ดํŠธ๋จ.
    • ํฌ๋กฌ ์ƒ๋‹จ ํƒญ์„ ์ด๋™ํ•˜๊ณ  ๋‚˜๋ฉด ๋กœ๊ทธ์ธ ํ•œ ์œ ์ € ์ •๋ณด๊ฐ€ ํ•„์š”ํ•œ ์ชฝ์ง€, ๋Œ“๊ธ€ ๋“ฑ์˜ ๊ธฐ๋Šฅ์ด ์‹คํ–‰๋˜์ง€ ์•Š์Œ.
    • ๋ฐ”๋กœ ๋กœ๊ทธ์•„์›ƒ์ด ๋˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ๊ณ ์นจ ์ดํ›„์—๋งŒ ๋กœ๊ทธ์•„์›ƒ์ด ๋จ.
    • ์†Œ์…œ ์ตœ์ดˆ ๋กœ๊ทธ์ธ ์‹œ, Provider์—์„œ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœํ•„ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๊ธด ํ•˜๋‚˜, ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜์ง€ ๋ชปํ•จ.
    • ์œ„์˜ ๋ฌธ์ œ ์ƒํ™ฉ ํ•ด๊ฒฐ ๊ณผ์ •์—์„œ ์นด์นด์˜คํ†ก ๋กœ๊ทธ์ธ์ด ์‹คํ–‰๋˜์ง€ ์•Š์Œ.
  • ํ•ด๊ฒฐ ๊ณผ์ •

    • ์†Œ์…œ ๋กœ๊ทธ์ธ ํ›„ supabase์—์„œ ์ œ๊ณตํ•˜๋Š” onAuthStateChange ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด session์—์„œ ์œ ์ € ์ •๋ณด๋ฅผ ๋ฐ›์•„ ์™€ user ํ…Œ์ด๋ธ”์— ์ €์žฅํ•˜๊ณ , ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ localStorage๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ƒ์„ฑ๋œ ํ† ํฐ์„ zustand๋กœ store์— ๋‹ด์•„ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌํ•จ.
      • ์œ„์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ๋กœ๊ทธ์ธํ•œ ์œ ์ €์˜ ์ •๋ณด๋ฅผ ํ™”๋ฉด์—์„œ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์—๋Š” ์„ฑ๊ณตํ–ˆ์œผ๋‚˜, ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ์œ ์ €์˜ ํ”„๋กœํ•„( ์ด๋ฏธ์ง€, ๋‹‰๋„ค์ž„)์„ ์ˆ˜์ •ํ•˜๋ฉด ๋ฐ”๋กœ ๋ฐ˜์˜๋˜์ง€ ์•Š๊ณ , ์ƒˆ๋กœ๊ณ ์นจ ์‹œ์—๋งŒ ์ˆ˜์ •๋œ ํ”„๋กœํ•„์ด ๋ฐ˜์˜๋˜๋Š” ๋ฌธ์ œ ์ƒํ™ฉ์ด ๋ฐœ์ƒ.
    • ์ง์ ‘ localStorage์— ํ† ํฐ์„ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ , zustand์˜ persist๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ store์— ๋‹ด๊ธด ์œ ์ € ์ •๋ณด๋ฅผ localStorage์— ํ† ํฐ์œผ๋กœ ์ž๋™ ์ƒ์„ฑํ•ด ์ฃผ๊ณ  ์œ ์ง€ํ•จ์œผ๋กœ์จ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ ํ•จ.
      • ์œ„์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ํ”„๋กœํ•„ ์ˆ˜์ •์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ˜์˜๋˜์ง€๋งŒ, ํฌ๋กฌ ์ƒ๋‹จ ํƒญ์„ ์ด๋™ ํ›„ , ๋ฆฌ๋ทฐ ํŽ˜์ด์ง€๋‚˜, ๋ฉ”์ดํŠธ ํŽ˜์ด์ง€ ๋“ฑ์—์„œ ๊ธ€ ์ž‘์„ฑ, ๋Œ“๊ธ€, ์ชฝ์ง€ ๋ณด๋‚ด๊ธฐ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•  ๋•Œ ๊ธฐ๋Šฅ์ด ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ์ƒํ™ฉ ๋ฐœ์ƒ.
    • ๋กœ๊ทธ์ธ ์‹œ ์‹คํ–‰๋˜๋Š” ๋กœ์ง์ด Header ์ปดํฌ๋„ŒํŠธ์— ์œ„์น˜ํ•˜์—ฌ ํƒญ ์ด๋™์ด๋‚˜ ์ƒˆ๋กœ๊ณ ์นจ ์‹œ Header์˜ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ ๋ชจ๋‘ ๋ Œ๋”๋ง์ด ๋˜๋ฉด์„œ userData๊ฐ€ ์ถฉ๋™ํ•˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•จ. ์ตœ์ƒ๋‹จ์ธ App ์ปดํฌ๋„ŒํŠธ๋กœ ํ•ด๋‹น ๋กœ์ง์„ ์˜ฎ๊ฒจ์คŒ์œผ๋กœ์จ ํ•ด๊ฒฐํ•จ.
      • ์œ„์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์ชฝ์ง€ ๋“ฑ ๊ธฐ๋Šฅ์ด ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜์—ˆ์ง€๋งŒ, ๋ฐ”๋กœ ๋กœ๊ทธ์•„์›ƒ์ด ์•ˆ๋˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•จ.
      • ํ•˜๋‚˜์˜ useEffect์—์„œ ๋กœ๊ทธ์ธ ์‹œ ์ „์—ญ ์ƒํƒœ๋กœ ์œ ์ € ์ •๋ณด๋ฅผ set ํ•ด์ฃผ๋Š” ๋กœ์ง๊ณผ ๋กœ๊ทธ์•„์›ƒ ์‹œ ์ „์—ญ ์ƒํƒœ์—์„œ ์œ ์ € ์ •๋ณด๋ฅผ null๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋กœ์ง์ด ๊ณต์กดํ–ˆ์œผ๋‚˜, ๋กœ๊ทธ์•„์›ƒ ์‹œ ํ•„์š”ํ•œ ๋กœ์ง์„ ๋‹ค๋ฅธ useEffect๋กœ ๋ถ„๋ฆฌํ•ด์คŒ์œผ๋กœ์จ ๋กœ๊ทธ์•„์›ƒ ๋ฌธ์ œ ์ƒํ™ฉ์€ ํ•ด๊ฒฐ ํ•จ.
    • ์†Œ์…œ ์ตœ์ดˆ ๋กœ๊ทธ์ธ ์‹œ, Provider์—์„œ ์ œ๊ณตํ•˜๋Š” ์œ ์ €์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€ ๊ฐ’์„ ๋ถˆ๋Ÿฌ์˜ค์ง€ ๋ชปํ•˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜์—ฌ, ์ œ๊ณตํ•˜๋Š” ์ด๋ฏธ์ง€ url๋ฅผ blob์„ ํ†ตํ•ด ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ํ•ด๋‹น ํŒŒ์ผ์„ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ storage์— ์—…๋กœ๋“œํ•˜๋Š” ๋ฐฉ์‹์„ ์„ ํƒํ•จ. ์ด ๋ฐฉ๋ฒ•์œผ๋กœ storage์— ์—…๋กœ๋“œ ํ•œ data์˜ ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ ธ์™€ user ํ…Œ์ด๋ธ”์— ๋‹ด์•„์ฃผ๊ณ  ๋‹ด์•„์ค€ ์œ ์ € ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€๋ฅผ ์ •์ƒ์ ์œผ๋กœ ์—…๋กœ๋“œ ํ•˜๋Š” ๋ฐ ์„ฑ๊ณตํ•จ.
      • ์œ„์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์œ ์ €์˜ ์ด๋ฏธ์ง€ ์ •๋ณด ๋“ฑ์„ ์›ํ• ํ•˜๊ฒŒ ๊ฐ€์ ธ์˜ค๋‚˜, ์นด์นด์˜คํ†ก ๋กœ๊ทธ์ธ์ด ์•ˆ๋˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒ ํ•จ.
    • Provider์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ตฌ๊ธ€, ํŽ˜์ด์Šค๋ถ์€ https ํ˜•์‹์˜ ์ด๋ฏธ์ง€ url์ด๋ผ๋ฉด ์นด์นด์˜คํ†ก์˜ ๊ฒฝ์šฐ httpํ˜•์‹์˜ ์ด๋ฏธ์ง€ url์ด์–ด์„œ supabase storage์— ์—…๋กœ๋“œํ•  ๋•Œ cors ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ ํ•จ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์นด์นด์˜คํ†ก Rest API๋ฅผ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ํ”„๋กœํ•„์„ GET์š”์ฒญํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ https ํ˜•์‹์˜ ์ด๋ฏธ์ง€ url์„ JSON ๊ฐ์ฒด๋กœ ๋ฐ›์•„ ์œ ์ €์˜ ํ”„๋กœํ•„์„ ์—…๋กœ๋“œ ํ•˜๋Š” ๋ฐ ์„ฑ๊ณต ํ•จ.
  • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ

    • ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐ ๋กœ๊ทธ์ธ:
      • ์‚ฌ์šฉ์ž์˜ ์†Œ์…œ ๋กœ๊ทธ์ธ ํ›„ Supabase์˜ onAuthStateChange ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ธ์…˜์—์„œ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  Supabase์˜ user ํ…Œ์ด๋ธ”์— ์ €์žฅํ•œ๋‹ค.
      • ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ localStorage์— ํ† ํฐ์œผ๋กœ ์ƒ์„ฑํ•˜์—ฌ Zustand๋กœ ์ „์—ญ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.
    • ํ”„๋กœํ•„ ์ •๋ณด ์‹ค์‹œ๊ฐ„ ๋ฐ˜์˜:
      • ํ”„๋กœํ•„ ์ •๋ณด ์ˆ˜์ •์ด ๋ฐ”๋กœ ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Zustand์˜ persist๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒํƒœ ์ •๋ณด๋ฅผ localStorage์— ํ† ํฐ ํ˜•ํƒœ๋กœ ์ €์žฅํ•œ๋‹ค.
    • ๊ธฐ๋Šฅ ๋™์ž‘ ๋ฌธ์ œ:
      • ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด ํฌ๋กฌ ํƒญ ์ด๋™ ํ›„ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๊ทธ์ธ ์‹œ ์‹คํ–‰๋˜๋Š” ๋กœ์ง์„ App ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๋™ํ•˜์—ฌ ํ•ด๊ฒฐํ•œ๋‹ค.
    • ์นด์นด์˜คํ†ก ๋กœ๊ทธ์ธ ๋ฐ HTTPS ์ด๋ฏธ์ง€ URL:
      • ์นด์นด์˜คํ†ก์€ HTTP ํ˜•์‹์˜ ์ด๋ฏธ์ง€ URL์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ Supabase Storage์— ์—…๋กœ๋“œ ์‹œ CORS ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์นด์นด์˜คํ†ก Rest API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ํ”„๋กœํ•„ ์ด๋ฏธ์ง€๋ฅผ HTTPS ํ˜•์‹์˜ URL๋กœ ๊ฐ€์ ธ์™€์„œ ์ €์žฅํ•œ๋‹ค. โ‡’ ์ด๋Ÿฌํ•œ ์กฐ์น˜๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์ธ์ฆ, ํ”„๋กœํ•„ ๊ด€๋ฆฌ, ๊ธฐ๋Šฅ ๋™์ž‘, ์ด๋ฏธ์ง€ URL ๋ฌธ์ œ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.
Supabase ๊ฒ€์ƒ‰ API
  • ์š”๊ตฌ ์‚ฌํ•ญ

    • ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋Š” useInfinityQuery๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌดํ•œ์Šคํฌ๋กค๋กœ UI๋กœ ๊ตฌํ˜„
    • supabase DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๊ฒ€์ƒ‰ ์กฐ๊ฑด์— ์•Œ๋งž๋Š” ๋ฐ์ดํ„ฐ๋กœ ํ•„ํ„ฐ๋งํ•ด์„œ ๊ฐ€์ ธ์˜ค๊ธฐ
  • ๋ฌธ์ œ ์‚ฌํ•ญ

    • useInfinityQuery๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ supabase์— ๋ฐ์ดํ„ฐ ์š”์ฒญ์„ ํ•  ๋•Œ, ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๋ณต์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ค๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒ
    • useInfinityQuery๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” supabase DB๋กœ๋ถ€ํ„ฐ ํ•„ํ„ฐ๋ง ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™”์–ด์•ผ ํ•จ. post ํ…Œ์ด๋ธ”์˜ title๊ณผ foreignTable์ธ store ํ…Œ์ด๋ธ”์˜ title์„ ๊ฒ€์ƒ‰ ํ•„ํ„ฐ๋ง ์กฐ๊ฑด์œผ๋กœ ๋‘์—ˆ์œผ๋‚˜ ์•Œ๋งž๊ฒŒ ํ•„ํ„ฐ๋ง ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ๋ชป ํ•˜๋Š” ํ˜„์ƒ ๋ฐœ์ƒ
  • ํ•ด๊ฒฐ ๊ณผ์ •

    • order์™€ range ์กฐ๊ฑด์„ ๋™์‹œ์— ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์ค‘๋ณต์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ด
      • supabase docs์—์„œ๋„ order์กฐ๊ฑด๊ณผ range ์กฐ๊ฑด์„ ๋™์‹œ์— ์‚ฌ์šฉํ•œ ์˜ˆ์ œ๊ฐ€ ์—†์Œ, ํ•˜์ง€๋งŒ ์ด๋Š” supabase์˜ ํ•„ํ„ฐ๋ง ์˜ค๋ฅ˜๋กœ ํŒ๋‹จํ•จ.
      • supabase SQL Editor์„ ํ†ตํ•ด order์กฐ๊ฑด(๋‚ด๋ฆผ์ฐจ์ˆœ)์œผ๋กœ view๋ฅผ ์ƒ์„ฑํ•˜๊ณ , view table์„ range์กฐ๊ฑด์œผ๋กœ ๋ฐ์ดํ„ฐ ์š”์ฒญํ–ˆ์ง€๋งŒ ๋™์ผํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๋ณต์œผ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒ
    • supabase or ๋ฉ”์†Œ๋“œ์—์„œ๋Š” post ํ…Œ์ด๋ธ”๊ณผ foreignTable ํ…Œ์ด๋ธ”์„ ๋™์‹œ์— ์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ๋ชป ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํŒ๋‹จ, ๊ณต์‹ ๋ฌธ์„œ์—๋„ ์‚ฌ์šฉ ์˜ˆ์ œ๊ฐ€ ์—†์Œ
  • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ

    • supabase ์ธก ์˜ค๋ฅ˜๋กœ ํŒ๋‹จํ•˜์—ฌ, order ์กฐ๊ฑด์„ ์ œ๊ฑฐ ํ›„ range์กฐ๊ฑด๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์™€ ์ค‘๋ณต๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•จ.
    • ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋‘์–ด ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์—์„œ ํ•˜๋‚˜์˜ ๊ฒ€์ƒ‰ ์กฐ๊ฑด๋งŒ์„ ํ•„ํ„ฐ๋งํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉ ํ•จ
์ง€๋„ API & ๊ฒ€์ƒ‰ API
  • ์š”๊ตฌ ์‚ฌํ•ญ

    • ํŒ์—…์Šคํ† ์–ด ์ƒ์„ธ ์œ„์น˜๋ฅผ ์ง€๋„ API๋ฅผ ์‚ฌ์šฉํ•ด ๋งˆ์ปค๋กœ ํ‘œ์‹œํ•˜๊ธฐ.
    • ๊ฒ€์ƒ‰ API๋ฅผ ํ†ตํ•ด ํŒ์—…์Šคํ† ์–ด ์ฃผ๋ณ€ ํ•ซํ”Œ๋ ˆ์ด์Šค์— ๋Œ€ํ•œ ์ƒ์„ธ ์ •๋ณด๋Š” ์นด๋“œ ์Šฌ๋ผ์ด๋“œ๋กœ ๋ณด์—ฌ์ฃผ๊ณ  ์ด์™€ ์ง€๋„ API๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์œ„์น˜๋Š” ์ง€๋„์— ๋งˆ์ปค๋กœ ํ‘œ์‹œํ•˜๊ธฐ.
    • ์ฃผ๋ณ€ ์ง€์—ญ ํŒ์—…์Šคํ† ์–ด ์œ„์น˜๋ฅผ ์ง€๋„ API๋ฅผ ์‚ฌ์šฉํ•ด ๋งˆ์ปค๋กœ ํ‘œ์‹œํ•˜๊ธฐ.
  • ๋ฌธ์ œ ์‚ฌํ•ญ

    • ๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰ API๋ฅผ ์š”์ฒญํ•˜๋ ค๋ฉด node.js๋ฅผ ์ด์šฉํ•ด ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜ ํ”„๋ก์‹œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•จ.
    • ๊ณต๊ณต OPEN API์—์„œ ์ œ๊ณตํ•˜๋Š” ์Œ์‹์  ์ •๋ณด์™€ ์Œ์‹์  ์ด๋ฏธ์ง€์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฆ„.
    • ์นด์นด์˜ค ๊ฒ€์ƒ‰ API์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ์ด๋ฏธ์ง€๊ฐ€ ๋žœ๋ค์ด๋ผ ํ•ซํ”Œ๋ ˆ์ด์Šค์™€ ๊ด€๋ จ์—†๋Š” ์ด๋ฏธ์ง€๋„ ๊ฐ€์ ธ์˜ด.
  • ํ•ด๊ฒฐ ๊ณผ์ •

    • ์ฒ˜์Œ์— UI ์ ์ธ ์ด์œ ๋กœ Naver ์ง€๋„ API๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผํ•˜๊ฒŒ Naver ๊ฒ€์ƒ‰ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ๋ณ€ ํ•ซํ”Œ๋ ˆ์ด์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค ํ–ˆ์œผ๋‚˜, Naver ๊ฒ€์ƒ‰ API๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด node.js ๊ฐ™์€ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜ ํ”„๋ก์‹œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ์–ด์•ผํ•จ.
    • ๊ฒ€์ƒ‰ API๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ํ•ซํ”Œ๋ ˆ์ด์Šค ๊ด€๋ จ ์ •๋ณด๋ฅผ ๊ด€๊ด‘ ์Œ์‹์  OPEN API๋ฅผ ํ†ตํ•ด ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ ์Œ์‹์  ์ƒ์„ธ ์ •๋ณด ๋ฐ์ดํ„ฐ์™€ ์Œ์‹์  ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ์˜ ์ •๋ณด๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์•„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์—ˆ์Œ.
    • ์„œ๋ฒ„๋ฅผ ํ†ตํ•œ ์š”์ฒญ์ด ํ•„์š”์—†๋Š” Kakao ์ง€๋„ API ๋‚ด์˜ keywordSearch ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ๋ณ€ ์ง€์—ญ ํ•ซํ”Œ๋ ˆ์ด์Šค ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ด.
    • ์œ„ ํ•ด๊ฒฐ ๊ณผ์ •์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ํ•ซํ”Œ๋ ˆ์ด์Šค ๋ฐ์ดํ„ฐ์™€ ์ผ์น˜ํ•˜๋Š” ์žฅ์†Œ์˜ ์ด๋ฏธ์ง€๋ฅผ Kakao์˜ ๊ฒ€์ƒ‰ api๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ถœํ•˜๋ ค ํ–ˆ์œผ๋‚˜ ๊ฐ€์ ธ์˜ค๋Š” ์ด๋ฏธ์ง€๊ฐ€ ๋žœ๋ค์ด๋ผ ์žฅ์†Œ์™€ ๊ด€๋ จ์—†๋Š” ์ด๋ฏธ์ง€๋„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊น€.
  • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ

    • ํ•ซํ”Œ๋ ˆ์ด์Šค์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์นด๋“œ ์Šฌ๋ผ์ด๋“œ๋ฅผ ํ†ตํ•ด ๋ณด์—ฌ์ฃผ๋Š” ๋Œ€์‹  ์ง€๋„ ์œ„์˜ ๋งˆ์ปค๋“ค๋กœ ํ‘œํ˜„ํ•˜๊ณ  ํ•ด๋‹น ๋งˆ์ปคํ•€์„ ํด๋ฆญํ•˜๋ฉด iframe์„ ์‚ฌ์šฉํ•ด ์นด์นด์˜ค๋งต์˜ ์ƒ์„ธ์ •๋ณด๋ฅผ ๋„์›Œ์ฃผ๋Š” ์‹์œผ๋กœ ๋ณ€๊ฒฝํ•จ.

About

NBC Final project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.3%
  • Other 0.7%