
처음에는 "백엔드를 어떤 방식으로, 어떻게 선택해야 할까?" 라는 고민에서,,익숙한 JavaScript를 사용하여 백엔드를 구축하고자 했습니다.
JavaScript를 사용할 수 있는 환경으로 Node.js를 선택했습니다. Node.js는 서버 측에서 JavaScript를 실행할 수 있는 환경을 제공하여 익숙한 언어로 서버를 개발할 수 있게 해줍니다.
Node.js 환경에서 사용하기 좋은 기술들을 다음과 같이 선정하였습니다.
데이터베이스:
웹 프레임워크:
프로젝트 디렉토리를 생성하고 필요한 npm 패키지를 설치하였습니다.
Express.js를 사용하여 서버를 초기화하고, body-parser와 CORS를 설정했습니다.
body-parser는 Express에서 HTTP 요청의 본문을 해석하는 미들웨어입니다.
예전에 팀 프로젝트에서 백엔드에서 CORS 설정을 하지 않아 프론트엔드 개발 중에 CORS에 대해 처음 알게 되었습니다.
메모를 추가, 조회, 수정, 삭제하기 위한 RESTful API 엔드포인트를 작성했습니다.
GET /api/notesPOST /api/notesPUT /api/notes/:idDELETE /api/notes/:id서버가 정상적으로 작동하는지 확인하기 위해 기본 경로 핸들러를 추가했습니다. 서버를 실행하면 다음과 같은 문구가 화면에 나타납니다.
Todo List 앱의 백엔드 서버랍니다~~ :) ,,
app.get("/", (req, res) => {
res.send("Hello, this is the backend server for the Todo List App!");
});
node server.js
서버를 실행한 후 Postman으로 테스트 했습니다.
데이터베이스 작업에 대한 경험은 Firebase에서 시작되었습니다. Firebase에서도 데이터를 추가하고 조회하는 등의 기능을 실행하기 위해 Firebase에서 제공하는 메서드들이 있었습니다. SQL에서는 이러한 작업을 SQL 쿼리를 사용하여 수행한다고 생각하며, 상호작용하는 데 비슷한 개념으로 접근할 수 있었습니다.
SQL과 쿼리가 뭐지?
SQLite3를 사용하여 로컬 파일에 데이터를 저장하도록 설정했습니다. 데이터베이스 파일은 notes.db로 저장되며, 메모를 저장하기 위한 notes 테이블을 생성했습니다.
notes 테이블을 생성하는 SQL 쿼리를 실행했습니다. 테이블이 이미 존재하지 않으면 새로 생성되며, id와 content 열을 포함하게 합니다.
간단하게 백엔드 서버를 구축하면서 Node.js와 Express.js, 그리고 SQLite3를 사용하여 RESTful API를 구현해보았습니다. Next.js에서 API 구현 경험이 있어서인지 검색해보고 구현할 만 했습니다. 추가로 백엔드와 협업 시 서버 설정에 대한 CORS 에러 같은 것들을 겪었기 때문에 당황하지 않을 수 있었습니다. Next.js와 Vercel이 참 간편했다는 것을 다시 느꼈습니다!