Node.js 란?

1990년 웹이 처음 등장하면서 인류는 정보를 웹페이지를 표현할 수 있게 되었고,
인터넷을 통해서 웹페이지를 전송할 수 있게 되었습니다.


종이에 담겨있던 수많은 정보들이 빠른 속도로 웹페이지로 만들어지기 시작합니다.
종이로부터 엑소더스가 시작된 것이고, 이것은 지적인 빅뱅의 신호탄이 되었습니다.
처음에는 html 만으로도 사람들은 행복해했어요. 하지만 인간의 욕심은 끝이 없죠.

여러가지 불만들이 쏟아져 나옵니다. 그 수많은 불만족 중에 우리의 관심사는 html의 직접 타이핑해서
웹페이지를 수동으로 만드는 것에 지쳤다는 불만족 입니다. 사람이 직접 html을 코딩해서 웹페이지를 하나 하나
따로 만들어야 했기 때문에 html의 구조를 바꾸려면 수많은 html 코드를 수동으로 수정해야 했어요.
또, 방문자들이 직접 글을 올리도록 하고싶었지만 그렇다고 방문자들이 웹페이지가 담긴 파일을 마음대로
수정하게 하는 것은 너무 위험한 일이였기 때문에 웹사이트 소유자만이 컨텐츠를 추가 할 수 있었습니다.
즉, 성장의 한계에 직면하게 된 것입니다.
한계에 봉착한 몇몇 선구자적 욕심쟁이들은 귀찮고 반복되는 html 작성 작업을 기계에게 시키고 싶다는 욕심을 품게 됩니다.

그리고 이 욕망을 해소하기 위해서 1군의 컴퓨터 공학자들이 나서게 됩니다.
이들은 이미 JavaScript에 익숙한 웹개발자들이 새로운 컴퓨터언어를 배우지 않고도
웹페이지를 자동으로 생성하는 Server Side Application 서버쪽 애플리케이션을 만들 수 있게하고 싶어졌습니다.
바로 이런 맥락에서 출현하는 기술이 Node.js 입니다.
Node.js 이전의 이야기를 조금 들려드릴게요.


웹이 태어난지 5년 뒤인 1995년 최초로 성공한 상업용 웹브라우저인 Netscape 커뮤니케이션사에서는
Brendan Eich, (1961년 ~, 미국의 프로그래머. JavaScript와 Firefox를 만들었다. ) 브랜든 아이크에게
자바스크립트의 제작을 의뢰합니다. 그에 의해서 만들어진 자바스크립트로 인해서 웹은 사용자와 상호작용하는
Application의 면모를 갖추게 됩니다. 문서로 시작했던 웹이 Application으로 확장되는 혁신적인 변화의 순간이였죠.
이때까지만 해도 자바스크립트는 좋게 말하면 웹브라우저에서 유일하게 사용할 수 있는
독점적인 컴퓨터 프로그래밍 언어라고 할 수 있었고, 부정적으로 말하면 웹브라우저에 갇혀있는
편파적인 언어라고 할 수 있었습니다. 이런 이중적인 평가 속에서 자바스크립트는 꾸준히 이 언어의 사용자를 넓혀갑니다.



1. 스크립트 언어라 어느 환경에서도 동작
2. 성능이 빠르고 좋음
3. JavaScript 를 쓰는 개발자가 많음
4. Ryan Dahl이 서버용 기능을 개발!

2008년 자바스크립트 역사를 근본적으로 바꿔놓을 중요한 사건이 일어났습니다.
구글이 크롬 웹브라우저에서 동작하는 자바스크립트의 성능을 개선하기 위해서 V8 엔진을 개발했고, 이를 오픈소스로 공개합니다. Node.js의 창시자 Ryan Dahl (1981년 ~, 미국 소프트웨어 공학자이자 Node.js 자바스크립트 런타임과
Deno 자바스크립트 / 타입스크립트 런타임의 최초 개발자다.) 라이언 달은 V8 엔진을 기반으로 하는 Node.js를 만듭니다.

태초의 자바스크립트과 웹브라우저를 제어하는 것이였다면,
Node.js는 자바스크립트를 이용해서 웹 브라우저가 아닌, 컴퓨터 자체를 제어합니다.
마치 파이썬 자바, PHP, 루비가 그런 것 처럼요.
Node.js라는 새로운 도구를 손에 쥔 웹개발자는 자신들에게 이미 익숙한 JavaScript를 이용해서
웹페이지를 자동으로 생성하는 Web Application을 만들고 싶어졌어요. 웹개발자들은 Node.js에 열광했고,
웹 브라우저라는 울타리에 갇혀있던 자바스크립트는 빠른 속도로 웹브라우저 밖으로 팽창하기 시작합니다.



오랫동안 쉽다는 이유로 또, 웹 브라우저에서만 사용할 수 있다는 이유로 천대받던 자바스크립트가
가장 핫한 컴퓨터 언어로 인생역전되는 순간이였습니다.
자바스크립트를 이용해서 웹페이지를 찍어내는 거대한 공장인 Web Application의 거대한 공장장이 되어봅시다.
html을 코딩하는 지루하고 단순한 일은 Web Application에게 맡기고,
여러분은 컨텐츠를 생산하는 창의적인 일에 전념할 수 있게 될 것입니다.








개발 환경 세팅
Node.js 설치
Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
Node.js 어렵게 느껴지죠. 우리 익숙한 것 부터 먼저 살펴보도록 하죠.
여러분 WEB Browser에 익숙하시죠. 그리고 우리는 WEB Browser 위에서 돌아가는
웹페이지 또는 웹어플리케이션을 만들게 됩니다. 자, 그러면 만들기 위해서는 어떻게 해야하죠?
웹 브라우저가 가지고 있는 여러가지 기능들 중에서 예를 들면 제목, 목록, 링크를 표시한다.
이러한 기능들 중에서 우리가 만들고자 하는 웹 애플리케이션에 필요한 기능을 어떤 컴퓨터언어의 문법에 따라서
HTML 이라고 하는 컴퓨터 언어의 문법에 따라서 표출함으로써 WEB Application을 만들게 되는 것입니다.


Node.js도 마찬가지이구요. 우리는 인터넷을 통해서 Node.js 홈페이지에 갈 것입니다.
그리고 프로그램을 다운로드 받아서 설치할 것인데 그 프로그램을 여러가지 말로 부를 수 있지만,
Node.js runtime 이라는 프로그램을 우리는 설치해서 실행시킬거에요.
바로 이 Node.js runtime 이라는 프로그램에서 마치 웹 브라우저에서 우리가 그러했던 것처럼자바스크립트 라는 컴퓨터언어를 통해서 Node.js runtime이 가지고 있는 여러가지 기능들 중에우리가 필요한 것들을 표출하는 것을 통해서 우리는 Node.js Application을 만들 수 있게 되는 것입니다.
그렇기 때문에 우리가 필요한 것은 Node.js runtime을 각자의 운영체제에 설치하는 겁니다.그리고 그 다음에 자바스크립트 라는 컴퓨터 언어를 통해서 Node.js runtime을 실행시키는걸로우리가 만들고자 하는 Node.js Applicaiton을 어떻게 만들게 되는 것인가를 공부하게 될겁니다.

다운로드 하는 버전 중에서 LTS 라고 되어있는 것을 다운로드 받읍시다.





설치완료!

윈도우 키를 누르고 있는 상태에서 알파벳 r 을 누르면, 이렇게 생긴 '실행'이라고 하는 창이 뜹니다.
여기에다 cmd를 입력하고 Enter를 치면,

이렇게 생긴 프로그램이 뜨는데 이것은 컴퓨터를 명령을 이용해서 제어할 수 있는 프로그램 입니다.
터미널, 콘솔 이런 이름으로 불립니다. 여기서 node -v 라고 쳤을 때, 여러분이 설치한 Node.js의 버전이 뜨면
설치에 성공한 것이고, node 라고 입력하고 Enter를 치면 저렇게 생긴 화면이 뜨는데,

여기에서 우리는 JavaScript 라는 문법을 이용해서 Node.js가 갖고있는 기능 중 하나인
console.log(1+1); 을 하면 괄호 안에 있는 값을 계산한 결과를 화면에 출력해주는 기능 입니다.
Enter 쳐서 숫자 2가 뜨면 성공적으로 실행이 된겁니다.

그리고 여기서 나갈 때는 Ctrl + C를 2번 누르면 나가게 됩니다.
또는, .exit 를 치고 Enter를 쳐도 나가게 됩니다.

우리가 바탕화면에다가 폴더를 하나 만들거거든요. 폴더의 이름은 nodejs 로 할거에요.
그리고 폴더 안에다가 앞으로 우리가 만들어서 실행하게 될 여러가지 예제들을 넣을거에요.

VS CODE 키고, 폴더 안에 helloworld.js 파일 만들어주고, console.log(1+1); 찍어주고 저장합니다.
우리가 Node.js로 어떤 작업을 할 때마다 이렇게 직접 타이핑 하는건 어려운 일이란 말이에요.
그래서 자주 사용되는 작업은 파일에다가 이렇게 코드를 작성해주고, Node.js 한테 나 타이핑하는거 귀찮으니까
저 파일에 있는거 실행해! 하면 얼마나 좋겠어요? 그걸 하는 방법을 살펴보도록 해요.

폴더 주소 복사해서 copy 후 붙여넣기 합니다. 디렉토리 바꾸는 것은 앞에 c(change)d(directory) = cd 를 쳐요.
터미널 콘솔에서 나오는 경로는 현재 여기에 머물고 있다 라는 뜻이고, 여기에서 어떤 명령을 실행시키면
현재 이 디렉토리에 있는 파일과 디렉토리들을 대상으로 실행될 것이다 라는 뜻입니다.

그러면 nodejs 폴더로 이동을 하게 되구요.

여기에서 dir 이라고 치면, 현재 디렉토리에 존재하는 파일들을 보실 수 있습니다.helloworld.js 라는 파일 보이시죠? 우리는 이 곳에 현재 위치하고 있다는 뜻입니다.

여기서 node helloworld.js 라고 치고, Enter를 쳤을 때 숫자 2가 나오면 잘 따라오고 있는 것입니다.
그럼 지금부터 제가 Node.js와 관련된 여러가지 파일들을 만들면,
여러분은 이것과 똑같은 방법으로 이곳으로 이동한 다음에 이렇게 실행을 시키면 된답니다.
운영체제마다 조금 다르긴 하지만, 그 다음부터는 똑같습니다. 여기까지 다를 뿐입니다.
이렇게 해서 윈도우에서 Node.js를 설치하고 실행하는 방법까지 살펴봤습니다!
+ mac 인 경우에도 설치 방법 공유 드립니다!




Node.js 버전 관리 도구 설치
버전 관리 Tool 설치
[Node.js] 버전 관리 도구 설치버전 관리 Tool 설치 (NVM)
GitHub - coreybutler/nvm-windows: A node.js version management utility for Windows. Ironically written in Go. A node.js version management utility for Windows. Ironically written in Go. - GitHub - coreybutler/nvm-windows: A node.js version management utili
kddk.tistory.com

https://github.com/coreybutler/nvm-windows/releases
Releases · coreybutler/nvm-windows
A node.js version management utility for Windows. Ironically written in Go. - coreybutler/nvm-windows
github.com
'( ´・・) > 개발' 카테고리의 다른 글
| [Node.js] NPM (Node Package Manger) 패키지 관리 시작 / 설치 / 삭제 (2) | 2023.03.12 |
|---|---|
| [Node.js] 버전 관리 도구 설치버전 관리 Tool 설치 (NVM) (0) | 2023.03.12 |
| 📶 URI란? (feat. URL, URL, URN) (0) | 2023.03.11 |
| [REST API] 기계들의 대화 CRUD (POST, GET, DELETE, PUT, PATCH) (1) | 2023.03.11 |
| 동기 (Synchronous)와 비동기(Asynchronous) 처리 (0) | 2023.03.11 |