πŸš€
Growth log
  • About me
  • I LEARNED
    • General
      • 개발자 κΏ€νŒ
      • κ·Έλ‘œμŠ€ν•΄ν‚Ή 기초
      • κ°œλ°œμžμ—κ²Œ 도메인 지식은 μ–Όλ§ˆλ‚˜ μ€‘μš”ν• κΉŒ?
      • DTO λ…ΌμŸμ— λŒ€ν•˜μ—¬
      • MSAλž€?
    • Seminar
      • ν…ŒμŠ€νŠΈ 컀버리지 100% - SLASH 21
      • TDDκ°€ μ‹€νŒ¨ν•˜λŠ” 이유 - by μ΄κ·œμ›λ‹˜
      • λŒ€κ·œλͺ¨ νŠΈλž˜ν”½ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„±λŠ₯ νŠœλ‹ λ…Έν•˜μš° λ‹€ μ•Œλ € λ“œλ¦Ό|λΌμΈκ°œλ°œμ‹€λ‘
      • 결제 μ‹œμŠ€ν…œμ˜ SDK와 API λ””μžμΈ - SLASH 21
    • Web
      • SOP와 CORS
    • Spring & OOP
      • DTO vs VO
    • Ruby On Rails
      • Rails lib 디렉토리에 λŒ€ν•˜μ—¬
      • Rails의 concernsλž€?
      • Railsμ—μ„œμ˜ GC μž‘λ™μ›λ¦¬
      • Eager loading vs Lazy loading
      • Rails ν™˜κ²½ ꡬ성
      • ActionCable
      • πŸ“”Perfect ruby on rails
        • MVC νŒ¨ν„΄μΈ Rails
        • Ruby on Rails κΈ°λ³Έ - 컨트둀러
        • Ruby on Rails κΈ°λ³Έ - λ·°
        • Ruby on Rails κΈ°λ³Έ - λͺ¨λΈ
        • μŠ€μΊν΄λ”© κΈ°λŠ₯을 μ‚¬μš©ν•œ Rails 개발 기초
        • λ·° 개발
        • λͺ¨λΈ 개발
        • λͺ¨λΈ 개발 - 낙관적 λ™μ‹œ μ‹€ν–‰ μ œμ–΄
        • λͺ¨λΈ 개발 - μœ νš¨μ„± 검사 κ΅¬ν˜„
        • λͺ¨λΈ 개발 - Association
        • λͺ¨λΈ 개발 - 콜백
        • λͺ¨λΈ 개발 - λ§ˆμ΄κ·Έλ ˆμ΄μ…˜
        • λͺ¨λΈ 개발 - 데이터 μ΄ˆκΈ°ν™”
        • 컨트둀러 개발 - μš”μ²­ 정보 μΆ”μΆœ
        • 컨트둀러 개발 - 응닡
        • 컨트둀러 개발 - μƒνƒœ 관리
        • λΌμš°νŒ… - RESTful
        • λΌμš°νŒ… - RESTful μΈν„°νŽ˜μ΄μŠ€μ˜ μ‚¬μš©μž μ •μ˜ν™”
        • λΌμš°νŒ… - RESTful ν•˜μ§€ μ•Šμ€ 라우트 μ •μ˜
        • ν…ŒμŠ€νŠΈ
        • ν…ŒμŠ€νŠΈ - μ€€λΉ„
        • ν…ŒμŠ€νŠΈ - Unit ν…ŒμŠ€νŠΈ
        • ν…ŒμŠ€νŠΈ - Functional ν…ŒμŠ€νŠΈ
        • ν…ŒμŠ€νŠΈ - Integration ν…ŒμŠ€νŠΈ
        • ν΄λΌμ΄μ–ΈνŠΈ 개발 - Sprockets vs Webpacker
        • ν΄λΌμ΄μ–ΈνŠΈ 개발 - Sprockets
    • Node.js & Express
      • κΈ°λ³Έ κ°œλ…
      • npx
    • Programing Language
      • Java
        • JavaDoc에 λŒ€ν•΄
        • invocation에 λŒ€ν•΄μ„œ
        • μ–΄λ…Έν…Œμ΄μ…˜
        • μΆ”μƒν΄λž˜μŠ€ & μΈν„°νŽ˜μ΄μŠ€
        • Package
        • μ˜€λ²„λ‘œλ”© vs μ˜€λ²„λΌμ΄λ”©
      • Javascript
        • TCP School 훑어보기
          • νƒ€μž…
          • ν˜• λ³€ν™˜
          • λ³€μˆ˜
          • μ—°μ‚°μž
          • 반볡문
          • λ°°μ—΄(array)
          • ν•¨μˆ˜
          • ν•¨μˆ˜ - μŠ€μ½”ν”„μ™€ ν˜Έμ΄μŠ€νŒ…
          • ν•¨μˆ˜ - λ§€κ°œλ³€μˆ˜μ™€ 인수
          • ν•¨μˆ˜ - 미리 μ •μ˜λœ μ „μ—­ ν•¨μˆ˜
          • 객체
          • ν”„λ‘œν† νƒ€μž…
          • DOM
          • BOM - Window 객체
          • 이벀트(event)
      • Ruby
        • πŸ“”νΌνŽ™νŠΈ 루비
    • DB
      • Redis
        • Redis κ°œμš”
      • Index(인덱슀)?
      • DB Transaction & Lock
      • λ™μ‹œμ„± μ œμ–΄μ— κ΄€ν•˜μ—¬
      • Lock(잠금)μ΄λž€?
      • ActiveRecord lock vs with_lock
      • Table lock vs Row lock
      • WHERE 1=1 ꡬ문에 λŒ€ν•˜μ—¬
      • COUNT(*) vs COUNT(indexed column)
      • πŸ“•κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ μ‹€μ „μž…λ¬Έ
      • πŸ“”SQL 첫걸음
      • πŸ“”λͺ¨λ‘μ˜ SQL
    • Design Patterns
      • Observer pattern
      • Flyweight pattern
      • Singleton pattern
    • OOP
      • πŸ“”μ˜€λΈŒμ νŠΈ
        • 6μž₯ λ©”μ‹œμ§€μ™€ μΈν„°νŽ˜μ΄μŠ€
      • ν΄λž˜μŠ€κ°„ 관계 간단 정리
    • Regex
    • Collaboration
      • Git
      • Sourcetree
  • DAILY REVIEW
    • 2021
      • August
        • 2021-08-25(Wed)
        • 2021-08-23(Mon)
        • 2021-08-11(Wed)
        • 2021-08-04(Wed)
        • 2021-08-03(Tue)
        • 2021-08-02(Mon)
      • July
        • 2021-07-29(Thu)
        • 2021-07-26(Mon)
        • 2021-07-23(Fri)
        • 2021-07-22(Thu)
        • 2021-07-21(Wed)
        • 2021-07-20(Tue)
        • 2021-07-19(Mon)
        • 2021-07-15(Thu)
        • 2021-07-14(Wed)
        • 2021-07-13(Tue)
        • 2021-07-12(Mon)
      • June
        • 2021-06-05(Sat)
        • 2021-06-04(Fri)
        • 2021-06-03(Thu)
        • 2021-06-02(Wed)
        • 2021-06-01(Tue)
      • May
        • 2021-05-31(Mon)
        • 2021-05-29(Sat)
        • 2021-05-28(Fri)
        • 2021-05-27(Thu)
        • 2021-05-26(Wed)
        • 2021-05-25(Tue)
        • 2021-05-24(Mon)
        • 2021-05-22(Sat)
        • 2021-05-21(Fri)
        • 2021-05-20(Thu)
        • 2021-05-19(Wed)
        • 2021-05-18(Tue)
        • 2021-05-17(Mon)
        • 2021-05-15(Sat)
        • 2021-05-13(Thu)
        • 2021-05-12(Wed)
        • 2021-05-11(Tue)
        • 2021-05-10(Mon)
        • 2021-05-03(Mon)
      • April
        • 2021-04-30(Fri)
        • 2021-04-29(Thu)
        • 2021-04-28(Wed)
        • 2021-04-27(Tue)
        • 2021-04-26(Mon)
        • 2021-04-24(Sat)
        • 2021-04-23(Fri)
        • 2021-04-21(Wed)
        • 2021-04-20(Tue)
        • 2021-04-19(Mon)
        • 2021-04-18(Sun)
        • 2021-04-16(Fri)
        • 2021-04-15(Thu)
        • 2021-04-14(Wed)
        • 2021-04-12(Mon)
        • 2021-04-11(Sun)
        • 2021-04-09(Fri)
        • 2021-04-08(Thu)
        • 2021-04-06(Tue)
        • 2021-04-05(Mon)
        • 2021-04-04(Sun)
        • 2021-04-03(Sat)
        • 2021-04-02(Fri)
        • 2021-04-01(Thu)
      • March
        • 2021-03-29(Mon)
        • 2021-03-28(Sun)
        • 2021-03-26(Fri)
        • 2021-03-25(Thu)
        • 2021-03-24(Wed)
        • 2021-03-23(Tue)
        • 2021-03-22(Mon)
        • 2021-03-21(Sun)
        • 2021-03-20(Sat)
        • 2021-03-17(Wed)
        • 2021-03-16(Tue)
        • 2021-03-15(Mon)
        • 2021-03-12(Fri)
        • 2021-03-11(Thu)
        • 2021-03-10(Wed)
        • 2021-03-09(Tue)
        • 2021-03-08(Mon)
        • 2021-03-07(Sun)
        • 2021-03-05(Fri)
        • 2021-03-03(Wed)
        • 2021-03-02(Tue)
        • 2021-03-01(Mon)
      • Feb
        • 2021-02-26(Fri)
        • 2021-02-25(Thu)
        • 2021-02-24(Wed)
        • 2021-02-23(Tue)
        • 2021-02-22(Mon)
        • 2021-02-19(Fri)
        • 2021-02-18(Thu)
        • 2021-02-17(Wed)
        • 2021-02-16(Tue)
        • 2021-02-15(Mon)
        • 2021-02-14(Sun)
        • 2021-02-13(Sat)
        • 2021-02-12(Fri)
        • 2021-02-10(Wed)
        • 2021-02-09(Tue)
        • 2021-02-08(Mon)
        • 2021-02-07(Sun)
        • 2021-02-05(Fri)
        • 2021-02-03(Wed)
        • 2021-02-02(Tue)
        • 2021-02-01(Mon)
      • Jan
        • 2021-01-29(Fri)
        • 2021-01-28(Thu)
        • 2021-01-27(Wed)
        • 2021-01-26(Tue)
        • 2021-01-25(Mon)
        • 2021-01-23(Sat)
        • 2021-01-22(Fri)
        • 2021-01-20(Wed)
        • 2021-01-19(Tue)
        • 2021-01-18(Mon)
        • 2021-01-12(Tue)
        • 2020-01-11(Mon)
        • 2021-01-08(Fri)
        • 2021-01-07(Thu)
        • 2021-01-06(Wed)
        • 2021-01-05(Tue)
        • 2021-01-04(Mon)
        • 2021-01-01(Fri)
    • 2020
      • Dec
        • 2020-12-30(Thu)
        • 2020-12-25(Fri)
        • 2020-12-24(Thu)
        • 2020-12-23(Wed)
        • 2020-12-22(Tue)
        • 2020-12-21(Mon)
        • 2020-12-18 (Fri)
      • Nov
        • 2020-11-30(Mon)
        • 2020-11-28(Sat)
        • 2020-11-26(Thu)
        • 2020-11-25(Wed)
        • 2020-11-24(Tue)
        • 2020-11-23(Mon)
        • 2020-11-22(Sun)
        • 2020-11-20(Fri)
        • 2020-11-19(Thu)
        • 2020-11-18(Wed)
        • 2020-11-17(Tue)
        • 2020-11-14(Sat)
        • 2020-11-13(Fri)
        • 2020-11-12(Thu)
        • 2020-11-11(Wed)
        • 2020-11-09(Mon)
        • 2020-11-07(Sat)
        • 2020-11-05(Thu)
        • 2020-11-04(Wed)
        • 2020-11-03(Tue)
        • 2020-11-02(Mon)
    • Good article 아카이빙
Powered by GitBook
On this page
  • ν•œλˆˆμ— μ½λŠ” 루비 온 레일즈
  • 01. μ‹œμž‘ν•˜κΈ°μ— μ•žμ„œ
  • 02. 개발 ν™˜κ²½ μ„€μ • & Rails 기초
  • 03. CRUD κΈ°λŠ₯ κ΅¬ν˜„

Was this helpful?

  1. DAILY REVIEW
  2. 2020
  3. Dec

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 κ°•μ˜λŠ” μƒλ‹Ήνžˆ λ§Œμ‘±μŠ€λŸ¬μ› μŠ΅λ‹ˆλ‹€. μ–΄μ„œ ν•™μŠ΅μ„ μ΄μ–΄λ‚˜κ°€μ„œ λ‹€λ₯Έ λ™λ£Œλ“€μ˜ ν•™μŠ΅λŸ‰μ„ λ”°λΌκ°€μ•Όκ² μŠ΅λ‹ˆλ‹€.

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

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

Previous2020-12-23(Wed)Next2020-12-21(Mon)

Last updated 4 years ago

Was this helpful?