2020-12-22(Tue)

  1. ν•™μŠ΅ λ‚ μ§œ // 2020-12-22(ν™”)

  2. ν•™μŠ΅μ‹œκ°„ // 9:00~22:00

  3. ν•™μŠ΅ λ²”μœ„ 및 주제 // ν•œ λˆˆμ— μ½λŠ” 루비 온 레일즈

  4. λ™λ£Œ ν•™μŠ΅ 방법 // -

  5. ν•™μŠ΅ λͺ©ν‘œ // ν•œ λˆˆμ— μ½λŠ” 루비 온 레일즈λ₯Ό ν›‘λŠ”λ‹€.

  6. 상세 ν•™μŠ΅ λ‚΄μš©

ꡬ름 IDEμ—μ„œ μ œκ³΅ν•˜λŠ” ν•œ λˆˆμ— μ½λŠ” 루비 온 레일즈 νŠœν† λ¦¬μ–Όμ„ ν•™μŠ΅ν•˜μ˜€λ‹€.

ν•œλˆˆμ— μ½λŠ” 루비 온 레일즈

01. μ‹œμž‘ν•˜κΈ°μ— μ•žμ„œ

MVC νŒ¨ν„΄μ— λŒ€ν•œ μ„€λͺ…이 μžˆμ—ˆλŠ”λ° ν˜Όλž€μ΄ 생겼닀. MVC νŒ¨ν„΄μ— λŒ€ν•΄ μ„€λͺ…이 있으면 λͺ¨λΈκ³Ό 뷰의 μ˜μ‘΄μ„±μ΄ μ•„μ˜ˆ μ—†λ‹€λŠ” μ‹μœΌλ‘œ κΈ°μˆ λ˜μ–΄μžˆλŠ”λ° κΆκΈˆν•΄μ„œ 더 μžμ„Ένžˆ μ•Œμ•„λ³΄λ‹ˆ κΌ­ 그렇지도 μ•Šλ‹€λŠ” λΈ”λ‘œκ·Έ 글도 μžˆμ—ˆλ‹€. 흠.. μΆ”ν›„ μžμ„Ένžˆ νŒŒλ΄μ•Όκ² λ‹€.

02. 개발 ν™˜κ²½ μ„€μ • & Rails 기초

  • *.erb νŒŒμΌμ€ 일반 html에 ruby 문법을 μ‚¬μš©ν•  수 μžˆλ„λ‘ 루비λ₯Ό μž„λ² λ“œν•œλ‹€.

  • def 와 end 사이에 μžˆλŠ” λ‚΄μš©μ„ action이라고 λΆ€λ₯΄λ©° 이름이 λ™μΌν•œ view와 μžλ™ λ§€μΉ­ν•œλ‹€. Railsμ—μ„œ action은 μ„œλΉ„μŠ€μ—μ„œ λ™μž‘ν•  수 μžˆλŠ” ν–‰λ™μœΌλ‘œ, 행동은 μ‚¬μš©μžκ°€ λ³Ό 수 μžˆλŠ” νŽ˜μ΄μ§€ λ˜λŠ” λ™μž‘ν•˜λŠ” ν•˜λ‚˜μ˜ 둜직이 될 수 μžˆλ‹€.

03. CRUD κΈ°λŠ₯ κ΅¬ν˜„

rails g model Post

μœ„ λͺ…λ Ήμ–΄λ‘œ Model classλ₯Ό μƒμ„±ν•œλ‹€. 이 λ•Œ μƒμ„±λ˜λŠ” νŒŒμΌμ€ μ•„λž˜μ™€ 같은 역할을 κ°€μ§„λ‹€.

  1. db/migrate/xxxx_create_posts.rb: λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ” ν•„λ“œ λ“±μ˜ 정보λ₯Ό μ •μ˜ν•˜λŠ” λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ 파일

  2. app/model/post.rb: 1번 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ 톡해 μƒμ„±λœ posts ν…Œμ΄λΈ”κ³Ό μ—°κ²°ν•˜μ—¬ μ‚¬μš©

이 λ•Œ 파일λͺ…은 레일즈의 'CoC(Convention over Configuration)' 철학에 μ˜ν•΄ λ ˆμΌμ¦ˆμ—μ„œ μ„€μ •ν•΄λ‘” κ·œμΉ™μ„ λ”°λ₯Έλ‹€.

  1. λͺ¨λΈ 클래슀의 κ·œμΉ™: λ‹¨μˆ˜ν˜•μ˜ 카멜 μΌ€μ΄μŠ€

    ex) Post, PostComment

  2. λͺ¨λΈ 클래슀의 파일 이름: λ‹¨μˆ˜ν˜•μ˜ μŠ€λ„€μ΄ν¬ μΌ€μ΄μŠ€

    ex) post.rb, post_comment.rb

  3. ν…Œμ΄λΈ”: λ³΅μˆ˜ν˜•μ˜ μŠ€λ„€μ΄ν¬ μΌ€μ΄μŠ€

    ex) posts, post_comments

    04. scaffold μ‚¬μš©ν•˜κΈ°

    λ ˆμΌμŠ€μ—μ„œλŠ” CRUDλ₯Ό κ΅¬ν˜„ν•  λ•Œ MVCλ₯Ό λͺ…λ Ήμ–΄λ‘œ μ‰½κ²Œ κ΅¬ν˜„ν•˜λŠ” 방식이 μžˆλ‹€. 이 방식이 Scaffolding(μŠ€μΊν΄λ”©)이닀.

    μŠ€μΊν΄λ”©μ€ λΌˆλŒ€, κΈ°λ°˜μ΄λΌλŠ” λœ»μ„ κ°€μ§€κ³  있으며, λ ˆμΌμŠ€μ—μ„œλ„ 이 뜻과 걸맞게 CRUD와 λ”λΆˆμ–΄ CRUD와 μ—°κ΄€λœ κΈ°λ³Έ κΈ°λŠ₯듀을 κ°–μΆ˜ ν”„λ‘œμ νŠΈμ˜ λΌˆλŒ€λ₯Ό λ§Œλ“€μ–΄μ€€λ‹€.

    routes.rb에 쓰인 resources λ©”μ„œλ“œλŠ” RESTful ν•œ 라우트(μ£Όμ†Œμ™€ 컨트둀러 μ—°κ²°)λ₯Ό μƒμ„±ν•œλ‹€.

    λ¦¬μ†ŒμŠ€

    λ¦¬μ†ŒμŠ€(μ£Όμ†Œ)λ₯Ό ν‘œν˜„ν•  땐 λͺ‡ κ°€μ§€ μ œμ•½ 쑰건이 μ‘΄μž¬ν•œλ‹€.

    1. λ¦¬μ†ŒμŠ€λŠ” 동사λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  λͺ…μ‚¬λ‘œ μž‘μ„±ν•œλ‹€. λ¦¬μ†ŒμŠ€λŠ” ν–‰μœ„λ₯Ό ν‘œν˜„ν•˜μ§€ μ•Šκ³  ν–‰μœ„μ˜ 주체, 즉 μžμ›λ§Œ ν‘œν˜„ν•œλ‹€. λ•Œλ¬Έμ— ν–‰μœ„(동사) 뢀뢄은 HTTP λ©”μ„œλ“œλ‘œ λŒ€μ‹ ν•œλ‹€.

    2. λ¦¬μ†ŒμŠ€λŠ” μ½œλ ‰μ…˜κ³Ό λ„νλ¨ΌνŠΈ(멀버)둜 이루어진닀. λ„νλ¨ΌνŠΈλŠ” λ¬Έμ„œ λ˜λŠ” ν•œ 객체둜, μ½œλ ‰μ…˜μ€ λ„νλ¨ΌνŠΈμ˜ μ§‘ν•© λ˜λŠ” κ°μ²΄λ“€μ˜ 집합이라고 μƒκ°ν•˜λ©΄ λœλ‹€. λ•Œλ¬Έμ— μ½œλ ‰μ…˜μ„ ν‘œν˜„ν•  땐 λ³΅μˆ˜ν˜•μœΌλ‘œ, λ„νλ¨ΌνŠΈλ₯Ό ν‘œν˜„ν•  땐 λ‹¨μˆ˜ν˜• λ˜λŠ” μ½œλ ‰μ…˜ 뒀에 id 값을 μž…λ ₯ν•˜μ—¬ ν‘œν˜„ν•œλ‹€.

    λ ˆμΌμŠ€λŠ” μ›μΉ™μ μœΌλ‘œ RESTfulν•œ 라우트λ₯Ό μ „μ œλ‘œ μ„€κ³„λ˜μ–΄ μžˆλ‹€.

    1. ν•™μŠ΅ λ‚΄μš©μ— λŒ€ν•œ 개인적인 총평

    ꡬ름 IDE에 μžˆλŠ” Ruby 기초 κ°•μ˜λŠ” 개인적으둜 λ³„λ‘œ λ§Œμ‘±μŠ€λŸ½μ§€ μ•Šμ•˜λŠ”λ° Rails κ°•μ˜λŠ” μƒλ‹Ήνžˆ λ§Œμ‘±μŠ€λŸ¬μ› μŠ΅λ‹ˆλ‹€. μ–΄μ„œ ν•™μŠ΅μ„ μ΄μ–΄λ‚˜κ°€μ„œ λ‹€λ₯Έ λ™λ£Œλ“€μ˜ ν•™μŠ΅λŸ‰μ„ λ”°λΌκ°€μ•Όκ² μŠ΅λ‹ˆλ‹€.

    λ‹€μŒ ν•™μŠ΅ κ³„νš

    • λ£¨λΉ„μ˜¨λ ˆμΌμ¦ˆ ν•™μŠ΅

Last updated

Was this helpful?