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 문법을 사용할 수 있도록 루비를 임베드한다.

  • defend 사이에 있는 내용을 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