제 점수는요
(1) Blocking - 조건 만족이 되지 않는다면 함수는 리턴하지 않고 해당스레드는 Wait State를 만족하게 되면서, 애플리케이션은 더이상 진행되지 않는다. - 예를 들어, 블로킹 소켓을 사용한 서버라고 가정하는 경우, 서버의 역할상 동시다발적으로 복수의 클라이언트가 접속하여 서비스를 이용하는데, 블록킹 소켓을 사용하면 순차적으로 클라이언트의 접속을 받아들여 작업하고 해당 작업이 완료돼야 다음 접속에 대한 작업을 할 수 있다. - 이를 해결하기 위해 멀티쓰레드 방식을 이용한다. 각 클라이언트마다 각 쓰레드를 하나씩 생성하는 것이다. - 하지만, 운영체제마다 스레드의 갯수가 제한되어 있으며, 제한된 스레드보다 많은 클라이언트가 접속할시 문제가 발생(가용성 부재). 또한, 스레드가 작동되기 위해서는..
간단하게 컴퓨터 네트워크 수업을 되새기며 정리를 해보자. TCP와 UDP의 차이를 구분할 줄 알고 내가 원하는 상황에 맞추어 선택할 수 있는게 중요하다. 전송계층(4계층) 프로토콜이란, 컴퓨터 네트워킹을 하는데 있어서 서로 약속하는 부분, 즉 통신 규약이라 할 수 있겠다. 특히, TCP와 UDP는 전송 계층(Transport Layer)의 프로토콜로 IP계층에서 알려준 경로정보를 바탕으로 데이터의 실제 송수신을 담당한다.(실제로, 전송계층에서는 Host와 Host 사이에 라우터와 같은 것들이 없다. 이를 Logical한 End-to-End Protocol 이라고 하기도 한다.) 전송계층에서 제공해야할 기본적인(common) 서비스들은 다음과 같다.-Multiplexing / Demultiplexing-C..
오랜만에 C++ 다시 할려니 정말 기초적인 부분에서 까먹은 부분이 너무 많음. 1. char* 타입으로 바로 cin 을 통해 문자열을 입력받을려고 하니 오류가 발생. => char*으로는 바로 입력을 받을 수 없고, char* str = "asdasd" 로 바로 초기화는 가능 => char str[] 형태로 선언하고 cin으로 입력 받을 수 있음 => cin으로 입력하면, 배열의 크기와 상관없이 내가 입력이 끝난 다음 '\0'가 마지막 문자 다음에 추가 되는듯... (무조건 배열의 가장 끝에 생성되는 줄....) 2. 포인터의 size는 타입에 상관없이 4바이트 임(주소값) //reverse string 하는 메소드 작성하기(어떠한 자료구조를 사용하지 않고) //만약에 자료구조 사용가능하면 스택으로 완전..