2025-04-22 TIL

알고리즘 문제

문제를 처음 보고 이해하는 것은 어렵지 않았는데, 무적권을 언제 사용해야할지에 대한 고민이 되는 문제였습니다.
그런데 문제를 다시 분석하면서 차근차근 접근해보니 우선순위 큐를 사용하면 무적권을 언제 사용할지 파악할 수 있었고, 알고리즘또한 어렵거나 복잡하게 구현할 필요 없이 반복문만 사용하면 되어 쉽게 풀이해낼 수 있는 문제였습니다.
우선순위 큐를 어제 학습하고 정리해보았는데 오늘 이렇게 바로 알고리즘 문제로 복습을 하게되어 좋은 학습이 되었습니다.
[프로그래머스][C++] 디펜스 게임

디자인 패턴

전체적으로 디자인 패턴을 한 번에 정리하고, 짧은 시간 동안 다양한 디자인 패턴을 학습하다 보니 기억이 잘 안 나거나 헷갈리는 부분이 있어서 복습하면서 다시 정리를 해보았습니다.
정리하면서 정보들을 살펴보면서 추가적으로 학습을 시도하기도 했고, 이를 정리할 때 반영해보았습니다.
복습을 통해 좀 더 기억에 남고 정리될 수 있는 시간이었습니다.
[Design Pattern] 디자인 패턴이란

안티 패턴

디자인 패턴에 대해서 살펴보다가 안티 패턴이라는 개념에 대해서 알게되었고, 이를 좀 더 자세하게 공부해보았습니다.
이전에 클린 코드에 대해서 작성한 글의 내용과 겹치는 부분이 있고, 한 글에서 정리하면 좋겠다라고 생각하여 기존 글을 수정하고 정리해서 작성해 보았습니다.
정리하면서 기존에 작성했던 글을 복습하기도 해보았습니다.
[Design Pattern] 안티 패턴과 클린 코드

예외

이전에 강의에서 예외에 대한 내용이 있었는데, 예외처리에 대해 관심이 있어서 좀 더 자세하게 살펴보고 정리를 해보았습니다.
실제로 예외를 사용한 경험이 많지 않은데 이번 학습을 계기로 앞으로 예외를 안정적이고 견고한 프로그램을 설계하기 위한 방법으로서 사용하면 좋을 것 같습니다.
[C++] 예외

하지만 언리얼 엔진에서는 try-catch를 사용하면 안된다는 정보를 들었었는데, 정확하게 하기위해서 구글링을 해보았습니다.
구글링 중에 포럼의 한 질문글을 살펴볼 수 있었는데, 결과적으로 언리얼 엔진에서는 try-catch문을 지원하지 않아 사용할 수 없다는 내용이었습니다.
아래 링크는 포럼에 올라온 try-catch가 실패하는 이유를 질문하는 글입니다.
Try/Catch fails to catch exception?

위의 포럼 게시글에 의하면 try-catch는 사용할 수 없고, 언리얼 엔진의 Assertscheck, verify, ensure등을 사용해야하는 것 같습니다.
Asserts의 자세한 내용과 사용법은 언리얼 엔진 공식 문서에서 알 수 있었습니다.
Asserts

언리얼 엔진 AI

언리얼 엔진의 AI에 대해서 학습해보고 있습니다.
오늘 학습해본 개념을 간단하게 추려보면 다음과 같습니다.
언리얼 엔진의 AI는 크게 컨트롤러, 비헤이비어 트리, 블랙 보드로 이루어져있다.
NavMeshBoudsVolume이 무엇인지 이 불륨을 동적으로 업데이트 하기 위해서는 프로젝트 설정에서 Reuntime Generation 설정을 Dynamic으로 바꿔야 한다.
Nav Invokers를 사용하면 액터의 주변 네비메시만 활성화 되도록 해서 연산량을 절약할 수 있다.
AI컨트롤러의 MoveToActorMoveToLocation함수로 AI를 특정 위치로 이동시킬 수 있다.
NavModifierVolumeAreaCalssNavArea_Obstacle로 설정한다면, 해당 영역의 이동 비용이 주변 대비 높다라는 의미가 된다.
RVO를 사용해서 움직이는 객체들이 서로의 속도와 방향을 고려해 충돌을 피한다.

언리얼 엔진의 AI에 대해서 자세하게 공부해본 적이 없는데, 이번에 언리얼 엔진의 공인 강사에게 배워볼 수 있는 기회가 생겨서 매우 만족스럽습니다.
이 좋은 기회를 놓치지 않기 위해서 열심히 학습해보겠습니다.

일단 지금은 강의를 쭉 따라가면서 전체적인 개념을 익혀보고, 나중에 개념들을 복습해보면서 직접 구현해보고, 실습을 해보고 응용해보는 것까지가 목표입니다.

Date:     Updated:

카테고리:

태그:

TIL 카테고리 내 다른 글 보러가기

댓글남기기