[Rails] Rails App 구조(File Tree 설명)
- ETC../Rails
- 2020. 10. 21.
728x90
Rails App 의 구조에대한 설명
처음 Rails 프로젝트 구성을 보면 파일과 디렉토리가 너무 많아 무엇부터 건드려야 할지 막막할 수 있습니다.
이렇게 파일 구조가 복잡한 이유는 Rails의 특징 중 하나인 Convention over Configuration(설정보다 규칙, 줄여서 CoC) 때문입니다. 구조를 이루는 요소 각각은 저마다 알맞는 역할을 수행하기 위해 준비되었습니다.
개발을 진행할 때 요소의 역할을 파악하고 규칙에 따라 코드를 작성하면 Rails는 최고의 생산성을 보장합니다.
하지만, 모든 파일의 의미를 알아야 하는 것은 아닙니다.
여러분이 처음 Rails 프로젝트를 개발할 때 꼭 필요한 부분만 설명 하겠습니다.
- app/controllers: app 디렉토리의 하위 디렉토리인 controllers 안에 생성되는 파일은 Rails의 MVC 패턴에서 controller에 해당하는 코드가 담겨있습니다.
- app/views: app 디렉토리의 하위 디렉토리인 views에는 MVC 패턴에서 view에 해당하는 코드가 들어갑니다. Rails에서 view는 controller 내부의 action과 일대일 매칭되어 설정됩니다.
- app/models: app 디렉토리의 하위 디렉토리인 models는 Rails MVC 패턴에서 model 역할을 수행합니다. 내부적으로 설정된 데이터베이스와 연동되어서 관련 테이블을 class화 시킨 것이 model이라고 생각하시면 됩니다.
- config/routes.rb: config 디렉토리에 포함되어 있는 routes.rb 파일은 클라이언트에서 요청하는 URL을 특정 controller의 action과 매칭시킵니다.
- db/migrate: 사용자가 model을 사용하려면 Rails 프로젝트와 연결된 데이터베이스에 실제로 테이블을 생성해야 합니다. 실제 테이블을 만들기 위한 코드들은 db 디렉토리의 하위 디렉토리인 migrate에 파일 형태로생성됩니다.
- db/schema.rb: 실제로 데이터베이스에 테이블이 생성되면 Rails 프로젝트의 db 디렉토리 하위에 생성되는 파일입니다. 이 파일에서 데이터베이스 테이블의 스키마를 확인할 수 있습니다.
- vendor/Gemfile: Ruby에서 라이브러리를 Gem이라고 부릅니다. Rails 프로젝트에서는 여러 Gem을 추가하며 개발을 진행하는데, Gem은 vendor 디렉토리 하위에 포함된 Gemfile에 작성하여 Rails 프로젝트에 추가할 수 있습니다.
출처 : 한눈에 읽는 루비온 레일즈
728x90
'ETC.. > Rails' 카테고리의 다른 글
[Rails] CRUD 기능 구현(환경 설정 하기)[1] (0) | 2020.10.22 |
---|---|
[Rails] 웹 에서 데이터 주고 받기 (0) | 2020.10.21 |
[Rails] 웹 동작 방식(HelloWorld) (0) | 2020.10.20 |
[Rails] 웹 동작 방식(서버 측, 클라이언트 측 입장 분석) (0) | 2020.10.20 |
[Rails] 디자인 패턴, MVC 패턴 이란 무엇인가? (0) | 2020.10.19 |