![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|---|---|
| ๊ณ ์ฑ์ฐ | ๊น์ํฌ | ์ด์ฒญ๋ฏผ | ์ฅ์์ | ์ ๋ฏผ์ | ์ตํ๋ฏผ |
ํ์ ๊ณต๋ถํด์ผ ํ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ ์ฌ์ด๋ ํ๋ก์ ํธ ๋งค์นญ & ๊ด๋ฆฌ ํ๋ซํผ
์ฌ์ด๋ ํ๋ก์ ํธ๋? ๊ท๋ชจ์ ์์ต์ฑ๊ณผ๋ ์๊ด์์ด ์ค์ค๋ก ์ํด์ ๊ฐ๋ฐํด ๋ณด๊ณ ์ถ์ ์๋น์ค, ์ ์ฉํด ๋ณด๊ณ ์ถ์ ๊ธฐ์ ์คํ ๋ฑ์ ์๋ จํ๋ฉฐ ์ค์ค๋ก ์๊ธฐ ๊ณ๋ฐ์ ํ๋ ๊ธฐํ๋ฅผ ๋ง๋ จํ๋ ๋๋ง์ ํ๋ก์ ํธ
์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ ์งํํ ๋๋ ํ์ ๊ฐ์ ํ์
๊ณผ ์ปค๋ฎค๋์ผ์ด์
์ด ๋งค์ฐ ์ค์ํ๋ฉฐ, ๋ชจ์ง๋ถํฐ ์ค์ ์คํ, ์์ฑ๊น์ง ๊ฝค ๋ง์ ์๊ฐ๊ณผ ๋
ธ๋ ฅ์ด ํ์ํฉ๋๋ค.
๊ธฐ์กด์ ์ฌ์ฉ๋๋ ํ์ ๋งค์นญ ํ๋ซํผ์ธ ๋น์ฌ์ด๋๋ ํ ๊ตฌ์ฑ์ ์ฉ์ดํ์ง๋ง, ์ดํ์ ํ์
๊ณผ ํ๋ก์ ํธ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ด ๋ถ์กฑํ๋ค๋ ํ๊ณ๊ฐ ์์ต๋๋ค. Jira๋ ์ฒด๊ณ์ ์ธ ํ๋ก์ ํธ ๊ด๋ฆฌ๋ฅผ ๋์์ฃผ์ง๋ง, ํ์ ๋ชจ์ง์ด๋ ๋งค์นญ ๊ธฐ๋ฅ์ ์ ํ ์ ๊ณตํ์ง ์์ ์ด๊ธฐ ํ ๊ตฌ์ฑ์ ์ด๋ ค์์ด ์์ต๋๋ค.
์ด๋ฌํ ๋ ํ๋ซํผ์ ์์ฌ์ด ์ ์ ๋ณด์ํ๊ณ , ๊ฐ๊ฐ์ ์ฅ์ ๋ง์ ์ด๋ ค ํ์ ๋งค์นญ๋ถํฐ ํ๋ก์ ํธ ๊ด๋ฆฌ๊น์ง ํ ๋ฒ์ ๊ฐ๋ฅํ ์ฌ์ธ์ ํ๋ซํผ, Pick์ด ํ์ํ์ต๋๋ค. Pick์ ํจ์จ์ ์ธ ํ ๊ตฌ์ฑ๊ณผ ์ ์ฐํ ํ์ , ์ฒด๊ณ์ ์ธ ์งํ ๊ด๋ฆฌ๋ฅผ ๋ชจ๋ ์ง์ํ์ฌ, ์ฌ์ด๋ ํ๋ก์ ํธ์ ์์๋ถํฐ ์์ฑ๊น์ง ๋ชจ๋ ๊ณผ์ ์ ๋ ์ฝ๊ณ ํจ์จ์ ์ผ๋ก ๋ง๋ค์ด์ค๋๋ค.

๋งค์นญ์ ํฌ๋งํ๋ ํ์์ด ๋งค์นญ์ ์ ์ฒญํ๋ฉด, ๋ฏธ๋ฆฌ ์์ฑ๋ ๋ฐฉ์ ๋ ๋ฒจ๊ณผ ๋น๊ตํ์ฌ ๋ ๋ฒจ ๋ฒ์์ ๋ง๋ ๋ฐฉ์ ์ ์ฒญ์ ๋งค์นญ

ํ๋ก์ ํธ ๋ฐฉ์ด ์์ฑ๋๋ฉด, ์ฐธ๊ฐ์์๊ฒ ๋ฌธ์ํ์ ์ผ์ ๊ด๋ฆฌ ์๋น์ค ์ ๊ณต.
ํ๋ก์ ํธ๊ฐ ๋๋๋ฉด ๊ฐ ํ์์ ํ๋ก์ ํธ์ ์๋ก์ ๋ํ ํ๊ธฐ ์์ฑ -> ํฌํธํด๋ฆฌ์ค & ํผ๋๋ฐฑ์ด ๋จ

๋งค์ผ๋งค์ผ ๋ฐ๋ณต์ ์ผ๋ก ๋ฌ์ฑํ ์ ์๋ ๋จ๊ธฐ ๋ชฉํ ๋ถ์ฌ -> ์ผ์ ํ์ ๋ฐ๋ณต ์ ๋์ ๊ณผ์ ๋ฌ์ฑ -> ์
์ ๋ฑ์ง ์ ๊ณต
๊ฒฝ๋ ฅ, ์ ๊ณต, ์๊ฒฉ์ฆ ๋ฑ ์คํ ์ฆ๋ช
์ ์คํ ๋ฑ์ง ์ ๊ณต
Pick ํ๋ก์ ํธ๋ Vuetify UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํด ํ๋ก ํธ์๋ UI๋ฅผ ๊ตฌ์ถํ์ต๋๋ค. Vuetify๋ Material Design ๊ธฐ๋ฐ์ ํ๋ถํ ์ปดํฌ๋ํธ ์ธํธ๋ฅผ ์ ๊ณตํ์ฌ, ๋ฒํผ, ์นด๋, ๋ค์ด์ผ๋ก๊ทธ ๋ฑ ์ ์ค๊ณ๋ UI ์์๋ฅผ ๋น ๋ฅด๊ฒ ์ ์ฉํ ์ ์์์ต๋๋ค. ์ด๋ฅผ ํตํด ํ์๋ค์ ๋์์ธ ์์ ์ ์์๋๋ ์๊ฐ์ ์ค์ด๊ณ , ์ ์ฒด ํ๋ซํผ์ ๊ฑธ์ณ ์ผ๊ด๋ ์์, ํ์ดํฌ๊ทธ๋ํผ, ๋ ์ด์์์ ์ ์งํ ์ ์์์ต๋๋ค.
- ๊ฐ๋ฐ ์๋ ํฅ์: ์ฌ์ ์ ์๋ ์ปดํฌ๋ํธ๋ก UI ๊ฐ๋ฐ ์๊ฐ ๋จ์ถ.
- ๋์์ธ ์ผ๊ด์ฑ: ํต์ผ๋ ์คํ์ผ๋ก ์ฌ์ฉ์์๊ฒ ์ ๋ขฐ๊ฐ ์๋ ์ธํฐํ์ด์ค ์ ๊ณต.
- ๋ฐ์ํ ์ง์: ๋ค์ํ ๋๋ฐ์ด์ค์์ ์ผ๊ด๋ ๊ฒฝํ ๋ณด์ฅ.
Pick์ SPA(Single Page Application) ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค๊ณํ์ต๋๋ค. ํค๋์ ์ฌ์ด๋๋ฐ ๊ฐ์ ๊ณตํต ๋ ์ด์์์ ๊ณ ์ ๋ ์ํ๋ก ์ ์ง๋๋ฉฐ, ๋์ ์ฝํ ์ธ ์์ญ(์ด๋ฏธ์ง์์ ์์์ผ๋ก ํ์๋ ๋ถ๋ถ)๋ง Vue Router๋ฅผ ํตํด ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ด ๋ฐฉ์์ ํ์ด์ง ์ ์ฒด๋ฅผ ์๋ก๊ณ ์นจํ์ง ์๊ณ ํ์ํ ๋ถ๋ถ๋ง ์ ๋ฐ์ดํธํด ๋น ๋ฅด๊ณ ๋ถ๋๋ฌ์ด ํ๋ฉด ์ ํ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ๋ํ, ์ปดํฌ๋ํธ ์ฌ์ฌ์ฉ์ฑ์ ๋์ฌ ์ฝ๋ ์ค๋ณต์ ์ค์ด๊ณ ์ ์ง๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ํ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํ๋ก์ ํธ ๋ชฉ๋ก๊ณผ ๋งค์นญ ํ์ด์ง๋ ๋์ผํ ์นด๋ ์ปดํฌ๋ํธ๋ฅผ ํ์ฉํด ์ผ๊ด๋ UI๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ํฅ์๋ UX: ํ์ด์ง ์ ํ ์ ๊น๋นก์ ์์ด ๋ถ๋๋ฌ์ด ๊ฒฝํ ์ ๊ณต.
- ํจ์จ์ ๊ฐ๋ฐ: ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ๋ก ๊ฐ๋ฐ ๋ฐ ์์ ์์ ๊ฐ์ํ.
- ๋น ๋ฅธ ๋ก๋ฉ: ํ์ํ ๋ฐ์ดํฐ๋ง ๋์ ์ผ๋ก ๋ก๋ํด ์ฑ๋ฅ ์ต์ ํ.
ํ๋ก์ ํธ ์ ๋ฐ์ ๊ฑธ์ณ ์์ฃผ ์ฌ์ฉ๋๋ UI ์์๋ฅผ ๊ณตํต ์ปดํฌ๋ํธ๋ก ๋ชจ๋ํํ์ฌ ์ฌ์ฌ์ฉ์ฑ์ ๋์์ต๋๋ค. ์ฃผ์ ๊ณตํต ์ปดํฌ๋ํธ๋ก๋ ํค๋(๋ค๋น๊ฒ์ด์ ๋ฉ๋ด ํฌํจ), ํธํฐ(์ฌ์ดํธ ์ ๋ณด ํ์), ํญ์ฐฝ(์ฝํ ์ธ ๊ฐ ์ ํ), ๊ฒ์ ์ปดํฌ๋ํธ(๊ฒ์๊ธ ๋ฐ ํ๋ก์ ํธ ๊ฒ์), ๊ธ ๋ชฉ๋ก ์ปดํฌ๋ํธ(๊ฒ์ํ ๋ฐ ๋งค์นญ ๋ชฉ๋ก), ๊ธ์ฐ๊ธฐ ์์ญ(์ ๋ชฉ๊ณผ ๋ด์ฉ ์ ๋ ฅ UI), ํ๋ก์ ํธ ์นด๋(ํ๋ก์ ํธ ์ ๋ณด ์์ฝ) ๋ฑ์ด ์์ต๋๋ค. ์ด๋ฌํ ์ปดํฌ๋ํธ๋ ๊ฐ ํ์ด์ง์์ ๋ฐ๋ณต์ ์ผ๋ก ํ์ฉ๋์ด UI ๊ฐ๋ฐ์ ํจ์จ์ฑ์ ๋์ด๊ณ , ์ผ๊ด๋ ๋์์ธ์ ์ ์งํ์ต๋๋ค.
- ์ฌ์ฌ์ฉ์ฑ: ๋์ผํ ์ปดํฌ๋ํธ๋ฅผ ์ฌ๋ฌ ํ์ด์ง์์ ํ์ฉํด ๊ฐ๋ฐ ์๊ฐ ๋จ์ถ.
- ์ผ๊ด์ฑ: ๋ชจ๋ ํ์ด์ง์์ ํต์ผ๋ UI๋ก ์ฌ์ฉ์ ํผ๋ ๊ฐ์.
- ์ ์ง๋ณด์ ์ฉ์ด: ์ปดํฌ๋ํธ ์์ ์ ์ ์ฒด ํ์ด์ง์ ์๋ ๋ฐ์.
ํ๋ก์ ํธ์ ์ฝ๋ ๊ด๋ฆฌ๋ฅผ ์ฒด๊ณํํ๊ธฐ ์ํด ๋ช ํํ ํด๋ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ์ต๋๋ค. ์ต์์ ๋๋ ํ ๋ฆฌ๋ Components(๊ณตํต ์ปดํฌ๋ํธ), Views(ํ์ด์ง๋ณ ๋ทฐ), Router(๋ผ์ฐํ ์ค์ ), Stores(์ํ ๊ด๋ฆฌ), Utils(์ ํธ๋ฆฌํฐ ํจ์), JSON(์ ์ ๋ฐ์ดํฐ), Assets(์ด๋ฏธ์ง ๋ฐ ํฐํธ)๋ก ๋๋์์ต๋๋ค. ๊ฐ ๋๋ ํ ๋ฆฌ ๋ด๋ถ๋ ๋ค์ ๊ธฐ๋ฅ๋ณ๋ก ์ธ๋ถํํ์ฌ ๋ฏธ์ , ๋งค์นญ, ํ์, ๊ฒ์๊ธ, ํ๋ก์ ํธ ํด๋๋ก ๊ตฌ์ฑํ์ต๋๋ค. ํ๋ก์ ํธ ํด๋๋ ์ถ๊ฐ๋ก ๋์๋ณด๋, ์๋ฃ๋ ํ๋ก์ ํธ, ํ๋ก์ ํธ ์ ๋ณด, ์ด์, ํ์๋ก, PR, ๋ฆฌ๋ทฐ ๋ฑ ์ธ๋ถ ๊ธฐ๋ฅ๋ณ๋ก ํจํค์ง๋ฅผ ๋๋์ด ๊ด๋ฆฌํ์ต๋๋ค. ์ด ๊ตฌ์กฐ๋ ์ฝ๋์ ์ญํ ๊ณผ ์์น๋ฅผ ๋ช ํํ ํ์ฌ ํ์ ๊ณผ ์ ์ง๋ณด์๋ฅผ ๊ฐ์ํํ์ต๋๋ค.
- ๋ช ํํ ๊ตฌ์กฐ: ๊ธฐ๋ฅ๋ณ ๋ถ๋ฆฌ๋ก ์ฝ๋ ํ์ ๋ฐ ์ดํด ์ฉ์ด.
- ํ์ ํจ์จ์ฑ: ํ์ ๊ฐ ์ฝ๋ ์ถฉ๋ ์ต์ํ ๋ฐ ๋ณ๋ ฌ ์์ ๊ฐ๋ฅ.
- ํ์ฅ์ฑ: ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ ์ ๊ธฐ์กด ๊ตฌ์กฐ์ ์ฝ๊ฒ ํตํฉ ๊ฐ๋ฅ.
Pick์ ํน์ ๊ธฐ๋ฅ์ ํ์ง์ ๋์ด๊ธฐ ์ํด ์ธ ๊ฐ์ง ํนํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์ต๋๋ค:
- Marked.js: ๋งํฌ๋ค์ด ํ์๋ฅผ ์ฌ์ฉํด ํ์๋ก ์์ฑ ํ์ด์ง์์ ์ฌ์ฉ์๊ฐ ๋งํฌ๋ค์ด ๋ฌธ๋ฒ์ผ๋ก ์์ฑํ ๋ด์ฉ์ ์ค์๊ฐ์ผ๋ก HTML๋ก ๋ณํํ์ฌ ํ์ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ง๊ด์ ์ด๊ณ ํ๋ถํ ํ
์คํธ ํธ์ง ๊ฒฝํ์ ์ ๊ณตํ์ต๋๋ค.
- Chart.js: ๋์๋ณด๋์ REPO ๋ชจ๋ํฐ๋ง ์์ญ์์ ์ฌ์ฉ๋์์ต๋๋ค. ์ปค๋ฐ ํ์, ์ด์ ์ํ, PR ์งํ ์ํฉ ๋ฑ์ ์๊ฐํํ ์ฐจํธ(๋ง๋, ๊บพ์์ ๋ฑ)๋ฅผ ๊ตฌํํด ํ๋ก์ ํธ ์งํ ์ํฉ์ ํ๋์ ํ์
ํ ์ ์๊ฒ ํ์ต๋๋ค.
- Diff2HTML: PR(Pull Request) ์์ฑ ํ์ด์ง์์ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฐ์ ์ผ๋ก ๋น๊ตํ๊ธฐ ์ํด ์ฌ์ฉ๋์์ต๋๋ค. ๋ณ๊ฒฝ๋ ์ฝ๋์ ์ถ๊ฐ/์ญ์ ๋ถ๋ถ์ ์์์ผ๋ก ๊ตฌ๋ถํด ํ์ํ์ฌ ํ์์ด PR์ ์ฝ๊ฒ ๊ฒํ ํ ์ ์๋๋ก ์ง์ํ์ต๋๋ค.
- ๊ธฐ๋ฅ ์ต์ ํ: ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํน์ ๊ธฐ๋ฅ์ ์ต์ ํ๋์ด ์ฌ์ฉ์ ๊ฒฝํ ํฅ์.
- ์๊ฐ์ ํจ๊ณผ: ๋ฐ์ดํฐ์ ์ฝ๋ ๋ณ๊ฒฝ์ ์ง๊ด์ ์ผ๋ก ๋ณด์ฌ์ค ์ดํด๋ ์ฆ๊ฐ.
- ๊ฐ๋ฐ ํจ์จ: ๊ฒ์ฆ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์์ ์ ์ด๊ณ ๋น ๋ฅธ ๊ตฌํ ๊ฐ๋ฅ.
๐ ์์ด์ด ํ๋ ์ ์์ธํ ๋ณด๊ธฐ
๐ WBS ์์ธํ ๋ณด๊ธฐ
๐ ๊ธฐ๋ฅ ๋ช ์ธ์ ์์ธํ ๋ณด๊ธฐ
Pick์ ์๋ฒ ์ํคํ ์ฒ๋ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ(MSA)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค. Spring Gateway๋ ๋ชจ๋ ํด๋ผ์ด์ธํธ ์์ฒญ์ ํ๋ก ํธ๊ฐ ๋ฐ์ ๋๊ฒจ์ฃผ์ด ์ค์์์ ๊ด๋ฆฌํ๋ฉฐ, ์ธ๊ฐ ์ฒ๋ฆฌ(๊ถํ ๊ฒ์ฆ)๋ฅผ ๋ด๋นํฉ๋๋ค. Eureka ์๋น์ค ๋ ์ง์คํธ๋ฆฌ๋ ๋์ ์ผ๋ก ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ํ์ํ๊ณ ๋ก๋๋ฐธ๋ฐ์ฑ์ ์ํํฉ๋๋ค. Member ๋๋ฉ์ธ์ JWT ํ ํฐ ์์ฑ ๋ฐ ์ธ์ฆ(์ฌ์ฉ์ ์ ์ ํ์ธ)์ ์ฒ๋ฆฌํ๋ฉฐ, Config Server๋ ํ๊ฒฝ ์ค์ ์ ์ค์ํํด ์ผ๊ด์ฑ์ ์ ์งํฉ๋๋ค. ์๋น์ค๋ Member ๋๋ฉ์ธ(ํ์ ๊ด๋ฆฌ)๊ณผ Core ๋๋ฉ์ธ(๋งค์นญ, ํ๋ก์ ํธ, ์ ๊ณ , ๊ฒ์ํ)์ผ๋ก ๋๋์ด ๊ด๋ฆฌ๋๋ฉฐ, ๊ฐ ๋๋ฉ์ธ์ MariaDB์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํฉ๋๋ค. ๋ํ, Git REST API๋ฅผ ์ถ๊ฐํด Spring Gateway๋ฅผ ํตํด ์ธ๋ถ GitHub API๋ฅผ ํธ์ถ, ์ปค๋ฐ, ์ด์, PR ๋ฐ์ดํฐ๋ฅผ ๋์ ์ผ๋ก ํตํฉํ์ต๋๋ค.
- ํ์ฅ์ฑ: MSA ๊ตฌ์กฐ๋ก ๋๋ฉ์ธ๋ณ ๋ ๋ฆฝ์ ๋ฐฐํฌ ๋ฐ ์ ์ง๋ณด์ ๊ฐ๋ฅ.
- ํจ์จ์ ์ธ์ฆ/์ธ๊ฐ: Member ๋๋ฉ์ธ์์ ์ธ์ฆ, Gateway์์ ์ธ๊ฐ๋ก ์ญํ ๋ถ๋ฆฌ.
- ์ธ๋ถ API ํตํฉ: Git REST API๋ก ํ๋ก์ ํธ ๋ฐ์ดํฐ๋ฅผ ์ค์๊ฐ ์ฐ๋.
ํ์
๋งค์นญ
ํ๋ก์ ํธ
#GIT REST API ์ฐ๋ #v-infinite-scroll ๋ฌดํ ๋ก๋ฉ #๊ฐ๋ฐ์ค AI ๋๊ตฌ ํ์ฉ
Pick ํ๋ก์ ํธ๋ ๋ฐฑ์๋ ํต์ ์์ JWT ํ ํฐ ๊ธฐ๋ฐ์ Stateless ์ธ์ฆ ๋ฐ ์ธ๊ฐ ์ฒ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ผ๋, Git REST API ์ฐ๋ ์ OAuth 2.0 ๊ธฐ๋ฐ์ ์ธ์
๋ฐฉ์๊ณผ ๋ฆฌ๋ค์ด๋ ํธ๊ฐ ํ์ํด ๋ฌด๊ฒฐ์ฑ ์ ์ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๊ธฐ์กด JWT ๋ฐฉ์์ ์ํ๋ฅผ ์ ์ฅํ์ง ์์ ๊ฐ๋ณ๊ณ ํ์ฅ ๊ฐ๋ฅํ์ง๋ง, GitHub์ OAuth 2.0์ ์ธ์
๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ฉฐ ๋ฆฌ๋ค์ด๋ ํธ ํ ์ก์ธ์ค ํ ํฐ์ ์ฒ๋ฆฌํด์ผ ํ์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ค๋ฅธ ๋๋ฉ์ธ์ JWT ๋ฐฉ์์ ์ ์งํ๊ณ , Git REST API ์ฐ๋์๋ง Spring Gateway์์ OAuth 2.0 ์ค์ ์ ์ถ๊ฐํ์ต๋๋ค. Gateway์ OAuth 2.0 ํด๋ผ์ด์ธํธ ID, ์ก์ธ์ค ํ ํฐ, ๋ฆฌ๋ค์ด๋ ํธ ๊ฒฝ๋ก๋ฅผ ์ค์ ํ์ฌ GitHub์์ ๊ฐ์ธ ์ก์ธ์ค ํ ํฐ์ ๋ฐ์ MariaDB์ ์ ์ฅํ๋๋ก ๊ตฌํํ์ต๋๋ค. ์ด๋ฅผ ํตํด ์ปจํธ๋กค๋ฌ์์ GitHub API ์์ฒญ(์ปค๋ฐ, ์ด์, PR ๋ฐ์ดํฐ ์กฐํ ๋ฑ)์ ์์ ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์์ต๋๋ค. ๋ํ, SecurityFilterChain ์ค์ ์์ SessionCreationPolicy.IF_REQUIRED๋ก ์กฐ์ ํ์ฌ ์ธ์
๊ธฐ๋ฐ OAuth 2.0๊ณผ JWT๋ฅผ ๋ณํํ๋ฉฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ์ต๋๋ค.
- ์ธ์ฆ ๋ฐฉ์ ํตํฉ: JWT์ OAuth 2.0์ ๋๋ฉ์ธ๋ณ๋ก ๋ถ๋ฆฌ ์ ์ฉํด ๋ฌด๊ฒฐ์ฑ ์ ์ง.
- ํจ์จ์ ํ ํฐ ๊ด๋ฆฌ: Gateway๋ฅผ ํตํด GitHub ์ก์ธ์ค ํ ํฐ์ DB์ ์ ์ฅ, API ํธ์ถ ๊ฐ์ํ.
- ์์ ์ฑ ๊ฐํ: ์ธ์ ๋ฐ ๋ฆฌ๋ค์ด๋ ํธ ์ฒ๋ฆฌ๋ก Git REST API ์ฐ๋์ ์์ ์ฑ ํ๋ณด.
v-infinite-scroll๋ฅผ ํ์ฉํ์ฌ ๋ฌดํ ์คํฌ๋กค ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๊ณผ์ ์์, ๋ ์ด์ ์ฝ์ด์ฌ ๋ฐ์ดํฐ๊ฐ ์์์๋ load ํจ์๊ฐ ๋ฐ๋ณต ํธ์ถ๋์ด ๋ก๋ฉ ์ ๋๋ฉ์ด์
์ด ์ง์๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ ์ ํ์ ๋ถํ์ํ ์ฐ์ฐ์ ์ ๋ฐํ์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฐ์ดํฐ ํ๋ฆ์ ๋ช
์์ ์ผ๋ก ์ ์ดํ๋๋ก ๋ฆฌํฉํ ๋งํ์ต๋๋ค. ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ ํจ์๊ฐ Promise ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋๋ก ์์ ํ์ฌ, ๋ฐ์ดํฐ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋ก๋๋ ๊ฒฝ์ฐ(ok)์ ๋ ์ด์ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ(empty)๋ฅผ ๊ตฌ๋ถํด ์ฒ๋ฆฌ ํ๋ฆ์ ๊ฐ์ ํ์ต๋๋ค. ๋ํ, ๋น๋๊ธฐ ๋ฐ์ดํฐ ๋ก๋ฉ์ผ๋ก ์ธํด ์ด๊ธฐ ๋ ๋๋ง ์ ์คํฌ๋กค์ด ์๊ณ์ ์ ๋๋ฌํ์ฌ load ํจ์๊ฐ ๋ถํ์ํ๊ฒ ํธ์ถ๋๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๊ธฐํ ํ๋๊ทธ(isInit)๋ฅผ ๋์
ํ์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฒซ ๋ฒ์งธ ํธ์ถ์ ๋ฌด์ํ๊ณ , ์ด๊ธฐ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐ์ ์ผ๋ก ๋ก๋ํ ํ ์ ์์ ์ผ๋ก ๋ ๋๋ง๋๋๋ก ์ ์ดํ์ต๋๋ค.
- ์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์ : ๋ถํ์ํ ๋ก๋ฉ ์ ๋๋ฉ์ด์ ์ ๊ฑฐ๋ก ๋ถ๋๋ฌ์ด ์คํฌ๋กค ๊ฒฝํ ์ ๊ณต.
- ์ฑ๋ฅ ์ต์ ํ: ๋ฐ์ดํฐ ์ํ๋ฅผ ๋ช ํํ ๊ตฌ๋ถํด ๋ถํ์ํ ์ฐ์ฐ ๊ฐ์.
- ์์ ์ฑ ๊ฐํ: ์ด๊ธฐํ ํ๋๊ทธ ๋์ ์ผ๋ก ๋น๋๊ธฐ ๋ก๋ฉ ์ ์ค๋ฅ ๋ฐฉ์ง.
AI ๋๊ตฌ๋ฅผ ํ์ฉํ์ฌ ํ๋ก ํธ ๊ฐ๋ฐ์ ๊ดํ ์ง๋ฌธ์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์์ ์ ์ ํ ํ๋กฌํฌํธ ์์ด ์ฌ์ง๊ณผ ์ค๋ช
๋ง ์ฃผ๋ ๊ฒฝ์ฐ ์ํ๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์๊ฑฐ๋, ๊ฐ๊ฐ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์คํ์ผ์ ์ ์ฉํ์ฌ ํ๋ฉด์ ํ์ธํด๋ณธ ๊ฒฐ๊ณผ ๊ฐ๊ฐ ์คํ์ผ์ด ๋ฌ๋ผ ํ์ด์ง์ ํต์ผ์ฑ์ด ์๋๊ฒ์ ํ์ธํ์์ต๋๋ค. ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ ์ ํ์ ๋ถํ์ํ ์์
์ด ์ถ๊ฐ๋์ด ๋นํจ์จ์ ์ธ ๊ฒ์ ๊นจ๋ฌ์๊ณ , ๋ชจ๋๊ฐ ๊ณตํต์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ ์ํด ํ๋กฌํฌํธ ์์์ ์์ฑํ์ฌ ํ๋กฌํฌํธ ๊ธฐ๋ฐ์ผ๋ก ์ด๋์ ๋ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐ์์ ์๋๋ก ์งํํ์์ต๋๋ค.
#๋ฐฑ์๋ ์ ์ฒด ์ฐ๋ #Webhook ์ ์ฉ #WebSocket ์ ์ฉ #๋ณด์ ๋ฐ ์์ธ์ฒ๋ฆฌ #๋ฆฌํฉํ ๋ง
Pick ํ๋ซํผ์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์์ฑํ๊ธฐ ์ํด, ํ์ฌ ๊ตฌํ๋ ๋ฐฑ์๋ ๊ธฐ๋ฅ(๋งค์นญ, ์ฑ๋ฆฐ์ง, ํ์๋ก ๋ฑ)์ ํ๋ก ํธ์๋์ ์์ ํ ์ฐ๋ํ ๊ณํ์ ๋๋ค. ์ด๋ฅผ ํตํด ๋ฐฑ์๋์์ ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋ก ํธ์๋์์ ์ค์๊ฐ์ผ๋ก ์๊ฐํํ๊ณ , ์ฌ์ฉ์์๊ฒ ๋งค์นญ ๊ฒฐ๊ณผ, ์ฑ๋ฆฐ์ง ์งํ ์ํฉ, ํ์๋ก ๋ด์ฉ์ ๋์ ์ผ๋ก ๋ณด์ฌ์ค ์ ์๋๋ก ํ์ฅํ ์์ ์ ๋๋ค. ์ฐ๋ ๊ณผ์ ์์๋ Spring Gateway์ Eureka๋ฅผ ํ์ฉํด ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ ํต์ ์ ์ต์ ํํ๊ณ , ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๋ฉฐ ์์ ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ๊ฒ์ ๋๋ค.
- ๋ฐ์ดํฐ ์๊ฐํ: ๋งค์นญ, ์ฑ๋ฆฐ์ง, ํ์๋ก ๋ฐ์ดํฐ๋ฅผ ํ๋ก ํธ์๋์ ๋์ ์ผ๋ก ํ์.
- ํต์ ์ต์ ํ: Gateway์ Eureka๋ก ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ ํจ์จ์ ์ฐ๋.
- ์ฌ์ฉ์ ๊ฒฝํ ๊ฐํ: ์ค์๊ฐ ๋ฐ์ดํฐ ๋ฐ์์ผ๋ก ์ง๊ด์ ์ธํฐํ์ด์ค ์ ๊ณต.
GitHub์ Webhook์ ์ฐ๋ํ์ฌ ํ๋ก์ ํธ ๋์๋ณด๋์ PR(Pull Request), ์ปค๋ฐ, ์ด์์ ๋ณํ๋ฅผ ์๋์ผ๋ก ๊ฐ์งํ๊ณ ์ ๋ฐ์ดํธํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ ์์ ์ ๋๋ค. Webhook์ GitHub ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ด๋ฒคํธ๋ฅผ ์ค์๊ฐ์ผ๋ก ์๋ฒ์ ์๋ฆฌ๋ฉฐ, ์ด๋ฅผ ํตํด ํ๋ก์ ํธ ๋์๋ณด๋์์ ์ต์ ๋ณ๊ฒฝ ์ฌํญ์ ์ฆ์ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํด Webhook ์ด๋ฒคํธ๋ฅผ ์์ ํ๋ ์๋ํฌ์ธํธ๋ฅผ ์ค์ ํ๊ณ , ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํด MariaDB์ ์ ์ฅํ๊ฑฐ๋ ํ๋ก ํธ์๋์ ์๋ฆผ์ ์ ์กํ๋ ๋ก์ง์ ์ถ๊ฐํ ๊ฒ์ ๋๋ค.
- ์ค์๊ฐ ์ ๋ฐ์ดํธ: PR, ์ปค๋ฐ, ์ด์ ๋ณ๊ฒฝ์ ์๋ ๊ฐ์งํด ๋์๋ณด๋์ ๋ฐ์.
- ํจ์จ์ ๋ฐ์ดํฐ ๊ด๋ฆฌ: Webhook ์ด๋ฒคํธ๋ฅผ DB์ ์ ์ฅํด ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ง.
- ์ฌ์ฉ์ ํธ์์ฑ: ์๋ ์ ๋ฐ์ดํธ ์์ด ์ต์ ํ๋ก์ ํธ ์ํ ์ ๊ณต.
WebSocket์ ๋์ ํ์ฌ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ํ์๋ก์ ๋์์ ํธ์งํ ์ ์๋ ์ค์๊ฐ ํ์ ๊ธฐ๋ฅ์ ๊ตฌํํ ์์ ์ ๋๋ค. ํ์ฌ ํ์๋ก ์์ฑ์ ๋จ์ผ ์ฌ์ฉ์ ์ค์ฌ์ผ๋ก ์ค๊ณ๋์์ผ๋, WebSocket์ ํตํด ๋ค์ค ์ฌ์ฉ์๊ฐ ๋์ผํ ๋ฌธ์๋ฅผ ์ค์๊ฐ์ผ๋ก ์์ ํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ์ฆ์ ๊ณต์ ํ ์ ์๋๋ก ํ์ฅํ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ์ํด Spring WebSocket์ ํ์ฉํด ์๋ฒ-ํด๋ผ์ด์ธํธ ๊ฐ ์๋ฐฉํฅ ํต์ ์ ์ค์ ํ๊ณ , ๋์ ํธ์ง ์ถฉ๋์ ๋ฐฉ์งํ๊ธฐ ์ํ ๋๊ธฐํ ๋ก์ง์ ์ถ๊ฐํ ๊ณํ์ ๋๋ค.
- ์ค์๊ฐ ํ์ : ๋ค์ค ์ฌ์ฉ์๊ฐ ํ์๋ก์ ๋์์ ํธ์ง ๊ฐ๋ฅ.
- ์ถฉ๋ ๋ฐฉ์ง: ๋๊ธฐํ ๋ก์ง์ผ๋ก ํธ์ง ์ถฉ๋ ์ต์ํ.
- ํจ์จ์ ํต์ : WebSocket์ผ๋ก ์ ์ง์ฐ ๋ฐ์ดํฐ ์ ์ก ๊ตฌํ.
ํ๋ซํผ์ ์์ ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ๋์ด๊ธฐ ์ํด ๋ณด์ ๋ฐ ์์ธ ์ฒ๋ฆฌ ๋ก์ง์ ๊ฐํํ ์์ ์ ๋๋ค. ๊ถํ๋ณ ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์ธ๋ถํํ์ฌ ์ฌ์ฉ์ ์ญํ (๊ด๋ฆฌ์, ์ผ๋ฐ ํ์ ๋ฑ)์ ๋ฐ๋ผ ์ ๊ทผ ๊ฐ๋ฅํ API๋ฅผ ์ ํํ๊ณ , ํ์ ๋งค์นญ ๋ก์ง์์ ๋ฉค๋ฒ์ ์์ฒญ ๊ฐ ํต์ ์ค์ ์ ์ถ๊ฐํด ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ ๊ฒ์ ๋๋ค. ๋ํ, ํ์ฌ ๋๋ฝ๋ ์์ธ ์ฒ๋ฆฌ(์: ์๋ชป๋ ์ ๋ ฅ, ๋คํธ์ํฌ ์ค๋ฅ ๋ฑ)๋ฅผ ๊ฐ ์์ฒญ์ ๋ง๊ฒ ๋ณด์ํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ช ํํ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ ๊ณตํ๊ณ , ์์คํ ์์ ์ฑ์ ๋์ผ ๊ณํ์ ๋๋ค.
- ๋ณด์ ๊ฐํ: ๊ถํ๋ณ API ์ ๊ทผ ์ ์ด๋ก ๋ฐ์ดํฐ ๋ณดํธ.
- ์์ ์ฑ ๊ฐ์ : ๋งค์นญ ๋ก์ง์ ํต์ ์ค์ ์ถ๊ฐ๋ก ๋ฌด๊ฒฐ์ฑ ํ๋ณด.
- ์ฌ์ฉ์ ๊ฒฝํ ํฅ์: ์์ธํ ์์ธ ์ฒ๋ฆฌ๋ก ๋ช ํํ ์๋ฌ ํผ๋๋ฐฑ ์ ๊ณต.
๊ฐ๋ฐ ์ผ์ ์ผ๋ก ์ธํด ๊ธํ๊ฒ ์์ฑ๋ ์ฝ๋๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์ ๋ฆฌํ๊ณ , ์ฝ๋ ํ์ง์ ๋์ด๊ธฐ ์ํด ๋ฆฌํฉํ ๋ง์ ์งํํ ์์ ์ ๋๋ค. ์ฐ์ , ์ผ๊ด๋์ง ์์ ์ฝ๋ฉ ์ปจ๋ฒค์ ์ ํ๋ก์ ํธ ์ ๋ฐ์ ๋ง์ถฐ ํ์คํํ๊ณ , ์ฃผ์๊ณผ ๋ฌธ์ํ๋ฅผ ๋ณด์ํ ๊ฒ์ ๋๋ค. ๋ํ, ํ์ฌ ๋จ์ผ Core ๋๋ฉ์ธ์ ํฌํจ๋ ๋งค์นญ, ํ๋ก์ ํธ, ๋ฑ์ง, ์ฑ๋ฆฐ์ง ๊ธฐ๋ฅ์ MSA(๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ) ๋จ์๋ก ๋ถ๋ฆฌํ์ฌ ๊ฐ ๋๋ฉ์ธ์ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐฐํฌํ๊ณ ๊ด๋ฆฌํ ์ ์๋๋ก ์ฌ๊ตฌ์ฑํ ๊ณํ์ ๋๋ค. ์ด๋ฅผ ํตํด ์ฝ๋ ์ ์ง๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ์ ๋์ผ ๊ฒ์ ๋๋ค.
- ์ฝ๋ ํ์ง ํฅ์: ์ผ๊ด๋ ์ปจ๋ฒค์ ๊ณผ ๋ฌธ์ํ๋ก ๊ฐ๋ ์ฑ ๊ฐ์ .
- ํ์ฅ์ฑ ๊ฐํ: Core ๋๋ฉ์ธ์ MSA ๋จ์๋ก ๋ถ๋ฆฌํด ๋ ๋ฆฝ์ ๋ฐฐํฌ ๊ฐ๋ฅ.
- ์ ์ง๋ณด์ ์ฉ์ด: ์ฒด๊ณ์ ์ฝ๋ ๊ตฌ์กฐ๋ก ์์ ๋ฐ ์ ๋ฐ์ดํธ ๊ฐ์ํ.
| ํ๊ฐ์ | ๋ด์ฉ |
| ๊น์ํฌ | ํ์ ๊ด๋ จ ํ์ด์ง์ ํ๋ฉด์ ๋ชจ๋ ์ ์ํ์ จ์ ๋ฟ๋ง ์๋๋ผ ๋ฐํ๋ ์์ฑ๋ ์๊ฒ ์ํํด์ฃผ์ จ์ต๋๋ค. ํ๋ฉด ๊ตฌ์ฑ ์ธ์๋ ๋ฐ์ดํฐ ์ค๋ณต ํ์ธ, ์ ๋ ฅ ๋ฐ์ดํฐ ์ฐ๋, ๋ก์ปฌ ์ ์ฅ ๋ฑ ์ ๊ฒฝ์จ์ผ ํ ๋ถ๋ถ์ ๋ชจ๋ ๊ผผ๊ผผํ๊ฒ ์ฒ๋ฆฌํด์ฃผ์ จ์ต๋๋ค. ์ฑ์ฐ๋ ๋๋ถ์ ์ ๊ฒฝ์ฐ์ง ๋ชปํ ๋ด์ฉ๋ค์ด ๋ชจ๋ ์์ฐจ๊ฒ ๋ค์ด๊ฐ์ต๋๋ค. ๊ณ ์๋ง์ผ์ จ์ต๋๋ค๐ |
| ์ด์ฒญ๋ฏผ | ๋ฐฑ์๋ ๋๋ถํฐ ์ด์ด์จ ํ์ ๊ด๋ จ ๊ธฐ๋ฅ์ ํ๋ก ํธ์๋์์๋ ๋งก์์ฃผ์ ์, ๋ก๊ทธ์ธ, ํ์๊ฐ์ , ๋ง์ดํ์ด์ง ๋ฑ ๋ค์ํ ํ์ด์ง๋ค์ ์์ ๊ฐ ์๊ฒ ๊ตฌํํด์ฃผ์ จ๋ค. ์ฌ๋ฌ ๊ธฐ๋ฅ์ด ์ฝํ ๋ณต์กํ ํ๋ฆ ์์์๋ ๊น๋ํ๊ฒ ์ ๋ฆฌ๋ ๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ๊ฐ ์ธ์์ ์ด์๋ค. ๋ํ ๋ฐํ์์๋ ํต์ฌ์ ์ ์ง์ด์ฃผ์ ์, ์ ์ฒด ํ๋ก์ ํธ์ ํ๋ฆ์ ์ดํดํ๋ ๋ฐ ๋ง์ ๋์์ด ๋์๋ค. |
| ์ฅ์์ | ๋ฐฑ์๋๋ถํฐ ๋งก์์จ ํ์ ๊ด๋ จ ๊ธฐ๋ฅ์ ํ๋ก ํธ์๋์์๋ ๋งก์ผ๋ฉฐ, ๋ณด์ด์ง ์๋ ์ ํฉ์ฑ ๊ฒ์ฌ๊น์ง ๊ผผ๊ผผํ๊ฒ ๊ตฌํํด์ฃผ์ จ๋ค. ์๊ฐ์ ์ผ๋ก ์ฌ์ ๋ ์์์ํ ๋ฐ ๋ฐํ๋ ๋จผ์ ๋งก์์ฃผ์๊ฒ ๋ค๊ณ ํด์ ํ๋ก์ ํธ ์งํ๋ ์์ํ๋ค. ๋ฐํ์์๋ ์๋น์ค์ ํ๋ฆ์ ๋ฐ๋ผ ๊น๋ํ๊ฒ ๋ฐํํ๋ฉด์๋ ๊ฐ์์ ๋ ธ๋ ฅ์ด ๋ฌปํ์ง ์๊ฒ ๊ผผ๊ผผํ ๋ฐํํ๋ ๋ถ๋ถ๋ ์ธ์๊น์๋ค. ํ์์ ์ค์ฌ์ผ๋ก ๋ง์ ๊ธฐ๋ฅ์ด ์ฝํ ์๋๋ฐ ๊ตฌ์กฐ์ ํ๋ฆ์ ์ ์ ๋ฆฌํด์ฃผ์ ์ ์ฐธ๊ณ ํ๊ธฐ ์ข์๋ค. |
| ์ ๋ฏผ์ | ๋ฐฑ์๋์ ์ด์ด ํ์ ๊ด๋ จ ๋๋ฉ์ธ์ ๋ด๋นํ์ จ๋๋ฐ, ํ๋ซํผ์์ ํต์ฌ์ธ ๋ก๊ทธ์ธ, ํ์๊ฐ์ ๊ธฐ๋ฅ์ ์์ฑํด ์ฃผ์ จ์ต๋๋ค. ๋ํ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Pinia)๋ฅผ ์ ์ฉํ์ฌ ํ์ ์ ๋ณด๋ฅผ ์ ์ญ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ๊ตฌํํด ์ฃผ์ ์ ๋ค๋ฅธ ํ์ด์ง์์๋ ์ฝ๊ฒ ํ์ ์ ๋ณด์ ์ ๊ทผํ ์ ์์์ต๋๋ค. ํญ์ ์ ์ฒด์ ์ธ ํ๋ฆ์ ๊ณ ๋ คํ์๋ฉด์ ๋ค๋ฅธ ํ์๋ค์ด ๋์น๊ณ ์๋ ๋ถ๋ถ์ ๋ณด์ํ ์ ์๋๋ก ํด์ฃผ์ ์ ์๋น์ค์ ์์ฑ๋๋ฅผ ๋์ผ ์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ง์ ์์ ์ ์งํํ๋ฉด์ ๋ฐํ๊น์ง ๋งก์์ฃผ์ ์ ๋ถ๋ด์ด ๋ง์ผ์ จ์ ํ ๋ฐ ์์ธํ ๋ถ๋ถ๊น์ง ๊ตฌ์ฒด์ ์ผ๋ก ๋์น์ง ์๊ณ ์ ๋ฌํด ์ฃผ์ ์ ๊ฐ์ฌํ์ต๋๋ค! |
| ์ตํ๋ฏผ | ์ด๋ฒ์๋ ํ์ ๊ด๋ จ ํ์ด์ง๋ฅผ ๋งก์์ฃผ์ จ๋๋ฐ, ๋ฒ๊ฑฐ๋ก์ด ์์ ๋ค์ด ๋ง์์์๋ ๋ถ๊ตฌํ๊ณ ๋ฌต๋ฌตํ ์ ์ฒ๋ฆฌํด์ฃผ์ จ๋ค. ๋ฐํ๋ ๋จผ์ ๋งก์์ฃผ์๊ฒ ๋ค๊ณ ํด์ ๋ฐํ ์ค๋น๊ฐ ํจ์ฌ ์์ํ๊ณ , ์ค์ ๋ฐํ๋ ๊น๋ํ๊ฒ ๋ง๋ฌด๋ฆฌํด์ฃผ์ จ๋ค. ํญ์ ์ด๋ ค์ด ์ผ๋ค์ ๊ธฐ๊บผ์ด ๋งก์์ฃผ์๊ณ ์ค์ํ ์ญํ ์ ์ฑ์คํ๊ฒ ํด๋ด์ฃผ์ ์, ํ๋ก์ ํธ ์ ์ฒด๊ฐ ์์ ์ ์ผ๋ก ์งํ๋ ์ ์์๋ค. |
| ํ๊ฐ์ | ๋ด์ฉ |
| ๊ณ ์ฑ์ฐ | ํ๋ก ํธ ์ผ์ ์ด ๋ฐฐ์ฐ๋ฉด์ ์งํ๋๋ฉด์ ๋น ๋ฏํ ์๊ฐ์์๋ ๋ถ๊ตฌํ๊ณ ์์ ์งํ๋์๋ ๋ฐฑ์๋์์ ์ฐ๋ ๋ํ ์ ๊ฒฝ์จ์ฃผ์๊ณ ์๋น์ค์ ๋ฉ์ธ ๊ธฐ๋ฅ์ ๋ฌธ์ ์์ด ์๋๋๊ฒ ํด์ฃผ์ จ๊ณ , ์ ๋ฐ์ ์ผ๋ก ๋ค๋ฅธ ํ์๋ค์ด ํ๋ฉด ๊ตฌ์ฑํ๋ฉด์ ๋์น ๋ถ๋ถ์ ๋ํด์๋ ๋ํ ์ผํ ๋ถ๋ถ๋ค์ ๋ค ์ก์์ฃผ์ จ๋ค ๋ํ ์ด์ ๊ธฐ๋ณธ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๋ด ํ๋ฉด์ ๊ตฌ์ฑํ๊ธฐ ์ํ ๊ฐ๋จํ ์ปดํฌ๋ํธ๋ง ์ฌ์ฉํ ์๊ฐ์ด์๋๋ฐ, diff2html ๋ฑ ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋จ์กฐ๋ก์ด ํ๋ฉด์ด ์๋๋ผ ํ๋์ ๋ณํ๋ฅผ ํ์ ํ ์ ์๊ฒ ์ฌ์ฉ์ ์ ์ฅ์ ๊ณ ๋ คํ์ฌ ํธ์์ฑ์ ์ ๊ฒฝ ์จ ์ฃผ์ จ๋ค. ํญ์ ํ๋ก์ ํธ๋ฅผ ์งํํจ์ ์์ด์ ๋ฌธ์ํ, ์ด๋ค ๋ฐฉ์์ผ๋ก ์์ ํ ์ง์ ์ผ์ ๊ด๋ฆฌ ์ ๋ฐ์ ์ธ ๊ฐ๋ฐ ํ๋ฆ ๋ฑ์ ์ ํด์ฃผ๊ณ ๋ค๋ฅธ ํ์๋ค์ ์งํ ์ํฉ๋ค์ ์์ธํ ์ฒดํฌํด์ฃผ์๊ณ ์ ๊ฒฝ์จ ์ฃผ์ ์ ์จ์ ํ ๊ฐ์ธ์ ์ผ์ ์ง์ค ํ ์ ์์๋๊ฒ ๊ฐ๋ค. ํ๋ก ํธ์ ๋ฐฑ์๋ ํ๋ก์ ํธ๋ฅผ ๊ฐ์ด ํ๋ฉด์ ํญ์ ์ด์ฌํ ํ์๊ณ ์ ๋ฐ ์์ผ๋ก ๋๋ ํ ์ ์์ผ๋ฉด ์ข์ง ์์๊น ๋ผ๊ณ ๋ง์ด ์๊ฐํ๊ณ ๋ณด๋ฉด์ ๋ฐฐ์ฐ๊ณ ์ฌ๋ฌ ๋ถ๋ถ์์ ๊ฐ์ฌํ๋ค๋ค |
| ์ด์ฒญ๋ฏผ | ๊นํ๋ธ API๋ฅผ ์ฐ๋ํ๋ ๊น๋ค๋ก์ด ์์ ์ ๋งก์์ฃผ์ จ๊ณ , ์งง์ ์๊ฐ ๋ด์ ์์ฑ๋ ๋์ ๊ฒฐ๊ณผ๋ฌผ์ ๋ณด์ฌ์ฃผ์ จ๋ค. ํนํ API๋ฅผ ์ฒ๋ฆฌํ๋ ์ค ์๋ฌ ์ฒ๋ฆฌ๋ฅผ ๊น๋ํ ํ์ํ๋ ๊ตฌํ์ด ์ธ์์ ์ด์๋ค. ์์ ๋ํ ์ผ๊น์ง ์ ๊ฒฝ ์ฐ๋ ๋ชจ์ต์์ ํ์ ๋ํ ์ฑ ์๊ฐ์ด ๋๊ปด์ก๋ค. |
| ์ฅ์์ | ๊ฒ์ดํธ์จ์ด์ ์๋ฒ์ ์ด์ด ๊นํ๋ธ API ์ฐ๋๊น์ง ์ด๋ ค์ด ์์ ์ ๋๊น์ง ๋งก์์ฃผ์ จ๋ค. ์์์ ๊ดด๋ก์ ํ๋ฉด์๋ ํฌ๊ธฐํ์ง ์๊ณ ํ๋ํ๋ ํด๊ฒฐํด๋๊ฐ๋ ๋ชจ์ต์ด ์ธ์ ๊น์๋ค. ์ฌ๋ฌ ์๊ฒฌ์ ์กฐ์จํ๋ฉฐ ๊ตํต์ ๋ฆฌ๋ ํด์ฃผ๋ฉด์ ๋ณธ์ธ์ด ๋งก์ ๋ถ๋ถ์ ๋ฌต๋ฌตํ ํด๋ด์๊ณ ๋ชจ๋ฅด๋ ๋ถ๋ถ์ ๋ํ ์ง๋ฌธ์ ์ ๋ฐ์์ฃผ์ ์ ๊ฐ์ฌํ๋ค. ๋งก์ ๋ถ๋ถ์ ๋ํด์ ๋ถ๋ด๋ ๋ง์์ํ ๋ฐ ์์ฐ์์๋ ์๋ฒฝํ๊ฒ ๋์ํ๋ฉฐ ์ฑ๊ณต์ ์ธ ํ๋ก์ ํธ๋ก ์ด๋์๋ค. ํญ์ ์ ํํ๊ฒ ์ผ์ ๋ถ๋ฐฐํ๋ฉฐ ๊ฐ์ ๋งก์ ๋ถ๋ถ์๋ง ์ง์คํ ์ ์๋๋ก ๋ง๋ค์ด์ฃผ์ ์ ์ ๋ง ๋ ๋ ํ๋ค. |
| ์ ๋ฏผ์ | ์ฐ๋ฆฌ ์๋น์ค์ ํต์ฌ ๊ธฐ๋ฅ์ธ Github api ์ฐ๋์ ์ฑ๊ณต์ ์ผ๋ก ์์ฑํด์ฃผ์ จ์ต๋๋ค. ์งง์ ์๊ฐ ์์ ๊ฐ๋ฅํ ๊น ํ๋ ๊ธฐ๋ฅ๋ค์ ํผ์ ๋ด๋นํ์ ์ ์ด๋ ค์ด ๋ถ๋ถ์ด ๋ง์ผ์ จ์ ํ ๋ฐ, ๋๊ธฐ์๊ฒ ํด๊ฒฐํด๋ด์๋ ๋ชจ์ต์ด ์ ๋ง ๋ ๋ ํ๊ณ ์กด๊ฒฝ์ค๋ฌ์ ์ต๋๋ค. ๋ํ ํ๋ก์ ํธ ๊ด๋ จ ํ์ด์ง์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ ์ด์์์ด๋ ๋ฉ๋ด ๋ฐ์ดํฐ ๋ฑ์ ๋ฏธ๋ฆฌ ์ ๋ฆฌํด์ฃผ์ ์ ๋ค๋ฅธ ํ์๋ค์ด ๊ฐ๋ฐํ๊ธฐ๊ฐ ํธ๋ฆฌํ์ต๋๋ค. PR ์์ฑ ์ ํ์ผ์ ๋ณ๊ฒฝ์ฌํญ์ ๋ณด์ฌ์ฃผ๋ diff ํ์ด์ง๋ฅผ ์ค๊ณํ๋ ๊ทธ๋๋ก ๊ตฌํํ์ ๊ฑธ ๋ณด๋ฉด, ๋ฐ์ดํฐ๋ฅผ ์๊ฐ์ ์ผ๋ก ๊น๋ํ๊ฒ ๋ค๋ฃจ๋ ์์ ์๋ ๋ฅ์ํ์ ๊ฒ ๊ฐ์ต๋๋ค. ํญ์ ๊ธ์ ์ ์ธ ์๋์ง๋ก ์ผ์ ๊ด๋ฆฌ, ๊ฐ๋ฐ์ ์งํํ์๋ ๋ชจ์ต์ ๋ณด๋ฉฐ ๋ง์ด ๋ฐฐ์ ์ต๋๋ค. |
| ์ตํ๋ฏผ | ์ฐ๋ฆฌ ํ์ ํต์ฌ์ธ ๊นํ๋ธ API ์ฐ๋์ ์ฑ๊ณต์ ์ผ๋ก ๊ตฌํํ์ จ๋ค. ์ ๋ง ์ด๋ ค์ด ์์ ์ด์๊ณ ๋ ๊ฐ์ผ๋ฉด ์๋๋ ๋ชป ๋์ ๊ฒ ๊ฐ์๋ฐ, ํผ์์ ๊ทธ ๋ณต์กํ ๊ณผ์ ์ ์ฐจ๊ทผ์ฐจ๊ทผ ํด๊ฒฐํด๋ด์๋ ๋ชจ์ต์ด ๋๋ฌด ์ธ์ ๊น์๋ค. ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํตํด ์ํฌ๋์ด ์ผ๋ง๋ ๋๋จํ ๋ถ์ธ์ง ๋ค์ ํ ๋ฒ ๋๊ผ๋ค. ํญ์ ๋ฌต๋ฌตํ ๋ณธ์ธ์ ์ผ์ ํด๋ด์๊ณ , ๋๊ตฌ๋ณด๋ค ์ ํํ๊ฒ ์ฒ๋ฆฌํด์ฃผ์ ์ ์ ๋ง ๋ ๋ ํ๊ณ ์กด๊ฒฝ์ค๋ฝ๋ค. ์ฐ๋ฆฌ ํ์์ ์์ด์๋ ์ ๋ ์กด์ฌ๋ค. |
| ํ๊ฐ์ | ๋ด์ฉ |
| ๊ณ ์ฑ์ฐ | ๊ณตํต์ ์ธ ์ปดํฌ๋ํธ ๊ด๋ จํ์ฌ ๋ค๋ฅธ ํ์ด์ง์์๋ ์ฌ์ฉํ ์ ์๊ฒ ๊ฐ ์ปดํฌ๋ํธ๋ค์ ์ ๋ง๋ค์ด ์ฃผ์ จ๊ณ , ๋ค๋ฅธ ํ์ด์ง์์ ๊ธฐ๋ณธ์ ์ธ ํ์ ๊ฐ์ง๋ง ์ธ๋ถ์ฌํญ์ด ๋ค๋ฅธ ๋ถ๋ถ์ ๋ํด์ ์์ฒญ์ด ์ค๋ฉด ์ํ๋๋๋ก ๋ฐ๋ก ์์ ํด์ ์ฌ๋ ค์ฃผ์ ์ ์์ ํ๋๋ฐ ๋งค์ฐ ํธํ๊ฒ ๊ฐ๋ฅํ๋ค. ์ด๋ป๊ฒ ๋ณด๋ฉด ๋ฉ์ธ ๊ธฐ๋ฅ์ด ์๋์๋ ์๋ ๋ถ๋ถ์ ๋ํด์๋ ์ ํจํ ๋ฐ์ดํฐ์ ํจ๊ป ์์ธํ๊ฒ ํ์ด์ง๋ฅผ ๊ตฌ์ฑํด ์ฃผ์ ์ ๋ฐํํ๋๋ฐ ๋งค์ฐ ๋ง์ ๋์์ด ๋๋ค. ํญ์ ์์์ ์ ๊ฐ ํ๊ณ ์ถ์๊ฒ ๋ง์์ ์ผ์ ๋ง์ด ๋ฒ๋ ค ๋๋๋ฐ ์ด๋ป๊ฒ๋ ๋ง๋ค์ด ์ฃผ์ ์ ๋งค์ฐ ๊ฐ์ฌํ๋ค. |
| ๊น์ํฌ | ์ฝ๋๋ฅผ ํญ์ ๊ผผ๊ผผํ๊ฒ ๋ด์ฃผ์ ์ ๊ฐ๋ ์ ์ผ๋ก ์ฝํ ๋ถ๋ถ์ ๋ํด ํ๋ฒ ๋ ๊ณต๋ถํ๊ณ ๊ฐ ์ ์์ด ๋๋ฌด ์ข์์ต๋๋ค. ์ฒญ๋ฏผ๋ ๋๋ถ์ ๊ฐ๋ฐํ ๊ธฐ๋ฅ๋ค์ ๋ํด ์ ๋๋ก ์๊ฐํด๋ณด๊ณ , ๊ณ ๋ฏผํ ์ ์๋ ์๊ฐ์ ๊ฐ์ง ์ ์์์ต๋๋ค. ๋ณธ์ธ์ด ๋ด๋นํ์ง ์์ ๊ธฐ๋ฅ๋ค์ ๋ํด์๋ ๊ณต๋ถํ๊ณ ์๊ฐํ์๋ ๋ชจ์ต์ ๋ณด๊ณ ๋ง์ด ๋ฐฐ์ ์ต๋๋ค๐ฅ |
| ์ฅ์์ | ์ธ์ ๋ ์ฑ ์๊ฐ ์๋ ๋ชจ์ต์ ๋ณด์ฌ์ฃผ๋ฉฐ ๊ธฐ๋ฅ์ ๊ตฌํํด์ฃผ์ ๋ค. ์กฐ๊ธํด์ง ์ ์๋ ์๊ฐ์๋ ์ฐจ๋ถํจ์ ์ ์งํ๋ฉฐ ์ฐ๋ฆฌ ํ์ ๋ธ๋ ์ดํฌ ์ญํ ์ ๋งก์์ฃผ์ จ๋ค. ๋์น๋ ๋ถ๋ถ์ด ์๋๋ก ์ธ์ฌํ ๋ถ๋ถ๊น์ง ํ์ธํด์ฃผ๋ฉฐ ๋ฏฟ์์ ์ฃผ๋ ๋ถ์ด๋ค. ์ฃผ์ ๊ธฐ๋ฅ์ด ์๋๋ผ ์ํํด์ง ์ ์์๋ฒ๋ ํ๋ฐ ์ฌ์ํ ๋ํ ์ผ๊น์ง ๋์น์ง ์๊ณ ๊ตฌํํด๋ด๋ ๋ชจ์ต์ด ์ธ์ ๊น์๋ค. ์ฒญ๋ฏผ๋์ด ๋งก์ ๋ถ๋ถ์ ์ธ์ ๋ ๋ง์ ๋๊ณ ๋ณผ ์ ์์๋ค. ๋ด๊ฐ ๋ง ์ฃผ๋ณ์ด ์์ด ์ง๊ฟ์ผ๋ก ๋ณด๋๋ ์๊ฐ์ด ์์์๋ ๋ ๋ง์ ์ด์ผ๊ธฐ๋ฅผ ํด๋ณด์ง ๋ชปํ๊ฒ ์ฝ๊ฐ ์์ฝ๋ค. |
| ์ ๋ฏผ์ | ์๋น์ค ๋ด์์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ปดํฌ๋ํธ๋ค์ ๋ค๋ฅธ ํ์ด์ง์์ ์ฌ์ฉํ ์ ์๋๋ก ๋ฏธ๋ฆฌ ๊ตฌํํด์ฃผ์ ์ ๊ฐ๋ฐํ๊ธฐ ํธ๋ฆฌํ๊ฒ ํด์ฃผ์ จ๊ณ , ํ์ํ ๋ณ๊ฒฝ ์ฌํญ์ ๋น ๋ฅด๊ฒ ๋ฐ์ํด์ฃผ์ จ์ต๋๋ค. ๊ฒ์๊ธ ๊ด๋ จ ๋ถ๋ถ์ ๋ด๋นํด์ฃผ์ ์ ๊ณํํ๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์์๋๋ฐ, ํนํ ๊ฒ์ํ ์์ญ๋ง๋ค ์ฑ๊ฒฉ์ ๋ง๋ ์ ์๋ฏธํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฒฝ์จ์ ๋ฃ์ด์ฃผ์ ์ ์๋น์ค์ ์์ฑ๋๋ฅผ ๋์ฌ์ฃผ์ จ์ต๋๋ค. |
| ์ตํ๋ฏผ | ์ด๋ฒ ํ๋ก์ ํธ์์ ๋งก์ ๊ธฐ๋ฅ์ ์ฑ ์๊ฐ ์๊ฒ ์ ๊ตฌํํด์ฃผ์ จ๋ค. ๋งก์ ์ผ์ ํญ์ ์ ํํ๊ฒ ์ฒ๋ฆฌํด์ฃผ์๊ณ , ํ ๋ด์์ ์ฐจ๋ถํ๊ณ ์์ ๊ฐ ์๊ฒ ์์ ์ ์ญํ ์ ๋ฌต๋ฌตํ ํด๋ด์๋ ๋ชจ์ต์ด ์ธ์ ๊น์๋ค. ์ค๋ ฅ๊ณผ ์ฑ์คํจ์ผ๋ก ํ์ ํฐ ์ ๋ขฐ๋ฅผ ์ฃผ๋ ๋ถ์ด๋ค. ๋ฐ๋ก ๋ง์ ์ค๋ช ์์ด๋ ํญ์ ์ ์๊ฐ์ ๊ฒฐ๊ณผ๋ฌผ์ ์ ๋ง๋ฌด๋ฆฌํด์ฃผ์๊ณ , ๊ผผ๊ผผํ๊ฒ ์์ ํด์ฃผ์ ์ ๊ฐ์ด ์ผํ๋ฉด์ ๋ง์์ด ํธํ๋ค. ์์ ๊ฐ ์๊ฒ ํ ๋ถ์๊ธฐ๋ฅผ ์ง์ผ์ฃผ๋ ๋ ๋ ํ ํ์์ด์๋ค. |
| ํ๊ฐ์ | ๋ด์ฉ |
| ๊ณ ์ฑ์ฐ | ํ๋ก์ ํธ์ ๋ฉ์ธ ๊ธฐ๋ฅ์ธ ํ๋ก์ ํธ ๋งค์นญ ๋ถ๋ถ์ ๋ํด์ ๋ง๋ค์ด์ผํ ํ์ด์ง๋ ๋ง์๊ณ , ์ด๋ค์์ผ๋ก ์ฐ๊ฒฐ ๋์ด์ผ ํ ์ง์ ํ์ํ ๋ก์ง, ์ปดํฌ๋ํธ, ๊ตฌ์ฑ๋ฑ์ด ๋ณต์กํ์ฌ ์ด๋ ค์ด ๋ถ๋ถ์ด์๋๋ฐ๋ ๋ฐํ ๋น์ผ๊น์ง ๋ฉ์ธ ๊ธฐ๋ฅ์ ๋ํด์ ๋ชจ๋ ๊ธฐ๋ฅ์ด ๋์ํ๋๋ก ๋ง๋ค์ด ์ฃผ์ ์ ์ ๋ง ๊ฐ์ฌํ๋ค. ๋ํ ๋ณธ์ธ์ด ๋ง๋ ๋ถ๋ถ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ํ์ด์ง์ ๋ํด์๋ ์ปดํฌ๋ํธ ๋ถ๋ฆฌ๊ฐ ์๋ชป ๋ ๋ถ๋ถ ๋ํ ์ก์์ฃผ์๊ณ , ์์ ํ์ฌ ๋์ ์ผ๋ก ํ์ด์ง ๋ณํ์ด ๋๋๋ก ํด์ฃผ์ ์ ๋ฐํ ์ค๋น์ ์ง์คํ ์ ์์๋ค. ํญ์ ์ ์๊ฒฌ์ ๋ํด์ ์ ๋ค์ด์ฃผ์๊ณ ์ข๋ ๋์ ๋ฐฉํฅ์ฑ์ ์ ์ํด์ฃผ๊ณ ์์๋๊ณผ ์๊ธฐํ๋ฉด์ ์ฌ๋ฌ๊ฐ์ง ๋ฐฐ์๊ฐ๋ ๊ฒฝ์ฐ๋ ๋ง์๊ณ , ๋ด๊ฐ ์๋ชป ์๊ณ ์๋ ๋ถ๋ถ์ ๋ํด์๋ ํ์คํ๊ฒ ๊ฐ๋ ์ ์ก์์ฃผ์ ์ ํ๋ก์ ํธ๋ฅผ ๊ฐ์ด ์งํํ๋ฉด์ ๋ง์๊ฑธ ๋ฐฐ์ธ ์ ์์๋ค. |
| ๊น์ํฌ | ๊ฐ๋ ์ด๋ ๊ธฐํ ๋ฐฉํฅ์ ๋ํด ๋ฌผ์ด๋ณด๋ฉด ํญ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ณธ์ธ์ ์๊ฐ์ ๋ง์ํด์ฃผ์ ์ ๊ธฐ๋ฅ์ ์ ๋ฆฌํ๊ณ ๊ฐ๋ฐํ๋๋ฐ ๋ง์ ๋์์ด ๋์์ต๋๋ค. ๋ํ, ํ์๊ฐ ์กฐ๊ธ ์ฐ์ผ๋ก ๊ฐ๋ ๊ฒ ๊ฐ์ผ๋ฉด ์ ์ ํ ๋์ด์ฃผ์ ์ ํ์ ์ผ๋ก ํ์ ์๊ฐ์ ์ข ๋ ์ ์ฉํ๊ฒ ํ์ฉํ ์ ์์์ต๋๋ค. ๊ตฌํํด์ผ ํ๋ ํ์ด์ง์ ๊ธฐ๋ฅ์ด ๋ง์ ํ๋์ จ์ํ ๋ฐ ํฌ๊ธฐํ์ง ์๊ณ ๋๊น์ง ๋ ธ๋ ฅํ์๋ ๋ชจ์ต์ด ๊ต์ฅํ ์ธ์์ ์ด์์ต๋๋ค๐ฏ |
| ์ด์ฒญ๋ฏผ | ํ๋ก์ ํธ์ ํต์ฌ ๊ธฐ๋ฅ ์ค ํ๋์ธ ๋งค์นญ ํ์ด์ง๋ฅผ ๋งก์, ์ฌ์ฉ์ ๊ฒฝํ์ ๊ณ ๋ คํ UI์ ๊ธฐ๋ฅ ๊ตฌํ์ ์ ํด์ฃผ์ จ๋ค. ๋จ์ํ ํ์ด์ง ๊ตฌ์ฑ์ ๊ทธ์น์ง ์๊ณ , ์กฐ๊ฑด์ ๋ง๋ ํํฐ๋ง๊ณผ ๋งค์นญ ๋ก์ง์ ์ธ์ฌํ๊ฒ ์ค๊ณํด์ฃผ์ ์ ์ค์ ์ฌ์ฉ์๋ ๋ฌด๋ฆฌ๊ฐ ์์ ๋งํผ ์์ฑ๋๊ฐ ๋์๋ค. ์์ฐ ๋ ๋ณด์ฌ์ค ํ์ด์ง ํ๋ฆ์ ํนํ ๋งค๋๋ฌ์ ๊ณ , ๋ณด๋ ์ฌ๋ ๋ชจ๋๊ฐ ์ดํดํ๊ธฐ ์ฝ๊ฒ ์ ๊ตฌ์ฑ๋์ด ์์์ต๋๋ค. |
| ์ ๋ฏผ์ | ์๋น์ค์ ์ ์ฒด์ฑ์ธ ๋งค์นญ ๊ด๋ จ ํ์ด์ง๋ฅผ ๋ด๋นํ์ จ์ต๋๋ค. ๋งค์นญ ๊ธฐ๋ฅ ๋ก์ง์ด ๋ณต์กํ๊ณ , ๋ค๋ฅธ ๋๋ฉ์ธ๊ณผ ์ฐ๊ฒฐ๋์ด ์๋ ๋ถ๋ถ์ด ๋ง์์ UI/UX๋ฅผ ์ด๋ป๊ฒ ์ค๊ณํ ์ง ๊ณ ๋ฏผ์ด ๋ง์ผ์ จ์ ๊ฒ ๊ฐ์๋ฐ, ๊น๋ํ๊ณ ์ฌ์ฉ์ ์นํ์ ์ผ๋ก ์ ์ค๊ณํด์ฃผ์ ์ ์๋น์ค์ ์์ฑ๋๊ฐ ๋์์ง ๊ฒ ๊ฐ์ต๋๋ค. ํ๋ก ํธ๋ฅผ ๊ตฌํํ๋ ๊ณผ์ ์์ ์ด๋ ค์์ ๊ฒช์ผ๋ฉด์๋ ๋๊ธฐ์๊ฒ ํด๊ฒฐํ์๊ณ ํ์ํ๋ ๊ณผ์ ์์ ์๊ฒฌ์ ์ ๊ทน์ ์ผ๋ก ๊ณต์ ํ์๋ ๋ชจ์ต์ด ์ธ์์ ์ด์์ต๋๋ค. |
| ์ตํ๋ฏผ | ์์ ์ด ๋งก์ ๊ธฐ๋ฅ์ ๋๊น์ง ์ฑ ์์ง๊ณ ์์ฑํด์ฃผ์ จ๋ค. ์ค๊ฐ์ ์ด๋ ค์์ ๊ฒช๋ ๋ถ๋ถ๋ ์์์ง๋ง, ํฌ๊ธฐํ์ง ์๊ณ ๊ฒฐ๊ตญ ํด๋ด๋ ๋ชจ์ต์ ๋ณด๋ฉฐ ๋ง์ ์๊ทน์ ๋ฐ์๋ค. ๋ค๋ฅธ ํ์๋ค์ ์ฝ๋๋ ๊ธฐ๋ฅ๋ ๊ผผ๊ผผํ ํ์ธํด์ฃผ์๊ณ , ์๋ชป๋ ๋ถ๋ถ์ ์ฐพ์์ ์๋ ค์ฃผ์ ์ ์ ์ฒด์ ์ธ ํ๋ก์ ํธ ์์ฑ๋ ํฅ์์ ํฐ ๋์์ด ๋์๋ค. ์ ๊ทน์ ์ธ ํ๋์ ๋๊ธฐ๊ฐ ์ธ์ ๊น์๊ณ , ํจ๊ป ์ผํ๋ฉด์ ๋ง์ด ๋ฐฐ์ ๋ค. |
| ํ๊ฐ์ | ๋ด์ฉ |
| ๊ณ ์ฑ์ฐ | ์ด๋ฒ ํ๋ก ํธ ํ๋ก์ ํธ์ 1๋ฑ ๊ณต์ ์ด๋ผ๊ณ ์๊ฐํ๋ค. ์ฒ์ ๊ธฐ๋ณธ vbase-3-setup ๋ฐฉ์์ ์ธํ ๊ณผ ๊ธฐ๋ณธํ์ ์ก์์ฃผ์๊ณ , ์ ์ผ ์ค์ํ ์ ์ฒด ํ๋ก์ ํธ ๋ฐ ํ๋ก์ ํธ ๋์๋ณด๋ ๋ถ๋ถ์ ํ์๋ก, ํ๋ก์ ํธ ์์ธ ํ์ด์ง ๋ฑ ๊ธฐ๋ณธ ํผ๊ทธ๋ง ํ์์ผ๋ก ๊ตฌ์ํด๋๋ ๊น๋ํ๊ณ ์์ ๋ชจ์ ๊ทธ๋๋ก ๋ง๋ค์ด ์ฃผ์๊ณ , ๋ค์ํ ์ด๋ฒคํธ๋ฅผ ํตํด ๋ฐ์ํ ํ์ด์ง๋ฅผ ๋ง๋ค์ด ์ฃผ์ด ์ฌ์ฉ์ ๊ฒฝํ ์ธก๋ฉด๋ ์๊ฐํด์ฃผ์ จ๋ค. ๋ํ ๋ฐฑ์๋์ ์ฐ๊ฒฐ ์๋ ๋ถ๋ถ ๋ํ json ์๋ฒ๋ฅผ ์ด์ด ์์ , ์ญ์ , ์ถ๊ฐ๊ฐ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ์ จ๊ณ , ๊ทธ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ํ์ด์ง์ ์ ์ฉ๋๊ฒ ํ์ฌ ์ค์ ๋ก ๊ธฐ๋ฅ์ด ๋์๋๊ฑธ ๋ฐ๋ก ๋์ผ๋ก ํ์ธํ ์ ์๊ฒ ํด์ฃผ์ จ๋ค. ๋ฐฑ์๋ ๋์ ํ๋ก ํธ ๋๋ ๊ทธ๋ฌ๋ฏ์ด ๊ฐ์ฌ๋์ด ํผ๋๋ฐฑ ํด์ฃผ์ ๋ถ๋ถ๋ค์ ์ ๋ฆฌํ์ฌ ์ฌ๋ ค์ฃผ์ ์ ์ด๋ค ๋ถ๋ถ์ ๋ํด์ ์์ ํ๊ณ ๋ณด์์ ํด์ผํ ์ง ํ์ธํ ์ ์์๋ค. ๋ฏธ์ ๊ฐ๊ฐ์ด ๋ฎ์ ๋์๊ฒ ์์ด์ ๋ฏผ์ ๋์ ํ์ด์ง๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ผ ์ ์์ด์ ์ ๋ง ์ ๋ง ๊ฐ์ฌํ๋ค. |
| ๊น์ํฌ | ๋ง์ฝ ๋ฏผ์ ๋์ด ์์๋ค๋ฉด ์ด๋ ๊ฒ ์ข์ ๊ฒฐ๊ณผ๋ฌผ์ด ๋์ค์ง ์์์๊ฑฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํ๋ก ํธ ๊ฐ๋ฐ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ธฐ๋ฅ๋ค์ ์ฐพ์ ๊ณต์ ํด์ฃผ์ จ์ ๋ฟ๋ง ์๋๋ผ, ๋ณธ์ธ์ด ๋งก์ ํ์ด์ง์ ๋ํด์ ์ ๋ง ์๋ฒฝํ๊ฒ ๊ตฌํํด์ฃผ์ จ์ต๋๋ค. ์ ๋ง ํ๋๋ฅผ ๋งํ๋ฉด 100, 200์ ํด์ค๋ ๋ถ์ด์ จ์ต๋๋ค. ๊ธฐ๋ฅ ํ๋ํ๋๊ฐ ๋ค ์ ์๋ฏธํ๊ฒ ์๋ํ์ผ๋ฉฐ, ์๊ฐ ๋ถ์กฑ์ผ๋ก ๋ฏธ๋ค๋ ๊ธฐ๋ฅ๋ค๋ ์ด๋ ์๊ฐ ๋ชจ๋ ๊ตฌํ์ ํด๋์ จ์ต๋๋ค. ๋ชจ๋ ๊ธฐ๋ฅ์ ์ต์ ์ ๋คํ๋ ๋ชจ์ต์ ๋ณด๋ฉฐ ๊ต์ฅํ ๋ง์ ๊ฒ์ ๋ฐฐ์ธ ์ ์์์ต๋๋ค. ๋ฏผ์ ๋๋.. ์ ๋ณด์ํจ ํ์๋ฆฌํ์ค๋์...?๐ |
| ์ด์ฒญ๋ฏผ | ํ๋ก์ ํธ ๋์๋ณด๋๋ ์ ์ฒด ํ๋ก์ ํธ๋ฅผ ๋ํํ๋ ํต์ฌ ํ์ด์ง ์ค ํ๋์๋๋ฐ, ์ด๋ฅผ ์๊ฐํ ๊ฒ๋ณด๋ค ํจ์ฌ ๋์ ํ๋ฆฌํฐ๋ก ์์ฑํด์ฃผ์ จ๋ค. ๊ฐ์ข ๋ฐ์ดํฐ๋ฅผ ํ๋์ ๋ณด๊ธฐ ์ข๊ฒ ์๊ฐํํ๊ณ , ์ค์๊ฐ ๋ฐ์๊น์ง ๊ณ ๋ คํ ์ค๊ณ๊ฐ ๋งค์ฐ ์ธ์ ๊น์์ต๋๋ค. ์ฌ์ฉ์ ๊ด์ ์์๋ ๊ธฐ๋ฅ์ ์ผ๋ก๋ ๋ฐ์ด๋ ํ์ด์ง์๊ณ , ๋ํ ์ผ๊น์ง ์ธ์ฌํ๊ฒ ์ฑ๊ธด ์ ์ด ๋๋ณด์์ต๋๋ค. ํนํ JSON ์๋ฒ๋ฅผ ํ์ฉํ ๋ฐ์ดํฐ ๊ด๋ฆฌ๊ฐ ๋๋ณด์๋ค. |
| ์ฅ์์ | ํ์์ ์กฐ์ฉํ์ง๋ง ๊ฒฐ๊ณผ๋ฌผ์ ์ ํ ์กฐ์ฉํ์ง ์์๋ค. ๋ค๋ฅธ ์๋น์ค์ ์ฐจ๋ณํ๋ ์ ์ ๋ณด์ฌ์ค ์ ์๋ ํต์ฌ์ธ ํ๋ก์ ํธ ๋์๋ณด๋๋ฅผ ๋งก์์ฃผ์ จ๋๋ฐ ์๊ฐํ ๊ฒ ์ด์์ผ๋ก ๋์ ํ๋ฆฌํฐ๋ฅผ ๋ณด์ฌ์ฃผ์ จ๋ค. ํ์ด์ง ๊ตฌ์ฑ์ด ์ค๋ฐ์กฐ๋ฐํ๊ฒ ์์ฐจ๋ฉด์๋ ์ ๋๋ ๋ชจ์ต์ด์๋ค. ๋งก์ ๋ถ๋ถ์ ๊ธ์ ํ๋ํ๋๊น์ง ๋ํ ์ผ๋ ๋์น์ง ์์ผ๋ฉด์๋ ๋ค๋ฅธ ํ์ด์ง์์๋ ์ธ ์ ์๋ ์ปดํฌ๋ํธ๋ค์ ์ ์ ๋ฆฌํด์ฃผ์ ์ ๋ด๊ฐ ๋งก์ ๋ถ๋ถ์ ํ๋ฆฌํฐ๋ฅผ ์ฌ๋ฆฌ๋๋ฐ ์ง์คํ ์ ์์๋ค. ๋ฌธ์ ์ ๋ฆฌ๊ณผ PPT ์ ์์์๋ ์ฌ์ ํ ๋์ ํ๋ฆฌํฐ๋ฅผ ๋ณด์ฌ์ฃผ์๋ฉฐ ํ๋ก์ ํธ ๋ด๋ด ํฐ ์กด์ฌ๊ฐ์ ๋ณด์ฌ์ฃผ์ จ๋ค. ํ๋ก ํธ๋ฅผ ์ฒ์ ๋ค๋ค๋ด์ ์ต์ํด์ง๋๋ฐ ์ค๋๊ฑธ๋ ธ๋๋ฐ ์ง๋ฌธ์ ๋ต๋ณ๋ ์ ํด์ฃผ์๊ณ ๋ด๊ฐ ๋์น๊ณ ์๋ ๋ถ๋ถ๊น์ง ํ์ธํด์ฃผ์ ์ ์ ์ฒด์ ์ธ ์์ฑ๋๋ฅผ ๋์ด๋๋ฐ ๋์์ด ๋์๋ค. |
| ์ตํ๋ฏผ | ํ๋ก ํธ์ ์ !! ๋งก์ ํ์ด์ง๋ฅผ ์์๊ณ ์์ฑ๋ ๋๊ฒ ๊ตฌํํด์ฃผ์ จ๊ณ , ๊ผผ๊ผผํ ์์ ๋ฐฉ์ ๋๋ถ์ ์ ์ฒด์ ์ธ ํ๋ก์ ํธ ํ๋ฆฌํฐ๊ฐ ํ์ธต ์ฌ๋ผ๊ฐ๋ค. ๋ฌธ์ ์ ๋ฆฌ์ PPT ์ ์๋ ์๋ฒฝํ๊ฒ ํด์ฃผ์ ์ ๋ฐํ ์ค๋น๋ ํจ์ฌ ์์ํ๋ค. ๋ฏผ์ ๋์ด ์์ ํ ๊ฒฐ๊ณผ๋ฌผ์ ํญ์ ๊ฐํ์ด ๋์ฌ ์ ๋๋ก ์์ฑ๋๊ฐ ๋์๊ณ , ํ์์๋ ํฐ ์ญํ ์ ํด์ฃผ์ ๋ถ์ด๋ค. ๊ทธ๋์ ๋ด ์ฅ๋๋ ๋ค ๋ฐ์์ฃผ์๊ณ , ๋ ํธํ๊ฒ ๋ํด์ฃผ์ ์ ๋๋ฌด ๊ฐ์ฌํ๋ค. |
| ํ๊ฐ์ | ๋ด์ฉ |
| ๊ณ ์ฑ์ฐ | ํญ์ ์ ๋ชปํ๋ค๊ณ ๋ง์์ ํด์ฃผ์๋๊ฑฐ์ ๋ณ๊ฐ๋ก, ๊ฒฐ๊ณผ๋ฌผ์ ๋น์ฅ ์๋น์ค๋ฅผ ์ด์ํ์ฌ ์๋ํ๊ณ ์ถ์์ ๋๋ก ์ ํด์ฃผ์ ๋ค. ์ด๋ฒ ํ๋ก ํธ๋ฅผ ํ๋ฉด์ ์ ๋ฒ์๋ ๋๊ผ๋ ์ผ์ด์ง๋ง, ppt ๋ฐํ์ฉ ์๋ฃ ์ ๋ฆฌ ๋ฐ ์์๋ฅผ ์์ฑํด์ฃผ์ ์ ๊ทธ๊ฑธ ํ ๋๋ก ์ค๋น๋ง ํ๋ฉด ๋์ด์ ๋น ๋ฅด๊ฒ ์ ์ํ ์ ์์๊ณ , ํ๋ฉด ๊ตฌ์ฑ์ ๋ํด์ ๋๊ฒ ์ ์์๊ณ ๊ตฌ์ ๊ด๋ จํ์ฌ ํ๊ธฐ์ ์ธ ์์ด๋์ด๋ฅผ ์ ๊ณตํด ์ฃผ์ จ๋ค. ๋ํ ์ด๋ป๊ฒ ๋ณด๋ฉด ํผ๊ทธ๋ง, ์คํ ๋ฆฌ๋ณด๋ ๋ฑ ์ ๊ฒฝ์จ์ผ๋ ๊ฒ ๋ง๊ณ ์์ ์ด ๋ง์ ๋ถ๋ถ์ ๋ํด์๋ ๋จผ์ ๋์์ฃผ์ ์ ๋ณด๊ณ ์ฐธ๊ณ ํ ์ ์๊ฒ ์์ ์ ๋ฏธ๋ฆฌ ํด๋์ ์ ๋ง์ ๋์์ด ๋์๊ณ , ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด ์ง์น ๋ฒ๋ ํ๋ฐ ํ์ ๋ถ์๊ธฐ๋ฅผ ํญ์ ์ข๊ฒ ์ ์งํด์ฃผ์ ์ ํ๋๋์ ํฐ ์ด๋ ค์ ์์ด ์งํํ ์ ์์๋ค. ๋์ค์ ์ด ๋ถํธ์บ ํ๊ฐ ๋๋๋ ๋ค๋ฅธ ๊ณณ์์ ์์ ์ ํ ๋๋ ํ๋ฏผ๋๊ฐ์ ๋ถ์ด ์์ผ๋ฉด ์ข๊ฒ ๋ค๊ณ ์๊ฐ์ด ๋ค์๋ค ํ๋ก์ ํธ ๊ฐ์ฌํ์ต๋๋ค! |
| ๊น์ํฌ | ๋งจ๋ ์ ๋ชปํ๋ค๊ณ ๊ฒธ์ํ ๋ง์์ ํ์์ง๋ง, ์ด๋ค ์ด๋ ค์ด ์ผ์ ๋งก๊ฒจ๋ ๊ธฐ๊ฐ ๋ด์ ์ฒ์ฒ ํด์ค์๋ ๋ฉ์ง ๋ถ์ด์ญ๋๋ค. ํ์๋ค์ ์ ์ฑ๊ฒจ์ฃผ์๊ณ , ์์ผ๋ฉด์ ๋ํด์ฃผ์ ์ ํ์ ๋ถ์๊ธฐ๋ฅผ ํญ์ ์ข๊ฒ ๋ง๋ค์ด์ฃผ์ จ์ต๋๋ค. PPT ์ ์์ด๋ ํผ๊ทธ๋ง ์ ๋ฆฌ ๋ฑ ๊ท์ฐฎ์ ๋ฒํ ์ผ์ ๋จผ์ ๋์์ ์ ์ํด์ฃผ์ จ๋๋ฐ, ๊ทธ ๋๋ถ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ฌด๋ฆฌ ํ๋ ๋์ ์ฌ์ ๊ฐ ๋ง์ด ์๊ฒผ์์ต๋๋ค. ํญ์ ํ๋ฏผ๋๊ณผ ํจ๊ป ํ๋ฉด ๋ง์์ด ๋ ๋ ํด์ง๋ ๋๋์ด ์๋๋ฐ, ์ ๋ณด์ํจ์ ํ์๋ฆฌ๋ฅผ ์ฐจ์งํ๊ณ ์๋ ์ด์ ๊ฐ ์ ๋ง ๋ถ๋ช ํ๊ฒ ์๋ ๋ถ์ด์ญ๋๋ค. ํ๋ฏผ๋ ์ต๊ณ ๐ |
| ์ด์ฒญ๋ฏผ | ๋ฐํ ์๋ฃ๋ฅผ ๋งก์ ํ์ ์์ ๋ด์ฉ์ ๋ช ํํ๊ณ ๊น๋ํ๊ฒ ์ ๋ฆฌํด์ฃผ์ ์, ์ ์ฒด ๋ฐํ์ ํ๋ฆ์ด ์ ์ด์๋ฌ๋ค. ์๋ฃ ๊ตฌ์ฑ๋ฟ ์๋๋ผ ๋์์ธ์ ์ธ ๋ถ๋ถ์์๋ ์ฌ์ธํ๊ฒ ์ ๊ฒฝ ์จ์ฃผ์ ์ ๋ณด๋ ์ฌ๋ ์ ์ฅ์์ ์ดํดํ๊ธฐ ์ฌ์ ๋ค. ๋ํ ํ๋ก์ ํธ ํ๋ฐ์๋ ์คํ ๋ฆฌ๋ณด๋ ์ ์๊น์ง ๋๋งก์์ฃผ์ จ๋๋ฐ, ๊ฐ๋ฐ ๊ณผ์ ์ ์ ๋ฆฌํ๊ณ ์๊ฐํํ๋ ๋ฐ ํฐ ๋์์ด ๋์๋ค. |
| ์ฅ์์ | ํ ๋ด์ ์ธ์ ๋ ์ฆ๊ฑฐ์์ ๊ฐ์ ธ์ค๋ ๋ถ์ด๋ค. ๋๋ถ์ ํ ๋ด์ ๋ถ์๊ธฐ๋ ์ข์๊ณ ๋ฐฑ์๋์์ ๋ค๋ฅธ ์ฌ๋์ด ๋งก์๋ ๋ถ๋ถ์ ํ๋ก ํธ์์ ๋ค๋ฃจ๋๋ผ ์ต์ํ์ง ์์์ํ ๋ฐ๋ ๋๊ธฐ์๊ฒ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ค์ด๋ด์ จ๋ค. ๋ฐํ ์๋ฃ๋ ๋งก์ ์์ ๋ด์ฉ์ ์๊ฐ์ ์ผ๋ก๋ ๊น๋ํ๊ฒ ์ ๋ฆฌํด์ฃผ์ ์ ๋ด๊ฐ ๋งก์ ๋ถ๋ถ์ด ์๋์ด๋ ์ดํดํ๊ธฐ ์ฌ์ ๋ค. ๋จผ์ ๋ค๊ฐ์์ ํ ์ ์์ ์ฃผ์ จ๋ ๊ฒ๋ ๊ฐ์ฌํ๊ณ ๊ทธ ์ ์์ ๋ฐ์๋ค์๋๊ฑด ์ ๋ง ํํ์๋ ์ ํ์ด์๋ค. |
| ์ ๋ฏผ์ | ๋ชฉ๋ก ๋ฆฌ์คํธ, ์ฌ์ด๋๋ฐ ๋ฑ ํ์ด์ง ๋ฟ๋ง ์๋๋ผ ํ๋ก์ ํธ์์ ๊ณตํต์ผ๋ก ์ฌ์ฉ๋๋ ์ปดํฌ๋ํธ๋ค์ ๋ค์ ๋ด๋นํด์ฃผ์ จ๋๋ฐ, ์ปดํฌ๋ํธ ๊ตฌ์กฐ๋ฅผ ๋ณด๊ธฐ ์ฝ๊ฒ ๊ตฌํํด์ฃผ์ ์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์์์ต๋๋ค. UI/UX ๋ฅผ ์ค๊ณํ๋ ๊ทธ๋๋ก! ๊ตฌํํด๋ด์๋ ๊ฒ์ ๋ณด๋ฉด, ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ณ ๊น๋ํ๊ฒ ์๊ฐํํ์๋ ๋ฐ ๋ฅ์ํ์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐํ์๋ฃ๋ ๋ฌธ์ํ๋ฅผ ๋ฏธ๋ฆฌ ์ค๋นํ๊ณ ์ ๋ฆฌํ์๋ ์ฒ ๋์ฒ ๋ฏธํ ๋ชจ์ต์ ๋ณด๊ณ ๋ง์ด ๋ฐฐ์ ์ต๋๋ค. ํญ์ ์ฆ๊ฑฐ์ด ๋ถ์๊ธฐ๋ฅผ ๋ง๋ค์ด์ฃผ์ ์ ๊ฐ์ฌํ์ต๋๋ค. ๋๋ถ์ ์ ๊ทน์ ์ผ๋ก ์๊ฒฌ์ ๋ผ ์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค! |



















































