2020-12-21(Mon)
ํ์ต ๋ ์ง // 2020-12-21(์)
ํ์ต์๊ฐ // 9:00~22:00
ํ์ต ๋ฒ์ ๋ฐ ์ฃผ์ // Getting started with Rails
๋๋ฃ ํ์ต ๋ฐฉ๋ฒ // -
ํ์ต ๋ชฉํ // Getting started with Rails ๋ค ํ๊ธฐ
์์ธ ํ์ต ๋ด์ฉ
๋ฃจ๋น์จ๋ ์ผ์ค ํํ ๋ฆฌ์ผ์ธ Getting started with Rails๋ฅผ ๋น ๋ฅด๊ฒ ํ์์ต๋๋ค.
์๋์ฒ๋ผ ๊ณผ์ ์ ์ ๋ฆฌํ๋ค๊ฐ ํ์ต ํจ์จ์ด ๋จ์ด์ง๋ ๊ฑธ ๋๊ปด์ ์ ๋ฆฌํ๋๊ฑธ ๋ด๋ ค๋์์ต๋๋ค.
Rails guides
๋ฃจ๋น์จ๋ ์ผ์ค ํํ ๋ฆฌ์ผ์ธ Getting started with Rails๋ฅผ ๋น ๋ฅด๊ฒ ํ๋๋ค.
๋ ์ผ์ค๋?
๋ฃจ๋น ์ธ์ด๋ก ์์ฑ๋ ์น์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ ์์ํฌ์ด๋ค.
'The Rails Way'๋ฅผ ํ์ตํ๋ฉด ์์ฐ์ฑ์ด ํฌ๊ฒ ํฅ์๋ ๊ฒ์ด๋ค! 'The Rails Way'๋ ๋ค์ ๋ ๊ฐ์ ๊ฐ์ด๋ ์์น์ ํฌํจํ๋ค.
Don't Repeat Yourself(DRY)
๋ชจ๋ ์ง์์ ํ๋์ ์์คํ ์์์ ์ ์ผํด์ผ ํ๊ณ , ๋ชจํธ์ฑ์ด ์์ด์ผํ๋ฉฐ, ๊ถ์๋ฅผ ๊ฐ์ ธ์ผ ํ๋ค.
Convention Over Configuration
๋ ์ผ์ฆ๋ ์น์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ต์ ์ ๋ฐฉ๋ฒ์ ์ค์ ๋ด์ฉ์ผ๋ก ๋ช ์ํ์ง ์๋๋ค, ๋์ ๋ํดํธ ์ปจ๋ฒค์ ์ผ๋ก ์ ์ํ๋ค.
๋ ์ผ์ค ํ๋ก์ ํธ ์์ฑํ๊ธฐ
์ฐ์ ruby ๋ฅผ ์ต์ 2.5.0 ์ด์ ๋ฒ์ ์ผ๋ก ์ค์นํ์.
mac os ์นดํ๋ฆฌ๋์ ๊ฒฝ์ฐ ruby 2.6.0 ๋ฒ์ ์ด ๊ธฐ๋ณธ์ผ๋ก ์ค์น๋์ด์๋ค. ํ์ง๋ง ์ฐ๋ฆฌ ํ์ ruby 2.7.1 ๋ฒ์ ์ผ๋ก ์งํํ๊ธฐ๋ก ํ์์ผ๋ฏ๋ก ๋ณ๋๋ก ์ ๋ฐ์ดํธํ๋ ์์ ์ ๊ฑฐ์ณค๋ค.
์ด ๋ ๊ทธ๋ฅ brew
๋ก ์
๋ฐ์ดํธํ๋ฉด ํ๊ฒฝ๋ณ์๊ฐ ๊ผฌ์ด๋ ๋ฑ ๋์ฐธ์ฌ๊ฐ ๋ ์ ์๋ค๊ณ ํ๋ค.
๋ฃจ๋น ๋ฒ์ ๊ด๋ฆฌ RVM ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ์ ์ฐธ๊ณ ํ์ฌ RVM(ruby version Manager)
์ ํตํด ์
๋ฐ์ดํธํ์!
์ดํ๋ฆฌ์ผ์ด์ ์์ฑํ ๋ค์ ๋ ์ผ์ค ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์กฐ์ ๋ฐ๋ผ ๋ค์์ ํ์ผ๊ณผ ํด๋๊ฐ ์๋ ์์ฑ๋๋ค. ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํ๋ฉด ์๋์ ๊ฐ๋ค.
ํ์ผ/ํด๋ | ์ฉ๋ |
app/ | ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํธ๋กค๋ฌ, ๋ชจ๋ธ, ๋ทฐ, ํฌํผ, ๋ฉ์ผ๋ฌ, ์ฑ๋, ์์ ๋ฐ ์ ์ ์ ํฌํจํ๋ค. |
bin/ | ์ฑ์ ์์ํ๋ ๋ ์ผ์ค ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํ๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์ ์ค์ , ์ ๋ฐ์ดํธ, ๋ฐฐํฌ ๋๋ ์คํํ๋ ๋ฐ ์ฌ์ฉํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจ ํ ์ ์๋ค. |
config/ | ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ผ์ฐํธ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ์ ๊ตฌ์ฑํ๋ค. Configuring Rails Applications์ ์์ธํ ์ค๋ช ๋์ด ์๋ค. |
config.ru | ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋(Rack) ๊ธฐ๋ฐ ์๋ฒ์ ๋ ๊ตฌ์ฑ. ๋์ ๋ํ ์์ธํ ๋ด์ฉ์ Rack ์น ์ฌ์ดํธ๋ฅผ ์ฐธ์กฐํ๋ค. |
db/ | ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง์ด๊ทธ๋ ์ด์ ์ด ํฌํจ๋์ด ์๋ค. |
Gemfile Gemfile.lock | ์ด ํ์ผ์ ์ฌ์ฉํ๋ฉด ๋ ์ผ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ์ ฌ(gem) ์์กด์ฑ์ ์ง์ ํ ์ ์๋ค. ์ด ํ์ผ์ Bundler ์ ฌ์์ ์ฌ์ฉํ๋ค. Bundler์ ๋ํ ์์ธํ ๋ด์ฉ์ Bundler ์น ์ฌ์ดํธ๋ฅผ ์ฐธ์กฐํ๋ค |
lib/ | ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ํ์ฅ ๋ชจ๋. |
log/ | ์ ํ๋ฆฌ์ผ์ด์ ๋ก๊ทธ ํ์ผ |
package.json | ์ด ํ์ผ์ ์ฌ์ฉํ๋ฉด ๋ ์ผ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ npm ์ข ์์ฑ์ ์ง์ ํ ์ ์๋ค. ์ด ํ์ผ์ Yarn์์ ์ฌ์ฉํ๋ค. Yarn์ ๋ํ ์์ธํ ๋ด์ฉ์ Yarn ์น ์ฌ์ดํธ๋ฅผ ์ฐธ์กฐํ๋ค. |
public/ | ๋๊ตฌ๋ผ๋ ์ ๊ธํ ์ ์๋ ์ ์ผํ ํด๋์ด๋ค. ์ ์ ํ์ผ ๋ฐ ์ปดํ์ผ ๋ ์ ์ ์ ํฌํจํ๋ค. |
Rakefile | ์ด ํ์ผ์ ์ปค๋งจ๋ ๋ผ์ธ์์ ์คํํ ์ ์๋ ํ์คํฌ(task)๋ฅผ ์ฐพ์์ ๋ก๋ํ๋ค. ํ์คํฌ ์ ์๋ ๋ ์ผ์ค์ ๊ตฌ์ฑ ์์ ์ ์ฒด์ ๊ฑธ์ณ ์ ์๋๋ค. |
README.md | ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ๊ฐ๋จํ ์ฌ์ฉ ์ค๋ช ์์ด๋ค. ์ด ํ์ผ์ ํธ์งํ์ฌ ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ฅ, ์ค์ ๋ฐฉ๋ฒ ๋ฑ์ ์๋ ค ์ฃผ์ด์ผ ํ๋ค. |
storage/ | ๋์คํฌ ์๋น์ค์ฉ ์กํฐ๋ธ ์คํ ๋ฆฌ์ง ํ์ผ. ์ด์ ๋ํด์๋ Active Storage Overview์์ ๋ค๋ฃฌ๋ค. |
test/ | ์ ๋ ํ ์คํธ, ํฝ์ค์ณ(fixtures, ํ ์คํธ ๋ฐ์ดํฐ) ๋ฐ ๊ธฐํ ํ ์คํธ ์ฅ์น. ์ด๊ฒ๋ค์ Testing Rails Applications์์ ๋ค๋ฃฌ๋ค. |
tmp/ | ์์ ํ์ผ (์บ์(cache)์ pid ํ์ผ). |
vendor/ | ๋ชจ๋ ๋ฒค๋(ํ์ฌ) ์ฝ๋๋ฅผ ์ํ ์ฅ์์ด๋ค. ์ ํ์ ์ธ ๋ ์ผ์ค ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ๋ฒค๋์์ ์ ๊ณตํ๋ ์ ฌ์ ์ฌ๊ธฐ์ ํฌํจํ๋ค. |
.ruby-version | ์ด ํ์ผ์๋ ๊ธฐ๋ณธ ๋ฃจ๋น ๋ฒ์ ์ด ํฌํจ๋์ด ์๋ค. |
"Hello" ๋ฌธ์๋ฅผ ํ์ํ๊ธฐ ์ํด์๋ ์ต์ํ ํ๋์ controller(์ปจํธ๋กค๋ฌ) ์ ํ๋์ view(๋ทฐ) ๋ฅผ ์์ฑํด์ผ ํ๋ค.
์ปจํธ๋กค๋ฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ํน์ ์์ฒญ๋ฅผ ๋ฐ๋ ์ญํ ์ ํ๋ค. Routing(๋ผ์ฐํ ) ์ ์ด๋ค ์ปจํธ๋กค๋ฌ๊ฐ ์ด๋ค ์์ฒญ์ ๋ฐ์ ๊ฒ์ธ๊ฐ๋ฅผ ๊ฒฐ์ ํ๋ค. ์ข ์ข ํ๋์ ์ปจํธ๋กค๋ฌ๊ฐ ํ๋ ์ด์์ ๋ผ์ฐํธ๋ก ์ฐ๊ฒฐ๋๊ธฐ๋ ํ๋๋ฐ ์ด ๋ ํน์ ์ปจํธ๋กค๋ฌ์ ๋ผ์ฐํธ๋ค์ ๊ฐ๊ธฐ ๋ค๋ฅธ actions(์ก์ ) ์ ํธ์ถํ์ฌ ์๋น์คํ๋ค. ์ก์ ์ ์ ๋ณด๋ฅผ ๋ชจ์์ ๋ทฐ์ ์ ๊ณตํ๋ ์ญํ ์ ์ํํ๋ค.
๋ทฐ๋ ์ด๋ฌํ ์ ๋ณด๋ฅผ ์ฌ๋์ด ์ฝ์ ์ ์๋ ํํ๋ก ํ์ํ๋๋ฐ ์ค์ํ ์ฐจ์ด์ ์ ์ ๋ณด๋ฅผ ์์งํ๋ ๊ณณ์ด ๋ทฐ๊ฐ ์๋๊ณ ์ปจํธ๋กค๋ฌ ๋ผ๋ ์ ์ด๋ค. ๋ทฐ๋ ๋ฐ๋ก ์ด๋ฌํ ์ ๋ณด๋ฅผ ๋จ์ง ํ์๋งํด์ผ ํ๋ค. ๋ณดํต ๋ทฐ ํ ํ๋ฆฟ์ eRuby(Embeded Ruby)๋ก ์์ฑํ๋๋ฐ ์ฌ์ฉ์๋ค์๊ฒ ๋ณด๋ด์ง๊ธฐ ์ ์ ๋ ์ผ์ค ์์ง์ด ์์ฒญ ์ฃผ๊ธฐ์ ๋ฐ๋ผ ์ฒ๋ฆฌํ๊ฒ ๋๋ค.
4.3 ์ ํ๋ฆฌ์ผ์ด์
ํ ํ์ด์ง ์ค์ ํ๊ธฐ
ํํ ๋ฆฌ์ผ๋๋ก ์งํํ๊ณ http://localhost:3000/articles
์์ฒญ์ ๋ณด๋ด๋ ์๊ฐ ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค!
error Command "webpack" not found
๋ผ๊ณ ํ์ฌ, ์๋ ์ปค๋งจ๋๋ฅผ ์
๋ ฅํ์ฌ webpack์ ๋ค์ด๋ก๋ํด๋ณด์๋ค.
๊ทธ๋ฐ๋ฐ ์๋์ฒ๋ผ gyp ERR! ๊ฐ ๋ฐ์ํ์๋ค.
์๋๋๋ค๋ฅผ๊น webpacker ์ค์น๋ ์๋ฃ๋์์ง๋ง http://loaclhost:3000/articles
์์ฒญ์ด ์ ๋๋ก ์ฒ๋ฆฌ๋์ง ์๋๋ค.
์ค๋ฅ ๋ฉ์ธ์ง๋ฅผ ์ฐฌ์ฐฌํ ์ฝ์ด๋ณด๋ฉด Xcode or CLT version ์ด ๊ฐ์ง๋์ง ์๋ ๊ฒ์ด ์์ธ์ธ ๊ฒ์ผ๋ก ์ถ์ ๋๋ค.
์ด๋ฅผ ํํธ์ผ์ ๊ฒ์ํ๋๋ macOS ์นดํ๋ฆฌ๋์ ๊ณ ์ง์ ์ธ ๋ฌธ์ ๋ก ๋ณด์ธ๋ค. ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ฌ xcode ์ญ์ ํ ์ฌ์ค์น๋ฅผ ์งํํ์๋๋ ๊น๋ํ๊ฒ ํด๊ฒฐ๋์๋ค!
ํ์ต ๋ด์ฉ์ ๋ํ ๊ฐ์ธ์ ์ธ ์ดํ
๋๋ฌด ๋ชจ๋ ๊ฒ์ ์ ๋ฆฌํ๋ฉด์ ํ์ตํ๋ ค๋ ์ต๊ด์ ๋ฒ๋ ค์ผํ๋๋ฐ ํ ํ์ต์ ํ๋ฉด์ ๋์ง ๊ฒ ๊ฐ์ต๋๋ค. ๋ค์ ๊ฐ๋ณ๊ณ ๋น ๋ฅด๊ฒ ํ์ตํ ์ ์๋๋ก ํด์ผ๊ฒ ์ต๋๋ค.
๋ค์ ํ์ต ๊ณํ
๋ฃจ๋น์จ๋ ์ผ์ฆ ํ์ต
Last updated