[UE5 TIL] Day 23 - C++ 팀프로젝트

JungHoon Eum·2026년 3월 27일

오늘의 교훈

  • 프로그램을 짜는 거다 보니, 각자 알아서 하자 --> 이게 사실 안된다. 올리고 보고 수정하고 올리고 보고 수정하고를 반복해야
  • 큰 뼈대(우리 경우는 GameManager) 수정이 잦고 충돌날 여지가 제일 많다. 큰 틀 설계를 빨리빨리 하는 게 중요
  • 커밋을 자주, 많이. 충돌을 두려워하고 완벽주의적으로 커밋 푸시 하지 말자. 결국 서로 보고 서로 수정을 반복할수록 매끄러워진다.
  • 지금 컨C컨V가 편하다는 핑계로, 파일구조 자체를 바꾸는 건 두렵다는 핑계로 공용 클래스 설계를 자꾸 미루고 있는데...앞으론 이런 걸 두려워하지 말자

키워드

  • Reset current branch to this commit, 광역 주석 처리, pointer to reference is not allowed, struct 헤더, int 메서드, static_cast<int>

소스트리 관련

  • Reset Current branch to this commit: 내 로컬 브랜치 상태 정리하고 원격 main 브랜치로 맞추기
    이거 이용해서 내가 브랜치 옮겨다니가 커밋 하려다마려다 하면서 생긴 히스토리 밀어버릴 수 있다.
  • 로컬 브랜치들마다 track 하고 있는 리모트 브랜치가 다르다. 그에 따라서 왼쪽 BRANCHES 에 1↑ 같은 게 뜨는 것.

비주얼 스튜디오 관련

  • cpp 안 쓰고 헤더만 쓰는 경우도 있다. struct 같은 거 공용으로 쓸 때 그거 헤더에 작성하고 양쪽에 #include
  • 드래그 영역 주석 처리: Ctrl+KCtrl + C. 해제는 Ctrl+KCtrl + U

코딩 관련

  • pointer to reference is not allowed: 말 그대로. 레퍼런스를 가리키는 포인터는 못만든다. 더 중요하게. 레퍼런스 벡터, 레퍼런스 배열은 없다
    • 결국 포인터 *를 계속 쓰게 된다. 해제할 부분을 잘 고심해서 만들자.
  • UI 쪽에서 받아볼 정보를 BattleRoom 에서 패키징해서 건네주기 -> struct 활용하면 좋다. 화면에 표시되야 하는 정보들만 가져가기 좋음.
    • Card 등 표시해야 할 정보가 많은 클래스들은 객체 자체로, 또는 포인터로 가져가 버리기. 가능하면 UI는 스트링 정보만 받아가게 만들고 싶었는데...풀어 내야 할 정보량이 BattleRoom 내에서 다 처리하기엔 너무 많다.
  • 배틀 룸에 들어갔다 나올 때, 클리어해서 나온건지 게임이 클리어된건지 게임오버 된건지 확인을 GameManager에서 해야 하는데...main에서 착안해 battleRoom.Run 함수 반환값을 int 로 설정.
  • static_cast<int>(): 명시적 형변환. 안전안전하게
profile
개발지망생

0개의 댓글