본문 바로가기
TIL

[231024] 팀 과제 설계, 깃 특강 2회차

by 진진리 2023. 10. 24.
728x90
  • 팀 과제 필수 요구사항
  1. 호텔은 여러 객실, 보유 자산을 가지고 있다.
  2. 객실은 객실 당 하루에 한 사람만 예약이 가능하다.
  3. 객실은 크기, 숙박비를 가진다.
  4. 예약은 객실, 고객의 이름, 고객의 전화번호, 예약 날짜를 가지고 있다.
    • 전화 번호 제한(XXX-XXXX-XXXX) 정규 표현식 (선택)
    • 예약 날짜 ****
    • 날짜는 ISO 8601 형식으로 조합된 UTC 날짜 및 시간 예) 2016-10-27T17:13:40+00:00
  5. 고객은 이름, 전화번호, 소지금을 가진다.
    • 고객 소지금보다 비싼 방은 예약 불가
  6. 호텔은 모든 예약 목록을 조회 할 수 있다.
  7. 고객은 자신의 예약 목록을 조회 할 수 있다.
    • 예약 번호로 예약 내역을 조회한다
  8. 고객은 자신의 예약을 취소 할 수 있다.
  9. 고객이 호텔 예약 시에 예약 번호(id)를 반환 (uuid 활용)
    • 고객이 호텔 예약에 성공하면 예약 번호(id)를 받는다.
    • 고객이 예약 목록을 조회 시 예약 번호도 같이 조회 된다.
    • 고객이 예약 취소 시 예약 번호를 통해 자신의 특정 예약을 취소한다.

  • 팀 과제 설계

객체와 각 개체의 필드, 구현해야 하는 기능들에 대해 노션을 이용해 생각해보다가 원활한 소통을 위해 플로우 차트 등을 이용했다.

https://www.figma.com/file/0VLDIJYRu4hbZjn0HRVxuc/%5B%EB%82%B4%EB%B0%B0%EC%BA%A0-%ED%8C%80-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%5D-%ED%98%B8%ED%85%94?type=design&node-id=0-1&mode=design&t=c1QlLivtqjcNbjWt-0

 

노션을 이용해 출력할 화면을 구상했다. (UI 설계)

https://www.notion.so/whyes/9338302681464ed2a07cf8aec43438f9

 

팀장님께서 틀만 작성하신 코드를 깃허브에 올려 주셔서 clone 후 각자의 환경을 세팅했다.

한글이 깨지는 문제가 발생해서 build.gradle 파일에

compileJava.options.encoding = 'UTF-8'

을 추가한 후, 인코딩 방식과 Gradle JVM 등의 설정을 바꾸고 새로고침하여 해결했다.

 

팀장님의 코드를 검토하는 과정에서 input을 받을 때 scanner보다 더 빠른 BufferReader를 이용하는 방법을 알려주셨다.

private final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    private StringTokenizer st;

    private int getInputNumber() throws IOException {
        st = new StringTokenizer(br.readLine());

        try {
            return Integer.parseInt(st.nextToken());
        } catch (NumberFormatException e) {
            throw new IllegalArgumentException();
        }
    }

 

 

깃 컨벤션을 정하면서 commit 메세지 방식을 설정하고 깃 플로우에 대해 알아보았다.

https://velog.io/@archivvonjang/Git-Commit-Message-Convention

 

[Git] Commit Message Convention

Git을 협업에 알맞게, 커뮤니케이션에 유용하게, 깔끔한 가독성을 가지도록 사용하기 위해서 좋은 커밋 세미지를 사용하는 것이 중요하다. 그러기 위해서 커밋 컨벤션을 정리하였다.

velog.io

https://onlyfor-me-blog.tistory.com/433

 

[Git] 깃 플로우(Git Flow)란?

깃을 효과적으로 사용하는 방법을 찾아보다가 동료 개발자의 추천으로 배민 기술 블로그의 깃 플로우 포스팅을 접했다. https://techblog.woowahan.com/2553/ 우린 Git-flow를 사용하고 있어요 | 우아한형제

onlyfor-me-blog.tistory.com

 

일단 이번 팀 과제를 하면서 우리 팀은 깃허브의 pull request와 issure를 중점으로 활용하기로 했고

branch는 주로 main, develop, feature를 사용하기로 정하였다.


  • Git 특강 2회차

https://jinjinjincode.tistory.com/155

 

2회차

브랜치 관련 명령어 브랜치 생성 명령어: git branch (브랜치명) 브랜치 확인 명령어: git branch 브랜치 이동 명령어: git switch (브랜치명) 브랜치 생성 & 이동 명령어: git switch -c (브랜치명) 브랜치 main

jinjinjincode.tistory.com


소감: 팀 과제를 시작하기 전부터 어떻게 설계하고 소통하면 좋을지에 대한 막막함이 있었는데 그래도 팀원들과 노션, 다이어그램 등을 이용하면서 나름 열심히 소통할 수 있었던 것 같다. 그리고 팀 과제 회의를 하면서 깃이나 컨벤션 등 여러 가지 것들을 팀원들로부터 배울 수 있는 시간이었다. 깃 허브를 적극적으로 활용하는 것을 팀 목표로 삼았는데 과제를 하는 동안 이 목표를 잘 이뤘으면 좋겠다.