https://www.youtube.com/watch?v=-cEn_83zRFw
[์์ ]
๊ฐ์ฌํฉ๋๋ค.
๋ค์ ํ๋ฒ ํ์ํฉ๋๋ค.
๋จผ์ ์ด ์ปจํผ๋ฐ์ค๋ฅผ ํ๋ฅญํ๊ฒ ์กฐ์งํด์ค ์๋ง๋ค ํผ๋ ธ์ ์ ์ฒด ํ์๊ฒ ๊ฐ์ฌ์ ๋ง์์ ์ ํ๊ณ ์ถ์ต๋๋ค.
๋ด๋ถ์์ ๋ณด๊ธฐ ์ ๊น์ง ์ด ์ปจํผ๋ฐ์ค๋ฅผ ์ค๋นํ๋ ๋ฐ ์ผ๋ง๋ ๋ง์ ๋ ธ๋ ฅ์ด ํ์ํ์ง ๋ชฐ๋์ต๋๋ค.
์ด๋ฐ ์ผ๋ฅผ ์ค๋นํ๋ ๋ฐ ์ผ๋ง๋ ๋ง์ ์ค๋น๊ฐ ํ์ํ์ง ์ ๋ง ๋๋์ต๋๋ค.
์๋ง๋ค๊ฐ Rails 8 ์ถ์์ ํจ๊ป ๋ ์จ๊น์ง ๋ง์ถ๋ ๋ฐ ์ฑ๊ณตํ๋ค๋ ์ฌ์ค์ ์ ๋ง ํ์์ ์ ๋๋ค.
์๋ง๋ค์ ์ ์ฒด ํ์๊ฒ ๋ค์ ํ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ค๋์ ์ฃผ์ ๋ Rails 8์ ๋๋ค.
Rails 8์ ์๋กญ๊ฒ ์ถ๊ฐ๋ ๋ฉ์ง ๊ธฐ๋ฅ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๊ฒ์ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
Rails 8์ ์ ๊ธฐ์ต์ ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด Rails ๋ฆด๋ฆฌ์ค ์ค ํ๋์ ๋๋ค.
์ด๋ ๊ฒ ์๋ก์ด Rails ๋ฆด๋ฆฌ์ค์ ํฅ๋ถํ ๊ฒ์ ์ ์ด๋ Rails 7 ์ดํ๋ก ์ฒ์์ธ ๊ฒ ๊ฐ์ต๋๋ค.
Rails 7์ด ํ๋ ์์ํฌ์ ๋ฐ์ ๋ฐฉํฅ๊ณผ ์ธ์์ ํฅํ ์์ ๊ฐ์ ๋ํด ์๋ก์ด ๋ถ์๊ธฐ๋ฅผ ์กฐ์ฑํ๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ Rails 7์ ๋ํด ์ ์ ์ด์ผ๊ธฐํ๊ณ ์ถ์ต๋๋ค.
ํ๋์ ์ฐ๋ฆฌ๋ ์ธ์์ ๋ค๋ฅธ ๋ถ๋ถ์์ ์ ํธ๋ฅผ ๋ฐ์ ํ๋ก ํธ์๋๊ฐ ์ด ๋ฐฉํฅ์ผ๋ก ์์ง์ด๊ณ ํด๋ผ์ฐ๋๊ฐ ์ด ๋ฐฉํฅ์ผ๋ก ์์ง์ด๊ณ ์๋ค๋ ๊ฒ์ ๊นจ๋ซ๊ณ ๊ทธ๋ฅ ๋ฐ๋ผ๊ฐ์ผ ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
์ ๋ ๊ทธ๋ฐ ๋ฐ๋ผ๊ฐ๋ ๋๋์ ๋ํด ์ ์ ๋ถ์๊ฐ์ ๋๊ผ์ต๋๋ค.
๊ทธ ๊ธธ์ ๋ฐ๋ผ๊ฐ๋ ๋ง์ ๋ถ๋ถ์ด ์ ๊ฒ๋ ๋ง์ด ๋์ง ์์๊ณ , ์ฌ๋ฐ๋ฅธ ๊ธธ์ด ์๋๋ผ๊ณ ์๊ฐํ์ง๋ง, ์์ง ์ ๋๋ก ํํํ ๋ฐฉ๋ฒ์ด ์์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋์ ๋ช ๋ ๋์ ์ฐ๋ฆฌ๊ฐ ๋ ์ํ ์ ์๋ค๋ ์๊ฐ์ด ์ ์ ์ปค์ก์ต๋๋ค.
Webpacker๋ฅผ ํตํฉํ๋ Rails 5 ์ถ์ ๋์กฐ์ฐจ๋ ์ ๋ ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ํด์ผ ํ ์ผ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง, ๊ทธ๋ ๊ฒ ํฅ๋ถ๋๋ ์ผ์ ์๋์์ต๋๋ค.
Rails 7์ ๊ทธ ํฅ๋ถ์ ๋์ด๋ ธ์ต๋๋ค.
์ค๋ซ๋์ ์ปค์ ธ ์๋ ๋น์ ์ ์คํํ๊ณ ์์ผ๋ก ์ถ์๋ Rails๊ฐ ๊ทธ์ ๋์ผํ ์์ ๊ฐ์ ๋ฐ๋ฅด๊ณ ๊ทธ ์์ ๊ฐ์ ๋ฐ์ ์ํฌ ์ ์๋ ๋ก๋๋งต์ ์ ๊ณตํ ์ ์์ ๊ฒ ๊ฐ์ ๊ธฐํ๊ฐ ๋ง์นจ๋ด ์๊ฒผ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ ํฅ๋ถ์ ๋์ด๋ ธ์ต๋๋ค.
์ ๊ฐ ๊ทธ ํฅ๋ถ์ ์๋ดํ๋ ๋ฐ ์ฌ์ฉํด ์จ ๋ ์ฆ ์ค ํ๋๋ ํจํด ์ธ์ด๋ผ๋ ์์ด๋์ด์์ต๋๋ค.
ํจํด ์ธ์ด ํ ํ๋ฆฟ์๋ ๋ฌธ์ , ์ปจํ ์คํธ, ์๋ฃจ์ , ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.
์น์ด ๋์๊ฐ๋ ๋ฐฉํฅ์ ๋ํด ์ ๊ฐ ์ข์ํ์ง ์์๋ ๋ชจ๋ ๊ฒ์ ์ดํด๋ณด๋, ์๋์ ๋ค๋จ์ด์ง ํจํด, ๊ฐ๋น์ง ์ปฌ๋ ์ ์ผ๋ก ํ์๋์์ง๋ง ์์ง ์์ง๋์ง ์์ ํจํด, ๋ ์ด์ ์ฐ๋ฆฌ๊ฐ ๋ฐ์ ์ํฌ ์ ์๋ ์ปจํ ์คํธ์์ ๊ด๋ จ์ฑ์ด ์๋ ํจํด์ด์์ต๋๋ค.
Rails 7์ ๊ฒฝ์ฐ, ์ ์๊ฒ ์ปจํ ์คํธ์ ๋ณํ๋ ์น ๊ธฐ์ ์ ๊ทผ๋ณธ์ ์ธ ๋ณํ์์ต๋๋ค.
ES6 JavaScript๊ฐ ๋ธ๋ผ์ฐ์ ์์ ๋ฐ๋ก ํธ๋์คํ์ผ๋ง ์์ด ์ค์ ๋ก ์ ์๋ํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
HTTP2 ๋๋ถ์ ํญ๋ชฉ์ ํฐ ๋จ์๋ก ๋ฌถ์ ํ์๊ฐ ์์ด์ก๊ณ , Import Maps ๋๋ถ์ ๋ธ๋ผ์ฐ์ ์ฉ ์ต์ ์ฝ๋๋ฅผ ์ง์ ์์ฑํ ์ ์๊ฒ ๋์๋ค๋ ์ฌ์ค๋ ์์์ต๋๋ค.
์ด์ ์ด๋ก ์ธํด ํจํด์ด ๋ฌดํจํ๋์๋ค๋ ๊ฒ์ด ์ ๊ฒ๋ ๋งค์ฐ ๋ถ๋ช ํ์ต๋๋ค.
์์ ์๋ ๋ธ๋ผ์ฐ์ ์ 4๊ฐ์ ์ฐ๊ฒฐ์ ์ด ์ ์์๊ณ , ๋ ๋ง์ ์ฐ๊ฒฐ์ ์ด๋ ค๋ฉด ํ๋์ฉ ๊ธฐ๋ค๋ ค์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๊ฒ์ ๋ฌถ์ด์ผ ํ๋ค๋ ํจํด์ด ์์์ต๋๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ JavaScript๋ฅผ ์ ๋ง ๋ชปํ์ง๋ง, ์ฐ๋ฆฌ์๊ฒ๋ ๋ ์ข์ ์์ด๋์ด๊ฐ ์๊ณ , ๊ทธ ์์ด๋์ด๋ฅผ ๋ ๋์ JavaScript๋ก ํธ๋์คํ์ผํ์ฌ ์ด๋ฌํ ๋ชจ๋ ๋ฐ์ ์ ํ์ ์ค์ด์ค ์ ์๋ค๋ ํจํด๋ ์์์ต๋๋ค.
๋ฌดํจํ๋ ์ปจํ ์คํธ, ๊ทธ ์์ด๋์ด๋ ๋ ์ด์ ๋ง์ด ๋์ง ์์์ง๋ง, ์ ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ก์ ์ฐ๋ฆฌ๊ฐ ์ญ์ฌ์ ์ผ๋ก ๋ชปํ๋ ๋ ๊ฐ์ง๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํ๋๋ ์ด๋ฆ ์ง๊ธฐ์ด๊ณ , ๋ค๋ฅธ ํ๋๋ ์บ์ ๋ฌดํจํ์ ๋๋ค.
์ ๊ฐ ๊ฐ์ฅ ์ ๊ฒฝ ์ฐ๋ ๊ฒ์ ์ ์ ๋ชจ๋ธ์ ์บ์ ๋ฌดํจํ์ ๋๋ค.
๋ฐ๋ก ์ฌ๊ธฐ์ ์ง์ฐ์ด ๋ฐ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ES6, HTTP2, Import Maps๊ฐ ์๋ ์ด ์ปจํ ์คํธ๋ ์ฐ๋ฆฌ๊ฐ ๊ทธ ์ด์ ์ ์์ ํ ํ์ฉํ๊ธฐ ๋ช ๋ ์ ์ ๋ฐ์ํ๊ณ , ์ฌ๋๋ค์ด ์น์ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๊ธธ๊ณ ๋ณต์กํ๋ฉฐ ํ๋ ๋น๋ ํ์ดํ๋ผ์ธ์ ๊ฐ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ ์ง ๋ช ๋ ํ์ ๋ฐ์ํ์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ด ์ปจํ ์คํธ๊ฐ ์ฌ๋ฐ๊ฒฌ๋์๊ณ , ๋ ์ด์ ๋ง์ด ๋์ง ์๋ ํจํด์ด ๋ง๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.
Rails 7์ ๊ฒฝ์ฐ, ๊ทธ ์๋ก์ด ์ปจํ ์คํธ์ ๋ํ ๋ต๋ณ์ ์ผ๋ถ๋ Hotwire์์ต๋๋ค.
Hotwire๋ ๋ฐฑ์๋์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ ์๋กญ๊ณ , ๋ ๊ฐ๋จํ๊ณ , ๊ฒธ์ํ JavaScript ์์ฑ ๋ฐฉ์์ ๋๋ค.
Hotwire๋ ๊ทธ ์๋ก์ด ์ปจํ ์คํธ์์ ์๋ฆ๋ต๊ฒ ์๋ํ๋ฉฐ 2024๋ ์ ์ ํฉํ ํจํด์ ๋๋ค.
2012๋ ์ ์ ํฉํ ํจํด์ด ์๋์๊ณ , ์ฐ๋ฆฌ๊ฐ ๋ ๋จ์ํ ๊ณณ์ ๋๋ฌํ ์ ์๊ฒ ํด์ค ๋ณต์ก์ฑ์ ์ ๊ธ์ ํต๊ณผํ๊ธฐ ์ ์๋ ์ ํฉํ ํจํด์ด ์๋์์ต๋๋ค.
ํญ์ ๊ทธ๋ฌ๋ฏ์ด Hotwire์ ๋ํ ์์ ๊ณผ ์ค๋๋ ์ ํจํด ์ค ์ด๋ค ๊ฒ์ด ๋ ์ด์ ๊ด๋ จ์ฑ์ด ์๋์ง ํ์ ํ๋ ์์ ์ ์ถ์ถ์ ํตํด ์ด๋ฃจ์ด์ก์ต๋๋ค.
Rails ์ปค๋ฎค๋ํฐ์์ ์ฐ๋ฆฌ๋ ์ถ์ธก์ ๊ทผ๊ฑฐํ ํ๋ ์์ํฌ๋ฅผ ๋ง๋๋ ์ฌ์ ์ ํ๋ ๊ฒ์ด ์๋๋ผ, ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ค์ ๊ณ ๊ฐ๊ณผ ํจ๊ป ์ค์ ํ๋ก๋์ ์๋ ฅ์ ๋ฐ์ผ๋ฉฐ ์๋ํ๋ ๊ฒ์ผ๋ก ์ ์ฆ๋ ์๋ฃจ์ ์ ๊ฐ์ ธ์์ ์ ๋ฌผ๋ก ์์๊ฒ ํฌ์ฅํ ๋ค์ ๊ณต์ ํ๋ ์ฌ์ ์ ํฉ๋๋ค.
์ด๊ณณ์์ ์ฐ๋ฆฌ๊ฐ ํ๋ ์ผ์ ๋๋ค.
Hey์ ๋ํ ์์ ์ ๊ทธ ์๋ก์ด ํจํด์ ๋ฐ๊ฒฌํ๊ฒ ๋ ๊ธธ์ด์๊ณ , ์ ๊ณ ์ ์ฒด๊ฐ ํ๋ ธ๋ค๋ ๊ฒ์ ํ์ธํ๊ฒ ๋ ๊ธธ์ด์์ต๋๋ค.
๋ง์น "๋ชจ๋๊ฐ ํ๋ ธ๋?"๋ผ๋ ๋ฐ๊ณผ ๊ฐ์ต๋๋ค.
"์๋, ์๋์ผ.
๋ด๊ฐ ํ๋ ธ๋, ์๋๋ฉด ๋ชจ๋๊ฐ ํ๋ ธ๋?" "์๋, ๋ชจ๋๊ฐ ํ๋ ธ์ ๊ฑฐ์ผ." ๊ทธ๊ฒ์ด ๋ณธ์ง์ ์ผ๋ก Rails 7์ ํ๋ก ํธ์๋ ์ ๊ทผ ๋ฐฉ์์ ์ ์ ์์ต๋๋ค.
๋ชจ๋๊ฐ ํ๋ ธ๊ณ , ๋ฌด๊ฑฐ์ด ๋น๋ ํ์ดํ๋ผ์ธ์ ๋ฐ์๋ค์ผ ํ์๊ฐ ์๊ณ , ๋ฒ๋ค๋ง์ ๋ฐ์๋ค์ผ ํ์๊ฐ ์๊ณ , ํธ๋ฆฌ ์์ดํน์ ๋ฐ์๋ค์ผ ํ์๊ฐ ์๊ณ , ์ต์ ์น ๊ตฌ์ถ์ ์ด๋ฌํ ๋ชจ๋ ์ ์ ๋ฅผ ์ฌ์ค๋ก ๋ฐ์๋ค์ผ ํ์๊ฐ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๋ค๋ฅธ ์ด์ผ๊ธฐ๋ฅผ ์ธ ์ ์๊ณ , ๊ทธ๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ํ ์ผ์ ๋๋ค.
ํฅ๋ฏธ๋ก์ด ์ ์ 2018๋ ์ Hey ์์ ์ ์์ํ๊ณ ์ด๋ฌํ ํธ๋ ๋ ์ค ์ผ๋ถ๊ฐ ๋ค๊ฐ์ค๋ ๊ฒ์ ๋ณด์์ง๋ง ์์ง ์ค๋น๊ฐ ๋์ง ์์๋ค๋ ๊ฒ์ ๋๋ค.
2020๋ ์ Hey๋ฅผ ์ถ์ํ์ ๋๋ ์์ง ์์ ํ ์ค๋น๋์ง ์์์ต๋๋ค.
Hotwire๋ฅผ ์ค์ฌ์ผ๋ก ์์ ์ ๊ตฌ์ฑํ์ง๋ง ์ฌ์ ํ Webpack์ ์ฌ์ฉํ๊ณ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด๋ฌํ ์์ด๋์ด๋ฅผ ์์ ํ ์คํํ๊ณ ๋ฐ์ ์ํค๊ธฐ๊น์ง๋ ์ฌ์ค 1๋ ์ ๋ ๊ฑธ๋ ธ๊ณ , ์ค์ ๋ก ์ด์ ๊น์ง Hey์ ๋ชจ๋ ๋ถ๋ถ์ ๋ํด ๋น๋ ์์ด 100% ์์ ํ ๊ตฌํํ ์ ์์์ต๋๋ค.
JavaScript์๋ ๋น๋ ๋ผ์ธ์ด ์๊ณ , CSS์๋ ๋น๋ ํ์ดํ๋ผ์ธ์ด ์์ต๋๋ค.
๋ชจ๋ ๊ฒ์ด ์์ฑ๋ ๊ทธ๋๋ก ๋ธ๋ผ์ฐ์ ์ ๋ฐ๋ก ์ ๊ณต๋ฉ๋๋ค.
์ด์ ์ ์๊ฒ ์ด๋ ๊ฒ ํ๋ ๊ฒ์ ์ด์ ์ ์ด๋ฌํ ํจํด๊ณผ ์๋ก์ด ์ฌ๊ณ ๋ฐฉ์์ ์คํํ ์ ์๋ค๋ ๊ฐ์ธ์ ์ธ ๋ง์กฑ๊ฐ๋ฟ๋ง ์๋๋ผ, ์ด๊ฒ์ด ๊ฐ๋ฅํ์ง์ ๋ํ ๋ ผ์๋ฅผ ์ํ ๋ฐ๋ฐํ ์ ์๋ ์ต์ปค ํฌ์ธํธ๋ฅผ ์ ๊ณตํ๋ค๋ ๊ฒ์ ๋๋ค.
์ธํฐ๋ท์๋ ์ฌ๋ฌ๋ถ์ด ํ๋ ค๋ ์ผ์ด ์๋ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ , ์ค์ ์ธ๊ณ์์๋ ์๋ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ , ์ค์ ์ฌ์ฉ์์๊ฒ๋ ์๋ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ , ์ค์ ๊ณ ๊ฐ์๊ฒ๋ ์๋ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ , ๊ทธ๋ค์ ๊ทธ๋ฅ ์ฐธ์ง ์์ ๊ฒ์ด๋ผ๊ณ ๋งํ๋ ์ฌ๋๋ค์ ๋์๋ ๋ถํํ์์ด ์์ต๋๋ค.
๊ทธ๊ฒ์ ๋ฐ๋ฐํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ ผ์์ ๋ฒ์ด๋ ๊ฒ์ด ์๋๋ผ ์๋ํ๋ ์ํํธ์จ์ด๋ฅผ ์ถ์ํ๋ ๊ฒ์ ๋๋ค.
์ผ๋จ ์๋ํ๋ ์ํํธ์จ์ด๋ฅผ ์ถ์ํ๋ฉด ์์ง์ผ ์ ์๋ ๋ ผ๊ฑฐ๋ฅผ ์ํ ๊ธฐ๋ ๋น๊ฐ ์๊น๋๋ค.
๋น๋ ์์ด ์๋ํ์ง ์๋๋ค๊ณ ์ฃผ์ฅํ ์ ์์ง๋ง, ์๋ํ์ง ์๋๋ค๊ณ ์ฃผ์ฅํ ์๋ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ด ์๋ํ๋ค๋ ๊ฒ์ ์ฆ๋ช ํ์ต๋๋ค.
์ ๋ Toby์ ์ฐ๋ก ํธ์์ ์ด ํ์์ ์๋ฒฝํ ๊ตฌํ์ฒด๋ก ์๊ฐํฉ๋๋ค.
20๋ ๋์ ์ฌ๋๋ค์ Rails๊ฐ ํ์ฅ๋์ง ์๋๋ค๊ณ ๋งํด ์์ต๋๋ค.
์๋ 11์, Toby๋ ์ธ๊ณ์์ ๊ฐ์ฅ ํฐ Rails ์ฑ์์ ์ด๋น 100๋ง ๊ฑด์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋ํด ํธ์ํ์ต๋๋ค.
์ด๊ฒ์ "์ ๋ค๋ฌผ์ด!"๋ผ๊ณ ๋งํ๋ ๊ธฐ๋ ๋น์ ๋๋ค.
์ด ๋ ผ์์ ๋๋ฌ๊ณ , ๋ค์ ์ด์ผ๊ธฐํ ํ์๊ฐ ์์ต๋๋ค.
๊ทธ๋ฅ ํธ์์ ๋ณด์ธ์.
ํธ์์ด ๊ธฐ๋ ๋น์ ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ฐ๋ฆฌ์๊ฒ๋ ์ค์ง์ ์ธ ์ด์ ์ด ์์ต๋๋ค.
์ด๊ฒ์ Hey์ JavaScript ๋ก๋ฉ ๋ฐฉ์์ ๋๋ค.
์์ค ๋งต๋ ์๊ณ ๋ฒ๋ค๋ง๋ ์์ต๋๋ค.
์์ฑ๋ ๊ทธ๋๋ก ๋ธ๋ผ์ฐ์ ์ ๋ฐ๋ก ์ ๊ณตํ๊ณ ์์ผ๋ฉฐ, ๋ชจ๋ ๊ฒ์ ์ดํด๋ณผ ์ ์์ต๋๋ค.
์ด์ ์ ๋ ๊ทธ๊ฒ์ ๋ณด๋ฉด์ ํฅ์๋ฅผ ๋๋๋๋ค.
์ ๊ฐ ์น์ ๋ฐฐ์ด ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ต์ํ์ ๊ฐ์ ์ฅ์น๋ฅผ ์๊ฐํด๋ด๊ธฐ ์ ์ ์ฌ๋๋ค์ด ์น์ ์ด๋ป๊ฒ ๋ง๋ค์๋์ง ์ดํด๋ณด๋ฉด์ ์น์ ๋ฐฐ์ ์ต๋๋ค.
์คํ ์น์ ๊ฐํด์ง ์ํน ํ์ ์ค ํ๋์ธ ์ต์ํ๋ ์ค๋ฒํค๋๋ฅผ 2%, 5%๋ง ์ค์ผ ์ ์๋ค๋ฉด ์๋ก์ด ์ฌ๋๋ค์ ์ํ ํ์ต ํ๋ซํผ์ผ๋ก์์ ์น์ ํ๊ดดํ ๊ฐ์น๊ฐ ์๋ค๋ ์ ์ ๋ฅผ ์ทจํฉ๋๋ค.
์ ๋ ์๋๋๋ค.
์ ๋ ์๋๋๋ค.
์ฐ๋ฆฌ๋ ์คํ ์น์ ์์ฒญ๋ ๊ฐ์ฌ๋ฅผ ๋น์ง๊ณ ์์ผ๋ฉฐ, ์์ค ๋ณด๊ธฐ๋ฅผ ํ์ฉํจ์ผ๋ก์จ ์คํ ์น์ ๊ฒฝ์๋ฅผ ํํ ์ ์์ด์ผ ํฉ๋๋ค.
์์ค ๋ณด๊ธฐ์๋ ์ด๊ฒ์ด ํ์ํฉ๋๋ค.
ํธ๋ฆฌ ์์ดํน, ๋ฒ๋ค๋ง ๋ฑ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์์ค ๋ณด๊ธฐ๋ฅผ ํ ์ ์์ต๋๋ค.
์์ค ๋งตํ ๋ฑ์ผ๋ก ํจ์นํ๋ ค๊ณ ํ ์๋ ์์ง๋ง, ๋ณต์ก์ฑ ์์ ๋ ๋ง์ ๋ณต์ก์ฑ์ ์๊ณ ์๋ ๊ฒ์ด๊ณ , ํ์ ๋ฌด๋์ง ๊ฒ์ ๋๋ค.
Rails 7์ฉ ๋น๋ ์์ด ๊ตฌํํ๋ ๋ฐ ๊ด์ฌ์ ๊ฐ๊ฒ ๋ ์ด๊ธฐ ๊ณ๊ธฐ๋ ์ ๊ฐ ๋๋ฌด๋ ๋ถ์ฃผ์ํ๊ฒ ์ฝ 5๋ถ ๋์ ๋ฐฉ์นํ๋ JavaScript ํ๋ก์ ํธ๋ฅผ ์ปดํ์ผํ ์ ์๋ค๋ ์ฌ์ค์ ์ง์ฆ์ด ๋ฌ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด๋ค ๋๊ตฌ๋ ์๋ํ์ง ์์๊ณ , ๋ชจ๋ ๊ฒ์ด ์ค๋๋์์ต๋๋ค.
๋ค์ ์ปดํ์ผํ ์ ์๋๋ก ์ ๋ฐ์ดํธํ๋ ค๊ณ ํ์ ๋ ๋ง ๊ทธ๋๋ก ๋ฐฉ๋ฒ์ ์ ์ ์์์ต๋๋ค.
๋น์ Webpacker์ ์จ๋ฆํ๋๋ผ ๋ฐ๋์ ์ ๋ณด๋๊ณ , ๋ง ๊ทธ๋๋ก ํ ์ด๋ธ์ ๋ค์ง์์ต๋๋ค.
"์๋, Webpacker๋ฅผ Rails์ ํตํฉํ ์ฌ๋์ด ๋ฐ๋ก ๋์ธ๋ฐ, ์ด๊ฒ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ ์๊ฐ ์์ด.
์๋, ์๋์ผ.
์ด ๋ชจ๋ธ์๋ ๊ทผ๋ณธ์ ์ผ๋ก ์๋ชป๋ ๋ถ๋ถ์ด ์์ด."๋ผ๊ณ ๋งํ์ต๋๋ค.
๊ทธ๋ ์ ๋ ์ง์ค์ ๊นจ๋ฌ์์ต๋๋ค.
์ง์ค์ ๋ธ๋ผ์ฐ์ ๋ง์ด ์์ํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ธ๋ผ์ฐ์ ๋ง์ด ์ฐ๋ฆฌ๊ฐ 30๋ ์ ์ ๋ง๋ ์ฝ๋, ๋งํฌ์ , ์คํ์ผ์ ์์ ์์ด ๋ถํ ์์ด ์คํํ ์ ์๊ฒ ํด์ค๋๋ค.
๊ทธ๊ฒ์ด ๋ฐ๋ก ์ต์ ๋ธ๋ผ์ฐ์ ์ ์๋ฆ๋ค์์ ๋๋ค.
์ต์ ๋ธ๋ผ์ฐ์ ๋ ๋ณต์ก์ฑ์ ๊ดด๋ฌผ์ด๋ฉฐ, ์ค๋๋ ์ฒ์๋ถํฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ๊ตฌํํ๋ ค๋ ๊ฒ์ ์ ๊ฐ์ฅ ํฐ ์ ์๊ฒ๋ ๋ฐ๋ผ์ง ์์ ๊ฒ์ ๋๋ค.
ํ์ง๋ง ์น ๊ฐ๋ฐ์๋ก์ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ ๊ฒ ์ข์์ง๊ณ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ๋ํ ํ์ ์ผ๋ก ์ธํด ์ป๋ ์ด์ ์ ๋๋์ต๋๋ค.
๋๋์ต๋๋ค.
1995๋ ์ ๋์์ธํ ๊ฒ์ด ์ค๋๋ ์๋ ์ฌ์ ํ ๊ทธ๋๋ก ๋ณด์ด๊ณ ์ฌ์ ํ ๊ฐ์ฅ ํฐ ์น์ฌ์ดํธ ์ค ํ๋๋ผ๋ ์์ด๋์ด๋ ๋๋์ต๋๋ค.
์ด๊ฒ์ Craigslist์ ๋๋ค.
1995๋ ์ ์ถ์๋ ๋์์ธ์ ์กฐ๊ธ๋ ๋ฐ๊พธ์ง ์์๋ค๊ณ ์๊ฐํ์ง๋ง ์ฌ์ ํ ์๋ํฉ๋๋ค.
์ฌ์ ํ ์๋ํ ๋ฟ๋ง ์๋๋ผ ์ฌ์ ํ ๋ฒ์ฐฝํ๊ณ ์์ต๋๋ค.
์ํํธ์จ์ด ๊ฐ๋ฐ์์ ๊ทธ ์ ๋์ ์๋ช ์ ์ฐ๋ฆฌ๊ฐ ์ด๋งํด์ผ ํ ๋ฌด์ธ๊ฐ์ ๋๋ค.
์๊ฐ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ๋ฐ๋ก ์ ๋ฌ๋๊ณ , ๋ธ๋ผ์ฐ์ ๊ฐ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง ๋ชจ๋ ์ฝ๋์ ๋ฐํ์์ด๋ผ๋ ์ง์ค์ ํตํด ์ ๋ฌ๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฐ๋ฆฌ์ ๋ธ๋ผ์ฐ์ ์ฌ์ด์ ์ค๊ฐ์๋ฅผ ์ ๊ฑฐํ ์๋ก ๋ ์ข๊ณ , 5๋ถ ํ์๋ ์คํ๋ ์ฝ๋๋ฅผ ๊ฐ์ง ๊ฐ๋ฅ์ฑ์ด ๋ ๋์ต๋๋ค.
๊ทธ๋ฌ๋ Rails Doctrine์์ ๋ฐ๋ก ๊ฐ์ ธ์จ ๋ ๋ค๋ฅธ ์์น์ ์ฐ๋ฆฌ๊ฐ ํฐ ํ ํธ๋ฅผ ๋ฐ๊ณ ์๋ค๋ ์์ด๋์ด์ ๋๋ค.
Rails 7๋ก ํ ์ ์์๋ ์ผ์ ๋ํด ์์ฒญ๋๊ฒ ํฅ๋ถํ์ต๋๋ค.
37signals์์ ์์ฑํ๋ ๋ชจ๋ ์ฝ๋๋ ๋น๋ ์์ด ๊ตฌํ๋ฉ๋๋ค.
Hey ์ดํ๋ก ๋ง๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ค ํํ์ JavaScript ์ปดํ์ผ๋ ์์ด, ์ด๋ค ํํ์ CSS ํ์ดํ๋ผ์ด๋๋ ์์ด ๊ตฌ์ถ๋์์ต๋๋ค.
๋๋์ต๋๋ค.
๋ชจ๋ ์ฌ๋์ ์ํ ๊ฒ์ ์๋๊ณ , ๋ชจ๋ ์ฌ๋์ ์ํ ๊ฒ์ด ๋ ํ์๋ ์์ต๋๋ค.
์ ๊ฐ ์ถ์งํ๋ ์์ด๋์ด๋ ์ต์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ ๋ํ ์ฌ์ ์ง์์ด ๊ฑฐ์ ์๋ ์ฌ๋์ด๋ผ๋ ๋๊ตฌ๋ ์ฝ๊ฒ ์์ํ ์ ์๋ ์ํผ์จ ํ๋ ์์ํฌ๋ฅผ ๋ง๋๋ ๋ ํฐ ์๋ฌด์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
์ ๋ง์ ์ฆ๊ฑฐ์์ ์ํด์๋ฟ๋ง ์๋๋ผ ๊ทธ ์๋ฌด๋ฅผ ์ํด์๋ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
ํ์ง๋ง ๊ทธ๊ฒ์ ๋ช ๋ น์ด ์๋๋๋ค.
Rails๊ฐ Hello World์์ IPO๊น์ง ๋ฒ์ฐฝํ ์ ์์๋ ์ด์ ์ค ํ๋๋ ์ฌ๋๋ค์ด ์ํ๋ ๋ถ๋ถ์ ์ ํํ ์ ์๋ ์ ์ฐ์ฑ์ ๋๋ค.
์ฌ์ค ๊ทธ๋ ์ง ์์ต๋๋ค.
๋ชจ๋ ๊ฒ์ ์ ํํ ์ ์๊ณ , ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ํ๊ณ ์ถ์ ๋ถ๋ถ์ ์ ํํ์ง ์์ ์ ์์ต๋๋ค.
๊ทธ๊ฒ์ ํ๋ฅญํ ์ผ์ ๋๋ค.
React๋ถํฐ ๋ฌด์์ด๋ ๋ชจ๋ ๊ฒ์ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ง์ด ์์ผ๋ฉฐ, ๊ทธ๊ฒ์ ํ๋ฅญํ ์ผ์ด๊ณ , Rails 7๋ก ํด๊ฒฐํ ์ ์์๋ ๊ฒฝ๋ก๊ฐ ๋ง์์ ๋ญ๋๋ค.
ํ์ง๋ง ๊ทผ๋ณธ์ ์ผ๋ก ์ ๊ฐ ์ฌ์ ํ ์ฌ๊ธฐ์ ์๋ ์ด์ , 20๋ ์ด ์ง๋ ์ง๊ธ๋ ์ฒซ๋ ๋งํผ์ด๋ ์ด์ ์ ๋๋ ์ ์๋ ์ด์ ๋ ์ฐ๋ฆฌ๊ฐ ๋ ํฐ ์๋ฌด๋ฅผ ํฅํด ๋์๊ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ํผ์จ ํ๋ ์์ํฌ๋ผ๋ ๋ ํฐ ์๋ฌด, ์ปจํ ์คํธ๊ฐ ๋ ์ด์ ๊ด๋ จ์ฑ์ด ์๋ ํจํด์ ๋ฌดํจํํ๋ ๋ ํฐ ์๋ฌด, ๊ทธ๊ฒ์ด ๋ฐ๋ก ์ ๊ฐ ์ด์ ์ ๋๋ผ๋ ์ด์ ์ ๋๋ค.
์ผ๋ง ์ ์ ์ด ๋ค์ ๋ด์ฉ์ ํธ์ํ๋๋ฐ, Matt์ด RSW์ ์๋ค๋ ๊ฒ์ ๊ธฐ๋ ํ์ฌ ํ์ด์ฟ ๋ก ๋ค์ ์จ ๋ณด์์ต๋๋ค.
"๋ฐ์ ์ ์ฐ๋ฆฌ์ ๊ธธ, ๋ณต์ก์ฑ์ ๋ค๋ฆฌ๋ฅผ ๋๊ณ , ๋จ์ํจ์ ๊ธฐ๋ค๋ฆฐ๋ค." ํ์ด์ฟ ํํ์ด๋ ์๋๋ , ์ด ๊ฐ์ ์์ ์ ๊ฐ ์ข์ํ๋ ๋ถ๋ถ์ ๋ณต์ก์ฑ์ด ์ค์ ๋ก ๋ฐ์ ์ ํ์ํ ์์๋ผ๋ ์์ด๋์ด์ ๋๋ค.
ํ์ง๋ง ๊ทธ๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ๋ฉ์ถ๋ ๊ณณ์ ์๋๋๋ค.
์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ํด๊ฒฐํ๋ค๊ณ ํด์ ๋๋ ๊ฒ์ด ์๋๋ผ ๋จ์ํ๊ฒ ๋ง๋ค์๋ค๊ณ ํด์ ๋๋ ๊ฒ์ ๋๋ค.
์ธ์ ๋ฉ์ถ๊ณ ์ธ์ ํฅ๋ถํด์ผ ํ๋์ง์ ๋ํ ๋งค์ฐ ๋ค๋ฅธ ์ฒ ํ์ด๋ฉฐ, Rails๋ฅผ ํฌํจํ์ฌ ์์ผ๋ก ๋ชจ๋ ์ผ์ ์ ์ฉํ๋ ค๊ณ ๋ ธ๋ ฅํ๋ ์ฒ ํ์ ๋๋ค.
์ด๊ฒ์ ๋ฐฐ๋น๊ธ์ ๋๋ค.
๋ณธ์ง์ ์ผ๋ก Rails 7์ ์ ์ ์ ์์ฝํ ๊ฒ์ ๋๋ค.
๋ธ๋ผ์ฐ์ ์ ์์กดํ์ธ์.
์ต์ ๋ธ๋ผ์ฐ์ ๋ง ์์ผ๋ฉด ์ด ์ข์ ๊ฒ๋ค์ ํ์๋ฅผ ๋๋ฆด ์ ์์ต๋๋ค.
ํนํ ์ง๋ 3~4๋ ๋์ ์ด๋ฃจ์ด์ง ๋ชจ๋ ๋ฐ์ ๋๋ถ์ ์น ๊ฐ๋ฐ์๊ฐ ๋๋ ๊ฒ์ด ํจ์ฌ ๋ ์ข์์ก๊ณ , ๋ถํ์ํ ๋๊ตฌ ์์ด ํจ์ฌ ๋ ์ฌ๋ฏธ์์ด์ก์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ "์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ๋ธ๋ผ์ฐ์ ์ฉ์ ๋๋ค."๋ผ๊ณ ๋งํจ์ผ๋ก์จ ๊ทธ ๋ชจ๋ ๊ฒ์ ์์ฝํ ์ ์์ต๋๋ค.
์ด์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํด ๊ทธ๋ ๊ฒ ํ ์๋ ์์ต๋๋ค.
์ผ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์ค๋๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ง์ํด์ผ ํ์ง๋ง, ๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํด ๊ทธ๋ ๊ฒ ํ ์ ์๊ณ , ์ค๋๋ ์๋ก์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํ๋ค๋ฉด ๋ฐ๋์ ๊ทธ๋ ๊ฒ ํด์ผ ํฉ๋๋ค.
์ฌ๊ธฐ์๋ ๋ ํฐ ๋ชฉ์ ์ด ์์ต๋๋ค.
๋ชฉ์ ์ ๋จ์ํ ์ต๊ณ ์ ํจํด์ ์ฐพ๋ ๊ฒ์ด ์๋๊ณ , ๋จ์ํจ ์์ฒด๋ฅผ ์ํด ๋จ์ํจ์ ์ถ๊ตฌํ๋ ๊ฒ์ด ์๋๋๋ค.
๋น๋ก ๋จ์ํจ ์์ฒด๊ฐ ์ ๋ฌผ์ด๊ธฐ๋ ํ์ง๋ง์.
๋ชฉ์ ์ ์ฐ๋ฆฌ์ ์ ํ๋ ์์ญ์ด ๋๋์ ๋ง๊ฒ ์ต์ ํํ๋ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ์ ๋๋๋ ๊ทธ๋ ๊ฒ ๋ง์ ๊ฒ์ ๋ด์ ์ ์๊ณ , ๋ณต์กํ ๋น๋ ํ์ดํ๋ผ์ธ์ ๋ณต์กํ ๋ถ๋ถ์ ๋ฐฐ์ฐ๋ ๋ฐ ๋ชจ๋ ๊ฒ์ ์ฌ์ฉํ๋ค๋ฉด ๋ค๋ฅธ ๊ฒ์ ๋ด์ ๊ณต๊ฐ์ด ๋ง์ง ์์ต๋๋ค.
์ ๊ฐ ๊ณต๊ฐ์ ๋ง๋ค๊ณ ์ถ์ ๊ฒ์ ๋ฐ๋ก ๊ทธ ๋ชจ๋ ๊ฒ์ ๋๋ค.
์ ์ฒด ๋ฌธ์ ์ ์ ์ฒด ์๋ฃจ์ ์ ๋ณด๊ณ ๊ฐ๋ฅํ ํ ์ค๋ซ๋์ ๋จธ๋ฆฟ์์ ๋ด์๋ ์ ์๋ ํ์คํ ๊ฐ๋ฐ์๋ฅผ ์ํ ๊ณต๊ฐ์ ๋ง๋ค๊ณ ์ถ์ต๋๋ค.
๊ฒฐ๊ตญ์๋ ๋ถ๊ฐ๋ฅํ ๊ฒ์ ๋๋ค.
Shopify๊ฐ ์ฃผ์ ๋ชจ๋๋ฆฌ์ค์ ๊ฐ์ง๊ณ ์๋ 500๋ง ์ค์ ์ฝ๋๋ฅผ ๋๊ตฐ๊ฐ๊ฐ ๋์์ ๋จธ๋ฆฟ์์ ๋ด์๋ ์ ์๋ค๊ณ ๋ ์๊ฐํ์ง ์์ต๋๋ค.
ํ์ง๋ง Toby๊ฐ ์ค๋ซ๋์ ๊ทธ๋ ๊ฒ ๋ง์ ์ฝ๋๋ฅผ ๋จธ๋ฆฟ์์ ๋ด์๋ ์ ์์๋ ๋๋ถ์ ์ฐ๋ฆฌ๋ ๊ฑฐ๊ธฐ์ ๋๋ฌํ ์ ์์๊ณ , ๊ทธ๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ์ด๋ฌํ ๋ ผ์์์ ์ฐํํ๋ ๋ฐฉ์์ ๋๋ค.
์ฌ๋๋ค์ "์ฒ์์๋ ์ข์ง๋ง, ํ๋ฃจ์ ์์ญ์ต ๋ฌ๋ฌ๋ฅผ ๋ฒ๊ฒ ๋๋ฉด ์ด๋ป๊ฒ ํ ๊ฑฐ์ผ?"๋ผ๊ณ ๋งํฉ๋๋ค.
๋ฌด์จ ๋ง์์ด์ ์ง? ์ด๋ป๊ฒ ํ ๊ฑฐ๋๋? ๋ฌด์จ ์ผ์ด ์์ด๋ ํ ์ ์๋ ์ผ์ ํ ๊ฒ๋๋ค.
์๋ํ๋ฉด ๊ทธ๊ฑด ์ค์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋์ฏค์ด๋ฉด ์ธ์์ ๋ชจ๋ ๋์ ๊ฐ์ง๊ณ ์์ ํ ๋ฐ, ๊ทธ๊ฒ์ด ์ต์ ํํด์ผ ํ ๋ฌธ์ ๊ฐ ์๋๋๋ค.
์ต์ ํํด์ผ ํ ๋ฌธ์ ๋ ์ด๋ป๊ฒ ํ๋ฉด ์์ญ์ต ๋ฌ๋ฌ๋ฅผ ๋ฒ ์ ์์๊น ํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ด ๋ฐ๋ก ๊ธธ์ ๋๋ค.
"์, ์ผ๋จ ๋์ ๋ฒ๋ฉด ์ฝ๊ฐ ๋ถํธํด์ง ๊ฑฐ์ผ."๊ฐ ์๋๋๋ค.
์๋๋๋ค.
์๋๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์๊ฒ ๊ทธ ๋ฌธ์ ๋ฅผ ์ดํด๋ณด๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ์ต์ ์น ๊ฐ๋ฐ ๊ฒฝํ์ ์ด๋ฌํ ๋ชจ๋ ๋ถ๋ถ์ ์๋ก ์์ ๋์ ์ ์๋ ์์ ๋จ์๋ก ์์ถํ์ฌ ์ฐ๋ฆฌ์ ๋๋ ์์ฐ์ ์ดํด๋ณด๋ ๊ฒ์ ๋๋ค.
๊ทธ๋์ผ ๋ชจ๋ ๊ฒ์ ๋ด์ ์ ์์ต๋๋ค.
์ต๊ทผ์ ์ข์ ๊ตํ์ ์ป์์ต๋๋ค.
Vim์ ๋ค์ ์์ํ๋๋ฐ, Vim์ ์ฌ๋ฌ๋ถ์ ๋ ๊ณต๊ฐ์ ๋ง์ด ์ฐจ์งํ๋ ์ฌ๋ฏธ์๋ ๊ฒ๋ค ์ค ํ๋์ด๊ณ , ๋ค๋ฅธ ๊ฒ์ ๋ด์ ์ ์๋๋ก ์์ถํ ๋ฐฉ๋ฒ์ ์ฐพ์์ผ ํฉ๋๋ค.
Jason์ ์ด๋ฆ์ ํฌํจํด์์.
์ฌ์ค Jason์ ์ ๊ฐ ์ฌ์ ํํธ๋์ธ๋ฐ Jarvis๋ผ๊ณ ๋ถ๋ฅด๋ฉด ์ฝ๊ฐ ๊ธฐ๋ถ ๋๋น ํ ๊ฒ ๊ฐ์ต๋๋ค.
ํ์ง๋ง ์ฐ๋ฆฌ์๊ฒ๋ ์ ํ๋ ๊ณต๊ฐ์ด ์๊ณ , ๊ทธ ๊ณต๊ฐ์ ์ต๋ํ ํ์ฉํด์ผ ํ๊ณ , ์ ๊ณ๋ฅผ ์์ ์ ๋ฌธ ๋ถ์ผ๋ก ์ธ๋ถํํ ํ์๊ฐ ์๋๋ก ๊ณต๊ฐ์ ์๋ ๊ฒ์ ์์ถํด์ผ ํ๋ค๋ ์์ด๋์ด์ ๋๋ค.
ํน์ ๊ท๋ชจ์์๋ ๊ทธ๋ ๊ฒ ํฉ๋๋ค.
๊ทธ๊ฒ์ด ๋ฐ๋ก 10์ต ๋ฌ๋ฌ์ง๋ฆฌ ๋ฌธ์ ์ ๋๋ค.
0์์ 1๊น์ง์ ๋ฌธ์ ๊ฐ ์๋๋๋ค.
0์์ 1๊น์ง์ ๋ฌธ์ ๋ ์ด๋ป๊ฒ ํ๋ฉด ๋ชจ๋ ๊ฒ์ ์ดํดํ ์ ์์๊น ํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ์ ์๋ฌด์ ๋๋ค.
์น์ฌ์ดํธ์ ํค๋๋ผ์ธ์ ๋ง ๊ทธ๋๋ก "์ต์ ์น ์ฑ์ ๋ณต์ก์ฑ์ ์์ถ"ํ๋ ๊ฒ์ ๋๋ค.
ํ์ง๋ง ๋ ์ค์ํ ๊ฒ์ Hello World์์ ์์ํ์ฌ ์ฒ์๋ถํฐ IPO๊น์ง ๊ฐ ์ ์๊ฒ ํด์ค๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ด ๋ฐ๋ก ์ค๋ ์ ๊ฐ ์ด์ผ๊ธฐํ ๋ด์ฉ์ ๋๋ค.
Hello World๋ ์๋๊ณ IPO๋ ์๋ ๊ทธ ์ฌ์ด์ ๊ณต๊ฐ์ ๋ํ ๋ ๋ถ๋ถ์ ๋๋ค.
Rails 7์ ํตํด Hello World๋ฅผ ๋ง๋ค๊ธฐ ์ํ ๋๋ผ์ด ํ๋ ์์ํฌ๋ฅผ ๊ฐ๊ฒ ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฐ๋ฆฌ์๊ฒ ๋ถ์กฑํ ๊ฒ์ IPO๋ก ๊ฐ๋ ๋ค๋ฆฌ์ด๊ณ , ๊ทธ ๋ค๋ฆฌ์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ ๋ฐฐํฌ์ ๋๋ค.
ํ๋ก๋์ ์ผ๋ก ๊ฐ๋ ๊ฒ์ ๋๋ค.
์ปดํจํฐ์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ ธ์์ ์ ์ธ๊ณ ์ฌ๋๋ค๊ณผ ๊ณต์ ํ ์ ์๋๋ก ์๋ ์์ด๋ ์น์ ๋ฐฐ์นํ๋ ๊ฒ์ ๋๋ค.
์ง๋ 10๋ ๋์ ์ ๊ฒฝํ์์ ์ผ์ด๋ ์ผ์ ๋ฐฐํฌ์ ๊ด๋ จํ์ฌ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ํ์ต๋ ๋ฌด๋ ฅ๊ฐ์ด๋ผ๋ ์์ ๋ฐง์ค์ ๋ฌถ์ธ ๋ถํ์ ์ฝ๋ผ๋ฆฌ๊ฐ ๋์๋ค๋ ๊ฒ์ ๋๋ค.
์ ๊ณ ์ ์ฒด๊ฐ ์๋ฒ๋ฅผ ๋ง์ง๋ ๊ฒ์ ๋ํ ๋๋ ค์, ์ปดํจํฐ์ ๋ํ ์ฑ ์์ ์ง๋ ๊ฒ์ ๋ํ ๋๋ ค์์ ํค์ ์์ต๋๋ค.
์ ๊ฐ Dr.
Evil ๋ชจ์๋ฅผ ์ฐ๊ณ ์์ ๋๋ "๋๋๊ตฐ.
ํด๋์ด.
ํ๋ก๊ทธ๋๋จธ๋ค์๊ฒ ์ปดํจํฐ๊ฐ ๋๋ฌด ์ด๋ ค์์ ์ง์ ๋ง์ง๋ฉด ์ ๋๋ค๊ณ ์ค๋ํ์ด.
๋ธ๋ผ๋ณด, ๋ธ๋ผ๋ณด.
๊ทธ๊ฑด ํ๋ ๋ง์ผํ ์ ์์ ์ด์ผ.
๊ทธ ์์ ์ ์ ํด์ผ๊ฒ ์ด."๋ผ๊ณ ๋งํฉ๋๋ค.
ํ์ง๋ง ๋ ํํธ์ผ๋ก๋ ํ์ฌํฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ฝ๋ผ๋ฆฌ์ ๋๋ค.
๋ฐง์ค์ด ์ผ๋ง๋ ์์์ง ๋ณด์ด์๋์? ์ฝ๋ผ๋ฆฌ๊ฐ ์ผ๋ง๋ ๋ฌด๊ฑฐ์ด์ง ์์๋์? ๋ฐง์ค์ ์์ ๋ ค๋ฉด ๋ฐ์ ์ผ๋ง๋ ์กฐ๊ธ๋ง ์์ง์ฌ์ผ ํ๋์ง ์์๋์? ์์ฃผ ์กฐ๊ธ๋ง ์์ง์ด๋ฉด ๋ฉ๋๋ค.
์ด์ ๋ฌธ์ ๋ ๋ถ๋ถ์ ์ผ๋ก...
์ด ๋ด๋ก ์ด ์ผ๋ง๋ ๋ฐ์ ํ๋์ง ์ ๋ง ๋๋์ต๋๋ค.
๋๋ด์ ํ ํ์๋ ์์ต๋๋ค.
๋ฌธ์ ๋...
์ฌ์ค ์ ๋ ๋ฐ๋๋ก ํ ๊ฒ๋๋ค.
์์ง์ ๊ทธ๋ค์ ๋๋ฆฌ์ง ์์ ๊ฒ๋๋ค.
AWS๋ ๋๋๊ณ , "์ฐ๋ฆฌ ์ธ๊ฐ์ ์ด๋ฐ ์ผ์ ํ ์ ์์ด.
์ฐ๋ฆฌ ์ธ๊ฐ์ ์๋ฒ ์์ญ์ด ๊ตฐ๋ ์ ์ฒด๋ฅผ API ๋ค์ ๋ฐฐ์นํ ์ ์๊ณ , ๊ทธ๋ค์ ์ ๋ง ๋น ๋ฅด๊ฒ ์คํํ ์ ์๊ณ , ๋ฌผ๊ฑด์ ๋์ ๋ฃ์ ์ ์๊ณ , ์ฌ๋ฌ๋ถ์ด ๋ณด๋ ๊ฒ์ 200 OK๋ฟ์ด์ผ."๋ผ๋ ์์ผ๋ก ๋๋์ต๋๋ค.
์๋ง์กด์ด ์ค์ ๋ก ์์ฒด์ ์ผ๋ก ๋งค์ฐ ํ์ค์ ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์๋ค๋ ๊ฒ์ ๋งค์ฐ ๋ฉ์ง ์ผ์ ๋๋ค.
์ฐ์ค ํน์ ์ผ์ ์ฌ์ฉ๋์ด ๊ธ์ฆํ๊ณ , ๊ทธ๋ฐ ๋ค์ ์ปดํจํฐ๊ฐ ๋ชจ๋ ํ์ํ์ง ์์ ๋ ์ด ๋ง์์ต๋๋ค.
์ข์ ์ปจํ ์คํธ์ ๋ํ ์ข์ ์๋ฃจ์ ์ ๋๋ค.
์ ๋ ๊ทธ ๋น์ ์ ์ ์ ์ผ๋ก ์ง์งํฉ๋๋ค.
๋ฌธ์ ๋ ์ฐ๋ฆฌ ๋๋ถ๋ถ์ด ๊ทธ๋ฐ ์ปจํ ์คํธ์์ ์ด์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
๋๋ถ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ถ๋ถ์ ์๊ฐ ๋์ API ๋ค์ ์๋ฒ ์์ญ์ด๋ฅผ ๋์์์ด ๋ฐฐ์นํด์ผ ํ๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ฝ์ ๋๋นํ ๋ณดํ ์ ์ฑ ์ ๋ํด ์ฐ๋ฆฌ๊ฐ ์ง๋ถํ๋ ๋๊ฐ๋ ์์ฒญ๋๊ฒ ๋์ต๋๋ค.
๊ธ์ ์ ์ผ๋ก๋ฟ๋ง ์๋๋ผ ๋ณต์ก์ฑ ์ธก๋ฉด์์๋ ๊ทธ๋ ์ต๋๋ค.
๊ฒ๋ค๊ฐ AWS๋ ์ฌ์ ์ ๋๋ค.
์ ๋ ์ฌ์ ์ด ํ๋ฅญํ๋ค๊ณ ์๊ฐํ์ง๋ง, ์ฌ์ ์๋ ์ธ์ผํฐ๋ธ๊ฐ ์๋ค๊ณ ๋ ์๊ฐํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ AWS์ ์ธ์ผํฐ๋ธ๋ ์ฌ๋ฌ๋ถ์ด ์์ํ ๋ถํ์ ์ฝ๋ผ๋ฆฌ๋ก ๋จ๋ ๊ฒ์ ๋๋ค.
์์ํ ์๋ฒ๋ฅผ ๋๋ ค์ํ๊ณ , ์์ํ ์ค์ค๋ก ์๋ฒ๋ฅผ ์คํํ๋ ๊ฒ์ ๋๋ ค์ํ๋ ๊ฒ์ ๋๋ค.
์๋๋๋ค.
์ฐ๋ฆฌ๋ ์กฐ์ปค๊ฐ ์ด๊ธฐ๋๋ก ๋ด๋ฒ๋ ค ๋์ง ์์ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ์กฐ์ปค๊ฐ ์ด๊ธฐ๋๋ก ๋ด๋ฒ๋ ค ๋์ง ์์ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ๊ทธ๋ค์ด ์๋ฒ๊ฐ ๋๋ฌด ์ด๋ ค์์ AWS์ 40%์ ๋ง์ง์ ์ง๋ถํด์ผ ํ๋ค๊ณ ์ฐ๋ฆฌ๋ฅผ ์ค๋ํ๋๋ก ๋ด๋ฒ๋ ค ๋์ง ์์ ๊ฒ์ ๋๋ค.
์๋๋๋ค.
์๋๋๋ค.
์ค์ ๋ก ์ปดํจํฐ๋ฅผ ๋ง๋๋ Dell์ ๋ง์ง์ 5%์ด๊ณ , AWS์ ๋ง์ง์ 40%์ ๋๋ค.
๊ทธ๊ฒ์ ์คํจํ ์์ฅ์ด๊ณ , ๊ฒฝ์ ์๋ ฅ์ ์ํด ์ด๊ณผ ์ด์ค์ด ๋์ ๋ฐ์ง ์๋ ๋น๊ฒฝ์์ ์ธ ์์ฅ์ ๋๋ค.
์ฐ๋ฆฌ๋ ๊ทธ ๋ฌธ์ ์ ๋ํด ๋ญ๊ฐ๋ฅผ ํ ๊ฒ์ ๋๋ค.
ํ์ง๋ง ๊ทธ ์ ์...
Heroku๋ ์ ๊ฐ 20๋ ๋์ ๋ด ์จ ๊ฐ๋ฐ์ ์ธ์ฒด ๊ณตํ ๋ถ์ผ์์ ๊ฐ์ฅ ํฐ ํ์ ์ค ํ๋์ ๋๋ค.
์ฐ๋ฆฌ ๋๋ถ๋ถ์ด ์ปจํ ์ด๋๊ฐ ๋ฌด์์ธ์ง, ์ด๋ฐ ์์ผ๋ก ๋จธ์ ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ด๋ฒ์ํ ๊ฐ๋ ์กฐ์ฐจ ๊ฐ๊ธฐ ์ ์ธ 2007๋ ์ Heroku๊ฐ ๋์๋ค๋ ์ฌ์ค์ ์ ๋ง ๋๋์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ Heroku๊ฐ ๋ฐฐํฌ๋ฅผ git push๋ก ์ค์ผ ์ ์๋ค๋ ์์ด๋์ด๋ฅผ ๋ค๋ฅธ ๋๊ตฌ๋ ๊นจ๋ซ๊ธฐ ์ ์ 10๋ ๋๊ฒ ๊ทธ ์ด์ ์ ๋๋ฆด ์ ์์๋ค๋ ์ฌ์ค์ ์ ๋ง ๋๋์ต๋๋ค.
Heroku๋ ๊ทธ๋ค์ด ์ด๋ฃฌ ์ ์ , Hello World์์ LMA ์จ๋ผ์ธ๊น์ง ๊ฐ ์ ์๋๋ก ๋์ด Rails ๊ฐ๋ฐ์์ ์์ ๋ํด ๋์๋ ์ฐฌ์ฌ๋ฅผ ๋ฐ์ ๋งํฉ๋๋ค.
๊ทธ๊ฒ์ ๋๋ผ์ด ์ ์ ์ด๋ฉฐ, 17๋ ์ ์ ์ผ์ด๊ธฐ๋ ํฉ๋๋ค.
17๋ ์ ์ ์ผ์ด๋ผ๋ ๊ฒ์ด ์ ๋ง ๋๋์ต๋๋ค.
์ด์ ์์ผ ์ฐ๋ฆฌ๋ ๋ฐ๋ผ์ก์์ผ ํ๋ค๊ณ ์๊ฐํ๊ธฐ ์์ํ์ต๋๋ค.
๋ฌธ์ ๋ ๋ถ๋ถ์ ์ผ๋ก 17๋ ๋์ ์ปจํ ์คํธ๊ฐ ๋ฐ๋์๋ค๋ ๊ฒ์ ๋๋ค.
Heroku ์ฑ๋ฅ ๋ฉ๋ด์ ๋๋ค.
ํธํ๋ก์ด 1์ฝ์ด, 2, 3์ค๋ ๋, 2.5GB RAM์ ์ 250๋ฌ๋ฌ๋ผ๋ ์ ๋ ดํ ๊ฐ๊ฒฉ์ ๊ตฌ์ ํ ์ ์์ต๋๋ค.
2012๋ ์๋ ๊ฝค ๊ด์ฐฎ์์ ๊ฒ๋๋ค.
์ข์ ๊ฑฐ๋์์ ๊ฒ๋๋ค.
2024๋ ์๋ ๋ง๋ ์ ๋ฉ๋๋ค.
ํฐ๋ฌด๋์๊ณ ๋ชจ์์ ์ ๋๋ค.
์ด๊ฒ์ ๋ช ์ฃผ ์ ์ Hetzner์์ ๊ฐ์ ํ ํธํผ ๋ฐ์ค์ ๋๋ค.
Hetzner์์๋ ์์ ํ๋์จ์ด๋ฅผ ๊ตฌ์ ํ๋ฉด 40์ฝ์ด, 96์ค๋ ๋, 256GB RAM์ ์ 220๋ฌ๋ฌ์ ์ป์ ์ ์์ต๋๋ค.
์ด ๋ ๊ฐ์ง์ ์ฐจ์ด์ ์ ๋ฌด์์ผ๊น์? ์ํํธ์จ์ด์ ๋๋ค.
Heroku๋ ์ข์ ์ํํธ์จ์ด๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ ๋ ์ํํธ์จ์ด๋ฅผ ๋ง๋ญ๋๋ค.
์ ๋ ์ข์ ์ํํธ์จ์ด๋ฅผ ๋ง๋ค ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
2TB NVMe RAID ์คํ ๋ฆฌ์ง๊น์ง ์ ๊ณตํ๋ค๋ฉด ๊ฝค ์ข์ ๊ฑฐ๋์ ๋๋ค.
๊ทธ๊ฒ์ด ๋ฐ๋ก ์กฐ์ปค์ ๋๋ค.
์กฐ์ปค๋ ์ฌ๋๋ค์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ปดํจํฐ๋ฅผ ๋ง์ง ์ ์๋ค๊ณ ์ค๋ํ ์ ์๋ค๋ฉด 100๋ฐฐ์ ์๊ธ์ ์ฒญ๊ตฌํ ์ ์์ต๋๋ค.
๊ทธ๋ค์ด ๋ญ ํ ์ ์๊ฒ ์ด์? Linux๋ฅผ ๋ง์ง ์ ์๊ฒ ์ด์? ๊ทธ๋ฐ ๋น์ฆ๋์ค ๋ชจ๋ธ์ ๊ฐ๋ฐ์ ๊ธฐ์ ์ ๋ง์ ๋ถ๋ถ์ ์ค๋ฉฐ๋ค์๊ณ , ์ ๋ ๊ทธ๊ฒ์ด ๋ง์์ ๋ค์ง ์์ต๋๋ค.
์ด๊ฒ์ ์ ๋ฐ์ด ์๋์ง๋ง, 100๋ฐฐ์ ์ด์ค์ ๊นจ๋ซ๊ณ ์ปดํจํฐ๋ฅผ ์ด ํ์๋ ์์ด ์๋ง์กด์์ ๋น๋ ค์ 100๋ฐฐ์ ๊ฐ๊ฒฉ์ ์ฌ๋ฌ๋ถ์๊ฒ ๋น๋ ค์ฃผ๋ ์ฌ๋๋ค์ด ๋์ด๋๋ ๊ฒ์ ๋น์ฐํฉ๋๋ค.
์ ๋ง ์ข์ ๋น์ฆ๋์ค ๋ชจ๋ธ์ ๋๋ค.
์ ๋ง ์ข์ ๋น์ฆ๋์ค ๋ชจ๋ธ์ ๋๋ค.
VC๋ค๋ ๊ทธ๋ ๊ฒ ๋งํ๊ณ ์์ต๋๋ค.
์ด๊ฒ์ ์ฑ์ฅ ๊ธฐํ์ ๋๋ค.
๊ฐ๋ฐ์์ ๋ถ์๊ฐ์ ๋๋ ์์ฅ์ ๋๋ค.
๊ทธ๊ฒ์ ํ์ฉํฉ์๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ์ค๋กํ์ ๋ฐ๋ฅ๊น์ง ๋ฐ๋ ธ๊ณ , ์ ๋ ๊ทธ๊ฒ์ด ๋ง์์ ๋ค์ง ์์ต๋๋ค.
์ ๋ ๊ธฐ์ ์ด ์๋ก์ด ๊ฒ์ ๋ฐ๊ฒฌํ๋ ๊ฒ์ ์ข์ํ๊ณ , ๊ทธ ์์ด๋์ด์ ํฌ์๊ฐ ํ๋ฌ ๋ค์ด๊ฐ๋ ๊ฒ์ ์ข์ํ๊ณ , ์๋ก์ด ๊ฐ๋ ์ด ๊ฐ๋ฐ๋๋ ๊ฒ์ ์ข์ํ์ง๋ง, ์ด๋ ์์ ๋ถํฐ๋ ๊ทธ ํ๋ฆฌ๋ฏธ์์ ์์ํ ์ง๋ถํ์ง ์์ ๊ฒ์ ๋๋ค.
์ด์ ์ ๋ ์ํํธ์จ์ด ํนํ๋ฅผ ๋๋์ ์ผ๋ก ํ์คํฉ๋๋ค.
์ํํธ์จ์ด ํนํ๋ ์ ๋์ ์ผ๋ก ์ด๋ฆฌ์๊ณ ๋ถ์์ฑ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ๋ ๊ทธ ์๊ฐ์ ์๋ฃ ํนํ๋ฅผ ์ข์ํ๋ค๋ ์๊ฐ๊ณผ ํจ๊ป ๋จธ๋ฆฟ์์ ๋ด์๋๊ณ ์์ต๋๋ค.
์ค์ ๋ก ์ฐ๋ฆฌ๊ฐ ์์ฅ์ ๋ด๋๋ ์ฝ์ ์ฌ๋ฌ ๋ฒ์ ์ํ์ ๊ฑฐ์ณ ํ ์คํธํด์ผ ํ๋ค๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๊ฒ์ ๋น์ฉ์ด ๋ง์ด ๋ค๊ณ , ์ฝ 10์ต ๋ฌ๋ฌ ์ ๋ ๋ค๋ฉฐ, ๋๊ตฐ๊ฐ๊ฐ ๊ทธ 10์ต ๋ฌ๋ฌ๋ฅผ ํ์ํ ์ ์์ด์ผ ์ฐ๋ฆฌ๊ฐ ์ด์ ๋ด๋งํฌ ๊ฒฝ์ ์ ์ฝ 20%๋ฅผ ์ฐจ์งํ๋ ์ค์ ฌํฝ๊ณผ ๊ฐ์ ๋๋ผ์ด ์ฝ์ ์ป์ ์ ์์ต๋๋ค.
๊ทธ๋์ ๋ด๋งํฌ ๋ณต์ง ๊ตญ๊ฐ์ ์๊ธ์ ์ง์ํ๊ณ ์๋ ์ฝ๊ฐ ๊ณผ์ฒด์ค์ธ ๋ฏธ๊ตญ์ธ๋ค์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
ํ์ง๋ง ์ ๋ ์๋ฃ๊ณ์์๋ ๋ง๋ฃ ๋ ์ง๊ฐ ์์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์๋ฃ๊ณ์์ ๋ง๋ฃ ๋ ์ง๋ 20๋ ์ ๋๋ค.
20๋ ํ์๋ ํนํ๊ฐ ๋ง๋ฃ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๋ค๋ฆญ...
์ ๋ ๊ทธ๊ฒ์ ๋ณด๊ณ "์ฌ์ค ๋์์ง ์์ ๋ชจ๋ธ์ด์ผ.
๋ง์์ ๋ค์ด."๋ผ๊ณ ์๊ฐํฉ๋๋ค.
Heroku๊ฐ ๋ฐฐํฌ๋ฅผ ์ํ ๊ฐ๋ฐ์ ์ธ์ฒด ๊ณตํ ๋ถ์ผ์ ์ด๊ธฐ ์ง์ถ์ ์์ ํํ ์ ์์๋ ๊ฒ์ ํ๋ฅญํ ์ผ์ ๋๋ค.
ํ์ง๋ง ์ฐ๋ฆฌ๋ ์ ๋ค๋ฆญ์ด ๋์ฌ ๋๊ฐ ๋์์ต๋๋ค.
๋ฐฐํฌ๋ฅผ ์ํ ์น๋ฃ์ ๊ฐ ํํธ์๋ ์ปดํจํ ์ฑ๋ฅ์ 250๋ฌ๋ฌ๊ฐ ๋ค์ง ์๋ ์ ๋ค๋ฆญ์ด ๋์ฌ ๋๊ฐ ๋์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ ๋ค๋ฆญ์ ํตํด, ์คํ ์์ค๋ฅผ ํตํด ๊ทธ๊ฒ์ ๋ง๋ค ์ ์์ต๋๋ค.
์๋ํ๋ฉด ์ฐ๋ฆฌ๊ฐ ์ ๊ณ๋ฅผ ์ค์ค๋ก ๊ตฌํ ์ ์๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์๋ํ๋ฉด ์ด๋ ์์ ์์ ๊ธฐํ๊ฐ ๋๋ฌด๋ ํฐ๋ฌด๋์๊ณ ๋๊ตฐ๊ฐ๊ฐ ๋์์ ๊ทธ ๊ธฐํ๋ฅผ ์ด์ฉํ๊ธฐ๋ง ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค๋ฉด, ์ด ์ฌ๋์ด ๋ํ๋ ๊ฒ์ด๊ณ , ์ฌ๋ฌ๋ถ์ ๊ทธ๋ฅผ ์ข์ํ์ง ์์ ๊ฒ์ ๋๋ค.
๊ทธ๋ DataPrizm์ ๊ฐ๊ฒฉ์ 100๋ฐฐ๊ฐ ์๋๋ผ 50๋ฐฐ๋ก ์ฌ๋ ธ์ ๋ฟ์ ๋๋ค.
๊ทธ ์ ์ ๊ธฐ์ตํ์ธ์.
๊ทธ๊ฐ ์ ์ฌ๊ธฐ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ฌ๊ธฐ ์๋ฌด๊ฐ ์์ต๋๋ค.
์ฌ๊ธฐ ๊ฐ๋ฅํ ๊ฒ์ด ์์ต๋๋ค.
ํจ์ค ์์, ๋น๋ ์์, ํจ์ค ์์, ๋น๋ ์์, ํจ์ค ์์, ํ๋ซํผํ ์๋น์ค๊ฐ ํ์ ์์ต๋๋ค.
Rails๋ ์ง๊ธ๋ฟ๋ง ์๋๋ผ ์์ผ๋ก๋ ํฉ๋ฆฌ์ ์ด๊ณ ์ ๊ทผํ๊ธฐ ์ฌ์ด ๋ฐฉ์์ผ๋ก ํ๋ก๋์ ์ ๊ฐ ์ ์๋๋ก ์์ฉ ๊ณต๊ธ์ ์ฒด์ ๋น์ฉ์ ์ง๋ถํ ํ์๊ฐ ์๋ ํ๋ ์์ํฌ๊ฐ ๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ด ๋ฐ๋ก Rails์ ์๋ฌด์ ๋๋ค.
์ธ์์ ํจ์ค๊ฐ ์ฌ์ํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ํ ์ ํ์ ์ถ๊ฐ ๊ธฐ๋ฅ์ด ๋๋ ๊ณณ๊น์ง ์ฐ๋ฆฌ๋ฅผ ๋ฐ๋ ค๊ฐ๋ ๊ฒ์ ๋๋ค.
์ฃผ์ ๊ฒฝ๋ก๋ ํด๋ผ์ฐ๋, ๋ฒ ์ด ๋ฉํ, ๊ฐ์ธ ์ปดํจํฐ, ์ท์ฅ ์์ Pi ๋ฑ ์ด๋ค ๊ตฌ์ฑ์ด๋ , ์ด๋ค ํ๋์จ์ด๋ ์ ํํ ํ๋์จ์ด์ ์ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ํ ์ผ์ ๋๋ค.
ํ์ง๋ง ๋จผ์ ํด๋ผ์ฐ๋๊ฐ ์ฐ๋ฆฌ์๊ฒ ๋๋ฌด๋ ๊ต๋ฌํ๊ฒ ๊ฐ์ผ์ํจ ์๋ฒ ๊ณตํฌ์ฆ์ด๋ผ๋ ๋ฌธ์ ๋ก ๋์๊ฐ์ผ ํฉ๋๋ค.
์๋ฒ๋ ์ง๊ทธ๋ฝ๊ณ ๋ง์ง๊ณ ์ถ์ง ์๊ณ , ๋๊ตฐ๊ฐ ๋ ๋์ ์ฑ ์์ ธ์คฌ์ผ๋ฉด ์ข๊ฒ ๋ค๋ ์๊ฐ์ ๋๋ค.
์๋๋๋ค.
๊ทธ ์ ์ ๋ฅผ ๋ฐ์๋ค์ด์ง ๋ง์ธ์.
์๋ํ๋ฉด ์น๋ฃ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์๋ฒ ๊ณตํฌ์ฆ์ ๊ทน๋ณตํ ์ ์์ต๋๋ค.
๊ทธ๊ฒ์ ๋ฐ๋ก Linux์ ๋๋ค.
Linux๋ผ๊ณ ํฉ๋๋ค.
Linux๋ ์ฐ๋ฆฌ์ ๋ชจ๋ ์๋ฒ๋ฅผ ์ค์ ๋ก ์คํํ ๋ฟ๋ง ์๋๋ผ, ์ํ๋ค๋ฉด ์ปดํจํฐ์์๋ ์คํํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๋ ์ฌ๋ฌ๋ถ์ด ๊ทธ๋ ๊ฒ ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํํ์์ผ๋ก ์คํํ๊ณ ์ถ๋ ์๋๋ ์๊ด์์ต๋๋ค.
์ด๊ฒ์ ์ธ์ง ํ๋ ์น๋ฃ์ ๋๋ค.
ํ ๋ฒ์ ์กฐ๊ธ์ฉ ๋ ธ์ถํฉ๋๋ค.
์ฌ๊ธฐ์ ๋ฐ๋ก ์คํ ์ค์ธ Framework 13์ด ์์ต๋๋ค.
๋์ค์ ์์ ๋ง์ ธ๋ณด์ธ์.
Linux๋ฅผ ์คํํ๋๋ผ๋ ๋ฌผ์ง ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ์ค ์ ๋ ์ฌ๋ฌ๋ถ์ด ๋ค๋ฅธ ๊ฒ์ ์๋ํด๋ณด๋ ์ฐ์ต์ผ๋ก๋ผ๋ ํด๋ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ ๋ชฉ์ ์ผ๋ก ์ ๋ ์ ๊ฐ ๊ฐ์ฅ ์ข์ํ๋ Linux ํ๊ฒฝ์ ๋ง๋ค์๊ณ , ์ฌ๋ฌ๋ถ๊ณผ ๊ณต์ ํ๊ณ ์์ต๋๋ค.
Elmacoup๋ ๋ฌด์์ด Linux ๋จธ์ ์ ๊ฐ์ ธ์์ ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ ํธ์ํ๊ณ ์์ฐ์ ์ด๋ฉฐ ๋ฉ์ง๊ฒ ๋ณด์ด๋ Linux ์ค์ ์ผ๋ก ๋ฐ๊พธ๋ ํ๋ก์ ํธ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ํ๋ฅญํ Linux๋ฅผ ๋ฐ๊ฒฌํ๋ฉด์ ์ ์ฒ๋ผ ์๋ก์ด ๊ฒ์ ์ฐพ์ ์๋ ์์ต๋๋ค.
๊ทธ ์ค ํ๋๋ ์๋ก์ด ํธ์ง๊ธฐ์ผ ์ ์์ต๋๋ค.
๋๋์ด Vim์ด ์ฌ๋ฌ๋ถ์๊ฒ ๋ฑ ๋ง๋๋ค๊ณ ์๊ฐํ ์๋ ์์ต๋๋ค.
์๋ก์ด ์ปดํจํฐ๋ฅผ ์ข์ํ ์๋ ์์ต๋๋ค.
์ ๋ ๋ง ๊ทธ๋๋ก 20๋ ๋์ ์๋ฉด์ ์์ ์ฌ๊ณผ๊ฐ ์๋ ์ปดํจํฐ๋ฅผ ์ด ์๊ฐ์ด ์์๋๋ฐ, ๊ทธ ๋ชฝ๋กฑํจ์์ ๋ฒ์ด๋์ ๋ค๋ฅธ ์ฌ๋๋ค๋ ๋ฉ์ง ๊ฒ์ ๋ง๋ค๊ณ ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.
๋๊ฐ ์์๊ฒ ์ด์? ๊ทธ๋ฆฌ๊ณ ์ ์๊ฒ Framework๋ ๊ทธ ์ข์ ์์ ๋๋ค.
Framework๋ ์ค์ ๋ก ์ฌ๊ธฐ ์์ต๋๋ค.
์ ์ปดํจํฐ์์ ์คํํ๊ณ ์๋๋ฐ Elmacoup์ ์๋ฆ๋ต๊ฒ ์๋ํฉ๋๋ค.
๊ทธ๋ฅ ์ด๋์ผ ๋ฟ์ ๋๋ค.
์ด์ ์ฌ๋ฌ๋ถ์ด ๋ฌด์จ ์๊ฐ์ ํ๋์ง ์๊ฒ ์ต๋๋ค.
ํด์ปค๋ ์ด๋ป๊ฒ ํ์ฃ ? ํด์ปค๊ฐ ์ ๋ฅผ ๊ณต๊ฒฉํ ๊ฑฐ์์.
๊ทธ๊ฑด ๋ถํ์ ์ฝ๋ผ๋ฆฌ๊ฐ ํ๋ ๋ง์ ๋๋ค.
๋ถํ์ ์ฝ๋ผ๋ฆฌ์ ๋ง์ ๋ค์ ํ์๊ฐ ์์ต๋๋ค.
๋ถํ์ ์ฝ๋ผ๋ฆฌ์์ ๋ฒ์ด๋ ๋ค๋ฅธ ๋ฌด์ธ๊ฐ๋ก ์ฑ์ฅํ ์ ์์ต๋๋ค.
๊ทธ ๋ค๋ฅธ ๋ฌด์ธ๊ฐ๋ ๊ฐ๋ ์๋๋๋ค.
์ด ๊ฐ๊ฐ ์๋๋๋ค.
์ฌ๋ฌ๋ถ์ด ๋ ๊ฐ๊ฐ ์๋๋๋ค.
์๋๋๋ค.
์๋๋๋ค.
์ด๊ฒ์ Linux๋ฅผ ์์ํ ์ฒซ๋ ์ ์ฌ๋ฌ๋ถ์ ๋๋ค.
์ด๊ฒ์ Linux๋ฅผ ์์ํ ์ง 21์ผ์งธ์ ์ ์ ๋๋ค.
ํ์ง๋ง ์์ํ ์ง์๋์ง๋ ์์์ต๋๋ค.
์๋ํ๋ฉด ๊ฒฐ๊ตญ์๋ ์ดํดํ๊ฒ ๋ ๊ฒ์ด๊ณ , ๊ฒฐ๊ตญ์๋ ๋ ๋ฒจ์ ํ๊ฒ ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ์ด๋งํ๋ ๊ฒ์ด๊ณ , ํนํ ๋ณด์๊ณผ ๊ด๋ จํด์๋ ๋์ฑ ๊ทธ๋ ์ต๋๋ค.
์ด๊ฒ์ ์ ๊ฐ ์ ๋ง ์ข์ ํ๋ ๋ถ๋ถ ์ค ํ๋์ ๋๋ค.
์๋ฒ ๋ณด์์ ๊ฐํํ๋ ์๋ น์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
SSH ํค๋ฅผ ์๋ฒ์ ๋ฃ๊ณ SSH ํค๊ฐ ์๋ฒ์ ์ธ์ฆํ ์ ์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ด ๋๋๋ก ํ๊ณ ๋ฐฉํ๋ฒฝ์ ๋ฉ์ง UI๋ฅผ ์์ํ๋ฉด ๋์ ๋๋ค.
์์ ํ ๋๋ ๊ฒ์ ์๋์ง๋ง 90%๋ ๋๋ฌ์ต๋๋ค.
์๋ฒ ๋ณด์์ 90%๋ ์ ๊ทธ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
๋ฌธ์ ์ด์ด๋์ง ๋ง์ธ์.
๋ฌธ์ด ์ ๊ฒจ ์์ผ๋ฉด ํด์ปค๊ฐ ์์ ์์ก์ด๋ฅผ ํ๋ค ์๋ ์์ง๋ง ๋ค์ด์ค์ง๋ ๋ชปํฉ๋๋ค.
์ด ๋ชจ๋ ๊ฒ์ ์ ๋ฅํ ๊ฒ์ด ๋ ์ฌ๋ฏธ์๋ค๋ ์ฌ์ค์ ๊ตฌํ์ผ ๋ฟ์ ๋๋ค.
๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์๋ ๊ฒ์ด ๋ ์ฌ๋ฏธ์๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด๊ณ ์๋ ๊ณณ์ด๊ธฐ ๋๋ฌธ์ Linux๋ฅผ ์๋ ๊ฒ์ด ๋ ์ฌ๋ฏธ์๊ณ , ์ ๋ฅํ ๊ฒ์ด ๋ ์ฌ๋ฏธ์์ต๋๋ค.
์ด์ ์ฌ๋ฌ๋ถ์ด ์ฐ๋์ฒ๋ผ ๋๊ปด์ง ์๋ ์๋ค๋ ๊ฒ์ ์๋๋ค.
ํ์ง๋ง ์ฐ๋ฆฌ๋ ๋ฌดํ๋๋ก ๋์๊ฐ ๊ฒ์ด๊ณ , ๊ทธ๊ฒ์ด ๋ฐ๋ก ์ ๊ฐ 8์ ์ ๋ง ์ข์ํ๋ ์ด์ ์ ๋๋ค.
8์ ์์ผ๋ก ๋๋ฆฌ๋ฉด ๋ฌดํ๋๊ฐ ๋ฉ๋๋ค.
์ด๊ฒ์ ์์ผ๋ก ๋๋ฆฐ 8์ ๋๋ค.
๊ทธ๋ผ Rails 8์ ๋ํด ์์๋ณด๊ณ ์๋ฌด๋ฅผ ์ํํ๋ ๋ฉ์ง ๊ธฐ๋ฅ๋ค์ ๋ํด ์ด์ผ๊ธฐํด ๋ณด๊ฒ ์ต๋๋ค.
Rails 8์ ์ฒซ ๋ฒ์งธ ๊ธฐ๋ฅ์ ์ ๋ง ๊ธฐ์ฉ๋๋ค.
์ ๊น๋ง์.
์ ๊น๋ง์.
์ ๊น๋ง์.
๋ฌด์์ด ์ฌ์ง ๋ชจ๋ฅด์์ฃ ? ๋ชจ๋ฅด์์ฃ ? ๋จน๊ณ ์ถ์ง ์์ ์ฝ์ด์ง๋ง ๋ชธ์ ์ข์ ์ฝ๊ณผ ๊ฐ์ ๊ฒ์ ๋๋ค.
Rails 8์ Devise์ ํจ๊ป ์ ๊ณต๋์ง ์์ต๋๋ค.
๋ณด์ ๋ธ๋๋ฐ์ค์ ํจ๊ป ์ ๊ณต๋์ง ์์ต๋๋ค.
๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ๋ฐฐ์ฐ๋ ๊ธธ๋ก ์๋ดํ ๊ฒ์ ๋๋ค.
๊ทธ ๋ฐฉ๋ฒ์ ์์ฑ์ ํตํ ์ธ์ฆ์ ๊ตฌํํ๋ ๊ฒ์ ๋๋ค.
์ค์ ๋ก ์ฝ๋๋ฅผ ๋ณด๊ณ ์ดํดํด์ผ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ์๋ฅผ ์ธ์ฆํ๋ ๊ฒ์ด ๋ถํ์ ์ฝ๋ผ๋ฆฌ๊ฐ ๋ ๋งํ ๊ฐ์น๊ฐ ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ผ ํฉ๋๋ค.
๋ค๋ฅธ ์ฌ๋์๊ฒ ๋์ ์ฃผ๊ณ ํ ๋งํ ๊ฐ์น๋ ๋๋์ฑ ์์ต๋๋ค.
์์ ํ ๋น๋ฐ๋ฒํธ์ ๊ธฐ๋ณธ ์ฌํญ์ ์ดํดํด์ผ ํฉ๋๋ค.
๊ทธ๋ ๊ฒ ์ด๋ ต์ง ์๊ณ ๋ง ๊ทธ๋๋ก ๋ฐฐ์ธ ์ ์์ต๋๋ค.
์ด๊ฒ์ด ๋ฐ๋ก ์์ฑํ ๋ ์์ฑ๋๋ ๋ชจ๋ ํ์ผ์ด๊ณ , 90% ์ธ์ฆ ์์คํ ์ ์ป๊ฒ ๋ฉ๋๋ค.
ํ์ผ์ ์ดํด๋ณผ ์ ์๊ณ , ํ์ผ์ด ์๋ฆ๋ต์ต๋๋ค.
์๋ํ๋ฉด ์ ๊ฐ ์ฌ๋ฌ๋ถ์ ์ํด ์ ์ฑ์ค๋ฝ๊ฒ ๋ง๋ค์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด๊ฒ์ ์ ๊ฐ ๋ชจ๋ ๋ฌธ์์ ์ธ์ฌํ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ฌ ๋ง๋ ์ฅ์ธ ์ ์ ์ด ๋ด๊ธด ํ ํ๋ฆฟ์ด๋ฏ๋ก ์์ ํ๊ธฐ ์ข์ ์์์ ์ ๋๋ค.
์ด๊ฒ์ ๋ณธ์ง์ ์ผ๋ก ์ถ์ถ์ ๋๋ค.
์ ๋ ์ด ์ธ์ฆ ์์คํ ์ ์ฐ๋ฆฌ ์์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ฐ์ ธ์์ต๋๋ค.
์ด๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ๋ชจ๋ ๋ถํ์ํ ๊ฒ ์์ด ์ธ์ฆ ์์คํ ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ด๋ฉฐ, ์ฌ๋ฌ๋ถ์ ๊ทธ๊ฒ์ ๋ฐฐ์ฐ๊ณ ๋ ๋ฒจ์ ํ ์ ์์ต๋๋ค.
๊ทธ๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ์ฌ๊ธฐ์ ํ๋ ์ผ์ ๋๋ค.
์ฒซ๋ ์๋ ์ฌ๋ฌ๋ถ์ด ๊ฐ์ ๋๋ค.
๋ญ๊ฐ ๋ญ์ง ๋ชจ๋ฆ ๋๋ค.
๊ด์ฐฎ์ต๋๋ค.
์ฌ๊ธฐ ์์ฃผ์ ์ ๊ธฐ์ฉ๋๋ค.
์์ํ ๊ทธ ๊ฐ๋ก ๋จ๋๋ก ๋ด๋ฒ๋ ค ๋์ง ์์ ๊ฒ์ ๋๋ค.
์ฌ๋ฌ๋ถ์๊ฒ ๋ฌด์ธ๊ฐ๋ฅผ ๊ฐ๋ฅด์ณ ์ค ๊ฒ์ด๊ณ , Rails๋ฅผ ํ๋์ ์ฌ์ฉํ๊ณ ๋๋ฉด ๋ ๋ง์ ๊ฒ์ ์๊ฒ ๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ด ๋ฐ๋ก ์ธ์ฆ์ ๋๋ค.
์ ์ฒด ์ฃผ์ ์๋ ๋ณ๋ก ๊ด๋ จ์ด ์์ง๋ง ์ ๊ฐ ์ ๋ง ์๋์ค๋ฝ๊ฒ ์๊ฐํ๋ ๋ ๋ค๋ฅธ ๊ฒ์ Propshaft์ ๋๋ค.
Propshaft๋ ๋จ์ํ์ ๋ถ์์ ์ธ ์ด์ ์ค ํ๋์ ๋๋ค.
Rails 7์์ HTTP2, ๋ฒ๋ค๋ง ์์, ํธ๋์คํ์ผ๋ง ์์์ด๋ผ๋ ์ต์ ์คํ์ ์์ฉํ๊ธฐ๋ก ํ์ ๋, 2009๋ ๋ถํฐ ์กด์ฌํ๋ ์ ์ ํ์ดํ๋ผ์ธ(JavaScript ๋ฒ๋ค๋ง์ด ๋ณธ๊ฒฉ์ ์ผ๋ก ์์๋๊ธฐ๋ ์ )์ด ์๋์ ๋ค๋จ์ด์ง๊ณ ์ง๋์น๊ฒ ๋ณต์กํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.
Propshaft๋ ๋น ์ข ์ด์ ๋ํ ์๋ฆ๋ค์ด ์๊ฐ ์ค ํ๋์ด๋ฉฐ, ๋๋จธ์ง ํ๋ ์ ํ ์ด์ ์์๋ ์ด์ด์ง๋ ์ฃผ์ ์ ๋๋ค.
์ด์ ์ ์ง์ ์ง์ด์ง์ง ์๊ณ ์ค๋๋ ์ ์ปจํ ์คํธ์ ๋ง๊ฒ ์๋ฃจ์ ์ ์ ์ํ๋ ๋น ์ข ์ด์ ๋๋ค.
Propshaft๋ ์๋ฆ๋ต๊ณ , ์ ๊ฐ ์ง์ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์๋๋ค.
์ ๋ง ๋ฉ์ง๊ณ , ์ฌ๊ธฐ ์๋ ๋ชจ๋ ์ฝ๋๋ฅผ ์ฝ์ ํ์๋ ์์ง๋ง ์ ํ๋ก์ ํธ๋ฅผ ์์ํ ํ bundle open propshaft๋ฅผ ์คํํ์ฌ ์ฝ๋๋ฅผ ์ดํด๋ณผ ์ ์์ต๋๋ค.
์ดํดํ ์ ์์ ๊ฒ์ด๋ผ๊ณ ์ฅ๋ดํฉ๋๋ค.
Sprockets์์๋ ๋๊ฐ์ ์์ ์ ์ํํ๋ฉด ์๋ฌด๊ฒ๋ ์ดํดํ ์ ์์ ๊ฒ์ด๋ผ๊ณ ์ฅ๋ดํฉ๋๋ค.
์ ๋ ์ดํดํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋์ Sprockets๊ฐ ์๋๋ผ Propshaft๋ฅผ ์์ฑํ์ต๋๋ค.
Propshaft๋ ์ต์ ๋ธ๋ผ์ฐ์ ์ ๋ชจ๋ ์ด์ ์ ํ์ฉํ์ฌ ์ฝ๋๋ฅผ ์ง์ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ ์ ์๋ค๋ ์ ์ ๊ณ ๋ คํ์ ๋ ๋จ์ ๊ฒ์ ๋ก๋ ๊ฒฝ๋ก๊ฐ ํ์ํ๊ณ ๋จผ ๋ฏธ๋๋ฅผ ์ํด ์ ์ ์ ๋ค์ด์ ์คํธํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ด ์ ๋ถ์ ๋๋ค.
์ฐ๋ฆฌ๊ฐ ํ๋ ์ผ์ ๊ทธ๊ฒ๋ฟ์ ๋๋ค.
์์ ์์๋ ์๋ฌด๊ฒ๋ ์๊ธฐ ๋๋ฌธ์ ์์๋ ๋งค์ฐ ์๊ณ ์ดํดํ๊ธฐ ์ฝ๊ณ ๋ฌธ์ ๊ฐ ๊ฑฐ์ ์์ต๋๋ค.
ํ์ง๋ง ๋ ๊ด๋ฒ์ํ ๋น์ ์ ์์ ์ ์ต์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ ์ด์ ์๋ ์๋ง์ ๋ฐ์ดํฐ ์ ์ฅ์๊ฐ ํ์ํ๋ค๋ ๊ฒ์ ๋๋ค.
ํ๋ฅผ ์คํํ ๋ฌด์ธ๊ฐ๊ฐ ํ์ํ๊ณ , ์บ์๋ฅผ ์ ์ฅํ ๋ฌด์ธ๊ฐ๊ฐ ํ์ํ๊ณ , ์น ์์ผ ์ ๋ฐ์ดํธ๋ฅผ ๋ผ์ฐํ ํ ๋ฌด์ธ๊ฐ๊ฐ ํ์ํ์ต๋๋ค.
ํ์ง๋ง ์ด์ ๋ ๊ทธ๋ด ํ์๊ฐ ์์ต๋๋ค.
์๋ํ๋ฉด ๊ทธ ๋ชจ๋ ๊ฒ์ ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์ ์ด๋ ์ค๋๋ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋๋ฌด ๋นจ๋ผ์ ๋๋ถ๋ถ์ ์์ ์ RAM์ด ํ์ํ์ง ์๊ณ , ์ฐ๋ฆฌ๋ ๊ทธ ์ด์ ์ ์ต๋ํ ํ์ฉํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ Rails 8์๋...
Rails 8์๋ Solid๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ง์ ์ด๋ํฐ 3์ธ๋ฐฉ์ ๋์ ํ์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํตํด ์น ์์ผ ํต์ ์ ์ง์ํ๋ Solid Cable, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์บ์ฑ์ ์ ์ฅํ๋ Solid Cache, ์์ ์ ์คํํ๋ Solid Queue๊ฐ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ๋ชจ๋ ๊ฒ์ด ํ๋์ ๋ฐ์ง, ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ , ํ๋์ ํ์ต ๋์, ํ๋์ ์ด์ ๋์์์ ์คํ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ๋ณด๋ค ๋ ์ข์ ๊ฒ์...
๋์์ธ์ ํฌํจ๋์ง๋ ์์์ง๋ง ๋์ค์ ์๊ฒจ๋ SQLite ๋๋ถ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์์ ์์คํ ์ ์ ๊ฑฐํ ์๋ ์์์ต๋๋ค.
๋ ์ด์ ์ด์ํ ํ๋ก์ธ์ค๊ฐ ์๊ณ , ์ง์ ์ฌ์ฉํ๋ ํ์ผ ๋ชจ์์ผ ๋ฟ์ ๋๋ค.
Hello World์์ ์จ๋ผ์ธ์ผ๋ก ์ ํํ๋ ๊ฒ์ ๋ ์ฝ๊ฒ ๋ง๋ค๋ ค๋ ์ฐ๋ฆฌ์ ์๋ฌด์ ๋๋ผ์ด ๋์์ด ๋ฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ ํ์์กฐ์ฐจ ์์ต๋๋ค.
ํ์ผ ์์คํ ์ ํ์ผ์ผ ๋ฟ์ ๋๋ค.
๊ทธ๋์ ์๋ก์ด Rails 8 ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํ๋ฉด ์ด๋ ๊ฒ ๋ณด์ ๋๋ค.
์ค์ ๋ก SQLite์ฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ผ์ด 4๊ฐ ์๊น๋๋ค.
๋ชจ๋ ๋๋ฉ์ธ ๋ชจ๋ธ์ด ์๋ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ฉ ํ์ผ 1๊ฐ, ์บ์ฑ์ฉ ํ์ผ 1๊ฐ, ํ์์ฉ ํ์ผ 1๊ฐ, ์ผ์ด๋ธ์ฉ ํ์ผ 1๊ฐ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์จ๋ผ์ธ์ผ๋ก ์ ํํ๊ธฐ ์ํด ์ด ํ์ผ์ ์ด ํ์์กฐ์ฐจ ์์ต๋๋ค.
SQLite์ ๋๋ผ์ด ๊ธฐ๋ฅ ๋๋ถ์ ์ด ๋ชจ๋ ๊ฒ์ด ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์ด ์๋์ง ์ ํ์์กฐ์ฐจ ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ๋ ์์ ์ธ๊ธํ Solid Cable์ ๋๋ค.
Solid Cable์ ์ฝ 2์ฃผ ์ ์ ์ด ๊ฐ์ฐ์ ์ค๋นํ๋ฉด์ ์๊ฒจ๋ ์ถ์ถ๋ฌผ ์ค ํ๋์ ๋๋ค.
๋ฐ๋ชจ๋ฅผ ์งํํ๋ฉด์ ์์ง Redis๊ฐ ํ์ํ๋ค๋ ๊ฒ์ ์์๊ณ , "๊ฑฐ์ ๋ค ์์ด.
Redis๋ฅผ ์ ํ์ ๋ฒํท์ ๋ฃ๊ธฐ๊น์ง ๊ฑฐ์ ๋ค ์์ง๋ง ์์ง ์์ ํ ๋๋ ๊ฑด ์๋์ผ.
Action Cable์ฉ์ผ๋ก ๋ญ๊ฐ ํ์ํด.
์ด๋ป๊ฒ ํ์ง?"๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
๊ทธ๋ ๋คํํ๋ Nick Desaulniers๊ฐ Action Cable์ฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฑ์๋ ์ด๋ํฐ๋ก Solid Cable์ ๊ตฌํํ์ฌ ์ ๊ธฐ์กฐ ์ฐ์ค์ ํจ์ฌ ์ฝ๊ฒ ๋ง๋ค์ด ์ฃผ์์ต๋๋ค.
๊ธฐ์กฐ ์ฐ์ค ํ๋ฆ์ ๊ฐ์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค, Nick.
Solid Cable์์ ์ ๊ฐ ๋๋๋ ์ ์ ํนํ ๋์ผํ ์ปดํจํฐ์์ SQLite๊ฐ ์ผ๋ง๋ ๋น ๋ฅธ์ง, RAM์์ ์์ ํ ์๋ํ๋ Redis์ ์ผ๋ง๋ ๊ฒฝ์๋ ฅ์ด ์๋์ง ํ๋ ๊ฒ์ ๋๋ค.
์ด Solid Cable ์ด๋ํฐ๋ ์์ RAM Redis pub/sub ์ ํ๋ฌ์ ์ฑ๋ฅ์ 50% ์ด๋ด์ ๋๋ฌํ๋ฉฐ, ํ์ผ์ ์ฐ๊ณ ์์ต๋๋ค.
๋๋์ต๋๋ค.
2009๋ ์๋ ๋ถ๊ฐ๋ฅํ์ "์ํ!" ์๊ฐ ์ค ํ๋์ ๋๋ค.
NVMe ๋๋ผ์ด๋ธ๋ 2๋ฐฐ๋ ๋นจ๋ผ์ก์ต๋๋ค.
๊ทธ๊ฒ์ด ๋ฐ๋ก ์ด๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ฒ์ ๋๋ค.
๋๋์ต๋๋ค.
์ด์ ์ค์ ๋ก ํ๋ก๋์ ์์ ์ด๊ฒ์ ์ฌ์ฉํ ์ง ์ฌ๋ถ๋ ๋ค๋ฅธ ์ฉ๋๋ก Redis๊ฐ ํ์ํ์ง ์ฌ๋ถ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค.
์ค์ํ์ง ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ฌ๋๋ค์ด ์ฒซ๋ ์ ์์ ๊ฐ์์ง ๋ฐ๋ก ํค๋ณด๋๋ฅผ ๋๋๋ฆฌ๋ฉด์ ๋ชจ๋ ๊ฒ์ ์ ํ์๊ฐ ์๋ ์ง์ ๊น์ง ์ง์ ์ฅ๋ฒฝ์ ๋ฎ์ถ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
๊ด์ฐฎ์ต๋๋ค.
์ฐ๋ฆฌ๋ ๊ฑฐ๊ธฐ์ ๋๋ฌํ ๊ฒ์ ๋๋ค.
Solid 3์ธ๋ฐฉ์ ๋ ๋ฒ์งธ๋ Solid Cache์ ๋๋ค.
์ด๊ฒ์ ์ค์ ๋ก Basecamp์์์ ์ค์ ์์ ์ง์ ํ์์ ์ํด ํ์ํ๊ณ ์ถ์ถ๋ ๊ฒ์ ๋๋ค.
Redis์ ์บ์ฑ ์์คํ ์ ๊ตฌ์ถํ์ต๋๋ค.
์๋นํ ์ปธ์ต๋๋ค.
2015๋ ์ด๋ ์์ ์ ์ด ์์์ ๋ฃ์ RAM์ ๋ง์ฝ ์์ ์ฌ์ง์ ์ฌ๋ ธ์ต๋๋ค.
ํ ์ด๋ธ ์์ 1.5TB ์ ๋ ํผ์ณ ๋์๋ ๊ฒ ๊ฐ์ต๋๋ค.
RAM์ ์ฌ์ ํ ๋น์ธ๊ณ , RAM์ ์ฌ์ ํ ์ ํ์ ์ ๋๋ค.
์ด๊ฒ์...
์ด๊ฒ์ ์ค๋๋ Basecamp์์ ํ๋ก๋์ ์์ Solid Cache๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ๋๋ค.
60์ผ ๋์ 10TB์ ์บ์ฑ์ ์ ์ฅํฉ๋๋ค.
๊ธฐ๋ณธ ํ ํ๋ฆฟ์ด ๋ณ๊ฒฝ๋์ง ์๋ ๋ถ๋ถ์ 60์ผ ๋์ ์บ์์ ๋จ์ ์์ต๋๋ค.
์ค๋ ์๊ฐ์ ๋๋ค.
์์ ์๋ 17์๊ฐ์ด์๋๋ฐ, ์บ์๊ฐ ๊ทธ๋ ๊ฒ ์ค๋ ์ด์๋จ์ผ๋ฉด ์๋ต ์๊ฐ์ ์ด๋ค ์ผ์ด ์ผ์ด๋๋์ง ์ ํํ ์ ์ ์์ต๋๋ค.
๊ทธ ์บ์์ ์ ์ค๋ฅ ์ 96%์ ๋๋ค.
์ด๊ฒ์ด ์ํฅ์ ๋ฏธ์น๋ ์ฌ์ง์ ๋๋ค.
Solid Cache๋ฅผ ๋์ ํ ์์ ์ ์ ์ ์์ผ์ ๊ฐ์? ๋ฐ๋ก ์ฌ๊ธฐ์ ๋๋ค.
p95์ 400๋ฐ๋ฆฌ์ด ์์ฒญ์ด ์ดํ 200๋ฐ๋ฆฌ์ด ์ ๋๋ก ์ค์์ต๋๋ค.
์บ์๋ฅผ ํจ์ฌ ์ค๋ ์ ์งํ ์ง์ ์ ์ธ ๊ฒฐ๊ณผ์ ๋๋ค.
ํ์ง๋ง ๋ค๋ฅธ ์ ์ฝ ์กฐ๊ฑด๋ ์์๊ณ , ์ด๊ฒ์ด ๋ฐ๋ก ์ ๊ฐ ์ค์ ์ธ๊ณ์์ ์ผํ๋ ๊ฒ์ ์ข์ํ๋ ์ด์ ์ ๋๋ค.
์ด๊ฒ์ด ๋ฐ๋ก ์ ๊ฐ ํ๋ก๋์ ์์ ์ผํ๋ ๊ฒ์ ์ข์ํ๋ ์ด์ ์ ๋๋ค.
๋จ์ํ ๋ฒค์น๋งํฌ ๊ฒ์์ ํ๋ ๊ฒ์ด ์๋๋๋ค.
Hey๋ฅผ ๋์ ํ์ ๋ ๊ฒช์๋ ๋ฌธ์ ์ค ํ๋๋ ์๋ด๊ฐ ๋ฒ ํ ๋ฒ์ ์ Hey์ ๊ฐ์ ํ๋ผ๊ณ ํ์ ๋ ์ค์ ๋ก ์ ์๊ฒ ํ๋ ์ง๋ฌธ์ด์์ต๋๋ค.
"์ง์๋ค์ด ๋ด ์ด๋ฉ์ผ์ ์ฝ์ ์ ์๋์?" ์ ๋ "์...
์...
๊ทธ๋ด ์๋ ์์ฃ ."๋ผ๊ณ ๋๋ตํ์ต๋๋ค.
Solid Cache๋ ์ํธํ๋ฅผ ์ง์ํฉ๋๋ค.
ActiveRecord ์์ ๊ตฌ์ถ๋์์ต๋๋ค.
ActiveRecord ์ํธํ๋ Hey๋ฅผ ์ํด ์ค๊ณ๋์์ผ๋ฉฐ, ์ฌ๊ธฐ์ ์ฐ๋ฆฌ์ ์บ์๋ ์ง์ํ ์ ์๋ 2์ฐจ ๋ฐฐ๋น๊ธ์ด ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ Hey์ ๋ํ ๋ณด์ ์ฝ์์ ์ดํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋ก๊ทธ๋๋จธ๊ฐ ์์คํ ์ ์ ์ง ๊ด๋ฆฌํ๋ ์ ์์ ์ธ ์์ ์ ์ํํ ๋ ๋ฏผ๊ฐํ ๊ฐ์ธ ๋ฐ์ดํฐ๋ฅผ ๋ณผ ์ ์๋์ง ์ฌ๋ถ์ ๋ํ ์ฐ๋ ค ์์ด Hey๋ฅผ ์ ํํ ์ด์ํ ์ ์์ต๋๋ค.
๊ฐ์ธ ์ ๋ณด ๋ณดํธ๋ฅผ ์ํ ํฐ ๋์ฝ์ด๋ฉฐ, ๋ ๋ง์ ์ฌ๋๋ค์ด ์ด๋ฅผ ์ฑํํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ณด์กด๋ ์ด์ ๊ด๋ จ์ด ์์ต๋๋ค.
Hey์ ๊ฐ์ ํ๊ณ ํ๋์ ์ฌ์ฉํ๋ค๊ฐ ๊ณ์ ์ ์ญ์ ํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? Hey์์ ์ด๋ค ์ผ์ด ์ผ์ด๋๋์ง ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค.
๊ณ์ ์ ์ญ์ ํ๋ฉด ๋๋ถ๋ถ์ ํ์ฌ์์๋ ์ญ์ ํ๋ค๋ ์์ ๋ถ์ธ ๊ฐ์ด ์ค์ ๋ฉ๋๋ค.
์ค์ ๋ก ์ญ์ ๋ ๊ฒ์ด ์๋๋ผ ์ฌ์ ํ ์กด์ฌํ๊ณ , ์ฌ์ ํ ์ก์ธ์คํ ์ ์์ต๋๋ค.
์ ๋ ๊ทธ๋ฐ ๋ฐฉ์์ด ๋ง์์ ๋ค์ง ์์ต๋๋ค.
์ญ์ ํ๋ค๊ณ ํ๋ฉด ์ ์ด๋ ์ด๋ ์์ ์๋ ์ฌ๋ผ์ก๋ค๋ ๊ฒ์ ์๊ณ ์ถ์ต๋๋ค.
Hey์์๋ 60์ผ์ด๋ผ๋ ๊ตฌ์ฒด์ ์ธ ๊ธฐ๊ฐ์ ๋ณด์ฆํฉ๋๋ค.
60์ผ ์ด๋ด์ ์ญ์ ํ๋ฉด ๋ก๊ทธ์์๋, ๋ชจ๋ ๊ฒ์์๋, ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋, ์บ์์์๋ ์ฌ๋ผ์ง๋๋ค.
๋ฐ๋ผ์ ๊ธฐ๋ฅ์ผ๋ก ์ด๋ฅผ ๋ท๋ฐ์นจํด์ผ ํฉ๋๋ค.
์ด๊ฒ์ด ๋ฐ๋ก ๊ทธ ๋ชจ์ต์ ๋๋ค.
10TB์ ํฐ ๋์คํฌ, ํฐ ์บ์๊ฐ ์์ง๋ง ์ต๋ 60์ผ ๋์๋ง ์ ์งํ ์ ์์ต๋๋ค.
์๋ํ๋ฉด ๊ทธ๊ฒ์ด ์ฐ๋ฆฌ์ ๋ณด์กด ์ ์ฑ ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
ActiveRecord์ ์๊ฒฉํจ์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ Solid Cache์์ ์ ๊ฐ ์ข์ํ๋ ๋ ๋ค๋ฅธ ์ ์ ActiveRecord์ ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
ํ์ํ ๊ฒฝ์ฐ 10TB ์ด์์ผ๋ก ํ์ฅํ ์ ์์ต๋๋ค.
๋จ์ผ ๋จธ์ ์ ์ ํ๋์ง ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ Solid 3์ธ๋ฐฉ์ ์๊ด ๋ณด์์ด ์์ต๋๋ค.
์ฝ 18๊ฐ์ ์ ์ ์๋ก์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํ ๋ ์ด๊ฒ์ ๋ณด๊ณ "์๋, ์๋, ์ซ์ด.
์ซ์ด.
์ซ์ด.
์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์์ ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด 7๊ฐ์ gem์ ์ถ๊ฐํ๊ณ ์ถ์ง ์์."๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ์ค 1, 2, 4๊ฐ๋ ๋น๊ณต๊ฐ ํฌํฌ์ ๋๋ค.
๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋ ๊ฑธ๊น์? ์ด๊ฑด ๊ณ ์ฅ๋ฌ์ต๋๋ค.
์๋๋๋ค.
์ฐ๋ฆฌ๋ ๋ฐฑ์ง ์ํ์์ ๋ฌด์์ ํ ์ง ์ ์ด์ ์๋ก์ด Active Job ๋ฐฑ์๋๋ฅผ ๊ตฌ์ถํ ๊ฒ์ ๋๋ค.
๊ณ ์ฑ๋ฅ์ด์ด์ ์์คํ ์ ํตํด ํธ์ํ๋ ๋ชจ๋ ์์ ์ ์ฒ๋ฆฌํ ์ ์๊ณ , SQLite, PostgreSQL ๋๋ MySQL์ ์คํํ๋ ๊ด๊ณ์์ด ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฉํ ์ ์๋๋ก 3๊ฐ์ง ์ฃผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ชจ๋ ์๋ํ๋ฉฐ, ์ค์น ํ 6๊ฐ์ gem์ ๋ ์ํ์ง ์๋๋ก ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ๊ตฌ์ถํ ๊ฒ์ ๋๋ค.
Sam Saffron์ด ๊ตฌ์ถํ์ต๋๋ค.
๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ์คํํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ํ๊ฐ ์ด๋์ ์๋์ง ๋ชฐ๋ผ๋ ๋ฉ๋๋ค.
๋จ์ผ ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ณ Solid Queue๊ฐ Puma์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
๊ทธ๊ฒ์ด ๊ธฐ๋ณธ ์ค์ ์ ๋๋ค.
์๋๋ฉด ๋ณ๋์ ์์ ํธ์คํธ ์ธํธ๋ก ์คํํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋๋ถ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด๋ ์ ๋ ๊ท๋ชจ๊ฐ ์ปค์ง๋ฉด ์ํํ๋ ๋ฐฉ์์ ๋๋ค.
bin/jobs๋ฅผ ์คํํ์ฌ ๊ฐ๋ ์๋ฅผ ์์ํ๋ฉด ๋ชจ๋ ์์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํตํด ์คํ๋ฉ๋๋ค.
์ค์ ๋ก ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์กฐ์ฌํ ์ ์๋ ์ ๋ง ๋ฉ์ง ์์คํ ์ด๊ณ , ๊ณ ์ ํ๊ฒฝ์์ ์กฐ์ ํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๋ค์ด์ผ์ ๋ง๋ จํ๋ค๋ ์ฌ์ค์ ์ ๋ง ๋ง์กฑํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ํน์ ๋ถ๋ถ์ ๋ํ ๋ค์ํ ๊ตฌ์ฑ ํ์ผ๋ก ์์ํ ์ ์์ต๋๋ค.
์ฌ์ง์ด ๋ฐ๋ณต ์์ ๋ ๋ด์ฅ๋์ด ์์ต๋๋ค.
์ด๊ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํด๋ผ์ฐ๋ ๋๋ ์ปจํ ์ด๋๋ก ์ด๋ํ ๋ ๊ฒช์๋ ๊ณผ์ ์ค ํ๋์์ต๋๋ค.
cron์ผ๋ก ๋ฌด์์ ํด์ผ ํ ์ง ํ์ ํ๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค.
์ด๊ฒ์ Rails ์ ํ๋ฆฌ์ผ์ด์ ๋ด๋ถ์์ ์์ ํ ์คํ๋๋ ๋ ๋์ cron์ด๋ฉฐ, ๋ชจ๋ ์์ ์ ์์ํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์ค์ ๋ก ํ๋ก๋์ ์์ ์ ์ํ ๋ด์ฉ์ ๋๋ค.
์ ์ด๋ 3๋ถ์ 2์ ๋๋ค.
์ค์ ํ ๋ชจ๋ ๋ค์ํ ํ ์์ ์ค์์, ์ด ์ ์ฒด ์์คํ ์ Hey์์๋ง ํ๋ฃจ์ 2์ฒ๋ง ๊ฐ์ ์์ ์ ์ฒ๋ฆฌํ๊ณ ์์ต๋๋ค.
๋๋์ต๋๋ค.
Basecamp์ ๋ค๋ฅธ ์์คํ ์์ ์คํํ 8์ฒ๋ง ๊ฐ์ ์์ ์ด ๋ ์์ต๋๋ค.
๋ชจ๋ Solid Queue๋ก ๊ฐ์ ธ์์ ํ๋ฃจ์ ์ฝ 1์ต ๊ฐ์ ์์ ์ ์คํํ ๊ฒ์ ๋๋ค.
์ ์๋ํ๊ณ , ์ข๊ณ , ๋ ์ฝ๊ณ , 7๊ฐ์ gem์ด ํ์ํ์ง ์์ผ๋ฉฐ, ๋ง์ด๊ทธ๋ ์ด์ ํ ๋ Redis๋ฅผ ์คํ์์ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
Rails 8์ ํตํด ๋ชจ๋ ์ข ์์ฑ์ ์ ๊ฑฐํ๋ค๋ ๋ ๋ค๋ฅธ ์์ด๋์ด๋ ์ธ๋ฑ์ค, ๋ค๋ฅธ ํํ์ ํ๋ก์, ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธํฐ๋ท์ ๊ณต๊ฐํ๊ธฐ ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐฐ์นํด์ผ ํ๋ ๋ค๋ฅธ ํํ์ ๊ฒ๋ค์ ์ ๊ฑฐํ๋ค๋ ๊ฒ์ ๋๋ค.
Rails 8์ ์๋ฌด๋ ๊ธฐ๋ณธ ์ค์ ์์ ์์ฑ๋๋ Rails 8 ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ธํฐ๋ท์ ์ง์ ๋ ธ์ถํ ์ ์์ด์ผ ํ๋ค๋ ๊ฒ์ด์์ต๋๋ค.
๋น ๋ฅด๊ณ , ์์ ํ๊ณ , ์ฌ์ฉํ๊ธฐ ์ฌ์์ผ ํ๊ณ , ์ ๋ฌธ ์ง์์ด ํ์ ์์ด์ผ ํฉ๋๋ค.
Thruster๋ ํ๋ก์์ ์ผ๋ถ๋ก ์ด ์ค ์ ๋ฐ์ ์ ๊ณตํฉ๋๋ค.
์ ์ ํ์ผ ๊ฐ์ํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํฐ ํ์ผ์ ๋ณด๋ด๋ ๊ฒฝ์ฐ Puma ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๋ฉ๋๋ค.
public์ ์ค์ ํ ๋ชจ๋ ๊ฒ ๋๋ ๊ธฐํ ์บ์ ์ปจํธ๋กค ์บ์ฑ์ ์ํํฉ๋๋ค.
๋ค์ ๋งํ์ง๋ง, Puma๊ฐ ์ฒ๋ฆฌํ ํ์๊ฐ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ gzip ์์ถ์ ์ํํ๋ฉฐ, ๊ฒฐ๊ตญ์๋ brotli๋ ์ํํ ๊ฒ์ ๋๋ค.
์๋์ ๊ธฐ๋ณธ Docker ์ด๋ฏธ์ง์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์น๋์ด ์์ต๋๋ค.
๋ ธ์ถ๋ 80 ๋๋ ๋ ธ์ถ๋ 80 ๋ฐ๋ก ์๋์์ puma ์์์ Thruster๋ฅผ ์คํํ๋ฉด ์ด ๋ชจ๋ ๊ฒ์ ์ป๊ฒ ๋ฉ๋๋ค.
Thruster๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ํ ๊ตฌ์ฑ์ด ํ์ ์์ต๋๋ค.
puma ์์์ ์คํํ๋ ํ๋์ ๋ช ๋ น์ผ ๋ฟ์ด๊ณ , ๋ชจ๋ ์ข์ ๊ฒ์ ์ป๊ฒ ๋ฉ๋๋ค.
์ ๋ง ๋ฉ์ง๋๋ค.
๋ํ Go๋ก ์์ฑ๋์์ต๋๋ค.
Go๋ ํ๋ก์๋ฅผ ์์ฑํ๊ธฐ์ ๋งค์ฐ ์ข์ ์ธ์ด์ด๋ฉฐ, Rails ์คํ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ์๋์ค๋ฝ๊ฒ ์๊ฐํฉ๋๋ค.
Rails ์คํ์ ์ผ๋ถ์ ๋๋ค.
Go๋ก ์์ฑ๋์์ต๋๋ค.
์๋ํ๋ฉด Go๊ฐ ๊ทธ ๋ถ๋ถ์ ๋ ์ ํฉํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ ๊ฒ ํฉ์๋ค.
Kevin์ ๊ฐ์ธ ๋ ธํธ๋ถ์์ ํ ์คํธํ ๊ฒฐ๊ณผ ์ด๋น 6๋ง ๊ฑด์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ๋๋ก ๋งค์ฐ ๋น ๋ฆ ๋๋ค.
์๊ฒ ์ต๋๋ค.
์๊ฒ ์ต๋๋ค.
Rust๋ก ์์ฑํ๊ธฐ๋ง ํ๋ฉด ๋ ธํธ๋ถ ๊ตฌ์์์ Shopify ์ ์ฒด๋ฅผ ์คํํ ์ ์๋ค๋ ๊ฒ์ ์๋๋ค.
๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์๋๋ค.
์ ์ด๋ ์ธํฐ๋ท์์ ์ฌ๋๋ค์ด ๊ทธ๋ ๊ฒ ๋งํฉ๋๋ค.
ํ์ง๋ง ์ด๊ฒ์ ๋ณ๋ชฉ ํ์์ด ๋์ง ์์ ๊ฒ์ ๋๋ค.
์ค์ํ ๊ฒ์ ๊ทธ๊ฒ๋ฟ์ ๋๋ค.
์ด๊ฒ์ ๋ณ๋ชฉ ํ์์ด ๋์ง ์์ ๊ฒ์ ๋๋ค.
Kamal 2๊ฐ ์์ต๋๋ค.
์ด๊ฒ์ด ๋ฐ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ํด๋ผ์ฐ๋, ์์ฒด ํ๋์จ์ด, ๋ชจ๋ ์ปจํ ์ด๋, ์ํ๋ ๊ณณ ์ด๋๋ ๋ฐฐ์นํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์๋ํ๋ฉด ์ฐ๋ฆฌ๋ ํจ์ค์ ์ฝ๋งค์ด์ง ์์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
"์ฐ๋ฆฌ๋ ํด๋ผ์ฐ๋๋ฅผ ๋ ๋ ๊ฒ์ด๋ค"๋ผ๋ ์ ์ธ์์ ๋น ์ง ์์์๊ณ , ๊ทธ๊ฒ์ด 1๋จ๊ณ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ 2๋จ๊ณ๋ ๋ฌผ์ํ, ๋ฌผ์ํ, ๋ฌผ์ํ์์ต๋๋ค.
์ด๋ป๊ฒ ํ๋ฉด ์์ต์ ๋ผ ์ ์์๊น์? ๊ทธ๋ฆฌ๊ณ ๋น ์ง ๋ถ๋ถ์ Kamal์ ๋์ ํ๋ ๊ฒ์ด์์ต๋๋ค.
Kamal 2๋ ์ด๋ฅผ ํฌ๊ฒ ๊ฐ์ ํ์ต๋๋ค.
์๋ SSL์ ์ ๊ณตํ๋ฏ๋ก SSL ์ธ์ฆ์๋ฅผ ํ๋ก๋น์ ๋ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ํ ์ ํ์๊ฐ ์์ต๋๋ค.
Let's Encrypt๋ฅผ ํตํด ์๋์ผ๋ก ์ํํฉ๋๋ค.
๋จ์ผ ์๋ฒ์์ ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์์ผ๋ฏ๋ก ํ์ฅ๋ฟ๋ง ์๋๋ผ ์ถ์๋ ๊ฐ๋ฅํฉ๋๋ค.
๋ฐฐํฌ ๋ชจ์ต์ ์์ธํ ์ค๋ช ํ๋ ์ ๋ง ๊ฐ๋จํ ์ ์ธ ์ค์ ์ด ์ ๊ณต๋ฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ฒด ์ค์ ์ ๊ตฌ์ฑ์ ์ต์ํํ๊ธฐ ์ํด ์ฌ๋ฌ๋ถ์๊ฒ์ ์ป์ ์ ์๋ ์ต์ํ์ ์ ๋ณด๋ก ์์ฝ๋์ด ์์ต๋๋ค.
Kamal 2์ ์ด์ ํ๋ก์์ธ Traefik์ ๋์ฒดํ์ฌ ๋ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์๋ SSL์ ์ง์ํ๊ณ ๊ตฌ์ฑ ์์ด ์ฌ๋ฌ ์ฑ์ ์ง์ํ๋ ์๋ก์ด ํ๋ก์๊ฐ ์ง์๋ฉ๋๋ค.
๊ทธ๊ฒ์ด ๋ฐ๋ก Kamal ์ ์ฒด์ ์๋ฌด์์ต๋๋ค.
์ด๋ป๊ฒ ํ๋ฉด ์ด ๋ชจ๋ ๊ฒ์ ์ค์ ํ๋ ๋ฐ ๊ตฌ์ฑ์ด ์ ํ ํ์ ์๋๋ก ํ์ฌ ๊ฐ๋ ์ ์ดํดํ ํ์์กฐ์ฐจ ์๊ฒ ๋ง๋ค ์ ์์๊น์? ๋ณด๊ณ ์ถ์ผ์ ๊ฐ์? ์งง์ ๋ฐ๋ชจ๋ฅผ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ฃผ์ ๊น๊ฒ ๋ณด์ธ์.
5๋ถ๋ฐ์ ์ ๋๊ณ ์ ๋ง ๋นจ๋ฆฌ ์ง๋๊ฐ๋๋ค.
์ ์ ๋ ๋ ๊ฐ์ ๋๋ฉ์ธ์ ์ค์ ํ๋๋ฐ, ๋ ๋ค ๋จ์ผ ์๋ฒ๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์์ต๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ alpha์ ์์ ๊ฒ์ด๊ณ , bravo์ ์์ ๊ฒ์ ๋๋ค.
์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ Docker Hub๊ฐ ์์ต๋๋ค.
๊ทธ๊ฒ์ด ์ฐ๋ฆฌ์ ์ปจํ ์ด๋์ ๋๋ค.
์ด ๋จ๊ณ๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด ์ด์ฌํ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
Docker Hub ๋๋ ๋ค๋ฅธ ๋ ์ง์คํธ๋ฆฌ ์๋น์ค๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ ์คํํ ์ ์์ด์ผ ํฉ๋๋ค.
ํ์ง๋ง ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋ค์ ๊นจ์ด ๊ณ์ ๋ถ์ด ์์ผ๋ฉด ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ข์ต๋๋ค.
๊ฐ๋ณด๊ฒ ์ต๋๋ค.
์๋ก์ด Rails ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํ๊ณ ๊ณง main์ผ๋ก ์์ํ ๊ฒ์ ๋๋ค.
๊ณง rails new๋ก ์์ํ ์ ์์ ๊ฒ์ ๋๋ค.
ํญ์ ๊ทธ๋ฌ๋ฏ์ด ์ ๋ชฉ๊ณผ ๋ณธ๋ฌธ์ด ์๋ ๋ฉ์์ง ์ค์บํด๋๋ฅผ ์์ฑํ ๊ฒ์ ๋๋ค.
๋ง์ด๊ทธ๋ ์ด์ ํ ๊ฒ์ ๋๋ค.
๋ชจ๋ ๊ฒ์ด ์ด๋ฏธ ์ค์ ๋์ด ์์ต๋๋ค.
์ด์ ๊ฒฝ๋ก๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ฐฐํฌ๋ก ๋ฐ๋ก ๋์ด๊ฐ ๋ ๊ฒฝ๋ก์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ก์ธ์คํ ์ ์๋๋ก ๊ฒฝ๋ก์ ๋ฐ๋ก ์ฐ๊ฒฐํ๊ฒ ์ต๋๋ค.
๊ฐ๋ฐ ํ๊ฒฝ์์ ์๋ํ๋์ง ํ ์คํธํด ๋ณด๊ฒ ์ต๋๋ค.
๋ค, ์๋ํฉ๋๋ค.
๋ฉ์ง๋ค์.
20๋ ๋์ ๋ด ์จ ์ค๋๋ ์ค์บํด๋์ ๋๋ค.
๊ฑฐ๊ธฐ์ ๋๋ฌํ๋ ๋ฐ ํ์ํ ๊ฒ์ด ์ผ๋ง๋ ์ ์์ง ์ ์ ์์ต๋๋ค.
์ด์ ํ๋ก๋์ ์ผ๋ก ๊ฐ ์ค๋น๊ฐ ๋์๊ณ , deploy.yml ํ์ผ์ ์ด์ด์ ๊ทธ๋ ๊ฒ ํ ๊ฒ์ ๋๋ค.
๋ ๊ฐ์ง๋ฅผ ์ ๋ ฅํ ๊ฒ์ ๋๋ค.
๋ ์ง์คํธ๋ฆฌ์์ ์ฌ์ฉํ ์ฌ์ฉ์ ์ด๋ฆ์ ์ ๋ ฅํ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ...
๊ทธ๊ฒ์ ์ ๋ ฅํ ๊ฒ์ ๋๋ค.
dhh์ด๊ณ , ๊ทธ๋ฐ ๋ค์ ๋ฐฐํฌํ ์๋ฒ์ IP ์ฃผ์ ๋๋ DNS๋ฅผ ์ ๋ ฅํ ๊ฒ์ ๋๋ค.
๊ทธ๋ฐ ๋ค์ SSL ์ธ์ฆ์๋ฅผ ๋ฐ์ธ๋ฉํ ํธ์คํธ ์ด๋ฆ์ ์ ๋ ฅํ ๊ฒ์ ๋๋ค.
์ด์ ๊ฑฐ์ ์ค๋น๊ฐ ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ฌ๊ธฐ์ ๋ฉํฐ ๋์์ฑ์ ํ์ฑํํ๊ฒ ์ต๋๋ค.
2๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ์ผ๊ณ , lck ๋ ๋ฒจ ๋๋ฒ๊ทธ๋ฅผ ์ผ์ ํ๋ก๋์ ์ผ๋ก ์ ํํ์๋ง์ ๋ชจ๋ ๊ฒ์ ๋ณผ ์ ์๋๋ก ํ๊ฒ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ๋ก๊ทธ์์ ์ฝ๊ฐ์ ๋ ธ์ด์ฆ๋ฅผ ์ ๊ฑฐํ ๊ฒ์ ๋๋ค.
๋ ๋นจ๋ฆฌ ๋ ๋์ ๋ฐฉ๋ฒ์ ์ฐพ์์ง๋ง ๋ฐ๋ชจ์์๋ ์ด๋ ๊ฒ ํ์ต๋๋ค.
ํ๋ก๋์ ์ผ๋ก ์ ํํด ๋ณด๊ฒ ์ต๋๋ค.
ํ๋ก๋์ ์ผ๋ก ์ ํํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ๋จผ์ Kamal์ด ์ด๋ค ๋ฒ์ ์ ๋ฐฐํฌํ๋์ง ์ ์ ์๋๋ก ๋ชจ๋ ๊ฒ์ git์ ์ปค๋ฐํด์ผ ํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ kamal setup์ ์คํํ ๊ฒ์ ๋๋ค.
kamal setup์ ๊ธฐ๋ณธ Dockerfile์์ Docker ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ณ Thruster๋ฅผ ์์ ๋ถ์ด๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋์ผ๋ก ์ค์ ํ๋ Docker ์ง์ ์ ์ ์คํํ๊ณ ๋ ์ง์คํธ๋ฆฌ์ ํธ์ํฉ๋๋ค.
๊ทธ ๋์ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํด ๋ณด๊ฒ ์ต๋๋ค.
bravo๋ฅผ ์์ํ๊ณ ๋๊ฐ์ ์์ ์ ์คํํ ๊ฒ์ ๋๋ค.
ํ์ง๋ง ๋ฐฉ๊ธ ์ํํ ์์ ์ ์๋ํํ๊ธฐ ์ํด Rails ํ ํ๋ฆฟ์ ์ฌ์ฉํ ๊ฒ์ ๋๋ค.
์ค์บํด๋๋ฅผ ์คํํ๊ณ ๋ง์ด๊ทธ๋ ์ด์ ์ ์คํํ๊ณ ๋๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ชจ๋ ๊ฒ์ ์ค์ ํ ๊ฒ์ ๋๋ค.
๋น์ทํ Rails ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง์ด ๋ง๋๋ ๊ฒฝ์ฐ Rails ํ ํ๋ฆฟ ์ค์ ์ ์ฌ์ฉํ์ฌ ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค.
bravo๊ฐ ์ค์ ๋์์ต๋๋ค.
๋ฐ๋ก ๊ฐ๋ฐ ํ๊ฒฝ์ผ๋ก ์ด๋ํด ๋ณด๊ฒ ์ต๋๋ค.
์ค, ๋ฐ๋ก...
์ค, ์ ๋ Tailwind๋ก bravo๋ฅผ ์คํํ์ต๋๋ค.
Tailwind๋ฅผ ์ถ๊ฐํ๋ฉด ํจ์ฌ ๋ ์์ ๋ฒ์ ์ ์ ๋ขฐํ ์ ์๋ ์ค์บํด๋๋ฅผ ์ป์ ์ ์์ต๋๋ค.
๋น๋ ๋จ๊ณ์์๋ ์๋ํฉ๋๋ค.
์ด์ ์จ๋ผ์ธ ์ํ์ธ์ง ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค.
alpha๋...
alpha๋ ์ค์ ๋๋ฉ์ธ ์ด๋ฆ์ผ๋ก ์ ์ทจ๋ฏธ Hetzner ์๋ฒ์ ํ๋ก๋์ ํ๊ฒฝ์์ ์จ๋ผ์ธ ์ํ์ ๋๋ค.
์๊น ์๊ฐํด ๋๋ฆฐ ์๋ฒ์ ๋๋ค.
๊ทธ๊ฒ์ด ์ ๋ถ์ ๋๋ค.
์๋ฒ์์ ๋ฏธ๋ฆฌ ์ค๋นํ ํ์๋, ์ค์ ํ ํ์๋, ์ค์นํ ํ์๋ ์์์ต๋๋ค.
์๋ก์ด Ubuntu ์์๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
์ด์ ๋ ๋ฒ์งธ ์๋ฒ์ธ bravo๋ฅผ ์ค์ ํด ๋ณด๊ฒ ์ต๋๋ค.
๋๊ฐ์ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ๋ชจ๋ ๊ฒ์ ๋น๋ํ ๊ฒ์ ๋๋ค.
๊ทธ ๋์ alpha์ ๋ก๊ทธ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์๋ฒ์ ์๋ ๊ฒ์ฒ๋ผ ์ด ๋ชจ๋ ๋ช ๋ น์ ์คํํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ฉ์์ง๋ฅผ ์ ๋ฐ์ดํธํ๋ฉด ์ด๋ป๊ฒ ๋๋์ง ๋ณผ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ๋ ๊ฒ์ด ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
๋ก์ปฌ์ ์๋ ๊ฒ์ฒ๋ผ ์คํฌ๋กค๋ฐฑํ ์ ์์ต๋๋ค.
์ฒ์ ํ๋ก๋์ ์ผ๋ก ์ ํํ ๋, ๋ชจ๋ ๊ฒ์ด ์ ๋๋ก ์๋ํ๋์ง ํ์ธํ๋ ค๊ณ ํ ๋, ๋ชจ๋ ๊ฒ์ด ์ค์ ๋์๋์ง ํ์ธํ ๋ ์ ๋ง ์ ์ฉํฉ๋๋ค.
์ฝ์์ ์คํํ ์ ์์ต๋๋ค.
Kamal 2์๋ ๋ณ์นญ์ด ์์ด์ ๊ทธ๋ฅ command console์ด๋ผ๊ณ ์ฐ๋ฉด ๋ฐ๋ก ์๋ฒ์ ํ๋ก๋์ ์ฝ์์ ๋ค์ด๊ฐ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๋ชจ๋ธ์ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์ด ๋ฉ์์ง์ ์ ๋ชฉ์ ๋ณ๊ฒฝํ๊ณ ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค.
์ง์! ํ ๋ก ํ ์์ ๋ฐ๋ก ์ ๋ฐ์ดํธํ์ต๋๋ค! ์! ์ข์ต๋๋ค.
๋ค์ bravo๋ก ๋์๊ฐ ๋ณด๊ฒ ์ต๋๋ค.
bravo๋ ํ๋ก๋์ ํ๊ฒฝ์ ์๋์ง ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค.
์ค, ํ๋ก๋์ ํ๊ฒฝ์ ์์ต๋๋ค.
๋ณด์ธ์.
bravo.exitsoftware.io์ ๋๋ค.
ํ๋ก๋์ ํ๊ฒฝ์ ์์ต๋๋ค.
์ด ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ๋์ผํ ์๋ฒ์ ์๋ SSL ์ค์ ์ผ๋ก ์คํ๋๊ณ ์์ผ๋ฉฐ, ์ผ์ด๋ธ, ๋ผ์ด๋ธ ์ ๋ฐ์ดํธ, ์บ์ฑ, ํ์๊น์ง ๋ชจ๋ ์๋ํฉ๋๋ค.
๋ชจ๋ ๊ฒ์ด ์ฌ์ ๊ตฌ์ฑ๋์ด ์๊ณ , ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ ๋ก ์ฌ์ฉํ ๋ชจ๋ ์ค์ ๊ธฐ๋ฅ์ ๊ฐ์ถ ํ๋ก๋์ ํ๊ฒฝ์์ SQLite๋ก ์คํ๋๊ณ ์์ต๋๋ค.
์ ๋ง ๋๋์ต๋๋ค.
์ด์ ์ฌ๊ธฐ๋ก ๋์๊ฐ์ ๋ก๊ทธ์ supervisor๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ ์ ๋ ฅํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
์ด์ ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์ ๋ฐ์ดํธ๋ฅผ ์ํํ๊ณ ์ฌ๊ธฐ๋ก ๋์๊ฐ์ Solid Queue ์์ ์ ์ฝ์ ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
์ค์ ์์ , ์ค์ ๋ ์์ ์ด ์ค์ ๋ก ์คํ๋๊ณ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ Action Cable์ ํตํด Action Cable ์ ๋ฐ์ดํธ๋ฅผ ์ํํฉ๋๋ค.
๋ค์ ๋งํ์ง๋ง, Solid Cable์ ํตํด ํ๋ฆ ๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋ชจ๋ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
๋์ ๋๋ค.
Kamal์ด ์ ๊ฑฐ๋์์ต๋๋ค.
์ด์ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์์ ์์๋ฅผ ์ ๋ฆฌํ๊ณ ์์ต๋๋ค.
ํ๋๋ง ์ ๊ฑฐํ๋ฉด ๋ฉ์ง 502์ ํจ๊ป ๋ถ๋ ๊ฒ์ดํธ์จ์ด๊ฐ ํ์๋ฉ๋๋ค.
๋ด์ฅ ํ๋ก์์์ ์ ๊ณต๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ...
๋์ ๋๋ค.
์๋ Rails ๋น๋์ค๋ฅผ ๋ณด๋ฉด 15๋ถ ๋์ ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ณ ํ๋ก๋์ ์ผ๋ก ์ ํํ์ง ์์์ต๋๋ค.
๊ทธ๊ฒ์ 2005๋ ์ ์ผ์ ๋๋ค.
์ด์ ์ฐ๋ฆฌ๋ 5๋ถ ๋ง์ ๋ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ก๋์ ํ๊ฒฝ์ผ๋ก ๊ฐ์ ธ์๊ณ , ๊ทธ ์ค ํ๋๋ Tailwind๋ฅผ ์ฌ์ฉํ์ฌ ๊ฝค ๋ฉ์ง๊ฒ ๋ณด์ด๊ธฐ๊น์ง ํ์ต๋๋ค.
6๋ฐฐ ์์ถ์ ๋๋ค.
ํ๋ก๋์ ํ๊ฒฝ์ ๋๋ฌํ๊ธฐ ์ํด ํ์ํ๋ ๊ฒ๋ณด๋ค ๋ณต์ก์ฑ์ 6๋ฐฐ๋ ์ค์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ๋ ์ฌ์ ํ ์ต์ํ๊ฒ ๋ณด์ ๋๋ค.
์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ฑฐ์ ์๋ ์ค์บํด๋์ ๋๋ค.
๊ทธ๊ฒ์ด ๋ฐ๋ก Rails 8์ ๋๋ค.
์ธ์ฆ, ์๋ก์ด ์ ์ ํ์ดํ๋ผ์ธ, Solid 3์ธ๋ฐฉ, Thruster, Kamal 2๊ฐ ์์ต๋๋ค.
๋น๋๋ ํ์ ์๊ณ , ํจ์ค๋ ํ์ ์๊ณ , ๋๋์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ค๋ ์ฒซ ๋ฒ์งธ ๋ฒ ํ ๋ฒ์ ์ผ๋ก ๊ณง ์ถ์๋ ์์ ์ ๋๋ค.
Raphael? ๋ค, ์ข์ต๋๋ค.
์ง๊ธ ๋ฐ๋ก์.
[๋ฐ์]
Rails 8์ด ์ถ์๋ ๋ฟ๋ง ์๋๋ผ Kamal 2๋ ๊ณง ์ต์ข ํํ๋ก ์ถ์๋ฉ๋๋ค.
Solid Queue๋ ๊ณง ์ต์ข 1.0 ๋ฒ์ ์ผ๋ก ์ถ์๋ฉ๋๋ค.
์ด ๋ชจ๋ ๊ฒ์ด ์ค์ ๋ก ์ฌ์ฉํ ์ค๋น๊ฐ ๋์์ต๋๋ค.
๋ฒ ์ดํผ์จ์ด์ ๋ํด ์ด์ผ๊ธฐํ๊ธฐ ์ํด ์ฌ๊ธฐ์ ์ฌ ํ์๊ฐ ์์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ค์ ๋ก ์ด์ ์ค์ด๊ณ , ๋ชจ๋ ๊ฒ์ด ์ค๋น๋์ด ์์ต๋๋ค.
์ค๋ ๋ฐ๋ก ์ฒซ ๋ฒ์งธ Rails ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
์ด์ 3๋ถ ๋ฆ์์ง๋ง ์ด์ง ๋ง๋ณด๊ธฐ๋ฅผ ๋ณด์ฌ๋๋ฆฌ๊ณ ์ถ์์ต๋๋ค.
๋ง๋ณด๊ธฐ๋ฅผ ๋ณด๊ณ ์ถ์ผ์ ๊ฐ์? ์ข์ต๋๋ค.
Rails 8์ ๋ฃ๊ณ ์ถ์์ง๋ง ์ด๋ฏธ ๋ฉ์ง ๊ธฐ๋ฅ์ผ๋ก ๊ฐ๋ ์ฐจ์ ๋ฃ์ง ๋ชปํ ๊ฒ๋ค์ด ๋ง์ด ์์ต๋๋ค.
Action Notifier๋ฅผ ๋ฃ๊ณ ์ถ์์ต๋๋ค.
Action Notifier๋ ๋ค์ดํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ์ ์๋๋ก ์น ํธ์ ์๋ฆผ์ ์ ๊ณตํ๋ ์๋ก์ด ํ๋ ์์ํฌ์ ๋๋ค.
์ ๋ง ๋ฉ์ง ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ์ด๋ฏธ ์คํํ๊ณ ์๊ณ , ์ฌ๋ฌ๋ถ๋ ์ด๋ฏธ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
ํ์ฌ๊ฐ ์๋ ์ปจํผ๋ฐ์ค ์ฑํ ์ธ Campfire๋ฅผ ์ฌ์ฉํด ๋ณด์ จ๋ค๋ฉด, ์ด๊ธฐ ๋ฒ์ ์ Action Notifier๋ฅผ ํตํด ํธ์ ์๋ฆผ์ ๋ฐ๊ณ ์์ ๊ฒ์ ๋๋ค.
Action Notifier๋ Campfire ๋ด๋ถ์ ์์ต๋๋ค.
๊ฝค ๊ฐ๋จํ ํ๋ ์์ํฌ์ด์ง๋ง ์น...
์น ์๋น์ค ์์ปค๋ฅผ ์ค์ ํ๊ธฐ ์ํด ์ฒ๋ฆฌํด์ผ ํ ๋ช ๊ฐ์ง ์ฌํญ์ด ์์ต๋๋ค.
์๋น์ค ์์ปค๋ผ๊ณ ํฉ๋๋ค.
๊ตฌ๋ ์ ์ฐ๊ฒฐํ๊ณ , ๋ชจ๋ ๊ฒ์ ์ ์กํ๊ณ , ์์ ์ ์ผ๋ก ๋ง๋ญ๋๋ค.
๋ชจ๋ ๊ฒ์ ์ ๋ฆฌํ ๊ฒ์ ๋๋ค.
์ฝ๋๋ ๋ชจ๋ ์ค๋น๋์ด ์์ต๋๋ค.
๋๋์ต๋๋ค.
ActiveRecord Search๋ ํ๋ก๋์ ํ๊ฒฝ์ผ๋ก ์ ํํ ๋ ์ฐ๋ฆฌ์๊ฒ ๋ถ์พ๊ฐ์ ์ฃผ๋ ๊ฒ์ด ๋ฌด์์ธ์ง, ๋๊ฐ์ ์ ์ , ๋๊ฐ์ ์์ด๋์ด์์ ์์ํ ์๋ก์ด ํ๋ก์ ํธ์ ๋๋ค.
Elasticsearch์ ๋๋ค.
Elasticsearch๋ ํ๋ฅญํ ๊ธฐ๋ฅ์ด์ง๋ง ๊ฐ๋ฐ์์ ์ด์์์๊ฒ๋ ๊ณ ํต์ค๋ฌ์ด ๋ฐฉ๋ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ํด๊ฒฐํ ๊ฒ์ ๋๋ค.
์๋ํ๋ฉด ๋๋ถ๋ถ์ ์ฌ๋๋ค์ Elasticsearch์ ๋ชจ๋ ๊ธฐ๋ฅ์ด ํ์ํ์ง ์๊ณ , ActiveRecord๋ฅผ ๊ฒ์ํ๊ธฐ๋ง ํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฐ๋ฆฌ๋ ํจ์ฌ ๊ฐ๋จํ๊ฒ ๊ทธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
ActiveRecord Search๋ ๋ฐ๋ก ๊ทธ๊ฒ์ ์ํ ๊ฒ์ ๋๋ค.
์ด๋ ๊ฒ ๋ณด์ผ ๊ฒ์ ๋๋ค.
์ด๋ค ๋ณ์ ๋๋ ์ด๋ค ์์ฑ์ด ๊ฒ์ ๊ฐ๋ฅํ์ง, ์ด๋ป๊ฒ ๊ฒ์ ๊ฐ๋ฅํ์ง ์ ์ธํ๊ณ , ์ด๋ ๊ฒ ๊ฒ์ํ ๊ฒ์ ๋๋ค.
post.search("๊ณต์ง").
๊ทธ๊ฒ์ด ์ ๋ถ๋ผ๋ฉด ์ผ๋ง๋ ์ข์๊น์? ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ค๋ฉด ์ผ๋ง๋ ์ข์๊น์? ๋ค, ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค.
์ ๋ง ์ข์ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์ธ ๊ฐ์ง ์ฃผ์ ๋ฉ์๋์ ๋๋ค.
๋ค์ ๋งํ์ง๋ง, ๋ค๋ฅธ ๋ชจ๋ Solid์ ๋ง์ฐฌ๊ฐ์ง๋ก...
๋ค๋ฅธ ๋ชจ๋ Solid๋ผ๊ณ ๋งํ์ง๋ง, ์ด๊ฒ์ Solid Search๋ผ๊ณ ๋ถ๋ ธ์ต๋๋ค.
๊ทธ๋ฌ๋ค๊ฐ "์ ๊น๋ง, ๋ง์ด ์ ๋์์.
ActiveRecord๋ ์ด๋ฏธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ๋ฐ, ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ฉ ์ด๋ํฐ๊ฐ ์๋์์."๋ผ๊ณ ๊นจ๋ฌ์์ต๋๋ค.
๊ทธ๋์ ์ด์ ActiveRecord Search๊ฐ ๋์์ง๋ง, ActiveRecord ์์ ๊ตฌ์ถ๋์ด ์์ต๋๋ค.
์ด๋ฌํ ์์ ๋ง ์ํํ๊ณ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก...
์ฐ๋ฆฌ๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ Action Text๋ฅผ ์ฌ์ฉํด ์์ง๋ง, ์ต์ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ๋งํฌ๋ค์ด์ ์ฌ์ฉํ์ฌ Action Text๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๋งํฌ๋ค์ด์ ํ ์คํธ๋ฅผ ํฌ๋งทํ๊ธฐ์ ํ๋ฅญํ ํ์์ด๋ฉฐ, ๋ง์ ์ฌ๋๋ค์ด ์์ง์๊ทธ ํธ์ง๊ธฐ๋ณด๋ค ๋งํฌ๋ค์ด์ ์ ํธํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ Action Text์ ๋ฐ๋ก ๋ฃ์ ๊ฒ์ด๊ณ , HouseMD๋ผ๊ณ ๋ถ๋ฅผ ๊ฒ์ ๋๋ค.
House๋ ์ด๋ฏธ RightBook์ ์ง์ํ๊ณ ์์ต๋๋ค.
์ค์ ๋ก ๋ฌด๋ฃ๋ก ๋ค์ด๋ก๋ํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค.
์๋ ๋ฐฉ์์ ํ์ธํ๊ณ ๋ชจ๋ ์์ค๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
8.1์ ๋ง๋ณด๊ธฐ์ ๋๋ค.
์์ผ๋ก๋ ๋ฉ์ง ๊ธฐ๋ฅ์ด ๋ง์ด ์ค๋น๋์ด ์์ต๋๋ค.
Kamal 2.1, ๋ง์ ๊ฒ๋ค์ด ๋ค๊ฐ์ค๊ณ ์์ง๋ง ์ ์ ๋ชจ๋ ๊ฒ์ ์ ๋ฆฌํ๊ณ ๋นจ๊ฐ์ ์์ ์ฆ๊ธฐ๊ฒ ์ต๋๋ค.
์ฌ๊ธฐ๊น์ง์ ๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
[๋ฐ์]
[์์ ]