시작하기 전에...Node.js는 폴더를 구조적으로 만드는 것이 매우 중요하다. 폴더명도 직관적으로 하고, 폴더 위치들도 구조적으로 잘 짜야한다!
폴더 하나하나를 만들고 그걸 npm적용 시켜줄 때 늘, 터미널에서
npm init -y
를 해주자!(한번에 적용가능)
만약,package.json
안의 내용 중 고칠게 있으면 직접 파일에 들어가서 고쳐도 되고 처음에 터미널에서 적용시켜줄때,npm init
만 하면 하나하나 고칠 수 있다.
서버를 시작할때는 폴더안에 내용이 수정될때마다 새로 시작해줘야한다.
터미널에서node [파일명]
하고, 웹페이지 새로고침 하면 최근작업한 것 까지 보여진다.
서버를 중단하려면control + c
하면 된다.
📌 런타임?
프로그래밍 언어가 구동되는 환경
원래는 javascript의 런타임 환경은 웹 브라우저만 존재 했었지만, 이를 가능케 하기 위해 나온 것이 node.js 이다.
(1) 윈도우
https://nodejs.org/en
접속해서 LTS 버전으로 다운받으면 된다.
(2) MAC
2-1. HomeBrew 설치
터미널에서 아래 코드를 복붙만 하면 된다.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2-2. Node.js를 설치
터미널에서 입력
brew install node
2-3. Node.js 버전확인
잘 설치되었는지 확인하기 위해서 버전 확인을 해보면 된다.
위아래 두개 다 각각 따로 입력해보면 된다!
node -v
npm -v
📝 npm이란?
(1) npm init
: 프로젝트 시작할때 명령어, 문답식으로 입력함
(2) npm init --y
: package.json이 생성될때 기본값으로 생성한다.
(3) npm install 패키지이름
: 프로젝트에서 사용할 패키지를 설치하는 명령어, 설치된 패키지의 이름과 정보는 package.jsondml dependencies에 입력된다.
🖊️ package.json란?
(1) 간단한 로직
(2) 대량의 클라이언트가 접속하는 서비스(입출력이 많은 서비스)
(3) 빠른 개발 요구
(4) 빠른 응답시간 요구
(5) 비동기 방식에 어울리는 서비스(스트리밍 서비스, 채팅 서비스 등)
(1) 자바스크립트 언어 사용
(2) Single Thread
2.Thread(스레드)
Singel Thread
에러를 처리하지 못하는 경우 멈춘다.
(3) Non-blocking I/O
• 동기 ( Synchronous )
• 데이터의 요청과 결과가 한 자리에서 동시에 일어나는 것
• 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어진다.
• 한 요청에 서버의 응답이 이루어질 때까지 계속 대기해야 한다.
• 비동기 ( Asynchronous )
• 동시에 일어나지 않는 것
• 요청한 후 응답을 기다리지 않고 다른활동을 한다.
📌 I/O 작업 : 파일 시스템 접근 ( 읽기, 쓰기, 만들기 등 ), 네트워크 요청
📌 Node.js는 표준 라이브러리의 모든 I/O 메서드를 비동기 방식으로 제공한다.
(4) 비동기적 Event-Driven
• Event-Driven
: 이벤트가 발생할 때 미리 지정해둔 작업을 수행
Ex) 클릭, 네트워크 요청, 타이머 등
• 이벤트 리스너 (Event Listener)
: 이벤트 등록 함수
• 콜백 함수 ( Callback Function )
: 이벤트가 발생했을 때 실행되는 함수
이제 Node.js 에 본격적으로 입문했다! 이번엔 설치하는 방법과 개념에 대해서만 다뤘고 다음 파트부터는 모듈에 대해서 다뤄볼 예정이다.