728x90
인기글
실무 면접 대비  1번째 C / C++ (게임 클라이언트 프로그래머 기준)
실무 면접 대비 1번째 C / C++ (게임 클라이언트 프로그래머 기준)
◽ 게임회사
2021.02.22 00:37
게임 클라이언트 프로그래머가 준비해야 할 실무면접 리스트입니다. 취준 할 때 만들었던건데 공유하려고 올립니다. 준비해야 될 영역을 간략하게 비중과 함께 이야기하면, 1. C / C++ (40% ~ 60%)2. 그래픽스 개념 (20%)3. 운영체제 (10%~20%)4. 데이터베이스 (10%)5. 알고리즘, 자료구조 (20%~30%) : 실무면접 기준입니다. 알고리즘과 자료구조는 코딩테스트는 당연히 100%이고필기 테스트라면 50%라고 생각하시면 될거 같습니다. 대답하는 형식으로 준비했으니 고려해주세요.첫번째 C++기초 프로그래밍 기초 예상 질문1. C++의 특징을 말해주세요.C++언어는 객체지향언어로 4가지의 특징이 있습니다.첫번째 다형성입니다. 하나의 객체가 여러 가지 타입을 가질수 있는 것을 의미합니..
[windbg] windbg 사용하기, 덤프 분석하기
[windbg] windbg 사용하기, 덤프 분석하기
◽ 툴(tool)
2024.06.26 15:59
"[windbg] windbg 사용하기, 덤프 분석하기" 1. 덤프를 읽을 심볼과 심볼에 맞는 소스코드 경로를 연결시킨다.   2. 덤프를 windbg에 드래그 드롭 또는 open으로 파일을 열면 이런 화면을 볼수 있다.Loading Dump File : 덤프 파일의 위치, 덤프 종류 Executable search path is : 덤프가 발생한 OS Debug sesstion time : 덤프 발생 시점 시간 Process Uptime: 부팅 이후 동작한 시간   3. !analyze -v 명령어 실행 !analyze-v 명령어를 실행하면 더욱 자세하게 덤프 내용이 나온다.FAULTING_IP: 어떤 부분에서 문제가 일어났는지 표시한다. callstack의 마지막 부분이다. KERNRLBASE.ddl..
실무 면접 대비 3번째 운영체제, 그래픽스 기초 (게임 클라이언트 프로그래머 기준)
실무 면접 대비 3번째 운영체제, 그래픽스 기초 (게임 클라이언트 프로그래머 기준)
◽ 게임회사
2021.02.22 00:45
운영체제 기초1. 변수들이 메모리에 저장되는 영역에 대해서 설명해보아라.메모리 영역은 code bata heap stack으로 이루어져 있습니다. 이 순서대로 낮은 주소에서 높은 주소로 메모리를 저장합니다. stack영역 빼고 모두 런타임에서 크기가 결정되며 stack영역은 컴파일 타임에 크가가 결정됩니다.code영역은 실행될 명령어가 들어가는 구역입니다. 저희가 작성한 소스 코드가 들어가고 상수또한 이곳에 들어갑니다. 물론 컴파일 된 기계어가 들어갈 것이며 프로그램이 끝날 때까지 메모리에 계속 적재되어 있습니다. bata영역은 전역변수 또는 static등이 지정되는 구역입니다. 이 또한 프로그램이 끝날 때까지 메모리에 계속 적재 됩니다. heap영역은 malloc이나 new로 동적 할당 받은 메모리가 ..
1분 자기소개 (실제로 면접 때 했던...)
1분 자기소개 (실제로 면접 때 했던...)
◽ 게임회사
2021.02.22 00:56
1분 자기소개가 얼마나 중요하신지 다들 알거라고 생각합니다. 면접관님이 노트북에 적힌 자기소개서를 보면서 듣다가 얼굴을 쳐다 보느냐 안보느냐가 큰 싸인인거 같습니다. 가장 중요한 것은 중복된 말을 하지않고 간결하며 자기가 이 업무를 위해 남긴 작은 업적을 나열하는 것이 제일 좋지 않을까 생각합니다. 그리고 큰 소리로 면접관님을 쳐다보고 ... 당돌하게 !!저는 실제로 사용했던 1분 자기소개를 공개하려고 합니다. 이건 참고만 해주세요!!안녕하세요. 클라이언트 직무에 지원한 XXX입니다. 저는 게임 프로그래밍에 관심이 생겨 디자인학과에서 게임공학으로 편입 후 게임을 제작한 경험이 총 4번 있습니다. 이 중 마지막 게임은 학교의 산업대전에서 우수작으로 선정됨으로서 완성도를 확인한 작품이기도 합니다. 3년간 게..
실무 면접 대비 2번째 알고리즘, STL, 자료구조 (게임 클라이언트 프로그래머 기준)
실무 면접 대비 2번째 알고리즘, STL, 자료구조 (게임 클라이언트 프로그래머 기준)
◽ 게임회사
2021.02.22 00:43
0. STL이란 뭔가요? Standard Template Library로 C++의 템플릿을 사용하여 표준으로 정리된 라이브러리입니다. 반복자/컨테이너/알고리즘/함수 객체등의 라이브러리로 구성됩니다. 1. 시퀀스 컨테이너, 연관 컨테이너, 어뎁터 컨테이너에 대해서 설명해주세요. (자료의 구조로 구분을 하면…)시퀀스 컨테이너는 자료를 입력한 순서대로 저장하기 때문에 저장 검색 알고리즘이라고 불립니다. 많지 않은 양의 자료/검색속도가 중요하지 않은 경우에 사용되며 vector, list, string, dequue등이 이에 해당합니다. 연관 컨테이너는 일정한 규칙에 따라 자료를 조직화하여 저장하는 것을 말합니다. 자료를 정렬하여 저장하기 때문에 검색에 유리하고 많은 양의 자료/빠른 검색이 중요할 때 사용합니다..
[일상/사진] 수원 화성 유기견 보호소 봉사활동 후기
[일상/사진] 수원 화성 유기견 보호소 봉사활동 후기
◽ 일상&사진
2025.01.28 19:15
경기도 수원 화성시에 있는 유기견 보호소 봉사활동을 다녀왔다. 너무 오랜만에 간 봉사활동…. 다시 종종 다녀야겠다.봉사활동 중 유기견 봉사는 내가 아이들에게 도움을 주고, 나도 아이들에게 마음의 위로를 받는 활동이여서 좋아한다.여기는 강아지 약 90마리, 고양이 약 30마리 정도가 있었다. 이번에 또 2마리를 누군가 보호소에 두고 갔다고 한다. 한 아이의 삶을 책임지지 못할 거면 시작조차 하면 안된다. 에휴 .. 1. 아이들 밥그릇 물그릇 설거지 후 다시 배치 밥그릇 물그릇마다 이름표가 있어서 이름 찾아서 다시 배치해주고 밥과 물을 채워주면 끝청소하는 동안에는 애들 마당에서 놀도록 모두 풀어줬다. 2. 뒷견사, 앞견사 청소 담당이 아니였다. 설거지 하는동안 마당에 멍멍이 풀어두고 청소하는..
[DirectX12] 섀도우 매핑 (shadow mapping), 섀도우 알고리즘 상세 정리
[DirectX12] 섀도우 매핑 (shadow mapping), 섀도우 알고리즘 상세 정리
◽ directX12
2024.12.18 17:40
1. 장면 깊이 렌더링 광원의 시점에서 본 장면의 깊이를 렌더링하는 과정이 있다. 이는 텍스처 대상 렌더링 ( render - to - texture )의 일종이며, 광원의 시점에서 본 장면의 깊이 값들을 깊이 버퍼에 기록하는 것을 뜻한다. 그림자 매핑 알고리즘에는 두 번의 렌더링 패스가 필요하다. 광원의 시점에서 본 장면 깊이를 그림자 맵에 렌더링플레이어 카메라에서 본 장면을 후면 버퍼에 렌더링  2. 직교 투영/정사영 (Orthographic_Projection)그림자 매핑에서 평행 광이 만들어 내는 그림자를 본뜰때 직교 투영이 필요하다.  (2.1). 직교 투영 행렬 구하기 (orthogonal_projection_matrix) 벡터를 특정 벡터 공간 또는 부분 공간에 직교적으로 투영할 떄 사용하는..
만 29.01살
◽ 일상&사진
2025.07.30 11:14
생일이 지나고, 만 29살이 되었다. 내 나이는 어느새 그렇게 적지 않게 돼버렸다. 요즘은 생각이 많아진다. 또다시 내 시간을, 대한민국이 정해놓은 시계 안에 억지로 끼워 넣고 있는 나를 본다. 아무도 나에게 그렇게 하라고 강요하지 않는데, 스스로 그 틀에 맞추려 한다. 그래서 괴롭다. 사실 나도 안다. 아무도 나의 시계에 관심이 없다는 걸. 그런데도 나는 내 시간을 볼 때마다 초조하고, 괴롭다. 부모님의 나이도 나에게는 불안함의 이유가 된다. 우리 부모님은 그 시절 기준으로도 늦은 나이에 나를 낳으셨다. 아버지는 서른여섯, 어머니는 서른둘. 넉넉하지 않은 형편 속에서도 사랑으로 나를 키워주셨고, 나는 그 누구보다 건강하고 잘 자랐다고 믿는다. 최근에 마음이 힘들 때마다 어디서 본 문장이 떠오른다. "나..
클라이언트 프로그래머 동영상 포트폴리오
클라이언트 프로그래머 동영상 포트폴리오
◽ 게임회사
2022.12.13 14:21
신입으로 취준 할 때 사용한 동영상 포트폴리오 (아직도 신입이지만.^^) 입니다. 쉐이딩 작업 보여줘야 해서 고화질로 올리려고 했는데 용량이 커서 안 올라가네요. 어쩔 수 없이 저화질로 올립니다.이 포트폴리오로 대부분의 회사 서류는 통과했었습니다. (한 곳 빼고 ㅠㅠ)제 블로그 포스팅 최고 조회가 면접 준비 관련 포스팅입니다.연관 검색도 포트폴리오, 면접, 취업 등등이었습니다.조금이나마 도움되고 싶어서 참고용으로 올립니다.참고용으로 올리는 거고 재사용을 할 생각이라서 절대 재배포 하지 말아주세요. 끝!
게임 회사 용어 정리 (아마 계속 업데이트 될거임.)
게임 회사 용어 정리 (아마 계속 업데이트 될거임.)
◽ 게임회사
2024.07.11 17:18
1. IBT (Interal Beta Test)- 임직원들을 대상으로 사내 테스트 2. CDN (Content Delivery Network)- 지리적으로 분산된 서버들을 연결한 네트워크 - 전 세계 CDN 서버의 분산 특성은 서버에서 캐시된 콘텐츠를 사용자에게 더 가깝게 제공함으로써 성능을 향상시킨다.(출처: 베타 플러스) 3. Launcher (런쳐) - 게임을 실행하는 실행파일을 말한다. exe- 바이너리라고 칭하기도 함. 4. OTP (One Time Password) 5. Mac Address (media access control address)- 네트워크 세그먼트의 데이터 링크 계층에서 통신을 위한 네트워크 인터페이스에 할당된 고유식별자. (출처: 위키백과)🎞 상황극??? : 맥...?..
최신글
◽ 일상&사진2025.07.30 11:14만 29.01살

생일이 지나고, 만 29살이 되었다. 내 나이는 어느새 그렇게 적지 않게 돼버렸다. 요즘은 생각이 많아진다. 또다시 내 시간을, 대한민국이 정해놓은 시계 안에 억지로 끼워 넣고 있는 나를 본다. 아무도 나에게 그렇게 하라고 강요하지 않는데, 스스로 그 틀에 맞추려 한다. 그래서 괴롭다. 사실 나도 안다. 아무도 나의 시계에 관심이 없다는 걸. 그런데도 나는 내 시간을 볼 때마다 초조하고, 괴롭다. 부모님의 나이도 나에게는 불안함의 이유가 된다. 우리 부모님은 그 시절 기준으로도 늦은 나이에 나를 낳으셨다. 아버지는 서른여섯, 어머니는 서른둘. 넉넉하지 않은 형편 속에서도 사랑으로 나를 키워주셨고, 나는 그 누구보다 건강하고 잘 자랐다고 믿는다. 최근에 마음이 힘들 때마다 어디서 본 문장이 떠오른다. "나..

[unreal] AI 시스템 구조 및 Perception
◽ 언리얼(unreal)2025.07.04 23:05[unreal] AI 시스템 구조 및 Perception

Pawn은 움직이는 오브젝트, Controller는 그걸 조종하는 논리1. PawnPawn은 플레이어나 AI가 직접 조종할 수 있는 게임 오브젝트다. 단순히 Actor를 상속받은 객체로, 입력에 따라 움직이거나 상호작용할 수 있다이동, 충돌, 중력 등 기본 기능은 직접 구현해야 하므로, 특수한 움직임(비행기, 드론, 카메라 등)에 적합하다사람 캐릭터처럼 보행이 필요한 경우에는 Character 클래스를 사용하는 게 더 효율적이다.2. ControllerController는 Pawn을 실제로 제어하는 논리를 담당한다. PlayerController(플레이어 입력 처리)와 AIController(AI 로직 처리)로 나뉜다Controller가 Pawn을 Possess(빙의)하면, 해당 Pawn을 자유롭게 조종..

[unreal] 애니메이션 리타게팅
◽ 언리얼(unreal)2025.07.04 23:00[unreal] 애니메이션 리타게팅

1. 정의IK 리타게팅(Inverse Kinematics Retargeting)은 언리얼 엔진에서 제공하는 애니메이션 변환 기능으로, 서로 다른 스켈레탈 메시 간에 애니메이션 데이터를 자연스럽게 이전할 수 있도록 지원한다. IK(역운동학) 알고리즘을 활용하여 손, 발 등 주요 신체 부위의 위치 정밀도를 유지한다. 2. 주요 특징본 구조 차이 대응: 본 개수, 명칭, 방향 등이 상이한 캐릭터 간에도 애니메이션 재사용이 가능하다. 정확한 컨택 포인트 보정: 손, 발 등 주요 부위가 바닥 또는 오브젝트에 정확히 닿는 동작을 실시간으로 보정한다. 엔진 내 통합 워크플로우: 외부 툴 없이 언리얼 엔진 내에서 직접 세팅 및 적용이 가능하다. 3. 사용 절차소스 및 타깃 스켈레탈 메시 준비 각 메시에 IK Rig 에..

[Perforce/P4V] warning : Can't clobber writable file ....
◽ 툴(tool)2025.05.29 18:50[Perforce/P4V] warning : Can't clobber writable file ....

"⚠️warning : Can't clobber writable file"clobber : "덮어쓰다" , '강제로 교체하다' 기본적으로 Perforce에서 받은 작업 공간의 파일을 수정하기 위해서는 [Check out...] 과정을 거쳐야 한다. 이 과정 [Check out...]에서 읽기 모드이었던 작업 파일이 쓰기 모드로 바뀌게 되고 수정이 가능하게 된다.Perforce는 [Check out...] 과정을 생략하고 직접 읽기모드를 변경하거나 파일을 덮어 씌운 파일이 존재할 때 업데이트를 받게 되면 사용자가 작업 중인 내용을 실수로 잃는 것을 방지하기 위해 덮어쓰기를 하지 않고 warning을 뱉어낸다. 근데 만약 .. 덮어쓰고 싶다? 할 때 아래 방법을 따라 하자! P4V -> Connectio..

(c++) 레퍼런스/reference 정리
◽ c, c++2025.05.26 17:05(c++) 레퍼런스/reference 정리

가끔 레퍼런스랑 포인터랑 사용을 혼돈 할 때가 있다. 이터레이터(iter) 경우도 있고 막 &(*) 여러 시도하다가 빌드 오류 안나면 그냥 넘어가는 경우가 있었다. 그럴 때 마다 한 번 제대로 정리 해야겠다. 생각하면서도 넘어가는 경우가 많았다. 오늘은 진짜 .. 정리 한 번 해보려고 한다. 내용은 [전문가를 위한 C++(개정 4판)]이다. 1.레퍼런스 초기화레퍼런스는 처음 초기화 할 때 지정한 변수만 가리킨다. 한 번 생성되고 나면 가리키는 대상을 바꿀 수 없다. 레퍼런스를 선언 할 때 어떤 변수를 '대입'하면 레퍼런스는 그 변수를 가리킨다. 하지만 이렇게 선언된 레퍼런스에 다른 변수를 대입하면 레퍼런스가 가리키는 대상이 바뀌는 것이 아니라 레퍼런스가 원래 가리키던 변수의 값이 새로 대입한 변수의 값으..

라이브 이슈 문제와 해결 방안 정리 (화면이 깨진다. + 마크랑 이름이 잘려 보인다. + 사람이 다수 모이면 그러하다.)
◽ 에러 해결 메모2025.05.26 17:00라이브 이슈 문제와 해결 방안 정리 (화면이 깨진다. + 마크랑 이름이 잘려 보인다. + 사람이 다수 모이면 그러하다.)

공성전 중 길드 마크와 이름이 사라지는 현상 분석 최근 공성전 콘텐츠에서 유저들로부터 버그 제보가 들어왔다."공성전 중 사람이 많아지면 화면이 깨진다.""컴퓨터 성능 문제는 아니다. 채팅창을 보면 나만 그런 게 아니다.""캐릭터와 배경은 멀쩡한데, 길드 마크와 유저 이름이 네모난 투명 형태로 깨지듯 사라진다."게임이 치열하게 돌아가는 상황이라, 빠르게 영상 자료를 받아 분석을 시작했다. 1. UI 렌더링 구조 의심해당 게임은 DirectX9 기반으로 동작하며, UI와 이름표는 ID3DXSprite와 ID3DXFont를 이용해 렌더링하고 있다.처음엔 Sprite 내부 버퍼 초과 문제를 의심했다.예를 들어:m_pSprite->Begin();m_pSprite->Draw(...);m_pSprite->End();..

[unreal] Gamemode, UE_LOG
◽ 언리얼(unreal)2025.03.08 19:43[unreal] Gamemode, UE_LOG

1. 게임모드 기본적으로 레벨에 들어가서 게임 규칙을 관리하는 엑터누가 어디에 스폰해야 하는지와 플레이어에게 어떤 클래스를 사용하고 그 밖에 게임 작동 방식을 정의하는 수많은 클래스를 사용하는 방법을 알려준다. 멀티 플레이어 게임에서는 해당 게임에 허용되는 플레이어 수 등을 제어할 수 있고 바람 조건, 깃발 뺏기 같은 게임 모드가 있는가 하면 배틀로얄 같은 다른 유형도 있을 수 특정게임 특정 유형을 말한다.  액터 클래스의 기반이 될 베이스를 선택할 거다. 게임모드베이스가 제일 전반적으로 사용한다. 불필요한 것을 제외한 최소한의 설정과 항목만 포함되어있다.  보통 엑터 블루프린트와 비슷한 창을 볼수 있다. 오른쪽 Classes는 클래스 디폴트로 가서 해당 액터의 프로퍼티와 설정을 보면 클래스라는 섹션이 ..

[unreal] 움직이는 물체에 가만히 있는 플레이어 뚫림현상
◽ 언리얼(unreal)2025.03.08 19:00[unreal] 움직이는 물체에 가만히 있는 플레이어 뚫림현상

현상: 움직일때는 충돌처리 ok, 움직이지 않을 때는 충돌처리 no 캐릭터 코드는 움직이지 않는 한 콜리전을 확인 하지 않는다.  해결 : udemy - 【한글자막】 Unreal Engine 5 C++ 개발자: C++ 학습하고 비디오 게임 제작하기 이렇게만 했을 때 문제점: 플레이어 캐릭터의 움직임을 잃어버린다. 엑터의 방향도 적용해준다.  야매인지 모르지만..? 일단 강의 들으면서 꿀팁 같아서 메모..해둔다.

[게임수학] 원과 각도 (삼각형, 삼각함수.. 부수기)
◽ 게임 수학2025.03.06 17:01[게임수학] 원과 각도 (삼각형, 삼각함수.. 부수기)

게임수학 기본적인 거 진짜 제대로 알자... 제대로 모르면 쪽팔린지 알고 열심히 하자... 좀 열심히 살아 나란 놈!!😒 파이팅!! 😊1. 용어 정리지름 (Diameter) 반지름 (Radius)둘레 (Circumference / Perimeter) = 원주 중심 (Center / Origin) 호 (Arc) 부채꼴 (Sector) 각도 (Degree)원주를 지름으로 나누면 항상 일정한 값이 나온다. 이를 원주율이라고 하며 원의 지름에 대한 원주의 비율( π )이다. 파이(π)는 원주를 지름으로 나눈 값이다. 타우(τ)는 원주를 반지름으로 나눈 값이며, ( 2π )와 같다. 2. 각도 (Degree/ θ)와 라디안 (Radian / Rad) 라디안 (Radian / Rad) : 어느 한 원 위의..

[세팅] pch : pre compile header 세팅, 다른 프로젝트 참조하기, 실행파일 저장위치 변경하기
◽ 컴퓨터 공학2025.03.06 17:00[세팅] pch : pre compile header 세팅, 다른 프로젝트 참조하기, 실행파일 저장위치 변경하기

1. pch(pre compile header)?컴파일러가 더 빠르게 처리할 수 있는 중간 형태로 컴파일된 (c 또는 c++) 헤더 파일.stdafx.h --> 내가 적용하고 싶은 미리 컴파일된 헤더 이름으로 변경  pch.cpp 파일 속성에서 사용이 아니라 만들기로 변경  2. 다른 프로젝트 연결하기 예를 들어, ServerCore프로젝트를 GameServer와 DummyClient가 참조하고 싶을 때 속성 설정 방법이다.GameServer와 DummyClient 모두 동일하게 속성창에 들어간다. 포함디렉터리와 라이브러리 디렉터리에 포함디렉터리: $(SolutionDir) 포함하고 싶은 프로젝트 이름 \라이브러리: $(SolutionDir) 포함하고 싶은 라이브러리 이름 \ 3. 실행파일 저장위치 변경..

[unreal - udemy/blueprint]
◽ 언리얼(unreal)2025.02.25 14:53[unreal - udemy/blueprint] "WarehouseWreckage" Part_1

프로젝트 이름 길이에는 제한이 있고, 특수 문자도 지양해야 한다.프로젝트 로그를 업로드 하고 싶을 때는 https://gist.github.com/ 에 로그 붙여서 CreateSecret Gist로 업로드 하는게 예의라고 한다.    1. 블루프린트 용어 정리 이벤트 그래프(event graph) - 블루프린트를 그릴 캔버스 ( The canvas for our Blueprint )노드(Node) - 블루프린트에서 사용할 수 있는 미리 만들어진 기능 ( Premade functionality ) 이벤트(evnet) - 언제 사건이 발생해야 하는지에 대한 노드 ( "when" node )핀(Pin) - 노드를 연결할 수 있는 소켓 ( Sockets we can connect up )    (1). 입력 핀..

Windows 응용 프로그램
◽ 컴퓨터 공학2025.02.05 14:37Windows 응용 프로그램

WindowsWindows라는 제품명과 같이 Windows용 응용 프로그램을 프로그래밍할 때 주된 주제 하나는 '창(Window)'을 만들고 관리하는 것이다. windows 응용 프로그램의 여러 구성요소, [주 창, 도구 모음, 메뉴, 스크롤바, 버튼, 기타 대화상자 컨트롤]은 모두 창이다. 따라서 windows 응용 프로그램은 일반적으로 다수의 창으로 구성된다.    1. 자원 Windows에서는 여러 개의 응용 프로그램이 동시에 실행될 수 있다. 따라서 CPU나 메모리, 모니터 화면 같은 하드웨어 자원들을 여러 응용 프로그램이 공유해야 한다. 그렇게 되면 여러 응용 프로그램이 자원(Resource)에 무질서하게 접근하게 된다. 이를 막기 위해 windows는 응용 프로그램이 하드웨어에 직접 접근을 못..

728x90
image