Project

캡스톤디자인A - 팀 개발 시 백엔드 초기 작업

codingtori 2024. 11. 25. 23:11

이번 캡스톤디자인A (일명 졸업 프로젝트)에서 백엔드 파트를 맡게 되었다. 프론트, 백엔드, AI가 같이 작업하게 되는데, 내가 생각하는 백엔드에서는 어떻게 초기세팅을 하는지를 기록해보려고 한다. (사실 초기세팅 단계가 은근 시간이 많이 걸린다고 생각한다.( 특히 개발 초보들에게는 더욱더!))

 

참고로 우리 서비스 이름은 CURREX이다. 따라서 루트 디렉터리 이름을 CURREX로 설정하였다...ㅎㅎ:)


part1. 필요한 패키지 설치 및 파일/폴더 생성

아래는 미리 팀원분들이 조금 프론트 작업해놓으신 폴더이다. 이제 여기다가 백엔드 파일들을 넣을 폴더를 만들어보겠다.

디렉터리 구조

 

server 폴더가 추가된 것을 알 수가 있다. 여기다가 이제 백엔드 코드들을 열심히 적어보도록 하겠다.

 

다른 작업을 먼저 하기 전에 팀원들이 미리 만들어둔 코드들에 사용되는 모듈을 한꺼번에 받아와야한다.

npm install

을 통해서 먼저 이 작업을 수행해준다.

 

또한, server 폴더 안으로 위치를 옮겨서 ' npm init ' 으로 package.json 파일도 만들어주어야 한다.

 

우리 팀은 리액트 + node.js + express 를 사용하고, 데이터베이스는 mongoDB를 사용하기로 했으므로 이에 맞는 모듈들을 설치해 주도록 하겠다.

npm i express
npm i mongodb
npm i mongoose

 

* mongoose : 몽구스는 몽고DB와 express 웹 애플리케이션 프레임워크간 연결을 생성하는 자바스크립트 객체 지향 프로그래밍 라이브러리 이다. 이는 몽고DB를 사용해서 개발 시 좀 더 쉽게 개발을 할 수 있도록 도와준다.

 

'nodemon' 도 설치해준다  → 이는 실행을 좀 더 편하게 할 수 있도록 도와준다.

package.json 파일의 scripts에 아래 코드를 추가해준다.

"start": "npx nodemon app.js"

 

이렇게 하면 npm start 만 입력하고도 터미널에서 실행시킬 수 있다!

 

그리고 메인 파일이 될 app.js 파일도 만들어준다.

 

 

아참!!!

"type": "module",

이 설정도 해준다. 이를 통해서 ES6 문법 - import 문을 사용할 수 있다. 이를 설정해주지 않고 import를 사용하면 에러가 난다.

 

 

환경변수를 쉽게 관리하기 위해서 'dotenv'도 설치해준다.

dotenv는 .env 파일에 정의된 환경 변수를 Node.js에서 읽어오기 위해 사용된다.

 


part 2. 'app.js' 틀 작성

 

app.js 파일은 백엔드 코드의 기본이 되는 파일이라고 생각하면된다. 하지만, 나중에는 기능별로 라우터를 묶어서 정리할 예정이라 달라지겠지만, 지금은 그냥 여기다가 모아서 작성하려고 한다.

 

import express from 'express';
import mongoClient from './configs/mongodb-connection.js';

const app = express();

//req.body와 POST 요청을 해석하기 위한 설정
app.use(express.json());
app.use(express.urlencoded({extended: true}));


//라우터

 


part 3. 데이터베이스 연결

 

우리 팀은 몽고 디비를 이용할 것이므로 미리 몽고디비를 설치해놓았다.

 

그럼 몽고디비 연결을 위한 파일을 따로 만들어서 구분해 주도록 하겠다.  파일 위치는 'server/configs/mongodb-connection.js' 로 하였다.

import mongoose from "mongoose";

const connectDB = async() => {
    try{
        const conn = await mongoose.connect(process.env.MONGO_URI);
        console.log(`MongoDB Connected: ${conn.connection.host}`);
    }catch(error){
        console.error(`Error: ${error.message}`);
        process.exit(1);
    }
};

export default connectDB;

이렇게 설정해주고 app.js 파일에도 연결함수를 만들어준다.

//몽고디비 연결 함수
import mongodbConnection from "./configs/mongodb-connection";

 

 

 

'Project' 카테고리의 다른 글

팀 작업 시 깃허브 레포 관리  (0) 2024.12.27
쿡핏_러너톤2  (0) 2024.12.21
metaphor  (2) 2024.11.25
인프런_미니프로젝트  (0) 2024.10.04
[러너톤] Pre-Trip  (0) 2024.08.01