전체 글
-
[Node.js] 동기와 비동기, 블로킹과 논블로킹언어/Node.js 2020. 4. 1. 17:19
Blocking I/O VS NonBlocking I/O 호출되는 함수가 바로 리턴하느냐 마느냐의 차이 Blocking I/O 호출된 함수가 자신의 작업을 모두 마칠 때까지 호출한 함수에게 제어권을 넘겨주지 않고 대기하게 만든다. NonBlocking I/O 호출된 함수가 바로 리턴해서 호출한 함수에게 제어권을 넘겨주고, 호출한 함수가 다른 일을 할 수 있는 기회를 줄 수 있다. 동기(Synchronous) / 비동기(Asynchronous) Synchronous/Asynchronous는 호출되는 함수의 작업 완료 여부를 누가 신경쓰냐의 차이 동기(Sync) 호출하는 함수가 호출되는 함수의 작업 완료 후 리턴을 기다리거나, 또는 호출되는 함수로부터 바로 리턴 받더라도 작업 완료 여부를 호출하는 함수 스스..
-
[Node.js] 구조 및 동작 원리언어/Node.js 2020. 4. 1. 16:29
Node.js의 구조 및 동작 원리 Node API가 처리할 요청과 비동기 작업을 이벤트 큐에 넣는다. 단일 스레드가 이벤트 루프를 돌면서 우선순위가 높은 이벤트를 이벤트 큐에서 꺼내어 수행한다. (요청 완료 시간이 짧을수록 우선순위가 높다.) 이벤트에 블로킹 I/O가 있다면, 백그라운드에 있는 스레드 풀에서 스레드를 꺼내 이곳에서 별도로 처리된다. 그외는 꺼낸 이벤트(요청)을 실행한 후 콜백함수를 이벤트 큐에 추가한다. 이벤트 루프 or 그외 스레드에서 콜백함수가 실행되면 다음 동작 중 하나를 수행한다. 응답 보내기 다른 이벤트 스케줄링 종료 이 과정은 이벤트 큐에 있는 이벤트가 모두 처리될 때까지 진행된다.
-
[Node.js] 특징 및 장단점언어/Node.js 2020. 4. 1. 16:20
Node.js 특징 Node.js는 Single-Thread의 non-blocking I/O 이벤트 기반 비동식 방식으로 작동한다. JavsScript 엔진(V8 Engine)으로 빌드 된 JavaScript 런타임이다. 따라서, 사용자의 요청은 한 곳에서 받지만 작업은 실질적으로 멀티쓰레드로 운영하여 결과를 구현한다. 예를들어, 푸드코트의 경우 주문은 한 곳에서 받지만 음식은 각 입점된 식당에서 만든다. 음식이 완성된 순서대로 각 식당에서 호출벨을 통해 손님을 부르고 손님은 음식을 픽업하게 된다. 여기서, 계산을 담당하는 직업은 싱글스레드이고, 각 요리를 완성해 벨을 호출하는 식당들은 비동기 방식이다. 입력은 하나의 스레드에서 받지만 순서대로 처리 하지 않고 먼저 처리된 결과 값을 이벤트로 반환해주는 ..
-
[OSI 참조 모델과 TCIP/IP 기초편] 서브넷 마스크카테고리 없음 2020. 3. 26. 22:07
서브넷 마스크 서브넷 마스크는 필요한 네트워크 주소만 호스트 IP로 할당 할 수 있게 만들어 네트워크 낭비를 방지한다. 네트워크가 대규모가 되면 단일 네트워크로서 관리하기가 어렵다. 특히, 브로드캐스트라는 네트워크 전체를 향해 발신하는 데이터 전송이 발생한 경우 본래 필요가 없는 범위까지 쓸데없이 회선을 사용해 버리기 때문에 이는 네트워크 전체의 효율 악화로 이어진다. 서브넷이란 본래는 하나여야 하는 네트워크를 작은 단위로 분활한 것을 가리킨다. 서브넷 마스크란 이 서브넷을 표현하기 위한 값으로, IP주소의 상위 몇 비트까지를 네트워크 주소로 사용할지를 정의하기 위해 사용한다. IP 주소는 네트워크 주소부와 호스트 주소부로 나뉜다. 서브넷 마스크를 사용하면 이 호스트 주소 부분의 몇 비트를 네트워크 주소..
-
[OSI 참조 모델과 TCP/IP 기초편] IP 주소(IPv4, IPv6)네트워크 2020. 3. 26. 21:05
1. IP 주소 IP를 기반으로 하는 네트워크에서 한 대의 컴퓨터마다 할당되어 있는 식별번호 32비트 수치로 표현하고, 8비트씩 4개로 나눠서 각각을 10진수로 표기 ex)182.168.0.1 IP 주소의 내용은 네트워크별로 나뉘는 '네트워크 주소'부와 그 네트워크 안에서 컴퓨터를 식별하기 위한 '호스트 주소'부가 있다. 통신할 때 상대를 특정하기 위해 필수적인 번호이므로 각각의 컴퓨터에 할당되는 값은 중복되어서는 안 된다. 하지만, 32비트 값으로 표현을 하기 때문에 표현할 수 있는 값의 범위가 정해져 있어 현재는 이 수가 부족할지도 모른다는 우려가 나오고 있다. 따라서 차세대 규격으로 128비트 값으로 표현하는 IPv6로 옮길 것을 권장한다. 2. IPv4 현재 널리 보급되어 있는 IP이다. 32비트..
-
[OSI 참조 모델과 TCP/IP 기초편] 패킷네트워크 2020. 3. 26. 20:41
패킷 컴퓨터 통신을 할 때 작게 분할된 데이터 데이터 덩어리를 패킷이라 부른다. 큰 데이터를 분할하지 않고 네트워크상으로 흘려보내면 그 데이터가 회선을 모두 점유해 버려서 다른 기기가 전혀 통신할 수 없게 되는 문제가 발생한다. 그렇기 때문에 통신 데이터를 패킷이라는 단위로 작게 분할하여 회선을 공유한다. 데이터를 패킷으로 분할하여 송수신하는 통신 방식을 패킷 통신이라 한다. 패킷에는 반드시 보내는 곳과 받는 곳의 IP 주소가 속성 정보로 추가되어야 한다.
-
[OSI 참조 모델과 TCP/IP 기초편] TCP와 UDP네트워크 2020. 3. 26. 18:49
1. TCP (Transmission Control Protocol) 제 4계층(전송 계층)에 위치하는 네트워크 프로토콜로, 신뢰성이 높고 확실한 데이터 통신을 보증한다. 즉, 데이터 결손이 없으며 상대방에게 확실히 전달되는 것을 의미한다. TCP는 제 5계층(세션 계층)이상의 프로토콜로부터 통신 데이터를 받아 이를 패킷으로 분할한다. 그리고 그 패킷을 제 3계층(네트워크 계층)인 IP에 전달하여 상대방에게 전달되도록 한다. 2. TCP의 신뢰성 확보 (1) 데이터를 패킷으로 분할할 때 시퀀스 번호를 붙여 두고, 수신 측에서 이 번호를 체크하여 필요하면 정렬을 하여 패킷의 순서가 올바르게 되도록 보증 (2) 수신 측에서는 반드시 수신했다는 것을 나타내는 통지 패킷(ACK 패킷)을 송신 측에 돌려보냄 (3..
-
[OSI 참조 모델과 TCP/IP 기초편] TCP/ IP네트워크 2020. 3. 26. 01:36
1. IP란 무엇인가? 제 3계층(네트워크 계층)에 위치하는 네트워크 프로토콜로 각 기기에 주소를 할당하고 그 주소를 바탕으로 데이터를 전송하기 위한 프로토콜 IP는 송신 데이터가 되는 패킷을 TCP나 UDP와 같은 상위 계층으로부터 받으면 IP 헤더라는 정보를 추가하여 네트워크로 내보낸다. IP 헤더란 송신자와 수신자의 IP 주소를 중심으로 한 정보의 집합으로 패킷이라는 소포에 붙어있는 짐표와 같은 역할을 한다. 2. TCP/ IP란 무엇인가? 인터넷 세계에서 표준으로 사용되는 네트워크 프로토콜로 OSI 참조 모델의 제 3계층(네트워크 계층)의 IP를 중심으로 한 여러 프로토콜의 집합체를 총칭하여 부르는 것 주로 제 4계층(전송 계층)의 TCP와 조합하여 구성되며, 인터넷상의 대표적인 서비스인 HTTP..