TIL

26.03.19일자 - TIL

csh8696nb 2026. 3. 19. 21:23

아침 팀 회고 / ACK / 베이직 분반 / 개인 프로젝트 / 9번 과제 해설 / 10번 과제 발제

9번 과제 완료 / 개인 프로젝트 수행
==========

제약사항의 3번째 예외사항을 제대로 확인하지 못해서 필요없는 고민을 좀 더 했던 것이 함정이었다.

필요한 수량과 10일치 할인 수량을 만들고 일차를 순회하며 새로운 값과 당일 할인 품목을 바꿔 순회하는 방법을 사용한 풀이.
==========
다음 주 부터 오후 3시로 분반 수업 이동함

AssetHandling - 자동차 헨들 같이 언어 자체로 대입해서 생각하면 깔끔하다.

Hard Ref - 리소스를 거칠게 가지고 있는 것
soft Ref   - 리소스를 부드럽게 가지고 있는 것

구분하는 이유
메모리 효율 문제. ->필요한 리소스만 효율적으로 사용하기 위해서.
프레임이 멈춰도 유저가 인지하는가 -> 로딩 타임 / 인 게임
로딩이 너무 길어져도 안되지만 인 게임에서 짧은 시간(0.05초 한 자릿수 프레임) 딜레이가 되어도 UX가 망가진다.
sync  ->stall이 생김

Thread - Game/Render/AssetLoad/..../(아마 6개) -기본적으로 UE에서 동작하는 스래드들

 

보는 것 / 생각, 행동 // 분리되어 있듯 분리되어 있는 것.

함수가 호출되는 장소가 중요하다.

Multi Process / Multi Thread
프로세스란? - 실행 중인 프로그램
Multi Process - 프로세스 아래에 프로세스가 달려있는 것
 - P 작업 관리자에 보이는 것 / T 작업 관리자에 안 보이는 것 = 아님
프로세스를 숨기는 기능도 있고 이렇게 접근하는 것은 좋지 않다.
Multi - 둘 다 병렬로 관리하는 개념인 것은 같다.
런처와 게임 / 런처를 종료했을 때 게임이 종료될 수도 있고 아닐 수도 있는 예시.

멀티 프로세스 - Ram에서 프로그램에 할당된 공간을 여러개 사용하는 개념
멀티 쓰레드    - CPU 코어 아래에 있는 쓰래드를 여러개 사용하는 개념

파이프 =/= 파이프 라인
프로세스 간의 정보 공유에는 파이프라는 것이 별도로 필요하다.(불가능은 아님)
쓰레드 간의 정보 공유에는 별도의 활동이 필요 없다.(원활하게 공유 가능)

Atomic -Mutecs/S...라는 방법으로 나눠지게 lock을 걸 수 있다.
뮤텍스 - 나만 쓸 수 있는 화장실 열쇠(1개) / 세마포어 - 화장실이 N개 열쇠도 N개
ST / DL -그런 게 있다.

직렬화 / 기아 상태 (starvation)
DeadLock - 진행 중 락이 겹쳐서 스래드가 멈추는 현상

Hard Ref
Soft Ref - sync / Async  // Packaging issue
soft Ref 체인에서 경로만 남고 실제 내용물이 패키징에 포함 안 돼서 패키징 후 로드 실패로 터지는 이슈

Project Settings -> Packaging -> Advanced 하단 ->Additional Asset Asset D to C/
Directories to never cook -> 해당 경로(폴더)를 무시
Asset Directories to Cook -> 해당 경로(폴더)를 쿠킹에 추가(강제)

패키지에 넣거나 카피해서 넣는 두 가지 방법이 있다.
Pak -> Unreal Loader
usb처럼 사용
Json/jpg.... -> file i/o

Primary Asset

Asset Manager

Primary Asset
.pak -chunk0 <=기본
chunk_ <= 얘가 또 기본으로 나옴

Explicit Assets/Blueprints - 제외 할 것.

ReferenceViewer
=====
guard clause
==========
with validation - true <->false - 클라이언트가 터짐
==========
IOCP
dll / lib

모듈 vs 컴포넌트의 차이 // 모듈 vs 플러그인의 차이 // 모듈 vs 서드파티 모듈
서드파티 모듈 - 외부회사나 코드 공개하기 싫을 때 SDK나 Lib로 빼는 방법(?)
모듈 - 프로젝트 내 코드 구조화, 빌드 속도 최적화, 프로젝트에 종속적
플러그인 - 모듈+에셋+설정의 묶음, 다른 프로젝트로 이동 가능
==========

처음 생각했던 구조에서 변형 - 더 변경될 수 있음.

Public/
├─ Core/

│ ├─ GameModeBase.h

│ └─ GameStateBase.h

├─ Character/

│ ├─ PlayerCharacter.h

│ ├─  MonsterCharacterBase.h

│ └─ PlayerControllerBase.h

├─ Combat/

│ ├─ SkillComponent.h

│ └─ DamageTypeBase.h

├─ Inventory/

│ ├─ InventoryComponent.h

│ └─ ItemData.h

├─ Skills/

  ├─Skill1.h

  └─Skill2.h

└─ Dungeon/

├─ DungeonManager.h

└─ SpawnRule.h

 

'TIL' 카테고리의 다른 글

26.03.23일자 - TIL  (1) 2026.03.23
26.03.20일자 - TIL  (0) 2026.03.20
26.03.18일자 - TIL  (0) 2026.03.18
26.03.17일자 - TIL  (0) 2026.03.17
26.03.16일자 - TIL  (0) 2026.03.16