Rails는 웹 애플리케이션 개발을 위한 체계적인 구조를 제공한다. 이 구조는 여러 폴더와 파일로 구성되어 있으며, 각 폴더와 파일은 특정한 역할을 담당한다. 이 구조를 이해하면 Rails 애플리케이션을 개발하고 유지보수하는 데 큰 도움이 된다.
예를 들어 next.js에서 page.jsx가 있다. 이 파일은 무조건 폴더를 라우팅 하면 페이지가 된다. 이 룰은 next.js가 만든 룰이고 이 룰을 무조건적으로 따른다. 루비 온 레일즈로 비슷하다.
주요 폴더와 파일 살펴보기 >
Rails 프로젝트를 생성하면 다음과 같은 주요 폴더와 파일들이 생성된다. (꽤 생각보다 많음)
my_first_app/ # 프로젝트 최상위 폴더
├── app/ # 애플리케이션 핵심 코드
│ ├── assets/ # 이미지, CSS, JavaScript 등 자원 파일
│ │ ├── images/
│ │ ├── stylesheets/
│ ├── controllers/ # 사용자 요청 처리 코드
│ ├── helpers/ # 뷰에서 사용되는 도우미 메서드
│ ├── javascript/ # JavaScript 관련 파일
│ ├── mailers/ # 메일 발송 관련 코드
│ ├── models/ # 데이터베이스 관련 코드
│ └── views/ # 사용자 인터페이스 파일
├── bin/ # Rails 실행 파일
├── config/ # 환경 설정 파일
│ ├── environments/
│ ├── initializers/
│ └── locales/
├── db/ # 데이터베이스 관련 파일
│ └── seeds.rb # 초기 데이터 파일
├── lib/ # 사용자 정의 라이브러리
├── log/ # 애플리케이션 로그 파일
├── public/ # 정적 파일 (이미지, CSS, JavaScript)
├── storage/ # 파일 업로드 저장소
├── test/ # 테스트 코드
├── tmp/ # 임시 파일
├── vendor/ # 외부 라이브러리
├── Gemfile # 라이브러리 목록 (의존성 관리)
├── Gemfile.lock # 라이브러리 버전 정보
└── README.md # 프로젝트 설명 파일
(이 밖에 도커를 설치했다면 도커에 관한 파일도 깔리고, 깃허브 및 배포에 관한 파일과 폴더가 깔린다.)
요 폴더별 상세 설명
- app 폴더:
- 애플리케이션의 핵심 코드를 담는 폴더입니다. Rails 개발의 중심이라고 할 수 있다. (거의 이것만 만질 예정)
- assets 폴더: 이미지, CSS, JavaScript 파일과 같은 웹 페이지를 꾸미는 데 사용되는 자원 파일들을 저장한다.
- images: 이미지 파일
- stylesheets: CSS 파일 (웹 페이지 디자인) - 테일윈드 설치하면 거의 안 쓸 예정
- controllers 폴더: 사용자의 요청을 처리하는 코드를 저장한다. 예를 들어, 사용자가 특정 웹 페이지를 요청하면 어떤 코드를 실행할지 정의한다.
- helpers 폴더: 뷰에서 자주 사용되는 코드를 재사용하기 위한 도우미 메서드를 저장한다.
- javascript 폴더: JavaScript 관련 파일들을 저장한다.
- models 폴더: 데이터베이스와 상호작용하는 코드를 저장한다. 데이터를 어떻게 저장하고 읽어올지 정의한다.
- views 폴더: 웹 페이지의 내용을 구성하는 HTML, ERB 파일들을 저장한다. 사용자에게 보여지는 부분을 담당한다.
- mailers 폴더: 이메일을 보내는 코드를 저장한다.
- bin 폴더:
- rails 명령어를 비롯한 Rails 실행 파일들을 담고 있다.
- config 폴더:
- 애플리케이션의 환경 설정과 관련된 파일들을 저장한다.
- environments: 개발(development), 테스트(test), 운영(production) 환경 설정
- initializers: 애플리케이션 시작 시 실행되는 설정 파일
- locales: 다국어 지원을 위한 설정 파일
- db 폴더:
- 데이터베이스와 관련된 파일들을 저장한다.
- seeds.rb: 데이터베이스에 초기 데이터를 넣는 파일
- lib 폴더:
- 프로젝트에서 직접 만든 라이브러리 코드를 저장한다. 재사용 가능한 코드를 저장하는 곳이다.
- log 폴더:
- 애플리케이션 실행 중에 발생하는 로그 파일들을 저장한다. 오류를 찾거나 문제점을 해결할 때 유용하다.
- public 폴더:
- 이미지, CSS, JavaScript 파일과 같은 정적 파일들을 저장한다. 브라우저에서 직접 접근 가능한 파일들이다.
- storage 폴더:
- 사용자가 업로드한 파일들을 저장하는 곳이다.
- test 폴더:
- 애플리케이션을 테스트하는 코드를 저장한다. 코드의 오류를 미리 방지하고 안정성을 높이는 데 사용된다.
- tmp 폴더:
- 임시 파일들이 저장되는 폴더. Rails 서버가 작동 중에 사용하는 임시 파일들을 저장.
- vendor 폴더:
- 외부 라이브러리 코드를 저장. Gemfile에 있는 라이브러리들이 저장되기도 함.
- Gemfile:
- 프로젝트에 필요한 라이브러리(gem)들의 목록을 저장하는 파일. 이 파일에 정의된 라이브러리들은 bundle install 명령어로 설치한다.
- Gemfile.lock:
- Gemfile에 정의된 라이브러리들의 정확한 버전을 저장하는 파일. 협업할 때 버전 충돌을 방지하는 역할을 한다.
- README.md:
- 프로젝트에 대한 설명을 담는 파일. 프로젝트 이름, 설명, 사용법 등을 기록합니다.
중요 폴더
- app 폴더: 애플리케이션 코드가 모두 들어있는 곳
- config 폴더: 설정 변경 파일
- db 폴더: 데이터베이스 관련 파일
- public 폴더: 이미지, CSS 등 정적 파일
(추가 사항)
파일이나 폴더가 좀 더 추가가 되는 상황입니다. 관련 사항은 제 깃허브나 공식 문서를 참고해 주세요.
https://github.com/kss2002/myapp-rails
GitHub - kss2002/myapp-rails: Mac - rails ❤️
Mac - rails ❤️. Contribute to kss2002/myapp-rails development by creating an account on GitHub.
github.com
https://rails.insomenia.com/getting_started.html
Rails 시작하기 — Ruby on Rails Guides
GitHub에서 이 파일을 읽지 마세요. 가이드는 https://guides.rubyonrails.org에 게시되어 있습니다.Rails 시작하기이 가이드는 Ruby on Rails를 설치하고 실행하는 방법을 다룹니다.이 가이드를 읽고 나면 다음
rails.insomenia.com
'루비 온 레일즈' 카테고리의 다른 글
루비 온 레일즈 스카폴드 Scaffold - CRUD 딸깍 (4) | 2025.07.27 |
---|---|
루비 온 레일즈의 데이터베이스 살펴보기 (2) | 2025.07.26 |
루비 온 레일즈의 핵심. "MVC" 패턴 (3) | 2025.07.25 |
루비 온 레일즈 설치 및 프로젝트 세팅 (6) | 2025.07.24 |
Ruby on Rails란 (4) | 2025.07.24 |