생각기록
노드.js 본문
클라이언트 서버를 같이 한다.
node.js
구글에서 개발한 javascript 런타임
얘는 언어는 아니다.
가볍고 효율적이다.
npm 패키지는 세계에서 가장 큰 오픈 소스 라이브러리
*서버를 만들거나 파일을 관리하거나 할때 npm패키지 사용할 것임
런타임이란?
프로그래밍 언어가 구동되는 환경
javascript 의 런타임 환경은 웹 브라우저만 존재 했었음
이제는 서버단 언어로 사용하기 위해 나온것이 node.js
웹 브라우저 없이 실행 가능 (문서객체 사용못함)
특징
자바스크립트 언어 사용
Single Thread (싱글 스레드) = 하나의 작업밖에 못한다.
node.js는 예외(에러)를 처리하지 못하면 프로그램이 아예 중단(죽음)됨
하나가 죽으면 전체가 죽게된다.
예외처리의 중요성!
*싱글 스레드는 하나씩만 작업이 가능하면 = 순차 실행
*멀티 스레드는 각각의 행동이 동시에 가능하다 = 병행 실행
비동기 I/O 방식
동기와 비동기란?
동기
다섯개의 일을 하나씩 순차적으로 일하게 되는것 (차례가 정해져 있다)
어떤 요청을 서버에게 보내면, 결과가 오고나서 다음요청을 보낸다
장점: 설계가 매우 간단, 직관적 (우리가 설계한대로 일어나서 흐름을 알기 쉽다)
단점: 결과가 올때까지 아무것도 못하고 기다리고있어야 한다. (다음요청 불가능..)
비동기
차례 시작 x, 요청을 기다리지 않고 다른 활동을 한다.
요청을 보낼때 한
node.js 비동기로 작동해서, 우리가 강제로 순서를 짜줘야 한다.
장점: 요청에 따른 결과가 반환되는 시간 동안 다른 작업을 수행 가능
단점: 동기식보다 설계가 복잡하다. (순서 예측 x, 설계를 잘해야 한다. )
로그인하고 마이페이지 갔을 때 우리 정보 가져오고 장바구니를 가져온다 치면,
정보가 없을때 장바구니를 가져올 수 없다.
비동기를 처리하면 장바구니 조회하게 되서 아무것도 안나오게 될 것이다.
우리가 아는 웹사이트는 대부분 동기 방식이고,
스트리밍, 채팅 서비스는 비동기방식이 어울린다.
Node.js 사용해보기
사용전에 설치를 한다.
1. 집의 로컬 컴퓨터와
2. 서버에 둘다 node.js 설치
로컬 설치
구글에서 node.js 설치 - 왼쪽 안정적, 신뢰도 높은 얘 선택하면 되는데..... 잠깐 확인하세요!
현재 18버전까지 나왔는데
16버전으로 해야 서버랑 맞추기 쉬워서 집에서는 아얘 처음부터 밑의 링크를 까는 것을 추천드린다.
https://nodejs.org/dist/v16.18.1/
Index of /dist/v16.18.1/
nodejs.org
그래도 만약 18버전을 깔았어도 cmd로 로컬 버전을 서버에게 맞추면 된다.
깔렸는지 확인겸, 버전 확인!
cmd를 켜서 아래 명령어 쳐서 버전 확인하기
node -v
npm -v
로컬에는 현재 18버전 node가 깔려있다.
*npm이란?
자바스크립트로 개발된 각종 모듈의 설치, 업데이트, 구성, 제거 과정을 자동화하여
관리해주는 기능
서버에 설치
1. putty에 들어가서 서버 로그인 하기
2. 아래있는 것을 한줄씩 복사 해서 우클릭 앤터 (붙여넣기)
3. 끝나고 나서 다음줄 똑같이 복사 붙이기
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
* 셋다 설치했을때 오류가 생기면, apt-get remove nodejs 로 파일을 지워주고 다시 깔아야 한다.
apt-get install nodejs
apt-get install npm
순서대로 깔기
위에 borken packages라고 떠서 걱정했는데,
npm파일을 두번 깔아서 생긴 충돌같다고 들었다.
4. 확인해보기
확인을 해봐서 버전이 제대로 뜨면 상관없이 제대로 깔렸다!
*18버전, 서버버전과 로컬버전이 안맞는 사람만 아래 참고하세요
로컬을 서버버전에 맞게 셋팅하는 법
Window 에서 node.js 버전 변경하기
- https://github.com/coreybutler/nvm-windows 로 가서 nvm 다운로드
2.nvm 설치 ( nvm version 으로 버전 확인 )
3.nodejs 16 버전 설치
cmd에다가
nvm install 16
위의 로컬 버전과 아래 서버에 있던 버전과 동일 하게 떠야한다.
node.js만의 콘솔
REPL 사용하기
에서 Javascript 코드 입력 ( 간단한 코드 테스트 용도 )
한줄 한줄 작성해야 하기 때문에 사용은 하지 않는다.
'SeSAC 풀스택 > Nodejs' 카테고리의 다른 글
2022-11-22 Express, ejs 수업 (0) | 2022.11.23 |
---|---|
2022_11_19_프로미스 (0) | 2022.11.19 |
callback (0) | 2022.11.17 |
2022-11-17 node.js 모듈, 구조 분해 할당, callback (0) | 2022.11.17 |
2022-11-12 서버 (0) | 2022.11.12 |