FE
: web, mobile, desktoplink
: REST API, GraphQL, gRPCBE
: API Server, Database, InfrastructureAPI Server
: NestJS, Spring, RestAPIDatabase
: Postgresql, MySQL, NoSQLInfrastructure
: Cloud, k8s, DevOps누구나(오픈 소스)
여러OS(cross-flatform)
-> cross-flatform이란 MacOS, Linux, Window 에서 사용이 가능한 것javascript를 실행 가능(JS runtime)
-> Typescript 기반(JS runtime이 Typescript를 포함)구글에서 만든 V8
장착
Just in Time Compilation(JIT)
: 컴파일(장점) + 인터프리터(장점)
Compiled
: 한번에 변환하고 읽음(번역된 원서)Interpreted
: 한줄 한줄 변환하고 읽음(그때마다 통역사)자주사용하는 코드 -> Machine Code(compile turbofan)
자주 사용하지 않는 코드 -> Byte Code(interpret ignition)
Machine 코드
는 CPU가 이해할 수 있어 빠르고 Byte 코드
는 CPU가 이해하지 못해 느리다. 즉, 필요에 따라서 일부는 최적화를 하는 것Non blocking
: 단순작업들은 event loop
에서 바로 처리Blocking
: 시간이 걸리는 작업들은 event loop
가 worker thread
로 넘긴다. 예를 들면 I/O작업! 그리고 요청이 끝나는 대로 event loop
를 통해서 응답된다. request
Header
: 요청에 대한 정보(Body 보다 내용 많음), Host Cookie...Body
: 실제 로직상 필요한 Data따라서 Header
의 정보가 Body
보다 많습니다.
https(scheme):// ~host~ / ~path~ ? ~query parameter~
respone