Chapter1. 소개

1.1 Rails 프레임워크

  • 대부분의 문제는 앞서 경험한 사람들이 존재한다. 따라서 경함한 사람들의 지혜를 활용하면 문제를 보다 쉽게 해결할 수 있다.

  • 이러한 앞선 사람들의 지혜를 사례라고 부른다. 이러한 것이 정형화되고 축적되면 프레임워크라고 불린다.

    • 프레임워크는 문제를 일반화하고 해결하기 위한 틀 이다.

  • 프레임워크는 수학에서 사용되는 공식같은 것이다. 다른 점은 답이 하나가 아니라는것!

1.1.1 애플리케이션 프레임워크

  • 애플리케이션 프레임워크도 프레임워크의 일종이다. 애플리케이션 개발에는 여러 가지의 설계 방법론이 존재한다.

    • 애플리케이션 프레임워크는 이러한 방법론 중에서도 재사용이 가능한 클래스 라는 방법을 제공함.

    • 개발자는 이 프레임워크가 제공하는 기초적인 코드 위에 독자적인 코드를 추가하여 일정한 품질을 가진 애플리케이션을 쉽게 생성할 수 있다.

  • 애플리케이션 코드를 각각의 부품 이라고 한다면, 애플리케이션 프레임워크는 그러한 부품들을 연결해주는 마더보드 라고 할 수 있다.

  • 재사용이 가능한 클래스라고만 하면 라이브러리와 프레임워크 사이에 무슨 차이가 있는지 구분하기가 힘들다. 하지만 분명한 차이점이 있다.

    • 라이브러리: 사용자 코드에서 호출되어야 한다. 라이브러리는 스스로 무언가를 하지 못하므로 문자열 조작, 로그 라이브러리처럼 사용자가 호출할 때 자신의 코드 를 실행한다.

    • 애플리케이션 프레임워크

      • 프레임워크 스스로가 사용자 코드를 호출한다. 애플리케이션 프레임워크는 자신의 라이프 사이클을 모두 직접 관리한다.

      • 그러한 흐름속에서 개발자는 해당 부분에 사용자 코드를 추가해서 기능을 구현하는 것이다.

      • 애플리케이션 프레임워크는 사용자 코드가 애플리케이션을 지배하는 것이 아니라, 프레임워크가 사용자 코드를 직접 지배한다.

    • 이렇게 프로그램의 실행 주체가 연전되는 것을 제어반전 이라고 부른다. 이 제어 반전이라는 특징이 프레임워크의 본질

  • RAILS는 이러한 애플리케이션 프레임워크 중에서도 Web Application Framework 이다. WAF로 부르기도 한다.

1.1.2 프레임워크 사용의 장점

1.개발 생산성이 향상된다.

2. 유지보수성이 뛰어나다

  • 코드에 일관성이 생기면 애플리케이션의 가독성 또한 높아진다.

3. 최신 기술 트렌드에 대응하기 쉽다.

  • 프레임워크는 기술트렌드를 빠르게 도입한다.

4. 일정 이상의 품질을 기대할 수 있다.

  • 프레임워크는 수많은 사람들이 사용한다. 그리고 그 만큼 버그가 있으면 빠른 시간에 잡힌다. 따라서 개인이 만든 것보다 신뢰성이 높을 수밖에 없다.

1.1.3 Rails의 특징

1. MVC 패턴

  • RailsMVC패턴 이라 불리는 아키텍쳐를 사용한다.

  • MBC패턴이란 애플리케이션을 모델, , 컨트롤러와 같이 수항하는 역할로 명확히 구분해서 구성하는 것을 말한다.

  • MVC 패턴은 각각의 구성 요소가 명확하게 구분되어 있어서 다음과 같은 장점이있다. 1. 프로그래머와 디자이너의 공동 작업이 쉬워진다. 2. 디자인과 로직의 수정이 서로에게 영향을 주지 않음(유지 보수의 용이) 3. 기능 단위 테스트를 독립적으로 실행할 수 있다(테스트의 자동화 용이

2. Rails는 개발을 위한 레일을 제공

레일스의 설계 철학

  • 레일즈의 설계 철학

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

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

  • 레일스는 소스 코드 내부에서 같은 처리 또는 정의를 반복해서 사용하는 것을 극도로 싫어한다.

    • 그 예로 데이터베이스 스키마 정의를 설정 파일로 별도 작성하지 않아도 된다.

    • 그냥 데이터베이스에 테이블을 만드는 것만으로도 Rails가 모두 알아서 해준다.

  • 위와 같은 DRY 규칙을 지탱할 수 있게 해주는 것이 바로 CoC 원칙이다.

    • 규약이란 Rails가 미리 정의한 이름을 붙이는 규칙

    • 서로 간의 규칙을 따로 정의할 필요 없이 규약에만 맞춰 작성하면 Rails가 테이블과 클래스를 연결해준다.

  • DRYCoC 원칙을 도입함으로써 개발자는 적은 노력으로 유지 보수가 쉬운 애플리케이션을 개발할 수 있다.

Last updated