Language/Node.js

[TDD기반 Node.js 공부하기] 01. Node.js의 기초

MOMOBOB 2022. 6. 7. 21:03
반응형

Node.js

지금까지 회사, 개인프로젝트를 진행할 때, 스프링을 항상 이용해왔었지만, 새로운 토이프로젝트에서는 Node.js를 이용해보고자 합니다.

 

그래서 먼저 Node.js를 공부하기 위해 인프런의 우아한형제들에서 개발하고 계신 김정환님의 강의를 수강하며 내용을 정리해 보고자 합니다.

 

  • 인프런의 [테스트주도개발(TDD)로 만드는 NodeJS API 서버] 강의

https://www.inflearn.com/course/%ED%85%8C%EC%8A%A4%ED%8A%B8%EC%A3%BC%EB%8F%84%EA%B0%9C%EB%B0%9C-tdd-nodejs-api/dashboard

 

테스트주도개발(TDD)로 만드는 NodeJS API 서버 - 인프런 | 강의

이 강의에서는 Javascript 언어로 백엔드 개발을 할 수 있는 NodeJS를 학습하고, 테스트 주도 개발(TDD) 방법으로 NodeJS를 이용해 API 서버 개발을 할 수 있습니다. 또한 NodeJS의 대표적인 웹 프레임워크 E

www.inflearn.com

 

NodeJs의 특징

  • 브라우저 밖에서 자바스크립트 코드 실행 가능.
  • 크롬에서 사용하는 V8 엔진 사용.
  • 이벤트기반의 비동기 I/O 프레임웍크.
  • 모듈 시스템이 존재.

 

이벤트 기반의 비동기 I/O 프레임워크

 

반응형

 

모듈 시스템

  • 브라우저에서는 윈도우 컨텍스트를 사용하거나, RequireJS같은 의존성 로더를 사용함.
  • 노드는 파일형태로 모듈을 관리할수 있는 CommonJS로 구현.
    • 기본 모듈 : require('http')와 같이 기본적으로 제공하는 모듈 
    • 써드파티 모듈 :  응용프로그램과 무관한 제 3자에 의해 개발된 모듈
    • 사용자 정의 모듈 : 직접 만든 모듈

 

이벤트기반의 비동기 I/O

  • readFile() vs readFileSync()
const fs = require('fs');

//동기
const syncData = fs.readFileSync('./data.txt', 'utf8');
console.log('syncData', syncData);

//비동기
const asyncData = fs.readFile('./data.txt', 'utf8', function(err, data) {
    console.log('data', data);
});
console.log('asyncData', asyncData); // undefined

 

 


Thank you!

 

 

반응형