오늘의 TIL 2024-06-04 협업

이재성·2024년 6월 5일
post-thumbnail

프로젝트 시작 협업 중 알게된 내용

~~컨벤션

~~컨벤션이라는 것을 이번에 처음 접하게 되었는데
개발자들이 프로젝트 시작전에 하는 약속을 미리 정하는 것이다. 즉 쉽게 말하자면 이름 짓기 약속이라고 보면 된다.

이번에 하게 된 것은 깃허브 관련 커밋 컨벤션과 코드 컨벤션을 진행해 보았다.

커밋 컨벤션(깃허브)

commit할 때 commit message에 대한 약속을 정하는 것이다.
커밋 컨벤션을 몰라도 commit하는데에는 무리가 없었다.
하지만 혼자 프로젝트를 하더라도 몇개월 뒤에 다시 보았을때라던가...
협업시에 다른 사람이 보았을 때 혼동없이 한눈에 이해를 할 수 있게 하기위해서 약속을 정하는 것이였다.

  • 커밋 메시지 구조

커밋 메시지 구조는 크게 3가지로 나뉜다(제목, 본문, 꼬리말)

type: Subject -> 제목
(한칸 띄우기)
body(생략 가능) -> 본문
(한칸 띄우기)
footer(생략 가능) -> 꼬리말

  • 제목의 타입 예시

Feat: 새로운 기능 추가
Fix: 버그 수정 또는 typo
Refactor: 리팩토링
Comment: 필요한 주석 추가 및 변경
Style: 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
Test: 테스트(테스트 코드 추가, 수정, 삭제, 비즈니스 로직에 변경이 없는 경우)
Init: 프로젝트 초기 생성
Rename: 파일 혹은 폴더명 수정하거나 옮기는 경우
Remove: 파일을 삭제하는 작업만 수행하는 경우

  • 본문의 규칙

본문은 한 줄 당 72자 내로 작성한다.
본문 내용은 양에 구애받지 않고 최대한 상세히 작성한다.
본문 내용은 어떻게 변경했는지 보다 무엇을 변경했는지 또는 왜 변경했는지를 설명한다.

  • 꼬리말 규칙

꼬리말은 optional이고 이슈 트래커 ID를 작성한다.
꼬리말은 "유형: #이슈 번호" 형식으로 사용한다.
여러 개의 이슈 번호를 적을 때는 쉼표(,)로 구분한다.
이슈 트래커 유형은 다음 중 하나를 사용한다.

  • Fixes: 이슈 수정중 (아직 해결되지 않은 경우)
  • Resolves: 이슈를 해결했을 때 사용
  • Ref: 참고할 이슈가 있을 때 사용
  • Related to: 해당 커밋에 관련된 이슈번호 (아직 해결되지 않은 경우)

코드 컨벤션

앞서 ~~컨벤션은 일종의 약속과 같다고 말을했다. 코드 컨벤션은 코딩을 할 때 지켜야할 규칙을 정하는 것이라 보면 될 것 같다.
주로 이름 규칙(Naming Rules) - 변수, 함수, 클래스, 메소드 등,
Boolean 타입의 변수 작명규칙,
들여쓰기 (indent) 등등을 어떻게 작성을 해야되는지 미리 알려주는 것이다.

이번에는 다른 것도 컨벤션에 넣어 보았는데
프로젝트는 스프링과 자바를 사용하는데 다른 사람들의 버전과 다른 것에 의한 충돌이 일어나지 않을까 싶어서 컨벤션에 자바의 버전과 스프링의 버전, MYSQL 버전등등 버전 내용을 추가해서 충돌이 일어나지 않게 약속을 진행 해보았는데 처음 정할때 시간은 오래걸리지만 나중에는 편해질거란 생각이 들었다.

  • 소스코드 분석도구 Lint

소스코드의 잠재적인 오류를 확인하거나, 코딩 컨벤션을 쉽게 유지할 수 있도록 도와주는 도구

각 언어별 Lint(분석도구)
Python = PyLint
JavaScript = ESLint
Java = CheckStyle 등등 이있다.

  • CheckStyle 사용법(인텔리제이)
  1. Setting > Plugins 에 들어가서 'checkstyle'을 검색 후 설치
    (플러그인에 상단 마켓플레이스 인지 확인)

2.RESTART IDE을 통해 Intellij를 재시작 후 Setting > Tools > Checkstyle 로 들어가서 Checkstyle 버전 체크(Google checks 사용하였음)

  1. Setting > Editor > CodeStyle > java 에 들어가서 scheme 톱니바퀴에 import scheme 클릭

  2. 인텔리제이 code style xml 파일 등록

profile
하이요

0개의 댓글