MVC 패턴인 Rails

프레임워크?

루비온레일즈는 웹 어플리케이션 프레임워크다.

프레임워크란 무엇일까? 프레임워크는 문제를 해결하기 위한 방법들이 정형화되고 축적된 것을 뜻한다. 문제를 일반화하고 해결하기 위한 툴이라고 할 수 있다.

어플리케이션 프레임워크는 소프트웨어 방법론 중 '재사용이 가능한 클래스'라는 방법을 제공한다. 기능을 모아둔 라이브러리와 유사하게 느껴질 수 있는데 둘은 실행 주체가 다르다는 점에서 엄연히 다르다.

  • 라이브러리: 사용자 코드에서 호출되어야한다. 사용자가 호출할 때 비로소 자신의 코드를 실행한다.

  • 어플리케이션 프레임워크: 프레임워크 스스로가 사용자 코드를 호출한다. 또한 자신의 라이프 사이클(초기화부터 실제 처리, 종료까지의 흐름)을 모두 직접 관리한다. 그리고 이 흐름 속에서 개발자가 사용자 코드를 추가해서 기능을 구현하는 식이다.

이처럼 프로그램의 실행 주체가 역전되는 것을 제어반전(Inversion of Control, IOC)라고 부른다. 이 제어 반전이라는 특징이 프레임워크의 본질이다.

Rails의 특징

Rails는 MVC 패턴으로 개발된다.

Rails는 설계 철학을 2개 가지고 있다.

  • DRY(Don't Repeat Yourself): 같은 코드를 반복하지 말 것

  • CoC(Convention over Configuration): 설정보다 규약이 중요

여기서 말하는 규약은 간단히 말해 Rails가 미리 정의한 이름을 붙이는 규칙이다. 가령 users 테이블을 읽어 들일 때 User라는 이름의 클래스를 이용해야한다. 서로 간의 규칙을 따로 정의할 필요 없이, users(복수형)와 User(단수형)로만 규약에 맞춰 작성하면 Rails가 테이블과 클래스를 연결해준다.

Last updated