Skip to content

The Future of CodeSandbox

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

์ด๋ฏธ ๊ธฐ์‚ฌ์™€ ํ•จ๊ป˜ CodeSandboxx๋ฅผ ๊ณต์‹์ ์œผ๋กœ ๋ฐœํ‘œํ•œ์ง€ ๋‘ ๋‹ฌ์ด ์ง€๋‚ฌ๋‹ค. ๊ธฐ์‚ฌ์—์„œ ๋ช‡ ๊ฐ€์ง€ ํ†ต๊ณ„๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ์‹œ์ž‘ ํ–ˆ์œผ๋ฏ€๋กœ ์˜ˆ์ „์˜ sake๋ฅผ ์œ„ํ•ด ์ด๊ฒƒ์„ ๋‹ค์‹œ ํ•˜์ž.

CodeSandbox๋Š” ์ง€๋‚œ ๊ธฐ์‚ฌ ํ›„์— ๋งŽ์€ ์ธ๊ธฐ๋ฅผ ์–ป์—ˆ๋‹ค. ๋‘ ๋‹ฌ ์ „์— ์šฐ๋ฆฌ๋Š” 1500๊ฐœ์˜ ํ”„๋กœ์ ํŠธ์™€ 280๋ช…์˜ ์‚ฌ์šฉ์ž๋ฅผ ๊ฐ€์กŒ์œผ๋‚˜, ํ˜„์žฌ ์šฐ๋ฆฌ๋Š” 16000๊ฐœ์˜ ํ”„๋กœ์ ํŠธ์™€ 2300๋ช…์˜ ์œ ์ €๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋งค์ผ 130๋งŒ ๊ฐœ์˜ ์ƒˆ๋กœ์šด ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค. ๋‚ด ๊ธฐ๋Œ€๋ฅผ ๋„˜์–ด์„  ์ด ๊ฒฝ์šฐ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋†€๋ผ์šด ์ผ์ธ์ง€ ์„ค๋ช…ํ•  ์ˆ˜ ์—†๋‹ค. CodeSandbox๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋ฌธ์˜ํ•ด์ค€ ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌํ•˜๋‹ค.

What has been done

์ง€๋‚œ 2.5๊ฐœ์›” ๋™์•ˆ ๊ตฌ์ถ•ํ•œ ๊ฒƒ์— ๋Œ€ํ•ด ํšŒ๊ณ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•˜๊ฒ ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋งŽ์€ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜๊ณ , ๋•๋ถ„์— ๋งŽ์€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ค‘ ์ผ๋ถ€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Profile view

CodeSandbox์—์„œ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์ƒ์„ฑํ•œ ํ”„๋กœ์ ํŠธ์˜ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ชจ๋“  ์‚ฌ์šฉ์ž๋Š” ๋ชจ๋“  ํ”„๋กœ์ ํŠธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” profile view๋ฅผ ๊ฐ–๋Š”๋‹ค. ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ '์ข‹์•„์š”' ํ•˜๊ณ , ๋‚ด ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ฐ›์€ ์กฐํšŒ์ˆ˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

Embeds on Medium

medium์ฒ˜๋Ÿผ, embedly๋ฅผ ์ง€์›ํ•˜๋Š” ํ”Œ๋žซํผ์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‚ด์žฅ ๋œ ํ”„๋กœ์ ํŠธ๋ฅผ ํŽธ์ง‘ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๊ฒƒ์€ medium์—์„œ interactiveํ•œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•œ component tutorial ์ฒ˜๋Ÿผ ๊ฝค ์ฐฝ์กฐ์ ์ธ ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

Improved npm dependency support

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

Vision

CodeSandbox์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋กœ ์ˆ˜์‹ญ ๋ช…์˜ ์‚ฌ๋žŒ๋“ค์ด ์šฐ๋ฆฌ์—๊ฒŒ ์—ฐ๋ฝํ–ˆ์Šต๋‹ˆ๋‹ค. Phil Holden์€ ๋˜ํ•œ CodeSandbox์™€ ๊ฐ™์€ ์˜จ๋ผ์ธ ํŽธ์ง‘๊ธฐ์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋Œ€ํ•œ ๋งค์šฐ ํฅ๋ฏธ๋กœ์šด ๊ธฐ์‚ฌ๋„ ๋ฐœํ‘œํ–ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ์—๊ฒŒ ์˜๊ฐ์„ ์ฃผ์—ˆ๊ณ  ์šฐ๋ฆฌ๋Š” ์ด tool์ด ์ฐฝ์ž‘๋ฌผ์„ ๊ณต์œ ํ•˜๋Š” ํ”Œ๋žซํผ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์€ ์ž ์žฌ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ์„ ๊นจ๋‹ฌ์•˜๋‹ค. ์šฐ๋ฆฌ๋Š” CodeSandbox์˜ ํ–ฅํ›„ ๊ฐœ๋ฐœ์„์œ„ํ•œ ๋‘ ๊ฐ€์ง€ ๋ชฉํ‘œ๋ฅผ ์„ค์ •ํ–ˆ๋‹ค.

1. Make it so easy that a child can use it

CodeSandbox๋ฅผ ์‚ฌ์šฉํ•ด React๋ฅผ ๋ฐฐ์šฐ๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค๋กœ๋ถ€ํ„ฐ ์ˆ˜์‹ญ ๊ฐœ์˜ ์ด๋ฉ”์ผ์„ ๋ฐ›์•˜๋Š”๋ฐ ์ด๋Š” ๋งค์šฐ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. CodeSandbox์™€ ๊ฐ™์€ tool์„ ์‚ฌ์šฉํ•˜๋ฉด bash์˜ ์ž‘๋™ ๋ฐฉ์‹, npm์˜ ์˜๋ฏธ ๋˜๋Š” '๋…ธ๋“œ'์˜ ์˜๋ฏธ๋ฅผ ๋ฐฐ์šธ ํ•„์š”๊ฐ€ ์—†๋‹ค. ๋‹จ์ง€ ์›น ํŽ˜์ด์ง€๋ฅผ ์—ฌ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ํ•ดํ‚น์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ง‰ ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ, ์‚ฌ์šฉ์ž๋“ค์€ ์ด๋Ÿฌํ•œ ์ถ”๊ฐ€ ๊ธฐ์ˆ ์„ ๋จผ์ € ๋ฐฐ์šฐ์ง€ ์•Š๊ณ  ์ฆ‰์‹œ ์žฌ๋ฏธ์žˆ๋Š” ๊ฒƒ๋“ค์„ ์‹œ์ž‘ํ•˜๊ณ  ์‹ถ์–ดํ•œ๋‹ค. ๋ฌผ๋ก  ๊ฒฐ๊ตญ์—๋Š” ๊ทธ๋Ÿฌํ•œ ์ถ”๊ฐ€ ๊ธฐ์ˆ ๋“ค์„ ๋ฐฐ์›Œ์•ผ๊ฒ ์ง€๋งŒ, ์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋•Œ ์ด๋Ÿฌํ•œ ์žฅ์• ๋ฌผ๋“ค์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์€ ๋‹จ์ง€ ์‹œ์ž‘ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ๋‚™๋‹ดํ•˜๊ฒŒ ๋œ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๋” ์ž˜์•Œ๊ฒ ์ง€๋งŒ, ์ดˆ๋ณด์ž์˜ ์ž…์žฅ์—์„œ๋Š” ์ง€์‹์˜ ์ €์ฃผ๋กœ๋ถ€ํ„ฐ ๊ณ ํ†ต๋ฐ›๊ณ , ๊ทธ๊ฒƒ์€ ์ ์  ๋” ์–ด๋ ค์›Œ์ง„๋‹ค. terminal๊ณผ ํŽธ์ง‘๊ธฐ ๊ฐ™์€ ๊ฒƒ์€ ์‚ฌ์†Œํ•œ ์ผ์ด ๋˜์–ด ์šฐ๋ฆฌ๋Š” ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋ช‡์‹œ๊ฐ„ ๋™์•ˆ ๋‹นํ™ฉํ–ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์žŠ๊ฒŒ๋œ๋‹ค.

์ด๋กœ ์ธํ•ด ์šฐ๋ฆฌ๋Š”๋ณด๋‹ค ์•ผ์‹ฌ์ ์ด์ง€๋งŒ ๊ด€๋ จ์„ฑ ๋†’์€ ๋ชฉํ‘œ๋ฅผ ์„ค์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ๋„ˆ๋ฌด ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด ์–ด๋ฆฐ์ด๋„ ์‰ฝ๊ฒŒ ํ•™์Šต์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋กœ ์ธํ•ด ํ™•์‹คํ•˜๊ฒŒ ์šฐ๋ฆฌ๋Š” ๋” ์•ผ์‹ฌ์ฐจ์ง€๋งŒ ๊ณต๊ฐํ•  ์ˆ˜ ์žˆ๋Š”, ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœํ•˜์—ฌ ์‹ฌ์ง€์–ด ์•„์ด๋“ค๋„ ๊ทธ๊ฒƒ์„ ์‰ฝ๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋„๋ก ๋ชฉํ‘œ๋ฅผ ์„ค์ •ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

์ตœ์„ ์˜ ํ•™์Šต ๋ฐฉ๋ฒ•์€ ์‹œํ–‰ ์ฐฉ์˜ค์— ์˜ํ•œ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ์†”๋ฃจ์…˜์„ ์ ์šฉํ•ด์•ผํ•˜๋Š” ์ด์œ ๋ฅผ ๋” ์ž˜ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋ฉด ์†”๋ฃจ์…˜์— ๋Œ€ํ•œ ์ตœ์ƒ์˜ ์ง€์นจ์„ ์ œ์‹œํ•ด์•ผ ํ•œ๋‹ค.

CodeSandbox์˜ ๊ฒฝ์šฐ, ์ด๊ฒƒ์€ ๋ณด๋‹ค ์นœ์ˆ™ํ•œ ์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€ ์ž‘์„ฑ์— ์ง‘์ค‘ํ•˜๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์ œ์•ˆ์‚ฌํ•ญ(๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์†Œ์‹ค)์„ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๊ตฌ์„ฑ์€ ์ตœ์†Œํ•œ์œผ๋กœ ์œ ์ง€๋˜์–ด์•ผ ํ•˜๋ฉฐ, ๊ตฌ์„ฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์šฐ๋ฆฌ๋Š” GUId์—์„œ ์ด๊ฒƒ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์„ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค.

CodeSandbox๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์นœ์ˆ™ํ•œ ํŽธ์ง‘๊ธฐ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋งŽ์€ ๊ฐœ์„ ์ด ์ด๋ฃจ์–ด์กŒ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์—…ํ•˜๋Š” context๋ฅผ ๊ฐ€์ •ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋‹ค๋ฅธ ํŽธ์ง‘๊ธฐ๋ณด๋‹ค ํ›จ์”ฌ ๋” ์œ ์šฉํ•˜๋‹ค. ์ด๊ฒƒ์„ ์šฐ๋ฆฌ์˜ ์žฅ์ ์œผ๋กœ ํ™œ์šฉํ•˜์ž.

2. Make it a place for easily discoverable examples

๋งค์ผ ์•ฝ 300๊ฐœ์˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋“ค์€ ๋ฌด์ˆ˜ํžˆ ๋งŽ์€ ๋‹ค๋ฅธ ๋ชฉ์ ๋“ค๋กœ ์ƒ์„ฑ๋˜์—ˆ์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ๊ณต์œ ๋˜์–ด์•ผ ํ•œ๋‹ค. CodeSandbox์— ๋‚ด์žฅ๋œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—†๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ท€์ค‘ํ•œ ์ •๋ณด์˜ ๊ธˆ๊ด‘์— ์•‰์•„์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ์ •๋ง ๋ถ€๋„๋Ÿฌ์šด ์ผ์ด๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ข‹์€ ์˜ˆ์ด๋‹ค. ์—๋Ÿฌ๋ณด๊ณ  ๋˜๋Š” ๋ฌธ์„œํ™”๋ฅผ ์œ„ํ•ด CodeSandbox๋ฅผ ์‚ฌ์šฉํ•˜๋Š” redux-form, glamorous, mobx, apollo-client, css-constructor ๋ฐ react-day-picker์™€ ๊ฐ™์€ ๋ฉ‹์ง„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ด๋ฏธ ์žˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ €์ž๊ฐ€ ์“ด ๊ท€์ค‘ํ•œ ์ฝ˜ํ…์ธ ๊ฐ€ ์žˆ์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์˜ˆ์ œ๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—†๋‹ค.

๋˜ํ•œ React์— ๋Œ€ํ•œ ์ˆ˜์—…์ด ์žˆ๋Š” ์ˆ˜์‹ญ ๊ฐœ์˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PureComponent์™€ Component์˜ ์ฐจ์ด์  ๋˜๋Š” react-router๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ delayed navigation์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ฐ™์€ ๊ฐœ๋…์„ ๊ฐ€๋ฅด์นœ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋“ค์€ ์ข…์ข… Reactiflux ๋˜๋Š” Twitter์—์„œ ๊ณต์œ ๋˜์ง€๋งŒ, CodeSandbox๋ฅผ ํ†ตํ•ด ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋”์šฑ ์ข‹์„ ๊ฒƒ์ด๋‹ค.

์šฐ๋ฆฌ๋Š” ๊ณ ๊ธ‰ ๊ฒ€์ƒ ๊ธฐ๋Šฅ์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค. ๊ทธ ๊ธฐ๋Šฅ์€ ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ๊ณ , ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค„ ๊ฒƒ์ด๋‹ค.

New Features

์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์—†๋Š” CodeSandbox ๊ฒŒ์‹œ๋ฌผ์€ CodeSandbox ๊ฒŒ์‹œ๋ฌผ์ด ์•„๋‹ˆ๋‹ค. CodeSandbox์— ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๋‘ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์ถœ์‹œ ๋˜์—ˆ๋‹ค.

Import from GitHub

github์—์„œ importํ•˜๋Š” ๊ฒƒ์€ ๋งŽ์€ ์š”์ฒญ์„ ๋ฐ›์€ ๊ธฐ๋Šฅ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด์ œ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ตฌํ˜„์€ ๊ฝค ๊ฐ„๋‹จํ•˜๋‹ค. github URL์„ ์„ ํƒํ•˜๊ณ  github.com์„ codesandbox.io/s/github ๋กœ ๋ฐ”๊พธ๋ฉด ํ•ด๋‹น ๊ฒฝ๋กœ๊ฐ€ git ์ €์žฅ์†Œ๋ฅผ ํ†ตํ•ด ์ž๋™์œผ๋กœ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€๋˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

ํ˜„์žฌ๋Š” ๊ณต์‹์ ์œผ๋กœ CodeSandbox์—์„œ create-react-app ํ”„๋กœ์ ํŠธ๋งŒ ์ง€์›ํ•œ๋‹ค. ์ด๊ฒƒ์€ ์•„๋งˆ๋„ github์˜ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

CodeSandbox CLI

CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ create-react-app ํ”„๋กœ์ ํŠธ๋ฅผ ์—…๋กœ๋“œ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ํ”„๋กœ์ ํŠธ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋ฉด, ์ด์ œ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ CodeSandbox์— ์‰ฝ๊ฒŒ ์—…๋กœ๋“œํ•˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋„์›€์„ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜๋Š” ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒฝ์šฐ, ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ์‚ฌ๋ก€๋ฅผ CodeSandbox์— ์‰ฝ๊ฒŒ ์—…๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

CLI๋Š” yarn ๋˜๋Š” npm์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

npm i -g codesandbox

ํ”„๋กœ์ ํŠธ๋ฅผ ์—…๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜์—ฌ codesandbox ./๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—…๋กœ๋“œ๋˜๊ณ  ๋‚˜๋ฉด ํ”„๋กœ์ ํŠธ์˜ URL์ด ์ œ๊ณต๋œ๋‹ค. CLI ์†Œ์Šค๋Š” ์—ฌ๊ธฐ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

What will come

๋‹ค๊ฐ€์˜ค๋Š” ์—ฌ๋ฆ„์˜ ๋กœ๋“œ๋งต์— ๋งŽ์€ ๋‚ด์šฉ์ด ์žˆ๋‹ค. ํŽธ์ง‘๊ธฐ๋ฅผ ๋ณด๋‹ค ์‚ฌ์šฉ์ž ์นœํ™”์ ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์‹œ๊ฐ„์„ ์ง‘์ค‘ํ•˜๊ณ  ์‹ถ๋‹ค. ๋˜ํ•œ ์•ž์œผ๋กœ ๋ช‡ ๋‹ฌ ์•ˆ์— ๊ตฌํ˜„ ๋  ๊ธฐ๋Šฅ ๋ชฉ๋ก๋„ ์žˆ๋‹ค. ์ฃผ์š” ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Search using Algolia

๋‚˜๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•ด ๋งค์šฐ ๊ธฐ์˜๊ฒŒ ์ƒ๊ฐํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ๋“ค์˜ ๊ฒ€์ƒ‰์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด Algolia์™€ ํ˜‘๋ ฅํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋‹ค. ์ด๊ฒƒ์€ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ์— ๋งŽ์€ ๋„์›€์ด ๋œ๋‹ค. ๊ตฌ์ฒด์ ์ธ ์˜ˆ๋กœ, redux-form์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ ์‹ถ๋‹ค๊ณ  ํ•ด๋ณด์ž. ์ด๋ฒˆ์— ๋„์ž…ํ•  ์ƒˆ๋กœ์šด ๊ฒ€์ƒ‰์œผ๋กœ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ์šฐ๋ฆฌ๋Š” CodeSandbox๋ฅผ React ์˜ˆ์ œ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์ค‘์•™ ์œ„์น˜๋กœ ๋ฐ”๊พธ๊ธฐ๋ฅผ ํฌ๋งํ•œ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ์ ํŠธ๋“ค์— ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

Deploy with ZEIT Now

๋˜ํ•œ ZEIT์™€ ํ•จ๊ป˜ Now๋ฅผ ํ”„๋กœ์ ํŠธ์™€ ํ†ตํ•ฉํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ๋‹ค. Now์˜ ๋งˆ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฒ„์ „์„ ๋ฐฐํฌ์šฉ์œผ๋กœ ๋ฐœ์ „์‹œํ‚ค๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ์ •๋ง ๋ฉ‹์ง€๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด์ œ๋Š” CodeSandbox์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋นŒ๋“œ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด ์ž‘์—…์€ ์ด๋ฏธ ์ˆ˜ํ–‰๋˜์—ˆ์ง€๋งŒ ๋ฐฐํฌ ๊ณผ์ •์—์„œ ๋ˆ„๋ฝ๋˜์—ˆ๋‹ค. ZEIT์˜ ์‚ฌ๋žŒ๋“ค์€ ๋งŽ์€ ๋„์›€์ด ๋˜๊ณ , ์šฐ๋ฆฌ์™€ ๊ฐ™์€ ๋น„์ „์„ ๊ณต์œ ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ์ •๋ง ์ข‹๋‹ค.

Static file support

์ •์  ํŒŒ์ผ ์ง€์›์ด ์—†์œผ๋ฏ€๋กœ CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—…๋กœ๋“œ ํ•  ๋•Œ, ์•„์ง ๊ณต์šฉ ํด๋”๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ์ด๊ฒƒ์€ ๋งŽ์€ ์š”์ฒญ์ด ์žˆ์—ˆ๊ณ  ๊ณง ์ถ”๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ํ”„๋กœ์ ํŠธ์—์„œ ํ˜ธ์ŠคํŠธ ์ด๋ฏธ์ง€์™€ ๋‹ค๋ฅธ binaries๋ฅผ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

Pricing

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ 'CodeSandbox Pro'๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๋Š” ์ •์  ํŒŒ์ผ ํ˜ธ์ŠคํŒ… ๋ฐ ํ…œํ”Œ๋ฆฟ์˜ ์„œ๋ฒ„ ๋น„์šฉ์— ์–ด๋А ์ •๋„ ๊ธฐ์—ฌํ•œ๋‹ค. ์ „๋ฐ˜์ ์ธ ๊ฒฝํ—˜์— ์ œํ•œ์„ ๋‘๊ณ  ์‹ถ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, CodeSandbox Pro๋Š” ์ „์ ์œผ๋กœ ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. CodeSandbox Pro๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด privateํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ์ •์  ํŒŒ์ผ์„ ์œ„ํ•ด ๋” ๋งŽ์€ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„์ด๋””์–ด๋Š” ๋งค์›” ๊ธˆ์•ก์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๊ณ , ํŠน์ • ์ตœ์†Œ ๊ธˆ์•ก ์ด์ƒ์„ ๊ธฐ๋ถ€ํ•˜๋Š” ํ•œ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์•„์ง ์ตœ์†Œ๊ฐ’์„ ๊ฒฐ์ •ํ•˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ ์ €๋ ดํ•œ ๊ฐ€๊ฒฉ์ด๋˜๋„๋ก ๋ณด์žฅ ํ•  ๊ฒƒ์ด๋‹ค.

Templates

ํ˜„์žฌ๋Š” create-react-app ํ…œํ”Œ๋ฆฟ์„ ๋”ฐ๋ฅด๋Š” ํ”„๋กœ์ ํŠธ๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” vue-cli๋กœ ์‹œ์ž‘ํ•˜์—ฌ ๋‹ค๋ฅธ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ํ™•์žฅํ•˜๊ณ  ์‹ถ๋‹ค. ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•  ํŠน์ •ํ•œ ํ…œํ”Œ๋ฆฟ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํ…œํ”Œ๋ฆฟ์— ๋”ฐ๋ผ ํŽธ์ง‘๊ธฐ ๋ฐ ์ƒ‰์ƒ๋„ ๊ทธ์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋œ๋‹ค. ์ฃผ์š” ์š”๊ตฌ ์‚ฌํ•ญ์€ ์—ฌ์ „ํžˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์„ค์ •์ด ์ „ํ˜€ ์—†์–ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ์€ ๋‹ค์šด๋กœ๋“œ ๋œ ์ƒŒ๋“œ ๋ฐ•์Šค์—๋„ ์ ์šฉ๋œ๋‹ค.

We're open source!

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

ํšŒ์˜๋ก

๊ธฐ์ˆ ๊ณต์œ  ๐Ÿ”ฅ

Clone this wiki locally