01. HTTP의 이해 HTTP란? ==> 데이터를 주고 받는 양식 정의한 통신 규약 중 하나 매우 범용적인 양식을 가지고 있다. 따라서 전 세계에서 가장 많이 사용하고 있는 통신 규약이다. 통신규약이란? ==> 컴퓨터 사이에 데이터를 주고 받을 때 정해둔 약속 서버나 클라이언트(브라우저)끼리 의사 소통에서도 사용한다. 현대에 존재하는 대부분의 웹 서버가 HTTP를 기반으로 데이터를 주고 받는다. 따라서 우리는 매일 HTTP를 이용하고 있다 볼 수 있다. 다시 정리하면 네트워크 = 의사 표현의 수단 / 통신 규약 = 의사 표현의 방법 HTTP로 데이터를 주고 받기 ==> 1. Browser가 request(method는 GET메서드, 경로는 /index.html)를 보낸다. ==> 2. request를 ..
01. 동기(Sync) & 비동기 (Async) 동기에 대한 개념 먼저 실행된 코드의 결과가 나올때까지 대기하는 것을 말한다. 예시) 정원이 한번 태우면 5분이 걸리는 놀이기구에 30명이 정원이라 생각해보자. 5분 뒤에 탑승했던 사람들이 다 내리기 전까지는 탑승할 수 없으니 놀이기구 탑승/하차가 동기적으로 관리된다고 볼 수 있다. 비동기에 대한 개념 실행된 순서와 관계 없이 결과가 나온다. 예시) 정원이 30명인 맛집에 들어가기 위해 대기 손님이 있다고 가정하자. 식사를 마친 사람은 언제든 바로 나올 수 있으며 나온 사람의 숫자만큼 다시 입장이 가능하다. 따라서 맛집 입/퇴장이 비동기적으로 처리된다. Blocking Model & Non-Blocking Model Blocking Model - 코드의 실..
@ Node.js란? Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임 이벤트 기반, 논 블로킹 I/O 모델을 사용해 가볍고 효율적 Node.js 패키지 생태계인 npm은 세계에서 가장 큰 오픈 소스 라이브러리 생태계다. 다시 정리하자면 JavaScript를 브라우저가 아닌 컴퓨터에서 브라어저 없이 실행하게 도와주는 환경 @ Node.js를 사용해야 하는 이유...? 논 블로킹(Non-blocking) I/O, 싱글 스레드(Single Thread), 이벤트 루프(Event Loop)의 특성이 있다. 기존 블로킹(Blocking) I/O I/O는 데이터 입력(Input) / 출력(Output)을 뜻한다. Blocking - Linear programming, 코드하기 쉽고 ..
@ 데이터 타입의 종류(기본형과 참조형) ==> 구분 기준은 값의 저장 방식과, 불변성 여부 기본형(Primitive type): 값이 담긴 주소값을 바로 복제, 불변성을 띔 참조형(Reference type): 값이 담긴 주소값들로 이루어진 묶음을 가리키는 주소값을 복제, 불변성을 띄지 않음 @ 메모리와 데이터 메모리, 데이터 비트 1. 0과 1을 가지고 있는 메모리를 구성하기 위한 작은 조각을 의미 바이트 1. 비트 8개를 묶음 단위 메모리(memory : byte 단위로 구성 1. 모든 데이터는 byte 단위의 식별자인 메모리 주소값을 통해서 서로 구분이 된다. 2. Javascript의 메모리는 다른 언어의 여러 데이터 타입과 다르게 8byte로 이루어져 있어서 handling할 요소들이 많지 않..
@ RESTful API란? 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스 대부분의 비즈니스 애플리케이션은 다양한 태스크를 수행하기 위해 다른 내부 애플리케이션 및 서드 파티 애플리케이션과 통신해야 한다. 이런 부분에서 안전하고 신뢰할 수 있다. 효율적인 소프트웨어 통신 표준을 따른다. @ API란? 애플리케이션 프로그래밍 인터페이스(API)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의한다. 개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성한다. 웹 API는 클라이언트와 웹 리소스 사이의 케이트웨이라고 생각할 수 있다. [클라이언트] 웹에서 정보에 액세스하려는 사용자.(API를 사용하는 사람..
@ 미들웨어 사용 자체적인 최소한의 기능을 갖춘 라우팅 및 미들웨어 웹 프레임워크. Express 애플리케이션은 기본적으로 일련의 미들웨어 함수 호출이다. 미들웨어 함수는 request 오브젝트, response 오브젝트, 그리고 애플리케이션의 요청-응답 주기 중 그 다음의 미들 웨어 함수에 대한 액세스 권한을 갖는 함수이다. 다음으로 오는 미들웨어 함수는 일반적으로 next라는 이름의 변수로 표시된다. 미들웨어 함수가 수행하는 태스크 모든 코드를 실행 요청 및 응답 오브젝트에 대한 변경을 실행 요청-응답 주기를 종료 스택 내의 그 다음 미들웨어 함수를 호출 요청-응답 주기를 종료하지 않는 경우에는 next()를 호출하여 그 다음 미들웨어 함수에 제어를 전달해야 한다. 그렇지 않으면 해당 요청은 정지된 ..