-
Notifications
You must be signed in to change notification settings - Fork 3
CodeSandbox An online React editor
์ผ์ฃผ์ผ ์ ์ ์ด๋ฏธ, BasbUrrsma์ ๋๋ react ๊ธฐ๋ฐ์ ํ๋ก์ ํธ ๊ณต์ ์ ์ค์ ์ ๋ ์จ๋ผ์ธ ์ฝ๋ ํธ์ง๊ธฐ์ธ CodeSandbox๋ฅผ ์ถ์ํ๋ค. ๋ฐ์์ ๊ธฐ๋ ์ด์์ด์๋ค. ์ด๋ฏธ 1500๊ฐ ์ด์์ ์๋๋ฐ์ค(ํ๋ก์ ํธ)๊ฐ ์์ฑ๋์๊ณ , 280๋ช ์ด์์ ์ฌ์ฉ์๊ฐ github๋ฅผ ํตํด ๋ก๊ทธ์ธํ๋ค.
CodeSandbox์ ์์ด๋์ด๋ ๋ด๊ฐ St.Ives๋ฅผ ์ฌํํ ๋ ์์๋์๋ค. ๋น์ ๋๋, catawiki๋ฅผ react๋ก ๋ณํํ๋ ์์ ์ ํ๊ณ ์์๋ค. ๋ด๊ฐ ์ฌํ์ ๊ฐ์ ๋, ๋ค๋ฅธ ๊ฐ๋ฐ์๋ก๋ถํฐ react์ ๋ํด ๋ง์ ์ง๋ฌธ์ ๋ฐ์์ง๋ง, ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ํธ์ง๊ธฐ์ ์ ๊ทผํ์ง ์๊ณ ์๋ ๋ด๊ฐ ๊ทธ๋ค์๊ฒ ๋๋ตํ ์ด๋ ํ ๋ฐฉ๋ฒ์ด ์์๋ค.
๊ฐ๋จํ๊ฒ ๋งํ๋ฉด, ์ฝ๋์๋๋ฐ์ค๋ ์จ๋ผ์ธ ์ฝ๋ ํธ์ง๊ธฐ์ด๋ค. ๊ทธ๊ฒ์ transpling๊ณผ ๋ฒ๋ค๋ง ๋ฐ ์์กด์ฑ ๊ด๋ฆฌ์ ๊ฐ์ ๊ธฐ๋ฅ๋ค์ ์๋ํํ์ฌ, ํ ๋ฒ์ ํด๋ฆญ์ผ๋ก ์ ํ๋ก์ ํธ๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์๋ค. ํ๋ก์ ํธ๋ฅผ ๋ง๋ ํ์๋ ๋จ์ง url์ ๊ณต์ ํ๋ ๊ฒ๋ง์ผ๋ก๋ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ํ๋ก์ ํธ๋ฅผ ๋ณด์ฌ์ค ์ ์๋ค. CodeSandbox๋ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ๋ ์ฝ๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ ์ค์๊ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ธฐ๋ฅ์ด ์ ๊ณต๋๋ค. ํธ์ง๊ธฐ๋ ๋ชจ๋ javascript ํ๋ก์ ํธ์์ ๋์ํ์ง๋ง, cra ํ ํ๋ฆฟ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๋ค์ด๋ก๋ํ๋ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ์ผ๋ถ react์ ๊ด๋ จ ๊ธฐ๋ฅ์ด ์๋ค.
์ฐ๋ฆฌ๋ ์ง๋ 4๊ฐ์ ๋์ CodeSandbox๋ฅผ ์ฐ๊ตฌํด์๊ณ , ๊ทธ๋์ ํ๊ณ ์ถ์ ์ด์ผ๊ธฐ๋ค์ด ๋ง๋ค. CodeSandbox์ ๊ฐ์ฅ ํฐ ๊ธฐ๋ฅ์ ์๊ฐํ๋ค.
๋ง์ ๋ฒ๊ฑฐ๋ก์ ์์ด ๋ณ๋์ ํ๊ฒฝ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๋ํด๋ณผ ์ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ์ ๋ง ์ค์ํ๋ค. ํน์ ํ ์์กด์ฑ ์กฐํฉ์ ๋ํด ์ฆ์ ์์กด์ฑ ๋น๋๋ฅผ ์์ฑํ์ฌ ์ฐ๋ฆฌ๋ npm ์์กด์ฑ์ ์ง์ํ๋ค. WebpackBin ๋ํ ๊ฐ์ ์์ ์ ์ํํ๊ณ ์์ผ๋ฉฐ, ํ์ฌ Christian Alfoni์ ํจ๊ป ๋ชจ๋๊ฐ ์ฌ์ฉํ ์ ์๋ ์๋น์ค๋ฅผ ๋น๋ํ๊ธฐ ์ํด ๋ง๋ค๊ณ ์๋ค. ๊ทธ๊ฒ์ ๋ํ css์ javascript ํ์ผ๋ค๊ณผ ๊ฐ์ ์ถ๊ฐ์ ์ธ resource๋ค์ ์ค์นํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
CodeSandbox์์ ํ๋ก์ ํธ๋ฅผ ๊บผ๋ด๋ ค๋ฉด ํค๋์ Download ๋ฒํผ์ ํด๋ฆญํ์ฌ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ค. create-react-app ํ ํ๋ฆฟ์ด ํฌํจ๋ zip ํ์ผ์ด ์ ๊ณต๋๋ฉฐ, package.json ๋ฐ index.htm์ด ์์ฑ๋๋ค.
CodeSandbox๋ Sharing๋ฅผ ์ค์ฌ์ผ๋ก ๊ตฌ์ถ๋์๊ณ ์ฒ์๋ถํฐ ์ด ๊ธฐ๋ฅ์ด ๊ฐ์ฅ ์ค์ํ ์ฐ์ ์์์๋ค. ํธ์ง๊ธฐ ๋ชจ๋์ ์ ์ฒด ํ๋ฉด์ผ๋ก ํ๋ก์ ํธ์ ๊ณต์ ๊ฐ ๊ฐ๋ฅํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ๋ก์ ํธ ์์ ์, ํธ์ง๊ธฐ view์์ ์์ ํ์ง๋ง, ๊ทธ ํ๋ก์ ํธ์ ์ ์ฒด ํ๋ฉด ๋ฒ์ ์ ๊ณต์ ํ ์ ์๋ค. ์ ์ฒด ํ๋ฉด ๋ฒ์ ์ ํธ์ง๊ธฐ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ง ์๋ CodeSandbox์ ์์ ๋ฒ์ ์ด๋ค. ํค๋์ ๊ณต์ ์ต์ ์ ํตํด ํ์ํ ํ์ผ ๋ฐ view๋ฅผ ์ง์ ํ ์ ์๋ค.
์ด๋ฌํ ๊ฐ๋ฐ์ ๋๊ตฌ(ํนํ Prettier)๊ฐ ๋น ๋ฅด๊ฒ ์์ ํ๊ธฐ ์ํ ์๊ตฌ ์ฌํญ์ ๋ฐ๊ฒฌํ๋ค. ํ๊ฒฝ ์ค์ ์์ ์ด ๋ชจ๋ ๊ฒ๋ค์ ํ์ฑํ ๋๋ ๋นํ์ฑํ ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค. ๋ค๋ฅธ ํ๋ก์ ํธ์ ์ฝ๋๋ฅผ ์ฝ๊ฒ ์ฝ๋ ๊ฒ์ด ๊ฐ๋ฅํ๊ณ , ํ๋ก์ ํธ ๊ฐ์ ๊ฐ์ ์คํ์ผ์ ์ ์งํ๊ธฐ ๋๋ฌธ์ ์ ์ฅ์ ํ์ธํ๋ ๊ฒ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ ๋์ด์๋ค. ESLint๋ airbnb ์ค์ ์ ๋ฐ๋ฅธ๋ค.
์ง๊ธ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ์ด๊ธฐ ๊ณํ์ ์ธ์ธ ๋ ํ์ํ ๊ธฐ์ด์ด๋ค. ๋ค๋ฅธ ์ฌ๋์ ์์ ์ ํฌํฌํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅ ํ๋ค๋ ์๊ฐ์ผ๋ก CodeSandbox๋ฅผ ๋ง๋ค์๋ค. ์ฐ๋ฆฌ๋ ๋งค์ฐ ๊ฐ๋ ฅํ react ๊ธฐ๋ฅ์ธ, ์ฌ์ฌ์ฉ ๊ฐ๋ฅ์ฑ์ ํ์ฉํ๋ ค๊ณ ํ๋ค.
ํ๋ก์ ํธ๋ฅผ ๋ค๋ฅธ ์ฌ๋๋ค์ด ๊ทธ๋ค์ ํ๋ก์ ํธ์์ ์ฌ์ฌ์ฉํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฝ๊ฒ ๋ฐ๊ฟ ์ ์์ด์ผ ํ๋ค. ์ฌ๋๋ค์ ๊ฐ๋์ด ๋ฃ๋ ๊ฒ์ ์ ๋ ์ํ์ง ์์ผ๋ฏ๋ก, CodeSandbox์์ ์์ฑํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด local์์ ๋ํ ์ค์น๋์ด์ผ ํ๋ค. ๊ทธ๊ฒ์ ์ด๋ฏธ ์ค์ ๋ก ์ง์ํ๊ณ ์์ง๋ง, ๊ณต์ ํ๊ธฐ ์ฝ๋๋ก ์ปค๋ฎค๋ํฐ ๊ธฐ๋ฅ์ ์ง์ํ๊ธฐ ์ ์ ์จ๊ธฐ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์๋ฏธํ๋ฏ๋ก, ๋ฒ์ ์ ์ปค๋ฐํ ์ ์์ด์ผ ํ๊ณ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์์ํค์ง ์๊ณ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐ๋ก ๊ตฌ์ถํ ์ ์์ด์ผ ํ๋ค. fork์ ์ํ branch๋ฅผ ๋ถ๊ธฐํ ์ ์๋ค. ์ฌ์ ํ github๋ก import/export๋ฅผ ์์ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ต์ ์ ์ฐพ๊ณ ์๋ค.
ํค๋์ ๋ฉ๋ด๋ฅผ ํตํด ๋ก๊ทธ์ธํ์ฌ ํ๋ก์ ํธ๋ฅผ ๋ณผ ์ ์์ง๋ง, ํ์ฌ๋ก์๋ ๋งค์ฐ ์ ํ์ ์ด๋ค. ์ฌ๋๋ค์ด ๊ทธ๋ค์ ํ๋ก์ ํธ๋ฅผ ๋ณด์ฌ์ค ์์๋ profile view๋ฅผ ๋ง๋ค๊ณ ์์ผ๋ฉฐ, ๋ค๋ฅธ ์ฌ๋๋ค์ด ํด๋น ํ๋ก์ ํธ์ ๋๊ธ์ ๋ฌ๊ฑฐ๋ ์ฆ๊ฒจ์ฐพ๊ธฐ๋ฅผ ํ ์ ์๋ค. ํ๋ก์ ํธ๋ ์กฐํ์/์ฆ๊ฒจ ์ฐพ๊ธฐ ์์ ๊ฐ์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ป์ต๋๋ค.
์ธ์์ ์ธ ์ํ์ ๋์ ๋์ด์ผํ๋ฏ๋ก, ํํ์ด์ง์ ์ฆ๊ฒจ์ฐพ๊ธฐ ๋๋ ์กฐํ์ ๊ธฐ๋ฅ์ ํตํด ๊ทธ๊ฒ์ด ๊ฐ๋ฅํ๊ฒ ๋๋ค.
์ด ๊ธฐ๋ฅ์ผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ง์์ด ๊ฐ๋ฅํด์ง๋ค. ์๋ ๋ฐ์ค๋ฅผ ๋ง๋ค ๋ ์ฝ๊ฒ ๊ฒ์ ํ ์ ์์ด์ผํฉ๋๋ค. button ๋๋ Interactive Piano, ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ importํ ๋ค๋ฅธ ํ๋ก์ ํธ์ ์๊ฐ์ ๋ชฉ๋ก์ ์ฐธ๊ณ ํ๋ ๋ฑ, ํ๋ก์ ํธ๋ฅผ ๋ง๋ค ๋, ์ฌ์ฉ์๋ ์ฝ๊ฒ ๊ฒ์์ ํ ์ ์์ด์ผ ํ๋ค. importํ ํ๋ก์ ํธ์ ์์ฑ์๋ ์ต์ข ํ๋ก์ ํธ์์ ์๋์ผ๋ก contributor๋ก ์ธ์ ๋๋ค.
โ 2019. BoostCamp Membership Team 4 all rights reserved.