개발자 면접 공부/네트워크&DB 5

블로킹 소켓 (Blocking Socket), 논 블로킹 소켓(Non-Blocking Socket)

오늘은 블로킹 소켓 과 논 블로킹 소켓에 대해 알아보겠습니다. 1. 블로킹과 논 블로킹 이것은 제가 예전에 개시했던 동기 비동기 블로킹 논블로킹 을 보시고 오시는걸 추천드립니다. https://chogyujin-study.tistory.com/51 블로킹(Blocking), 논 블로킹(Non-Blocking), 동기(Sync), 비동기(ASync) 오늘은 블로킹, 논 블로킹 추가로 동기, 비동기에 대해 알아보겠습니다. 동기&비동기 vs 블로킹&논블록킹 개념 차이 이 개념들을 처음 접하거나 컴퓨터 공학에 대해 잘 모르는 사람은 이 개념들 chogyujin-study.tistory.com 2. 블로킹 소켓 블로킹 소켓은 소켓 함수 호출 시 조건이 만족되지 않으면 함수는 리턴하지 않고 해당 스레드는 대기 상태..

소켓(socket) 통신

오늘은 소켓 통신에 대해 알아보겠습니다. 1. 소켓이란? 소켓(socket)은 프로세스가 드넓은 네트워크 세계로 데이터를 내보내거나 혹은 그 세계로부터 데이터를 받기 위한 실제적인 창구 역할을 한다. 그러므로 프로세스가 데이터를 보내거나 받기위해서는 반드시 소켓을 열어 소켓에 데이터를 써보내거나 소켓으로부터 데이터를 읽어야함 소켓은 프로토콜, IP주소, 포트 넘버로 정의된다. 프로토콜 : 통신 규약, 약속 IP : 전 세계 컴퓨터에 부여된 고유의 식별 주소 포트 : 네트워크 상에서 통신하기 위해서 호스트 내부적으로 프로세스가 할당받아야 하는 고유한 숫자이다. 한 호스트 내에서 네트워크 통신을 하고 있는 프로세스를 식별하기 위해 사용되는 값이므로, 같은 호스트 내에서 서로 다른 프로세스가 같은 포트 넘버를..

SQL vs NoSQL

오늘은 SQL 과 NoSQL에 특징과 장,단점에 대해 공부하겠습니다. SQL 과 NoSQL SQL과 NoSQL은 보통 관계형이냐 아니냐에 따라 달라집니다. SQL은 보통 관계형 데이터 베이스라고 합니다. 그럼 반대인 NoSQL은 비 관계형 데이터 베이스입니다. 각각에 특징을 살펴 보도록 하겠습니다. SQL SQL은 관계형 DB입니다. RDBMS(Relational DataBase Management System) 에서 데이터를 저장, 수정, 삭제 및 검색이 가능합니다. RDBMS에는 핵심적인 특징이 있습니다. 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다. 데이터는 관계를 통해 여러 테이블에 분산된다. 여기서 스키마란 DB의 명세표라고 생각하면 쉽습니다. 데이터는 테이블에 레코드로 저장되는데, ..

IOCP 서버

오늘은 IOCP서버에 대해 알아보겠습니다. IOCP IOCP는 Window 환경에서 작동하는 제일 흔히 쓰이는 논 블로킹 프로세스이다. 최소한의 쓰레드로 최대한의 효율을 뽑을 수 있다. 이름의 뜻을 알아보자. IOCP는 IO Completion Port의 약자로 입출력 완료 포트라는 뜻이다. 여기서 사용하는 Port는 통신에서 사용하는 포트와 비슷한 의미로 어떤 항구, 그러니깐 목적지라는 의미이다. 하지만 직접적으로 통신에서 사용하는 포트와는 전혀 다른 포트로 처음 공부할 때는 혼란이 올수 있다. 그럼 논 블로킹이란 무엇인가? 블로킹 vs 논 블로킹 처리되어야 하는 작업이, 전체적인 작업 '흐름' 을 막느냐 안막느냐에 대한 관점 제어권이 누구한테 있는것느냐의 관심 블록킹(Blocking) 자신의 작업을 ..

REST, REST API, RESTFul API

오늘은 RESTFul API에 대해 공부하도록 하겠습니다. REST란? REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미합니다. 즉 REST란 1. HTTP URI(Uniform Resource Identifier)를 통해 자원 을 명시하며 2. HTTP Method(POST, GET, PUT, DELETE)를 통해 3. 해당 자원 (URI)에 대한 CRUD Operation을 적용하는 것을 의미합니다. CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create, Read, Update, Delete를 묶어서 일컫는 말입니다. REST의 기본 구성 REST는 다음과 같은 3가지로..