Altsis๋ ๋ณ๋ฌด๋ฆฌํ๊ต์์ ๋ง๋ ๋์์ ์ธ ํ๊ต ์ ๋ณด ์์คํ (Alternative School Infomation System)์ผ๋ก์ ์คํ ์์ค ํ๋ก์ ํธ๋ก ์ ํํ์ฌ ๋ง์ ํ๊ต์ ๊ต์ก๊ธฐ๊ด์ ๋์์ ์ฃผ๊ณ ์ ํ๊ณ ์์ต๋๋ค. ์ด ํ๋ก์ ํธ์ ์ต๋ํ ์ฝ๊ณ ๊ฐํธํ๊ฒ ๊ธฐ์ฌํ ์ ์๋๋ก ๋ ธ๋ ฅํ๊ณ ์์ง๋ง, ์์ง ๋ถ์กฑํ ์ํ์ ๋๋ค. ์ด ๋ฌธ์๋ฅผ ํตํด ์ฌ๋ฌ๋ถ์ด ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋ ์ ์ฐจ์ ๋ํด ๋ช ํํ๊ฒ ์ธ์งํ๊ณ ๊ถ๊ธํ ์ ๋ค์ ํด๊ฒฐํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
Altsis์ Contributor Covenant๋ฅผ ํ๋ ๊ฐ๋ น์ผ๋ก ์ฑํํ์ผ๋ฉฐ ๋ชจ๋ ํ๋ก์ ํธ ์ฐธ์ฌ์๊ฐ ์ค์ํ๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค. ์ ๋ฌธ์ ์ฝ๊ณ ์ด๋ค ํ๋์ด ํ์ฉ๋๊ณ ํ์ฉ๋์ง ์๋์ง ์ดํดํ ์ ์์ต๋๋ค.
Altsis์ ๋ํ ๋ชจ๋ ๊ฐ๋ฐ ์์ ์ GitHub์์ ์ด๋ฃจ์ด์ง๋๋ค. ์ฝ์ด ํ ๊ตฌ์ฑ์๊ณผ ์ธ๋ถ ๊ธฐ์ฌ์๊ฐ ๋ชจ๋ ๋์ผํ ๊ฒํ ๊ณผ์ ์ ํตํด ํ ๋ฆฌํ์คํธ๋ฅผ ์ ์ถํฉ๋๋ค.
Altsis๋ ์ ์์ ๋ฒ์ ์ ๋ฐ๋ฆ ๋๋ค. ์ค์ํ ๋ฒ๊ทธ ์์ ์ ์ ๋ฒ์ ์ผ๋ก, ํต์ฌ์ ์ด์ง ์์ ๋ณํ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ๋ถ ๋ฒ์ ์ผ๋ก ๊ทธ๋ฆฌ๊ณ ํธํ์ฑ์ด ์ ์ง๋์ง ์๋ ๋ณ๊ฒฝ์ ์ฃผ ๋ฒ์ ์ผ๋ก ๋ฐฐํฌํฉ๋๋ค. ํธํ์ฑ์ด ์ ์ง๋์ง ์๋ ๋ณ๊ฒฝ์ ๋ง๋ค ๋, ๋ถ ๋ฒ์ ์์ ์ฌ์ฉ์ ๊ถ์ฅํ์ง ์๋ ์ฃผ์ ๋ฉ์ธ์ง๋ฅผ ํตํด Altsis๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์๊ฐ ๋ค๊ฐ์ฌ ๋ณํ๋ฅผ ์์์ฐจ๋ฆฌ๊ณ ๋ฏธ๋ฆฌ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ ์ ์๊ฒ ํฉ๋๋ค.
๋ชจ๋ ์ค์ํ ๋ณํ๋ releases์ ๊ธฐ๋ก๋์ด ์์ต๋๋ค.
๋ชจ๋ ๋ณํ๋ dev ๋ธ๋์น๋ก ์ ์ถํด์ฃผ์ธ์. ๊ฐ๋ฐ์ด๋ ๋ค๊ฐ์ค๋ ๋ฐฐํฌ๋ฅผ ์ํด ๋ฐ๋ก ๋ธ๋์น๋ฅผ ๊ด๋ฆฌํ์ง๋ ์์ต๋๋ค.
dev์ ๋ฐ์๋ ์ฝ๋๋ ๊ฐ์ฅ ์ต๊ทผ์ ์์ ๋ ๋ฐฐํฌ์ ๋ฐ๋์ ํธํ๋ผ์ผ ํฉ๋๋ค. ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ํฌํจํ ์ ์์ง๋ง, ํธํ๋์ง ์๋ ๋ณํ๋ ํฌํจ๋๋ฉด ์ ๋ฉ๋๋ค. ์ธ์ ๋ dev์ ๊ฐ์ฅ ์ต๊ทผ ์ปค๋ฐ์ผ๋ก๋ถํฐ ์๋ก์ด ๋ถ ๋ฒ์ ์ ๋ฐฐํฌํ ์ ์์ด์ผ ํฉ๋๋ค.
###์๋ ค์ง ์ด์๋ ์ด๋์ ์ฐพ์์ผ ํ ๊น์? ๊ณต๊ฐ ๋ฒ๊ทธ ๊ด๋ฆฌ์ GitHub Issues๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ด์์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด๊ณ ๋ด๋ถ ์์ ์ด ์งํ ์ค์ด๋ผ๋ฉด ์ด์๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ๋ ธ๋ ฅํฉ๋๋ค. ์๋ก์ด ์ด์๋ฅผ ๋ฑ๋กํ๊ธฐ ์ ์, ์ด๋ฏธ ๋ฑ๋ก๋ ์ด์๊ฐ ์๋์ง ํ์ธํด์ฃผ์ธ์.
๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๋ ์์ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ธฐ ์ํ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด๋ JSFiddle ํ ํ๋ฆฟ์ด ์ข์ ์์์ ์ ๋๋ค.
Altsis์ ๋ํ ๋์์ด ํ์ํ ๊ฒฝ์ฐ Discord ์ฑํ ํ๋ซํผ์์ Altsis ์ฌ์ฉ์ ์ปค๋ฎค๋ํฐ๋ฅผ ์ด์ฉํ ์ ์์ต๋๋ค.
Public API๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ๊ตฌํ์ ๊ฐ๋จํ๊ฒ ๋ณ๊ฒฝํ๋ ค ํ ๋ ์ด์๋ฅผ ๋จผ์ ์ ์ถํ๊ธธ ๊ถ์ฅํฉ๋๋ค. ์์ ํ๋ ค๊ณ ๋ง์ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ด๊ธฐ ์ ์ ์ ์์ ๋ํ ํฉ์์ ๋๋ฌํ ์ ์๋๋ก ํด์ค๋๋ค.
๋ฒ๊ทธ๋ง ์์ ํ ๊ฒฝ์ฐ, ๊ณง๋ฐ๋ก ํ ๋ฆฌํ์คํธ๋ฅผ ์ ์ถํด๋ ๊ด์ฐฎ์ง๋ง, ์ฌ์ ํ ์์ ํ๋ ค๋ ์ฌํญ์ ์์ธํ ์ค๋ช ํ๋ ์ด์๋ฅผ ์ ์ถํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฐ์๋ค์ฌ์ง์ง ์์ ํน์ ๋ณํ๊ฐ ์์ง๋ง, ์ด์๋ฅผ ์ถ์ ํ๊ธฐ ์ํ ๋ ๋์์ด ๋ฉ๋๋ค.
ํ ๋ฆฌํ์คํธ๋ฅผ ์ฒ์ ํด๋ณด์๋์? ๋ฌด๋ฃ ์์ ์๋ฆฌ์ฆ๋ฅผ ํตํด ๋ค์๊ณผ ๊ฐ์ด ๊ธฐ์ฌํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์๋ ์์ต๋๋ค.
GitHub์์ ์คํ ์์ค ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋ ๋ฐฉ๋ฒ
์ฒ์ ๋ฐ์ ๋๋ ๋ ๊ธฐ์ฌ ๊ณผ์ ์ ์ต์ํด์ง ์ ์๋๋ก ๋น๊ต์ ์ํฅ๋ ฅ์ด ์ ์ ๋ฒ๊ทธ๋ฅผ ํฌํจํ๋ good first issues ๋ชฉ๋ก์ ๊ธฐ์ฌ ์ ๋ฌธ์ ์ต์ ์ ๋๋ค.
์ด์๋ฅผ ํด๊ฒฐํ๋ ค๋ ๊ฒฝ์ฐ, ๋ค๋ฅธ ๋๊ตฐ๊ฐ ์ด๋ฏธ ์์ ์์ ์ ์งํ ์ค์ผ ์๋ ์์ผ๋ฏ๋ก ์ฝ๋ฉํธ ์ฐ๋ ๋๋ฅผ ๊ผญ ํ์ธํด ์ฃผ์ธ์. ์๋ฌด๋ ์์ ํ๊ณ ์์ง ์์ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ฌ๋์ด ์ค์๋ก ์ค๋ณต ์์ ์ ํ์ง ์๋๋ก ์์ ํ ์์ ์ด๋ผ๊ณ ์ฝ๋ฉํธ๋ฅผ ๋จ๊ฒจ์ฃผ์ธ์.
๋๊ตฐ๊ฐ ํ๊ฒ ๋ค๊ณ ์ ์ธํ ์ด์๊ฐ 2์ฃผ ์ด์ ๋ฐฉ์น๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ฌ๋์ด ๋๊ฒจ๋ฐ๋ ๊ฒ์ ์๊ด์์ง๋ง ๊ทธ๋ฌํ ๊ฒฝ์ฐ์๋ ์ฝ๋ฉํธ๋ฅผ ๋จ๊ฒจ์ผ ํฉ๋๋ค.
์ฝ์ด ํ์ ํ ๋ฆฌํ์คํธ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ์์ต๋๋ค. ์ฌ๋ฌ๋ถ์ด ์์ฒญํ ํ ๋ฆฌํ์คํธ๋ฅผ ๋ฆฌ๋ทฐ, ๋ณํฉ, ๋ณ๊ฒฝ ์์ฒญ์ ํ๊ฑฐ๋ ์ค๋ช ๊ณผ ํจ๊ป ํ ๋ฆฌํ์คํธ๋ฅผ ๋ซ์ ๊ฒ์ ๋๋ค. Altsis ๋ด๋ถ์์ ์ฌ์ฉ๋ฒ ๊ฒํ ๊ฐ ํ์ํ API ๋ณ๊ฒฝ์ ์๊ฐ์ด ๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ์ฝ์ด ํ์ ํ๋ก์ธ์ค ์ ๋ฐ์ ๊ฑธ์ณ ์ต์ ์ ๋ณด ์ ๋ฐ์ดํธ์ ํผ๋๋ฐฑ์ ์ ๊ณตํ๋๋ก ์ต์ ์ ๋คํ ๊ฒ์ ๋๋ค.
ํ ๋ฆฌํ์คํธ๋ฅผ ๋ณด๋ด๊ธฐ ์ ์, ๋ค์ ์ฌํญ์ ํ์ธํด ์ฃผ์ธ์.
- ์ ์ฅ์๋ฅผ ํฌํฌํ๊ณ dev๋ก๋ถํฐ ์๋ก์ด ๋ธ๋์น๋ฅผ ์์ฑํฉ๋๋ค.
- ์ ์ฅ์ ๋ฃจํธ์์ yarn ๋ช ๋ น์ ์คํํฉ๋๋ค.
- ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ฑฐ๋ ํ ์คํธ๊ฐ ํ์ํ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ค๋ฉด ํ ์คํธ๋ฅผ ์ถ๊ฐํด ์ฃผ์ธ์.
- ํ ์คํธ๊ฐ ํต๊ณผํ๋์ง ํ์ธํด ์ฃผ์ธ์(yarn test). Tip : yarn test --watch TestName ๋ช ๋ น์ ๊ฐ๋ฐํ ๋ ๋์์ด ๋ฉ๋๋ค.
- yarn test --prod ๋ช ๋ น์ ์ค์ ํ๊ฒฝ์์ ํ ์คํธํ๊ธฐ ์ํด ์คํํฉ๋๋ค.
- ๋๋ฒ๊ฑฐ๊ฐ ํ์ํ ๊ฒฝ์ฐ yarn debug-test --watch TestName ์ ์คํํ๊ณ chrome://inspect์ ์ด์ด โInspectโ๋ฅผ ๋๋ฅด์ธ์.
- prettier๋ก ์ฝ๋๋ฅผ ํฌ๋งทํ์ธ์. (yarn prettier).
- ์ฝ๋๋ฅผ ๋ฆฐํธํ์ธ์ (yarn lint). Tip: yarn linc ๋ ๋ณ๊ฒฝ๋ ํ์ผ๋ง ํ์ธํ ์ ์์ต๋๋ค.
- Flow ํ์ ๊ฒ์ฌ๋ฅผ ์คํํ์ธ์. (yarn flow).
Node LTS์ Yarn์ด ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค. Git ์ฌ์ฉ์ ์ต์ํด์ผ ํฉ๋๋ค.
Altsis ์ ์ฅ์๋ฅผ ๋ณต์ฌํ ํ yarn ๋ช ๋ น์ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฌ๋ฌ ๋ช ๋ น์ ์คํํ ์ ์์ต๋๋ค.
Prettier๋ผ๊ณ ๋ถ๋ฆฌ๋ ์๋ ์ฝ๋ ํฌ๋งทํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ ๋ค yarn prettier๋ฅผ ์คํํด์ฃผ์ธ์.
๊ทธ๋ฌ๋ฉด linter๋ ์ฝ๋์ ์กด์ฌํ ์ ์๋ ๋ฌธ์ ๋ฅผ ์ก์๋ ๋๋ค. ๋จ์ํ ๋ณ๊ฒฝํ ์ฝ๋์ ์คํ์ผ์ ์ ๊ฒํ๊ณ ์ถ์ ๋ yarn linc๋ฅผ ์ฌ์ฉํด์ฃผ์ธ์.
๊ทธ๋ฌ๋, ์์ง linter์์๋ ์ ๊ฒํ ์ ์๋ ์คํ์ผ์ด ์กด์ฌํฉ๋๋ค. ๋ชจ๋ฅด๋ ๊ฒ์ด ์๋ค๋ฉด Airbnbโs Style Guide์์ ์ ์ ํ ๋ฐฉ๋ฒ์ ์๋ด๋ฐ์ ์ ์์ต๋๋ค.
React์ ๊ธฐ์ฌํ ๋, ์ฌ๋ฌ๋ถ์ ๊ทธ ๊ธฐ์ฌ๊ฐ MIT ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ผ์ด์ ์ค๊ฐ ๋ถ์ฌ๋๋ ๊ฒ์ ๋์ํ๋ค๊ณ ๊ฐ์ฃผํฉ๋๋ค.