Javascript & node.js

박찬효·2022년 9월 5일
0
post-custom-banner

Javascript

자바스크립트는 '웹페이지에 생동감을 불어넣기 위해' 만들어진 프로그래밍 언어입니다. 자바스크립트로 작성한프로그램을 저희는 script(스크립트)라고 부릅니다. 스크립트는 HTML안에서도 작성할 수 있고, 따로 저장하여 불러오는 형식으로 사용합니다.또한 Node.js와 같은 런타임 화녕과 같이 서버 프로그래밍에도 사용되고 있다.

Javascript 특징

  1. 인터프리터 언어
  • 자바스크립트는 번역기를 사용하여 한 줄씩 실행하는 '인프리터 언어'이다.
  • 프로그램을 바로바로 실행하며 확인할 수 있다는 장점이 있다.
  1. 동적 프로토타입 기반 객체 지향 언어
  • 자바스크립트는 C++이나 Java에서 사용하는 객체와 달리 실행 도중에 프로퍼티를 추가하거나 삭제할 수 있는 동적 프로토타입 기반의 객체 지향언어이다.
  1. 자바스크립트는 객체 지향형 프로그래밍과 함수형 프로그래밍을 모두 표현 할 수 있다.

Javascript 장단점

Javascript 장점

  1. HTML안에서 바로 script 태그안에서 코드를 작성 할 수 있기 때문에 개발 속도가 빠르다.
  2. 컴파일 과정이 필요 없기 때문에 즉시 실행이 가능하고, 디버깅도 간편하다.
  3. 운영체제의 제한을 받지 않는다.

Javascript 단점

  1. 소스 코드가 웹 브라우저 상에서 외부로 공개되기 때문에 보안이 취약하다.
  2. 한정된 객체와 객체 함수 제공

Node.js

Node.js

Node.js는 Chrome V8 Javascript 엔진으로 빌드 된 JavaScript 런타임입니다. 즉 , Node.js를 통해 다양한 자바스크립트 애플리케이션을 실행할 수 있으며, 서버를 실행 하는데 제일 많이 사용된다. 내장 HTTP 서버 라이브러리를 포함하고 있어 웹서버에서 아파치, 톰캣 등의 별도 소프트웨어 없이 동작하는것이 가능하며, 서버의 동작에 있어 더많은 통제에서 벗어나 여러 가지 기능을 가능하게 한다.

Node.js 특징

  1. Chrome V8 Javascript 엔진 기반
  • V8 엔진을 인터프리터로 사용하여, 빠른 실행이 가능하다.
  • 런타임 환경 : 컴퓨터가 실행되는 도안 프로세스나 프로그램을 위한 소프트웨어 서비스를 제공하는 가상 머신의 상태
  1. 단일 쓰레드(single Thread)와 이벤트 기반
  • 하나의 스레드가 모든 작업을 수행
  • 하지만 하나의 쓰레드가 무너진다면 프로그램 전체에 문제가 발생
  • 스레드가 1개이기 때문에 메모리 사용량과 시스템 리소스 사용량 변화가 많지 않다.
  1. 비동기 I/O 처리
  • 하나의 쓰레드가 request를 받으면 모든 처리가 완료될 때까지 기다리다가 처리 결과가 완료되면 다시 응답을 보낸다.
  • 업무 처리 완료 전, 또 다른 equest가 있으면 새로운 쓰레드가 업무를 시작한다.
  1. 방대한 모듈 제공
  • 모듈이란 애프리케이션을 구성하는 하나의 개별적 요소를 뜻합니다.
  • NPM이라는 설치 관리자를 통해 쉽게 모듈을 설치 및 관리를 할 수 있다.
  • 모듈은 파일로 구성되어 있으며, 필요한 모듈을 import 하여 원하는 모듈만 사용이 가능하다.

Node.js 단점

  • 이벤트 기반 비동기방식이라 서버단 로직이 복잡한 경우 콜백함수의 늪에 빠질 수 있다.

  • 단일 쓰레드(single Thread)이기 때문에 하나의 작업 자첵가 많이 걸리는 웹서비스에는 어울리지 않다. 게시판형태와 같이 가벼운 I/O가 많은 웹서비스에 어울린다.

  • 코드가 수행되어야 코드에 에러가 있는지 알 수 있으며, 에러가 날 경우 프로세스가 내려가기 때문에 테스트가 엄청 중요하다.

profile
개발자가 되기 위한 1인
post-custom-banner

0개의 댓글