Skip to content

CodeSandbox An online React editor

Woo HyeJu edited this page Nov 12, 2019 · 1 revision
2017.4.13 - โœ๏ธIves van Hoorne

์ผ์ฃผ์ผ ์ „์— ์ด๋ฏธ, BasbUrrsma์™€ ๋‚˜๋Š” react ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ์ ํŠธ ๊ณต์œ ์— ์ค‘์ ์„ ๋‘” ์˜จ๋ผ์ธ ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ์ธ CodeSandbox๋ฅผ ์ถœ์‹œํ–ˆ๋‹ค. ๋ฐ˜์‘์€ ๊ธฐ๋Œ€ ์ด์ƒ์ด์—ˆ๋‹ค. ์ด๋ฏธ 1500๊ฐœ ์ด์ƒ์˜ ์ƒŒ๋“œ๋ฐ•์Šค(ํ”„๋กœ์ ํŠธ)๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ๊ณ , 280๋ช… ์ด์ƒ์˜ ์‚ฌ์šฉ์ž๊ฐ€ github๋ฅผ ํ†ตํ•ด ๋กœ๊ทธ์ธํ–ˆ๋‹ค.

CodeSandbox์˜ ์•„์ด๋””์–ด๋Š” ๋‚ด๊ฐ€ St.Ives๋ฅผ ์—ฌํ–‰ํ•  ๋•Œ ์‹œ์ž‘๋˜์—ˆ๋‹ค. ๋‹น์‹œ ๋‚˜๋Š”, catawiki๋ฅผ react๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…์„ ํ•˜๊ณ ์žˆ์—ˆ๋‹ค. ๋‚ด๊ฐ€ ์—ฌํ–‰์„ ๊ฐ”์„ ๋•Œ, ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋กœ๋ถ€ํ„ฐ react์— ๋Œ€ํ•ด ๋งŽ์€ ์งˆ๋ฌธ์„ ๋ฐ›์•˜์ง€๋งŒ, ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ํŽธ์ง‘๊ธฐ์— ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ ์„œ๋Š” ๋‚ด๊ฐ€ ๊ทธ๋“ค์—๊ฒŒ ๋Œ€๋‹ตํ•  ์–ด๋– ํ•œ ๋ฐฉ๋ฒ•์ด ์—†์—ˆ๋‹ค.

What is CodeSandbox

๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜๋ฉด, ์ฝ”๋“œ์ƒŒ๋“œ๋ฐ•์Šค๋Š” ์˜จ๋ผ์ธ ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ์ด๋‹ค. ๊ทธ๊ฒƒ์€ transpling๊ณผ ๋ฒˆ๋“ค๋ง ๋ฐ ์˜์กด์„ฑ ๊ด€๋ฆฌ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ๋“ค์„ ์ž๋™ํ™”ํ•˜์—ฌ, ํ•œ ๋ฒˆ์˜ ํด๋ฆญ์œผ๋กœ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“  ํ›„์—๋Š” ๋‹จ์ง€ url์„ ๊ณต์œ ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค. CodeSandbox๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ์ฝ”๋“œ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์‹ค์‹œ๊ฐ„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋œ๋‹ค. ํŽธ์ง‘๊ธฐ๋Š” ๋ชจ๋“  javascript ํ”„๋กœ์ ํŠธ์—์„œ ๋™์ž‘ํ•˜์ง€๋งŒ, cra ํ…œํ”Œ๋ฆฟ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ธฐ๋Šฅ๊ณผ ๊ฐ™์€ ์ผ๋ถ€ react์˜ ๊ด€๋ จ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค.

image

Features

์šฐ๋ฆฌ๋Š” ์ง€๋‚œ 4๊ฐœ์›” ๋™์•ˆ CodeSandbox๋ฅผ ์—ฐ๊ตฌํ•ด์™”๊ณ , ๊ทธ๋ž˜์„œ ํ•˜๊ณ ์‹ถ์€ ์ด์•ผ๊ธฐ๋“ค์ด ๋งŽ๋‹ค. CodeSandbox์˜ ๊ฐ€์žฅ ํฐ ๊ธฐ๋Šฅ์„ ์†Œ๊ฐœํ•œ๋‹ค.

npm ์˜์กด์„ฑ

๋งŽ์€ ๋ฒˆ๊ฑฐ๋กœ์›€ ์—†์ด ๋ณ„๋„์˜ ํ™˜๊ฒฝ์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‹œ๋„ํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ์ •๋ง ์ค‘์š”ํ•˜๋‹ค. ํŠน์ •ํ•œ ์˜์กด์„ฑ ์กฐํ•ฉ์— ๋Œ€ํ•ด ์ฆ‰์‹œ ์˜์กด์„ฑ ๋นŒ๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์šฐ๋ฆฌ๋Š” npm ์˜์กด์„ฑ์„ ์ง€์›ํ•œ๋‹ค. WebpackBin ๋˜ํ•œ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ํ˜„์žฌ Christian Alfoni์™€ ํ•จ๊ป˜ ๋ชจ๋‘๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค๊ณ  ์žˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋˜ํ•œ css์™€ javascript ํŒŒ์ผ๋“ค๊ณผ ๊ฐ™์€ ์ถ”๊ฐ€์ ์ธ resource๋“ค์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

image

Downloading

CodeSandbox์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊บผ๋‚ด๋ ค๋ฉด ํ—ค๋”์˜ Download ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. create-react-app ํ…œํ”Œ๋ฆฟ์ด ํฌํ•จ๋œ zip ํŒŒ์ผ์ด ์ œ๊ณต๋˜๋ฉฐ, package.json ๋ฐ index.htm์ด ์ƒ์„ฑ๋œ๋‹ค.

Sharing

CodeSandbox๋Š” Sharing๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ๊ณ  ์ฒ˜์Œ๋ถ€ํ„ฐ ์ด ๊ธฐ๋Šฅ์ด ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์šฐ์„ ์ˆœ์œ„์˜€๋‹ค. ํŽธ์ง‘๊ธฐ ๋ชจ๋“œ์™€ ์ „์ฒด ํ™”๋ฉด์œผ๋กœ ํ”„๋กœ์ ํŠธ์˜ ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ ์ž‘์—… ์‹œ, ํŽธ์ง‘๊ธฐ view์—์„œ ์ž‘์—…ํ•˜์ง€๋งŒ, ๊ทธ ํ”„๋กœ์ ํŠธ์˜ ์ „์ฒด ํ™”๋ฉด ๋ฒ„์ „์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ „์ฒด ํ™”๋ฉด ๋ฒ„์ „์€ ํŽธ์ง‘๊ธฐ์™€ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋งŒ ์žˆ๋Š” CodeSandbox์˜ ์ž‘์€ ๋ฒ„์ „์ด๋‹ค. ํ—ค๋”์˜ ๊ณต์œ  ์˜ต์…˜์„ ํ†ตํ•ด ํ‘œ์‹œํ•  ํŒŒ์ผ ๋ฐ view๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

image

Prettier, prettier-eslint, ESLint and Tern support

์ด๋Ÿฌํ•œ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ(ํŠนํžˆ Prettier)๊ฐ€ ๋น ๋ฅด๊ฒŒ ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ํ™˜๊ฒฝ ์„ค์ •์—์„œ ์ด ๋ชจ๋“  ๊ฒƒ๋“ค์„ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™” ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์˜ ์ฝ”๋“œ๋ฅผ ์‰ฝ๊ฒŒ ์ฝ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๊ณ , ํ”„๋กœ์ ํŠธ ๊ฐ„์˜ ๊ฐ™์€ ์Šคํƒ€์ผ์„ ์œ ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ €์žฅ์‹œ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™” ๋˜์–ด์žˆ๋‹ค. ESLint๋Š” airbnb ์„ค์ •์„ ๋”ฐ๋ฅธ๋‹ค.

image

The Rodamap

์ง€๊ธˆ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ์ดˆ๊ธฐ ๊ณ„ํš์„ ์„ธ์šธ ๋•Œ ํ•„์š”ํ•œ ๊ธฐ์ดˆ์ด๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ž‘์—…์„ ํฌํฌํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅ ํ•˜๋‹ค๋Š” ์ƒ๊ฐ์œผ๋กœ CodeSandbox๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋งค์šฐ ๊ฐ•๋ ฅํ•œ react ๊ธฐ๋Šฅ์ธ, ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ์„ฑ์„ ํ™œ์šฉํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

Publish sandbox as library

ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๋“ค์˜ ํ”„๋กœ์ ํŠธ์—์„œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์‰ฝ๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์‚ฌ๋žŒ๋“ค์„ ๊ฐ€๋‘์–ด ๋„ฃ๋Š” ๊ฒƒ์„ ์ ˆ๋Œ€ ์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, CodeSandbox์—์„œ ์ƒ์„ฑํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ด local์—์„œ ๋˜ํ•œ ์„ค์น˜๋˜์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๊ฒƒ์„ ์ด๋ฏธ ์‹ค์ œ๋กœ ์ง€์›ํ•˜๊ณ  ์žˆ์ง€๋งŒ, ๊ณต์œ ํ•˜๊ธฐ ์‰ฝ๋„๋ก ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๊ธฐ ์ „์— ์ˆจ๊ธฐ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค.

Versioning

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ, ๋ฒ„์ „์„ ์ปค๋ฐ‹ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ณ , ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์†์ƒ์‹œํ‚ค์ง€ ์•Š๊ณ ๋„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€๋กœ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. fork์— ์˜ํ•œ branch๋ฅผ ๋ถ„๊ธฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ์ „ํžˆ github๋กœ import/export๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์˜ต์…˜์„ ์ฐพ๊ณ  ์žˆ๋‹ค.

Better user support

ํ—ค๋”์˜ ๋ฉ”๋‰ด๋ฅผ ํ†ตํ•ด ๋กœ๊ทธ์ธํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ, ํ˜„์žฌ๋กœ์„œ๋Š” ๋งค์šฐ ์ œํ•œ์ ์ด๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๋“ค์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜์žˆ๋Š” profile view๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ์œผ๋ฉฐ, ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์— ๋Œ“๊ธ€์„ ๋‹ฌ๊ฑฐ๋‚˜ ์ฆ๊ฒจ์ฐพ๊ธฐ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋Š” ์กฐํšŒ์ˆ˜/์ฆ๊ฒจ ์ฐพ๊ธฐ ์ˆ˜์™€ ๊ฐ™์€ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

Popular sandboxes

์ธ์ƒ์ ์ธ ์ž‘ํ’ˆ์€ ๋ˆˆ์— ๋„์–ด์•ผํ•˜๋ฏ€๋กœ, ํ™ˆํŽ˜์ด์ง€์˜ ์ฆ๊ฒจ์ฐพ๊ธฐ ๋˜๋Š” ์กฐํšŒ์ˆ˜ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๊ทธ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋œ๋‹ค.

Searching for sandboxes

์ด ๊ธฐ๋Šฅ์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ง€์›์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. ์ƒŒ๋“œ ๋ฐ•์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ ์‰ฝ๊ฒŒ ๊ฒ€์ƒ‰ ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. button ๋˜๋Š” Interactive Piano, ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ importํ•  ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์˜ ์‹œ๊ฐ์  ๋ชฉ๋ก์„ ์ฐธ๊ณ ํ•˜๋Š” ๋“ฑ, ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ, ์‚ฌ์šฉ์ž๋Š” ์‰ฝ๊ฒŒ ๊ฒ€์ƒ‰์„ ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. importํ•œ ํ”„๋กœ์ ํŠธ์˜ ์ƒ์„ฑ์ž๋Š” ์ตœ์ข… ํ”„๋กœ์ ํŠธ์—์„œ ์ž๋™์œผ๋กœ contributor๋กœ ์ธ์ •๋œ๋‹ค.

๊ธฐํš ๐Ÿ’ก
๊ทœ์น™ ๐Ÿ›
API ๋ฌธ์„œ ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป
Style Guides ๐Ÿ“‹
์Šคํ”„๋ฆฐํŠธ ๐Ÿ”–
๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ ๐Ÿ“
์˜ค๋Š˜์˜ ํšŒ๊ณ  โšพ๏ธ
ํšŒ์˜๋ก ๐Ÿ“„

ํšŒ์˜๋ก

๊ธฐ์ˆ ๊ณต์œ  ๐Ÿ”ฅ
Clone this wiki locally