- ์์ธ ๋ด ์ผ๊ฐ ์์ ์นดํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์น/์ฑ ์๋น์ค์ ๋๋ค.
- ์ผ๊ฐ ์์ ์ ์์ ์ดํ ๋๋ 24์๊ฐ ์์ ํ๋ ์นดํ๋ฅผ ์๋ฏธํฉ๋๋ค.
- ์ฌ์ฉ์์ GPS ์ขํ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ๊ฒฝ 2km ๋ด์ ์๋ ์นดํ ๋ชฉ๋ก์ ์ ๊ณตํฉ๋๋ค.
- Node.js 20.11.1
- yarn 1.22.21
- vite 5.2.0
$ cd coffe-zip
$ yarn
$ yan dev
https://velog.io/@hojinch99/series/์ผ๊ฐ-์นดํ-์ง๋-์๋น์ค
- Safari ํ๊ฒฝ์์ https://coffeezip.vercel.app ์ ์
- ๊ณต์ ๋ฒํผ ํด๋ฆญ ํ ์๋ ํ ํ๋ฉด์ ์ถ๊ฐ
- ๋ฐํํ๋ฉด ๋๋ ํ ํ๋ฉด์ ์ถ๊ฐ๋ ์ฑ์ผ๋ก ์คํ
- Chrome ํ๊ฒฝ์์ https://coffeezip.vercel.app ์ ์
- ๊ฒ์์ฐฝ ์ฐ์ธก์ ์์นํ ๋ถ๋งํฌ ์ถ๊ฐ ๋ฒํผ ์ข์ธก ํด๋ฆญ ํ ์ฑ ์ค์น
- ๋ฐํํ๋ฉด ๋๋ ํ ํ๋ฉด์ ์ถ๊ฐ๋ ์ฑ์ผ๋ก ์คํ
- ์ ์ฒด ๊ธฐ๊ฐ : 2024.04.24 ~ ํ์ฌ ์งํ ์ค
- ๊ธฐํ ๋ฐ ๋์์ธ : 2024.04.23 ~ 2024.05.06
- UI ๋ฐ ๊ธฐ๋ฅ ๊ตฌํ : 2024.04.24 ~ 2024.05.06
- DB ๊ตฌํ ๋ฐ ๋ฐ์ดํฐ ์์ง : 2024.05.07 ~ ํ์ฌ ์์ง ์ค
- ๊น๋์ฃผ([email protected]) - PM, ๋์์ธ
- ์ตํธ์ง([email protected]) - ๊ฐ๋ฐ, ๋์์ธ
24hour-cafe
โโ .eslintrc.cjs
โโ .github
โ โโ workflows
โ โโ test.yml
โโ .gitignore
โโ index.html
โโ package.json
โโ public
โ โโ icons
โ โ โโ favicon.ico
โ โ โโ logo-128X128.png
โ โ โโ logo-144X144.png
โ โ โโ logo-192X192.png
โ โ โโ logo-256X256.png
โ โ โโ logo-32X32.png
โ โ โโ logo-48X48.png
โ โ โโ logo-512X512.png
โ โ โโ logo-72X72.png
โ โโ manifest.json
โ โโ svg
โ โ โโ allday.svg
โ โ โโ arrow.svg
โ โ โโ arrowdown.svg
โ โ โโ arrowup.svg
โ โ โโ cafe.svg
โ โ โโ cancle.svg
โ โ โโ close.svg
โ โ โโ current.svg
โ โ โโ location.svg
โ โ โโ muin.svg
โ โ โโ parttime.svg
โ โ โโ search.svg
โ โ โโ unman.svg
โ โโ webp
โ โโ kakaomap.webp
โ โโ loading.webp
โ โโ logo.webp
โ โโ wrapper.webp
โโ README.md
โโ robots.txt
โโ src
โ โโ apis
โ โ โโ supabase-api.ts
โ โโ App.tsx
โ โโ components
โ โ โโ custom-overlay.ts
โ โ โโ kakao-map.tsx
โ โ โโ list.tsx
โ โ โโ loading.tsx
โ โ โโ search-box.tsx
โ โ โโ skeleton-ui.tsx
โ โ โโ tab-bar.tsx
โ โโ interfacce
โ โ โโ list-interface.ts
โ โโ main.tsx
โ โโ pages
โ โ โโ Home.tsx
โ โโ stores
โ โ โโ map-store.ts
โ โโ supabase
โ โ โโ supabase.ts
โ โโ vite-env.d.ts
โโ sw.js
โโ tsconfig.json
โโ tsconfig.node.json
โโ vite.config.ts
โโ yarn.lock
- ํ์ฌ ์ฌ์ฉ์์ GPS ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก 2km ์ด๋ด์ ์๋ 24์๊ฐ/๋ฌด์ธ ์นดํ ๋ฆฌ์คํธ๋ฅผ ์กฐํ ํ ์ง๋์ ๋ง์ปค ๋ณด์ฌ์ฃผ๊ธฐ
- ํ ํ์ด์ง ๋ด์์ ์ต๋ ์นดํ ๋ฐ์ดํฐ 5๊ฐ ๋ฐ ์ง๋ ์ต๋ ๋ง์ปค 5๊ฐ ์ ํ, ๊ทธ ์ธ ๋ชจ๋ ํ์ด์ง๋ค์ด์ ํ์ฉ
- React-Query๋ฅผ ์ฌ์ฉํ ๋ฐ์ดํฐ ์บ์ฑ ์ง์
- ์นด์นด์ค ์ง๋ API์ ์ฅ์ ๊ฒ์ ๊ธฐ๋ฅ์ ํ์ฉํ ์ฅ์/์ฃผ์ ๊ฒ์ ์ ์๋์์ฑ ๊ธฐ๋ฅ
- ๊ฒ์ ์ ์ง๋์ ์ค์ฌ์ ๊ฒ์ ํ ์์น์ ์ขํ๋ก ์ด๋๊ณผ ๋์์ ๊ทผ๋ฐฉ 2km ์ด๋ด์ ์๋ ์นดํ ๋ฐ์ดํฐ ์์ฒญ
- ๋ง์ปค/๋ฆฌ์คํธ ํด๋ฆญ ์ ์นดํ ์ด๋ฆ๊ณผ ์ฃผ์๋ฅผ ํ์ธํ ์ ์๋ ์์ธ๋ณด๊ธฐ ์ฐฝ ๊ธฐ๋ฅ
- ์์ธ๋ณด๊ธฐ ์ฐฝ์์ ์ฃผ์ ๋ณต์ฌ ๊ธฐ๋ฅ์ผ๋ก ํด๋ฆฝ๋ณด๋์ ์นดํ ์ฃผ์ ๋ณต์ฌ ๊ธฐ๋ฅ ๊ตฌํ
- ์์ธ๋ณด๊ธฐ ์ฐฝ์์ ์ฃผ์ ๊ธธ ์ฐพ๊ธฐ ๊ธฐ๋ฅ์ผ๋ก ์นด์นด์ค ๋งต์์ ํ์ฌ ์นดํ ์ฃผ์๋ฅผ ๋์ฐฉ์ง๋ก ์ค์
๋ฌธ์ : React Hook useEffect๋ฅผ ์ฌ์ฉํด ์นด์นด์ค ์ง๋๋ฅผ ํ๋ฉด์ ๋์ฐ๋ ๊ณผ์ ์์ ๋ฐ์ํ ๋ฌธ์ ๋ค. useEffect๋ ๋ ๋ฒ์งธ ์ธ์๋ก ์์กด์ฑ ๋ฐฐ์ด์ ๋ฐ์ ํด๋น ๋ฐฐ์ด์ ์๋ ๊ฐ์ด ๋ฐ๋ ๋๋ง๋ค ์ฒซ ๋ฒ์งธ ์ธ์์ธ ํจ์๋ฅผ ์คํํ๊ฒ ๋๋ค.
์ด๋ ์นดํ ๋ชฉ๋ก์ ์์กด์ฑ ๋ฐฐ์ด์ ๋ฃ์ด์ ์ฌ์ฉํ๋ ์ง๋๊ฐ ์ค๋ณต์ผ๋ก ์์ฑ๋๋ฉด์ ์ง๋ ์กฐ์ ์๋๊ฐ ๋๋ ค์ง ๋ฟ๋ง ์๋๋ผ ์ด๋ ์ ์ด์ ์ ์์ฑ๋ ์ง๋๊ฐ ์ง์ํด์ ๋ํ๋๋ ๋ฌธ์ ๊ฐ ์์๋ค.
ํด๊ฒฐ: useEffect๋ฅผ ์์กด์ฑ ๋ฐฐ์ด์ ๋น์ ์ต์ด ๋ง์ดํธ ์ ์ง๋๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ React Hook useState๋ก ๊ด๋ฆฌํ์ฌ ์ ์ฅํ ํ ๊ฐ์ ์ง๋๋ง ์กฐ์ํ ์ ์๊ฒ ํ์๋ค.
๋ํ React ํ๋ก์ ํธ๋ฅผ ์์ํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก React์์ ์ ๊ณตํ๋ React StrictMode๊ฐ true๋ก ์ค์ ๋์ด useEffect๊ฐ ๋ ๋ฒ ์๋ํ๋ ๊ฒ์ false๋ก ์ค์ ํ์ฌ ์ค์ง ์ต์ด ๋ง์ดํธ์ ํ ๋ฒ๋ง ์๋ํ๊ฒ ํ์๋ค.
๋ฌธ์ : ํ ๊ฐ์ ๋จ์ผ ํ์ด์ง๋ฅผ ์ฌ์ฉํ๊ณ ์๋๋ฐ ์ด๋ ์ฝ๋์ ์ฌ์ฌ์ฉ ๋ฐ ์ ์ง๋ณด์๋ฅผ ์ํด ์ปดํฌ๋ํธ ๋จ์๋ก ๋ถํ ํ์ฌ ๋ฉ์ธ ์ปดํฌ๋ํธ Home์์ import ํ๋ ๋ฐฉ์์ผ๋ก ์งํํ์๋ค.
import ํ๋ ์ปดํฌ๋ํธ๋ ์นด์นด์ค ์ง๋๋ฅผ ๋์ฐ๋ KakaoMap ์ปดํฌ๋ํธ์ ์นดํ ๋ฆฌ์คํธ ๋ชฉ๋ก์ธ List ์ปดํฌ๋ํธ๊ฐ ์๋๋ฐ List ์ปดํฌ๋ํธ์์ ์นดํ์ ํด๋ฆญ ์ด๋ฒคํธ์ ๋ํ ์๋์ KakaoMap ์ปดํฌ๋ํธ์์ ์ฒ๋ฆฌํ๋ ค๋ค ๋ณด๋ <List> -> <Home> -> <KakaoMap>
์ปดํฌ๋ํธ ์์ผ๋ก Callback ํจ์์ Props ์ ๋ฌ์ด ๋ณต์กํด์ ธ ์ถํ ์์กด์ฑ ๋ฌธ์ ๋ฐ์ ๋ฐ ์ ์ง๋ณด์๊ฐ ์ด๋ ต๊ณ ์ฝ๋๊ฐ ๋ถํ์ํ๊ฒ ๋์ด๋๋ ๊ฒ์ ๋๊ผ๋ค.
ํด๊ฒฐ: ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ Zustand๋ฅผ ์ฌ์ฉํด List ์ปดํฌ๋ํธ์์ ํด๋ฆญ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ํด๋น ์นดํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ด๋ฅผ kakaoMap ์ปดํฌ๋ํธ์์ ์ค์ Store์ ์ ๊ทผํ์ฌ ์ด๋ฅผ ํ์ฉํ๊ฒ ํ์๋ค.
๐จ Kakao Map API ์ปค์คํ ์ค๋ฒ๋ ์ด ํด๋ฆญ ์ด๋ฒคํธ ๋ฌธ์ (Kakao Map API onClick Event Listner)
๋ฌธ์ : kakao Map API๋ฅผ ์ฌ์ฉํ์ฌ ๋ง์ปค๋ฅผ ์์ฑํ๊ณ ํด๋ฆญ ์ด๋ฒคํธ๋ก ์ปค์คํ
์ค๋ฒ๋ ์ด๋ฅผ ์์ฑํ์ฌ ๋ณด์ฌ์ฃผ๊ฒ ๊ตฌํํ๋ค. ๊ทธ๋ฌ๋ CustomOverlay์ ๊ฒฝ์ฐ ๋ง์ปค์ฒ๋ผ addEventListener
๋ก ํด๋ฆญ ์ด๋ฒคํธ ์์ฑ์ด ๋ถ๊ฐํ๋ค.
https://devtalk.kakao.com/t/topic/44205/6?u=karl.lee
ํด๊ฒฐ: ์์ ๋งํฌ์ ์๋ ๊ธ์ ์ฐธ๊ณ ํ์ฌ CustomOverlay๋ฅผ CreateElement
๋ก ์์ฑํ๊ณ onClick ์ด๋ฒคํธ๋ฅผ ์ง์ ๋ฑ๋กํ์ฌ ํด๊ฒฐํ๋ค.