일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- js 함수 #함수
- js DOM 기초
- React 자습서
- Linux 기본
- GitHub
- js 메서드
- React 기본설정
- js 댓글
- 배열 메서드
- js 게시판
- node js 기본
- JS DOM
- Git
- js 함수 표현식
- js 로또
- js 무한루프 슬라이드
- css #css기초
- js로또 만들기
- nodejs 게시판
- 콜백함수
- 화살표함수
- 3way handshake
- node js 설치
- Object.keys
- js 댓글수정
- js 생성자 함수
- Rebase
- typescript
- Linux 사용자
- branck 합치기
- Today
- Total
개발 노트
nodejs 본문
목차
nodejs
- 프로그램
- 프로세스
- node 설치
nodejs의 실행방법
- repl
- js 직접실행
thred
모듈
Nodejs
프로그램
동작을 할 코드들의 집합
프로세스
하나의 프로그램을 돌리기 위해 실행되는 모든 것
프로세스는 하나의 PID를 가진다.
브라우저를 통해 js를 실행하면 컴퓨터 조작 x 하지만 노드를 이용하면 컴퓨터 조작이 가능하다.
노드는 JS를 실행시켜주는 "프로그램" 이다
node를 통해서 js를 실행하면 컴퓨터를 조작 할 수 있다. (브라우저는 조작 할 수 없다.)
== 하드웨어를 조금 조작 할 수 있다.
노드는 윈도우 객체가 없다. 브라우저에서 시작하는 js와 노드에서 시작하는 js는 내장 객체가 다르다.
그래서 .document 로 이용했던 것들이 없다.
노드 = 서버 x 노드를 이용해서 서버를 만드는것(백엔드)
노드는 6개월마다 하나씩 올라감
lts버전이 안전한 버전 // 현재버전 = 최신기능
nodejs 설치하기
linux에 설치하기
직접설치도 가능하지만 nvm(node version manager) 을 이용해서 설치
노드는 매년 2단계씩 높아지는데 내가 필요한게 하위버전 일수도 있고 상위버전 일수도 있다.
그래서 버전을 쉽게 바꾸는 것이 필요하다
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash
$ cd ~
$ vi . zshrc
$ source ~/.zshrc
$ nvm --version 설치 확인
$ nvm list //설치 할 리스트 확인
$ nvm install --lts ///설치
$ node --version /// 버전확인
노드라는 프로그램만 설치한것
Nodejs는
- 이벤트 기반
- 논 블로킹 I/O
프로세스와 스레드를 알아야한다.
nodejs 실행방법 2가지
repl
window와 돌아가는 곳이 다르다. (this를 찍으면 다르게 찍힌다.)
js를 해석해주는 프로그램을 설치한것
repl 나가는 방법
ctrl + c , ctrl + c 2번
ctrl d
ps -ef | grep node
를 사용하면 프로세스의 아이디를 확인 할 수 있다.
repl 외에도 js 터미널에서 직접 실행을 시킬수도 있다.
forground process
눈에 보이는거
롤 클라이언트 처럼 눈에 보이게 돌아가고 있는것
종료는 ctrl c
background process
눈에 안보이는것
백신같이 눈에 안보이는데 돌아가고 있는것
종료는 아이디를 알아야한다.
$ kill -9 pid
$ ps -ef | grep node
프로세스는 꼭 하나의 쓰레드를 가지고 있다.
node는 쓰레드를 추가하지 못한다.
1개의 프로그램을 실행 > 1프로세스
Thread
멀티 스레드 : 사람이 여러
멀티 프로세스 : 기계가 여러개
싱글 스레드: 쓰레드가 두개 내가 컨트롤 할 수 있는 쓰레드가 한개
(nodejs는 싱글스레드지만 멀티스레드처럼 복잡한 처리를 해주기 때문에 개발이 빠르다.
하나의 스레드만 작동하기 때문에 코드가 단조롭다.)
익스플로러와 크롬의 차이
익스플로러 = 멀티 스레드 >> 기계가 터지면 사람들도 짤림.
크롬 = 멀티 프로세스 >> 기계가 터져도 하나만 터지기에 다른것으로 대체가 가능
스레드끼리 연결되어 있으면 데이터 공유가 가능하다
프로세스는 불가능
통신이 되어 있으면 프로세스끼리 데이터 공유가 가능하다.
모듈
한 파일에 모든 소스코드를 적으면 불편하다.
그래서 단적인 예로 파일을 규칙에 맞게 쪼개기 시작한다.
모듈은 우리가 구현하려는 프로그램에 있어서 "작은 단위 " 이다.
const list = [
{
index:0,
subject:"아방이",
data:"22-12-05",
hit:0
}
]
module.exports = list
module.exports 는 list 라는 변수를 내보내서
require 을 했을 때 list 라는 변수만 보내겠다는 뜻.
view > list > 프로세스 실행 > view로 값을 받아옴
'nodejs' 카테고리의 다른 글
nodejs 게시판 (0) | 2022.12.20 |
---|---|
Express (1) | 2022.12.14 |
http tcp 미완.2 (0) | 2022.12.09 |
nodejs [3way handshake] (0) | 2022.12.07 |
nodejs [내장객체,케싱,내장모듈,osi7계층] (0) | 2022.12.06 |