카테고리 없음 node.js란 무엇인가? 미로그 2025. 2. 19. 22:05 node.js란? Node.js는 Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임이다. 즉, 노드를 통해 다양한 자바스크립트 애플리케이션을 실행할 수 있으며, 서버를 실행하는데 제일 많이 사용된다. Node.js는 JavaScript를 서버에서도 사용할 수 있도록 만든 프로그램이다. Node.js는 V8이라는 JavaScript 엔진 위에서 동작하는 자바스크립트 런타임(환경)이다. Node.js는 서버사이트 스크립트 언어가 아니다. 프로그램(환경)이다. Node.js는 웹서버와 같이 확장성 있는 네트워크 프로그램을 제작하기 위해 만들어졌다. node.js의 특징 - 확성성이 있는 네트워크 어플리케이션 개발에 사용되는 소프트웨어 플랫폼이다. - 서버사이트에서 많이 사용되고 있다. - 사용되는 언어로는 자바스크립트(Javascript)를 활용하며, Non-bloking I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있는것이 특징이다. - 내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도 소프트웨어 없이 동작하는 것이 가능하다. ( Non- bloking I/O : 함수 호출 시 당장 실행하는것이 아닌, 잠시 대기하는 동시에 요청을 처리하고 요청이 완료된 순서대로 처리하는 작업) (이벤트 루프 : 여러 이벤트가 동시 발생 시, 어떤 순서로 콜백함수를 호출 할지를 이벤트 루프가 판단한다.) node.js의 장단점 장점 - 자바스크립트를 동일하게 사용해서 서버단 로직을 처리할 수 있다 - 개발이 빠르고 쉽다. - Non-blocking I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능 - 이벤트 기반 비동기방식이라 서버무리가 적다. - npm(node package manager)을 통한 다양한 모듈(패키지)제공 단점 - 이벤트 기반 비동기방식이라 서버단 로직이 복잡한 경우 콜백함수의 늪에 빠질 수 있다. - 코드를 순차적으로 실행하는 것이 아니라 비동기 방식으로 이벤트를 보내고, 응답(이벤트)이 오면 처리하는 방식이기 때문에 java 개발을 했던 방식으로 설계하고 프로그래밍하면 큰 문제가 발생한다. -단일 쓰레드이기 때문에 하나의 작업 자체가 많이 걸리는 웹 서비스에는 어울리지 않는다. (게시판 형태와 같이 가벼운 I/O가 많은 웹서비스에 어울린다.) - 코드가 수행되어야 코드에 에러가 났는지 알 수 있으며, 에러가 날 경우 프로세스가 내려가기 때문에 테스트가 엄청 중요하다. 반드시 모든 케이스에 대해 소스코드를 검증해야한다. node.js에 적합한 웹서비스 간단한 로직. 대용량(동시에 여러 request를 처리) 빠른 응답시간 요구 빠른 개발 요구 비동기방식에 어울리는 서비스(네트워크 스트리밍 서비스, 채팅 서비스 등) node.js에 적합하지 않은 웹서비스 단일 처리가 오래 걸리는 경우 : 싱글 쓰레드이기 때문 서버 체크로직이 많은 경우 : 비동기방식이기 때문에 CallBack Hell에 빠지지 않기 위해 업무 복잡도/난이도가 높은 경우 : 에러가 나면 서버가 죽기 때문에 코드 품질 중요 Reference https://hanamon.kr/nodejs-%EA%B0%9C%EB%85%90-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0/ https://junspapa-itdev.tistory.com/3 공유하기 게시글 관리 MI_Log