์œ ์—๋น™๐Ÿฅฎ ========== Yuebing์€ ๋น„๋””์˜ค ํ˜ธ์ŠคํŒ… ์‚ฌ์ดํŠธ๋ฅผ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. Yuebing์€ ์ตœ์‹  ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์ŠคํŠธ๋ฆฌ๋ฐํ•  ์†Œ์Šค ๋น„๋””์˜ค๋ฅผ ์ž๋™์œผ๋กœ ์ค€๋น„ํ•˜์—ฌ ๋ชจ๋“  ์žฅ์น˜์—์„œ ์žฌ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์žฅ์น˜. Yuebing์€ ๋ฐฑ์—”๋“œ ์Šคํ† ๋ฆฌ์ง€์— Amazon S3 ๋˜๋Š” Backblaze B2๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋งŽ์€ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ### ์›์ฒœ * [GitHub์˜ yuebing](https://github.com/cobbzilla/yuebing) * [npm์˜ yuebing](https://www.npmjs.com/package/yuebing) * [DockerHub์˜ yuebing](https://hub.docker.com/repository/docker/cobbzilla/yuebing) # ์ด๊ฒƒ์„ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ฝ์œผ์‹ญ์‹œ์˜ค ์ด README.md ๋ฌธ์„œ๋Š” [hokeylization](https://github.com/cobbzilla/hokeylization)์„ ํ†ตํ•ด ๋‹ค์Œ์œผ๋กœ ๋ฒˆ์—ญ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์–ธ์–ด. ์™„๋ฒฝํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ์—†๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ๋‚ซ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค! [๐Ÿ‡ธ๐Ÿ‡ฆ ์•„๋ž์–ด](../ar/README.md) [๐Ÿ‡ง๐Ÿ‡ฉ ๋ฒต๊ณจ์–ด](../bn/README.md) [๐Ÿ‡ฉ๐Ÿ‡ช ๋…์ผ์–ด](../de/README.md) [๐Ÿ‡บ๐Ÿ‡ธ ์˜์–ด](../en/README.md) [๐Ÿ‡ช๐Ÿ‡ธ ์ŠคํŽ˜์ธ์–ด](../es/README.md) [๐Ÿ‡ซ๐Ÿ‡ท ํ”„๋ž‘์Šค์–ด](../fr/README.md) [๐Ÿ‡น๐Ÿ‡ฉ ํ•˜์šฐ์‚ฌ์–ด](../ha/README.md) [๐Ÿ‡ฎ๐Ÿ‡ณ ํžŒ๋””์–ด](../hi/README.md) [๐Ÿ‡ฎ๐Ÿ‡ฉ ์ธ๋„๋„ค์‹œ์•„์–ด](../id/README.md) [๐Ÿ‡ฎ๐Ÿ‡น ์ดํƒˆ๋ฆฌ์•„์–ด](../it/README.md) [๐Ÿ‡ฏ๐Ÿ‡ต ์ผ๋ณธ์–ด](../ja/README.md) [๐Ÿ‡ฐ๐Ÿ‡ทํ•œ๊ตญ์–ด](../ko/README.md) [๐Ÿ‡ฎ๐Ÿ‡ณ ๋งˆ๋ผํ‹ฐ์–ด](../mr/README.md) [๐Ÿ‡ต๐Ÿ‡ฑ ํด๋ž€๋“œ์–ด](../pl/README.md) [๐Ÿ‡ง๐Ÿ‡ทํฌ๋ฅดํˆฌ๊ฐˆ์–ด](../pt/README.md) [๐Ÿ‡ท๐Ÿ‡บ ๋Ÿฌ์‹œ์•„์–ด](../ru/README.md) [๐Ÿ‡ฐ๐Ÿ‡ช ์Šค์™€ํž๋ฆฌ์–ด](../sw/README.md) [๐Ÿ‡ต๐Ÿ‡ญ ํƒ€๊ฐˆ๋กœ๊ทธ์–ด](../tl/README.md) [๐Ÿ‡น๐Ÿ‡ท ํ„ฐํ‚ค์–ด](../tr/README.md) [๐Ÿ‡ต๐Ÿ‡ฐ ์šฐ๋ฅด๋‘์–ด](../ur/README.md) [๐Ÿ‡ป๐Ÿ‡ณ ๋ฒ ํŠธ๋‚จ์–ด](../vi/README.md) [๐Ÿ‡จ๐Ÿ‡ณ ์ค‘๊ตญ์–ด](../zh/README.md) ---- # ๋‚ด์šฉ๋ฌผ * [์˜๊ฐ](#์˜๊ฐ) * [ํŠน์ง•](#ํŠน์ง•) * [์„ค์น˜](#์„ค์น˜) * [๋„์ปค](#๋„์ปค) * [npm ํŒจํ‚ค์ง€](#npm-package) * [์ถœ์ฒ˜์—์„œ](#์ถœ์ฒ˜์—์„œ) * [๊ตฌ์„ฑ](#๊ตฌ์„ฑ) * [nginx ๊ตฌ์„ฑ](#nginx-config) * [์ด๋ฆ„์ด ์™œ ์œ ๋น™์ธ๊ฐ€์š”?](#์œ ๋น™์ด๋ผ๋Š” ์ด๋ฆ„์ด ์™œ์š”?) ## ์˜๊ฐ ์ž‘๋…„์— ์—„๋งˆ๋Š” ์˜ค๋ž˜๋œ ๊ฐ€์กฑ ๋น„๋””์˜ค ์•„์นด์ด๋ธŒ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ๋””์ง€ํ„ธํ™”ํ•˜๋Š” ๋ฐ ์—„์ฒญ๋‚œ ์‹œ๊ฐ„๊ณผ ๋ˆ์„ ๋“ค์˜€์Šต๋‹ˆ๋‹ค. ์ด๋“ค ์ค‘ ์ผ๋ถ€๋Š” 1940๋…„๋Œ€๊นŒ์ง€ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ€๋Š” ์ƒ๋‹นํžˆ ์˜ค๋ž˜๋œ ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ •๋ง ์•„๋ฆ„๋‹ต๊ณ  ๊ณ ์ „์ ์ธ ๊ฒƒ๋“ค. ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๊ฐ€์กฑ๊ณผ ๊ฐœ์ธ์ ์œผ๋กœ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์—ˆ์ง€๋งŒ *๋Œ€ํ˜• ๊ธฐ์ˆ ๊ณผ๋Š” ๊ณต์œ ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค*. ์ฃผ์š” ๊ณต๊ธ‰์ž์˜ "๋ฌด๋ฃŒ" ๋น„๋””์˜ค ํ˜ธ์ŠคํŒ…์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ฐพ๊ณ  ์žˆ๋˜ ๊ฒƒ: * ์ž์ฒด ํ˜ธ์ŠคํŒ…๋˜์ง€๋งŒ ์‹คํ–‰ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ์™„์ „ํžˆ **์†์‰ฌ์šด** * ์ ์‘ํ˜• ๋น„ํŠธ ์ „์†ก๋ฅ ์„ ํฌํ•จํ•œ ์ตœ์‹  ๋น„๋””์˜ค ํ˜•์‹์˜ ์ŠคํŠธ๋ฆผ * ๋น„๋””์˜ค๋Š” ๋ชจ๋“  ์žฅ์น˜, ๋ฐ์Šคํฌํ†ฑ ๋˜๋Š” ๋ชจ๋ฐ”์ผ์—์„œ ์žฌ์ƒ๋ฉ๋‹ˆ๋‹ค. * ๊ณ ๋Œ€์—ญํญ ์—ฐ๊ฒฐ๋กœ ๋น„๋””์˜ค ํ’ˆ์งˆ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค. ์ด๋ณด๋‹ค ๋” ์ข‹์„ ์ˆœ ์—†๋‹ค * **์—ฐ๊ฒฐ ์ƒํƒœ๊ฐ€ ์ข‹์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„** ์žฌ์ƒ ํ’ˆ์งˆ์ด ์–‘ํ˜ธํ•˜๋ฉฐ *๊ฑด๋„ˆ๋›ฐ๊ฑฐ๋‚˜ ๋ฒ„ํผ๋ง๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค* * ์•”ํ˜ธํ™”๋œ ์Šคํ† ๋ฆฌ์ง€๋กœ ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€ ์†”๋ฃจ์…˜์„ ์•ˆ์‹ฌํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * ์ƒํƒœ ๋น„์ €์žฅ ์„œ๋ฒ„: ๋ณต์›๋ ฅ์ด ๋›ฐ์–ด๋‚œ ์Šคํ† ๋ฆฌ์ง€์— ์ค‘์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. * **๋ฐฑ์—…์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค!** * *์ด๊ฒƒ์€ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ๋ฐํ˜€์ง„ ๋ฐ”์— ๋”ฐ๋ฅด๋ฉด ์ด์™€ ๊ฐ™์€ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค. ์œ ์—๋น™์ด ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค!* * ๊ฐ•๋ ฅํ•œ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ชจ๋“  ๊ฒƒ์„ ํŠธ๋žœ์Šค์ฝ”๋”ฉํ•œ ํ›„ ์ด๋ฅผ ํ•ด์ฒดํ•˜๊ณ  ์žฅ๊ธฐ์ ์œผ๋กœ ๋” ์ €๋ ดํ•œ ๊ฒƒ์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. * ์›” $10 ๋ฏธ๋งŒ์œผ๋กœ Yuebing์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Yuebing์˜ ์„ค์น˜ ๊ณต๊ฐ„์„ ์ตœ์ ํ™”ํ•จ์— ๋”ฐ๋ผ ์•ž์œผ๋กœ ๋” ์ค„์–ด๋“ค๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฑฐ๊ธฐ์— ๋ฌด์—‡์ด ์žˆ๋Š”์ง€ ์กฐ์‚ฌํ•˜๋Š” ๋ฐ ๋ช‡ ์ฃผ๊ฐ€ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ์š”๊ตฌ ์‚ฌํ•ญ์„ ํฌ๊ฒŒ ์™„ํ™”ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๊ดœ์ฐฎ์€ ๊ฒƒ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ดํŽด๋ดค๋Š”๋ฐ ๋ชจ๋‘ ์—ฌ๋Ÿฌ ๋ˆˆ์— ๋„๋Š” ๊ฒฐํ•จ. ๊ทธ๋ž˜์„œ ์ €๋Š” ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? S3๋ฅผ ffmpeg์— ์—ฐ๊ฒฐํ•˜๊ณ  ์ตœ์‹  ํ”„๋ŸฐํŠธ์—”๋“œ๋ฅผ ๋ฐฐ์น˜ํ•˜๋ฉด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ... ๊ธ€์Ž„, ์–ด, ์ž‘์—…์˜ ๋Œ€๋ถ€๋ถ„์€ ๋ช‡ ๋‹ฌ์ด ๊ฑธ๋ ธ์ง€ ๋งŒ ๋ฉˆ์ถ”๊ธฐ์—๋Š” ๋„ˆ๋ฌด ์žฌ๋ฏธ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค! ๋‹น์‹ ๋„ ๊ทธ๊ฒƒ์„ ์ฆ๊ธฐ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค! ### **์…€ํ”„ ํ˜ธ์ŠคํŒ… ๋น„๋””์˜ค ์‚ฌ์ดํŠธ๋ฅผ ์•„์ฃผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด ๋ด…์‹œ๋‹ค!** ## ํŠน์ง• * S3(๋˜๋Š” B2) ๋น„๋””์˜ค ๋ฒ„ํ‚ท์„ ์นœ๊ตฌ์™€ ๊ฐ€์กฑ์„ ์œ„ํ•œ ๋น„๊ณต๊ฐœ ๋น„๋””์˜ค ์‚ฌ์ดํŠธ๋กœ ๋ณ€ํ™˜ํ•˜์‹ญ์‹œ์˜ค! * ์›์‹œ ๋ฏธ๋””์–ด ํŒŒ์ผ์„ ์ œ๊ณตํ•˜๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์†Œ์Šค ๋ฒ„ํ‚ท ์—ฐ๊ฒฐ * Yuebing์€ ์†Œ์Šค ๋น„๋””์˜ค๋ฅผ ์ ์‘ํ˜• ๋น„ํŠธ ์ „์†ก๋ฅ  ์ŠคํŠธ๋ฆฌ๋ฐ(DASH/mp4)์„ ์œ„ํ•ด ๊ฐ€์žฅ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์ง€์›๋˜๋Š” ์ตœ์‹  ํ˜•์‹์œผ๋กœ ์ž๋™ ํŠธ๋žœ์Šค์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค. * ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ๋Œ€์ƒ ๋ฒ„ํ‚ท์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์›ํ•  ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„๋ฅผ ํŒŒ๊ดดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * ์ดˆ๊ธฐ ํŠธ๋žœ์Šค์ฝ”๋”ฉ์„ ์œ„ํ•ด CPU ์ตœ์ ํ™” ์ธ์Šคํ„ด์Šค์—์„œ ์ฒ˜์Œ ์‹คํ–‰ํ•œ ๋‹ค์Œ \ on a much cheaper instance for 24/7/365 service. * ์™„์ „ํžˆ ์•”ํ˜ธํ™”๋œ ์ €์žฅ์†Œ ์ง€์›(์•ฑ ์ธก ์•”ํ˜ธํ™”, ์‚ฌ์šฉ์ž๋งŒ ํ‚ค ๋ณด์œ ) * ํ•ญ์ƒ ์†Œ์Šค์—์„œ ์ฝ๊ธฐ ์ „์šฉ, ์†Œ์Šค ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Œ * ์ƒˆ ๋ฏธ๋””์–ด ํŒŒ์ผ์— ๋Œ€ํ•œ ์ž๋™ ๋ฐ ์ˆ˜๋™ ์Šค์บ” * ์–ผ๋งˆ๋‚˜ ๋น„๊ณต๊ฐœ ๋˜๋Š” ๊ณต๊ฐœ๋ฅผ ์›ํ•˜์‹ญ๋‹ˆ๊นŒ? Yuebing ์ง€์›: * ์™„์ „ํžˆ ๋น„๊ณต๊ฐœ: ์ต๋ช… ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฏธ๋””์–ด๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉฐ ์Šน์ธ๋œ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋งŒ ๊ณ„์ •์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * Semi-private: ์ต๋ช… ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฏธ๋””์–ด๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์ง€๋งŒ ๋ˆ„๊ตฌ๋‚˜ ์‚ฌ์šฉ์ž ๊ณ„์ •์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * ๋“ฑ๋ก์ด ์ œํ•œ๋œ ๊ณต๊ฐœ: ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ๋ฏธ๋””์–ด๊ฐ€ ํ‘œ์‹œ๋˜์ง€๋งŒ ์Šน์ธ๋œ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋งŒ ๊ณ„์ •์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * ์™„์ „ ๊ณต๊ฐœ: ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ๋ฏธ๋””์–ด๊ฐ€ ํ‘œ์‹œ๋˜๋ฉฐ ๋ˆ„๊ตฌ๋‚˜ ์‚ฌ์šฉ์ž ๊ณ„์ •์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * ์™„์ „ ๊ตญ์ œํ™”! ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์ด๋Š” ๋ชจ๋“  ํ…์ŠคํŠธ(๋ฐ ๊ธฐํƒ€ ๋กœ์ผ€์ผ ๊ด€๋ จ ํ•ญ๋ชฉ)๋Š” ํ˜„์ง€ํ™”๋œ ๋ฆฌ์†Œ์Šค์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. * [์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๋•๊ณ  Yuebing์„ ์ƒˆ๋กœ์šด ์–ธ์–ด๋กœ ๋ฒˆ์—ญํ•˜์„ธ์š”!](https://github.com/cobbzilla/yuebing/blob/master/docs/localize.md) * ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ๊ด€๋ฆฌ ์ฝ˜์†” * ํ‚ค์›Œ๋“œ ๋˜๋Š” ํƒœ๊ทธ ํด๋ผ์šฐ๋“œ์—์„œ ๋น„๋””์˜ค ๊ฒ€์ƒ‰ * **์—ฌ๋Ÿฌ๋ถ„์˜ ์ง€์›๊ณผ ํ•จ๊ป˜ ๊ณง ์ถœ์‹œ ์˜ˆ์ •** : * ๋” ๋งŽ์€ ๋ฏธ๋””์–ด ์œ ํ˜•(์˜ค๋””์˜ค, ์ด๋ฏธ์ง€ ๋“ฑ) ์ง€์› * ์‚ฌ์šฉ์ž ์—…๋กœ๋“œ ๋ฏธ๋””์–ด * ์ข‹์•„์š”, ๊ณต์œ  ๋ฐ ํ‘ธ์‹œ ์•Œ๋ฆผ * ์ƒˆ๋กœ์šด "์†Œ์Šค ์œ ํ˜•": ๋˜ ๋‹ค๋ฅธ Yuebing ์ธ์Šคํ„ด์Šค! * Federation between friendly instances: unified search, user accounts, etc ## ์ต๋ช… ์‚ฌ์šฉ์ž ๊ธฐ๋Šฅ(์‚ฌ์ดํŠธ๊ฐ€ ์ต๋ช… ๋ฐฉ๋ฌธ์ž๋ฅผ ํ—ˆ์šฉํ•˜๋„๋ก ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ) * ๋ฏธ๋””์–ด ์ฐพ์•„๋ณด๊ธฐ * ๋ฏธ๋””์–ด ์‹œ์ฒญ! * ๊ณ„์ • ๋งŒ๋“ค๊ธฐ(์‚ฌ์ดํŠธ๊ฐ€ ๊ณ„์ • ๋“ฑ๋ก์„ ํ—ˆ์šฉํ•˜๋„๋ก ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ) ## ๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž ๊ธฐ๋Šฅ * ๋ฏธ๋””์–ด ์ฐพ์•„๋ณด๊ธฐ * ๋ฏธ๋””์–ด ์‹œ์ฒญ! * ๋Œ“๊ธ€ ์ถ”๊ฐ€, ๋Œ“๊ธ€ ์ˆ˜์ •, ๋Œ“๊ธ€ ์‚ญ์ œ! * ์นœ๊ตฌ๋ฅผ ์ดˆ๋Œ€ * ๊ณ„์ • ์ •๋ณด ์ˆ˜์ • * ๊ณ„์ • ์‚ญ์ œ, ๋ชจ๋“  ๋Œ“๊ธ€์„ ํฌํ•จํ•˜์—ฌ ๊ท€ํ•˜์˜ ๋ชจ๋“  ํ•ญ๋ชฉ ์‚ญ์ œ ## ๊ด€๋ฆฌ ์‚ฌ์šฉ์ž ๊ธฐ๋Šฅ * ๋ฏธ๋””์–ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํŽธ์ง‘, ์ธ๋„ค์ผ ๋ณด๊ธฐ, ์„ ํƒํ•œ ์ธ๋„ค์ผ ๋ณ€๊ฒฝ * ๋ฏธ๋””์–ด ๋ณ€ํ™˜ ๋Œ€๊ธฐ์—ด ๋ฐ ์ž‘์—… ์ƒํƒœ ๋ณด๊ธฐ * ์†Œ์Šค ๋ฏธ๋””์–ด์˜ ์ƒˆ๋กœ์šด ์Šค์บ” ๋ฐ ์ธ๋ฑ์Šค ์‹œ์ž‘ ## ์„œ๋ฒ„/๋ฐฑ์—”๋“œ ๊ธฐ๋Šฅ * ์ž„์‹œ ์นœํ™”์ ์ธ ZERO ์˜๊ตฌ/์ค‘์š” ๋ฐ์ดํ„ฐ๋Š” ์ปจํ…Œ์ด๋„ˆ ๋‚ด์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. * ๋ชจ๋“  ๋‚ด๊ตฌ์„ฑ ๋ฐ์ดํ„ฐ๋Š” ๋Œ€์ƒ ๋ฒ„ํ‚ท์— ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ S3๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. * ์ƒˆ๋กœ์šด ๋ฏธ๋””์–ด์— ๋Œ€ํ•œ ์†Œ์Šค ๋ฒ„ํ‚ท์˜ ์ž๋™ ์ฃผ๊ธฐ์  ์Šค์บ” * ๋ฏธ๋””์–ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ๋ฐ ๋ณ€๊ฒฝ ํŽธ์ง‘ ๋‚ด์šฉ์€ ๋Œ€์ƒ ๋ฒ„ํ‚ท์— ์ €์žฅ๋˜๋ฉฐ ์†Œ์Šค ๋ฏธ๋””์–ด๋Š” ์ ˆ๋Œ€ ์ˆ˜์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. * ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์ถœ๋ ฅ ํ”„๋กœํ•„. ๊ธฐ๋ณธ๊ฐ’์€ ์—ฌ๋Ÿฌ ํ•˜์œ„ ํ”„๋กœํ•„์ด ์žˆ๋Š” DASH-mp4์ž…๋‹ˆ๋‹ค. * ์‚ฌ์šฉ์ž ๊ณ„์ • ์ •๋ณด๋Š” ๋Œ€์ƒ ๋ฒ„ํ‚ท์—๋„ ์ €์žฅ๋˜๋ฉฐ ์„ ํƒ์ ์œผ๋กœ ์•”ํ˜ธํ™”๋ฉ๋‹ˆ๋‹ค. * ์•”ํ˜ธํ™” ํ‚ค๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ๊ด€๋ฆฌ์ž๋Š” ์›น ๊ด€๋ฆฌ ์ฝ˜์†”์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋ฅผ ์ƒˆ ํ‚ค๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ## ์„ค์น˜ docker, npm ๋˜๋Š” ์†Œ์Šค์—์„œ ์ง์ ‘ `yuebing` ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ### ๋„์ปค docker๊ฐ€ ์žˆ์œผ๋ฉด Yuebing์„ ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. docker run -it cobbzilla/yuebing ### npm ํŒจํ‚ค์ง€ # install globally with npm npm i -g yuebing # install globally with yarn yarn global add yuebing # Now the 'yuebing' command should be on your PATH yuebing ### ์†Œ์Šค์—์„œ ์†Œ์Šค์—์„œ ์‹คํ–‰ํ•˜๋ ค๋ฉด nodejs v16+ ๋ฐ ์›์‚ฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. # Clone source and install dependencies git clone https://github.com/cobbzilla/yuebing.git cd yuebing yarn install # Use the 'yuebing' command from the git repo ./yuebing # Or, since you have the source, run any of the `yarn` scripts yarn docker-run-dev # Fastest build & startup, dev docker image yarn docker-run # Faster at runtime, production docker image yarn dev # Run yuebing locally in dev mode yarn build # Build yuebing locally for production mode yarn start # Start yuebing locally in production mode ์ž์„ธํ•œ ๋‚ด์šฉ์€ [๊ฐœ๋ฐœ์ž ๋ฌธ์„œ](https://github.com/cobbzilla/yuebing/blob/master/docs/developer.md)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ## ๊ตฌ์„ฑ Yuebing์„ ๊ฐ€์ง€๊ณ  ๋†€๋ ค๋ฉด ์•„๋ฌด๊ฒƒ๋„ ๊ตฌ์„ฑํ•˜์ง€ ์•Š๊ณ  ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. `yuebing` ์‹คํ–‰ํ•˜๋ฉด ์‹œ์ž‘ํ•  ๋•Œ ์ตœ์†Œ ๊ตฌ์„ฑ์„ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํ•œ๋™์•ˆ Yuebing์„ ์‹คํ–‰ํ•  ๊ณ„ํš์ด๋ผ๋ฉด [๊ตฌ์„ฑ ๋ฌธ์„œ](https://github.com/cobbzilla/yuebing/blob/master/docs/config.md)์—์„œ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ํ™•์ธํ•˜์„ธ์š”. ์„ค์ • ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด. ### nginx ๊ตฌ์„ฑ Yuebing์€ Nuxt ์•ฑ์ด๋ฉฐ nginx(๋˜๋Š” ๋‹ค๋ฅธ ์›น ์„œ๋ฒ„)๋ฅผ SSL, ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์†๋„ ์ œํ•œ ๋“ฑ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ „๋ฉด์— ์žˆ์Šต๋‹ˆ๋‹ค. nginx๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” [์ƒ˜ํ”Œ ๊ตฌ์„ฑ](https://github.com/cobbzilla/yuebing/blob/master/docs/sample-yuebing-nginx.conf)์ด ์žˆ์Šต๋‹ˆ๋‹ค. ## ์ด๋ฆ„์ด ์œ ๋น™์ธ ์ด์œ ๋Š”? [์šฐ๋กฑ ํ† ๋ผ](https://en.wikipedia.org/wiki/Oolong_(ํ† ๋ผ))๋Š” ์‚ฌ๋ž‘์Šค๋Ÿฝ๊ณ  ์œ ๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. [์ดˆ๊ธฐ ์ธํ„ฐ๋„ท ๋ฐˆ](https://duckduckgo.com/?q=oolong+rabbit&ia=images&iax=images). ์šฐ๋กฑ์€ 2003๋…„์— ์‚ฌ๋งํ–ˆ๊ณ , ์–ด๋–ค ๋Œ€์ธ๊ธฐ ๋น„๋””์˜ค ์„œ๋น„์Šค๊ฐ€ ์กด์žฌํ•˜๊ธฐ 2๋…„ ์ „! Oolong์˜ ํ›„๊ณ„์ž๋Š” Yuebing์œผ๋กœ ์ง€๋ช…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Yuebing์€ Oolong๋งŒํผ ์œ ๋ช…ํ•˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ ๊ทธ๊ฒŒ ๋ฌธ์ œ๊ฐ€ ๋˜์—ˆ๋‚˜์š”? ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  Yuebing์€ ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ๋” ํฅ๋ฏธ๋กญ๊ฒŒ๋„ ์œ ๋น™์€ [์›”๋ณ‘](https://en.wikipedia.org/wiki/Mooncake)์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. (์ค‘๊ตญ์–ด: [ๆœˆ้ฅผ](https://zh.wikipedia.org/wiki/%E6%9C%88%E9%A5%BC), ์ผ๋ณธ์–ด: [ๆœˆ้ค…](https://ja.wikipedia.org/wiki/%E6%9C%88%E9%A4%85)); ์›”๋ณ‘์€ ๋งค์šฐ ๋ง›์žˆ๊ณ  ๋‹ค์Œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ง›๊ณผ ์Šคํƒ€์ผ. ์œ ์„œ ๊นŠ์€ ์ง€์—ญ ์Šคํƒ€์ผ์„ ์ฆ๊ธฐ๊ฑฐ๋‚˜ ํ˜„๋Œ€์ ์ธ ์ด๊ตญ์ ์ธ ์ผ€์ดํฌ๋ฅผ ๋ง›๋ณด์‹ญ์‹œ์˜ค. ๋ฏธ์ง€์˜ ์˜์—ญ์„ ๋ง›์žˆ๊ฒŒ ํƒํ—˜ํ•˜๋Š” ์ œ๋นต์‚ฌ ์—ฌ๋Ÿฌ๋ถ„! ์ง„์ •์œผ๋กœ ๋ชจ๋‘๋ฅผ ์œ„ํ•œ ์œ ๋น™์ด ์žˆ์Šต๋‹ˆ๋‹ค!