그럼에도 불구하고

👨‍💻

[Node.js] Node.js란? 본문

Node.js/Node.js basics

[Node.js] Node.js란?

zenghyun 2023. 1. 25. 21:34

 Node.js란 무엇인가?

 

 

 

Node.js는 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다.

작성 언어로 자바스크립트를 활용하며 논블로킹(Non-blocking) I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다.

 

내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도의 소프트웨어 없이 동작하는 것이 가능하며 이를 통해 웹 서버의 동작에 있어 더 많은 통제를 가능케 한다.

 

간단하게 말하면,  Node.js의 사용 목적은 사용자에게 데이터를 회신하는 코드를 서버에 작성해서 클라이언트가 사용하게 하는 것을 말한다.

 

※ Node.js의 역할

Node.js로 서버 사이드 코드를 작성하고 서버에서 실행하게 한다.

 

 

브라우저를 사용하는 사용자가 있고, 개발자는 HTML, CSS, JavaScript를 사용하여 웹페이지를 만들 수 있다.

 

예를 들어 zenghyun.com 페이지에 사용자가 방문해서 어떤 요청을 보낸다고 가정해 보자. 

사용자는 브라우저에 URL을 입력함으로써 URL에 요청을 전달할 수 있다. 바로 여기에서 서버가 등장하게 된다. 

 

서버는 인터넷에서 실행중인 컴퓨터로, 해당 도메인과 관련된 IP를 가지고 있으며 자동으로 할당된다. 

그리고 그 서버에서 들어오는 요청을 처리해서 응답을 회신하는 코드를 실행한다. 

 

서버에서는 일반적으로 성능 또는 보안상의 이유로 브라우저에서 할 수 없거나 하고 싶지 않은 작업을 수행하고는 한다. 

데이터를 불러오거나 저장하기 위해 데이터베이스에 접속하거나, 사용자 인증을 수행하기도 한다. 

이는 보안을 강하게 하고 해킹을 막기 위해 사용자가 접속할 수 없는 곳에서 진행해야 한다. 

 

또한, 사용자가 올바른 이메일 주소를 입력했는지 확인하는 등의 입력 값 검증에도 사용된다. 

 

정리하자면 서버는, 

 

1. 유저가 엑세스할 수 없으므로 안전하다. ( 일반적으로 서버 운영에는 비즈니스 로직이 적용된다. )

 

2. 사용자에게 신속한 사용 환경을 제공할 수 있다. ( 유저가 보게 될 모든 것을 브라우저에서 실행하려면 시간이 많이 걸리는데 이를 서버에서 실행할 수 있다. ) 

 

이런 기능을 서버에서 구현하기 위해 Node.js를 사용할 수 있고, Node.js가 제공하는 다양한 기능을 활용할 수 있다.

이를 통해 개발자들이 간접적으로 요청 응답 패턴을 사용해 서버 작업을 할 수 있다.

 

Node.js는 JavaScript 런타임이며 브라우저가 필요하지 않다. 단순한 JavaScript 런타임으로 어떤 JavaScript 코드라도 Node.js로 실행할 수 있다.

 

또한, Node.js는 유틸리티 스크립트를 작성하는 데 유용한 도구이다. 

파일을 쓰고, 읽고, 편집할 수 있도록 파일 시스템에 액세스 하면 컴퓨터에서 대중에 노출되지 않은 채로 다양한 유틸리티 작업을 수행할 수 있다. 

 

모든 비즈니스 로직을 운영하는 데 사용하기도 한다.

들어오는 요청을 처리하는 것뿐만 아니라 요청받은 데이터를 처리하고, 파일을 활용하고, 데이터베이스를 활용하는 등의 흥미로운 일들을 Node.js로 모두 할 수 있다.

 

또한 응답 사이드도 처리할 수 있다. 들어오는 요청만이 아니라 Node.js를 사용에 클라이언트에게 데이터를 회신할수도 있다. 

 

HTML 페이지, 동적 콘텐츠 또는 데이터가 포함된 json 형식의 HTML 페이지, 또는 xml이나 일반 파일도 가능하다.

 

Comments