[슬기로운 인턴생활] in 이마고웍스 4편 (+ git을 곁들인...)
4월 9일 드디어 격리 해제날이 되었다!
그리고 난 반차를 썼다. 더 정확히 말하자면, 팀 전체 반차였다!
평일 낮 어딘가로 놀러가는 것이 당연한 일상이었는데, 더 이상은 아니라는게 아쉽기도 하면서 한편으로 어른이된 기분이다.
매번 나는 언제쯤 어른이 될 수 있을까 고민을 하는데,
요즘 살짝은 나도 어른이 된 것 같다는 느낌이 든다.
반복적인 일상을 보내고 있지만 시간이 정말 빠르게 지나가는 것 같다.
나는 분명 출/퇴근만 5일 동안 했는데! 왜 벌써 주말이야!!!
주말은 또 어찌나 빨리 지나가는지.....
이러다 눈을 조금만 길게 깜았다 뜨면 내가 50살이 되어 있을 것 같다
쨋든 나의 고민은 접어두고...
이번주는 git을 보다 완벽하게 사용하는 방법을 정리해보려한다.
그래서 git이 무엇인가?
아마 대학생들에게 git이 무엇인지 물어보면 "형상관리 툴이요~"라고 대답을 할 것이다.
하지만 정답만 알 뿐, 실제로 왜 사용하고 정말 유용한지 다들 의문을 갖고 있을 것 같다.
((나의 이야기는 절대 아니다... 절대... 절대...))
다시 질문으로 돌아가서,
Git은 무엇인가?
git은 형상관리 툴이다.
그래서 형상 관리 툴이 무엇일까?
소프트웨어를 개발하면서 코드의 버전 관리는 물론, 변경사항들, 변경 시점 등등등 개발 과정을 체계적인 관리를 도와준다.
때문에 사이드 프로젝트와 같이 개인 프로젝트를 개발하는 경우에는 git의 필요성을 느끼지 못 할 수 도 있다.
(로컬에서 혼자 모든 것을 다 관리하면 되기에...+ 누군가와 공유를 할 필요가 없음)
하지만 여러명이 공동 개발을 하는 경우, 개발을 분담하고 진행사항을 공유하는데 git은 필수적이다.
git은 main코드에서 가지를 만들어 코드를 수정하고 수정된 내용을 다시 main코드에 합쳐주는 과정을 가능하게 해준다.
때문에 여러명이 각각 main에서 가지를 만들고 각자 완성된 가지를 main에 합쳐주면 하나의 프로젝트가 완성된다.
개인 프로젝트에도 git을 유용하게 사용할 수 있다.
내가 어떤 이유로 어떤 코드를 수정/삽입/삭제했는지 기록할 수 있기 때문이다.
다음은 PR이다.
PR은 Pull Request의 약자이다.
즉, 제가 수정한 부분을 확인하고 적용해달라는 요청이다.
"PR올렸으니 확인해주세요!"라는 말을 실무환경에서 가장 많이 사용하는 것 같다.
PR은 요청을하는 과정이다보니 우리는 상대에게 PR내용을 제대로 전달할 필요가 있다.
이번주에 랜딩 페이지 작업을 하면서 엄청난 크기의 PR을 올렸다.
사실 조금씩 잘라서 올려야하는데 "하나만 더 하나만 더 하나만 더"를 외치다가
결국 모든 작업을 하나의 PR로 올리게 되었다.....
내가 작업한 과정을 처음~끝까지 하나로 뭉쳐서 PR을 올리게 되면 도대체 어느 누구가 나의 PR을 이해할 것인가!!?
당연히 PR을 읽는 사람도 힘들고 PR을 올린 나 역시 도대체 뭘 어디서 어떻게 하자는 건지 알 수가 없었다.
때문에 해당 PR을 다시 기능 별로 쪼개서 올리게 되었다.
앞으로 제대로된 PR을 올리기 위해 과정을 한번 정리해 보겠다.
이마고웍스에서는 azure devOps를 이용하기에 여기에 맞춰서 정리해 보겠다.
1. Board에 작업 내용에 대한 work item을 추가한다.
assign도 '나'로 설정하여, 해당 보드를 다른 사람이 확인했을 때 누가 해당 work item을 작업하는지 알수 있도록 한다.
2. 작업할 내용을 기능 단위로 나눠 task로 추가한다.
task마다 하다의 PR을 생성하며 작업했다.
즉, task 별로 branch를 생성하였다.
3. 구현 내용 Commit & Push
코드에 변경이 발생할 때마다 commit메시지와 내용을 함께 commit함으로써 어느 부분에서 어떤 작업을 했는지 알 수 있다.
commit하면 위와 같이 브랜치 명과 commit 메시지가 Git GUI에 표시된다.
하나의 task에 대한 작업이 마무리가 되면, push 작업과 함께 PR을 생성하면 된다.
4. PR 생성
PR을 올릴 땐, 다음과 같이 어떤 내용의 PR인지 정리해서 올려야한다.
아직 내가 올린 PR은 정신이 없는 문장들로 가득하지만,
팀원분께서 올려주신 PR은 내용이 정말 깔끔해서 좋은 예시인 것 같다.
안 좋은 PR 내용의 예시... 네ㅔ.... 맞습니다......제가 올린 정말 불친절한 PR입니다... 반성합니다...........
이 글을 보시는 인턴분들은 절대 저렇게 올리지 마시길 !!!!!!
또한 리뷰어를 설정해서, 해당 PR 팀원이 확인할 수 있도록 합니다.
required로 설정된 팀원이 PR을 approve해야만 해당 PR이 merge될 수 있습니다.
그리고 잊으면 안되는 또 다른 부분입니다.
해당 PR이 어떤 work item에 해당하는 지 알 수 있도록 앞서 생성한 task와 연결해줍니다.
5. PR 마무리
올린 PR이 모두 apporved가 되면 PR을 complete 할 수 있습니다.
complete까지 완료가 되면 해당 PR은 마무리 되고 task도 해결 되었다고 자동으로 표시 됩니다.
위와 같이 마무리 되었음을 확인 할 수 있습니다.
과정은 굉장히 간단하지만, 매번 한 단계씩 잊게 되는 것 같다.
무엇보다 이 과정을 잊고 개발을 진행하다보면 어느 순간 방대한 크기의 PR이 완성되었음을 확인 할 수 있다...
방대한 PR에 대한 책임은 자신이므로 ㅎㅎㅎ 매 순간 순간 정신차리고 PR을 올리는 것을 잊지 않도록 하자!!
모두의 인턴생활 화이팅!