전체 글

전체 글

    [Node.js] 이벤트 루프(Event Loop)

    [Node.js] 이벤트 루프(Event Loop)

    1. 이벤트 루프(Event Loop) Node는 Javascript Code의 맨 위부터 한 줄씩 실행한다. 함수 호출 부분을 발견했다면 호출한 함수를 호출 스택(Call Stack)에 넣는다. function first(){ second(); console.log(‘1’); }; function second(){ third(); console.log(‘2’); }; function third(){; console.log(‘3’); }; first(); anonymous 함수는 처음 실행 시에 전역 컨텍스트(global context)를 의미한다. * 컨텍스트는 함수가 호출되었을 때 생성되는 환경을 의미한다. * Javascript Code는 실행 시 기본적으로 전역 컨텍스트 안에서 돌아간다고 생각하는..

    [Node.js] 이벤트 기반(Event-driven)

    [Node.js] 이벤트 기반(Event-driven)

    1. 이벤트 기반(Event-driven) 이벤트 기반이란 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식이다. 이벤트로는 클릭이나 네트워크 요청 등이 있을 수 있다. 이벤트 기반 시스템에서는 특정 이벤트가 발생할 때 무엇을 할지 미리 등록해두어야 한다. 이를 이벤트 리스너(Event Listener)에 콜백(CallBack) 함수를 등록한다고 표현한다. 이벤트가 발생하면 이벤트 리스너에 등록해둔 콜백 함수를 호출하며, 발생한 이벤트가 없거나 발생했던 이벤트를 다 처리하면, Node는 다음 이벤트가 발생할 때까지 대기한다. 이벤트 기반 모델에서는 이벤트 루프(Event Loop)라는 개념이 등장한다. 여러 이벤트가 동시에 발생했을 때 어떤 순서로 콜백 함수를 호출할지를 이벤트 루프가 판단한다.

    [Node.js] Node.js와 Node의 내부 구조

    [Node.js] Node.js와 Node의 내부 구조

    Node.js란 : Node.js는 Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임이다. 1. 런타임 런타임은 특정 언어로 만든 프로그램들을 실행할 수 있는 환경을 뜻한다. 따라서 Node는 Javascript Program을 컴퓨터에서 실행할 수 있다. 2. Node의 내부 구조 * Node는 V8과 더불어 libuv라는 Library를 사용하며, V8과 libuv는 C와 C++로 구현되어 있다. * libuv Library는 Node의 특성인 이벤트 기반, 논 블로킹 I/O 모델을 구현하고 있다.

    [Spring] Null-safety

    Null-safety Spring framework5에 추가된 Null 관련 어노테이션 @NonNull @Nullable @NonNullApi (패키지 레벨 설정) @NonNullFields (패키지 레벨 설정) 목적 (툴의 지원을 받아) 컴파일 시점에 최대한 NullPointException을 방지하는 것