Node.js 시작하기(Express.js 웹 개발)

Node.js 시작하기(Express.js 웹 개발)

Node.js란?

Node.js는 Javascript 런타임 환경을 의미합니다. 웹 브라우저가 런타임이었던 자바스크립트에게, 새로운 런타임 환경인 node.js가 생긴 것이라고 생각하면 이해하기 쉽습니다. 이를 통해 자바스크립트는 프론트와 백에서 모두 사용할 수 있는 언어가 되었습니다.

특징

  • 비동기적임 Non-blocking I/O 방식으로 동작하여 병렬 작업, 대용량 데이터 처리에 특화되어 있습니다. 이런 이유로 실시간 서비스가 필요한 SNS나 주식 거래 등에 많이 사용됩니다.

  • 가볍고 빠름 크롬의 V8 javascript 엔진 개발을 기점으로 굉장히 가볍고 빠른 성능을 보여주게 되었습니다. 현재 Node.js는 Ryan Dahl이 개발한 크롬 V8 javascript 엔진으로 빌드되었습니다.

  • 편리한 웹 개발 기존에 자바스크립트는 프론트 단에서 사용되었지만, 이제는 백엔드 단에서도 사용이 가능하게 되어 하나의 언어로만 웹 개발할 수 있다는 편리함이 있습니다.

장점 vs 단점

기존 웹 서버와 비교해 Node.js의 장단점을 분석해보았습니다.

  기존 웹 서버 Node.js
  스레드 기반 이벤트 기반
장점 웹 서버 요청을 각각의 스레드가 처리. 동시에 여러 작업 가능 단일 스레드에서 여러 작업이 가능해 메모리 이득을 볼 수 있음
단점 스레드 간 통신에 공유 메모리, 동기화 기법 등이 필요해 복잡함 무한콜백, 코드 복잡성이 야기됨

Express.js란?

Node.js를 활용한 웹 프레임워크입니다.

디렉토리 구조

Express.js를 활용해 웹 개발을 하는 과정에 사용되는 디렉토리 구조를 설명합니다. 아주 간단한 rest api를 개발하는 디렉토리 구조를 설명하겠습니다. 이때 정해진 구조는 없습니다. 보편적으로 사용되는 디렉토리 구조에 대한 설명일 뿐입니다. 다음은 프로젝트의 최상단 바로 아래에 있는 디렉토리 및 자바스크립트 파일입니다.

  • node_modules
    npm 패키지 저장소
  • public
    정적파일 저장소(image, css, javascript)
  • routes
    라우터 설정(url 관련)
  • views
    템플릿 파일 저장소
  • app.js
    Express 애플리케이션 설정 파일
  • package.json
    의존성 관리 파일

results matching ""

    No results matching ""