전체 글70 Socket Programming Socket 컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점 대부분의 네트워크 소켓은 인터넷 소켓 인터넷 프로토콜 (TCP, UDP, raw IP), 로컬 IP 주소, 로컬 포트, 원격 IP 주소, 원격 포트로 구성 UDP 프로토콜을 사용하는 경우와 TCP 프로토콜을 사용하는 경우로 분류 클라이언트와 서버가 통신하기 위해 필요함 HTTP도 TCP/UDP 위 계층에서 돌아가기 때문에 소켓 프로그래밍을 해야 하므로 Socket과 HTTP는 이분법적인 개념이 아니다. 동작 과정은 다음과 같다. 통신을 초기화하는 측을 클라이언트, 세션을 시작하기 위해 접속을 기다리는 측을 서버라고 한다. 서버와 클라이언트 모두 socket단계에서 소켓을 생성한다. 서버는 bind 단계에서 소켓을 서버의 로컬 IP 주소, .. 2020. 3. 2. DDOS KISA HTTP Traffic Flooding 공격 HTTP : 인터넷에서 브라우저와 웹서버 간에 문서를 전송하기 위해 사용되는 통신규약 - header : 보낼 메시지의 형식 - body : 실제 보낼 메시지의 내용 HTTP 메시지는 TCP의 Payload에 저장되어 최소 1개 이상의 패킷으로 분할되어 전송된다. HTTP 메시지는 클라이언트가 요구하는 목적에 맞는 지시자를 이용하여 구성할 수 있다. * 지시자의 종류 - GET : URL에 해당하는 자료를 제공해 줄 것을 요청. 웹서버에 저장된 정보를 단순히 요청하기 위해 사용 - POST : 클라이언트에서 웹서버로 데이터를 전송할 때 사용. 클라이언트가 서버로 전송할 데이터의 크기를 설정할 수 있음 - HEAD : GET과 같은 요청이지만 자료에 대한 정보만.. 2020. 2. 24. Effective Modern C++ :: Chapter 3. 현대적 C++에 적응하기 항목 7. 객체 생성시 괄호()와 중괄호{}를 구분하라 중괄호 초기화는 균일화 초기화와 같은 말이다. 중괄호 초기화의 특징은 다음과 같다. - 가장 광범위하게 적용할 수 있는 초기화 구문 - 축소 변환을 방지 - 성가신 구문해석에서 자유로움 - 생성자 오버로딩 해소 과정에서 std::initializer_list 매개변수가 있는 생성자와 부합한다. (복사/이동 생성시에도 동일) - 빈 중괄호 쌍을 사용하면 기본 생성자가 호출된다. 즉, std::initializer_list가 아니라 인수 없음을 뜻한다. class Widget { public: Widget(int i, bool b); // 1 Widget(int i, double d); // 2 ... }; Widget w1(10, true); // 1.. 2020. 2. 24. Effective Modern C++ :: Chapter 2. auto 항목 5. auto를 선호하라 명시적 타입 선언보다 auto를 선호하라는 것이 이번 챕터의 내용이다. auto를 사용할 때의 장점에는 여러가지가 있다. 1. 타입 불일치가 발생하는 경우가 거의 없다. 2. 명시적 지정보다 타자량이 적다. 3. 초기화 표현식의 타입이 변하면 자동으로 변한다. = 리펙터링이 수월해진다. 1번의 내용은 타입 선언을 컴파일러의 도움으로 하기 때문에 타입 불일치가 줄어든다고 한다. auto를 사용하기전에 알아야 할 내용은 auto 변수는 반드시 초기화를 해야한다는 것이다. int x1; auto x2; // 오류. auto 변수는 필수적으로 초기화를 해야한다. auto x3=0; // 성공 auto를 사용하면 훨씬 간단하게 코드를 짤 수 있다. // 명시적 타입 선언을 사용했을 .. 2020. 2. 24. 이전 1 ··· 9 10 11 12 다음