Chap-Chap(์ฑฑ์ฑฑ)์ mobithon ๊ธฐ๊ฐ์ ์งํํ ํ ์ด ํ๋ก์ ํธ๋ก, open API๋ฅผ ํ์ฉํด ๋ ์ํผ๋ฅผ ๊ฒ์ํ๊ณ ์คํฌ๋ฉํ ์ ์๋ ์ฌ์ดํธ์ ๋๋ค.
์ฝ 10์ผ๋์ ์งํ๋ ํ๋ก์ ํธ Chap-Chap์ ํตํด ์ ๊ฐ ํ์คํ ์ป๊ณ ์ถ์๋ ํฌ์ธํธ๋ ๋ ๊ฐ์ง์์ต๋๋ค.
์ด์ ํ๋ก์ ํธ MMM์์ ๋ณด์์ด ์๊ธํ๋ ํ์
๊ณผ ์ ๋ฒ ์ฃผ์ ์ฒ์ ์ ํ ํ์
์คํฌ๋ฆฝํธ์ ์ฌ์ฉ์ด์์ต๋๋ค.
ํ์
์ ํ์์ฑ์ ์ด์ ํ๊ณ ์์ ์ ์คํ ๋๊ผ๋ ๋ถ๋ถ์ด๊ณ , ํ์
์คํฌ๋ฆฝํธ๋ ๋ค์ ์ฃผ์ Next.js์ ํจ๊ป ์ฌ์ฉ์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์นํด์ง ํ์๊ฐ ์์ต๋๋ค.
์ฃผ๋ก ์ฌ์ฉ๋๋ ํ์
๋ค์ ๊ฐ๋จํ ์์์ ํจ๊ป ๋ณผ ๋ ์ดํด๋ ์ ๋๋ ๊ฒ ๊ฐ๊ณ ๋น์ฅ ์ฌ์ฉํ๊ธฐ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์ง๋ง ๋ง์ ๊ฐ๋จํ ํ์๊ฐ์
/๋ก๊ทธ์ธ ํผ(form)์ ์ ์ฉํ๋ ค๊ณ ๋ง ํด๋ ๊ธ๋ฐฉ ๋ง์ฐํ๊ฒ ๋๊ปด์ก์ต๋๋ค. ๊ทธ๋์ ์ด๋ฒ ํ ์ด ํ๋ก์ ํธ๋ฅผ ํตํด ํ์
์คํฌ๋ฆฝํธ์ ์กฐ๊ธ ๋ ์นํด์ง๋ ๊ฒ์ด ๋ ๋ฒ์งธ ๋ชฉํ์์ต๋๋ค.
์ญํ ๋ถ๋ด์ planning-poker(ํ๋๋ ํฌ์ปค) ๋ฐฉ์์ผ๋ก ์งํํ์ต๋๋ค.
ํ๋๋ ํฌ์ปค๋ก ๋ด๋น์๋ฅผ ์ ํด ๊ฐ์ ๋งก์ ํ์ด์ง๋ฅผ ์งํํ์ง๋ง blocking์ด ์ค๋ ์ง์๋๋ ๊ฒฝ์ฐ ํจ๊ป ํด๊ฒฐํ์ต๋๋ค.
ํ๋๋ ํฌ์ปค, ํน์ ์คํฌ๋ผ ํฌ์ปค๋ ๊ทธ๋ฃน ๊ตฌ์ฑ์๋ค์ด ํ ์ด๋ธ ์์ ์ซ์๊ฐ ์ ํ ์นด๋๋ฅผ ๋ค์ง์ด ๋๊ณ ๋์์ ์นด๋๋ฅผ ๋ค์ง์ด ๋ ธ๋์๊ฐ์ ๊ณ์ฐํ๋ ๋ ธ๋์๊ฐ ๊ณ์ฐ๋ฒ ์ค ํ๋ ์ ๋๋ค. James Grenning์ด ์ฐฝ์ํ์ผ๋ฉฐ ์ ์์ผ ๊ฐ๋ฐ ์ด๋ก ์ ์ฌ์ฉ๋ฉ๋๋ค.
์ ํฌ๋ ๊ฒ์ํ์ ๋ ๋์ค๋ ํผ๋ณด๋์น ์์ด์ ์นด๋๋ฅผ ๊ฐ์ง๊ณ ํ๋ ๋ฐฉ๋ฒ์ด ์๋,
"๋ด๊ฐ ์ด ํ์ด์ง๋ฅผ ์งํํ๋ค๋ฉด ์ด๋ ์ ๋์ ์๊ฐ์ด ๊ฑธ๋ฆด ๊ฒ์ธ๊ฐ, ๋์๊ฒ ์ด๋ค ๋์ด๋์ธ๊ฐ"๋ฅผ ๋๊ณ ํฌ์ปค๋ฅผ ์งํํ์ต๋๋ค.
๋ฐฐํ
์ 1~100๊น์ง ๊ฐ๋ฅํ๋ฉฐ ๊ฐ์ฅ ์ ๊ฒ ๋ฐฐํ
ํ ์ฌ๋์ด ํด๋น ํ๋ก์ ํธ๋ฅผ ์งํํ๊ฒ ๋ฉ๋๋ค. ๋จ, ๋ค์ ํ๋ก์ ํธ์ ๋ด๋น์๋ฅผ ์ ํ ๋๋ ๋์ ์ผ๋ก ๊ณ์ฐํฉ๋๋ค.
์ผ๋ง๋ ๊ฑธ๋ฆด์ง TypeScript + tailwindCSS ๋ฅผ ์ฒ์ ์ ์ฉํด๋ณด๋ ํ๋ก์ ํธ์ด๊ธฐ์ ์ ํํ ๋ฐฐํ ์ ํ๊ธฐ ์ด๋ ค์ ๊ธฐ์ ํน๋ณํ ๋ง์ด ์ฐจ์ด๊ฐ ๋์ง ์๋ ๋ถ๋ถ์ ํด๋น ํํธ๋ฅผ ๊ฒฝํํด๋ณด์ง ์์ ํ์์๊ฒ ๋ฐฐ๋นํ์ต๋๋ค.
์๋์ ๊ฐ์ด BDD(Given-When-Then)๋ก ๊ธฐํ์ ํ ํ ์ด๋ฅผ ํ ๋๋ก ๋์์ธ์ ์งํํ์ต๋๋ค.
์์์ ๋์ธ ์ ์๋ ๋์๋ค ์ค ๋
ธ๋์์ main-color๋ก ์ค์ ํด ์งํํ์ต๋๋ค.
๋์์ธ์ ํ์
์คํฌ๋ฆฝํธ์ ํธํ์ฑ์ด ์ข์ tailwind-css๋ฅผ ์ฌ์ฉํ๊ณ ์ ๋๋ฉ์ด์
์ ์ ๊ทน ํ์ฉํ์ต๋๋ค.
Auth ๊ด๋ จ ๋ก์ง์ Kimi ๋์ด ๋งก์ ํํธ์์ต๋๋ค. ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง ๋ฐฐ์ฐ๊ณ ์ฒ์ ์ ๋๋ก ํ์ฉํ๋ ์ํ์์ ๋ณต์กํ(๋ํดํ?) ์ ๋๋ฉ์ด์ ์ ํ๊ฒ ๋์ด ๋ง์ ์ด๋ ค์์ ๊ฒช์๋๋ฐ ๋๊น์ง ํฌ๊ธฐํ์ง ์๊ณ ์งํํด์ฃผ์ ์ ๊ตฌํํ ์ ์์์ต๋๋ค :)
์ฝ ์ดํ๋์ ํผ๋ธ๋ฆฌ์ฑ ๊ณผ์ ์ ๋๋ด๊ณ ๊ฐ๋ฐ์ ๋ค์ด๊ฐ์ต๋๋ค.
Linear๋ฅผ ์ฌ์ฉํด backlog๋ฅผ ์์ฑํด ๋งก์ ํํธ๋ฅผ ํ ๋นํ์ต๋๋ค.
์๋์ ๊ฐ์ด My issues๋ฅผ ํตํด ๋ด task๋ค์ ์งํ ๊ณผ์ ์ผ๋ก ๋๋ ํ์ธํ ์ ์์ต๋๋ค.
๋ค๋ฅธ ํ์๋ค์ ์งํ ์ ๋๋ ๋ณผ ์ ์๊ณ ์ ์ฒด ์งํ ํผ์ผํธ ํ์ธ๋ ๊ฐ๋ฅํฉ๋๋ค.
๋ฌด์๋ณด๋ค gitHub์ repository์ ์ฐ๋ํ ์ ์์ด ์๋์ผ๋ก backlog์ ์ํ๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค.
๋ํ ๋ธ๋์น์ ์ด๋ฆ์ ์ ํ ์๊ฐ์ ์ค์ผ ์ ์์ต๋๋ค :)
MMM ๋ ๋ฆฌํฉํฐ๋ง๊น์ง ์งํํ๋ค๋ณด๋ฉด branch ์ด๋ฆ์ '/'(์ฌ๋์)๊ฐ ๋๋ฌด ๋ง์ด ๋ค์ด๊ฐ
๊ธธ์ด์ง๊ณ ์ปจ๋ฒค์
์ ๋ง์ง ์๊ฒ ์์ฑ๋๋ ๊ฒฝ์ฐ๋ ์์๋๋ฐ ์ด ๊ฒฝ์ฐ๋ ํ๋ก์ ํธ ์ด๋ฆ์ ํ ๋๋ก ์๋ ์์ฑํด์ฃผ๊ธฐ ๋๋ฌธ์ ์์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
์ฒ์์๋ Jira๋ก ๋ฐ์ผ๋ฆฌ์คํฌ๋ผ์ ์ฐ๋ฉด์ ์งํ์ ํ๋๋ฐ ์ข ๋ถํธํ์ต๋๋ค.
์๋ก์ด ์ฌ์ดํธ๋ฅผ ๋ค์ด๊ฐ ์์ฑํ๊ณ git์ pull ๋ฐ์ ์งํํ๋ ๊ณผ์ ์ด ๋ฒ๊ฑฐ๋กญ๊ฒ ๋๊ปด์ก๊ณ , Jira๋ Linear์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ ํด์ด๊ธฐ ๋๋ฌธ์ ๋ ๊ฐ๋ฅผ ๋์์ ์ฌ์ฉํ๊ธฐ๋ณด๋ค๋ ๋ ์ค ํ๋๋ฅผ ํํด ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ผ๋ ํผ๋๋ฐฑ๋ ๋ฐ์์ต๋๋ค.
๊ทธ๋์ git issue์ label์ ํ์ฉํด ๋ฐ์ผ๋ฆฌ์คํฌ๋ผ์ ์ฐ๊ธฐ ์์ํ์ต๋๋ค.
์ด๋ ๊ฒ ์งํํ๋ ํ์คํ ๋ค๋ฅธ ํ์์ todolist๋ ๋ฐ๋ก๋ฐ๋ก ํ์ธํ ์ ์์์ต๋๋ค.
git issue์์ ์๋์ ๊ฐ์ด ๋๋๊ณ ์ถ์ ์๊ฒฌ์ด๋ blocking๋ ๋ถ๋ถ ๊ณต์ ๋ ํ๊ณ ์์๊ธฐ์ ์ด์ ๋ณด๋ค ๋น ๋ฅด๊ฒ follow-up์ด ๊ฐ๋ฅํด์ก์ต๋๋ค.
๋์๊ฐ blocking ๋์ด PR์ ๋ชปํ๊ฒ ๋ ๊ฒฝ์ฐ 1์ผ 1commit ๊ท์น์ ์งํค์ง ๋ชปํ ์ ์๋ค๋ ๋ถ๋ด์ issue ๋ฑ๋ก์ ํตํด ์ํํ ์ ์๋ค๋ ์ฅ์ ๋ ์์ต๋๋ค.
์ ํฌ๋ ์๋์ ๊ฐ์ template์ ์ ์ฉํ์ต๋๋ค.
๋จผ์ ๊ฐ๋ตํ ์ ์ฒด์ ์ธ PR์ ๋ด์ฉ์ ์์ฝํ๊ณ ์ ํ์ ์ ํํฉ๋๋ค.
์ง์ ๋ง๋ ํจ์์ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ฌ๋์ด ์ฌ์ฉํ๊ฑฐ๋ ์ดํดํ๊ธฐ ํธํ๊ฒ
JS DOCs์ sample ๊ทธ๋ฆฌ๊ณ PR์ ์ค๋ช
์ ํตํด ์์ ํ๋๋ก ํ์ต๋๋ค.
detail์๋ ๋ด๊ฐ ๊ณต์ ํ๊ณ ์ถ์ ์ฝ๋์ ์ผ๋ถ๋ฅผ ๋ฐ์ทํด ์ค๋ช
ํ ์ ์๋๋ก ํ์ต๋๋ค.
์ฝ๋ ์ค๋ช
ํ์๋ ์งํ ์์ ์ธ ๋ถ๋ถ์ ์ ์ ์๋ ์๊ณ ๋งํ๋ ๋ถ๋ถ์ ์ ์ ์๋ ์์ต๋๋ค :)
// PR template
## ๊ฐ์
<!-- ํ ์ค ์์ฝ -->
## PR ์ ํ
์ด๋ค ๋ณ๊ฒฝ ์ฌํญ์ด ์๋์?
- [ ] ๐ข feat : ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ
- [ ] ๐ด Remove : ํ์ผ์ด๋ ํด๋๋ฅผ ์ญ์ ํ๋ ์์
๋ง ์ํํ ๊ฒฝ์ฐ
- [ ] ๐ฅ HOTFIX : ๊ธํ๊ฒ ์น๋ช
์ ์ธ ๋ฒ๊ทธ๋ฅผ ๊ณ ์ณ์ผํ๋ ๊ฒฝ์ฐ
- [ ] ๐ fix : ๋ฒ๊ทธ์์
- [ ] ๐ style : CSS ๋ฑ ์ฌ์ฉ์ UI ๋์์ธ ๋ณ๊ฒฝ
- [ ] ๐ฌ Comment : ํ์ํ ์ฃผ์ ์ถ๊ฐ ๋ฐ ๋ณ๊ฒฝ
- [ ] ๐ก refactor : ๊ธฐ๋ฅ, ์ฝ๋ ๊ฐ์
- [ ] ๐ Rename : ํ์ผ ํน์ ํด๋๋ช
์ ์์ ํ๊ฑฐ๋ ์ฎ๊ธฐ๋ ์์
๋ง์ธ ๊ฒฝ์ฐ
- [x] ๐ docs : ๋ฌธ์ ์์
## PR Checklist
PR์ด ๋ค์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋์ง ํ์ธํ์ธ์.
- [ ] ์ปค๋ฐ ๋ฉ์์ง ์ปจ๋ฒค์
์ ๋ง๊ฒ ์์ฑํ์ต๋๋ค.
- [ ] ์ง์ ๋ง๋ ํจ์๊ฐ ์๋ค๋ฉด ์ด์ ๋ํ ์ค๋ช
์ ์ถ๊ฐํ์ต๋๋ค. (ex. JS DOCS)
- [ ] ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ํ
์คํธ๋ฅผ ํ์ต๋๋ค. (๋ฒ๊ทธ ์์ /๊ธฐ๋ฅ์ ๋ํ ํ
์คํธ)
## PR details
<!-- ๋ณ๊ฒฝ ์ฌํญ ๋ฐ ๊ด๋ จ ์ด์์ ๋ํด ๊ฐ๋จํ๊ฒ ์์ฑํด์ฃผ์ธ์. ์ด๋ป๊ฒ๋ณด๋ค ๋ฌด์์ ์ ์์ ํ๋์ง ์ค๋ช
ํด์ฃผ์ธ์. -->
<!-- ์ง์ ๋ง๋ ํจ์๊ฐ ์๋ค๋ฉด ์์ ๋ฅผ ๋ง๋ค์ด ์์ธํ ์ค๋ช
ํด์ฃผ์ธ์. (์ฝ๋ ์บก์ณ) -->
์ ์ฉํ๊ธฐ ์ฝ๋๋ก JS Docs๋ ์ ์์ต๋๋ค.
sample์ ์ ๊ฐ ์ด๋ฏธ ๋ง๋ ํ ์ ์ฉํ ํ์ด์ง๊ฐ ์์ด ์๋ตํ์ต๋๋ค.
/**
* @function useGetRecipeInfinity ๋ recipe data๋ฅผ ๊ฐ์ ธ์ ๋ฌดํ ์คํฌ๋กค์ ๊ตฌํํด์ฃผ๋ hook ํจ์
* @param {recipeData} : ๋งค๊ฐ๋ณ์๋ก ๋ฐ์ ๋ฐ์ดํฐ๋ค์ ์คํ๋ ๋ ํํ๋ก ๋ณด๊ด, api ์ฃผ์์ ์ ์ฅ
* @param {fetchNextPage} : useInfiniteQuery์ options ์ค ํ๋
* @return {recipeData, fetchNextPage}
**/
export function useGetRecipeInfinity() {
const {
data: recipeData,
fetchNextPage,
hasNextPage,
isFetching,
} = useInfiniteQuery({
queryKey: [QUERY_KEY.MORE_RECIPE_LIST],
queryFn: ({ pageParam = { startIdx: 1, endIdx: 12 } }) =>
getRecipe(pageParam),
getNextPageParam: (lastPage, totalPages) => {
const startIdx = totalPages.length * 12 + 1;
let endIdx = (totalPages.length + 1) * 12;
if (lastPage.COOKRCP01.total_count < endIdx) {
endIdx = lastPage.COOKRCP01.total_count;
}
if (startIdx > lastPage.COOKRCP01.total_count) {
return null;
}
return { startIdx, endIdx };
},
});
return { recipeData, fetchNextPage, hasNextPage, isFetching };
}
์ถ๊ฐ์ ์ผ๋ก hook ํจ์๋ฅผ ๋ง๋ ํ PRํ ๋ ์์ธํ ์ค๋ช ์ ์ฒจ๋ถํ์ต๋๋ค.
๊ผผ๊ผผํ๊ฒ PR์ ์์ฑํ๊ณ ๋ค๋ฅธ ํ์์ ์ํด JS Docs๋ฅผ ์ ๋ค๋ณด๋ ์ด๊ฑด ์ ๋ฅผ ์ํด์๋ ์ข๋ค๋ ๊ฒ์ ์์ฐ์ค๋ฝ๊ฒ ์๊ฒ ๋์์ต๋๋ค.
์ ์ฝ๋๋ฅผ ์ ์ ๋ ์ค๋ช ์ ์ ๋ค๋ณด๋ ๋ฆฌํฉํฐ๋งํ ๋ถ๋ถ๋ ๋ ์ ๋ณด์ฌ ๋ด ์ฝ๋์ ๋ฌธ์ ๋ฅผ ๋น ๋ฅด๊ฒ ํ์ ํ ์ ์์์ต๋๋ค. ์ค๋ช ๊ณผ ์ฃผ์์ ๋ฌ๋ค๋ณด๋ฉด ์ด๋ฆ๋ ๋ ์ง๊ด์ ์ผ๋ก ์ดํด ๊ฐ๋ฅํ๋๋ก ๋ฐ๊พธ๊ฒ ๋์์ต๋๋ค.
infinite-query ๋ถ๋ถ์ ์ฌ๋ฌ ํ๋ก์ ํธ์์ ์ฌ์ฌ์ฉ๋ ์ ์์ผ๋ฏ๋ก ๋ค์ ํ๋ก์ ํธ์์ ๋ ์ฌ์ฌ์ฉํ๊ธฐ ์ฉ์ดํ๋๋ก ๋ฐ๊ฟ๋ณด๋ ค๊ณ ํฉ๋๋ค :)
figma ๐ ๋ ์์ธํ ๋์์ธ์ ํผ๊ทธ๋ง ๋งํฌ์์ ํ์ธํ๊ธฐ
vercel ๐ ๊ตฌํ๋ ์ฌ์ดํธ์์ ํธํ๊ฒ ํ์ธํ๊ธฐ
account info | |
ID | chapchap |
password | chap1234 |
| ์์์ผ(Agile)ํด์ก๋๊ฐ?
ํ์ ์ ์ํด ์ ํฌ ํ yeong-cha(์์ฐจ)๋ PR template์ ์ฌ์ฉํด ๊ผผ๊ผผํ ๋ด๊ฐ ์ง ์ฝ๋๋ฅผ ๋ค๋ฅธ ํ์๋ค์ด ์ดํดํ ์ ์๋๋ก ํ์ต๋๋ค. ํ ํ๋ฆฟ์ ํตํด ํต์ผ์ฑ ๋ถ์ฌ๋ ํ ์ ์๊ณ ์ด๋ค ๋ด์ฉ์ด ๋ด๊ฒจ ์์์ง ๋ฏธ๋ฆฌ ํ์ ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ํ์์ด ์ง ์ฝ๋๋ฅผ ์ดํดํ๋๋ฐ ์ ๋ณด๋ค ํจ์ฌ ์์ํ์ต๋๋ค.
์ง์ ๋ง๋ ํจ์๊ฐ ์๋ค๋ฉด ๋ฐ๋์ ์ค๋ช ๊ณผ ์์๋ฅผ ์ ์ ์ ์๊ฒ ์ด์ ๋ํ ์ฒดํฌ ์ฌ๋ถ๋ PR template ๋ด์ฉ์ ์ถ๊ฐํ์ต๋๋ค.
๋งํ๋ ๋ถ๋ถ์ด๋ ๊ณ ๋ฏผ์ด ๋๋ ๋ถ๋ถ์ github issue๋ฅผ ํตํด ์๊ฒฌ์ ๋๋ด๊ณ ๋ชจ๋ ๊ฒ์๋ ๊ธ๋ค(issue ๋ฐ PR)์ comment๋ ์ต๋ํ ์ฑ์ฌ์ฑ์๊ป ์์ฑํ์ต๋๋ค.
Linear๋ผ๋ ํ์ ํด์ ์ฌ์ฉํด back-log๋ ํ์ธํ ์ ์๋๋ก ํ๊ณ , daily scrum์ github issue์ ์ ์ด ๋ค๋ฅธ ์ฌ์ดํธ ๋ฐฉ๋ฌธ ์์ด ํธํ๊ฒ ์๋ก์ ์ผ์ ์ ํ์ ํ ์ ์๋๋ก ํ์ต๋๋ค.
์ง๋ ํ๋ก์ ํธ์์ ๋์น ๋ถ๋ถ์ ๋ณด์ํด ๋๊ฐ๋ฉด์ ์์์ผํ๊ฒ ํ๋ก์ ํธ๋ฅผ ์งํํ๊ฒ ๋๋ฉด ์๋น ๋น์ฉ์ด ๋ ๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ํ๋์ PR์ review๋ฅผ ์์ํ๋ฉด ์ต์ 1์๊ฐ์ด ๊ฑธ๋ ธ๊ธฐ ๋๋ฌธ์
๋๋ค.
ํ์ง๋ง ์ด๋ฐ ๋น์ฉ์ ๋ค์ฌ์ผ์ง๋ง ์ ์ง๋ณด์ํ๊ธฐ๋ ์ฉ์ดํ๊ณ ์ฝ๋์ ๋ํ ์ดํด๋ ๋์์ง๋ค๋ ๊ฒ๋ ํจ๊ป ์๊ฒ ๋์์ต๋๋ค.
์ด์ ์๋ ๋ฆฌํฉํฐ๋ง์ ์งํํ ๋ ๋น๋ก์ ๋ค๋ฅธ ํ์ด๊ฐ ์ง ์ฝ๋๋ฅผ ๋ฉด๋ฐํ ์ดํด๋ณด๊ฒ ๋์๊ธฐ ๋๋ฌธ์
์๊ฐ๋ ์ค๋ ์์๋๊ณ ์ฝ๋์ ํต์ผ์ฑ๋ ๋จ์ด์ก๋๋ฐ ์ด๋ฒ์๋ ํ์คํ ์ด๋ฌํ ๋ถ๋ถ๋ค์ด ๊ฐ์ ๋์์ต๋๋ค.
code review๋ฅผ ํตํด ์ง์ผ์ง์ง ์์ ๋ถ๋ถ๋ค์ ์์ ํ๊ณ mergeํ ์ ์์๊ณ ,
ํผ๋๋ฐฑ์ ํตํด ์ฆ๊ฐ์ ์ผ๋ก ์ฝ๋ ๊ฐ์ ์ด ๊ฐ๋ฅํ์ต๋๋ค.
์ด์ ์๋ ๊ฐ ํ์ด๊ฐ ๋์๊ฐ๋ฉฐ ํ ๋ฒ์ฉ ๋ฆฌ๋ทฐ๋ฅผ ์งํํ๊ธฐ ๋๋ฌธ์ ๋ด๊ฐ ๋ณด์ง ๋ชปํ PR์ด ์กด์ฌํ์ต๋๋ค.
์ด๋ฐ ๋ถ๋ถ์ ์์ ๊ธฐ ์ํด ๋ชจ๋ ํ์์ด ๋ฆฌ๋ทฐ๋ฅผ ํ๊ณ ์น์ธํด์ผ ํ๊ณ ์ฝ๋์ ์ฃผ์ธ์ด ๋๊ธ์ ๋ฌ์์ผ๋ง mergeํ ์ ์๋๋ก ๊ฐ์ ์ฑ๋ ๋ถ์ฌํ์ต๋๋ค.
ํ์ ์ ์ ๊ฒฝ์ฐ๋ค๋ณด๋ ๊ฐ๋ฐ ์๊ฐ์ด ๋ ๊ฑธ๋ฆฌ๋ ๊ฒ ๊ฐ์ง๋ง ์ ์ง๋ณด์ ์ธก๋ฉด ๋ฑ์ ๊ณ ๋ คํด ๋ฉ๋ฆฌ ๋ด๋ค๋ณด๋ฉด ์คํ๋ ค ์์ฐ์ฑ์ด ์๋ ์ชฝ์ ํ์ ์ ์ ๊ฒฝ์ฐ๋ ํ๋ก์ ํธ์์ ํ์คํ ์ง๊ณ ๋์ด๊ฐ ์ ์๋ ๊ณ๊ธฐ๊ฐ ๋์์ต๋๋ค.
| ์ด๋ฒ์ ์์ฌ์ ๋ ์ ์ ?
๊ฐ๋ฐ์ ํ๋ ๊ณผ์ ์์ API ๋ถ์์ ๋ํ ์์ฌ์์ด ์์์ต๋๋ค.
์ ๋๋ก ๋ถ์์ ํ์ง ์์ ๊ตฌํํ ์ ์๋ ๊ธฐ๋ฅ๋ค์ ๊ตฌํํ๋ ค๊ณ ์๊ฐ์ ์์๊ธฐ ๋๋ฌธ์
๋๋ค.
์๋ฅผ ๋ค์ด ์ด๋ฒ ํ๋ก์ ํธ์์ scrap ๊ธฐ๋ฅ๊ณผ filter ๊ธฐ๋ฅ์ด ํด๋น๋ฉ๋๋ค.
์คํฌ๋ฉ์ mobithonAPI์์ ๋ด๊ฐ ์คํฌ๋ฉํ ๊ฒ์๊ธ์ธ์ง ํ์ธํ ์ ์๋ ๊ธฐ๋ฅ์ด ์์ด ๊ตฌํํ ์ ์์๊ณ , filter๋ openAPI์์ ๊ด๋ จ ๊ธฐ๋ฅ์ ์ ๊ณตํด์ฃผ์ง ์์ ํ๋ก ํธ ๋จ์์ ํ๋์ฝ๋ฉ์ ํด์ผ ํ์ต๋๋ค.
๋ฏธ๋ฆฌ API ๋ถ์์ ๋ ๊ผผ๊ผผํ ํ๋ค๋ฉด ์ ๋๋ ๊ธฐ๋ฅ์ ๋ถ์ก๊ณ ๋๋๊ฑฐ๋ฆฌ์ง ์์์ ๊ฒ์ด๋ผ ์๊ฐ๋์๊ณ , API ๋ถ์์ ํ์คํ ์ง๊ณ ๋์ด๊ฐ๊ธฐ ์ํด ๋ฐ๋ก ๋ค์ ํ ์ด ํ๋ก์ ํธ๋ฅผ ๊ธฐํํ์ต๋๋ค.
์ ๋ฐ์ ์ผ๋ก API ๋ถ์์ด ๋ฏธํกํ๋ ํ์ ์์ฑ์ ํ์ง ๋ชปํ์ง๋ง ์ฒ์๋ถํฐ ์ ํฌ์ 1์์ ๋ชฉํ๋ ํ์ ๊ณผ ์ฑ์ฅ์ด์๊ธฐ ๋๋ฌธ์ ๋๋ฆ ์ฑ๊ณต์ ์ธ ํ๋ก์ ํธ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ถ์กฑํ ๋ถ๋ถ์ ๋ค์ ํ๋ก์ ํธ์์ ์ฑ์ธ ์์ ์ด๊ธฐ ๋๋ฌธ์ ์์ฌ์๋ณด๋จ ๊ฐ์ด์ ๊ฐ์น๋ฅผ ์์ ์๋ ๊ธฐํ๊ฐ ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ข์ ํ์ ๋ฌธํ๋ฅผ ํจ๊ป ๋ง๋ ์กฐ์๋ค ๋๋ถ์ ์ ๋ ์ ๋๋ก ๋ชป ์๋ฉฐ ์งํํ์ง๋ง ์ฆ๊ฑฐ์ด ์๊ฐ์ผ๋ก ๊ธฐ์ต๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ค์ ํ๋ก์ ํธ๋ ๊ฐ์ด ์งํํ๋ Kimi ๋์ ํ ๋ฒ ๋ ์ ๋ถํ๋๋ฆฌ๊ณ , ๋ณต์ต์ ์งํํ๊ธฐ๋ก ๊ฒฐ์ ํ์ Ann ๋์ ์์์ ์์ํ๊ณ ์๊ฒ ์ต๋๋ค๐ฉท