Ruby on Rails & PORO

ybnr_92·2020년 11월 15일
0

Ruby on Rails

루비 온 레일즈는 루비로 작성된 MVC 패턴을 이용하는 오픈 소스 웹 프레임워크이다.
모델,뷰,컨트롤러 패턴을 기반으로 하고 있다. (MVC패턴)

MVC 패턴이란?

모델(model)
어플리케이션의 정보와 데이터를 다루는 규칙들을 의미한다.
레일즈의 모델은 주로 데이터베이스의 테이블과 상호 작용하는 규칙들을 관리한다.
대부분의 경우 데이터베이스의 하나의 테이블은 어플리케이션의 하나의 모델과 대응한다.

뷰(view)
어플리케이션의 유저 인터페이스를 의미한다.
주로 데이터 표현에 관련 된 루비 코드가 삽입되어 있는 HTML파일이다.
데이터를 웹 브라우저나 다른 기기에게 데이터를 제공하는 일을 담당한다.

컨트롤러(controllers)
모델과 뷰를 연결하는 역할을 한다.
웹브라우저의 요청을 받아서 모델을 통해 데이터를 조회하여 출력을 위해 뷰에게 데이터를 넘긴다.

PORO (Plain Old Ruby Objects)

루비 온 레일즈와 같은 MVC기반 프레임 워크에는 "Fat models Thin Controllers"라는 현상이 있다. 이와 같은 현상은 모델이 생각보다 많이 부풀어지고 파일이 훨씬 복잡해지고 때로는 팔요한 방법을 찾을 수도 없다.
객체 지향 프로그래밍의 토대와 복잡한 레일즈 어플리케이션을 쉽게 만드는 비밀무기를 PORO라고 한다.

PORO 정리

  • 특정규약에 종속되지 않는다.
  • 특정 환경에 종속되지 않는다.
  • 객체지향원리에 충실해야 한다. 재활용 될 수 있는 방식으로 설계된 오브젝트

PORO를 사용하는 이유

  • 코드의 간결함
  • 자동화 테스트에 유리
  • 객체지향적 설계의 자유로운 사용
  • 테스트를 하기 위해 별도의 복잡한 mock 객체를 만들지 않아도 됨

0개의 댓글