프로그래밍을 처음 시작할 때에는 모든 언어에서 Hello World를 예제로 쓰지 않을까요?
간단하게 Hello World를 출력하는 웹사이트를 만들어보도록 하겠습니다.
이 시리즈는 Node 공부가 목적이므로 Node.js를 기본으로 전제하고 있습니다.
Node.js의 기본 설정이 되어있지 않은 경우 다른 게시글을 참고해주세요.
npm i express
설치 완료 시 새로운 파일과 폴더가 생깁니다. 하나씩 보도록 하겠습니다.
package-lock.json
package.json
각 폴더에 대한 자세한 설명은 이 링크를 참고하면 좋을 것 같네요!
그럼 이제 코딩을 할 수 있나요?
아까 만들었던 app.js 파일로 가보겠습니다.
app.js 파일과 express 모듈은 아직 별개이므로 express 모듈을 app.js 파일에서 사용할 수 있도록 코딩을 해줍시다.
const express = require('express');
const app = express();
const port = 3000;
const app = express();
는 왜 넣을까요?
express를 함수처럼 쓰면서 리턴된 값을 app이라는 변수에 넣어주는 것입니다.
const express = require('express');
const app = express();
const port = 3000;
//새로 들어온 코드
app.get('/', (req, res) => {
res.send('Hello World!');
})
꽤 긴 코드가 새로 들어왔습니다.
이번 코드도 분석해보도록 하겠습니다.
app.get
은 주소에 대한 GET 요청이 올 때 취할 동작을 정합니다. 첫 번째 인수가 주소이고, 두번째 인수는 취할 동작이죠.
req, res
부분은 각각 요청과 응답을 의미하는 객체입니다.
res.send
는 응답 메소드로, 클라이언트에 res.send
의 매개변수를 보내고 응답을 종료합니다.
그러니까 app.get
부분을 정리하면 이렇게 되겠네요!
'/' 주소에 대한 get 요청이 올 때 res.send
메소드로 하여 'Hellp World'라는 문자열을 보내고 응답을 종료한다.
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
})
//새로 들어온 코드
app.listen(port, ()=>{
console.log(`listening on port ${port}!`);
}
다시 새로 코드를 추가해주었습니다.
app.listen
메소드는 클라이언트에 공개할 포트 번호와 포트 연결을 하여 서버를 연결시켜줍니다. 첫 번째 인자로 들어간 port
는 위에서 3000번으로 정의해주었으니 3000번 포트로 연결이 될 것입니다.
이제 연결이 완료되면 터미널에 console.log
의 인자인 listening on port 3000
이 출력되겠네요!
잠깐만요, ${port}
가 아니라 3000이 되었네요?
예리하시네요! console.log
의 인자인 문자열을 보면 일반 따옴표가 아닌 특이한 기호로 감싸져 있습니다. `
는 백틱이라 불립니다. 문자열을 백틱으로 감싸면 그 스코프 안에서 바로 변수를 호출할 수 있는 장점이 있죠.
백틱 스코프 안에서 변수를 호출하려면 ${name}
의 name 자리에 변수 이름을 넣어주면 된답니다!
이제 정말로 이 코드가 잘 작동하는지 확인할 시간이네요.
node app.js
그러면 터미널 창에 다음과 같은 글이 표시될 거에요.
폴더 이름은 가렸습니다, 이해해주시길 바래요!
어쨌든 이런 문구가 뜨면 이제 성공했다는 의미죠.
직접 서버에 접속해서 확인해보도록 하겠습니다.
localhost
로 접속해줍니다. 주소는 http://localhost:포트번호 예요.
만약 독자님이 포트번호를 저와 같이 3000번으로 지정해놓으셨다면 이 링크로 접속하시면 됩니다!
접속하셔서 저와 같이 Hello World가 뜨면 성공이에요!
필요한 건 다 봤으니 이제 종료를 해보도록 하겠습니다.
터미널에 다음 단축키를 입력해주세요.
ctrl + c
보통의 경우에는 복사를 의미하는 단축키이지만, 여기서는 서버 종료를 의미하는 단축키로 쓰여요.