사용 가능한 모든 데이터베이스 엔진 중에서, PostgreSQL 은 가장 인기 있는 엔진 중 하나입니다. 신뢰성, 강력한 기능 및 성능으로 잘 알려진 오픈 소스 데이터베이스 시스템입니다. PostgreSQL은 대중적인 선택이기 때문에 거의 모든 주요 웹 프레임워크에서 지원됩니다. 경쟁 제품인 MySQL 및 SQLite와 마찬가지로 PostgreSQL도 강점과 약점을 가지고 있습니다.
Ruby on Rails 은 Ruby로 작성된 인기 있는 웹 프레임워크입니다. 데이터베이스에 구애받지 않는 프레임워크이므로 다양한 데이터베이스와 함께 작동할 수 있습니다. 기본적으로 Rails는 데이터베이스 기능에 SQL을 사용한다고 가정합니다. 하지만 PostgreSQL 통합도 지원합니다.
이 튜토리얼은 Ruby on Rails 애플리케이션을 위한 PostgreSQL 구성 과정을 안내합니다.
Ruby on Rails 및 PostgreSQL
PostgreSQL과 Ruby on Rails는 모두 모든 UNIX/Linux 배포판에서 사용할 수 있습니다. 기본 패키지 서버에서 사용할 수 있어야 합니다.
대안적인 방법은 RVM (Ruby Version Manager)을 사용하는 것입니다. Ruby on Rails 설치를 관리하는 전용 도구입니다. 이 방식의 장점은 RVM이 Ruby on Rails의 로컬 설치를 생성한다는 것입니다. 또한 여러 버전의 Ruby를 관리하고 이들 간에 원활하게 전환할 수 있습니다. 다음은 Ubuntu에서 RVM으로 Ruby on Rails 설치하기.
PostgreSQL의 경우, Ubuntu에서 PostgreSQL 설치 및 구성하기.
-
RVM 설치하기
RVM의 설치 프로세스는 RVM이 제공하는 설치 스크립트 덕분에 매우 간단합니다. 이 스크립트는 Linux 시스템을 자동 감지한 다음 필요한 모든 패키지를 다운로드하고 설치하도록 설계되었습니다. 패키지를 검증하려면 RVM GPG 키가 필요합니다. 이를 통해 수신된 패키지가 위조되지 않았음을 보장합니다. 먼저 RVM GPG 키를 추가합니다:
|
1 |
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB |

그런 다음 RVM 설치 스크립트를 실행합니다:
|
1 |
curl -sSL https://get.rvm.io | bash -s stable --rails |

마지막으로 설치를 확인합니다:
|
1 |
type rvm | head -n 1 |
-
Rails 설치하기
이제 RVM을 사용하여 추가 구성 요소를 설치할 수 있습니다. RVM을 사용하여 Rails 프레임워크를 설치합니다:
|
1 |
gem install rails |
-
PostgreSQL 설치하기
다음 단계에서는 시스템에 PostgreSQL이 미리 설치되어 있어야 합니다. 기본적으로 PostgreSQL을 설치하는 가장 쉬운 방법은 기본 패키지 관리자를 사용하는 것입니다. 모든 주요 Linux 배포판에서 사용할 수 있습니다. 사용 가능한 모든 설치 방법은 PostgreSQL 다운로드 페이지를 확인하십시오. Ubuntu에서는 다음 명령어로 PostgreSQL 저장소를 구성하고 바로 설치할 수 있습니다:
|
1 |
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' |

|
1 |
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - |

|
1 |
sudo apt update && sudo apt install postgresql -y |

PostgreSQL 지원을 활성화하려면 pg gem을 설치해야 합니다. 이를 통해 Ruby 코드에서 PostgreSQL과 인터페이스할 수 있습니다:
|
1 |
gem install pg |
-
PostgreSQL 구성하기
설치 후 프로젝트에 사용할 도구를 구성합니다. 먼저 PostgreSQL 사용자로 전환합니다:
|
1 |
su - postgres |
PostgreSQL 셸에 액세스합니다:
|
1 |
psql |

PostgreSQL 컨텍스트에서 이제 새로운 role (전통적으로 사용자라고 함)을 생성합니다. PostgreSQL은 고유한 형식의 역할 및 권한을 가지고 있습니다. 적절한 사용자 이름과 강력한 비밀번호를 사용하는 것을 잊지 마십시오:
|
1 |
create role <username> with createdb login password 'password123'; |
Rails 앱 생성하기
Rails에게 데이터베이스로 PostgreSQL을 사용하도록 구성된 새 Rails 앱을 생성하도록 지시합니다:
|
1 |
rails new <app_name> --database=postgresql |

이렇게 하면 앱 사용자 이름으로 새 디렉터리가 생성됩니다. Rails는 일반적으로 데이터베이스의 사용자 이름과 앱 이름이 동일할 것으로 예상합니다. 다음 단계는 Rails 데이터베이스 구성을 설정하는 것입니다. 구성 파일은 다음 위치에 있습니다:
|
1 |
RAILS_ROOT/config/database.yml |
파일 database.yml 은 현재 Rails 환경에 적합한 데이터베이스를 설명하는 데이터를 포함하고 있습니다. 파일 이름에서 알 수 있듯이, 이 파일은 YAML을 사용합니다. YAML은 모든 프로그래밍 언어를 위한 인간 친화적인 데이터 직렬화 표준입니다.
기본적으로 Rails는 서로 다른 환경에 대해 서로 다른 데이터베이스를 예상합니다. 예를 들어, development, test, 그리고 production 환경이 있습니다. 이는 다양한 상황에서 유용합니다. 예를 들어, Rails는 Rails 테스트가 실행될 때마다 test 데이터베이스를 비우고 다시 빌드합니다.
다음은 database.yml 파일의 샘플로, development 및 test 데이터베이스를 포함하고 있습니다:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
development: adapter: postgresql encoding: unicode database: dummyapp_development pool: 5 username: dummyapp password: password123 test: adapter: postgresql encoding: unicode database: myapp_test pool: 5 username: dummyapp password: password123 |

이제 변경 사항을 적용할 시간입니다. 다음 명령은 database.yml에 설명된 필요한 데이터베이스를 준비합니다. 각 데이터베이스는 자체 사용자를 가지며 schema_migrations 테이블을 갖게 됩니다. 이 테이블은 데이터 및 스키마 마이그레이션에 필요합니다:
|
1 |
rake db:setup |
PostgreSQL 구성 파일인 pg_hba.conf 에 부적절한 구성이 포함되어 있으면 이 단계가 실패합니다. 파일은 다음 위치에 있습니다:
|
1 |
sudo cat /etc/postgresql/13/main/pg_hba.conf |
다음 줄이 대상입니다. peer 대신 인증 방법이 md5:
|
1 |
local all all peer |
다음 줄을 변경합니다:
|
1 |
local all all md5 |

변경 사항을 적용하려면 PostgreSQL 서비스를 다시 시작해야 합니다:
|
1 |
sudo systemctl restart postgresql |
그런 다음 데이터베이스 설정을 다시 실행합니다:
|
1 |
rake db:setup |
Rails 실행하기
Rails 서버를 실행하려면 다음과 같은 추가 구성 요소가 필요합니다. 이를 위해서는 Node.js가 설치되어 있어야 합니다 ( yarn):
|
1 |
rails webpacker:install |

이제 Rails 앱을 실행할 준비가 되었습니다. Rails 서버를 시작합니다:
|
1 |
rails server |

다음 URL에서 서버에 액세스할 수 있어야 합니다. Rails 랜딩 페이지로 연결됩니다:
|
1 |
http://localhost:3000 |
랜딩 페이지를 더 흥미롭게 만들기 위해 스캐폴드(scaffold)를 생성합니다:
|
1 |
rails g scaffold Post title:string body:text |

|
1 |
rake db:migrate |
마지막으로 서버를 시작하고 URL로 다시 이동합니다. 이제 게시물을 관리(게시물 생성, 수정, 삭제)할 수 있습니다.
마치며
이것은 PostgreSQL을 사용하는 Ruby on Rails의 기본 설정입니다. Rails를 더 자세히 활용하는 데 도움이 되는 공식 시작 가이드가 있습니다. 우리가 만든 샘플 앱은 PostgreSQL을 사용합니다. 이 방식을 통해 PostgreSQL을 기능에 사용하는 어떤 앱이든 만들 수 있습니다.
즐거운 개발 되세요!


댓글
아직 댓글이 없습니다. 첫 번째로 작성해 보세요.