나의 독학은

[프리코스 2주차] 1주차 공통 피드백 학습 본문

회고/우아한테크코스 6기 프리코스 회고

[프리코스 2주차] 1주차 공통 피드백 학습

안종혁 2023. 11. 2. 15:53

▷ 커밋 메시지를 의미 있게 작성한다.

좋은 커밋 메시지 작성법 : 어떻게 했는지 보다는 무엇을 했고 왜 했는지를 설명하기

1. 제목과 본문을 빈 행으로 구분하기.

   - 제목은 변경사항의 요약, 본문은 변경사항의 세부내용을 설명

2. 제목을 50글자 이내로 제한

3. 제목의 첫 글자는 대문자로 작성하지 않기

4. 제목의 끝에는 마침표, 느낌표 넣지 않기

5. 제목은 명령문으로 하고, 과거형 사용하지 않기

6. 본문의 내용은 72글자 내로 작성하기

 

커밋 유형

feat: 새로운 기능 추가

fix: 버그 수정

docs: 문서 수정

style: 코드 스타일 수정

    - 공백과 들여쓰기를 사용해 코드를 정리

    - 코드에 주석을 작성

    - 변수 이름을 명확하게 작성

refactor: 코드 구조 개선

    - 중복된 코드를 제거

    - 클래스를 분리

    - 함수의 매개변수를 재구성

test: 테스트 추가 또는 수정

chore: 기타 변경 사항

remove : 코드(파일) 의 삭제가 있을 때.

▷ git을 통해 관리할 자원에 대해서도 고려한다.

.class 파일은 java 코드가 있으면 생성할 수 있다. 따라서 .class 파일은 굳이 git을 통해 관리하지 않아도 된다.
IntelliJ IDEA의 .idea  폴더, Eclipse의 .metadata 폴더 또한 개발 도구가 자동으로 생성하는 폴더이기 때문에 굳이 git으로 관리하지 않아도 된다.
앞으로 git에 코드를 추가할 때는 git을 통해 관리할 필요가 있는지를 고려해볼 것을 추천한다.

 

✅ 해설
.class 파일의 생성 경로는 아래와 같다.

Hello.java 작성 ----(javac.exe)---> Hello.class ----(java.exe)---> 실행

Hello.java : 우리가 코드를 작성하는 소스 파일이다.

javac.exe : 자바컴파일러이다.

Hello.class : Hello.java를 컴파일 하면서 생성된다.

java.exe : 자바 인터프리터이다.

 

즉, .java 파일만 git 을 이용해서 로컬로 fork하고 clone해서 프로젝트를 열고 컴파일하면 .class 파일은 저절로 생긴다는 뜻이다. 그렇기에 .class 파일을 git 으로 관리할 필요가 없다는 뜻이다.

그렇다면 인텔리제이나 Gradle 같이 개발 도구가 자동으로 생성하는 파일은 git 관리 대상에서 제외되고, 개발자들이 협업을 위해 파일을 수정하거나 생성한 파일이 있다면 [ex) README.md, html..등등] git을 통해 관리할 필요가 있는지 한 번 고려해보란 뜻이다!

개인적으로는 어떤 파일인지는 알고 git에 코드를 올리라는 뜻으로 생각한다

▷ 공백 라인을 의미 있게 사용하기

문맥을 분리하는 부분에 사용하기!

▷ space와 tab을 혼용하지 않기.

확신이 서지 않으면 pull request를 보낸 후 들여쓰기가 잘 되어 있는지 확인하는 습관하기.

▷ IDE의 코드 자동 정렬 기능 활용하기

 [윈도우] 인텔리제이의 자동 정렬 기능 : Ctrl + Alt + L

▷ Java에서 제공하는 API를 적극 활용하기

함수(메서드)를 직접 구현하기 전에 Java API에서 제공하는 기능인지 검색을 먼저 해본다.

Java API에서 제공하지 않을 경우 직접 구현한다.

예를 들어 사용자를 출력할 때 사용자가 2명 이상이면 쉼표(,) 기준으로 출력을 위한 문자열은 다음과 같이 구현 가능하다.

List<String> members = Arrays.asList("pobi", "jason");
String result = String.join(",", members); // "pobi,jason"

배열 대신 Java Collection을 사용한다

Java Collection 자료구조(List, Set, Map 등)를 사용하면 데이터를 조작할 때 다양한 API를 사용할 수 있다.

예를 들어 List<String>에 "pobi"라는 값이 포함되어 있는지는 다음과 같이 확인할 수 있다.

List<String> members = Arrays.asList("pobi", "jason");
boolean result = members.contains("pobi"); // true