- ๊ฐ์ฐฝ์ฐ([email protected]) - ํ๋ก ํธ์๋ 100%
- ๊น๋์ด([email protected]) - ๋ฐฑ์๋ 100%
๋๊ทธ๋ค๋ ์ด๋ฌํ ๊ณ ๋ฏผ์์ ์์๋์์ต๋๋ค.
- ์ฌํ ๊ณํ์ ํจ์จ์ ์ผ๋ก ์งค ์ ์์๊น?
- ์ฌํ ์ ๋ณด๋ฅผ ์ข ๋ ์ฝ๊ฒ ์ป์ ์ ์์๊น?
- ์์ฆ ํซํ๋ ์ด์ค๋ฅผ ์ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์๊น?
๋๊ทธ๋ค๋ ์ฌํ ๋ฌธํ์ ํ์ฑํ๋ฅผ ๋ชฉํ๋ก ํฉ๋๋ค.
์ฌํ ๊ณํ์ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ณ , ์ฌํ์ ์ฆ๊ฑฐ์๊ณผ ๊ฐ์น๋ฅผ ๋ ๋ง์ ์ฌ๋๊ณผ ๋๋๊ณ , ํจ๊ป ์๋ก์ด ์ฌํ์ง๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋ ๋๋, ์ฐ๋ฆฌ๋ ๋๊ทธ๋ค์ ๋๋ค.
2024.05.02 ~ 2024.05.24 (4 Week)
- ํ์ ๊ด๋ฆฌ
- ๋ก๊ทธ์ธ/ํ์๊ฐ์ , ์์ ๋ก๊ทธ์ธ(๊ตฌ๊ธ, ์นด์นด์ค)
- ํ์ ์ ๋ณด ์์ ๋ฐ ํ๋กํ ์ฌ์ง ๋ณ๊ฒฝ
- ํ์ ํํด
- ํ๋ก์ฐ/ํ๋ก์ ๊ธฐ๋ฅ
- ์ข์์, ํ๋ก์ฐ, ๋๊ธ ์๋ฆผ ๊ธฐ๋ฅ
- ๊ฒ์๋ฌผ
- ๊ฒ์๋ฌผ ์กฐํ, ์์ฑ, ์์ , ์ญ์
- ์ฌ๋ฌ ์ฅ์ ์ด๋ฏธ์ง ์ฒจ๋ถํด ๊ฒ์๋ฌผ ์์ฑ
- ์ฌํ ๊ณํ์ ๊ฒ์๋ฌผ๋ก ์์ฑ
- ์ข์์, ๋๊ธ, ๋ถ๋งํฌ ๊ธฐ๋ฅ
- ๊ตญ๋ด ๊ด๊ด์ง ์ ๋ณด ํ์ธ
- ์ฌํ์ง ๋ถ๋ฅ ํํฐ, ํค์๋ ๊ฒ์ ๊ธฐ๋ฅ
- ๋ง์ปค ํด๋ฆญ์ ์์ธ๋ณด๊ธฐ
- ๊ฐ๊ณ ์ถ์ ๊ด๊ด์ง์ ์ถ๊ฐํด, ๊ณํ ์์ฑ
- ์ฌํ ๊ณํ ์์ฑ
- ์ถ๊ฐํ ๊ด๊ด์ง ์์ ๋ณ๊ฒฝ ์ง์
- AI๋ฅผ ํตํ ์ฌํ ๊ณํ ์์ฑ ๋ฐ ๊ณต์
- ๊ธฐํ
- ์ค์๊ฐ ๋ ์จ ํ์ธ
- ๋ฒ ์คํธ ๊ฒ์๋ฌผ ํ์ธ(์ข์์ ์, ๋๊ธ ์)
(https://www.youtube.com/watch?v=oAt-QPJr80U)
-
ํ ํฐ ๋ฌดํ ๊ฐฑ์ ์ผ๋ก ์ธํ ๋ก๊ทธ์์ ๋ถ๊ฐ https://groovy-balaur-25d.notion.site/e106186a1b1b46529de92fb28ea99e3f?pvs=4
-
๊ฒ์๊ธ ๋ฌดํ ๋ก๋ฉ ๋ฌธ์ ํด๊ฒฐ https://groovy-balaur-25d.notion.site/319ea3d7ecc94ccb997bafcf70fd28fd?pvs=4
```
Featย :
์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ
Fixย :
๋ฒ๊ทธ ์์
Docsย :
๋ฌธ์ ์์
Styleย :
์ฝ๋ ํฌ๋งทํ
, ์ธ๋ฏธ์ฝ๋ก ๋๋ฝ, ์ฝ๋ ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ
Refactorย :
์ฝ๋ ๋ฆฌํํ ๋ง
Testย :
ํ
์คํธ(ํ
์คํธ ์ฝ๋ ์ถ๊ฐ, ์์ , ์ญ์ , ๋น์ฆ๋์ค ๋ก์ง์ ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ)
Choreย :
์์ ๊ฑธ๋ฆฌ์ง ์๋ ๊ธฐํ ๋ณ๊ฒฝ์ฌํญ (๋น๋ ์คํฌ๋ฆฝํธ ์์ , assets image, ํจํค์ง ๋งค๋์ ๋ฑ)
Design :
CSS ๋ฑ ์ฌ์ฉ์ UI ๋์์ธ ๋ณ๊ฒฝ
Comment :
ํ์ํ ์ฃผ์ ์ถ๊ฐ ๋ฐ ๋ณ๊ฒฝ
Init :
ํ๋ก์ ํธ ์ด๊ธฐ ์์ฑ
Rename :
ํ์ผ ํน์ ํด๋๋ช
์์ ํ๊ฑฐ๋ ์ฎ๊ธฐ๋ ๊ฒฝ์ฐ
Remove :
ํ์ผ์ ์ญ์ ํ๋ ์์
๋ง ์ํํ๋ ๊ฒฝ์ฐ
์ถ์ฒ:
<https://chlolisher.tistory.com/173>
```
- ์ง๋์์ ์ฐพ๊ธฐ ํ์ด์ง(FindByMapPage.vue)
- ์ง๋ ๋ง์ปค๋ฅผ ํด๋ฆญํ๋ฉด ํด๋น ๊ด๊ด์ง ์์ธ ๋ณด๊ธฐ ๋ชจ๋ฌ ์ฐฝ ๋์ฐ๊ธฐ ๊ธฐ๋ฅ ์ถ๊ฐ
- ์ฌ์ฉ์ ์์น ์ขํ๋ฅผ GPS๋ก ๋ฐ์์ค์ง ์๊ณ , ๊ณ ์ ์ขํ๋ก ์ฃผ๋๋ก ์ค์ (๋ฐฑ์๋ https ๋ฌธ์ )
- ๊ฒ์๊ธ ์์ฑ ํ์ด์ง, ๊ฒ์๊ธ ์์ ํ์ด์ง
- ์ด๋ฏธ์ง ์ ๋ก๋์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ ์๋๋ ์ค๋ฅ ์์
- ์ฌํ ๊ณํ ์์ฑ ํ์ด์ง(PlanWritePage.vue)
- ์ธ์ ์ ์ฌํ ๊ณํ์ด ๋ด๊ฒจ์๋ ๊ฒฝ์ฐ, ์ฌํ ๊ณํ์ ์์ฑํ๋ input์ฐฝ์ ๋ก๋
- GPT ํ๋กฌํํธ ์์ - ๊ตฌ์ฒด์ ์ธ ์ขํ๋ฅผ ์ธ๊ธํ์ง ์๋๋ก ์์
- ๋ ์จ ์ปดํฌ๋ํธ(TheWeather.vue)
- ์ฌ์ฉ์ ์์น ์ขํ๋ฅผ GPS๋ก ๋ฐ์์ค์ง ์๊ณ , ๊ณ ์ ์ขํ๋ก ์ฃผ๋๋ก ์ค์ (๋ฐฑ์๋ https ๋ฌธ์ )
- ๋ถ๋งํฌ ํ์ด์ง
- ๋ถ๋งํฌํ ๊ฒ์๋ฌผ ๊ฐฏ์ API ์ฐ๋
- ๊ธฐํ
- axios BaseURL ๋ณ๊ฒฝ.
- ์๋ฒ โ ๋ก์ปฌ URL ๋ณ๊ฒฝ
- ๋ฐฐํฌ ์๋ฃ
- ์ง๋์์์ฐพ๊ธฐ ํ์ด์ง(FindByMapPage.vue)
- attraction_type.js - API ํธ์ถ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ๋ฐ์ธ๋ฉํ ๋ฐ์ดํฐ ๊ฐ์ฒด ์์ฑ
- ํํฐ ์ ํ์ ์ง๋์ ๋ณด์ฌ์ค ๋ง์ปค ์ด๋ฏธ์ง ์ถ๊ฐ
- ์ ํ๋ ํํฐ์ ๋ฐ๋ฅธ ๊ด๊ด์ง๋ฅผ ๋ง์ปค๋ก ์ง๋์ ํ์
- ์ง๋ ํํฐ, ํค์๋ ๊ฒ์ ๊ธฐ๋ฅ ์ถ๊ฐ
- ๊ด๊ด์ง ๊ด๋ฆฌ pinia Store ์ถ๊ฐ
- ๋ก๊ทธ์์ ์ํ์์ ์ง๋ ํ์ด์ง ์ง์ ์ ๋ก๊ทธ์ธ ํ๋ฉด์ผ๋ก ๋ผ์ฐํ ๋์ง ์๋ ๋ฌธ์ ํด๊ฒฐ
- ๊ด๊ด์ง ๋ชฉ๋ก์์ ์ฌํ์ง ๋ด๊ธฐ ๊ธฐ๋ฅ ์ถ๊ฐ
- ๊ณํ ๋ง๋ค๊ธฐ ๋ฒํผ ํด๋ฆญ ์ ๋ด๊ฐ ๋ด์ ๊ด๊ด์ง ์ ๋ณด๋ฅผ ์ ์ฅ โ ๊ณํ ์์ฑ ํ์ด์ง๋ก ์ด๋
- ๋ด์ ๊ด๊ด์ง ์ ๋ณด๋ฅผ ์ธ์ ์คํ ๋ฆฌ์ง์ ์ ์ฅ
- ์ฌํ๊ณํ ์์ฑ ํ์ด์ง(PlanWritePage.vue)
- ์์ฑ ๋ฐ ์ปดํฌ๋ํธ ์ถ๊ฐ
- openAI - ChatGPT ์ฐ๋
- ๊ฒ์๋ฌผ ์์ธ๋ณด๊ธฐ ๋ชจ๋ฌ ๋ฐ ํ์ด์ง
- ๋๊ธ ๋ก๋ ๋ฐ ๋ฌดํ ์คํฌ๋กค ์ ์ฉ ์ค๋ฅ, ํด๊ฒฐ
- ๋๊ธ ๋ก๋ ํจ์ ์คํ ์ ์ธ์๋ก ๊ฒ์๊ธ id ๋ณด๋ด๊ธฐ
- ์ฌ๋ฌ ์ฅ์ ์ด๋ฏธ์ง๋ฅผ Swipe๋ก ๋ฏธ๋ฆฌ๋ณผ ์ ์๋๋ก ๋ณ๊ฒฝ
- Swipe ๋ฏธ๋ฆฌ๋ณด๊ธฐ : ์ปดํฌ๋ํธ๊ฐ props๋ฅผ ๋ฐ๋ ๊ฒฝ์ฐ์ Store์์ tempUrl์ ์ง์ ํธ์ถํ๋ ๊ฒฝ์ฐ๋ก ์ผ์ด์ค ๋ถ๋ฅํด ์ฒ๋ฆฌ(props์ ๊ฒฝ์ฐ ์ ์ ์ ๋ณด ํ์ด์ง๋ ๋ถ๋งํฌ ํ์ด์ง์์ ๊ฒ์๋ฌผ์ ํด๋ฆญํด ๋์ด์จ ๊ฒฝ์ฐ์)
- ๊ฒ์๋ฌผ ์์ธ๋ณด๊ธฐ์์ ๋๊ธ์ด ์์ ๊ฒฝ์ฐ ๋ฐ์ํ๋ undefined Error๋ฅผ ํด๊ฒฐ
- ๊ฒ์๋ฌผ ์์ ํ์ด์ง
- ๊ฒ์๋ฌผ ์์ ๋ถ๊ฐ ์๋ฌ ํด๊ฒฐ
- ์ฌ๋ฌ ์ฅ์ ์ด๋ฏธ์ง๋ฅผ Swipe๋ก ๋ฏธ๋ฆฌ๋ณผ ์ ์๋๋ก ๋ณ๊ฒฝ
- ๊ฒ์๋ฌผ ์์ฑ ํ์ด์ง
- S3 ์ด๋ฏธ์ง ํ ์คํธ ์ํ ์ด๋ฏธ์ง ๋ฐ์ธ๋ฉ ์ถ๊ฐ
- ๊ฒ์๊ธ ์์ฑ ์ ์ด๋ฏธ์ง ์ด๋ฆ blob์ผ๋ก ์ค์ ๋๋ ์ค๋ฅ ํด๊ฒฐ
- ์ฌ๋ฌ ์ฅ์ ์ด๋ฏธ์ง๋ฅผ Swipe๋ก ๋ฏธ๋ฆฌ๋ณผ ์ ์๋๋ก ๋ณ๊ฒฝ
- ๊ฒ์ ๊ฒฐ๊ณผ ํ์ด์ง
- ์ฟผ๋ฆฌ์คํธ๋ง์ ํฌํจํ๋ ๋ผ์ฐํฐ ์ถ๊ฐ
- ์ ์ฒด ๊ฒ์ ๊ฒฐ๊ณผ API ์ฐ๋
- ์ํฐํค ์ ๋ ฅ ์ด๋ฒคํธ ์ถ๊ฐ
- ํค๋
- ์๋ฆผ ๋ชจ๋ ์ฝ๊ธฐ ๊ธฐ๋ฅ ์ถ๊ฐ (API ์ฐ๋)
- ํค๋ ๋ก๊ทธ์ธํ ์ ์ ์ด๋ฏธ์ง ์๋ฐ ๋ฐ ๊ฒฝ์ฐ ๋์ฒด ์ด๋ฏธ์ง ์ค์ (oneerror)
- ๊ฒ์ ๊ด๋ จ ์ปดํฌ๋ํธ ๋ฐ ๋ชจ๋ฌ ์ถ๊ฐ
- ๊ฒ์ ๊ฒฐ๊ณผ ํ์ด์ง๋ก ๋ผ์ฐํฐ ์ถ๊ฐ
- ํ์ ์ ๋ณด ์์ ํ์ด์ง
- ๋ผ์ฐํฐ ์ถ๊ฐ
- ์ ๋ณด ์์ ๋ฐ ์ญ์ API ์ฐ๋ - ๋ฐฑ์๋ 500 ์๋ฌ ๋ฐ์, ํด๊ฒฐ
- ๋ถ๋งํฌ ํ์ด์ง
- ๋ถ๋งํฌํ ๊ฒ์๋ฌผ ํด๋ฆญ์ ํด๋น ๊ฒ์๋ฌผ ์์ธ๋ณด๊ธฐ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ
- ๋ก๊ทธ์ธ/๋ก๊ทธ์์/ํ์๊ฐ์
ํ์ด์ง
- ์์ ๋ก๊ทธ์ธ ์ ์ธ์ ์คํ ๋ฆฌ์ง์ ์์ ๋ก๊ทธ์ธ ์ฌ๋ถ๋ฅผ ๊ธฐ๋ก
- ๊ธฐํ
- build๋ฅผ ์ํด public์ assets ํด๋ ๋ณต์ฌ ๋ฐ assets ํ์ผ๋ค ๊ฒฝ๋ก ์์
- ํค๋(TheHeader.vue)
- ์๋ฆผ ๋ชฉ๋ก ์กฐํ API ์ฐ๋
- ๋ก๊ทธ์ธ ์ฌ๋ถ์ ๋ฐ๋ผ ์๋ฆผ ๋ชฉ๋ก API ํธ์ถ ์ฌ๋ถ ๊ฒฐ์
- ์๋ฆผ ์ฝ๊ธฐ patch ๊ด๋ จ 401 ์๋ฌ ํด๊ฒฐ - ๋ฐฑ์๋ API ์์ ์์ฒญ
- ์๋ฆผ ์ฝ๊ธฐ ์ ์ฝ์ ์ฌ๋ถ๊ฐ ๋ฐ๋ก ๋ฐ์๋๋๋ก ์์ - API ์ฌ ํธ์ถ
- ์๋ฆผ์ ํด๋ฆญํ๋ฉด ํด๋น ๊ฒ์๋ฌผ ์์ธ ํ์ด์ง๋ก ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ
- ํ๋ก์ฐ ์๋ฆผ์ ๊ฒฝ์ฐ ๊ฒ์๊ธ ์ด๋์ด ์๋, ํด๋น ์ ์ ํ๋กํ๋ก ์ด๋ํ๋๋ก ์์
- ์๋ฆผ ๊ด๋ จ 401 ์๋ฌ ํด๊ฒฐ
- ๋ถ๋งํฌ ํ์ด์ง(BookMarkPage.vue)
- ๋ถ๋งํฌํ ๊ฒ์๋ฌผ ๋ชฉ๋ก ๋ณด๊ธฐ API ์ฐ๋
- ๋ผ์ฐํฐ ์ถ๊ฐ โ ArticleDeatilPage.vue ๋ก ์ด๋
- ๋ถ๋งํฌํ ๊ฒ์๋ฌผ ์ปดํฌ๋ํธ ์ถ๊ฐ ๋ฐ props๋ก ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ
- ๋ฉ์ธ ํ์ด์ง
- ๋ฒ ์คํธ ๊ฒ์๋ฌผ
- ํด๋ฆญํ ๋ฒ ์คํธ ๊ฒ์๋ฌผ - ๊ฒ์๋ฌผ ์์ธ๋ณด๊ธฐ ํ์ด์ง์์ ๋ณด๊ธฐ
- ๋ฒ ์คํธ ๊ฒ์๋ฌผ
- ๊ฒ์๊ธ ์์ธ๋ณด๊ธฐ ํ์ด์ง(ArticleDetailPage.vue)
- ๋๊ธ ์์ฑ ๊ธฐ๋ฅ ์ถ๊ฐ
- ๋๊ธ ์์ฑ ๊ด๋ จ ์ค๋ฅ ๋ฐ์ (ํด๊ฒฐ ์๋ ์ค)
- ์ง๋๋ก ์ฐพ๊ธฐ ํ์ด์ง(FindByMapPage.vue)
- ๋ฉ์ธ ํ์ด์ง
-
๋ถํ์ํ ๋น๋๊ธฐ ๋ฐ API ํธ์ถ ์ฝ๋ ๋ฆฌํฉํฐ๋ง
-
๋ฆฌํฉํฐ๋ง ํ ์ข์์, ๋ถ๋งํฌ๊ฐ ๋ฉ์ธ์ ๋ฐ์๋์ง ์๋ ์ค๋ฅ ์์
โ ๋ฐฑ์๋ API ์์ ์ผ๋ก ์ธํด ๋ฐ๋ก ๋ฐ์ํ์ง ์๊ณ , ์๋ก๊ณ ์นจ ํ์ด์ง ์ด๋ ์ ๋ฐ์๋๋๋ก ํ์
-
-
์ ์ ์ ๋ณด ํ์ด์ง
-
์๋จ ์ ์ ์ ๋ณด ์ปดํฌ๋ํธ
-
์ ์ ํ๋ก์ฐ/ํ๋ก์ฐ ํด์ API ์ฐ๋
-
ํ์ฌ ๋ก๊ทธ์ธํ ์ ์ ์ ์ ์ ์ ๋ณด ํ์ด์ง๋ผ๋ฉด ํ๋ก์ฐ/ํ๋ก์ ๋ฒํผ ๋์ ํ๋กํ ํธ์ง ๋ฒํผ์ด ๋ ๋๋ง๋๋๋ก ์ค์
โ ํ๋กํ ํธ์ง์ด ์๋จ๋ ๋ฌธ์ ํด๊ฒฐ : ๋ฌธ์์ด๋ก ์ฒ๋ฆฌ๋๋ ํ๋ผ๋ฏธํฐ ๊ฐ์ Number๋ก ๋ณํํด์ ์ฒ๋ฆฌ
-
์ ์ ๋ฅผ ํ๋ก์ฐ/ํ๋ก์ฐ ํด์ ์ ํ๋ก์ ์๊ฐ ๋ฐ๋ก ๋ ๋๋ง ๋๋๋ก ์์
โ watch๋ก API ์ฌ ํธ์ถ
-
-
ํ๋ก์/ํ๋ก์ ์ปดํฌ๋ํธ
- API ์ฐ๋
- ๋ชจ๋ฌ๋ก ํ๋ก์ ๋ชฉ๋ก/ํ๋ก์ ๋ชฉ๋ก ์ด๊ณ ๋ซ๊ธฐ
- ํ๋ก์/ํ๋ก์ ์ฌ๋ถ์ ๋ฐ๋ผ ๋ฒํผ ๋ค๋ฅด๊ฒ ๋ณด์ด๋๋ก ์ค์
- ๋ชฉ๋ก์์ ํ์ฌ ๋ก๊ทธ์ธ ํ ์ ์ (์์ )์ ํ๋ก์ฐ/ํ๋ก์ ๋ฒํผ์ด ๋ณด์ด์ง ์๋๋ก ์ค์
- ๋ฌดํ ์คํฌ๋กค ์ถ๊ฐ
-
๋ด๊ฐ ์์ฑํ ๊ฒ์๋ฌผ ๋ณด๊ธฐ ์ปดํฌ๋ํธ ์ถ๊ฐ
-
๊ธฐํ
-
๋ก๊ทธ์ธ ์ฌ๋ถ ๊ฒ์ฆ
-
๋ค๋ฅธ ์ ์ ํ๋กํ๋ก ์ด๋ํด๋ ์ปดํฌ๋ํธ๊ฐ ์๋ก ๋ ๋๋ง๋์ง ์๋ ๋ฌธ์ ํด๊ฒฐ
โ userIdByParams๋ฅผ ์ฝ๋ฐฑํจ์์ ๋ฃ์ด์ watch๋ก ์ฒ๋ฆฌ
-
-
-
๋ฉ์ธ ํ์ด์ง ๋ฐ ๊ฒ์๋ฌผ ์์ธ ๋ณด๊ธฐ
-
๊ฒ์๊ธ์ ๋๊ธ ์ปดํฌ๋ํธ๊ฐ ๊ฒ์๊ธ์ ๋ฌดํ ๋ก๋ํ๋ ํ์ ํด๊ฒฐ
โ ๊ฐ ๊ฒ์๋ฌผ ํ๋จ์ ๋๊ธ ์ปดํฌ๋ํธ๋ฅผ ์ญ์
-
๊ฒ์๋ฌผ ๋ฌดํ ๋ก๋ ๋ฌธ์ ํด๊ฒฐ
โ article ๊ฐ์ฒด ๋ณํ๋ฅผ ๊ฐ์งํ๋ watch๋ฅผ ์ญ์
-
๋ฉ์ธ ํ์ด์ง ๊ฒ์๋ฌผ ๋ฌดํ ์คํฌ๋กค, ์คํผ๋ ์ถ๊ฐ
-
๊ฒ์๋ฌผ ์ญ์ ๋ถ๊ฐ ์ค๋ฅ ํด๊ฒฐ
-
๊ฒ์๋ฌผ ์์ฑ ์๋ฌ ํด๊ฒฐ
-
-
์ง๋๋ก ์ฐพ๊ธฐ ํ์ด์ง(FindByMapPage.vue)
- ๊ด๊ด์ง ๋ฆฌ์คํธ ๋ถ๋ฌ์ค๊ธฐ API ์ฐ๋
-
ํค๋(TheHeader.vue)
- ํค๋ ์๋ฆผ ๋ฒํผ ํด๋ฆญ์ ์๋ฆผ ๋ชจ๋ฌ ์ด๊ธฐ ์ถ๊ฐ
- ์๋ฆผ์ ๋ณด๋ธ(์ข์์ ๋๋ฅธ, ๋๊ธ ์์ฑํ) ์ ์ ์ ๋ณด๋ฅผ ํด๋ฆญ์ ์ ์ ํ์ด์ง๋ก ์ด๋
- ์ง๋๋ก ์ฐพ๊ธฐ ํ์ด์ง(FindByMapPage.vue)
- Geolocation์ผ๋ก ํ์ฌ ์์น ๋ฐ์์, ํ์ฌ ์์น๋ก ์ด๋ ๋ฒํผ ์ถ๊ฐ (TheWeather.vue์์ map.js์ ์ ์ฅํ ์ขํ๋ฅผ ์ฌ์ฉํ๋ ค ํ์ผ๋, ์๋ก๊ณ ์นจ ์ ์ด๊ธฐํ ๋ฌธ์ ๋ก ์ธํด ์์ )
- ๊ด๊ด์ง ๋ฆฌ์คํธ ์ปดํฌ๋ํธ ์ถ๊ฐ
- ๋ฉ์ธ ํ์ด์ง
- ์ฌ์ด๋๋ฐ
- ๋ฒ ์คํธ ๊ฒ์๋ฌผ API ์ฐ๋ (์ถํ ๋๊ธ์, ์ข์์์ ํํฐ ์ถ๊ฐ - ๋ฐฑ์๋์ API ์์ ์์ฒญ)
- ๋ฉ์ธํ์ด์ง ๋ก๋์ API ํธ์ถํด props๋ก ๋๊ฒจ์ฃผ๊ธฐ
- ์ฌ์ด๋๋ฐ
- ๊ฒ์๋ฌผ ์์ฑ ํ์ด์ง
- ๊ฒ์๋ฌผ ์์ฑํ์ด์ง ์คํ์ ์ด๋ฏธ์ง ์ ํ ์ปดํฌ๋ํธ๊ฐ ๋จ์ง ์๋ ๋ฌธ์ ํด๊ฒฐ ์๋(๊ณ์ ์งํ ์ค)
- ๋ชจ๋ ํ์ด์ง ์ปดํฌ๋ํธ
- ๋ก๊ทธ์ธ ์ฌ๋ถ ๊ฒ์ฆ์ pinia โ ์ธ์ ์คํ ๋ฆฌ์ง์ Token ํ์ธ์ผ๋ก ๋ณ๊ฒฝ (์๋ก๊ณ ์นจ์ ๋ก๊ทธ์์ ๋๋ ๋ฌธ์ )
- ๊ฒ์๋ฌผ ๋ณด๊ธฐ(๋ชจ๋ฌ) ๋ฐ ์์ธ ๋ณด๊ธฐ ํ์ด์ง
- ์ค๋ฅ ์์
- Token ์ ์ฅ ์์น ๋ณ๊ฒฝ(์ธ์ ์คํ ๋ฆฌ์ง)์ผ๋ก ์ธํด ์ข์์, ๋ถ๋งํฌ๊ฐ ๋ฐ์๋์ง ์๋ ์ค๋ฅ
- ์ค๋ฅ ์์
- ์ ์ ์ ๋ณด ํ์ด์ง(UserInfoPage.vue)
- ์ ์ ํ๋กํ ๋ณด๊ธฐ ํ์ด์ง ์ปดํฌ๋ํธ ์ถ๊ฐ
- index.js ๋ผ์ฐํฐ ์ถ๊ฐ ๋ฐ ๋ค๋ฅธ ํ์ด์ง์์ ์ ์ ์ ๋ณด๋ฅผ ํด๋ฆญํ๋ฉด ํด๋น ํ์ด์ง๋ก ์ด๋ํ๋๋ก ์ค์
- ์ง๋ ๋ฉ์ธ ํ์ด์ง(MapMainPage.vue)
- [์ง๋๋ก ๋ณด๊ธฐ], [ํค์๋๋ก ๋ณด๊ธฐ], [์ ์ฅํ ์ฅ์], [๋ด ์ฌํ ๊ณํ] ๋ฒํผ ์ถ๊ฐ
- index.js ๋ผ์ฐํฐ ์ถ๊ฐ
- ์ง๋๋ก ์ฐพ๊ธฐ ํ์ด์ง(FindByMapPage.vue)
- ์นด์นด์ค ๋งต api ์ถ๊ฐ (Vue-kakao-map)
- Map ๊ด๋ จ pinia Store ์์ฑ(map.js)
- ๋ ์จ ์ปดํฌ๋ํธ(TheWeather.vue)์์ ๋ก๋ํ ์์น ์ขํ๋ฅผ map.js ์คํ ์ด์ ์ ์ฅ
- ๊ธฐํ
- Map ๋ง์ปค ์ด๋ฏธ์ง ์์ฑ
- Top ์ด๋ ๋ฒํผ์ ํค๋์์ ๋ฉ์ธ ํ์ด์ง๋ก ์ด์
- ํ๊ทธ๋ก ์ฐพ๊ธฐ, ์ ์ฅํ ์ฅ์ ๋ณด๊ธฐ, ๋ด ์ฌํ ๊ณํ ํ์ด์ง ์์ฑ
- ๋ก๊ทธ์ธ ํ์ด์ง / ํ์๊ฐ์
ํ์ด์ง
- ์์ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํ(์์, ๋ก๊ทธ์ธ/๊ฐ์ ํ์ด์ง์์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ๊ธฐ)
- ์ดํ REST API ๋ฐฉ์์ผ๋ก ๋ณด์ ์์
- ๊ฒ์๋ฌผ ์์ ํ์ด์ง
- ์์ ํ ๊ฒ์๋ฌผ(์์ฑ์๊ฐ ํด๋ฆญํ ๊ฒ์๋ฌผ) API๋ก ๋ถ๋ฌ์ค๊ธฐ - ์์ ํ PATCH ๊ตฌํ ํ์
- index.js ๋ผ์ฐํฐ ์ถ๊ฐ
- ๊ฒ์๋ฌผ ์์ฑ ํ์ด์ง
- ๊ฒ์๋ฌผ ์์ฑ step์ ๋ผ์ฐํฐ ๋ฐฉ์์์ ์ปดํฌ๋ํธ(ํญ) ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ โ ๋ผ์ฐํธ ๊ฒฝ๋ก ์ญ์
- writeStore ์์ฑ - pinia
- input[type=file] ๋ก ๋ฐ์์จ ์ด๋ฏธ์ง ๊ฐ์ฒด ์ ์ฅ
- ์ด๋ฏธ์ง๋ฅผ ์์ URL(URL.createObjectURL())์ ์์ฑํ๋ ์ ๋ก๋ ์ด๋ฏธ์ง ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ธฐ๋ฅ ์ถ๊ฐ
- ๊ฒ์๋ฌผ ์์ฑ API ์ฐ๋ โ request : { โฆ } ๋ฅผ Json์ด ์๋ Blob์ผ๋ก
- ๋ก๊ทธ์ธ ํ์ด์ง
- ๋ก๊ทธ์ธ ์ Email ๊ธฐ์ตํ๊ธฐ ์ฒดํฌ๋ฐ์ค ์ถ๊ฐ - ์ฟ ํค์ ์ ์ฅ
- ๋ก๊ทธ์ธ ์ user Id๋ฅผ pinia auth Store์ ์ ์ฅ
- ๊ฒ์๋ฌผ ์์ธ ํ์ด์ง(๋ชจ๋ฌ)
- ๋ด๊ฐ ์์ฑํ ๊ฒ์๋ฌผ ์ญ์ ๊ธฐ๋ฅ ์ถ๊ฐ
- ๋ด ๊ฒ์๋ฌผ ์์ ๊ธฐ๋ฅ ์ถ๊ฐํ์ผ๋ ๋ฌธ์ ๋ฐ์
- ํ์๊ฐ์
ํ์ด์ง
- ํ์๊ฐ์ API ์ถ๊ฐ ๋ฐ ๊ธฐ๋ฅ ๊ตฌํ ์๋ฃ
- ๋ก๊ทธ์ธ ํ์ด์ง & ๋ก๊ทธ์์ ํ์ด์ง
- ๋ก๊ทธ์์ ๋ถ๊ฐ ์๋ฌ ํด๊ฒฐ โ Trouble Shooting 1. [ํ ํฐ ๋ฌดํ ๊ฐฑ์ ์ผ๋ก ์ธํ ๋ก๊ทธ์์ ๋ถ๊ฐ]
- ๊ฒ์๊ธ ์์ฑ ํ์ด์ง
- ๋ผ์ฐํฐ ๊ฒฝ๋ก ์ถ๊ฐ
- ๋ก๊ทธ์ธ ์ฌ๋ถ์ ๋ฐ๋ฅธ ๋ฆฌ๋ค์ด๋ ํธ ๊ธฐ๋ฅ ์ถ๊ฐ
- ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ๋ฐ CSS/๋ ์ด์์ ์ค์
- ๋ฉ์ธ ํ์ด์ง
- ๊ฒ์๋ฌผ ๋ชฉ๋ก ๋ณด๊ธฐ
- ๋ก๊ทธ์ธ ์ฌ๋ถ์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒ์๋ฌผ ๋ชฉ๋ก ๋ณด์ฌ์ฃผ๊ธฐ(ํ ํฐ ์ฌ๋ถ, ์ข์์/๋ถ๋งํฌ ํด๋ฆญ ์ฌ๋ถ ๋ฑ)
- ๊ฒ์๊ธ์ ๋๊ธ์ด ์์ผ๋ฉด ๋ชฉ๋ก์์ 1๊ฐ์ ๋๊ธ ๋ณด์ฌ์ฃผ๊ธฐ
- ์์ธ ๋ณด๊ธฐ์์ ๋ณ๊ฒฝํ ์ข์์, ๋ถ๋งํฌ๊ฐ ๋ชฉ๋ก์ ๋ฐ์๋๋๋ก ๋ณ๊ฒฝ(API ์ฌํธ์ถ)
- ๊ฒ์๋ฌผ ์์ธ ๋ณด๊ธฐ
- ์ข์์ ๋ฐ ๋ถ๋งํฌ ํด๋ฆญ ๊ธฐ๋ฅ API ์ฐ๋
- ๊ฒ์๋ฌผ ๊ฐ์ฒด๋ฅผ props๋ก ๋ฐ๋ ๋ฐฉ์์์ axios๋ก ๊ฐ ํธ์ถํ๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ
- ๋๊ธ ์ปดํฌ๋ํธ ์ถ๊ฐ ๋ฐ API ์ฐ๋
- ๊ฒ์๋ฌผ ๋ชฉ๋ก ๋ณด๊ธฐ
- ๋ก๊ทธ์์ ํ์ด์ง
- ๋ก๊ทธ์์ ๊ด๋ จ ๋ก์ง ์ถ๊ฐ
- ๋ฉ์ธ ํ์ด์ง
- ๋ก๊ทธ์์ ์ํ์์๋ ๊ฒ์๋ฌผ ๋ณด๋๋ก ์ค์
- API ์ถ๊ฐ
- ๋ก๊ทธ์์ ์ํ์์๋ ๊ฒ์๋ฌผ ๋ณด๋๋ก ์ค์
- ๋ก๊ทธ์ธ ํ์ด์ง
- ๋ก๊ทธ์ธ Axios ๋ถ๋ฆฌ - login.js
- ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ์๋ฌ ์์
- ๋ก๊ทธ์์ ๋ถ๊ฐ ๋ฌธ์ ์์
- Pinia ์ค์น ๋ฐ AuthStore ์์ฑ
- ํ ํฐ, ์ธ์ฆ ์ฌ๋ถ ๋ณ์๋ก ์ ์ฅ
- login.js์์ ํ ํฐ์ ๋ฐ์์ค๋ getToken()
- ํ ํฐ, ์ธ์ฆ ์ฌ๋ถ ์ด๊ธฐํํ๋ getLogout()
- ๋ฉ์ธ ํ์ด์ง
- Swipper ๋ฐ์ํ ์์
- ๊ฒ์๊ธ ์์ธ๋ณด๊ธฐ ๋ชจ๋ฌ
- ๋ฐ์ํ(1300px ๊ธฐ์ค ๊ฐ๋ก ์ธ๋ก ๋ฐฐ์น) ๋ฐ ๋ ์ด์์ ์์
- ๋ชจ๋ฌ ๋ด ์คํฌ๋กค ์ด๋ฒคํธ
- ๊ฒ์ ์์ญ ํด๋ฆญ ๋๋ X๋ฒํผ ํด๋ฆญ ์ ๋ชจ๋ฌ ๋ซ๊ธฐ
- Dot ๋ฉ๋ด ๋ฒํผ ํด๋ฆญ ์ ๋ฉ๋ด ํ ๊ธ
- ๊ฒ์๋ฌผ ์ปดํฌ๋ํธ
- ๊ฒ์๋ฌผ ๊ฐ์ฒด์ ์ด๋ฏธ์ง๊ฐ ์์ผ๋ฉด ๊ธฐ๋ณธ ์ด๋ฏธ์ง ๋ณด์ด๋๋ก ์ค์ .
- ํค๋ ์ปดํฌ๋ํธ
- CSS ์์ - ๋ฐ์ํ
- ์ด๋ฒคํธ ์์ - ์ ์ ์์ด์ฝ ํด๋ฆญ์ ์ ์ ๋ฉ๋ด๋ฅผ ์์ด์ฝ ํ๋จ์ ์์น
- App.vue
- font ์ถ๊ฐ - ๋๋๊ณ ๋
- ํค๋ ์ปดํฌ๋ํธ
- CSS ์์ (๋ฐ์ํ ๊ด๋ จ)
- ๋ฉ์ธ ํ์ด์ง
- Swipe ์ปดํฌ๋ํธ
- auto, infinity swipe ์ถ๊ฐ.
- ์ถํ ๋์์ธ ์์ ํ์.
- ๊ฒ์๊ธ ์์ญ
- [์ด์] ๊ฒ์๊ธ ์ปดํฌ๋ํธ์ user ์ ๋ณด ์ถ๊ฐ(API ์์ ํ์).
- ํ์ฌ ์ ์ฒด ๊ฒ์๋ฌผ ์กฐํ API๋ ๊ฒ์๋ฌผ id๋ฅผ ์ ์ธํ ๊ฒ์๋ฌผ ์ ๋ณด๊ฐ ์์.
- ์์๋ก user ์ ๋ณด ์กฐํ API๋ฅผ ์ฐ๋ํด ๊ฒ์๋ฌผ์ ์ ์ ์ ๋ณด๋ฅผ ๋ ๋๋ง
- API ์์ ์ ์ญ์ ์์
- [์ด์] ๊ฒ์๊ธ ์ปดํฌ๋ํธ์ user ์ ๋ณด ์ถ๊ฐ(API ์์ ํ์).
- ๊ฒ์๊ธ ์์ธ๋ณด๊ธฐ ๋ชจ๋ฌ
- ์ฌ์ด๋๋ฐ
- ์คํฌ๋กค ์ด๋ฒคํธ ์ถ๊ฐ
- ๋ฉ์ธ ํ์ด์ง์ ๋ณ๊ฐ ์คํฌ๋กค ๊ตฌ์ฑ.
- ScrollX๊ฐ 0์ด ๋๋ฉด ์ฌ์ด๋๋ฐ์ ScrollX๋ 0์ด ๋จ.
- ๋ ์จ ์ปดํฌ๋ํธ
- ์์ฑ ๋ฐ OpenWeather API ์ถ๊ฐ.
- ๋ก๋ฉ ์คํผ๋ ์ถ๊ฐ.
- Notice, BestArticle, Footer ์ปดํฌ๋ํธ ์์ฑ
- ์คํฌ๋กค ์ด๋ฒคํธ ์ถ๊ฐ
- Swipe ์ปดํฌ๋ํธ
- ๊ธฐํ
- assetsํด๋
- logo ํด๋ ์์ฑ - logo ์ด๋ฏธ์ง.
- .env ํ์ผ ignore ์ถ๊ฐ ๋ฐ APIํค ์ฌ์์ฑ(ignoreํ๊ธฐ ์ด์ ์ ์์ฑํ .envํ์ผ๋ก ์ธํด ์ปค๋ฐ๋จ).
- assetsํด๋
- ๊ฐ ํ์ด์ง ๋ ์ด์์ ์์ .
- ์์ ๋ก๊ทธ์ธ ๋ฒํผ(์ด๋ฏธ์ง) ์ถ๊ฐ.
- ๋ก๊ทธ์ธ ํ์ด์ง / ํ์ด์ง ์ด๋ ๋ฐ ๋ก๊ทธ์ธ ํ ์ด์ ๊ฒฝ๋ก๋ก ๋๋์๊ฐ๊ธฐ.
- ๋ก๊ทธ์ธ ํ์ด์ง / jwtํ ํฐ ๋ฐ๊ธฐ ๋ฐ ์ ์ฅ(๋ก์ปฌ์คํ ๋ฆฌ์ง).
- ๋ฉ์ธ ํ์ด์ง / ์ ์ฒด ๊ฒ์๊ธ ์กฐํ api ์ฐ๊ฒฐ.
- ํค๋ ์ปดํฌ๋ํธ / ๋ชจ๋ฐ์ผ๋ทฐ ํ๋ฒ๊ฑฐ ๋ฉ๋ด(์ฌ์ด๋๋ฐ) ๊ตฌํ (1/2).
- ํ๋ก์ ํธ ์์ฑ ๋ฐ ํค๋ ์ถ๊ฐ.
- ํค๋ ์ปดํฌ๋ํธ / 1300px, 840px, 640px ๋ฐ์ํ ๊ตฌํ.