FastComments.com Blog
๐Ÿ‡ฐ๐Ÿ‡ท โ–ผ
๐Ÿ‡บ๐Ÿ‡ธ
English
English
๐Ÿ‡ง๐Ÿ‡ฌ
ะ‘ัŠะปะณะฐั€ัะบะธ
Bulgarian (Bulgaria)
๐Ÿ‡จ๐Ÿ‡ณ
็ฎ€ไฝ“ไธญๆ–‡
Chinese (Simplified)
๐Ÿ‡น๐Ÿ‡ผ
็น้ซ”ไธญๆ–‡
Chinese (Traditional)
๐Ÿ‡ญ๐Ÿ‡ท
Hrvatski
Croatian (Croatia)
๐Ÿ‡ฉ๐Ÿ‡ฐ
Dansk
Danish
๐Ÿ‡ณ๐Ÿ‡ฑ
Nederlands
Dutch
๐Ÿ‡บ๐Ÿ‡ธ
English (US)
English (North America)
๐Ÿ‡จ๐Ÿ‡ฆ
Franรงais (Canada)
French (Canada)
๐Ÿ‡ซ๐Ÿ‡ท
Franรงais (France)
French (France)
๐Ÿ‡ฉ๐Ÿ‡ช
Deutsch
German (Germany)
๐Ÿ‡จ๐Ÿ‡พ
ฮ•ฮปฮปฮทฮฝฮนฮบฮฌ (ฮšฯฯ€ฯฮฟฯ‚)
Greek (Cyprus)
๐Ÿ‡ฌ๐Ÿ‡ท
ฮ•ฮปฮปฮทฮฝฮนฮบฮฌ
Greek (Greece)
๐Ÿ‡ฎ๐Ÿ‡ฑ
ืขื‘ืจื™ืช
Hebrew
๐Ÿ‡ฎ๐Ÿ‡น
Italiano
Italian (Italy)
๐Ÿ‡ฏ๐Ÿ‡ต
ๆ—ฅๆœฌ่ชž
Japanese (Japan)
๐Ÿ‡ฐ๐Ÿ‡ท
ํ•œ๊ตญ์–ด
Korean (Korea)
๐Ÿ‡ต๐Ÿ‡ฑ
Polski
Polish (Poland)
๐Ÿ‡ง๐Ÿ‡ท
Portuguรชs (Brasil)
Portuguese (Brazilian)
๐Ÿ‡ท๐Ÿ‡บ
ะ ัƒััะบะธะน
Russian (Russia)
๐Ÿ‡บ๐Ÿ‡ฆ
ะ ัƒััะบะธะน (ะฃะบั€ะฐะธะฝะฐ)
Russian (Ukraine)
๐Ÿ‡ง๐Ÿ‡ฆ
ะกั€ะฟัะบะธ (ะ‘ะธะฅ)
Serbian (Bosnia & Herzegovina)
๐Ÿ‡ท๐Ÿ‡ธ
Srpski (Latinica)
Serbian (Latin Serbia)
๐Ÿ‡ฒ๐Ÿ‡ช
ะกั€ะฟัะบะธ (ะฆั€ะฝะฐ ะ“ะพั€ะฐ)
Serbian (Montenegro)
๐Ÿ‡ท๐Ÿ‡ธ
ะกั€ะฟัะบะธ
Serbian (Serbia)
๐Ÿ‡ธ๐Ÿ‡ฎ
Slovenลกฤina
Slovenian (Slovenia)
๐Ÿ‡ช๐Ÿ‡ธ
Espaรฑol
Spanish (Spain)
๐Ÿ‡บ๐Ÿ‡ฆ
ะฃะบั€ะฐั—ะฝััŒะบะฐ
Ukrainian (Ukraine)
๐Ÿ‡น๐Ÿ‡ท
Tรผrkรงe
Turkish (Turkey)
follow us in feedly

Wed Sep 10 2025
...

FastComments๊ฐ€ ์ด์ œ ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค

์ƒˆ๋กญ๊ฒŒ ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ

์ด์ „์—๋Š” FastComments๊ฐ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•ด ๋งค์šฐ ์ „ํ†ต์ ์ธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๊ทธ๋ฆฌ๊ณ  ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋‘ ์ง€์—ญ(๋ฏธ๊ตญ ์›จ์ŠคํŠธ ๋ฐ ์œ ๋Ÿฝ)์—์„œ ์ค‘๋ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋‹น์‹ ์ด ํ”„๋ž‘์Šค์— ์žˆ๊ณ , ์šฐ๋ฆฌ ๊ธ€๋กœ๋ฒŒ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—์„œ ํ˜ธ์ŠคํŒ…๋œ ๊ณ ๊ฐ์˜ ๋Œ“๊ธ€ ์Šค๋ ˆ๋“œ๋ฅผ ๋ณด๋ ค๊ณ  ํ•œ๋‹ค๋ฉด, ์š”์ฒญ์€ ๋Œ“๊ธ€ ๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•ด ๋ฏธ๊ตญ ์›จ์ŠคํŠธ๊นŒ์ง€ ๊ฐ€์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ๋Š” ์•„๋‹™๋‹ˆ๋‹ค! ์ด์ œ ๋Œ“๊ธ€ ๋ฐ์ดํ„ฐ์™€ ๋ชจ๋“  ๋ฏธ๋””์–ด ์ž์‚ฐ์ด ๊ธ€๋กœ๋ฒŒ ๋ฐฐํฌ์˜ ๊ณ ๊ฐ์„ ์œ„ํ•ด ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ๋ณต์ œ๋˜๋ฉฐ, EU ๋ฐฐํฌ์˜ ๊ณ ๊ฐ์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณต์ œ๋˜๋Š” ์„ธ ๊ฐœ์˜ ์กด์žฌ ํฌ์ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ์š”์ฒญ์€ EU ๋‚ด์—์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋…ธ๋“œ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.

์ด์ „์˜ ์ž‘๋™ ๋ฐฉ์‹

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

๋ฌธ์ œ์ 

๋ฌธ์ œ๋Š” ์šฉ๋Ÿ‰์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ ๋ถ„๋ช…ํ•˜๊ฒŒ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ตœ์ ํ™”๋ฅผ ํ•˜์—ฌ ๊ฒฐ๊ตญ ํ•ด๋‹น ์„œ๋น„์Šค์˜ ์ธ์Šคํ„ด์Šค ํฌ๊ธฐ๋ฅผ ๋Š˜๋ ค์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

RiR :)

FastComments์˜ ํผ๋ธ”๋ฆฌ์‹œ ๋ฐ ๊ตฌ๋… ์„œ๋น„์Šค๋Š” ์ดˆ๊ธฐ ๋ช‡ ๋…„ ๋™์•ˆ Java๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Java๋Š” ์ž…๋ ฅ๋œ ๋…ธ๋ ฅ์— ๋น„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์„ ํƒ๋˜์—ˆ์œผ๋ฉฐ, GC๋ฅผ ์ˆ˜๋…„๊ฐ„ ์กฐ์ •ํ•˜๊ณ  G1GC, Shenandoah, Z1์„ ์‹œ๋„ํ•œ ํ›„ ์šฐ๋ฆฌ๋Š” ๋” ์ด์ƒ Java๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ์˜ค๋ฒ„ํ—ค๋“œ๋Š” ๋‹จ์ˆœํžˆ ๋„ˆ๋ฌด ๋งŽ์•˜๊ณ , ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๋Š” ์™„๋ฃŒ ํ›„ ๋งค์šฐ ์ •์ ์ด๊ธฐ ๋•Œ๋ฌธ์— Java์˜ ์ด์ ์ด ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๋Š” "์šฐ๋ฅด๋ฅด ๋ชฐ๋ ค์˜ค๋Š”" ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฃจ์–ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— JVM์€ JIT๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์˜ ์ •์  ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๋Š” C++ ๋˜๋Š” Rust๋กœ ์ „ํ™˜ํ•˜๊ธฐ์— ์ ํ•ฉํ•œ ํ›„๋ณด๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” C++ ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— Rust๋ฅผ ์„ ํƒํ–ˆ์œผ๋ฉฐ, ๋„คํŠธ์›Œํฌ ์ฝ”๋“œ์—์„œ ์‹ค์ˆ˜๋ฅผ ํ•˜๋ฉด ํ•œ ๊ณ ๊ฐ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค๋ฅธ ๊ณ ๊ฐ์—๊ฒŒ ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Rust๋Š” ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์–ด์จŒ๋“  ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค์˜ ํ†ตํ•ฉ์„ ์›ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ทธ๋ž˜๋„ GraalVM์œผ๋กœ ๋˜ ๋‹ค๋ฅธ ์ตœ์ ํ™”๋ฅผ ํ•  ์ˆ˜๋„ ์žˆ์—ˆ์ง€๋งŒ, ์šฐ๋ฆฌ๋Š” Rust๋กœ ์ด๋™ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์€ ๋ฌธ์ œ ์—†์ด ์ง„ํ–‰๋˜์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๋Š” SSL์„ ์ข…๋ฃŒํ•˜๊ณ  HTTP 1.1, HTTP/2 ๋“ฑ์„ ์ง€์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ๋™์‹œ์— ๊ด€๋ฆฌํ•˜๊ณ , ์—ฃ์ง€์—์„œ ๋””์Šคํฌ lru ์บ์‹œ, S3, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฏธ๋””์–ด๋ฅผ ์ฝ๊ณ , ๋ฉ”์‹œ์—์„œ ํ†ต์‹ ํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Java ์ƒํƒœ๊ณ„์ธ Vertx์™€ Netty๋Š” ์ด๋Ÿฌํ•œ ์ž‘์—…์— ๋งค์šฐ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ƒํƒœ๊ณ„๋ฅผ ํ•œ๊ณ„๊นŒ์ง€ ์ถ”์ง„ํ•˜๊ณ  ์žˆ์—ˆ์œผ๋ฉฐ, Rust ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ๊ฒฝํ—˜์ด ๋ถ€์กฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ช‡ ๊ฐ€์ง€ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ฒช์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋ช‡ ์ฐจ๋ก€์˜ ๋‹ค์šดํƒ€์ž„์ด ๋ฐœ์ƒํ•˜์˜€๊ณ , ์ด์— ๋Œ€ํ•ด ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ๋‹ค์–‘ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์ž๋ฅผ ์‹คํ—˜ํ–ˆ์œผ๋ฉฐ, ์ปค์Šคํ…€ DNS ์„œ๋ฒ„์—๋Š” mimalloc์„, ์ „์†ก ๊ณ„์ธต์—๋Š” libc๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Nginx๋‚˜ Apache๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ , ๋Œ€์‹  Maxmind๋กœ๋ถ€ํ„ฐ ๋งค์ฃผ ์žฌ๊ตฌ์„ฑ๋œ ์ธ๋ฉ”๋ชจ๋ฆฌ ์ƒ‰์ธ์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ์ปค์Šคํ…€ DNS ์„œ๋ฒ„์˜ ์กฐํ•ฉ๊ณผ Rust๋กœ ๋œ ์šฐ๋ฆฌ์˜ ์ „์†ก ๊ณ„์ธต์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ „์†ก ๊ณ„์ธต์€ SSL์„ ์ข…๋ฃŒํ•˜๊ณ , ํผ๋ธ”๋ฆฌ์…” ๋ฐ ๊ตฌ๋… ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ์šฐ๋ฆฌ์˜ CDN ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ ์€ ์„œ๋น„์Šค ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ด๋™ ์‹œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ค„์–ด๋“ค๊ณ  ์ธํ”„๋ผ ์˜ค๋ฒ„ํ—ค๋“œ/์ถ”์ƒํ™”๊ฐ€ ์ค„์–ด๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹จ์ ์€ ๊ฐ€์‹œ์„ฑ์ด ์ค„์–ด๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์ข‹์€ ๋ฉ”ํŠธ๋ฆญ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ์ ์ธ ์„ฑ๋Šฅ ์ธก๋ฉด์—์„œ, Rust ์„œ๋น„์Šค๋Š” ์šฐ๋ฆฌ์˜ ์ž‘์—…์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  Java ์„œ๋น„์Šค์˜ ์•ฝ 10-30%์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์žฌ๋ฏธ์‚ผ์•„ Java Concurrency in Practice์™€ ๊ฐ™์€ ์ฑ…์„ ์ฝ๊ธฐ ๋•Œ๋ฌธ์— ์ „๋ฌธ๊ฐ€๋Š” ์•„๋‹ˆ์ง€๋งŒ JVM ์„œ๋น„์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋ช‡ ๊ฐ€์ง€๋ฅผ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ, Rust๋กœ ์ด๋Ÿฌํ•œ ๊ฒƒ์„ ๋” ์‰ฝ๊ฒŒ ์ด๋ฃจ๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์ˆ˜์›”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€, ๋Œ€๋Ÿ‰์˜ ๊ตฌ๋…์ž์—๊ฒŒ ๋ฉ”์‹œ์ง€๊ฐ€ ์ŠคํŒŒ์ดํฌ ๋  ๋•Œ, JVM ์„œ๋น„์Šค๊ฐ€ GC์— 40%์˜ ์‹œ๊ฐ„์„ ์†Œ๋น„ํ•˜๋Š” ๋ฐ˜๋ฉด CPU ์‚ฌ์šฉ๋Ÿ‰์€ ๊ฑฐ์˜ ์ฐจ์ง€ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ์˜ ์ฝ”๋“œ๋ฅผ ๊ฒŒ์ž„ ์—”์ง„์ฒ˜๋Ÿผ ์ž‘์„ฑํ•˜๋Š”๋ฐ ์ง‘์ค‘ํ–ˆ์œผ๋ฉฐ, ์ „ํ˜•์ ์ธ ์„œ๋ฒ„์ฒ˜๋Ÿผ ์ž‘์„ฑํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” Rust์˜ ์—ด๋ ฌํ•œ ํŒฌ์ด๋ผ๊ณ  ํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ, ์ดˆ๊ธฐ ๊ฐœ๋ฐœ ํ›„ ๋งŽ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋ณ€๋™์ด ์ ์€ ์„œ๋น„์Šค์—๋Š” ์™„๋ฒฝํ•œ ์„ ํƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ์ฃผ์š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ์—ฌ์ „ํžˆ TypeScript์— ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ์•„ํ‚คํ…์ฒ˜

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

๊ฐ ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ์ข…๋ฃŒํ•˜๊ณ  ์›น์†Œ์ผ“, HTTP ์ŠคํŠธ๋ฆผ ๋˜๋Š” CDN ์š”์ฒญ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ผ์šฐํŒ… ์ „์†ก์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„œ๋ฒ„๋Š” ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๊ฐ ์„œ๋ฒ„๋Š” ๊ธ€๋กœ๋ฒŒ ๋„คํŠธ์›Œํฌ์˜ ๋งคํ•‘์„ ํ•ด๋‹น ๋กœ์ปฌ DNS ์„œ๋ฒ„์— ์ œ๊ณตํ•˜์—ฌ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฐ ๋ผ์ด๋ธŒ ๋…ธ๋“œ์˜ ๊ธ€๋กœ๋ฒŒ ์œ„์น˜๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ์•„ํ‚คํ…์ฒ˜์˜ ์žฅ์ ์€ ์ค‘๋ณต์„ฑ์ž…๋‹ˆ๋‹ค. ํ•œ ์ง€์—ญ์˜ ๊ณ ๊ฐ์ด ์šฐ๋ฆฌ์—๊ฒŒ ๋งค์šฐ ๊ฐ•ํ•˜๊ฒŒ ์š”์ฒญํ•  ๋•Œ, ๋‹ค๋ฅธ ์ง€์—ญ์€ ์˜จ๋ผ์ธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

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

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

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ํ•˜๋“œ์›จ์–ด๋ฅผ ์†์ˆ˜ ์„ ํƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์žฌ๋ฏธ์žˆ๊ณ  ๋ณด๋žŒ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์„œ๋ฒ„๋Š” i5-13500๊ณผ Ryzen 5 5600X ๋ฐ•์Šค๋ฅผ ํ˜ผํ•ฉํ•œ ๊ฒƒ์ด๋ฉฐ, EU ์ง€์—ญ์— ์žˆ๋Š” ์„œ๋ฒ„๋Š” ๊ตฌํ˜• Xeon์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๋ฒค์น˜๋งˆํฌ์—์„œ ์ด ๋ชจ๋“  ์„œ๋ฒ„๋Š” ๋‹ค๋ฅธ ์ œ๊ณต์—…์ฒด์—์„œ ํƒ์ƒ‰ ์ค‘์ธ ๋ณด๋‹ค ๋น„์‹ผ ์„œ๋ฒ„๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋‹จ์ ์€ ๋” ๋งŽ์€ ์„ค์ • ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค๋Š” ์ ์ด์ง€๋งŒ, ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ์ž๋™ํ™”ํ•˜์˜€๊ณ , ์‹คํŒจ์— ๋Œ€ํ•œ SMART ๋””์Šคํฌ ๋ชจ๋‹ˆํ„ฐ๋ง ๋“ฑ๋„ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ผ์„ ์ˆ˜ํ–‰ํ•จ์œผ๋กœ์จ ์šฐ๋ฆฌ๋Š” ๊ฒฝ์Ÿ๋ ฅ ์žˆ๋Š” ๊ฐ€๊ฒฉ์„ ๊ณ„์† ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋กค์•„์›ƒ

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

์ดˆ๊ธฐ ๋กค์•„์›ƒ์—์„œ๋Š” ์šฐ๋ฆฌ์˜ ๋ฉ”ํŠธ๋ฆญ์ด ์š”์ฒญ ์‹œ๊ฐ„์˜ ์ฆ๊ฐ€๋ฅผ ๋‚˜ํƒ€๋ƒˆ์Šต๋‹ˆ๋‹ค. ์š”์ฒญ์ด > 100ms ์ด์ƒ์ด ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ๋งŽ์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ ์ง„์ ์ธ ์ง„์ „
๋А๋ฆฐ ์š”์ฒญ

์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ์ผ๋ถ€ ์ง€์—ญ์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด ์ ์ง„์ ์œผ๋กœ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•ด ์ฃผ์‹  ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

API ์‚ฌ์šฉ ์‹œ ๊ณ ๋ ค ์‚ฌํ•ญ

API๋Š” ์—ฌ์ „ํžˆ ๊ฐ•๋ ฅํ•˜๊ฒŒ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค - ์ž์‹ ์ด ์“ด ๋‚ด์šฉ์„ ์ฝ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ๋‹จ์ˆœ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ์ผ๊ด€์„ฑ๋ณด๋‹ค ์„ฑ๋Šฅ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก readPreference ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋…ธ์ถœํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ์ด์˜ ์ด์ ์€ ์ด๋Ÿฌํ•œ API ํ˜ธ์ถœ์— ๋Œ€ํ•ด ํฌ๋ ˆ๋”ง ํ• ์ธ์„ ์ œ๊ณตํ•  ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋Œ“๊ธ€ ์œ„์ ฏ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ชจ๋“  ๊ณต๊ฐœ ์—”๋“œํฌ์ธํŠธ๋Š” ํ•ญ์ƒ ํ•ด๋‹น ๋…ธ๋“œ์˜ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด(๋กœ์ปฌ) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ฝ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜ CDN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ 

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

๋งˆ์ง€๋ง‰์œผ๋กœ, ๋™์  ๋ฐ์ดํ„ฐ๊ฐ€ CDN์˜ ์ •์  ๋ฐ์ดํ„ฐ์— ๋งคํ•‘๋˜๋Š” "์ ์ง„์  ํ–ฅ์ƒ"์€ ์ฝ˜ํ…์ธ ๊ฐ€ ์›€์ง์ด๊ฑฐ๋‚˜ ๋ช‡ ์ดˆ ํ›„์— ๋ณ€๊ฒฝ๋˜๋Š” ๋‚˜์œ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฐ ์ผ์„ ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด์ œ ๋‚ด ๋ฐ์ดํ„ฐ๋Š” ์–ด๋””์— ์žˆ๋‚˜์š”?

๊ท€ํ•˜์˜ ๋ฐ์ดํ„ฐ๋Š” ๋” ์ด์ƒ Linode์— ์ €์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” Hetzner์™€ OVH ๊ฐ„์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณต์ œ๋˜๋ฉฐ ์ „์ฒด ๋””์Šคํฌ ์•”ํ˜ธํ™”๊ฐ€ ์ ์šฉ๋˜๊ณ , ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๊ฐ„ ๋ชจ๋“  ํ†ต์‹ ์€ TLS๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์•„์›ƒ๋ฐ”์šด๋“œ ์›นํ›„ํฌ ํ”„๋ก์‹œ๋ฅผ ์œ„ํ•ด ๋ช‡ ๊ฐœ์˜ ๋ ˆ๊ฑฐ์‹œ Linode ์ธ์Šคํ„ด์Šค๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์žˆ์ง€๋งŒ, ๋” ์ด์ƒ Linode์— ๋ฐ์ดํ„ฐ๋‚˜ ๋ฏธ๋””์–ด๊ฐ€ ์ €์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

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