묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결홍정모의 따라하며 배우는 C++
11:11 부근에 Something::temp와 Something::getValue의 앞에 &를 붙이는 이유가 뭔가요? (함수 이름은 포인터(주소)가 아닌가요?)
앞에서 '함수이름'은 포인터와 같다라고 배웠습니다. 그래서 실제로 7.9 함수 포인터 강의에서도 int (*ptr_func)() = func; //func는 함수 이름으로 함수포인터를 선언 및 초기화하고 호출 시에도 ptr_func()라고 호출했습니다.그런데 이번 강의 11:11부근에서 교수님께서 멤버함수의 포인터를 가져올 수 있다 말씀하시면서 선언 및 초기화하실 때 int (Something::*fptr1) = &Something::temp;라고 선언 및 초기화를 해주셨는데Something::temp 앞에 주소 연산자 [&]를 붙여주는 이유를 모르겠습니다. 검색해보니 함수포인터 초기화 시 함수이름에 &를 붙이지 않았다고 해도 내부적으로 형변환을 해준다고 하는 것을 알았습니다.실제로 int (Something::*fptr1) = Something::temp;로 주소 연산자 [&]를 붙이지 않았을 때도 에러 없이 정상 작동하는 것을 확인했습니다.그러나 '함수 포인터는 주소다, 포인터다'라고 배운 개념과 다르게 앞에 &를 붙이지 않으면 내부적으로 자동 형변환 된다는게 모순인 것 같은데 &는 주소를 나타내기 위한 연산자라고 배웠고 원래는 &를 명시적으로 함수이름 앞에 붙이는게 맞다(안붙이면 내부적으로 형변환된다)는 것이 말이 안되는 것 같습니다. 그러면 함수 이름은 포인터가 아닌 것이지 않을까요?
-
미해결[초급] 중급자로 도약하기 위한 Qt/QML 실전 프로그래밍
로드맵 재수강 로드맵 할인문의
안녕하세요 강사님전에 로드맵 한번 수강 후 기간 만료되었는대복습할 필요가 생겨서 재수강할려합니다. 전에 로드맵 할인이 있었는대재수강 하려니 로드맵 할인이 없어져서로드맵 전체구매 할인을 받을 수 있는 방법이 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
C++ 알고리즘 교안 학습 관련
최근 강의를 구매해, 코딩 테스트를 준비 중인 학생입니다!제가 원래 JAVA 언어를 주력으로 사용합니다. 코딩 테스트도 웬만하면 주력 언어를 사용하는 것이 학습 시간 면에서 유리할 것이라고 생각하고 있습니다. 실제로 시간이 많지도 않습니다.이런 상황에서, C++ 알고리즘 교안을 익히고 JAVA로 매핑 후, 강의를 들어야 하는 것인지아니면, C++ 알고리즘 교안을 익히고, 강의 또한 C++로 듣고, 마지막에 JAVA로 매핑 해야 하는 것인지혹은, 이미 C++ 을 어느 정도 알고 있어서, 바로 강의를 들으며 JAVA를 기준으로 진행해도 되는 것인지 궁금합니다...!!
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
recv 할게 없어도 무한 while문을 도는데 괜찮은건가요?
uint32 RecvWorker::Run() { while (Running) { TArray<uint8> Packet; if (ReceivePacket(OUT Packet)) { /*패킷을 큐에 등록*/ } } return 0; } bool RecvWorker::ReceivePacket(TArray<uint8>& OutPacket) { // 패킷 헤더 파싱 const int32 HeaderSize = sizeof(FPacketHeader); TArray<uint8> HeaderBuffer; HeaderBuffer.AddZeroed(HeaderSize); if (ReceiveDesireBytes(HeaderBuffer.GetData(), HeaderSize) == false) return false; /*...*/ } bool RecvWorker::ReceiveDesireBytes(uint8* Results, int32 Size) { uint32 PendingDataSize; //연결 종료되면 packetrecvsize 0으로 옴 -> 연결 끊겼으면 종료. if (Socket->HasPendingData(PendingDataSize) == false || PendingDataSize <= 0) return false; /*...*/ }recvworker 쓰레드를 만들고 run이 실행됐는데 커널의 recv버퍼에 읽을게 없을 때헤더확인을 위한 ReceiveDesireBytes 호출Socket->HasPendingdata() 에서 return falseReceiveDesireBytes 에서 return falseRun에서 ReceivePacket return false로 recv할게 올때까지 while문 무한반복이렇게 되는데 while문이 의미없이 무한반복하고 있는게 좀 걸려서 질문합니다.recv가 계속 올거라 상관이 없어서 이렇게 처리해도 큰 상관이 없는건가요?그게 아니면 혹시 Socket->Recv 에서 블로킹이 걸리게 만들어놓고 쓰레드는 대기하다가 서버로부터 읽을게 오면 알아서 블로킹이 풀리고 일을 하도록 하는건 별로인가요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
MySQL 연동
DB 연동은 어떻게하면 좋을까요 ㅜㅜ 강의에 DB에 대한 내용이 없네요
-
해결됨[Rookiss AI Creative GameDev - Live] Unity Indie & UE5 Tech Lab (2026년 1월 반)
게임피쳐 문의 드립니다.
안녕하세요.카운터스트라이크 소스 분석중 AAModularCharacter 내에 PreInitializeComponents, BeginPlay, EndPlay 등 함수에 UGameFrameworkComponentManager 를 통한 작업들을 보았는데 이것들이 정확히 어떠한 행동을 위한것인지 알기가 어려워 문의 드립니다.혹시 간략하게나마 게임 피쳐에서 어떤 이벤트가 발생했을때 얘가 이러이러한 역활을 한다이런식으로라도 혹시 알 수 있을까요?
-
해결됨[Rookiss AI Creative GameDev - Live] Unity Indie & UE5 Tech Lab (2026년 1월 반)
카운터스트라이크 소스에서 WorldSetting
안녕하세요. 올려주신 소스를 보고 따라 만들어 보던 중 질문 드립니다. 카운터스트라이크 소스에서 WorldSetting 을 C++ 로 커스텀 작성하신 (CommonWorldSettings) 월드세팅클래스로 가져오시던데 기존 월드 세팅의 변경은 에디터 -> 프로젝트 세팅 에서 직접 바꾸면 되는걸까요? 아니라고 한다면 C++ 코드 어느부분에서 월드세팅을 커스텀 월드세팅으로 변경해야 할까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
강의 영상에 오타가 있는 것 같습니다
비트마스킹 개념 #3-5. 비트연산자 활용법: idx번째 비트를 켜기 영상에서 2:26에 or연산이 맞는거 같은데 xor로 들리고 자막에도 xor로 나와서 질문 남깁니다
-
미해결홍정모의 따라하며 배우는 C++
using namespace std; 선언 후에 std::를 하는 이유가 궁금합니다
main함수 안에 using namespace std;를 했는데 아래 코드에 std::를 또 작성하신 이유가 궁금합니다.
-
해결됨[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
7강 GameMode와 Modules관련 질문드립니다.
안녕하세요. 강의 잘 듣고 있으며 좋은 강의를 해주셔서 감사드립니다.7강에서 GameMode는 무겁기 때문에 하나의 GameMode를 사용하고 GameMode 변경 대신 모듈을 이용하여 이러한 무거움의 단점을 보완 했다고 설명 하는 것으로 이해 했습니다.Level 변경 시, GameMode는 World에 종속되어 있고 Level 별로 동일한 GameMode 클래스를 이용하더라도 World가 바뀌기 때문에 GameMode도 Actor에 해당하고 GC되고 새로운 GameMode 인스턴스를 사용하기 때문에 설명 하신 부분과 상이하다는 생각입니다.즉, '생성 비용'이 아니라 '유연성과 확장성'을 위해 이 러한 방식을 택한 것이 아닐까요?
-
해결됨C개발자를 위한 최소한의 C++
13분 42초의 예제
안녕하세요. 우선 질 좋은 강의에 감사인사부터 드립니다. 우선 저는 MacOS 환경에서 Clang 컴파일러 환경에서 강의를 듣고 실습을 따라하고 있습니다. C++ 버전은 동일합니다. 그런데 강의 속 13분 42초의 예제에서 콘솔 출력 결과가 다음과 같이 나오는데요?TestData(int) testFunc() TestData(const TestData&) ~TestData(20) ~TestData(100) End of main()그런데 저의 환경에서는 임시 객체의 소멸자 메소드가 출력하는 내용의 순서가 100이 먼저 등장합니다.TestData(int) testFunc() TestData(const TestData&) ~TestData(100) ~TestData(20) End of main()이렇게 콘솔 출력이 달라지는 이유가 컴파일러 환경의 차이일까요..?개인적인 생각으로는 컴파일러를 다른 것을 사용하더라도 임시객체가 생성과 소멸되는 순서는 동일해야 할 것 같은데.. 헷갈려서 질문드립니다! 그런데 위 예제가 21분 28초에 나오는 예제랑 동일한 것 같은데, 또 강의속에서도 해당 예제는 ~TestData(100)이 먼저 출력되네요..?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문있습니다!
다른방법으로 풀어서 질문드립니다.지우는 노드부터 자식으로 내려가서면서 dfs를 돌리며 visited를 체크 했습니다.너무 비효율적인지? 아니면 이렇게 해도 될지 알려주시면 도움이 될것 같습니다! http://boj.kr/79ae7d2c251d458fa1560fcb789af4ae
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
LIS 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Q) LIS 알고리즘이 코딩 테스트에서 자주 사용되는 알고리즘인가요? 실전 코딩 테스트 경험이 적어서 그럴 수 있지만, 이거 LIS로 풀어야겠다 하고 문제 풀이를 들어간 경험이 없어서요. 그냥 알아두면 좋은 알고리즘이라고 생각하고 공부하고 있습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-D 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 메모이제이션을 이용하지 않으면 최악 2^30까지 간다고 생각했습니다. (이동하는 경우, 이동하지 않는 경우 두 가지). 반면 메모이제이션을 이용하면 dp 배열 사이즈만큼 탐색되구요 그런데 메모이제이션 코드가 걸리지 않는 tc가 있다면 시간초과일텐데 왜 메모이제이션이 당연히 일어난다는 전제가 있는건가요?
-
해결됨3. [노베이스/입문] 기초 C++ 스파르타 클래스
비주얼 스튜디오 2026으로 해도 문제 없을까요?
비주얼 스튜디오 2026으로 해도 문제 없을까요?2022가 다운받을 방법이 없네요 ㅜ
-
미해결게임 프로그래머 취업 비법서(대기업 실제 면접 모음집)
기술면접
안녕하세요 올해 클라이언트 직군 취업이 목표인 사람입니다. 취업이 급한 경우 c++/ 자료구조, 알고리즘 / 게임수학, 그래픽스 / 상용엔진, 정도만 하라고 하셨는데요 컴퓨터구조, 운영체제, 네트워크, 데이터베이스 같은 CS는 면접 대비용으로만 준비해봐도 충분할까요?아직 면접경험이 없어서 이부분은 잘 모르겠어서 질문드립니다. 감사합니다.
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
잡큐단위 내부에서 잡큐호출
이미 잡큐로 넘긴 일감안에서 함수호출을 일감으로 넘기는 구조에 대해서 의문이 생겼습니다( Enter를 DoAsync로 호출했는데, 내부에서 다시 room함수를 DoAsync로 호출한 상황 ) 제가 먼저 고민해본 결과는 어차피 일감으로 넘겼으니 동기로 바로 호출해서 순서도 지키고 괜찮을 것 같다.-> 다만, 동기 호출이 내부에서 반복되어 오래 걸릴경우 스레드가 잡혀있을 수 있음( 실행시간을 정해줬다 하지만 동기호출이 반복될 경우 ) 내부 함수 호출도 잡큐단위로 넘기면 GlobalQueue로 스레드 일감 분배되고 좋을 거 같다.-> 다만, 바로바로 처리하지 않을 수 있기에 순서(?) 문제가 생길 것 같다.엄청 무거운 뭐 길찾기라던지의 작업이 아닌이상 그냥 동기 호출하고, 무거운것만 다시 잡큐로 넘기는게 좋은 방법이라는 생각도 들기도 하고 그냥 에라 모르겠다 싹다 동기 or 잡큐로 넘기기 방식도 있을거 같은데 강사님의 의견이 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-M 입력받는 x,y 순서 질문있습니다.
안녕하세요 선생님.1강부터 수업들으면서 array 탐색시에 y,x 순으로 탐색하는게 습관이 되었는데요.아래 코드처럼 입력받은 값도 y,x순으로 vector에 넣었더니 틀리게되었습니다.http://boj.kr/e7250811d751462ea104cf814b2be989코드에서 arr,base등의 탐색시에도 yx순으로 탐색하고있는데 왜 위의 vector만 xy순으로 입력해야 통과할까요..?
-
해결됨[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
LyraFrontEnd 에서 로딩화면에서 넘어가지 않는 원인이 뭔지 질문드립니다.
안녕하세요 Lyra 클론 코딩 강의를 보면서 Lyra 의 이것저것을 살펴보던 중lyra 코드를 살펴보니 L_LyraFrontEnd 라는 Level 이 있는 것을 발견하고 강의에서 다룬 L_DefaultEditor 에 추가로 L_LyraFrontEnd 라는 것을 클론하면서 시작화면을 구성해보는 공부를 하고 있었습니다. 클론 작업을 하다가 로딩화면에서 다음으로 넘어가지 않는 문제가 있어서 혹시 제가 어느 부분을 놓치고 있는지 조언을 얻을 수 있을까 하여 질문드립니다. 해당 질문이 현재 강의 내용을 벗어나기에 대답이 어려울 수 있으나 혹시나 하여 질문드립니다. 요약 :void ULyraFrontendStateComponent::FlowStep_TryShowPressStartScreen(FControlFlowNodeRef SubFlow)함수의 if (!UserSubsystem->ShouldWaitForStartInput()) 에서 if 문을 타지 않는데 ShouldWaitForStartInput 를 설정하는 부분은 lyra 에서 어디일까요? 자세히 설명 : 흐름은 다음과 같습니다. Lyra 에서는 L_LyraFrontEnd 를 실행하면서 B_LoadRandomLobbyBackground 가 실행되면서 로딩화면이 나오고 로딩 화면 다음으로 넘어가면서 B_LyraFrontEndExperience 에서 Add Component 를 통해 추가한 B_LyraFrontendStateComponent 가 실행되면서 메뉴창 이 나옵니다.동일한 내용을 Clone 하다보니 1. 번의 로딩화면에서 그다음으로 넘어가지 않는 문제가 발생하였습니다.로그를 살펴보면LogLyraExperience: EXPERIENCE: OnExperienceLoadComplete(CurrentExperience = LyraExperienceDefinition:B_LyraFrontEnd_Experience, Server)LogCommonSession: Session state is NoSessionLogBlueprintUserMessages: [B_LoadLobby_C_3] Lobby background loadedLogBlueprintUserMessages: [B_LoadLobby_C_3] Lobby background shownLogBlueprintUserMessages: [B_LoadLobby_C_3] UnknownLogLoadingScreen: Loading screen showing: 1. Reason: Try Show Press Start ScreenLogLoadingScreen: Loading screen showing: 1. Reason: Try Show Press Start ScreenLogLoadingScreen: Loading screen showing: 1. Reason: Try Show Press Start ScreenLogLoadingScreen: Loading screen showing: 1. Reason: Try Show Press Start Screen LogLoadingScreen: Loading screen showing: 1. Reason: Try Show Press Start Screen 이라는 로그가 주기적으로 찍히면서 로딩 화면에서 넘어가지 않았고 코드를 살펴보니 void ULyraFrontendStateComponent::FlowStep_TryShowPressStartScreen(FControlFlowNodeRef SubFlow) 에서 if (!UserSubsystem->ShouldWaitForStartInput()) 해당 if 문 내부로 들어가야하는데 들어가지 못하고 있었습니다.그렇다면 press start 라는 입력을 대기하고 있다는 것 같은데 lyra 프로젝트에서는 따른 키 입력 없이 자동으로 로딩화면이 넘어갔기에 어디선가 설정을 빼먹은 것 같습니다. 혹시 해당 설정 관련하여 놓친 부분이 어디인지 알 수 있을까요? 감사합니다.
-
해결됨Windows System 프로그래밍
프로세스와 가상메모리의 주소 위치와 테이블 매핑
1.전시간에 프로세스가 구조체라고 한게 C언어의 문법 struct와 관련이 있나요?2.제가 현재 이해한 건 프로그램을 실행시키면 물리 메모리에 적재되는데 물리 메모리가 부족하면 안 쓰는 데이터들을 HDD에 페이지에 올리고 필요해지면 다시 물리 메모리에 올리는 식으로 이해 했는데 여기서 하드에 있는 페이지는 물리 주소랑 매핑 안되어 있고, 나중에 쓸 때 매핑 되는 거죠? 그러면 물리 페이지와 논리 페이지 둘다 램에 있는 건가요? 그중에서 하드에 있는 것도 논리 페이지면 매핑이 되야 될텐데 하드에 있는 것까지 매핑되면 물리메모리가 부족한 문제는 해결 안될 거 같아서 살짝 이해가 안되네요.3.2번에서 나오긴 했지만 가상메모리의 저장위치가 램과 하드가 맞나요?