관리 메뉴

거니의 velog

(7) 백엔드 프로그래밍: Node.js의 Koa 프레임워크 1 본문

React_백엔드 프로그래밍

(7) 백엔드 프로그래밍: Node.js의 Koa 프레임워크 1

Unlimited00 2024. 2. 20. 12:11

* 지금까지 리액트의 기본 개념을 대부분 다루어 보았다. 웹 애플리케이션을 만들 때는 리액트 같은 프론트엔드 기술 만으로 필요한 기능을 구현할 수 없는 경우가 흔하다. 데이터를 여러 사람과 공유하려면 저장할 공간이 필요하기 때문이다.


1. 소개하기

(1) 백엔드

* 우리는 서버를 만들어 데이터를 여러 사람과 공유한다. 그런데 서버에 데이터를 무작정 담지는 않는다. 데이터를 담을 때는 여러 가지 규칙이 필요하다.
* 예를 들어 특정 데이터를 등록할 때 사용자 인증 정보가 필요할 수도 있고, 등록할 데이터를 어떻게 검증할지, 데이터의 종류가 다양하다면 어떻게 구분할지 등을 고려해야 한다.
* 데이터를 조회할 때도 마찬가지이다. 어떤 종류의 데이터를 몇 개씩 보여 줄지, 그리고 또 어떻게 보여 줄지 등에 관한 로직을 만드는 것을 서버 프로그래밍 또는 백엔드(back-end) 프로그래밍이라 한다.
* 백엔드 프로그래밍은 여러 가지 환경으로 진행할 수 있다. 즉, 언어에 구애받지 않기 때문에 PHP, 파이썬, Golang, 자바, 자바스크립트, 루비 등과 같은 다양한 언어로 구현할 수 있다. 우리는 그 중에서 자바스크립트로 서버를 구현할 수 있는 Node.js를 사용해 볼 것이다.


(2) Node.js

* 처음에는 자바스크립트를 웹 브라우저에서만 사용했다. 속도가 그렇게 빠른 편도 아니었다. 시간이 지나면서 자바스크립트는 계속해서 발전해 왔으며, 구글이 크롬 웹 브라우저를 소개하면서 V8 이라는 자바스크립트 엔진도 공개했다. 이 자바스크립트 엔진을 기반으로 웹 브라우저뿐만 아니라 서버에서도 자바스크립트를 사용할 수 있는 런타임을 개발했는데, 이것이 바로 Node.js이다.


(3) Koa

* Node.js 환경에서 웹 서버를 구축할 때는 보통 Express, Hapi, Koa 등의 웹 프레임워크를 사용한다. 이전에 서버 사이드 렌더링 서버를 구축할 때는 Express를 사용했다. 이번에 백엔드 개발에서는 Koa라는 웹 프레임워크를 사용해 볼 것이다.

* Koa는 Express의 기존 개발 팀이 개발한 프레임워크이다. 기존 Express에서 고치고 싶었던 점들을 개선하면 내부 설계가 완전히 바뀌기 때문에 개발 팀이 아예 새로운 프레임워크를 개발했다고 한다.
* Express는 미들웨어, 라우팅, 템플릿, 파일 호스팅 등과 같은 다양한 기능이 자체적으로 내장되어 있는 반면, Koa는 미들웨어 기능만 갖추고 있으며 나머지는 다른 라이브러리를 적용하여 사용한다. 즉, Koa는 우리가 필요한 기능들만 붙여서 서버를 만들 수 있기 때문에 Express보다 훨씬 가볍다.
* Node.js로 서버를 개발할 때 어떤 프레임워크를 사용할 지는 사실 개인적인 취향에 따라 달라질 수 있다. 나중에 여러분 만의 프로젝트를 개발할 때는 두 프레임워크를 모두 사용해 보고 마음에 드는 프레임워크를 사용하길 바란다.
* 이번 Node.js 기초 실습은 다음 흐름으로 진행된다.