Ruby란?
스크립트 언어이자 객체 지향 언어이다. 컴파일 없이 인터프리터로 실행한다.
Rails란?
Ruby 언어로 작성된 웹 어플리케이션 프레임워크이다. Ruby on Rails나 RoR이라고 불리기도 한다.4
Rails는 MVC 패턴으로 구성된다.
Rails가 제공하는 강력한 뼈대 코드를 사용해 빠른 개발이 가능하다는 것이 특징이다.
Gem이란?
Gem은 루비에서 사용하는 라이브러리 패키지이다. 커맨드로 쉽게 라이브러리를 설치할 수 있다.
Gem은 보석 이라는 뜻이다. Ruby는 보석에 무슨 사연이 있는 걸까 🤔
Ruby on Rails 설치
윈도우 10 환경에서 Ruby on Rails를 설정해보자.
https://gorails.com/setup/windows/10
Install Ruby On Rails on Windows 10 - GoRails
A guide to setting up a Ruby on Rails development environment on Windows 10 with Git, MySQL, and PostgreSQL
gorails.com
참고한 링크는 다음과 같다.
루비 언어는 윈도우 쉘에서 직접 설치가 불가능하다.
따라서 명령어 설치를 원한다면 WSL을 설치하여 우분투 가상환경 위에서 따라하는 것을 권장한다.
sudo apt-get update
sudo apt install build-essential rustc libssl-dev libyaml-dev zlib1g-dev libgmp-dev
개발 환경 설정에 필요한 의존 라이브러리를 설치한다.
그리고 쉽게 설정하기 위해 버전 설정을 위한 라이브러리인 Mise를 설치한다.
curl https://mise.run | sh
echo 'eval "$(~/.local/bin/mise activate)"' >> ~/.bashrc
source ~/.bashrc
Mise를 사용해 Ruby를 설치하고 버전을 확인한다.
mise use --global ruby@3
ruby --version
mise use 명령어를 사용해 Ruby를 설치하는 과정은 5분 이상이 걸렸다.
Ruby에서 정적 파일을 합치고 압축하는 과정에서 자바스크립트 런타임이 필요하다고 한다. 따라서 필요한 경우 Node.js도 함께 설치해준다.
mise use --global node@22.11.0
node -v
이제 Rails를 설치해보자 🎈 Rails는 gem 명령어를 사용해 간단하게 설치가 가능하다.
gem install rails -v 8.0.0
rails -v
PostgreSQL 설치
'포스트그레스큐엘' 이라고 발음하는 PostgreSQL은 객체 관계형 데이터베이스 (ORDBMS)이다. 기본적인 트랜잭션과 ACID를 지원한다. 정확히는 모르지만 비용 절감이나 지원 언어의 폭이 넓어 기업에서 많이 채택되는 것 같다.
Rails 공식 문서에서 Rails 설치와 함께 PostgreSQL 설치를 안내하고 있는데, Ruby on Rails 프레임워크를 사용하는 것과 연관 있는 기술 선택인지도 궁금하다. 🙄
*ORDBMS란?
일반적인 RDBMS와 다르게 사용자 정의 타입이나 비정형 복합 정보 타입을 지원한다.
MySQL보다 대규모 정보 처리 능력이나 안정성이 낮지만 복잡한 정보 구조를 모델링하는 것이 간편하다.
Ruby on Rails를 사용할 때 ORM 프레임워크로 Active Record를 사용한다. Active Record에 대해서는 추후 포스팅에 대해 알아보자.
sudo apt install postgresql libpq-dev
sudo service postgresql start
WSL 환경에 접속할 때마다 해당 데이터베이스 접근 권한이 사라진다. 따라서 권한을 부여한 사용자를 별도로 생성해 접속하도록 한다.
sudo -u postgres createuser anna -s
# If you would like to set a password for the user, you can do the following
sudo -u postgres psql
postgres=# \password anna
웹 어플리케이션 생성
rails new testapp -d postgresql
testapp 이라는 어플리케이션 이름으로 Rails 프로젝트를 생성한다. 이 명령어로 자동으로 폴더 구조가 갖춰진 프로젝트가 생성된다.
-d 옵션은 데이터베이스를 지정하는 것이다. Ruby on Rails 설정 파일에 자동으로 postgresql의 설정이 추가된다.
데이터베이스 관련 설정 파일은 프로젝트 경로의 config/database.yml에 위치한다.
default: &default
adapter: postgresql
encoding: unicode
host: localhost
port: 5433
username: username
password: password
pool: 5
development:
<<: *default
database: test
postgresql은 기본적으로 5433 포트에 설정된다. 이렇게 설정 파일을 바꾸고 아래 명령어로 데이터베이스를 초기화한다.
rake db:create
데이터베이스 연결이 완료되었다면 아래 명령어로 어플리케이션을 실행한다.
rails server
트러블 슈팅
데이터베이스 연결 시 Is the server running on that host and accepting TCP/IP connections? 라는 오류 문구가 뜨며 실패한다. 이 경우 rails와 postgresql을 연결하기 위한 라이브러리인 pg가 없기 때문에 발생한다.
gem install pg
명령어를 사용해 pg 를 설치 후 다시 시도하면 해결된다.