🚩소개
안녕하세요! 대학생 개발자 주이어입니다. 오늘은 Node와 Express를 사용하여 서버를 개발할 때 필요한 라이브러리 다운 및 기본 설정에 대해서 알려드릴려고 합니다. 참고로 오늘 알려드리는 백엔드 설정은 MySQL을 사용할 때를 기준으로 작성하고 있다는 점을 알려드립니다.
💽Express.js에 대해서
✅ 개요
- Express.js는 Node.js 환경에서 동작하는 웹 애플리케이션 프레임워크이다.
- 간결하고 유연한 문법으로 서버 사이드 로직을 쉽게 구성할 수 있게 도와준다.
🎯 특징
- 간단한 API로 빠르게 서버 구현 가능
- 미들웨어 구조를 통해 요청과 응답을 유연하게 처리함
- 다양한 라우팅 기능 지원
💾 라이브러리 다운
npm install express
먼저 Express를 Node에서 사용하기 위해서는 위와 같이 라이브러리를 다운받아줘야 합니다.
import exprees from "express";
그 후 server.js 파일을 생성하시고, 위와 같이 라이브러리를 가져와 줍니다.
🖥️ 사용
const app = exprees();
먼저 express를 사용하여 서버 로직을 구현하기 위해서는 위와 같이 새로운 express 인스턴스를 생성해줘야 합니다.
app.use(exprees.json());
그 후 위와 같이 설정하여, 클라이언트가 보낸 json데이터를 req.body에서 사용할 수 있도록 해줘야 합니다.
여기까지 해주면 express를 사용할 준비는 완료됐습니다.
MySQL2를 사용하는 이유
💾 Code
npm install mysql2
import mysql from "mysql2";
✅ 설명
mysql은 출시된지 오래되었고, 업데이트도 느립니다. 성능도 빠르지 않으며, 부족한 부분이 많습니다. 이러한 점을 보완하여 나온 라이브러리가 mysql2 입니다.
mysql2 라이브러리는 활발하게 유지보수 중이며, 성능도 더 빠르고 효율적입니다. 또 mysql에서는 지원하지 않는 여러 기능들을 지원하여 개발자가 더 쉽게 데이터베이스를 관리할 수 있도록 도와줍니다.
🖥️ 사용
const db = mysql.createConnection({
host: "localhost",
user: "root",
password: "0000",
database: "woostar",
});
먼저 위와 같이 mysql에 연결해주어야 합니다. 아직 서버에 등록하지 않고, 컴퓨터에서 직접 실행하는 거기 때문에 host에는 localhost를 적어주었습니다. 그 후 user는 root, password는 mysql root 비밀번호, database는 프로젝트에서 사용할 데이터베이스의 이름으로 순서대로 적어주었습니다.
db.connect((err) => {
if (err) {
console.log("MySQL 연결 실패 : " + err);
return;
}
console.log("MySQL 연결 성공!");
});
db에 대한 정보를 적어주었으니 이젠 연결할 때 입니다. 위와 같이 db.connect 를 사용하여 mysql 서버에 연결해주었습니다. 추가로 error가 발생했을 때 어떤 에러인지 뜨도록 작성해주었습니다.
cors에 대해서
💾 Code
npm install cors
import cors from "cors";
✅ 설명
서버를 개발할 때 cors는 필수 개념 중 하나 입니다. cors는 Cross-Origin Resource Sharing의 줄임말로, 단어에서 알 수 있듯이 서로 다른 출처 간의 자원 공유를 허용할 것인지를 결정하는 보안과 관련된 정책입니다. 기본적으로 브라우저는 다른 출처의 요청을 차단하지만, cors는 이를 허용해주는 기능을 가진다고 보면 됩니다.
여기서 출처란 프로토콜, 도메인 그리고 포트 번호로 구성된 주소를 의미합니다.
예를 들어 클라이언트 서버가 localhost:3000 이고, 백엔드 서버가 localhost:5000 이라면 이 두개의 출처는 다른 출처로 인식합니다. 그럼 클라이언트에서 백엔드에 정보 요청을 할 수 없는 문제가 발생하게 됩니다. 이 때 cors에서 localhost:3000 에서 오는 요청을 허용하도록 하면, 이제 제대로 데이터를 요청할 수 있게 됩니다.
🖥️ 사용
app.use(
cors({
origin: "<http://localhost:5173>",
credentials: true,
})
);
app은 express 인스턴스입니다. 여기에 추가로 cors 설정을 해주어 app 인스턴스가 다른 출처와 자원 공유를 허용하도록 설정해주었습니다. 하지만 모든 출처와 허용하는 것은 보안 상의 문제가 발생할 수 있기 때문에, 클라이언트 서버의 출처만 등록하여 허용하도록 설정해주었습니다.
위에서 credentials 는 쿠키, 인증 헤더, TLS 인증서와 같은 민감한 정보도 공유할 것인지에 대한 설정을 해주는 부분입니다. 이 부분을 true 로 할 경우, 위에 말한 정보를 공유하게 됩니다.
🔊 listen
✅ 설명
위에서 설명한 express, mysql2, cors에 대한 모든 설정이 끝났다면, 이제 서버가 요청을 받을 수 있도록 시작을 시켜줘야 합니다. 이 때 적어주는 것이 listen 입니다. (아마 요청을 듣는다…라는 의미로 쓰이는 것이 아닐까.. 생각함..)
🖥️ 사용
app.listen(5000, () => {
console.log("Server is running on port 5000");
});
listen은 위와 같이 적어줍니다. 먼저 express 인스턴스인 app을 사용하며, 뒤에 listen을 붙여줍니다. 그 후 괄호 안에 서버가 열릴 포트 번호(위에 코드에서는 5000)와 서버가 정상적으로 실행된 후 실행될 콜백 함수를 적어줍니다. 위에 코드에서는 서버가 정상적으로 실행되면 특정 문구가 나오도록 설정되어 있는 것을 알 수 있습니다.
😊마치면서
오늘은 이렇게 express로 백엔드 API 개발을 하기 위해 기본 설정을 해보았습니다. 다음 시간에는 이제 본격적으로 GET, POST 등 API 개발을 적어보려고 합니다. 그럼 지금까지 읽어주셔서 감사합니다!
[Express] GET 메서드를 사용한 API 개발
🚩소개안녕하세요! 대학생 개발자 주이어입니다! 오늘은 Express를 사용하여 GET 요청 API 기능을 만드는 법에 대해서 적어보려 합니다! 서버 API 개발의 가장 기본인 GET과 POST 중 하나이니 이 글을
juyear-coding.tistory.com
다음 글 보러가기
'[Express + Node]' 카테고리의 다른 글
[Express] GET 요청으로 유저 검색 기능 구현하는 깔끔한 방법(w. React) (4) | 2025.04.25 |
---|---|
[Express] MySQL로 깔끔한 로그인 인증 만들기 (5) | 2025.04.24 |
[Node] bcrypt로 비밀번호 암호화하는 방법 (React 연동) (2) | 2025.04.22 |
[Express] GET 메서드를 사용한 API 개발 (0) | 2025.04.19 |