2025/04 5

cpp8(callable)

250401 5w1 수업 정리Callble Type다시.. callable은?! 함수처럼.. ()를 붙여서 호출할 수 있는 아기들을 말한다..1.함수2.함수포인터3.람다4.함수객체 - 함수호출연산자를 오버로딩한 클래스로 만든 객체5.멤버함수전에 람다..?까지 다뤘던 것 같은데 이번에는 함수객체(함수호출연산자)와 멤버함수에 대해 다뤄보겠다.. 아 .. 술먹고싶다.. 일단 함수호출연산자는... () () 이 괄호 두짝은 함수를 부르는 연산자임우리는 ()이 연산자도 operator()로 오버로딩해서 사용해줄 수 있다..원래 클래스 객체는 ()를 지원해주지 않는다.. 그래서 직접 operator()를 오버로딩해주는 것..왜 사용하는데?!객체를 함수처럼 사용하고 싶을때.... (이게 함수객체임!!! functio..

cpp(stl) 2025.04.11

cpp7(함수포인터/collable/람다) 4w2

250327 수업정리..(4w2) Callable Types호출 가능한 타입..함수처럼 호출()할 수 있는 모~~든 것을 callable 이라고 함.1. 함수 : 이름 있는 함수2. 함수 포인터 : 함수 주소를 가리키는 포인터3. 람다[] lambda : 이름 없는 즉석 함수이것들 모두 () 연산자로 호출할 수 있기에.. callbale type 이라고 함 void*이건.. 어떤 타입이든 가리킬 수 있는 일반적인 포인터임!!!이건 함수 포인터가 아님... 그냥 타입이 없는 포인터!!!!!이런식으로... int값을 반환하는 내림차순()이라는 함수안에 매개변수로cosnt void* a, const void* b 가 들어가있음.여기서 void*는 void라는 함수를 가리키는게 아니라... 저 void*는 어떠..

cpp(stl) 2025.04.11

cpp6(RAII/throw/unique_ptr) 4w1

밀린 공부...4w1 RAII (Resource Acquisition Is Initialization)└ 자원의 할당과 해제를 객체의 생명주기와 일치시키는 기법- 우리는 자원의 해제(delete)를 직접 해줄필요가 없음! 이거는 스마트포인터로 구현이 된다..- 생성자에서 자원을 획득하고, 소멸자에서 자원을 반환하는 패턴..! throwthrow는.. 예외가 생기면 throw가 실행되는것? vs throw가 예외를 만드는 것?정답은.. throw는 예외를 만 드 는 아이! throw가 실행되면, 예외가 발생하는 것임..근데 왜 굳이 예외를 .. 발생시키지?코드를 진행하면서.. 더이상 정상적인 흐름으로 처리할 수 없는 상황에서 프로그램을 비상탈출하려고!throw를 던지면.. catch가 잡아준다. try내에..

cpp(stl) 2025.04.08

다중서버정리(iocp)

iocp기반임. 250401/250403 수업 (아직 미완성..) 비동기 다중접속에서 Accept는 AcceptEx로 해준다..일단 여기서도 EXP_OVER로 OVERLAPPED 구조체를 확장시켜줘서 사용함.각 EXP_OVER는 자기가 어떤... 작업인지 정보를 갖고있음(수업에선 enum통해서 작업 구분함.. IO_RECV, IO_SEND, IO_SEND로..) EXP_OVER안에... os에 넘길 비동기 정보 WASOVERLAPPED구조체가 있음Overlapped 구조체... 모든 send, recv는 이 구조체가 필요.하나의 구조체를 여러 호출에서 사용하는건 불가능!! 개당 하나씩 필요.소켓당, recv호출은, 무조건 하나씩...!!!!소켓당, send호출은 여러개 가능하다.. -> 이게 브로드 캐스..

서버 2025.04.06

일대일서버정리

IOCP가 뭐야? (InputOutputCompletionPort)Windows에서 고성능 네트워크/파일 비동기 처리를 위해 만든 시스템 큐비동기 작업이 끝나면 os가 큐에 완료했다고 넣어주고, 우리는 그걸 꺼내쓰는 방식...게임서버의 핵심은 IOCP.. iocp를 쓰겠다고 하면, 커널에 iocp 객체를 생성, 걔를 통해서 io를 진행! WSAOVERLAPPED└ Windows에서 비동기 io작업을 위한 구조체임...작업의 상태와 완료 정보를 담는 상자... 그냥 recv, send└ 이 함수들을 호출 시 작업이 끝날 때 까지 코드가 멈춘다.. WSARecv, WSASend└ 작업만 시작해주고, 바로 리턴. 나중에 작업이 완료되면 그 사실을 IOCP나 이벤트를 통해 통지받음.이때 이 작업 진행 상태 및 ..

서버 2025.04.06