정적 페이지 Static Web Page
미리 작성돼 확정된 페이지로, 실시간 정보나 맥락을 반영 못 함
동적 페이지 Dynamic Web Page
맥락이나 상황을 반영할 수 있는 페이지
ECMAScript
자바스크립트 개발 방식 표준. 브라우저 마다 저 마다의 언어를 개발하며 발생한 불편을 막기 위해 ECMA International에서 제정하고, 꾸준히 변경하고 새 기능 추가된 버전 업데이트되고 있음
Node.js
Node.js란
Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임 웹 프레임워크 기술
자바스크립트를 브라우저없이 실행하게 도와주는 환경
이벤트 기반이고, 논 블로킹 I/O 모델을 사용해 가볍고 효율적
npm은 세계에서 가장 큰 오픈 소스 라이브러리 커뮤니티
libuv : 비동기 I/O 작업을 수행할 수 있게 해주는 라이브러리
Node.js의 특성
Non-Blocking Input/Output
- I/O : Input / Ouput, 프로그램의 실행 흐름을 제어하는 방식
- 블로킹 : 특정 작업을 수행하는 동안 다른 작업을 중단시킴. 한 번에 하나의 작업만 처리할 수 있으며, 호출된 함수가 자신의 작업을 모두 마칠 때까지 호출된 다른 함수에게 제어권을 넘겨주지 않음
- 논블로킹 : 호출이 완료되기를 기다리지 않고 다음 작업으로 즉시 넘어갈 수 있는 방식. 호출된 함수의 작업 완료 여부와 상관없이 즉시 다른 호출된 함수에게 제어권을 반환
Single Thread
- 스레드 : 프로그램이 동작할 때, CPU 또는 프로세서를 사용하는 단위. 여러 스레드를 사용하면 여러 작업을 동시에 처리할 수 있어 연신 시간을 단축시킬 수 있지만, 그만큼 복잡성을 증가시키고 리소스를 많이 소모함
- Race condition : 동시성 문제, 여러 스레드가 공유하는 자원에 대해 동시접근을 하는 경쟁상태를 의미
- Node.js는 싱글 스레드임에도 불구하고 I/O 작업이 발생한 경우 이벤트 루프를 통해 여러 작업을 효율적으로 동시 처리
Event Loop
콜스택과 이벤트 큐를 관찰하면서, 콜스택이 비어있고 이벤트 큐에 작업이 있다면 그 작업을 콜스택으로 이동하는 역할
시간이 오래 걸리는 작업을 이벤트 큐에 넣어 비동기적으로 처리하고, 그 동안 콜스택에서 다른 작업들을 계속 처리
IDE (Integrated Development Environment)
통합 개발 환경 : 여러 개발자 툴을 결합해 모든 작업을 한 프로그램 안에서 처리할 수 있는 환경을 제공하는 소프트웨어
REPL 환경
Read Evaluate Print Loop
입력받은 코드를 읽어들여 메모리에 저장하고, 평가된 값을 출력함, 특정 신호를 입력받기 전까지 이 과정을 반복
사용자가 입력한 코드의 결과를 즉시 확인할 수 있게 함
모듈과 패키지
- 코드의 재사용성 높이기 위해 작성된 독립적인 코드 조각인 모듈
- 모듈을 포함하고 있거나 다른 패키지에 의존하고 있는 코드의 집합인 패키지
npm이나 yarn같은 패키지 매니저를 통해 업로드해 다른 개발자들과 공유하는 모듈이 패키지
의존 관계 : 패키지가 다른 패키지의 기능을 필요로하는 경우. A가 B를 필요로하면 A는 B에 의존
'TIL&WIL' 카테고리의 다른 글
241120 TIL - Array.slice(), HTTP메서드 PUT & PATCH, 멱등성 (0) | 2024.11.20 |
---|---|
241119 TIL - JSON, MIME type (1) | 2024.11.19 |
241117 TIL - 개인과제05 (0) | 2024.11.18 |
241116 TIL - 개인과제04 (2) | 2024.11.16 |
241114 TIL - for...of, 기본값매개변수, 배열에서 특정값 찾기, 개인과제03 (9) | 2024.11.14 |