0강에서 언급했듯이 Node.js는 웹 서버를 만들어주는 프로그램이 아닙니다.
그냥 html을 웹 브라우저에서 실행했듯이, Javascript 코드파일만 있을 때, 이를 실행시켜줄 수 있는 환경을 Node.js라 합니다.
그렇다면, aws에서 instance를 빌려서 Tomcat을 이용해 웹 서버를 구축했는데, 해당 프로그램 역할은 누가 어떻게 해야할까요?
이 Tomcat같은 웹 서버 역할을 해주는 Package(라이브러리)는 Express Package입니다.
이 패키지는 Javascript로 작성되는데, 이 작성환경을 실행하기 위한 실행환경으로서 Node.js가 사용된다고 이해하면 됩니다.
Tip: Express vs tomcat
ㄴ 둘 다 http 통신이 가능하게 해주는 프로그램
ㄴ 톰캣은 서드파티, Express는 프레임워크임. (라이브러리와 서드파티 사이)
ㄴ 톰캣은 커스텀 불가능, 속도 느림,
ㄴ Express는 내 입맛대로 꾸밀 수 있고, 속도가 빠른 편
그냥 폴더와 프로그램의 제약이 없다고 보시면 되는데, 코드를 따라하시다보면 이해가 가실 겁니다.
1. 가장 먼저 EC2 instance (LINUX)를 실행시켜주고,
리눅스에 해당 명령어로 npm을 설치합니다.
sudo apt install npm // 하기 전에 apt update, upgrade는 아시죠?
Node.js의 관련 패키지를 관리할 수 있는 도구를 다운 받은 것.
ubuntu에 apt와 비슷한 것. npm 명령어로 node.js 관련 패키지 관리 가능.
etc) 리눅스 OS 자체 전역 설치 명령어인 apt와는 달리, npm으로 인한 node.js 관련 패키지 설치는 폴더 내 범위에만 적용됨.
2. node.js(실행환경) 또한 당연히 설치해줍니다.
sudo apt install nodejs // 구 버전만 발생
sudo npm install -g n
sudo n latest //최신 버전으로 갱신 가능
n 패키지라는 것을 이용할 것인데, 이는 Node.js의 버전 관리를 용이하게 해주는 패키지입니다.
이렇게 하고 나면 Node.js를 이용해, javascript만으로 코드파일의 실행이 가능합니다.
3.1번에서 설치한 npm 명령어를 이용해서, 서버 역할을 해줄 프로그램인 Express를 Node.js에 설치해줄 수 있습니다.
npm install express
설치하면, 파일 3개 존재
node_modules //module 정보
package-lock.json //오늘 기준 환경 저장됨
package.json //명세서임
이 각각의 파일을 이용하면, 위에서 말한 n패키지를 이용하여 환경에 맞는 Node.js버전을 갱신 가능합니다.
touch server.js로 파일 생성
-> Node.js 환경에서 해당파일을 실행하면, 서버를 실행할 수 있습니다.
파일 안에 해당 코드 작성
const express =require("express") //자바스크립트 끼리 파일 임포트가 됩니다.
const app = express()
app.use(express.json())
app.listen(8000,() => {
console.log("test message")
})
8000번 포트를 통해서 express 서버를 열어주는 건데, 이를 위해선 AWS의 insatance에서 8000번 port를 열어주어야 합니다.
이후에,
Node filename.js
코드를 실행합니다.
메시지가 나오고, 해당 IP:port로 웹 브라우저에 접속해보면,
이렇게 나오면 정상입니다. 다음시간에 자세히 다뤄보겠습니다.