일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- coding
- 반응형 페이지
- JS
- 프론트엔드
- CSS
- HTML
- git
- max-width
- Servlet
- 자바
- 그럼에도불구하고
- 변수
- redux
- frontend
- media query
- github
- 자바문제풀이
- react
- java
- webpack
- 그럼에도 불구하고
- JavaScript
- 코딩테스트
- cleancode
- TypeScript
- 코드업
- @media
- node
- react-router-dom
- node.js
- Today
- Total
그럼에도 불구하고
[Node.js] Node.js란? 본문
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이나 일반 파일도 가능하다.
'Node.js > Node.js basics' 카테고리의 다른 글
[Node.js] writeFile vs writeFileSync (0) | 2023.01.28 |
---|---|
[Node.js] 응답 헤더 / 라우터 요청 / 요청 리디렉션 / 요청 분석 (0) | 2023.01.27 |
[Node.js] Node Life Cycle & Event Loop (0) | 2023.01.27 |
[Node.js] 서버생성 (0) | 2023.01.26 |
[Node.js] 코드 실행방법 (0) | 2023.01.25 |