[Rails] Rails App 구조(File Tree 설명)

728x90

Rails App 의 구조에대한 설명


처음 Rails 프로젝트 구성을 보면 파일과 디렉토리가 너무 많아 무엇부터 건드려야 할지 막막할 수 있습니다.

이렇게 파일 구조가 복잡한 이유는 Rails의 특징 중 하나인 Convention over Configuration(설정보다 규칙, 줄여서 CoC) 때문입니다. 구조를 이루는 요소 각각은 저마다 알맞는 역할을 수행하기 위해 준비되었습니다.

개발을 진행할 때 요소의 역할을 파악하고 규칙에 따라 코드를 작성하면 Rails는 최고의 생산성을 보장합니다.

하지만, 모든 파일의 의미를 알아야 하는 것은 아닙니다.

여러분이 처음 Rails 프로젝트를 개발할 때 꼭 필요한 부분만 설명 하겠습니다.

 

  1. app/controllers: app 디렉토리의 하위 디렉토리인 controllers 안에 생성되는 파일은 Rails의 MVC 패턴에서 controller에 해당하는 코드가 담겨있습니다.
  2. app/views: app 디렉토리의 하위 디렉토리인 views에는 MVC 패턴에서 view에 해당하는 코드가 들어갑니다. Rails에서 view는 controller 내부의 action과 일대일 매칭되어 설정됩니다.
  3. app/models: app 디렉토리의 하위 디렉토리인 models는 Rails MVC 패턴에서 model 역할을 수행합니다. 내부적으로 설정된 데이터베이스와 연동되어서 관련 테이블을 class화 시킨 것이 model이라고 생각하시면 됩니다.
  4. config/routes.rb: config 디렉토리에 포함되어 있는 routes.rb 파일은 클라이언트에서 요청하는 URL을 특정 controller의 action과 매칭시킵니다.
  5. db/migrate: 사용자가 model을 사용하려면 Rails 프로젝트와 연결된 데이터베이스에 실제로 테이블을 생성해야 합니다. 실제 테이블을 만들기 위한 코드들은 db 디렉토리의 하위 디렉토리인 migrate에 파일 형태로생성됩니다.
  6. db/schema.rb: 실제로 데이터베이스에 테이블이 생성되면 Rails 프로젝트의 db 디렉토리 하위에 생성되는 파일입니다. 이 파일에서 데이터베이스 테이블의 스키마를 확인할 수 있습니다.
  7. vendor/Gemfile: Ruby에서 라이브러리를 Gem이라고 부릅니다. Rails 프로젝트에서는 여러 Gem을 추가하며 개발을 진행하는데, Gem은 vendor 디렉토리 하위에 포함된 Gemfile에 작성하여 Rails 프로젝트에 추가할 수 있습니다.

 

 

출처 : 한눈에 읽는 루비온 레일즈

 

728x90

댓글

Designed by JB FACTORY