생각을 개발하자, 박진형

[rails] routes.rb, 라우팅이란? 본문

Likelion/rails

[rails] routes.rb, 라우팅이란?

imjinbro imjinbro 2017.01.27 18:42
[레일즈 라우팅(config > routes.rb 파일에 대한 이해)]


- 라우팅에 대해 알아보기 전 다시 MVC에 대해 알아보자
    Model : 도서가 꽂힌 책들의 정보를 저장하기위해 필요한 규칙 혹은 어떤 방식으로 저장할건지에 대한 설명이 적힌 것
    View : 도서관 자체도 될 수 있고 도서 대여대, 도서 대여대가 놓인 책상 등 
    Controller : 사서가 도서 대여 요청 혹은 반납 요청이 들어왔을 때 어떤 일들을 해야하는지 적어놓은 지침서와 같은 것

- 라우팅이란? (도서관 도서 대여 서비스 예를 들어)


우리가 도서관에 들어가서 책을 빌리기위해서는 사서를 찾아야한다고 하였다. 
도서를 빌리기위해, 반납하기위해 사서를 찾아가야하는데 routes.rb 파일은 사서를 찾아가야함을 명시해놓은 규칙과 같다.
홈페이지 주소 즉 URL을 통해서 살펴보자 
우리 도서관의 홈페이지 주소는 다음과 같다고 가정한다 : www.ksu-library.com
책을 빌리기위해서는 특정 주소로 가야한다. 그 주소는 다음과 같다 : www.ksu-library.com/librarian
위의 주소는 도서관에 가서 사서를 찾아간 것과 같다. 도서관 홈페이지에 들어가 책빌리기 메뉴 버튼을 누르면 기존의 도서관 홈페이지 주소 뒤에 “/librarian" 가 붙는다.    
책빌리기 메뉴 버튼을 누르면 도서 대여 반납 서비스를 이용할 수 있는 페이지가 나온다. 여기서 routes.rb 파일은 주소 뒤에 붙는 이름을 붙여주는 역할을 한다. 이름만 붙여주는게 아니라 도서관 책빌리기 페이지에 대한 요청, 응답과 관련된 명령이 모여진 특정 컨트롤러(책 대여 반납 명령, 행동 지침들이 들어있는 컨트롤러)를 연결해주는 역할을 하는 것이 routes.rb 파일이며, 일련의 과정을 라우팅 한다라고 표현한다.

즉 라우팅은 뷰와 컨트롤러 사이에서 연결을 시켜주는 것이다. 책을 빌리는 사람이 책 대여/반납 버튼을 눌렀을 때 어느 뷰와 컨트롤러가 대응할 것인지를 정해놓는 것이다.

- 라우팅 방법(연결시키는 방법)
    레일즈 어플리케이션 전체 디렉토리 > config > routes.rb 수정
    라우팅 설계에 관해서는 뒤에서 더 배울 것이다. 어떤 파일을 건드려야지 라우팅 설정을 할 수 있는지에 대해서만 알고 넘어가자

    레일즈의 라우팅은 Restful 설계를 지향함(Restful이란 무엇인가?는 뒤의 내용을 통해서)