Skip to content

Outsourcing Project with React.js, RTK, axios, react-query and APIs

Notifications You must be signed in to change notification settings

xoxojw/gonggongplay-service

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

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

Repository files navigation

์‹คํ–‰๋ฒ•

  1. yarn์œผ๋กœ ํŒจํ‚ค์ง€ ์„ค์น˜
  2. json-server --watch db.json --port 4000 ์œผ๋กœ JSON server ์‹คํ–‰ *(mac ver - yarn json-server --watch db.json --port 4000)
  3. node server.js๋กœ express ์„œ๋ฒ„ ์‹คํ–‰
  4. yarn start๋กœ ํด๋ผ์ด์–ธํŠธ ์‹คํ–‰

GongGongPlay โšฝ๏ธ๐ŸŽพ๐Ÿ€

๐Ÿ–ฅ๏ธ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

  • React.js๋กœ ๋นŒ๋“œํ•œ ์„œ์šธ์‹œ ๊ณต๊ณต์„œ๋น„์Šค ์ฒด์œก์‹œ์„ค ์กฐํšŒ ๋ฐ ์˜ˆ์•ฝ์•ˆ๋‚ด ์‚ฌ์ดํŠธ์ž…๋‹ˆ๋‹ค
  • naver map api, ์„œ์šธ์‹œ ๊ณต๊ณต ์ฒด์œก์‹œ์„ค api, open weather map api, youtube data api๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋‹ค์ฑ„๋กœ์šด ํŽ˜์ด์ง€ ๊ตฌ์„ฑ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค

๐Ÿ“ ์‚ฌ์ดํŠธ ์ฃผ์†Œ

GONG GONG PLAY

๋ฐฐํฌ ์‚ฌ์ดํŠธ ์ด์šฉ ์‹œ ์„ค์ • ์ฐธ๊ณ 
  • ์„œ์šธ์‹œ api๋Š” https๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์•„์„œ ๋ธŒ๋ผ์šฐ์ € ์„ค์ • ํ•„์š”
  • ํฌ๋กฌ ๊ธฐ์ค€ ์•„๋ž˜ ์บก์ณ์™€ ๊ฐ™์ด url ์ฃผ์†Œ์ฐฝ ์™ผ์ชฝ ์ž๋ฌผ์‡  ํด๋ฆญ - ์‚ฌ์ดํŠธ ์„ค์ • ์„ ํƒ - ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ฝ˜ํ…์ธ  ํ—ˆ์šฉ ํ›„ ์ƒˆ๋กœ๊ณ ์นจ



๐Ÿ•ฐ๏ธ ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„

2023.07.17 - 2023.07.23


๐Ÿ–ผ ์™€์ด์–ดํ”„๋ ˆ์ž„

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

123

456

789



๐Ÿท ํด๋” ๊ตฌ์กฐ

ํŽผ์น  ์‹œ ํŒŒ์ผ ์ƒ์„ธ ๊ตฌ์กฐ
 โ”ฃ ๐Ÿ“‚axios
 โ”ƒ โ”ฃ ๐Ÿ“œcomment.js
 โ”ƒ โ”ฃ ๐Ÿ“œpublicDataAPI.js
 โ”ƒ โ”— ๐Ÿ“œweatherApi.js
 โ”ฃ ๐Ÿ“‚components
 โ”ƒ โ”ฃ ๐Ÿ“‚common
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œFooter.jsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œHeader.jsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œLayout.jsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œWeather.jsx
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œYouTubeApi.jsx
 โ”ƒ โ”ฃ ๐Ÿ“‚detail
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œComments.jsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œDetail.jsx
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œPostData.jsx
 โ”ƒ โ”ฃ ๐Ÿ“‚map
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œMapComponent.jsx
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œMaps.jsx
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œMarkPins.jsx
 โ”ƒ โ”ฃ ๐Ÿ“œFacilities.jsx
 โ”ƒ โ”ฃ ๐Ÿ“œPaging.jsx
 โ”ƒ โ”— ๐Ÿ“œSearch.jsx
 โ”ฃ ๐Ÿ“‚helper
 โ”ƒ โ”— ๐Ÿ“œcalDistance.js
 โ”ฃ ๐Ÿ“‚hooks
 โ”ƒ โ”ฃ ๐Ÿ“‚mapHooks
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œsaveBoundary.js
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œsetBoundaries.js
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œuseGetCoords.js
 โ”ƒ โ”ฃ ๐Ÿ“œuseCurrentLocation.js
 โ”ƒ โ”— ๐Ÿ“œuseFetchPublicData.js
 โ”ฃ ๐Ÿ“‚pages
 โ”ƒ โ”ฃ ๐Ÿ“œHome.jsx
 โ”ƒ โ”— ๐Ÿ“œHomebackup.jsx
 โ”ฃ ๐Ÿ“‚redux
 โ”ƒ โ”ฃ ๐Ÿ“‚config
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œconfigStore.js
 โ”ƒ โ”— ๐Ÿ“‚modules
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚maps
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œcoordsGroup.js
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œreloadMap.js
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œsave10Location.js
 โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œsetBoundary.js
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œcommentsSlice.js
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œpublicData.js
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œuserLocation.js
 โ”ฃ ๐Ÿ“‚shared
 โ”ƒ โ”— ๐Ÿ“œRouter.js
 โ”ฃ ๐Ÿ“œ.DS_Store
 โ”ฃ ๐Ÿ“œApp.css
 โ”ฃ ๐Ÿ“œApp.js
 โ”ฃ ๐Ÿ“œGlobalStyle.jsx
 โ”ฃ ๐Ÿ“œindex.css
 โ”ฃ ๐Ÿ“œindex.js
 โ”— ๐Ÿ“œreset.css

๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ ํŒ€์› ์†Œ๊ฐœ

  • ํŒ€๋ช… : ๋‚ด ์ฝ”๋“œ ์™œ2๋Ÿฌ์กฐ
  • ํŒ€์› ๋ฐ ๋‹ด๋‹น ๊ตฌํ˜„ ๊ธฐ๋Šฅ
์—ญํ•  ์ด๋ฆ„ ๋‹ด๋‹น ๊ตฌํ˜„ ๊ธฐ๋Šฅ GitHub
ํŒ€์žฅ ๊น€ํ™˜ํ›ˆ ์ง€๋„ API, express ์„œ๋ฒ„, ์ปดํฌ๋„ŒํŠธ๊ฐ„ ๋ฐ์ดํ„ฐ ์—ฐ๊ฒฐ https://github.com/kimhwanhoon
ํŒ€์› ๊น€์šฐ๋ฆฌ ๋‚ ์”จAPI, ์œ ํŠœ๋ธŒ API https://github.com/wooriki
ํŒ€์› ๋ฐ•์ง€์› ๊ณต๊ณตAPI ๋ฐ์ดํ„ฐ ํŽ˜์ด์ง€๋„ค์ด์…˜ https://github.com/xoxojw
ํŒ€์› ์กฐ์„ฑ๋ก ๋‚ ์”จAPI, ์ƒ์„ธ ํŽ˜์ด์ง€, ๋Œ“๊ธ€ ๊ธฐ๋Šฅ, ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ https://github.com/pigrok
ํŒ€์› ์ตœ์ˆ˜์•„ ๊ณต๊ณตAPI ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ๋ฐ ํ•„ํ„ฐ ๊ธฐ๋Šฅ https://github.com/choisua98

๐Ÿ“Œ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ๊ณต๊ณต๋ฐ์ดํ„ฐAPI์—์„œ ๋ถˆ๋Ÿฌ์˜จ ๋ฐ์ดํ„ฐ์—์„œ ์œ„๋„์™€ ๊ฒฝ๋„๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋„ค์ด๋ฒ„ ๋งต์— ํ•€์„ ์ฐ๋Š”๋‹ค
  • reverse geocoding api๋ฅผ ํ†ตํ•ด ์œ„๋„์™€ ๊ฒฝ๋„๋ฅผ ํ†ตํ•ด์„œ ๋„๋กœ๋ช…์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค
  • react query, axios ํ™œ์šฉํ•˜์—ฌ ์„œ์šธ์‹œ ๊ณต๊ณตAPI ๋ฐ์ดํ„ฐ GET ์š”์ฒญํ•œ๋‹ค
  • ๊ฒ€์ƒ‰์ฐฝ ํ•„ํ„ฐ๋ง์œผ๋กœ ๊ณต๊ณต๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ๋‹ค
  • ํ•„ํ„ฐ๋ง ๋œ API ๋ฐ์ดํ„ฐ๋ฅผ pagination ๊ธฐ๋Šฅ์œผ๋กœ painting
  • ๋ถˆ๋Ÿฌ์˜จ API ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ์ž ์œ„์น˜ ์ •๋ณด์— ๋”ฐ๋ผ ๊ฐ€๊นŒ์šด ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค
  • ๊ฑฐ๋ฆฌ ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ react-js-pagination ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™œ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€๋„ค์ด์…˜ํ•œ๋‹ค

๋‚ ์”จAPI Open Weather Map

  • ํ˜„์žฌ ์›น ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์šฉ์ž์˜ ์œ„์น˜๋ฅผ ํ†ตํ•ด ๋‚ ์”จ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API
  • ๋„์‹œ์˜ ์œ„์น˜(๊ฒฝ๋„, ์œ„๋„)๊ฐ’์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ํ•˜์—ฌ ํ™œ์šฉํ•œ๋‹ค
  • jsonํ˜•ํƒœ๋กœ ๊ฐ€์ ธ์™€์„œ ํ˜„์žฌ ์œ„์น˜์˜ ๋‚ ์”จ ํ˜„ํ™ฉ์„ ํ•ด๋‹น ๋‚ ์”จ์— ๋ฐ˜ํ™˜๋˜๋Š” icon์œผ๋กœ ์ง€์—ญ๋ช…๊ณผ ํ•จ๊ป˜ ๋ธŒ๋ผ์šฐ์ €์— ๋ Œ๋”๋งํ•œ๋‹ค
  • ์ถ”๊ฐ€์ ์œผ๋กœ ๋‚ ์งœ์™€ ํ˜„์žฌ ์‹œ๊ฐ„์„ ๋ Œ๋”๋งํ•œ๋‹ค

์œ ํŠœ๋ธŒAPI YouTube

  • ํƒ€๊ฒŸํŒ…ํ•œ ํŠน์ • ์ฑ„๋„์˜ ID ๊ฐ’์„ ํ™œ์šฉํ•˜์—ฌ ์ฑ„๋„์˜ ์žฌ์ƒ๋ชฉ๋ก List๋ฅผ API๋กœ ๊ฐ€์ ธ์˜จ๋‹ค
  • API ์š”์ฒญ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ผ์น˜ํ•˜๋Š” ์žฌ์ƒ๋ชฉ๋ก์˜ ๋ชจ์Œ์„ ๋ฐ˜ํ™˜๋ฐ›์•„ axios get ์š”์ฒญ์œผ๋กœ ์ƒ์„ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค
  • ํ•„์š”ํ•œ ๊ฐ’์„ return ํ•ด์ฃผ๋ฉฐ List๋ฅผ shuffleํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์— ๋ Œ๋”๋งํ•œ๋‹ค


๐ŸŽฌ ํŽ˜์ด์ง€ ์Šคํฌ๋ฆฐ์ƒท

1. ๋ฉ”์ธํ™”๋ฉด

01 main

1) Header - ๊ฒ€์ƒ‰์ฐฝ ์นดํ…Œ๊ณ ๋ฆฌ ํ•„ํ„ฐ : ์‚ฌ์šฉ์ž๊ฐ€ ์šด๋™์ข…๋ชฉ๊ณผ ์ง€์—ญ๊ตฌ๋ฅผ ์„ ํƒํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง
2) Header - ๋‚ ์”จ API : ์‚ฌ์šฉ์ž ํ˜„์žฌ ์œ„์น˜์— ๋”ฐ๋ฅธ ๋‚ ์”จ ๋ฐ ์‹œ๊ฐ„ ๋ณด์—ฌ์ฃผ๊ธฐ
3) Body - map API :  ์‚ฌ์šฉ์ž ํ˜„์žฌ ์œ„์น˜์—์„œ ๊ฐ€๊นŒ์šด ๋ฐ์ดํ„ฐ ๋ณด์—ฌ์ฃผ๊ธฐ
4) Body - Youtube API : ์ถ”์ฒœ ์Œ์•… ๋ฆฌ์ŠคํŠธ ๊ฐ€์ ธ์˜ค๊ธฐ ( ์ƒˆ๋กœ๊ณ ์นจ ํ•  ๋•Œ ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ”๋€œ )
5) Body - ๊ณต๊ณต๋ฐ์ดํ„ฐ API : ์‚ฌ์šฉ์ž ํ˜„์žฌ ์œ„์น˜์™€ ๊ฐ€๊นŒ์šด ์ˆœ์œผ๋กœ ๋ฐ์ดํ„ฐ ํŽ˜์ด์ง€๋„ค์ด์…˜

2. ๊ฒ€์ƒ‰์นดํ…Œ๊ณ ๋ฆฌ ํ•„ํ„ฐ๋ง ๊ตฌํ˜„

02 filtering


3. ๊ฒ€์ƒ‰๊ธฐ๋Šฅ ๊ตฌํ˜„

03 searching


4. ๊ฒŒ์‹œ๋ฌผ ๋””ํ…Œ์ผ ํ™”๋ฉด

04 detail


5. ๊ฒŒ์‹œ๋ฌผ ๋””ํ…Œ์ผ - ๋Œ“๊ธ€๊ธฐ๋Šฅ

05 comment

1) ๋Œ“๊ธ€ ์ˆ˜์ •/์‚ญ์ œ๊ธฐ๋Šฅ ๊ตฌํ˜„
2) ๋žœ๋ค์œผ๋กœ ํ”„๋กœํ•„ ์‚ฌ์ง„ ์ƒ์„ฑ

6. ๋ฐ˜์‘ํ˜• ๊ตฌํ˜„

small


โš™๏ธ ๊ธฐ์ˆ  ์Šคํƒ

  • React.js

โš™๏ธ ์‚ฌ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • styled-components
  • react-router-dom
  • react-redux
  • redux-toolkit
  • redux-devtools-extension
  • react-query
  • react-query-devtools
  • react-js-paginaition
  • react-naver-maps
  • axios
  • cors
  • dotenv
  • express
  • weather-styled-icon

โš™๏ธ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

  • Git/Github

โš™๏ธ ํ˜‘์—…ํˆด

  • Visual Studio
  • Slack
  • Figma

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 96.7%
  • CSS 2.9%
  • HTML 0.4%