자바 스크립트 엔진인 v8 엔진을 브라우저 내에서만 사용하는 것 이 아니라 바깥 환경에서도 사용할 수 있도록 하는 런타임(실행환경)
html(브라우저) --> src --> 브라우저에서만 실행
javascript를 브라우저 외의 환경에서도 응용할 수 있음.
http--> 노드에서 서버를 만들 수 있게 하는 것이 http 기반
express,미들웨어
fastify --> express의 상위호환
nestJS는 스프링처럼 객체지향을 기반(스프링과 똑같은 구조)
일종의 node js로 객체지향의 장점들을 흡수
nextJS---(o)
nextJS 12(get server side props)버전하고 13버전은 매우 큰 차이가 있다.
http
createServer()-> 서버 생성 메소드
writeHead()-> res message header작성
end()-> res의 body 작성
listen()-> 생성한 서버를 실행하고, 클라이언트를 기다리는 상태
그러나,현재에 이르러 http만을 이용하여 서버를 구성하는 것은 다양한 종속성을 요구하고 직접 구현해야하는 하드 코딩 요소가 굉장히 많이 존재
따라서 더 편리하게 웹서버를 구축할 수 있는 express나 nestJS와 같은 프레임쿼크를 사용하는 구현하는 경우가 많습니다.
하지만 결국 위 프레임워크도 모두 http 모듈을 기반으로 더 편리하게 구성.
express,미들웨어
npm i express
웹서버의 대부분의 기능을 express 하나로 모두 구현 가능
구현 불가능한 부분 조차 미들웨어를 사용하여 구현이 가능
nodemon
서버의 코드가 변경되었을 때 서버를 종료하지 않아도 알아서 서버를 재빌드
npm i -g nodemon
sudo npm i -g nodemon -> 글로벌 설치기 때문에 맥인 사람은 sudo를 붙인다.
파일 처리 모듈
readFile() 파일을 비동기적으로 불러옴
readFileSync()파일을 동기적으로 불러옴
writeFile()파일을 비동기적으로 씀
writeFileSync() 파일을 동기적으로 씀
비동기: then,catch(예외 상황)
동기: try,catch(예외상황)