0105 TIL

looggi·2023년 1월 5일
0

스파르타 내배캠 AI-3

목록 보기
114/130
post-thumbnail

컴파일: 프로그래밍 언어는 주로 고급 언어로, 기계(컴퓨터)가 바로 이해할 수 없다. 따라서 고급 언어로 작성된 소스 코드를 기계어로 변환하는 과정

  • 컴파일 타임 에러: Syntax error, Type error, 파일참조 오류
    컴파일과정을 마친 프로그램은 사용자에 의해 실행되어 지며, 이러한 응용프로그램이 동작되어지는 때를 런타임(Runtime)
  • 런타임 에러: 어떤 소스코드가 이미 실행가능한 프로그램으로 컴파일 되었다 할지라도 이것은 여전히 프로그램의 실행중에 버그를 일으킬 수 있다. 예를 들자면, 예상치 못한 오류 또는 충돌로 동작하지 않을 수 있는데 이렇게 프로그램이 실행중에 발생하는 형태의 오류를 런타임오류

자바스크립트는 인터프리터 언어라 컴파일 타임이 없다 ≠ 컴파일을 하지 않는다
컴파일 과정이 없는 고급 언어는 존재할 수 없다
브라우저만이 자바스크립트의 유일한 런타임이었는데
Nodejs가 브라우저 밖에서 자바스크립트를 사용할 수 있는 환경을 제공한다. 이로 인해 자바스크립트로 데스크탑 앱도 만들고, 서버도 만들고 할 수 있다.
백엔드 로직도 직접 작성하고 싶은 프론트엔드 개발자에게 추천
Nodejs 자체는 멀티 쓰레드
이벤트 루프가 단일 쓰레드

Nodejs로 백엔드를 만든다면

  • 단일 스레드이기 때문에 하나의 커다란 요청보다 간단한 요청 처리에 어울린다
  • 비동기로 요청을 처리하기 때문에 처리가 끝나면 바로 응답 응답 속도가 빠르다 (async, await)
  • 데이터 포맷으로 JSON을 사용할 때

멀티 쓰레드 환경에서 발생할 수 있는 복잡한 시나리오를 신경 쓸 필요가 없으며 비동기 처리를 통해 쉽게 여러 요청을 처리할 수 있다.

profile
looooggi

0개의 댓글