프로젝트/팀 프로젝트

BabPool 2. 사용한 도구들

늦은산책 2023. 7. 11. 11:58

협업 도구 . GIT

첫번쨰로 우리가 가장 중요시 한것은 형상관리 도구인 GIT 을 사용하는것이였다.

여러명이서 작업을 하고 그것을 다루기에는 GIT이 가장 편할것이라는 결론이 나왔다

 

그래서 우리는 GIT을 통한 협업을 진행하고자 했고 전체적인 브랜치를 다루는 방법은 다음과 같았다.

 

  1. 중심 브랜치 생성
    • master 라는 브랜치와 develop 의 브랜치를 생성하고 중간 단계 과정을 만들었다. master는 최종적으로 각자가 만든 프로젝트가 합쳐지고 오류가 없다고 판단되었을 경우에 올라가는 곳이다. 그렇다면 develop은 무엇일까? master 에 올라가기 전 합쳐보는 곳이다. 처음에야 큰 차이가 없겠지만 결과물이 쌓이다 보면 이런식으로 경계선을 그어 주는것이 좋다
  2. develop 의 주의성
    • 각자의 결과물을 develop 에 올리는데 당시 제작이 완료된 누군가의 결과물에 손상이 가지 않게 작업하도록 노력했다. 때문에 우리는 푸쉬가 아닌 풀리퀘스트를 진행하였다. 푸쉬는 해당 브랜치를 온전히 내것으로 완전히 뒤 바꾸는것으로 만약 나의 프로젝트가 그새 올라간 누군가의 결과물과 부딫히는것을 예방할수 있었다
    • 풀리퀘스트는 서로에게 변경된 사항을 팀원들과 리뷰할 수 있다. 하지만 우리는 학원에서 같이 작업을 하다보니 만약 리뷰를 하는 상황이 오면 바로 회의를 하는식으로 리뷰를 진행하는 방향을 선택했다
  3. 각자의 브랜치
    • 마지막으로 각자의 작업을 하는 공간인 브랜치를 생성했다. 이곳에서는 코드를 작성하고 오류를 잡는 곳이다. 내가 만든 코드가 develop 에서 pull 을 통해 가져온 다른 팀원의 결과물과 충돌이 나지 않도록 관리하는 곳이다.

이렇게 파트를 나누어 진행하였고 이는 우리가 만든 작업 결과물을 보다 안전하고 오류가 나오면 언제든 돌리거나 수정할수 있도록 해주는 방법이였다. 이 의견을 내준 팀원에게 매우 감사하다.

 

Spring Boot & React

우린 모두가 백엔드를 하고자 모인 인원이였지만 프론트를 관리하는것 또한 피할수 없었고 프론트를 어떻게 할까 고민하고 그 끝에 타임리프 혹은 JSP 보다는 진짜 프론트와 협업을 한다는 전제를 두는것을 중점으로 둔 프로젝트에 맞게 React 를 사용하자고 협의를 봤다.

 

... 앞으로 닥칠 위기를 모른채 말이다.

 

MySQL

우리의 DB는 MySQL를 사용했다. DB를 관리하는곳은 워낙 많아서 상세한 설명을 안하겠지만 DB를 다루는 만큼 모두에게 익숙한것을 골랐고 모두가 MySQL를 선택했다. 

 

이때 JPA 이야기를 빼놓을 수가 없는데 우리는 JPA를 과감하게 버렸다. 이유는 우리가 SQL이 부족하기때문이였다 물론 JPA를 사용하면 아주 쉬운 작업이 되고 어떤 경우에는 쿼리문을 따로 작성하지 않아도 되는 수준으로 사용할수 있지만 우리는 배우기 위해 시작한 프로젝트에서 무지에서 오는 편함을 과감히 버리기로 하였다. 그래서 Dependency 에도 제외하자는 선택을 하였다.