게시글
질문&답변
강의명 오타
제보 감사합니다. 바로 수정조치 하였습니다. 😄
- 0
- 2
- 20
질문&답변
순수 가상 클래스 선언과 일반 인트 변수의 선언과 다른가요?
C++에서 함수는 0이 될 수 없습니다. 무엇보다 인스턴스 선언 시 사용되는 '='은 할당 연산자로 볼 수 없습니다. 그러므로 문법적인 측면에서 이해하는 것이 좋겠습니다. 서양의 언어는 명사로 부정합니다. 즉, 'Noting이 있다'라고 합니다. 그런 관점에서 '= 0'은 초깃값 기술이 아니라 함수 정의가 없다는 것에 대한 명시적 표현으로 이해 할 수 있겠습니다. 그리고 int형은 형식(Type)은 맞지만 Class가 되지는 않습니다. Instance라는 표현은 개념적 어휘로 여러 목적으로 사용됩니다. 프로그래밍 언어에서는 Instance는 형식에 대한 실체 정도로 생각해볼 수 있습니다.즉 int a = 0;의 의미는int 형식에 대한 Instance인 a의 초깃값이 0 이라는 의미가 되겠습니다. 선언과 동시에 값이 정의되는 경우가 되겠습니다. 0에 대해 int 0이라는 의미 외에 포인터 관점에서 null로 구분하기도 합니다. 이는 때로 지나친 자유로 보고 문법적으로 통제해야 할 대상으로 봅니다. 해서 Java에서는 0과 null은 다른 것으로 취급합니다. 값이 같다해서 형식도 일치하는 것으로 볼 수는 없기 때문입니다. 거기에 개념적으로만 보면 void의 의미를 가질 수도 있습니다. 말이 길어졌네요. 개념 정리에 도움이 되기를 바랍니다. 참고하시기 바랍니다. 😄
- 0
- 2
- 14
질문&답변
SSL 인증서를 확인한 후 과정이 궁금합니다!
네, 이후 통신은 대칭키(다른 말로 세션 키)를 사용합니다. 서버가 데이터를 보내줄 때도 마찬가지 입니다. 참고하시기 바랍니다. 😄
- 0
- 2
- 21
질문&답변
안녕하세요. 이동의미론에 대해 제가 잘 이해했는지 궁금합니다.
아래 코드를 살펴보시기 바랍니다.class TestData { public: TestData() { std::cout data = rhs.data; //} private: int data = 0; }; int main(void) { TestData t1 = TestData(1); TestData t2(1); TestData t3(TestData(1)); return 0; }상기 코드에서 호출되는 생성자는 모두 TestData(int) 입니다. 복사 생성자는 호출되지 않습니다. 이는 변수 선언 및 정의와 관련이 되어 있습니다. 변수 선언 시 초깃값 기술을 목적으로 사용되는 '='은 할당 연산이라 할 수 없습니다. 결과적으로 t1 인스턴스는 기본 생성이나 복사 생성이 아니라 매개변수 int를 받는 형태로 초기화 됩니다.이동 시멘틱이 필요했던 이유는 사라질 임시객체의 값을 복사하는 것보다 생각하는 것처럼 Shallow copy를 하는 것이 더 효율적이기 때문입니다. 1번의 경우만 다시 생각해보시면 되겠습니다. 다시 말씀드리지만 복사 생성이 아닙니다. 이는 구형 표준을 적용해도 마찬가지 입니다. 추가 부분에 대해서는함수의 반환 값은 l-value가 되지 못합니다. 말 그대로 변수가 아니라 '값'입니다. 이 경우 호출자 함수에 이름이 없는 임시객체 생성을 유발합니다. 이동 생성자가 적용되는 경우는 함수의 반환형 Test 클래스 인스턴스가 r-value에 해당하기 때문입니다.참고하시기 바랍니다. 😄
- 0
- 1
- 22
질문&답변
VMware Ethernet1이 없는 경우
일반 Win11을 사용해도 상관은 없습니다. 거기에 개발툴을 올리는 것이 좀 피곤하긴 하지만요. 😄 어댑터가 하나인 이유는 가상 장치 NIC이 하나 밖에 없기 때문입니다. 필요하다면 VMware 게스트 이미지 장치 설정에서 NIC을 추가하면 됩니다. 참고하시기 바랍니다. 😄
- 1
- 2
- 21
질문&답변
socker buffer 에 관하여 문의 드립니다.
실시간으로 조회하는 기능은 없습니다. 다만 설정 할 수는 있습니다. Linux 'TCP strategy'에 대해 검색해보시면 구체적인 방법을 알 수 있습니다.이는 리눅스 환경의 문제가 아니라 소켓 수준 옵션에 관한 것입니다. setsockopt() 함수에 대해서 찾아보시기 바랍니다.recv() 함수를 호출하고 바로 다시 수신대기에 들어간다면 윈도우 사이즈 문제가 발생하는 일은 쉽게 재현되지 않을 것입니다. 보통은 수신한 데이터를 처리하는 코드가 이어지는데 이 처리코드가 이어지는 중에도 네트워크로부터 데이터가 수신되어 버퍼에 쌓입니다. 이 쌓이는 속도보다 처리속도가 늦어지면 윈도우 사이즈가 줄어드는 문제는 해결되지 않습니다.참고하시기 바랍니다. 😄
- 0
- 1
- 17
질문&답변
Windows 11 가상머신 다운로드 이슈 2
OneDrive 링크 유효기간이 지난 모양이네요. 다시 공유 링크를 생성했습니다. 참고하시기 바랍니다. 😃 WinDev2404Eval.VMWare.zip
- 0
- 3
- 83
질문&답변
TLS가 적용되는데 SPI는 어떻게 할 수 있나요?
TLS 연결은 처음부터 모든 것이 암호화 되어 있지 않습니다. 몇 가지 단계를 거치는데 프로토콜 헤더 정보는 암호와 되어 있지 않습니다. 이 암호화되어 있지 않은 정보 중에는 SNI가 있습니다. 즉, HTTP 헤더를 읽는 것이 아닙니다. 참고하시기 바랍니다. 😄
- 0
- 2
- 35
질문&답변
포인터 변수 크기 질문
운영체제가 1바이트 메모리에 8비트 주소를 부여해 관리하든 128비트 주소를 부여하든 1바이트 메모리 공간자체에 메모리의 주소가 저장되어 있는 것이 아니라는 설명을 한 것입니다. 많은 분들이 1바이트를 관리하기 위해 64비트 주소를 사용할 경우 총 9바이트 공간이 필요하다고 생각합니다. 배보다 배꼽이 더 큰 상황이라 할 수 있으며 이를 이상하게 생각합니다. 그런 질문을 자주 받다보니 '붙어있는 것이 아니'라는 표현을 강조한 것입니다.OS는 1바이트에 대해 32비트 혹은 64비트 주소를 '부여'해 관리합니다. 그건 관리주체인 OS의 입장이고 1바이트 메모리 공간 입장에서는 자신에게 몇 비트 주소가 부여되어 관리되고 있는지 알아야 할 이유도 혹은 64비트 주소를 자신에게 붙여야 할 이유도 없습니다. 관리 주체와 대상을 나눠서 생각해야 할 문제라 하겠습니다. 참고하시기 바랍니다. 😄
- 0
- 2
- 18
질문&답변
단항 증감 연산자 예시 정답
++x, ++y는 단항 연산으로 덧셈 및 단순 대입연산보다 우선순위가 높습니다. 그러므로 아래 연산을 풀어서 설명하면data = ++x + ++y + ++x;이름이 x인 변수의 값을 1증가 시킴 (이 때 x는 6이 됨)이름이 y인 변수의 값을 1증가 시킴이름이 x인 변수의 값을 또 1증가 시킴 (이 때 x는 7이 됨)이름이 x인 변수의 값과 이름이 y인 변수의 값과 이름이 x인 변수의 값을 모두 더해 이름이 data인 변수에 저장결국 data = 7 + 11 + 7;이 되는 것입니다. 이런 경우 디스어셈블 코드를 보는 것이 도움이 됩니다. 참고하시기 바랍니다. 😄 (사진)
- 0
- 2
- 6.3K