📝 TIL (Today I Learned)

📅 날짜

  • 2026.01.02

🧩 주제

  • GitHub 협업 중 발생한 오류 해결 및 PR 관리
  • GitHub Desktop 브랜치 관리 실습
  • Visual Studio C++ 프로젝트 구조 이해 (.vcxproj)
  • 팀 프로젝트 오류 디버깅 및 기획서 작성

오늘 배운 내용

오늘은 팀 프로젝트를 진행하면서 GitHub 협업 과정에서 발생한 다양한 오류를 직접 해결하고,
팀원들의 작업을 도와주며 PR 관리와 브랜치 운영에 대한 이해도를 크게 높일 수 있었다.

특히 단순히 내 코드만 관리하는 것이 아니라,
팀 전체의 흐름을 유지하고 복구하는 역할을 수행했다는 점에서 의미 있는 하루였다.


① GitHub PR 관리 및 복구 경험

  • 팀원이 실수로 main 브랜치에 PR을 생성하고 머지를 수락한 상황을 직접 복구했다.
  • Revert PR 방식으로 main 브랜치 상태를 되돌리고,
    이후 올바른 feature 브랜치로 다시 PR을 생성하도록 유도했다.
  • PR을 닫고(Open → Close), 다시 Reopen 하는 흐름을 실제 상황에서 경험했다.
  • "이미 머지된 PR도 되돌릴 수 있다"는 점을 팀원들에게 공유했다.

② 머지 충돌(Merge Conflict) 해결 경험

  • PR 머지 과정에서 발생한 충돌을 직접 확인하고 해결했다.
  • Files changed 탭에서 충돌 지점을 하나씩 확인하며,
    Accept current / incoming / both change의 차이를 실제 코드 기준으로 설명했다.
    • Accept current : 기존 코드 채택
    • Accept incoming : PR 코드 채택
    • Accept  both change : 기존 및 PR 코드 모두 채택(이거는 쓸 일이... 있나...?)
  • 충돌 해결 후 다시 커밋 → PR 갱신 → 머지까지의 흐름을 익혔다.
  • 충돌은 무섭지만, 차분히 보면 충분히 해결 가능하다는 자신감을 얻게 되었다.

③ GitHub Desktop 브랜치 관리 팁 공유

  • GitHub Desktop에서:
    • 브랜치 생성 시 기준 브랜치 확인하는 법
    • 로컬 브랜치와 원격 브랜치 연결 상태 확인 방법
    • 잘못 생성된 브랜치 정리 방법
  • 단순 클릭이 아니라, "지금 이 브랜치가 어디를 보고 있는지"를 항상 확인해야 한다는 점을 강조했다.

④ Visual Studio C++ 프로젝트 구조 이해 (핵심)

가장 기억에 남는 오류는
TeamProject_7.vcxproj 파일에서 발생한 빌드 오류였다.

🔥 핵심 정리

  • <ClCompile>
    .cpp 파일만 들어가야 한다.
  • <ClInclude>
    .h 파일만 들어가야 한다.
  • 헤더(.h)와 구현(.cpp)은 반드시 분리해야 한다.
  • 헤더 파일 내부에서 "함수 정의를 하면 링크 오류(LNK2019, LNK2005)"가 발생할 수 있다.
  • 함수 정의는 .cpp 파일에, 선언만 .h 파일에 둬야 한다.

👉 이 구조를 이해한 이후,
계속 발생하던 unresolved external symbol 오류의 원인을 정확히 파악할 수 있었다.


⑤ 에러 코드 해석 능력 향상

  • 단순히 "에러가 났다"가 아니라,
    • 컴파일 에러 vs 링크 에러
    • LNK2019, LNK2005, C26495 등의 의미를 구분할 수 있게 됐다.
  • 에러 메시지에서
    • 어느 파일(main.obj, utf.obj, vcxproj 등)
    • 어떤 단계에서 문제인지를 먼저 보는 습관이 생겼다.

⑥ 도전 기능 기획서 작성

  • 팀 프로젝트 확장을 위한 도전 기능(게임 시스템) 기획서를 작성했다.
  • 플레이 흐름, 능력치 구조, 보상 구조를 정리하면서 구현을 염두에 둔 기획을 고민했다.
  • 약 1~2시간 정도 집중해서 작성했다.

💡 느낀 점

  • GitHub는 단순한 저장소가 아니라 팀 협업의 핵심 도구라는 걸 다시 느꼈다.
  • PR 하나, 브랜치 하나가 팀 전체에 큰 영향을 줄 수 있다는 점이 인상 깊었다.
  • 예전엔 무서웠던 에러 메시지가,
    이제는 "읽고 해결할 수 있는 힌트"처럼 보이기 시작했다.
  • 혼자 코딩할 때보다,
    팀원의 문제를 함께 해결할 때 훨씬 많이 성장한다는 걸 체감했다.

'TIL' 카테고리의 다른 글

26.01.06_TIL  (0) 2026.01.06
26.01.05_TIL  (0) 2026.01.05
25.12.31_TIL  (0) 2025.12.31
25.12.30_TIL  (0) 2025.12.30
25.12.29_TIL  (0) 2025.12.29