ย ๋ฐฐ์น์ฐ
ย ํ๋ก์ ํธ ๊ด๋ฆฌ
โข
๊ธฐํ ๋จ๊ณ
โฆ
์๊ตฌ์ฌํญ ์ ๋ฆฌ ๋ฌธ์ย ์์ฑ
โฆ
๊ธฐ๋ฅ ๋ถ๋ด ๋ฌธ์ย ์์ฑ ๋ฐ ํ๋ก์ ํธ ์งํ ์ํฉ ๊ด๋ฆฌ
โข
๊ฐ๋ฐ ๋จ๊ณ
โฆ
โฆ
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 : ์ฌ์ฉ์ ์์น๋ฅผ ์ ์ฅํ๋ ๊ฐ์ฒด
โข