프로그래밍 공부

2024/01 107

카테고리 설명
  • 메모리 릭 (memory leak) 프로그램이 동적으로 할당한 메모리를 해제 하지 않고, 그대로 방치하는 상황을 이야기 한다. C++에서 new[]로 할당한 배열 형태의 메모리와 이를 해제하는 delete[]가 정확하게 수행되지 않았을 때, 발생한다. 메모리 누수의 영향 자원소모 메모리 누수가 계속되면, 사용가능한 메모리양이 감소하여, 시스템에 부하를 줄 수 있다. 프로그램 종료까지 남아있는 메모리 프로그램이 종료되기 전 까지는 할당된 메모리는 계속 남아있게 되어 불필요한 자원낭비가 이루어진다. 방지법 정확한 해제 delete[]를 항상 할당과 반대순서로 정확한 위치에서 호출하여 메모리 해제를 해야한다. 스마트 포인터 사용 C++11부터 제공되는 스마트포인터인 std::unique_ptr 또는 std::..

  • 1.1.12 타입 추론 타입 추론(type Infernerce)는, 컴파일러가 표현식으로부터 타입을 자동적으로 연역해내도록 한다. 타입추론을 위해 두개의 키워드 auto와 decltype이 추가되었다. C++14부터는 decltype(auto)로 조합하여 사용할 수도 있다. auto 키워드 auto 키워드는 네 가지 전혀 다른 의미를 가지고 있다. 첫번쨰 사용 예는, 어떤 변수의 타입을 컴파일 타임에 자동적으로 연역해내는 것이다. auto x = 123; 위의 x는 자동적으로 int타입으로 변환된다. 그러나, int대신 auto를 타이핑 했을 뿐, 그다기 효용이 없다. 하지만, 복잡한 타입의 경우, 효과가 있다. 예를들어, 함수 getFoo() 의 리턴타입을 추론하기 힘들다고 가정하면, 리턴값을 변수에 ..

  • 1.1.11 함수 프로그램의 크기가 커지면, main() 함수에 모든 코드를 담을 수 없다. 프로그램을 이해하기 쉽게 하려면, 코드의 일부를 의미있는 단위로 쪼개어, 즉 분해(decompose)하여 함수로 만들어야 한다. 다른 코드에서 함수를 이용할 수 있게 하려면, 함수를 선언해야 한다. 함수가 특정 소스 파일 안에서만 사용된다면, 보통 그 파일 안에서 선언과 정의를 모두 하게 된다. 반면 다른 모듈의 소스파일을 이용한다면, 함수 선언은 헤더파일에 위치시키고, 함수정의는 소스 파일에 두게된다. void myFunction(int i, char c); 리턴타입이 void 임으로 호출자에 아무런 결과를 돌려주지 않는다. 함수 파라미터로 int와 char이 선언되어있기 때문에, 파라미터를 무조건 입력해야 선..

  • 1.1.10 루프(반복문) 컴퓨터는 태생적으로 같은 작업을 반복하는데 능하다. C++에서는 while루프, do/while루프, for루프, 구간지정for루프 등, 네가지 형태의 반복문을 지원한다. while루프 while루프는 주어진 표현식이 참인 동안 while블록의 코드가 실행되게 한다. 다음 코드는 this is silly 를 다섯번 출력하는 코드이다. int i = 0; while ( i < 5) { std::cout

  • 트랜스폼 = 객체의 PRS Position Rotation Scail 언리얼에서는 좌표계가 다르다. TRS로 곱한다. 사실 어떻게 곱하든 상관없음. 모빌리티 스태틱 = 객체가 움직이지 않도록 비허용 무버블 = 객체가 움직이도록 허용 언리얼 리플렉션 리플리케이션 언리얼 계층구조

  • 언리얼 계층구조를 크게 살펴보자. 월드, 레벨, 오브젝트, 컴포넌트 이렇게 4개로 계층구조를 크게 나눌 수 있다. 월드 : 게임 전체 환경을 나타내며, 모든 게임컨텐츠의 기초이다. 월드는 여러개의 레벨로 구성된다. 레벨 : 월드내에서의 개별환경을 나타낸다. 각 레벨은 독립적인 게임환경을 제공하고, 여러개의 오브젝트로 구성된다. 오브젝트 : 오브젝트는 레벨 내의 개별요소를 나타낸다. 이것들은 게임캐릭터, 아이템, 배경 등 다양한 형태를 가진다. 언리얼에서는 엑터라고 표현한다. 이러한 엑터들은 컴포넌트들로 구성된다. 컴포넌트 : 오브젝트의 부분기능, 특성을 나타내는 모듈화된 요소를 나타낸다. 오브젝트의 함수라고 이해하면 편하다. 월드 게임 내의 월드 자체를 의미하는데, 우리가 생각하는 게임 스테이지는 월드가..