20201221(월)

스캐폴딩 마스터!

2020-12-21

1. 학습 날짜

  • 2020-12-21

2. 학습 시간

  • 09:30 ~ 12:00, 15:30 ~ 23:30

3. 학습 범위 및 주제

  • 루비온레일즈

  • 클린코드

4. 학습 목표

  • 루비온레일즈 스캐폴드 기능에 대해 실습하고 정리한다.

  • 클린코드를 읽고 정리한다.

5. 과제 제출

  • x

6. 상세 학습 내용

  • 루비온레일즈

    • 오늘은 ROR의 스캐폴딩 기능을 사용해서 간단한 웹 애플리케이션을 만들었다. 솔직히 말해서 스캐폴딩 기능으로 만들면 단 하나의 명령으로 아주 심플하게 동작하는 웹 애플리케이션을 만들 수 있다. 그 명령은 rails generate scaffold [model name] [attr, ] [options] 와 같다. 이렇게 model name 을 사용해서 만들면 이 이름에 맞게 컨트롤러, 뷰 등이 생성된다.

    • 즉 스캐폴딩을 이용하면 초보자도 단번에 웹을 띄을 수 있다는 것이고 그리고 분석을 하면서 배울게 많아진다는 뜻! 따라서 오늘은 스캐폴딩의 결과로 나오는 파일들과 코드를 분석하는 시간을 가졌다.

    • 위에서 스캐폴딩 기능으로 모델, 컨트롤러, 뷰를 만들었다. 하지만 바로 실행되지 않는다. 왜냐하면 db 생성을 하지 않았기 때문. db 의 생성과 수정을 할 때는 반드시 rake db:migrate 명령을 사용해주자. 이제 서버가 동작한다.

    • 가장 먼저 살펴볼것은 route다. 어느 주소로 클라이언트가 어떤 메소드로 요청을 했을 때 서버가 동작하는지를 단번에 파악할 수 있는 곳이기 때문이다. 따라서 rails routes | grep [name] 명령으로 라우트를 파악한다.

    • 기존에는 get /posts/index => posts#index 와 같은 라인을 각 URI 마다 처리해줬지만, 이건 반복이다. 그리고 ROR은 반복을 매우 싫어한다. 즉 메써드화가 되어있다. config/routes.rb 파일에 들어가보면 단 한줄 resource 로만 처리한다.

    • 이후에는 index, show, new, create, edit, update 그리고 destroy를 학습한다.

    • index는 생각하는 대로 기본 페이지를 보여주는 곳이다. 여기에서는 모든 저장된 데이터를 다 리스트로 보여주는게 index.

    • 흠... 너무 많다

7. 오늘 학습 내용에 대한 개인적인 총평

  • 오늘은 꽤 공부를 많이한거 같다. 내일도 화이팅하자.

8. 다음 학습 계획

  • 루비온레일즈

Last updated