Controller(컨트롤러)의 기본
컨트롤러에 대한 간단한 것들을 잡고 넘어가도록 해봅시다.
일단 컨트롤러는 ApplicationController 클래스를 상속받아야 합니다.
rails generate 로 Controller를 생성했을 경우에는 인식하지 못하지만 생성하고 나서 Controller 파일을 보면 ApplicationController 클래스를 상속받고 있는 모습을 볼 수 있습니다.
정확하게는 ApllicationController::Base 라는 ApplicationController의 부모 클래스를 상속받아야 합니다.
ApplicationController::Base 클래스가 요청과 응답에 대한 모든 처리를 해주므로 개발자는 더더욱 애플리케이션 개발에 집중을 가할 수 있습니다.
그리고 사실 컨트롤러는 액션 메서드들을 집합이라고 할 수 있습니다.
액션 메서드(액션)라는 것은 클라이언트로부터의 요청을 처리해주는 메서드라고 할 수 있습니다.
컨트롤러 클래스는 한 개 이상의 액션 메서드를 생성할 수 있습니다.
즉, "액션 메서드들의 묶음" 이 컨트롤러라고 생각하심 될 듯 합니다.
액션 메서드를 생성하는 방법은 매우 쉽습니다.
public 메서드로 선언하기만 하면 액션 메서드가 되는 것입니다.
하지만 반대로 액션 메서드로 공개하고 싶지 않다면 외부에서 접근 불가하도록 private로 선언하면 됩니다.
이러한 액션 메서드들의 역할으로는 일반적으로는 요청을 처리하거나, Model을 호출하거나, View에서 사용되는 변수를 배달해주거나 등등을 합니다.
MVC 패턴의 글에서 말씀드렸던 것처럼 컨트롤러는 모델과 뷰, 두 곳을 연결해주고 가장 핵심적인 부분입니다.
그리고 이러한 컨트롤러에도 Rails의 기본 이념인 CoC(설정보다 규칙)가 적용됩니다.
컨트롤러의 이름 규칙을 이해하는 것이 컨트롤러 공부의 첫 걸음이라고 할 수 있겠습니다.
rails generate 로 생성했을 경우의 컨트롤러의 이름 규칙을 예시를 통해 알아보겠습니다.
종류 |
설명 |
예시 |
컨트롤러 클래스 |
앞 글자는 대문자, 뒤에 "Controller"를 붙입니다. |
HelloController |
컨트롤러 클래스(파일 이름) |
컨트롤러 클래스의 이름은 소문자로 만들고, 언더바로 구 분시킵니다. |
hello_controller.rb |
헬퍼 파일 이름 |
컨트롤러 이름 뒤에 "_helper.rb"를 붙입니다. |
hello_helper.rb |
테스트 스크립트 이름 |
컨트롤러 이름 뒤에 "_controller_test.rb"를 붙입니다. |
hello_controller_test.rb |
컨트롤러 클래스는 카멜케이스가, 컨트롤러 클래스와 헬퍼, 테스트 스크립트의 파일 이름은 스네이크가 적용되었습니다.
이러한 규칙들을 잘 알고 그에 맞게 코딩하는 것이 바람직한 개발자의 모습이라고 생각합니다.
읽어주셔서 감사합니다 :)
'Ruby > Ruby on Rails' 카테고리의 다른 글
Model(모델)의 기본 (0) | 2016.02.21 |
---|---|
View(뷰)의 기본 (0) | 2016.02.19 |
12 weeks 12 projects (0) | 2016.02.15 |
gem 명령어의 주요 옵션 (0) | 2016.02.15 |
MVC 패턴 (0) | 2016.02.14 |