덴바의 노트

내일배움캠프 2일차 TIL 본문

프로그래밍 노트/TIL

내일배움캠프 2일차 TIL

덴바 2024. 4. 17. 21:08

 

오늘의 학습 키워드

 

 

  • 깃 플로우
  • IL2CPP Compile
  • Burst Compile

 

 

깃 플로우

 

개발을 하면 반드시 맞닥뜨리는 문제가 하나 발생하게 된다.

 

 

다수의 인원과 함께 프로젝트 관리 및 통합

 

 

과거에는 CD나 플로피 디스크, USB 등을 이용하여 프로젝트를 관리했으며,

 

이로 인해 파일 또는 시스템 내부 기능에서 에러를 발생하는 경우가 많았다.

 

이를 보다 더 안정적으로 관리하기 위해서 인터넷 상에 원격 저장소를 두고

 

여러 개발자가 해당 저장소를 원격으로 이용하며 프로젝트를 관리해왔다.

 

이러한 시스템을 가진 것이 Git이며 이를 VCS ( Version Control System ) 이라고 한다.

 

VCS로 인해 보다 편한 가독성, 편리성, 사용성이 증가했다.

 

하지만, 여러 개발자들과 함께 하나의 원격 저장소로 데이터를 저장하다보면 Git 또한 오류가 발생할 수  있다.

 

그렇기에 먼저 프로젝트의 목적과 기능을 정하고 최소 단위로 모듈화해야 한다.

 

그 후 각 개발자들이 겹치지 않게 모듈을 정한 후 Branch를 생성한다.

 

그렇게 하여 만든 Branch의 경우 아래와 같은 형태를 띠게된다.

 

맨 아래의 Branch 작업을 완료했을 경우 협업자와 소통 후 Merge를 통해서 내용을 합쳐서 하나의 기능으로 만든다.

 

이 과정을 반복하여 최종 프로젝트를 완성시킨다.

 

 

IL2CPP Compile

 

C#의 스크립트는 기본적으로 위와 같은 컴파일러를 사용한다.

 

컴파일러란 특정 고급 언어의 스크립트를 다른 언어로 번역하는 프로그램이다.

 

고급 언어는 C, C++, JAVA 등 우리가 사용하기 편한 언어지만

 

실질적으로 컴퓨터가 원하는 언어는 0과 1로 나누어지는 기계어이다.

 

C#을 사용하는 유니티 또한 컴파일러가 존재하는데 그것이 바로 IL2CPP Compiler이다.

 

과정은 아래와 같다.

 

C# -> IL -> C++ -> Assembly -> 기계어

 

 

문제는 위와 같이 C#을 C++로 번역 후 C++을 다시 Assembly언어로 번역하는 과정으로 인해 C++을 베이스로 하는 Unreal Engine과 달리 딜레이가 생긴다.

 

이를 위해  유니티에서 준비한 새로운 컴파일러가 Burst이다.

 

C# -> IL -> Burst -> Assembly -> 기계어

 

위 과정과 같이 C#에서 C++로 번역하지 않고 해당 과정을 스킵한다.

 

이로 인해 기존과는 달리 CPU 면에서 확실한 성능 향상을 보여준다.

 

 

오늘의 회고

 

개발의 중요성은 협업, 소통, 그리고 최신 기술 및 트렌드에 있다고 생각한다.

 

수많은 스크립트와 에셋, 서버, 미들웨어 등, 프로그램은 혼자서 관리하기 힘들며,

 

많은 사람들과 관리하는 것 또한 VCS를 사용하지 않는 이상 관리하기는 힘들다.

 

또한 협업과 VCS를 사용한다고 해도, 개발자 간의 소통이 없으면 충돌이 자주 날 가능성이 높다.

 

충돌이 일어난다면 결국 프로젝트의 진행이 늦어질 수 있으며, 이는 결과적으로 개발자들의 스트레스를 유발할 수 있다.

 

앞으로의 개발 실력을 위해서라도 최신 트렌드의 동향을 알아보고 공부하며, 개발자와의 소통, 협업 스킬을 향상하는 것을

 

목표로 할 것이다.