일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 제주ICT
- 제주코딩베이스캠프
- 안드로이드 adb start-server
- 드림핵 리버싱
- 리버싱 입문
- 인프런 강의 추천
- adb 옵션
- 자바스크립트강의 후기
- adb
- 안드로이드 adb
- 리버싱핵심원리
- 드림핵 리버싱 풀이
- 안드로이드 모바일 앱 모의해킹
- 리버싱
- 드림핵 플래그
- 리버싱 초보
- 리버싱 스터디
- 강의 체험단 1기
- dreamhack reversing
- 오블완
- 자바스크립트 강의
- 위니브
- 더오름
- 리버싱 플래그
- 티스토리챌린지
- 자바스크립트 강의 추천
- 리버싱 핵심 원리
- rev-basic 풀이
- 안드로이드 리버싱
- 자바스크립트
- Today
- Total
해보자고
[UDEMY] Node.js - Section(01) 본문
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
설정| 다운로드시 기본 설정 값으로 다운로드
+) 버전 확인은 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 : 사용자의 입력값 평가하기 |
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 스니핏)
(2) node.js를 사용하여 파일로 출력 값을 작성
const fs = require('fs');
fs.writeFileSync('hello.txt','Hello from Node.js');
(first-app.js 스니핏(2))
파일 시스템 기능을 활용.
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 |