Railway로 백엔드 서버와 PostgreSQL 배포하기 (Node.js + Express)

hyeon·2025년 5월 29일

1. [백엔드] Node.js + Express 프로젝트 세팅

mkdir my-backend-server
cd my-backend-server
yarn init -y
yarn add express pg cors dotenv

📄 .env 파일 만들기

DB_HOST=myhost
DB_PORT=5432
DB_USER=myuser
DB_PASSWORD=mypassword
DB_NAME=mydb

📄 db.js 만들기

const { Pool } = require('pg');
require('dotenv').config();

const pool = new Pool({
  host: process.env.DB_HOST,
  port: process.env.DB_PORT,
  user: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
  database: process.env.DB_NAME,
});

module.exports = pool;

📄 index.js 만들기

const express = require('express');
const cors = require('cors');
const pool = require('./db');

const app = express();
app.use(cors());
app.use(express.json());

app.get('/items', async (req, res) => {
  const result = await pool.query('SELECT * FROM items');
  res.json(result.rows);
});

const PORT = process.env.PORT || 4000;
app.listen(PORT, () => {
  console.log(`Server listening on port ${PORT}`);
});

📄 .gitignore 만들기
.gitignore에 .env 추가

# .gitignore
.env
/node_modules

다음으로는
1. 위의 코드를 GitHub에 올리고 백엔드 서버를 Railway에 배포
2. PostgreSQL 데이터베이스도 Railway에서 생성하고 연결


2. Railway 회원가입 및 프로젝트 생성

  1. https://railway.app 에서 GitHub 계정으로 로그인
  2. "New Project" 클릭 → "Deploy from GitHub repo" 선택 → 백엔드 코드가 올라간 레포지토리 선택
  3. "New Project" 클릭 → "Database" 선택 → PostgreSQL 프로젝트 생성

=> ⚠️ 단, 다음 조건이 모두 충족돼야만 한다.
백엔드 서버와 PostgreSQL이 같은 Railway 프로젝트 내에 있어야 한다.


3. PostgreSQL 접속 정보 확인 및 정리

테이블 만들기 => PostgreSQL 프로젝트에서 테이블도 만들고 add row를 선택하면 INSERT도 가능하다.

PostgreSQL 프로젝트 > variables 탭에서 다음 정보를 확인하고, 해당 정보를 백엔드 서버의 .env 파일과 Railway의 Variables에 각각 추가(변경)한다.

DB_HOST=POSTGRESQL의 Private Networking 주소
DB_PORT=나의 PGPORT
DB_USER=나의 PGUSER
DB_PASSWORD=••••••••
DB_NAME=나의 PGDATABASE

값을 추가(변경)후에 백엔드 프로젝트를 Redeploy 한다.


4. 배포 확인 및 /items 테스트

배포가 완료되면 백엔드 프로젝트 Railway의 "Deployments > View Logs"에서 로그 확인.

브라우저 또는 Postman으로:

GET https://my-backend.up.railway.app/items

→ JSON으로 아이템 목록이 응답되면 성공!!

백엔드 서버의 URL은 백엔드 프로젝트 > Settings > Networking > Public Networking에서 Generate Domain 누르면 나온다.

profile
당근🥕

0개의 댓글