티스토리 뷰

back/Node.js

Node.js 백엔드 기초

devel0per 2023. 1. 24. 16:54

1. Node.js란?


JS는 웹 브라우저(인터프리터)에서 실행됐기 때문에 실행 하는데 큰 무리 없었지만, 백엔드 서버에서 실행시키려면 Node.js가 필수적임.

 

 

2. Node.js 다운


https://nodejs.org/ko/

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

에 접속해서 LTS 버전을 다운받으시면 됩니다..

 

3.  Node.js 실행


vscode를 열어서 적당한 곳에 프로젝트 폴더를 생성한 후, index.js 파일을 생성한다.

 

node index.js

 

터미널의 위와 같은 명령어를 실행시키면 터미널에 console.log의 결과 값을 확인할 수 있다.

 

 

 

 

4. npm이란?


npm에는 여러 모듈이 존재한다.

예시로 figlet 모듈을 설치해서 사용해보도록 하겠다.

https://www.npmjs.com/package/figlet

 

figlet

Creates ASCII Art from text. A full implementation of the FIGfont spec.. Latest version: 1.5.2, last published: a year ago. Start using figlet in your project by running `npm i figlet`. There are 7697 other projects in the npm registry using figlet.

www.npmjs.com

 

npm install figlet

이라는 명령어를 통해서 figlet 모듈을 다운 받을 수 있다.

 

 

npm으로 figlet을 다운 받기전에

npm init

의 명령어를 통해서 npm의 여러 package를 관리할 수 있도록 설정해준다.(안해도됨)

 

- package.jsomn (내용을 대략적으로 확인하기 위함)

- package.lock.json(내용을 상세하게 확인하기 위함)

 

 

 

 

5. npm으로 설치한 figlet 사용


npm에 존재하는 모듈 코드를 복사해서 가져온다.

var figlet = require('figlet');

figlet('Hello World!!', function(err, data) {
    if (err) {
        console.log('Something went wrong...');
        console.dir(err);
        return;
    }
    console.log(data)
});

 

콘솔에 figlet을 활용한 결과값이 출력된다.

 _   _      _ _        __        __         _     _ _ _
 | | | | ___| | | ___   \ \      / /__  _ __| | __| | | |
 | |_| |/ _ \ | |/ _ \   \ \ /\ / / _ \| '__| |/ _` | | |
 |  _  |  __/ | | (_) |   \ V  V / (_) | |  | | (_| |_|_|
 |_| |_|\___|_|_|\___/     \_/\_/ \___/|_|  |_|\__,_(_|_)

 

6. express 프레임워크 설치와 사용


express : node.js 를 이용해서 웹 프레임워크를 만드는 것

 

npm i express

npm 명령어를 통해서 express 모듈을 다운 받아 줍니다.

 

const express = require('express')
const app = express()

app.get('/', function (req, res) {
  res.send('Hello World')
})

app.listen(3000)

위와 같은 코드를 작성한 후 node.js 를 작동하면

 

3000번의 port로 웹 서버를 열 수 있는것을 확인할 수 있다.

 

 

7. port란?!


port는 선착장의 개념이라고 생각하면 편함. 

서버에서 들어올 수 있는 입구 번호라고 생각해서 하나의 Ip 번호에서 여러개의 특정 Port로 접속할 수 있다.

 

 

 

8. 예제 API 만들어보기


params, query 2가지 방법으로 api 설계 가능

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
	res.send('Hello World');
})

// params로 받기
app.get('/cat/:id', (req, res) => {
	const p = req.params
    console.log(p)
    res.send({'userId' : p.id}) 
})

app.get('/dog/:id', (req, res) => {
	const q = req.query
    console.log(q)
    res.send({'userId' : q.id})
})

 

 

 

9. API 서버 만들기


 

app.get('/sound/:name', (req, res) => {
  const { name } = req.params

  if(name == "dog"){
    res.send({'sound' : '멍멍'})
  }else if(name == "cat"){
    res.send({'sound' : '야옹'})
  }else if(name == "pig"){
    res.send({'sound' : '꿀꿀'})
  }else{
    res.send({'sound' : '알수없음'})
  }
})

app.listen(port, () =>{
  console.log(`Example app listening on port ${port}`)
})

 

 

프론트(FE)에서 데이터를 보내줄 때 cors가 제한한다. 

이유는 특정 서버 리소스에 다른 임의의 웹 사이트들이 request를 보낼 수 있다면 악의적으로 특정 서버의 세션을 탈취하거나 서버에 무리가 가는 행위 등 문제가 생길 수 있는 행위를 할 수 있기 때문이다. 

npm으로 cors를 install 해준 후에 작업을 실시하면 된다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크