해보자고

[UDEMY] Node.js - Section(01) 본문

웹 프로그래밍

[UDEMY] Node.js - Section(01)

초코맛동산 2023. 7. 7. 18:44

 

Node.js란?


*JavaScript 런타임이자 다른 버전의 JavaScript.

Node.js는 V8을 사용한다.

서버 측면의 코드 실행에만 국한되지 않는다. (No 브라우저, No 서버 구축, 브라우저를 통해야 하는 어떤 작업도 수행X)

WHY?

- JavaScript 기반으로 만들어졌기에 Javascript에서 기능을 추가 혹은 제외한 식임. 

추가)

1) Javascript를 서버에서 실행할 수 있도록 해줌.  이외에도 브라우저뿐 아니라 다른 곳에서도 프로그래밍 언어처럼 실행될 수 있도록 해준다. -> 서버에서 실행할 웹 애플리케이션을 구현하는데 매우 유용하다. 

2) 로컬 파일 시스템 활용, 파일 열기, 파일 읽기, 파일 삭제가 가능 

-> 원래 이러한 작업들은 보안상의 이유로 브라우저에서 불가능. Node.js는 브라우저에서 실행되지 않기 때문에 가능.

if Nod.js 없이 2)기능을 하고 싶다면) Vanilla 사용

제외)

1) 문서 객체 모델과의 상호작용 

-> 브라우저에서는 JavaScript를 사용해 문서 객체 모델과 상호작용했음. 이는 바로 페이지 상의 HTML 요소들. 그러나 JavaScript 파일을 직접 실행하면 페이지를 첨부하지 않았으므로 이러한 기능이 제외됨. 

 

활용 

- 1) 서버 운영

: 웹 개발 또는 *서버 사이드 코드.  

+) Node.js VS PHP

- Node.js는 코드가 들어오는 요청을 처리해서 다른 코드로 보내줌. 하지만 PHP에서는 Apache Nginx와 같은 추가 툴이 있고 여기서 요청을 받아 PHP 코드를 실행함. 즉 Node.js 는 요청을 처리하고 코드에서 원하는 작업을 수행하는 두 가지 역할을 모두 수행함. 

 

- 2) 비즈니스 로직 운영

: 들어오는 요청 처리와 더불어 요청받은 데이터의 처리, 파일 활용, 데이터베이스 활용등이 가능.

 

- 3) 응답 사이드 처리 

: 클라이언트에게 데이터를 회신 가능.

 

+) React, Angular, Vue 등은 간접적으로 Node.js를 사용함.

 

 

*JavaScript: 브라우저에서 많이 사용하는 프로그래밍 언어이자 실행되는 언어. 로딩 후에도 페이지와 상호작용 가능하게 해주기에 브라우저에서 interactive 사용자 인터페이스를 구현하는데 필수적인 요소. 

*서버 사이드 코드: 웹에서 사용되는 스크립트 언어 중 서버 사이드에서 실행되는 스크립트 언어

 

Node.js의 핵심


JavaScript를 브라우저 밖에서도 실행할 수 있다.

 

장점

- Javascript를 사용한다. Javascript는 프론트엔드에서 빌드 툴에 이르기까지 현대 웹 개발에서 가장 널리 사용되는 언어임. Node.js로 서버 사이드에서까지 해당 언어가 사용되어 다른 언어들을 배울 필요가 굳이 없음. 

 

V8이란? 


구글에서 개발한 JavaScript 엔진으로 JavaScript를 브라우저에서 실행해 줌. 

 

 

*V8은 브라우저에서 JavaScript 코드를 가지고 기계어로 컴파일 해준다.

 

 

What is engine? 

- 엔진은 브라우저에서 실행 중이거나 V8에서 구현했다면 노드에 있는 JavaScript 코드, 또는 Node.js JavaScript 코드를 기계어로 컴파일 한다. (브라우저도 같은 일을 한다.)

 

 

 

 

 

 

환경설정 


1) Node.js 

버전| 20.0.0 (강의상 14.11) 

다운로드 경로| https://nodejs.org/ko

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

설정| 다운로드시 기본 설정 값으로 다운로드

 

+) 버전 확인은 cmd창에서 node -v 로 확인

2) Visual Studio Code 

다운로드 경로| code.visualstudio.com

실습 시 파일 경로| myapp\udemy_node

 

 

Node.js 코드 실행 방법 

 


대화형 모드란?

- 명령 하나에 대한 결과를 받는, 즉 대화를 주고 받는 방식으로 실행.

- Read Evaluate Print Loop의 줄임말.

Read Read User Input
: 사용자의 Input 읽기
Evaluate Evaluate User Input
: 사용자의 입력값 평가하기
Print Pring Output(Result)
: 결과값 출력
Loop Wait for new Input
: 돌아가서 새로운 입력값 기다리기

- 코드가 파일로 저장되지 않고 한 줄씩 작성 및 처리 

- 명령을 바로 실행 가능 -> 특정 기능 시험하기에 용이 

 

 

스크립트 모드란?

- 텍스트 파일 안에 명령어들을 작성한 후 프로그램을 실행해 한 번에 실행

- 코드를 미리 작성 후 항상 실행할 수 있음.

- 코드를 파일로 저장한 후 배포 및 공유가 용이.

 

REPL 실습

- 진입 명령어| node

- 퇴장 명령어| Ctrl+C 두 번 입력 또는 Ctrl+D 또는 exit 입력

 

 

terminal 실습 

실행 명령어| node 파일명(확장자 까지)

 

(1) node.js를 사용하여 console에 문자열 출력

 

console.log('Hello from Node.js');

(first-app.js 스니핏)

 

first-app.js 결과 화면

 

(2) node.js를 사용하여 파일로 출력 값을 작성

 

const fs = require('fs');

fs.writeFileSync('hello.txt','Hello from Node.js');

(first-app.js 스니핏(2))

 

first-app.js 결과 화면 Hello from Node.js가 적힌 hello.txt 파일 생성 

 

파일 시스템 기능을 활용.

How?

- 파일에 임포트하여 해당 기능을 사용함을 알림. 

- require() 로 모듈 임포트. 

- 임포트할 모듈은 *fs 모듈

- 해당 파일 시스템을 활용하여 *writeFileSync 호출

 

 

*fs 모듈: Node.js에서 파일 입출력 처리

*writeFileSync: 하드 드라이브에 파일을 생성. 첫 번째 인수는 파일명, 파일 경로, 확장자. 두 번째 인수는 파일의 내용.

Server에서의 javascript


Server란?

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

- 사용자는 개발자 tools를 통해 브라우저 사이드 코드 편집도 가능하는 등 브라우저 속이기가 가능하다. 서버는 유저가 접근할 수 없기에 안전. 그리고 일반적으로 서버 운영에는 *비즈니스 로직이 적용됨.

 

*비즈니스 로직: 기능적으로 필요한 로직들

 

Node.js와 Javascript 사용 이유

- 1) 유저가 보게 될 모든 것을 브라우저에서 실행하려면 시간이 너무 오래 걸림

- 2) 사용자에게 신속한 사용 환경을 제공하고 싶어 함.

 

=> 사용자들이 간접적으로 요청 응답 패턴을 사용해 서버 작업이 가능. 직접적인 액세스는 불가능.

 

 

'웹 프로그래밍' 카테고리의 다른 글

PBL4 - 코드 분석  (0) 2023.09.14
[UDEMY] Node.js - Section(03)  (0) 2023.08.24
[UDEMY] Node.js - Section(02)  (0) 2023.07.22
[javascript] 생활 코딩 스터디 1주차 (1) [정리]  (0) 2023.03.12