⚠️ 해당 게시글은 모던애자일 팀원이 준비한 테크톡 내용을 스크랩했습니다.

출처 : 모던애자일 3기 이수형

https://blog.naver.com/clark9810

node.js의 정의

“크롬 V8엔진을 기반으로 한 자바스크립트 런타임”

(런타임 : 프로그램이 구동되는 환경)

node.js의 탄생

개발자 Ryan dahl 이 오픈소스 V8엔진을 다운 > 크롬 없이 돌아가도록 개조 > node.js 탄생

node.js의 인기의 이유

1.하나의 언어로 어플리케이션을 만들 수 있다는 메리트

(어플리케이션은 서버 프로그램 + 클라이언트 프로그램으로 만들어 지고, 서버,클라이언트 각각 다른 언어를 사용하여 만들어야해서 두가지 언어로 어플리케이션을 만들 수 있었는데 node.js의 탄생으로 서버에서도 JS가 돌아가게 되어 하나의 언어로 어플리케이션을 만들 수 있음.)

 

2.npm

npm 은 훌륭한 개발자들이 node.js기반의 JavaScript로 개발된 오픈소스를 올려 모아둔 저장소

express

node.js를 사용하여 쉽게 서버를 구성 할 수 있게 만든 프레임 워크.

가볍고 유연하게 어플리케이션을 구성할 수 있다.

미들웨어의 구조를 가지고 있다.

(미들웨어란 클라이언트에게 요청이 왔을 때, 요청에 대한 응답을 목적에 맞게 처리를 하는 함수 )

express는 터미널에서 “npm i express” 명령을 통해 쉽게 설치 할 수 있다

express를 이용해 로컬에서 서버를 띄우기

require : require 명령을 통해 express를 사용할 수 있게 해줌

app.get : 첫번째 파라미터로 넣어준 “/” 경로로 들어 왔을 때 res.send 명령을 통해 웹 브라우저에

“여기는 루트입니다”를 출력 할 수 있게 코드를 작성

app.listen : 첫번째 파라미터에 포트번호를 주고, 두번째 파라미터에는 이 파일이 실행 되었을 때

터미널 창에 “서버가 가동되었습니다” 를 출력할 수 있게 해줌

이 처럼 웹 브라우저에 localhost:3000을 입력해 주게 되면 코드 내에서 app.get 명령에서 “/”경로로

들어왔기 때문에 res.send 명령에 의해 “여기는 루트입니다.” 가 나타남을 확인 할 수 있음

http로 서버를 띄우는 방식

require : require을 통해 http를 사용 할 수 있게 해줌

http.creatServer : cresteServer명령을 통해 클라이언트가 특정 경로에 들어왔을 때, res,end명령을

통해 “여기는 루트입니다.”라는 메시지를 띄워줄 수 있게 함

req.url : req.url은 클라이언트가 url에 검색한 값들을 가져올 수 있기 때문에 else if 문을 if문 뒤에

추가해주어 루트경로가 아니더라도 다른경로로 들어 왔을 때마다 다른 res를 던져 줄 수 있다.

res.end : http는 end명령을 통해 특정 경로로 들어왔을 때 res를 던져 줄 수 있음

res.writeHead : http는 각 기능마다 Content-type를 명시해 주지 않으면 res.end로 던져준 한글

값들이 깨져서 나오게 됨 따라서 Content-type를 utf8로 지정해 주어야 함

express와 http 두가지 방식으로 로컬에서 서버를 띄워 봄으로서 express가 유용하고, 간편하게

서버를 띄울 수 있다는 것을 알게 됨.

node.js관련 면접 때 알아두면 좋은 질문들

Q. node.js의 장점은 무엇인가요?

A.

(현실용 버전의 답변)

언어가 JS인게 장점입니다! 즉, 웹 프레임워크의 최신 트렌드를 전부 받아들이면서 컴파일러 언어인 자바에 비하여 코딩하기가 수월하고, 파이썬과 루비같은 언어에 비해서 훨씬 대중적이며 php에

비해서는 그나마 조금 더 잘 만든 언어이자 V8엔진의 등장으로 다른 경쟁 언어에 비해 성능이 빠른 JS를 도입했다는 것이 장점입니다.

(면접용 버전의 답변)

비동기 이벤트 드리븐 방식이라는 최신 기술을 사용하기 때문에 성능이 굉장히 빠르고, V8엔진을

사용하기 때문에 JS임에도 불구하고 굉장히 성능이 빠르다는게 큰 장점이라고 생각합니다.

Q.node.js로 웹서버를 만들면 속도가 빠른가요?

A.

node.js가 JS라는 프로그래밍 언어를 쓰기 때문에 인터프리터 기반의 프로그래밍 언어의 특성상

자바나 다른 컴파일러 기반의 언어로 서비스를 구현하는 것에 비해 느릴 수도 있지만 JS는

인터프리터 기반의 프로그래밍 언어중에서 빠른 편에 속하고 또한 비동기 이벤트 드리븐의 특성을 잘 활용해서 코드를 작성한다면 굉장히 빠르게 서비스를 구현 할 수 있다고 생각합니다.

참고하면 좋은 유튜브 강의들

개발자의 품격 -한시간만에 정리하는 node.js 입문

https://youtu.be/toLDNN4FQv0

노마드코더 node.js VS django

https://youtu.be/PnhmeFakkXg

온라인 코딩스쿨 코드잇 node.js 란 무엇인가

https://youtu.be/0BS05cC9U9I

데이터 유치원(이거 꼭 보셈)

https://youtu.be/u-hZI2tFGdU

유노코딩

https://youtu.be/dtBAv7Mmeyk

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기