Render와 MongoDB Atlas를 활용한 MERN 스택 애플리케이션 배포

MERN 스택(MongoDB, Express, React, Node.js)을 Render와 MongoDB Atlas를 활용해 배포하는 방법을 단계별로 설명합니다. 이 과정에서 GitHub를 연동하여 프로젝트를 효율적으로 관리할 수 있도록 설정합니다.


1. 프로젝트 준비

1.1 MERN 스택 애플리케이션 준비하기

  • 백엔드: Node.jsExpress로 API 서버 개발.
  • 프론트엔드: React로 클라이언트 애플리케이션 구축.
  • 데이터베이스: MongoDB Atlas를 데이터 저장소로 사용.

환경 변수 관리하기

프로젝트 루트 디렉토리에 .env 파일을 생성하고 중요한 정보를 관리합니다:

MONGO_URI=mongodb+srv://<username>:<password>@<cluster-url>/<database>?retryWrites=true&w=majority
JWT_SECRET=your_jwt_secret
PORT=4000

1.2 GitHub에 코드 업로드

  1. 로컬 프로젝트 디렉토리에서 GitHub에 코드를 업로드합니다:
git init
git remote add origin <your-repository-URL>
git add .
git commit -m "Initial commit"
git push -u origin main
  1. Render에서 해당 리포지토리를 사용해 배포할 예정입니다.

2. MongoDB Atlas 설정

  1. MongoDB Atlas 계정 생성 및 클러스터 설정
    • MongoDB Atlas에 로그인 후 클러스터를 생성합니다.
    • 클러스터 생성 후 데이터베이스 사용자와 비밀번호를 설정합니다.
    • IP 접근 제한 설정: 0.0.0.0/0로 설정하여 모든 IP를 허용하거나, 특정 IP만 허용.
  2. 연결 URI 복사
    • 클러스터의 “Connect” 버튼을 클릭 → “Application”을 선택 → 연결 URI 복사:
mongodb+srv://<username>:<password>@<cluster-url>/<database>?retryWrites=true&w=majority

3. Render에서 백엔드 서버 배포

3.1 Render에서 Node.js 서비스 생성

  1. Render에 로그인하고 NewWeb Service를 클릭합니다.
  2. GitHub 리포지토리를 연동하고 배포할 리포지토리를 선택합니다.
  3. 설정값을 입력합니다:

    • Name: 서비스 이름 지정.
    • Environment: Node
    • Build Command:
      npm install
      
    • Start Command:
      npm start
      
    • Environment Variables:
      • MONGO_URI: MongoDB Atlas에서 복사한 연결 URI.
      • 추가로 필요한 환경 변수도 여기에 입력합니다.
  4. “Create Web Service” 버튼을 눌러 배포를 시작합니다.

4. Render에서 프론트엔드 배포

4.1 React 애플리케이션 배포

  1. Render에서 다시 NewStatic Site를 선택합니다.
  2. GitHub 리포지토리를 선택합니다.
  3. 설정값을 입력합니다:

    • Build Command:
      npm install && npm run build
      
    • Publish Directory:
      build
      
  4. “Create Static Site” 버튼을 눌러 배포를 시작합니다.

5. 프론트엔드와 백엔드 연결

  1. React 애플리케이션에서 환경 변수로 백엔드 API URL 설정:
    • .env 파일에 다음과 같이 추가:
      REACT_APP_API_URL=https://<your-backend-service>.onrender.com
      
    • React 애플리케이션을 다시 빌드 후 배포합니다.
  2. 백엔드 서버에서 CORS 설정:
    • cors 패키지를 설치하고 React 앱의 도메인을 허용:

      const cors = require('cors');
      app.use(cors({
        origin: 'https://<your-frontend-service>.onrender.com',
      }));
      

6. 배포 테스트

  1. 프론트엔드 URL에서 애플리케이션 접속.
  2. MongoDB Atlas와의 연결, 백엔드 API 호출이 정상적으로 작동하는지 확인합니다.

7. 추가 최적화 및 관리

  • 자동 배포 설정:
    • Render에서 GitHub 리포지토리의 main 브랜치를 추적하도록 설정하여 코드 업데이트 시 자동 배포.
  • 로그 관리:
    • Render 대시보드에서 서비스 로그를 확인해 오류를 분석.
  • 문제 해결:
    • Render 대시보드에서 환경 변수를 다시 확인.
    • MongoDB Atlas의 연결 설정(IP, 사용자 계정 등)을 점검.

이 가이드를 통해 MERN 스택 애플리케이션을 Render와 MongoDB Atlas로 성공적으로 배포하고 관리할 수 있습니다. 필요시 추가적인 도움을 요청하세요! 😊

Leave a comment