//////
Search
๐Ÿฃ

์Šน์—ฐ

ย ๋ฐฐ์Šน์—ฐ

ย ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ

โ€ข
๊ธฐํš ๋‹จ๊ณ„
โ—ฆ
๊ธฐ๋Šฅ ๋ถ„๋‹ด ๋ฌธ์„œย ์ž‘์„ฑ ๋ฐ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ƒํ™ฉ ๊ด€๋ฆฌ
โ€ข
๊ฐœ๋ฐœ ๋‹จ๊ณ„
โ—ฆ
ํšจ์œจ์ ์ธ ํ˜‘์—…์„ ์œ„ํ•œ ๋ธŒ๋žœ์น˜ ์ „๋žต, ํ˜‘์—… ์‹œ๋‚˜๋ฆฌ์˜ค ์„ค๋ฆฝ ํ›„ ํŒ€ ๋‚ด ์ „ํŒŒ
โ—ฆ
GitHub ์ด์Šˆ ํ…œํ”Œ๋ฆฟ, PR ํ…œํ”Œ๋ฆฟ ์ œ์ž‘ ๋ฐ ๋“ฑ๋ก
โ—ฆ
์†Œ๋ชจ์ ์ธ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ํ˜‘์—… ๋ฉ”์‹ ์ €(Discord)์™€ GitHub ์•Œ๋ฆผ ์—ฐ๋™
โ€ข
ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„
โ—ฆ
๋ฒ„๊ทธ ๋ฆฌํฌํŠธย ๋„์ž… ๋ฐ ์ž‘์„ฑ๋ฒ• ์ „ํŒŒ

ย ๋””์ž์ธ

โ€ข
๊ฐ€์ ธ๋„๋Œ•๋ƒฅ ๋กœ๊ณ ,ย ๋งˆ์Šค์ฝ”ํŠธ ์บ๋ฆญํ„ฐ, ๊ด‘๊ณ  ์ด๋ฏธ์ง€ย ๋“ฑ ๋””์ž์ธ ์—์…‹ ์ œ์ž‘
โ€ข
์ง‘์‚ฌ์ƒํ™œ ๋ฉ”์ธ, ์‚ฐ์ฑ… ๋‚œ์ด๋„, ๋™๋ฌผ๋ณ‘์› ํŽ˜์ด์ง€ Figma ์‹œ์•ˆ ์ œ์ž‘

ย ํ™”๋ฉด ๊ฐœ๋ฐœ

โ€ข
์• ๋‹ˆ๋ฉ”์ด์…˜, ๋กœ๋”ฉ, ๊ฒ€์ƒ‰, ํŒ”๋กœ์šฐ, ๋ชจ๋‹ฌ, ๋ฉ”์ธ ๋ ˆ์ด์•„์›ƒ ์ปดํฌ๋„ŒํŠธ ์ œ์ž‘
โ€ข
์ด๋ฉ”์ผ ๋กœ๊ทธ์ธ, ํŒ”๋กœ์šฐ ํŽ˜์ด์ง€, ์ง‘์‚ฌ์ƒํ™œ ๋ฉ”์ธ, ์‚ฐ์ฑ… ๋‚œ์ด๋„, ๋™๋ฌผ๋ณ‘์› ํŽ˜์ด์ง€ ํผ๋ธ”๋ฆฌ์‹ฑ
โ€ข
์—ฌ๋Ÿฌ ํŽ˜์ด์ง€์—์„œ ๋ฐ˜๋ณต ์‚ฌ์šฉ ๋˜๋Š” ๋ ˆ์ด์•„์›ƒ์„ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ปจํ…์ธ  ๋ ˆ์ด์•„์›ƒ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ถ„๋ฆฌ

ย ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

โ€ข
๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„ (API ๋ช…์„ธ์— ๋”ฐ๋ฆ„)
โ—ฆ
์ •๊ทœํ‘œํ˜„์‹์œผ๋กœ ์ด๋ฉ”์ผ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ์œ ํšจ์„ฑ ๊ฒ€์ฆ
โ—ฆ
์œ ํšจ์„ฑ ๊ฒ€์ฆ์„ ํ†ต๊ณผํ•ด์•ผ ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์ด ํ™œ์„ฑํ™” ๋˜๋„๋ก ๊ตฌํ˜„
โ—ฆ
localStorage์— ํ† ํฐ ์ €์žฅ
โ€ข
๋กœ๊ทธ์•„์›ƒ ๊ธฐ๋Šฅ ๊ตฌํ˜„
โ—ฆ
localStorage์— ์ €์žฅ๋œ ํ† ํฐ ์‚ญ์ œ
โ€ข
ํŒ”๋กœ์šฐ / ํŒ”๋กœ์ž‰ ํŽ˜์ด์ง€ ๊ธฐ๋Šฅ ๊ตฌํ˜„
โ—ฆ
ํŒ”๋กœ์šฐ / ํŒ”๋กœ์ž‰ ๋ชฉ๋ก ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„ (API ๋ช…์„ธ์— ๋”ฐ๋ฆ„)
โ—ฆ
ํŒ”๋กœ์šฐ / ์–ธํŒ”๋กœ์šฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„ (API ๋ช…์„ธ์— ๋”ฐ๋ฆ„)
โ€ข
์ง‘์‚ฌ์ƒํ™œ ๋ฉ”์ธ ํŽ˜์ด์ง€ ๊ธฐ๋Šฅ ๊ตฌํ˜„
โ—ฆ
Swiper ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•œ ํŽ˜์ด์ง€๋„ค์ด์…˜ ์บ๋Ÿฌ์…€ ๊ตฌํ˜„
โ—ฆ
์ถ”์ฒœ๊ธ€ API๊ฐ€ ๋”ฐ๋กœ ์ฃผ์–ด์ง€์ง€ ์•Š์Œ์— ๋”ฐ๋ผ, ์˜ค๋Š˜์˜ ์ถ”์ฒœ๊ธ€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด API ๊ฐ€๊ณต
โ–ช
ํ”ผ๋“œ ๊ฒŒ์‹œ๊ธ€๊ณผ ๋‚ด ๊ฒŒ์‹œ๊ธ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋™์‹œ์— ์š”์ฒญํ•œ ํ›„ ์‘๋‹ต ๋ฐ›์€ ๋‘ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฐํ•ฉ
โ–ช
๊ฒฐํ•ฉํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ข‹์•„์š”+๋Œ“๊ธ€์ด ๋งŽ์€ ์ˆœ โ†’ ๋Œ“๊ธ€์ด ๋งŽ์€ ์ˆœ โ†’ ์ตœ์‹  ์ˆœ์œผ๋กœ ์ •๋ ฌ
โ—ฆ
์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์€ ์–‘์˜ ๊ฒŒ์‹œ๊ธ€์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๋ฌดํ•œ์Šคํฌ๋กค ์ ์šฉ
โ–ช
๊ฐ€์žฅ ํ•˜๋‹จ์— ์žˆ๋Š” ์š”์†Œ๊ฐ€ ํ™”๋ฉด ๋ฐ”๋‹ฅ์— ๋‹ฟ์œผ๋ฉด ํ”ผ๋“œ ๊ฒŒ์‹œ๊ธ€, ๋‚ด ๊ฒŒ์‹œ๊ธ€์„ ๊ฐ๊ฐ 10๊ฐœ์”ฉ ์š”์ฒญ
โ€ข
์‚ฐ์ฑ… ๋‚œ์ด๋„ ํŽ˜์ด์ง€ ๊ธฐ๋Šฅ ๊ตฌํ˜„
โ—ฆ
ํ–‰์ •๊ตฌ, ๋‚ ์”จ, ๋ฏธ์„ธ๋จผ์ง€ ์กฐํšŒ ๊ธฐ๋Šฅ (API ๋ช…์„ธ์— ๋”ฐ๋ฆ„)
โ–ช
Geolocation API๋ฅผ ์ด์šฉํ•ด ์‚ฌ์šฉ์ž์˜ ํ˜„์žฌ ์ขŒํ‘œ๋ฅผ ๊ฐ€์ ธ์˜ด
โ–ช
Kakao ์ขŒํ‘œ๋กœ ํ–‰์ •๊ตฌ์—ญ ์ •๋ณด ๋ฐ›๊ธฐ API๋ฅผ ์ด์šฉํ•ด ํ–‰์ •๊ตฌ์—ญ ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ด
โ–ช
OpenWeatherMap API๋ฅผ ์ด์šฉํ•ด ๋‚ ์”จ, ๋ฏธ์„ธ๋จผ์ง€ ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ด
โ—ฆ
์‚ฐ์ฑ… ๋‚œ์ด๋„ ์ฑ…์ • ๊ธฐ๋Šฅ
โ–ช
๋‚ ์”จ, ๊ธฐ์˜จ, ๊ณต๊ธฐ ์งˆ ์ •๋ณด๋ฅผ ์ด์šฉํ•ด ์‚ฐ์ฑ… ๋‚œ์ด๋„๋ฅผ ์–ด๋ ค์›€ / ๋ณดํ†ต / ์‰ฌ์›€์œผ๋กœ ์ฑ…์ •
โ€ข
๋™๋ฌผ๋ณ‘์› ํŽ˜์ด์ง€ ๊ธฐ๋Šฅ ๊ตฌํ˜„
โ—ฆ
Kakao ํ‚ค์›Œ๋“œ๋กœ ์žฅ์†Œ ๊ฒ€์ƒ‰ํ•˜๊ธฐ API๋ฅผ ์ด์šฉํ•ด ๊ทผ์ฒ˜ ๋™๋ฌผ๋ณ‘์› ์ •๋ณด๋ฅผ ๊ฐ€๊นŒ์šด ์ˆœ์œผ๋กœ ๋ฐ›์•„์˜ด (API ๋ช…์„ธ์— ๋”ฐ๋ฆ„)
โ—ฆ
๊ฑฐ๋ฆฌ ํ•„ํ„ฐ(1km, 5km, 10km) ์ ์šฉ
โ—ฆ
์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์ •๋ณด๋งŒ ์„ ๋ณ„์ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๋”๋ณด๊ธฐ ๋ฒ„ํŠผ ์ ์šฉ
โ–ช
๋”๋ณด๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด 10๊ฐœ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€๋กœ ์š”์ฒญ

ย ๊ธฐํƒ€

โ€ข
ํด๋” ํŠธ๋ฆฌ ๋ฐ ๊ธฐ๋ณธ ํŒŒ์ผ ๊ตฌ์„ฑ์„ ํฌํ•จํ•œ ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ์„ธํŒ… ์ž‘์—…
โ—ฆ
ํŒ€ ์ปจ๋ฒค์…˜์— ๋งž์ถฐ ESLint & Prettier ์ ์šฉ
โ—ฆ
์ˆ˜์›”ํ•œ ํผ๋ธ”๋ฆฌ์‹ฑ ์ž‘์—…์„ ์œ„ํ•ด ๋ฉ”์ธ ๋ ˆ์ด์•„์›ƒ ์ ์šฉ
โ€ข
๋ผ์šฐํ„ฐ ์ œ์ž‘
โ—ฆ
์„œ๋น„์Šค ์ „์ฒด ๋ผ์šฐํ„ฐ ์„ค๊ณ„ ๋ฐ ๊ตฌ์ถ•
โ—ฆ
์‚ฌ์šฉ์ž ์ธ์ฆ ์—ฌ๋ถ€์— ๋”ฐ๋ฅธ ๋ผ์šฐํ„ฐ ์ ‘๊ทผ์ œํ•œ ๊ธฐ๋Šฅ ๊ตฌํ˜„
โ€ข
์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋Š” Custom Hook์œผ๋กœ ๋ถ„๋ฆฌ
โ—ฆ
useInput : input ์š”์†Œ ๊ด€๋ จ Hook (์œ ํšจ์„ฑ ๊ฒ€์‚ฌ, ํฌ์ปค์Šค ์ด๋ฒคํŠธ, ๋ธ”๋Ÿฌ ์ด๋ฒคํŠธ ๋“ฑ)
โ—ฆ
useCurrentLocation : ์‚ฌ์šฉ์ž ์ขŒํ‘œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” Hook
โ€ข
์ „์—ญ์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋Š” Context ๊ฐ์ฒด๋กœ ๊ด€๋ฆฌ
โ—ฆ
AuthContext : ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฐ์ฒด
โ—ฆ
UserLocationContext : ์‚ฌ์šฉ์ž ์œ„์น˜๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฐ์ฒด