본문 바로가기

개인공부121

배경지식 - HTTP 웹 서버 방식에서는 기본적으로 HTTP 프로토콜을 사용하여 통신을 함 따라서 우선적으로 HTTP 프로토콜이 어떤 것이고, 어떤 식으로 작동하는지 알아야 할 필요가 있음 HTTP Hyper Transfer Protocol의 약자로 TCP/IP 프로토콜 집합에 속함 HTTP 통신은 크게 리퀘스트(Request)와 리스폰스(Response)로 이루어져있음 클라이언트에서 서버로 보내는 요청이 리퀘스트 클라이언트의 요청에 대한 서버의 응답이 리스폰스 HTTP 통신은 상태를 유지하지 않는 stateless 프로토콜 stateless : 서버가 각 세션에 대한 값을 메모리에 저장하지 않기 때문에 클라이언트의 상태를 기억하지 못함 따라서 서버가 유지해야 하는 자원의 양이 줄어듬 단, 이전의 리퀘스트 및 리스폰스 정보를.. 2023. 4. 19.
Chapter 3 - 네트워크 프로그래밍 (2) TCP 서버 실습 클라이언트에서 데이터 송신 - 서버에서 수신 - 수신한 데이터를 다시 클라이언트에 송신 - 클라이언트에서 수신 // DummyClient.cpp int main { // socket() -> connect() ... ... // ---------------- // 연결 성공! 데이터 송수신 가능 cout 2023. 3. 29.
Chapter 3 - 네트워크 프로그래밍 (1) 소켓 프로그래밍 기초 #1 손님 : 핸드폰 준비 - 식당 번호로 문의 - 대리인을 통해 식당 측과 대화 가능 손님 = 클라이언트 핸드폰 = 소켓 식당 번호 = 서버 주소 소켓을 통해 서버와 패킷 송수신 가능 식당 : 안내원 고용 - 안내원 교육(대표 번호 배정) - 영업 시작 - 대리인에 안내 식당 = 서버 안내원 = Listener 소켓 안내원 교육 = Bind(서버주소/포트를 소켓에 연동) 영업 시작 = Listen 안내 = Accept(별도의 소켓에 연결) 클라이언트 세션을 통해 통신 가능 소켓 프로그래밍 기초 #2 // DummyClient.cpp #include #include #include #pragma comment(lib, "ws2_32.lib") int main() { // winsoc.. 2023. 3. 29.
Chapter 2 - 메모리 관리 (4) Object Pool 기존 메모리 풀은 비슷한 크기의 메모리들을 같은 메모리 풀에 넣어 공용으로 사용함 이 때 메모리가 오염된 경우 원인을 찾기 힘들다는 단점이 존재 따라서 동일한 크기가 아닌 동일한 클래스끼리 묶어서 관리하는 오브젝트 풀을 사용할 수 있음 // ObjectPool.h #include "Types.h" #include "MemoryPool.h" template class ObjectPool { public: template static Type* Pop(Args&&... args) { #ifdef _STOMP MemoryHeader* ptr = reinterpret_cast(StompAllocator::Alloc(s_allocSize)); Type* memory = static_cast(.. 2023. 3. 29.