본문 바로가기

전체 글

(48)
[Git] UnrealEngine Github 초기설정 UnrealEngine 4.26버전 기준입니다 GitHubDeskTop과 Git의 다운로드가 선행되어야합니다 [소스 컨트롤] -> [소스 컨트롤에 접속] 제공자를 Git 베타버전으로 설정해줍니다 Git로 프로젝트 초기화를 눌러준다음 새로뜨는 창도 세팅 수락을 눌러줍니다 여기까지해주었다면 이제 저희 프로젝트 폴더에는 .git 파일과, .gitignore 파일, README.md 파일이렇게 3개가 추가된것을 확인할 수 있습니다 이제 Github DeskTop을 실행시켜 [File]->[Add local repository]를 통해 저희의 프로젝트 폴더를 깃허브에 올려보겠습니다 저희 깃허브에 올릴 프로젝트의 .git폴더가있는 최상위 경로의 위치를 Lcal path의 경로로 지정해줍니다 이제 마지막으로 Publ..
[C++] 복사 생성자 깊은복사 얕은복사 복사 생성자란 같은 클래스 타입의 다른 객체에 대한 참조를 받아, 그 참조를 통해 해당 객체를 초기화하는 방법입니다. 이러한 복사는 깊은 복사와 얕은 복사 2가지로 나누어집니다. 얕은 복사는 참조받는 객체의 메모리를 할당 하는 방법이고, 깊은 복사는 참조받는 객체의 메모리의 내용이 복사됩니다 복사 생성자도 디폴트 생성자 처럼 컴파일러가 알아서 만들어주기 때문에 특정 특별한 경우를 제외하고서는 굳이 정의하지않아도 됩니다. 복사 생성자를 정의해야 하는 경우는 클래스 내부에서 메모리를 동적 할당 및 해제하고 이를 멤버 포인터 변수로 관리하는 경우는 복사 생성자를 정의해야합니다 class Person { private: char* name; int* age; public: Person() { name = NUL..
리터럴(literal)과 상수(constant) 리터럴(literal)과 상수(constant)둘은 둘 다 변하는 않는 값으로 같은 의미로 알고 있었지만 차이점이 존재합니다 상수는 변수중에 변하지 않는 변수를 의미합니다 프로그램이 실행되는 동안 메모리에 저장된 데이터의 값을 변경할 수 없습니다 리터럴 상수는 변수에 대입하는 데이터 그자체를 의미합니다 간단한 예제를 보여드리겠습니다 const int a = 1; 앞에 const 를 붙임으로써 a는 상수(constanst)가 됩니다 a에 대입되는 값 1이 리터럴(literal)입니다 상수는 변하지않는 변수를 의미하며(메모리 위치) 메모리 값을 변경할 수 없습니다 리터럴은 변하지않는 데이터(메모리 위치 안의 값)를 의미합니다 여담으로 define을 사용하는 것보다 const를 사용하는 것이 다 효율적이라고 ..
[C++]inline 함수와 매크로 함수 inline 키워드는 함수를 호출할 때 발생하는 오버헤드를 줄이기 위해 함수가 호출되는 대신 함수가 호출되는 곳마다 함수의 코드를 복사해 넣어주는 방법입니다 오버헤드는 무언가를 처리할때 드는 추가적인 시간을 말합니다 함수 호출의 과정은 아래와같습니다 함수의 인자를 스택에 저장 함수가 리턴될 때 돌아올 주소를 스택이나 레지스터에 저장 함수의 시작 주소로 점프 함수의 코드 실행 함수에서 만들어진 지역변수, 스택에 저장된 인자 해제, 리턴 값을 레지스터에 저장 함수를 호출할 때 저장해둔 주소로 돌아감 이러한 과정 속에서 오버헤드가 발생하게 됩니다 간단한 함수도 이러한 과정을 거치기 때문에 이러한 오버헤드를 줄이기 위해 inline이라는 키워드를 사용하게 됩니다 하지만 함수 코드가 복제되기 때문에 실행파일의 크..
[C++] Virtual가상함수와 Overidding오버라이딩 오버로딩과 오버라이딩은 객체 지향 프로그램에서 서로다른 객체들에게 같은 기능에대해 같은 의미를 갖는 특징을 객체의 다형성이라고합니다 우리는 오버로딩으로 매개변수의 타입의 다형성을 오버라이딩을통해 클래스간의 다형성을 볼 수 있습니다. void Calcu(int a,int b)//초기 함수 { cout
HUD와 UI 언리얼 공부를 하던 중 HUD라는 생소한 단어가 등장했다 UI와 다를 바 없어 보이는 단어인데 뭐가 다른가 궁금해서 구글링을 통해 찾은 정보를 접어두려 합니다 HUD(Hand Up Display)는 화면에 뿌려지는 유저가 개입할 수 없는 UI의 개념입니다 Ex) 캐릭터 체력, 경험 치바 등 유저가 제어할 수 없는 이미지 UI(User Interface)는 유저가 개입이 가능한 이미지를 의미합니다 시작 버튼, 일시정지 버튼, 상점에서 물품을 구매하는 등 유저가 개입이 가능한 이미지와 같은 디자인 명칭을 UI라고 칭합니다 경계가 있는 거 같지는 않다 그저 UI라는 큰 틀에서 유저의 개입이 불가능하면 HUD라고 부르는듯합니다 UI 가 HUD를 포함하고 있다고 생각하면 될듯합니다
[Git] warning: LF will be replaced by CRLF 유니티로 깃허브 연동하려하는데 add 과정에서 해당 오류가 발생하였다 해당오류는 서로 다른 OS개발자들이 git협업시 발생하는 whitspace(여백) 오류라고 한다 유닉스 시스템에서는 한 줄의 끝이 LF(Line Feed)로 이루어져있고, 윈도우는 줄 하나가 CR(Carriage Return)(/r)과 LF(Line Feed)(/n) CRLF로 이루어져있기때문에 발생하는 오류라고합니다 해결방법은 아래보이는 명령어를 입력하면됩니다 해당 프로젝트만 적용하기를 원한다면 --global 명령어를 삭제하면됩니다 git config --global core.autocrlf true git config core.autocrlf true 저는 뭘 잘못쳤는지 모르겠지만 --global 명령어를 빼고 했었는데 계속오류가..
[Git]Github CMD 주요 사용 명령어 정리 git init 로컬 저장소를 생성하는 명령어 입니다 해당로컬저장로를 통해 .git 폴터가 생성됩니다 git status 해당 디렉토리와 스테이징 영역의 상태를 확인하기 위해서 사용합니다 총 3가지 영역을 확인 할 수 있는데 Changes to be committed : 스테이징 영역에 넘어가 있는 변경 내용을 보여줍니다. Changes not staged for commit : 아직 워킹 디렉토리에 있는 변경 내용을 보여줍니다. Untracked files : 아직 워킹 디렉토리에 있는 아직 한 번도 해당 Git 저장소가 관리한 적이 없는 새로운 파일을 보여줍니다. git add 디렉토리의 변경내용을 스테이징 영역으로 옮길 때 사용합니다 git add [파일경로] : 파일경로의 변경내용을 스테이징 영역..