TIL 1226 깃허브 협업, 추가 기능 구현

강성원·2023년 12월 26일
1

TIL 오늘 배운 것

목록 보기
3/69
post-thumbnail

오늘 한 일

1. 구현한 내용들 깃허브 데스크탑으로 푸시하고 병합해보기

  • 항상 저장소로만 사용하던 깃.. 오늘은 진짜 서비스 목적에 맞게 협업에 사용해보았다.
    완벽한 방법은 아니지만 나중에 참고를 위하여 내가 진행한 과정을 적어놓겠다.
  • 공유하는 사람의 리포지토리의 url을 가지고 내 로컬 저장소에 클론을 만들어준다.이렇게 한 후에 만들어진 클론 폴더를 유니티 에디터에서 프로젝트로 등록해주고(편의를 위해) 작업을 진행하면 된다.
  • 브랜치 생성
    조금 골치아팠던 부분이다.
    우선 [New branch]를 선택한다.
    그리고 브랜치의 이름을 정해주고 베이스가 될 브랜치를 선택하고 생성해준다.
    그러면 내가 작업할(커밋하고 푸시할) 임시 공간이 생기는 것이다.
  • 커밋하기
    이렇게 코드나 다른 요소에 변화를 주고 저장을 해주면
    깃허브 데스크탑에서 변경사항의 확인이 가능하다.
  • 좌측 하단에서 커밋 메세지를 쓰고 커밋을 한다.
  • 이 다음 순서는 Push -> PullRequest 이다.
    [Push origin]을 눌러주면 [Create PullRequest] 버튼이 동일한 색상과 모양으로 뜬다. 그것도 눌러주면 이제 내 코드가 리포지토리 주인에 의해 병합되기를 기다리면 된다.

브랜치 생성 고민

내가 만든 기능들이 간단한 편이어서 내가 먼저 브랜치를 만들고 커밋, 푸시, PR까지 했다.
그 후에 다른 분들이 만들었던 기능들을 동일한 과정을 거쳐 Merge까지 했다.

고민은 그 후에 생겼다.
내가 처음에 팠던 브랜치의 내용과 지금 모든 내용이 들어간 메인 브랜치는 내용이 너무 다른데 새로운 브랜치를 파서 해야하는가? 브랜치가 너무 많아지는 것은 아닐까? 메인 것을 어찌 저찌 끌어와봐야하나? 생각했다.

고민은 길게 했지만, 답은 가까이 있었다.
내가 아는 노드 백엔드 고수에게 여쭈어보니 두 가지의 답이 나왔다.

첫 번째로 현재 브랜치에 메인 브랜치를 pull해주고 작업을 하는것.
두 번째로 기존 쓰던 브랜치를 삭제하고 메인 브랜치에서 파생시켜 새로운 브랜치를 파서 이름을 제대로 명시해주면 괜찮다고 하셨다.

두 번째 방법을 채택해서
이런식으로 어떠한 기능을 구현하는 브랜치인지 명시해주었다.

내가 코딩 외적으로 고민하는 날이 오다니 참..기분 묘하다. 좋은 쪽으로 묘하다.


2. 패널티로 시간 증가 시에 숫자 띄우는 연출 구현

  • 목표 : 카드 매치에 실패할 때 흐른 시간이 증가하는데, 그와 동시에 증가한 만큼의 시간이 화면에 표시되도록 한다.
    아래 GIF가 완성된 모습이자 목표한 모습이다.
  • 추가 시간 나타낼 텍스트, 움직이고 소멸시킬 스크립트, 서서히 사라지는 애니메이션
    이렇게 3가지 정도로 나누어서 생각했다.

  • 추가 시간을 나타낼 텍스트 만들기
    70폰트 크기의 텍스트를 만들어줬다. 중요한 것은 외형이 아니라 position이었다..
    별 문제가 많았는데 모르는 부분이 많아 정리가 되지 않아서 결과만 말하면 Prefab으로 만든 텍스트를 스크립트로 위치를 잡아주었다.
    이 문제는 좌표계를 다시 공부해보아야겠다.

  • 텍스트에 달아준 스크립트
    position으로는 위치가 애매해져서 localpositoin을 옮겨주어 위 사진처럼 시작위치를 잡아주었다.
    그리고 1초 후에 오브젝트가 소멸하도록 했고, 1초에 y방향으로 100만큼 이동하게 했다.
void Start()
{
    transform.localPosition = new Vector3(180, 400);
    Destroy(gameObject, 1.0f);
}

void Update()
{
    transform.position += new Vector3(0,100,0) * Time.deltaTime;
}
  • 애니메이션
    1초 지점에 RGBA의 알파 값이 0이 되도록했다. 간단하다.



하루를 돌아보며

오늘은 프로그래밍 지식보다는 협업 시에 내가 코드를 어디까지 손을대도 되는지에 대해서 고민을 했다.

나는 타임 매니저와 오디오 매니저 부분을 맡아서 했다. 각 매니저를 구현하는 것에는 큰 어려움이 없었다.

팀원 모두가 겹치는 부분인 GameManager에서 위 매니저들의 메소드를 호출해야하는데, 내가 만든 코드로 다 바꿔서 PR을 해도 되는지..정말 그거 고민하느라 시간 다 써버린 것 같다.(디테일에 집착하는 안좋은 버릇이라고 생각한다.)

결국 팀장님이 원하신건 각자가 맡은 부분을 최대한 적용해서 PR하는 것 같았다. 병합시 충돌을 직접 관리하시고.

오늘의 공부가 끝나고 나서 생긴 생각은 '내가 느끼기에 애매한 것들은 미리 물어봐서 파악하면 좋겠다.'라는 것이었다.
정말 별 것 아닌 생각인데 미리 생각했다면 오늘 12시간중 4시간은 자유시간이었을 것이다.(ㅎㅎ)

레벨업은 못해도 경험치는 얻은 날이었다.


추가 : 나 이거 쓰는 사이에 누가 카드 등장 연출을 만드셨다. 진짜 보고 배울 점 많은 것 같다. 다들 파이팅..

profile
개발은삼순이발

0개의 댓글