▪ Dangling Pointer : A 포인터로 메모리 해지시키고 B 메모리로 접근 시 발생하는 에
▪ 포인터 변수가 저장되는 메모리 delete로 해제했을 때는 포인터 변수가 가리키는 데이터가 해제된 것이므로 포인터 변수는 함수 종료시까지 소멸X (다른 데이터 재할당 가능 → 이때 할당되는 메모리는 이전 메모리와 무관한 새로운 메모리 블록)
▪ 스마트 포인터 : 메모리 자동 관리 해주는 포인터
▪ 얕은 복사(주소를 복사)와 깊은 복사(가리키는 내용을 복사)
▪ 함수 오버로딩 : C++은 함수의 이름에 추가로 매개변수를 가지고 판단
▪ 템플릿 : 일반화된 코드를 작성할 수 있는 문법
1️⃣ Git 특강
🔹Git 이론
Git : 소스 관리 툴
Github : 깃 플랫폼(원격 저장소)
branch : 독립적인 작업 공간
main 또는 master 브랜치가 기본.(에러가 없고 확인이 끝난 깔끔한 공간)
dev 브랜치가 실질적인 작업공간
순서
원격 저장소 로컬 저장소에 클론 -> 새로운 브랜치에서 작업 -> 변경 사항 커밋 -> 원격 저장소로 푸시 -> Pull Request 생성 -> 코드 리뷰 후 병함
//로컬 저장소 생성(처음 원격 저장소에 올리는 사람만 사용하면 됨)
git init
//add: 변경 내용을 스테이징 영역에 추가(임시)
git add <파일명>
//commit: 변경 내용을 (로컬)저장소에 기록(확인)
git commit -m "커밋 메시지"
//push: 로컬 변경 사항을 원격 저장소(main이라는 이름의 브랜치)에 업로드
git push origin main
//pull: 원격 저장소의 변경 사항을 로컬로 가져오기(clone으로 받은 파일이 원격 저장소와 다를 때)
git pull
//clone: 원격 저장소 복제(프로젝트를 처음 받을 때)
git clone <저장소 URL>
//branch: 작업환경을 나눔
git bracnch
//checkout: 다른 작업환경으로 이동
git checkout
//merge: 작업환경을 합침
git merge
언리얼 엔진의 협업 도구는?
Perforce(무료_5명 미만 소규모는 공짜)와 Plastic SCM, SVN(무료) 같은 도구 사용
Git 을 사용할 수 있으나 대용량 파일 처리 비효율 등의 문제로 Git LFS를 추가해야 함(잘 사용하려면 유료)
🔹 Git 실습
Dark 모드 설정
1. 레포지토리 클론
비주얼 스튜디오로 생성한 깃허브 폴더 열면 새로운 폴더(.vs는 개인 세팅) 생기고 깃허브 데스크톱에 업로드 됨
.vs 개인 세팅 폴더 제외하고 깃허브 올릴 때는 .gitignore 파일을 만들어서 폴더 이름을 적어주면 됨