*본 글은 egoing님의 생활코딩 수업을 들으며 정리한 내용입니다.
express 프레임워크를 이용한 node.js 웹 서버를 프로그래밍 하는 방법을 알아보겠습니다.
먼저, 기본 구조를 살펴보겠습니다.
const express = require('express')
const app = express()
app.get('/', (req, res) => res.send('Hello World!'))
// app.get('/',function(req,res){res.send("Hello World!")});
app.listen(3000, () => console.log('Example app listening on port 3000!'))
// app.listen(3000, function() {
// console.log('Example app listening on port 3000!')
// });
express 프레임워크를 사용하여 node.js 서버를 프로그래밍 할 때 기본 골격 구조는 위와 같습니다.
자세히 분석해보겠습니다.
const express = require('express')
const app = express()
첫 번째 라인에서, express라는 module을 로딩하고 있습니다.
이 로딩된 모듈을, express라는 이름의 변수를 통해 접근하기 위해 위와 같이 써 있습니다.
var express가 아닌 const express라고 되어 있습니다.
const는 상수 변수를 선언할 때 사용합니다.
const를 이용하여 선언된 변수는 한 번 초기화가 되면
변수에 다른 값이 할당되는 것을 허용하지 않기 때문에 상당히 안정적인 구조가 됩니다.
그래서 보통 module을 로딩할 때는 위와 같이 const변수를 이용하여 선언하고 할당하는 것입니다.
그리고 app이라는 이름의 변수에 express()라는 함수의 리턴값을 할당하고 있습니다.
app이라는 변수에는
express()함수를 통하여 반환된 application 객체가 할당되게 됩니다.
이걸 보고 의문이 듭니다.
"대체 어떤 원리로 작동되는 것이기에 저렇게 호출해야 하는 것일까?"
이런 의문이 드는 것도 좋지만
지금 초심자인 저희에게 필요한 것은
Web Application을 반환하기 위해 저런 방식으로 코딩이 되는구나 하고 받아들이는 것입니다
왜 저런 코드가 나오는지는 express모듈을 깊게 분석해야 알 수 있습니다.당장은 그러한 노력을 들여서 원리를 파악할 필요 없이web application을 만드는 것이 저희의 목적이므로일단은 받아들이시고 넘어가시기 바랍니다.
app.get('/', (req, res) => res.send('Hello World!'))
// app.get('/',function(req,res){res.send("Hello World!")});
위 코드를 해석하면 이렇습니다.
Web application에게
"누군가 get방식으로 '/'라는 URL을 요청한다면, 두 번째 인자로 전달된 함수를 호출해라"
여기선 클라이언트가 웹 서버의 / URL로 HTTP REQUEST를 보내면, 웹 서버는 Hello World문자열을 응답하게 됩니다.
이런 것을 라우팅(Routing)이라고 합니다.
만약 누군가 '/' URL로 요청을 하면 => 어떠어떠한 함수를 호출해라
이렇게 URL과 함수를 매핑시켜주는 것을 말합니다.
app.listen(3000, () => console.log('Example app listening on port 3000!'))
// app.listen(3000, function() {
// console.log('Example app listening on port 3000!')
// });
애플리케이션에게'누가 무슨 요청을 하면 어떠어떠한 방식으로 작동을 해라'라고 프로그래밍을 완료하였습니다.
이젠 웹 서버를 실제로 실행하여 클라이언트의 HTTP REQUEST를 받을 수 있도록 해야 합니다.
위 코드가 그러한 역할을 합니다.
'첫 번째 인자로 전달된 PORT번호에서 대기하여라,
그리고 성공적으로 대기 상태가 되면, 두 번째 인자로 전달한 CALLBACK함수를 호출하여라'
위 코드 실행 결과
웹 애플리케이션은 Example app listening on port 3000!라는 메시지를 출력하며
3000번 포트에서 웹 클라이언트의 요청을 기다리게 됩니다.
'Back-End > node.js' 카테고리의 다른 글
Express app 구현 시 주의해야 할 보안 관련 이슈 (0) | 2022.03.04 |
---|---|
Express module의 error handling (0) | 2022.03.02 |
Express 모듈에서 static file의 서비스 (0) | 2022.03.01 |
Node.js Middleware의 개념 및 실행 순서 (0) | 2022.03.01 |
node.js pm2 패키지 매니저 사용 방법 (0) | 2022.02.23 |