: Client, server간 데이터를 주고받기 위한 통신 Socket OSI에서의 L4계층(TCP 또는 UDP를 이용하기 위한 수단. 일종의 창구 역할) Transport layer 전통적인 통신 방식. 통신의 end point 바이트 스트림으로 통신 client-server...
임계영역(Critical section)
: 멀티 스레드 환경에서 고려해봐야 할 영역. 동일한 자원에 접근할 때 해당 영역을 임계영역이라고 함. 임계영역 문제 다른 스레드에서 사용할 공유자원을 변경해 의도치 않은 사이드이펙트를 얻게 되는 경우 임계영역을 공유해 효율을 올리며(동시성), 부작용을 막아 적절히 함께 사용할 수 있도록 프로토콜 설계 임계영역문제를 해결하기 위...
Hoisting
: 사전적 의미로 “끌어올리기”. 선언되는 모든 변수는 호이스트된다.(끌어올려진다) 특징 ECMA2015(ES6). 2015년도 이후로 나왔다.(let, const, 화살표함수, 디스트럭쳐링과 더불어) 물리적으로 코드가 옮겨지는 것이 아니고, 컴파일 단계에서 변수 및 함수 선언이 메모리에 저장되는 것 foo("abc"); func...
OSI(Open System Interconnection) 7계층
: 각 계층별 기능과 통신의 과정을 표준화해 네트워크를 편리하게 이해하기 위한 목적으로, 실무적으로, 교육의 목적으로 이용될 수 있도록 만든 모델 캡슐화 아랫층으로 데이터를 넘길 때 각각의 레이어에서 붙일 수 있는 헤더를 붙이는 과정 윗 층(어플리케이션) HTTP 개발자는 아랫층 소프트웨어에 헤더가 붙는 과정을 ...
CLI
기초 / : Root 디렉토리 pwd : 현재 디렉토리 .... --help echo ~~~ : ~~~를 화면에 표준 출력(stdout) 디렉토리 삭제할 때 -r(recursively) touch aaa.txt : aaa.txt 만들기 grep : 내가 원하는 키워드가 포함되어있는 행을 찾아주는 명령어 tail -f...
NPM CLI
기본 CLI npm init : package.json 생성 npm install : 패키지 설치 현재의 package.json에 맞게 모듈 맞춰줌 --dev 를 붙이면 dev dependencies 에 등록된다. 프로덕션 환경에서는 적용되지 않음? ...
TCP / IP 프로토콜의 4계층
OSI 계층과는 층을 구분하는 것이 다르고 실제 하는 일은 같다고 보면 된다. 1계층: 네트워크 인터페이스 계층 : TCP/IP 패킷을 받고, 보내는 역할 OSI의 1, 2계층 에러를 검출하는 역할, 물리적 목적지(mac 주소)를 알아내는 역할 2계층: 인터넷 계층 : Routing 역할로 목적지까지의 전달...
Javascript 기초, 문법
JavaScript 타입 시스템이 없는 동적 프로그래밍 언어. 따라서 런타임 에러가 많이 발생할 수 있다. RTE: 프로그램에서 수행할 수 없는 동작을 시도할 때 발생 컴파일 error: 컴파일 타임에 발생. 주로 문법적 오류 비교적 유연하게 개발할 수 있는 환경 제공 ...
Kafka 이해하기 (vs rabbitMQ)
RabbitMQ와 가장 큰차이: Consumer가 Broker로부터 메시지를 pull하는 방식 single consumer가 아닌 multi consumer를 염두에 두고 설계되었기 때문에 그러한 환경에서 rabbitMQ보다 성능이 좋다. RabbitMQ에서는 하나의 일을 하나의 consumer가 처리하기 위해...
Web Socket이란
: HTML 5 표준 기술로, 하나의 HTTP 접속을 통해 클라이언트, 서버 간 실시간 양방향 연결 채널을 구성. Web hook: 양방향 통신이기 때문에 서버쪽이 업데이트 되는 상황에서도 client쪽 화면을 refresh해줄 수 있다. 기존 방식 (client가 server로 AJAX 요청. 단방향) Tradition...