shlewislee.me

๐Ÿ’ป ๊ตฐ๋Œ€์—์„œ ์ฝ”๋”ฉํ•˜๊ธฐ

Update: ๋‚˜๋‚ ์ด ๊ด€๋ จ ์„œ๋น„์Šค๊ฐ€ ๋Š˜์–ด๋‚˜๊ณ  ์ „์—ญ ํ›„์—๋„ ๋น„์Šทํ•œ ์„œ๋น„์Šค๋“ค์„ ๋งŽ์ด ์‚ฌ์šฉํ•ด๋ณธ ๊ฒฐ๊ณผ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ Gitpod์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ssh + neovim์œผ๋กœ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.

20๋…„ 8์›”์— ์ž…๋Œ€ํ•˜๊ณ ๋‚˜์„œ๋ถ€ํ„ฐ ๊ทผ 1๋…„์ด ์ง€๋‚œ ์ง€๊ธˆ๊นŒ์ง€, ์‚ฌ์ง€๋ฐฉ์—์„œ ์ฝ”๋”ฉํ•˜๊ธฐ๋Š” ํ•ญ์ƒ ์—ฌ๋Ÿฌ ๋ถˆํŽธํ•จ๊ณผ ์–ด๋ ค์›€์ด ์žˆ์—ˆ๋‹ค. (์ ์–ด๋„ ์›น/์„œ๋ฒ„ ๊ฐœ๋ฐœ์—์„œ๋Š”) ์›ฌ๋งŒํ•œ ๊ฐœ๋ฐœ๋„๊ตฌ๋“ค์ด๋‚˜ ๋ฐฉ๋ฒ•๋“ค์ด ๋ง‰ํ˜€์žˆ๊ณ , ์–ด์ฐŒ์–ด์ฐŒ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋‚ด๋„ ํ•ญ์ƒ ์•„์‰ฌ์šด ๋ถ€๋ถ„์ด ์žˆ์–ด์™”๋˜ ๊ฒƒ ๊ฐ™๋‹ค. 21๋…„ 1์›”์— ์ฒ˜์Œ ์ž‘์„ฑ๋œ ์ด ๊ธ€์€ ์ฒ˜์Œ์—๋Š” code-server๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ–ˆ์—ˆ๋‹ค. ์—ฌ์ „ํžˆ code-server๋Š” ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๊ณ , ๋‚ด ์ƒํ™ฉ์— ๊ฐ€์žฅ ์ž˜ ๋งž๋Š” ๋„๊ตฌ์ด๋‹ค. ํ•˜์ง€๋งŒ code-server๋ง๊ณ ๋„ ์‹œ๋„ํ•ด๋ดค๋˜ ๋งŽ์€ ๋ฐฉ๋ฒ•๋“ค์ด ์žˆ๊ณ , ๊ฐœ์ค‘์—๋Š” ์ •๋ง ์ข‹์ง€๋งŒ ๋‚˜์—๊ฒŒ๋งŒ ๋งž์ง€ ์•Š์•˜๋˜ ๊ฒƒ๋“ค๋„ ๋งŽ์•˜๋‹ค. 21๋…„ 8์›”์— ์ƒˆ๋กœ ์ž‘์„ฑํ•˜๋Š” ์ด ๊ธ€์—์„œ๋Š” ์‹œ๋„ํ•ด๋ดค๋˜ ๋ฐฉ๋ฒ•๋“ค์„ ๊ธฐ๊ฐ„์ˆœ์œผ๋กœ ๋‚˜์—ดํ•ด๋ดค๋‹ค.

๊ธ€์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋‚˜์˜ ์š”๊ตฌ์‚ฌํ•ญ๋“ค์„ ๋ช‡๊ฐ€์ง€ ์งš๊ณ  ๋„˜์–ด๊ฐ€๊ณ ์žํ•œ๋‹ค.

๊ทธ๋‹ฅ ์–ด๋ ค์šด ์š”๊ตฌ์กฐ๊ฑด์ด ์•„๋‹Œ ๊ฒƒ ๊ฐ™์ง€๋งŒ, ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๊ธฐ ์‰ฝ์ง€ ์•Š์•˜๋‹ค.

VSCode

๊ฐ€์žฅ ๋จผ์ € ์‹œ๋„ํ–ˆ๋˜ ๊ฒƒ์ด๋‹ค. ๋จผ์ € ์‚ฌ์ง€๋ฐฉ์—๋Œ€ํ•ด ์–˜๊ธฐํ•˜์ž๋ฉด, ํ•˜๋ชจ๋‹ˆ์นดOS์™€ ์œˆ๋„์šฐ PC๊ฐ€ ๋‚˜๋‰˜์–ด์ ธ์žˆ๋‹ค. ์œˆ๋„์šฐ์—๋Œ€ํ•œ ์˜์กด์„ ๋‚ฎ์ถ”๊ฒ ๋‹ค๋Š” ์ทจ์ง€๋Š” ์ข‹๋‹ค๋งŒ, sudo๋ฅผ ์“ฐ์ง€ ๋ชปํ•˜๋‹ˆ ์•„๋ฌด๊ฒƒ๋„ ๋ชปํ•œ๋‹ค. git, venv๋Š” ์ปค๋…• pip๋„ ์•ˆ๋œ๋‹ค. ์œˆ๋„์šฐ๋Š” ๊ทธ๋‚˜๋งˆ git์ •๋„๋Š” ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด์žˆ์ง€๋งŒ, ์—ญ์‹œ๋‚˜ ๋‚ด๋ถ€์—์„œ ๊ถŒํ•œ ์„ค์ •์œผ๋กœ Extension์ด ์„ค์น˜๊ฐ€ ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ๋“ฑ์ด ์ƒ๊ธด๋‹ค.

SSH/SFTP Remote๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Extension์„ ์„ค์น˜ํ•  ์ˆ˜๋„ ์—†๊ฑฐ๋‹ˆ์™€(์ˆ˜๋™์„ค์น˜๋„ ์•ˆ๋œ๋‹ค), 80/443์„ ์ œ์™ธํ•œ ํฌํŠธ๊ฐ€ ์‚ฌ์‹ค์ƒ ์ „๋ถ€ ๋ง‰ํ˜€์žˆ๋‹ค. ํ•˜๋ชจ๋‹ˆ์นดOS์— ๊ธฐ๋ณธ์„ค์น˜๋˜์–ด์žˆ๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•˜๋ฉด ์กฐ๊ธˆ ์›ƒ๊ธฐ๋‹ค. ์ฃผ์š” ๊ธฐ๋Šฅ์„ ์ „๋ถ€ ๋ง‰์•„๋‘๊ณ โ€ฆ ๊ทธ๋ž˜๋„ HTML/CSS/JS๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ์ง€์ž‘๊ฑฐ๋ฆฌ๊ธฐ์—” ์ œ์ผ ์ข‹๋‹ค. ๋ฌผ๋ก  JS๋Š” node๊ฐ€ ์•ˆ๋˜๋‹ˆ ์š”์ฆ˜์œผ๋กœ๋ณด๋ฉด ๋ฐ˜์ชฝ์งœ๋ฆฌ๋„ ๋ชป๋˜์ง€๋งŒโ€ฆ

Pros

Cons

Codeanywhere

codeanywhere

Cloud IDE๋ผ๊ณ  ์ž์‹ ์žˆ๊ฒŒ ํ™๋ณดํ•˜๋Š” Codeanywhere์ด๋‹ค. ๋งŒ์•ฝ ์›น๊ฐœ๋ฐœ์„ ํ•˜๊ณ ์‹ถ๋‹ค๋ฉด, ๊ทธ๋Ÿฌ๋ฉด์„œ ๊ฐœ์ธ ์„œ๋ฒ„๊ฐ€ ์—†๋‹ค๋ฉด ๊ฐ€์žฅ ์ข‹์€ ์˜ต์…˜์ธ ๊ฒƒ ๊ฐ™๋‹ค. ๊ฐ€์žฅ ํฐ ํŠน์ง•์œผ๋กœ๋Š” Container ์ง€์›์ด๋‹ค. ์ž์ฒด Container๋ฅผ ์ง€์›ํ•ด์„œ ๋…๋ฆฝ๋œ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ๊ฐœ์ธ์„œ๋ฒ„ ์—†์ด๋„ ์“ธ ์ˆ˜ ์žˆ๋‹ค. Python, Ruby, LAMP ๋“ฑ ๋‹ค์–‘ํ•œ Container๋“ค์ด ์žˆ์–ด์„œ ์‚ฌ์šฉ๋„ ํŽธ๋ฆฌํ•˜๋‹ค.

์—๋””ํ„ฐ๋˜ํ•œ ๊ธฐ์กด์˜ ์ •์ฒด๋ฅผ ์•Œ ์ˆ˜ ์—†๋Š” VSCode๋ž‘ ๋น„์Šทํ•˜์ง€๋งŒ ์‚ฌ๋ญ‡ ๋‹ค๋ฅธ ์ž์ฒด ์—๋””ํ„ฐ๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ๋Š”๋ฐ, VSCode ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœํŽธํ–ˆ๋‹ค๊ณ ํ•œ๋‹ค(์‚ฌ์šฉํ•ด๋ณธ ์ ์€ ์—†๋‹ค). VSCode๊ฐ€ ์•„๋‹ˆ๋ฉด ์•ˆ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, ๊ธฐ์กด์˜ ๊ฒƒ์ด ๋„ˆ๋ฌด ๋ถˆํŽธํ–ˆ๋Š”๋ฐ ํฐ ๋ฐœ์ „์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. SFTP๋„ ์ง€์›ํ•˜๋‹ˆ ๊ฐœ์ธ ์„œ๋ฒ„๊ฐ€ ์žˆ๋‹ค๋ฉด ์•„์ฃผ ํŽธํ•  ๊ฒƒ์ด๋‹ค.

๋‹จ์ ์€ ์œ ๋ฃŒ์ธ ๊ฒƒ. ๋ฌผ๋ก  ์ถ”ํ›„์— ๋‚˜์˜ฌ selfhosting ๋ฐฉ์‹๋“ค๋„ ๊ฒฐ๊ตญ ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•˜๋‹ˆ ์œ ๋ฃŒ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ ์™„์ „ํ•œ ๊ฐœ์ธ ์„œ๋ฒ„๋ฅผ ๊ฐ€์ง€๋Š” ๊ฒƒ๊ณผ IDE๋‚ด์˜ Container๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ํฐ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. ์›”๊ฐ„ ๊ฒฐ์ œ ๊ธฐ์ค€ ๊ฐ€์žฅ ์ €๋ ดํ•œ $6์งœ๋ฆฌ Plan์€ Container๋ฅผ ๊ณ„์† ์ผœ๋‘˜ ์ˆ˜๋„ ์—†๊ฒŒ ๋˜์–ด์žˆ๋‹ค. ๊ผญ ๊ณ„์† ์ผœ๋‘˜ ํ•„์š”๋Š” ์—†์„ ํ™•๋ฅ ์ด ๋†’์ง€๋งŒ, ๊ฝค๋‚˜ ๋ถˆํŽธํ•  ๊ฒƒ ๊ฐ™๋‹ค. $6๋ฉด Linode๊ฐ™์€ ๊ณณ์—์„œ ๊ฐ€์žฅ ์‹ผ VPS๋ฅผ ๋Œ€์—ฌํ•˜๊ณ ๋„ ์กฐ๊ธˆ ๋‚จ๋Š”๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„์˜ Plan์€ $15๋‹ฌ๋Ÿฌ์ด๋‹ค. ์—ฐ๊ฐ„์œผ๋กœํ•˜๋ฉด ์‹ธ๋‹ค๋งŒ…

์ด๋ฐ–์˜ ์—ฌํƒ€ Cloud IDE๋„ Codeanywhere์™€ ๋น„์Šท๋น„์Šทํ•œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต ํ•  ๊ฒƒ์ด๋‹ค. ๋‹ค๋งŒ ๋‚˜๋Š” ์ด๋ฏธ ์„œ๋ฒ„๋ฅผ ์šด์šฉ์ค‘์ด๋ผ ๊ตณ์ด ์ถ”๊ฐ€๋กœ ๋ˆ์„ ๋‚ด์„œ ์‚ฌ์šฉํ•  ๋ฉ”๋ฆฌํŠธ๊ฐ€ ์—†์—ˆ๋‹ค. SFTP๋Š” ์ •๋ง ํŽธ๋ฆฌํ–ˆ๋‹ค. ์‚ฌ์‹ค ์ด๋Ÿฐ ๋ฌธ์ œ๋Š” ๊ฒฐ๊ตญ 3rd party solution์„ ์œ ๋ฃŒ ์‚ฌ์šฉ ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ๊น”๋”ํ•œ ๋ฐฉ๋ฒ•์ด๋ผ๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๊ฒŒ ํ•ด์ค€๋‹ค.

Pros

Cons

code-server

codeserver

VSCode๋ฅผ ์›น์— ํ˜ธ์ŠคํŒ… ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ด๋‹ค. ์ง€๊ธˆ ๋‚ด๊ฐ€ ์ œ์ผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๊ธฐ๋„ ํ•˜๋‹ค. ๊ตฐ๋”๋”๊ธฐ์—†์ด VSCode์— ์žˆ๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ง€์›ํ•œ๋‹ค. Extension๋“ค์€ ๊ฐ„ํ˜น ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ๋“ค๋„ ์žˆ์ง€๋งŒ(์˜ˆ๋ฅผ๋“ค์–ด SFTP Remote, ์ตœ๊ทผ๋ฐ Issue๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ ๊ฐ™๊ธด ํ•˜๋‹ค) ์ œ์ผ ๋ฏฟ์Œ์งํ•˜๋ฉด์„œ๋„ ์žˆ๋Š” ์„œ๋ฒ„์— ์Šค์Šค๋กœ ํ˜ธ์ŠคํŒ… ํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ข‹๋‹ค. Docker/.sh ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„ค์น˜๋„ ๊ฐ„๋‹จํ•˜๋‹ค. ๋‹ค๋งŒ ๊ฐœ์ธ์„œ๋ฒ„๋ผ ๊ฐ€๋œฉ์ด๋‚˜ ์ทจ์•ฝํ•œ ๋ณด์•ˆ์ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฟ์ธ ์ž์ฒด๋ณด์•ˆ์œผ๋กœ ๋”์šฑ ๋ถˆ์•ˆํ•ด์ง„๋‹ค. Terminal access๊นŒ์ง€ ์žˆ๋Š”๋ฐ ์ถ”๊ฐ€์ ์ธ ๋ณด์•ˆ์„ ํ•˜๊ธฐ๊ฐ€ ๊นŒ๋‹ค๋กญ๋‹ค. OAuth Proxy๋“ฑ์œผ๋กœ ์ถ”๊ฐ€ ๋ณด์•ˆ์„ ํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ๊ธฐ๋ณธ์ ์œผ๋กœ ํฐ ๊ตฌ๋ฉ์ด ์ƒ๊ธฐ๋Š” ๊ฒƒ์€ ์–ด์ฉ” ์ˆ˜ ์—†๋‹ค. ๊ฐ€๋Šฅํ•˜๋ฉด Zerotier๋“ฑ์„ ์‚ฌ์šฉํ•ด์„œ ์™ธ๋ถ€์ ‘๊ทผ์„ ์ œํ•œํ•˜๋ฉด ์ข‹๊ฒ ์ง€๋งŒ, ์‚ฌ์ง€๋ฐฉ์€ ๋„คํŠธ์›Œํฌ ๊ด€๋ จํ•œ ๋ณ€๊ฒฝ์€ ์ผ์ฒด ๊ธˆ์ง€๋‹ค.

์ฐธ๊ณ ๋กœ 1GB ๋žจ์œผ๋กœ๋Š” ๋ฒ„๊ฑฐ์šด ๋“ฏ ํ–ˆ๋‹ค. $5 VPS๋กœ๋Š” ๋ฌด๋ฆฌ๋ผ๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฏธ ์„œ๋ฒ„๊ฐ€ ์žˆ๊ณ , ๋ˆ์„ ๋‚ด๊ณ ์‹ถ์ง€ ์•Š๋‹ค๋ฉด Codeanywhere(๊ธฐํƒ€ CloudIDE) ๋‹ค์Œ์œผ๋กœ ๊ณ ๋ คํ•ด๋ณผ๋งŒํ•œ ์˜ต์…˜์ด๋‹ค.

์‚ฌ์šฉํ•ด๋ณธ์ ์€ ์—†์ง€๋งŒ Theia๋ผ๋Š” IDE๋„ ์žˆ๋‹ค. ์—ญ์‹œ opensource์ด๊ณ , VSCode์™€๋Š” ๋‹ค๋ฅด๊ฒŒ Cloud์‚ฌ์šฉ์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณ ๋ คํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง„ IDE์ด๋‹ค. VSCode์™€ ๋Œ€์ฒด๋กœ ์œ ์‚ฌํ•˜๋‹ค. VSCode Extension๋„ ์ง€์›ํ•œ๋‹ค. code-server์˜ ์™„์„ฑ๋„๋„ ์ถฉ๋ถ„ํžˆ ๋†’์ง€๋งŒ Native๋กœ Cloud๋ฅผ ์ง€์›ํ•œ๋‹ค๋Š” ์ ์€ ๋งค๋ ฅ์ ์ด๋ผ, ์–ธ์  ๊ฐ€ ํ•œ๋ฒˆ์€ ์‚ฌ์šฉํ•ด ๋ณผ ๋“ฏ ํ•˜๋‹ค.

Pros

Cons

Gitpod

gitpod

์ฝ”๋”ฉ์„ ๋ฐฐ์›Œ๊ฐ€๋ฉด์„œ ํ•˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋ฉด, Gitpod๋„ ์ •๋ง ํ›Œ๋ฅญํ•˜๋‹ค. ๋‹น์žฅ ์•„๋ฌด Github Repository(Gitlab, Bitbucket๋„ ๋œ๋‹ค) ๋งํฌ์— gitpod.io/#๋ฅผ ๋ถ™์ด๋ฉด Gitpod IDE์—์„œ ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์›”๊ฐ„ 100์‹œ๊ฐ„์ด ๋ฌด๋ฃŒ์ด๊ณ (์–ด๋А ํŽ˜์ด์ง€์—์„œ๋Š” 50์‹œ๊ฐ„์ด๋ผ๊ณ  ๋‚˜์˜ค๋Š”๋ฐ, ์–ด๋–ค๊ฒƒ์ด ๋งž๋Š”์ง„ ๋ชจ๋ฅด๊ฒ ๋‹ค), ์—ญ์‹œ๋‚˜ VSCode ๊ธฐ๋ฐ˜์ด๋‹ค(๊ธฐ์กด์—” Theia๋ฅผ ์‚ฌ์šฉ์ค‘์ด์—ˆ์ง€๋งŒ, ์ง€๊ธˆ์€ ์ง€์›์ข…๋ฃŒ์˜ˆ์ •์ด๋ผํ•œ๋‹ค). 30๋ถ„๋™์•ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด Workspace๊ฐ€ ๋‹ซํžŒ๋‹ค๊ฑฐ๋‚˜ํ•˜๋Š” ์ œ์•ฝ์ด ์žˆ์ง€๋งŒ, ๋ฌด๋ฃŒ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์ œ๊ณต์—, Github์™€ ์™„๋ฒฝํžˆ ํ˜ธํ™˜๋œ๋‹ค๋Š” ๊ฒƒ์€ ํฐ ๋ฉ”๋ฆฌํŠธ์ด๋‹ค. ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•œ๋‹ค๋ฉด ์•„์ฃผ ์ข‹์€ ์˜ต์…˜์ด๋‹ค. ์‹œ๊ฐ„์ œํ•œ์ด ์กฐ๊ธˆ ๊ฑธ๋ฆฐ๋‹ค๋งŒ, ๋‹ค ์“ฐ๋ ค๋ฉด ๊ฝค ๊ฑธ๋ฆด ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•˜๋‹ค. ๋ฌด์ œํ•œ์€ Codeanywhere๋ณด๋‹ค ๋น„์‹ธ์ง„๋‹ค.

๊ตฐ๋Œ€์˜ค๊ธฐ์ „์— ๊ด€๋ฆฌํ•˜๋˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ •๋„๋กœ๋Š” ์ตœ๊ณ ์ธ ๊ฒƒ ๊ฐ™๋‹ค.

Pros

Cons

์›๊ฒฉ ๋ฐ์Šคํฌํ†ฑ

์‚ฌ์‹ค ์‚ฌํšŒ์— ์žˆ์„๋•Œ์—๋Š” Parsec, RDP๋ฅผ ์‚ฌ์šฉํ•œ ์›๊ฒฉ์ ‘์†์„ ๋งŽ์ด ์‚ฌ์šฉํ–ˆ๋‹ค. ์–ด๋””์„œ๋“  ๊ฐ™์€ ๊ฐœ๋ฐœํ™˜๊ฒฝ์ด๋ฉด์„œ๋„, ๋กœ์ปฌ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ๋•Œ๋ฌธ์— ๋”ฐ์ง€๊ณ ๋ณด๋ฉด ๊ถ๊ทน์˜ Cloud ๊ฐœ๋ฐœํ™˜๊ฒฝ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋จผ์ € RDP๋Š” ํฌํŠธ๊ฐ€ ๋ง‰ํ˜€์žˆ๊ธฐ๋„ ํ•˜๊ณ , UDP๋„ ์ง€์›์•ˆํ•˜๊ณ , ๊ฒฐ์ •์ ์œผ๋กœ ์›๊ฒฉ์ ‘์†์€ ํ•˜๋ฉด ์•ˆ๋˜๋Š”๊ฑฐ๋‹ค. ๋ฌผ๋ก  Guacamole๊ฐ™์€๊ฑธ ์“ฐ๋ฉด ๋ฌธ์ œ๋Š” ์—†์„ ๊ฒƒ ๊ฐ™์ง€๋งŒ, ๋งŒ์กฑ์Šค๋Ÿฝ๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ์—” ๋„ˆ๋ฌด ๋А๋ ธ๊ณ , ์ข€ ๋ฒˆ๊ฑฐ๋กœ์šด ๊ฒƒ์ด ์•„๋‹ˆ์—ˆ๋‹ค. ๊ตฐ๋Œ€์˜ค๊ธฐ์ „์— ์ง‘์— Wol์„ ์„ค์ •ํ•ด๋‘๊ณ  ์˜ค๊ธดํ–ˆ๋Š”๋ฐ, ์—ฌ๋Ÿฌ ์ด์œ ๋กœ ๊ณต์œ ๊ธฐ๋ฅผ ๋–ผ์–ด๋‚ด์•ผํ–ˆ๊ณ , ์‚ฌ์‹ค์ƒ ์‚ฌ์šฉํ•˜๊ธฐ ๋ถˆ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค.

Pros

Cons

Google Colaboratory

colaboratory

Google Colaboratory๋Š” ํŒŒ์ด์ฌ, ํŠนํžˆ Jupyter๋ฅผ ์‚ฌ์šฉํ•œ ๋จธ์‹ ๋Ÿฌ๋‹/๋ฐ์ดํ„ฐ๋ถ„์„์„ ํ•œ๋‹ค๋ฉด ๊ฐ€์žฅ ์ข‹์€ ์„ ํƒ์ง€์ด๋‹ค. Jupyter๋ฅผ Selfhost ํ•  ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ, ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ์šฉ์œผ๋กœ๋Š” ๋ฌด๋ฃŒ์ด๊ณ , ๋„ˆ๋ฌด๋‚˜๋„ ํŽธํ•ด์„œ ๊ตณ์ด ๊ทธ๋ ‡๊ฒŒ ํ•  ํ•„์š”์„ฑ์ด ์žˆ๋‚˜ ์‹ถ๋‹ค. ๋‚ด ์‚ฌ์šฉ์ฒ˜์—๋Š” ๋งž์ง€ ์•Š์ง€๋งŒ, ์ด ๋ถ„์•ผ์—์„œ๋Š” ๋Œ€์ฒด์ œ๊ฐ€ ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

Pros

Cons

๊ธฐํƒ€

appsscript

๊ตฐ๋Œ€์— ์˜จ ์ฐธ์— Google Apps Script๋‚˜ Excel VBA๋ฅผ ๋ฐฐ์›Œ๋ณด๋Š” ๊ฒƒ๋„ ๋‚˜์˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™๋‹ค. ๋‘˜๋‹ค ์‚ฌ์ง€๋ฐฉ์—์„œ ์œ„์™€๊ฐ™์€ ์„œ๋น„์Šค ์—†์ด๋„ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅํ•˜๊ณ , ์“ธ๋ชจ๋„ ๋งŽ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ Apps Script๋ฅผ ๋ฐฐ์šฐ๊ณ ์žˆ๋Š”๋ฐ, ๋„ˆ๋ฌด ์œ ์šฉํ•˜๋‹ค.

์ฝ”๋”ฉ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฐฐ์šฐ๊ณ ์‹ถ๋‹ค๋ฉด freecodecamp.org๋„ ์ข‹๋‹ค. ์ปค๋ฆฌํ˜๋Ÿผ์ด ์ž์„ธํ•˜๋ฉด์„œ๋„ ์ง์ ‘ ํ•ด๋ณด๋ฉด์„œ ๋ฐฐ์šฐ๋Š” ๋ฐฉ์‹์ด๋ผ ๋น ๋ฅด๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋‹ค. ํ•œ๊ตญ์–ด๋Š” ์ง€์›ํ•˜์ง€ ์•Š๋Š”์ ์ด ์•„์‰ฝ๋‹ค.

Conclusion

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

Reply to this post by email โ†ช