DOM - node Overview
in Dev on Java Script
in Dev on Java Script
SemVer(Semantic Versioning:유의적 버전) : 패키지 버전 번호를 어떻게 정하고 올려야 하는지 명시하는 규칙
npm(Node Package Manager)
서버에 요청을 보낼 때 주소를 통해 요청의 내용 표현. (주소가 /inde.html이면 서버의 index.html을 보내달라는 뜻) 요청의 내용이 주소를 통해 표현되므로 서버가 이해하기 쉬운 주소를 사용해야한다.
서버는 클라이언트가 있기에 동작한다. 클라이언트에서 서버로 요청(request)을 보내고, 서버에서는 요청의 내용을 읽고 처리한 뒤 클라이언트에 응답(response)한다. 따라서 서버는 요청을 받는 부분과 응답을 보내는 부분이 있어야한다.
쿠키 : 서버와 클라이언트간 통신함에 있어 서비스 지속성(로그인 등)을 위한 목적으로 클라이언트 측에 저장하는 작은 기록 정보.
https : https 모듈은 웹 서버에 SSL 암호화를 추가. GET / POST 요청 시 오가는 데이터를 암호화화여 중간에 다른 사람이 요청을 가로채더라도 내용을 확인 할 수 없게 한다.
cluster : 기본적으로 싱글 프로세스를 동작하는 NODE가 CPU 코어를 모두 사용할 수 있게 해주는 모듈. (멀티 노드 프로세스, 병렬 실행, 요청 분산) 서버에 무리가 덜 가고 성능이 좋아진다. 하지만 메모리를 공유하지 못하는 등의 단점도 있다. 세션을 메모리에 저장하는 경우 문제가 될 수 있다. 이는 레디스 등의 데이터베이스를 도입하여 해결 가능하다.
비동기 메서드 사용시 fs 메서드를 여러번 실행해도 백그라운드에서 동시에 처리되는데, 바로 스레드풀 덕분이다. fs외에도 내부적으로 스레드 풀을 사용하는 모듈로는 crypto, zlib, dns, lookup등이 있다.
노드는 대부분의 method를 비동기 방식으로 처리한다. 하지만 몇몇 method는 동기 방식으로 사용 가능하다.(특히 fs 모듈)
fs module : 파일 시스템에 접근하는 모듈. 즉 파일을 생성/삭제/읽기/쓰기, 폴더 생성/삭제 가능.
노드에서는 예외 처리가 정말 중요하다. 예외란 보통 처리하지 못한 에러를 가리킨다. 예외들은 실행중인 노드 프로세스를 멈추게 만든다.
on(‘data’, 콜백) : ‘data’라는 이벤트가 발생할 떄 콜백 함수 호출. on(‘end’, 콜백) : ‘end’라는 이벤트가 발생할 떄 콜백 함수 호출.
fs는 단순히 파일 읽기/쓰기 뿐만 아니라 파일을 생성하고 삭제할 수 있으며 폴더를 생성하고 삭제할 수 있다.
child_process : 노드에서 다른 프로그램을 실행하고 싶거나 명령어를 수행하고 싶을 때 사용하는 모듈. 즉 다른 언어의 코드를 실행하고 결괏값을 받을 수 있다. 노드 프로세스 외에 새로운 프로세스(child_process)를 띄어서 명령을 수행하고 노드 프로세스에 결과를 알려준다.
readFile 등에서 받아온 data를 data.toString()으로 변환하는 이유는 data가 buffer이기 때문이다.
worker_threads : 노드에서 멀티 스레드 방식으로 작업 가능한 모듈
utill : 각종 편의 기능을 모아둔 module