현재 제로베이스 부트캠프를 하고 있지만 제로베이스 처음 기간은 기본 자바수업과 코딩테스트 관련 내용들이 많다.
하지만 현재 회사를 다니고 있으니 자바보다는 스프링이나 DB관련된거에 관심이 쏠리는 건 사실이다.
찾던 강의 중 재밌어 보이는 강의가 있게 되어 배우게 되었다.
이 교육도 전부 온라인이라 직장이 듣기에 좋은 강의였는데 1주차부터 뇌를 스치는 듯한 느낌을 들었다.
우리가 아는 인프런이나 패스트캠퍼스가 아닌 코드리뷰를 통한 실전 교육이였다.
보안 서약서를 썼기때문에 내용은 말은 할 수 없지만 그중 Peer Review 때 받은 것을 정리하는 시간을 가지기 위해 이글을 작성한다.
1. 커밋 메시지
보통 혼자 공부할때 커밋은 아무렇게 적으면서 넣은것같았다.
위 사진은 평소 커밋 메시지를 찍는 식인데 일단 보여주기 용이라고 할 수 있을 것같다.
평소에 듣던 강의 중에 "김버그"님의 강의가 있다. 거기서 이모지를 넣어 커밋학길래 나도 그렇게 넣었다.
하지만 여기서는 의미있는 커밋 메시지를 찍기로 했다.
예를 들어 로그인 기능을 만들게 되면 " Feat: 상품 API 개발 " 이처럼 커밋 메시지를 찍도록 하였다.
이제 안좋은 습관은 버리고 컨밴션에 맞게 메시지 작성하는 습관을 가져야겠다
2. 코드리뷰
이것도 혼자 공부하면 거의 쓸일이 없다.
pull Request로 올리면 그걸 보고 리뷰를 달아줘야 한다.
처음에는 어떻게 달아줘야 좋은 코드가 될지.. 괜히 내가 말해서 코드가 더 망해지는건 아닌지 많은 생각이 들게 되었다.
확실히 코드리뷰는 실력향상에 많은 도움이 되는것같다.
리뷰를 쓰기 전에 더 인터넷을 찾아보게 되고 내가 틀린것을 남들이 맞춰주는 느낌을 받았다.
리뷰를 할때 총 코멘트를 해야할 때는 "잘한점"과 "나의 의견"을 꼭 포함하여 리뷰하는 연습을 하고 있다.
3. 카멜케이스
자바에서는 무조건 카멜 케이스(ex: userId) 로 사용한다.
예전에 파이썬 배울때는 스네이크 케이스 ( ex: user_id ) 같은 기법은 자바에서 상수에서만 사용을 한다.
4. 네이밍
흠.. 여기서는 할말이 되게 많다.
내가 영어를 못하는게 정답이긴 한데 남들이 알 수 있는 영어 및 사용하고 있는 습관
select -> find로 validate 같은 것도 명확하게 isMemberValidator 같은 걸로 변경하는 습관을 가져야겠다.
5. mybatis 와 JPA 차이
mybatis를 사용한 사람이면 @Autowired 로 빈을 주입받아 사용하는 식으로 많이 하지만 JPA 에서는 생성자로 받는 식을 많이 선호한다.
6. domain 파싱은 DTO나 Enitty에서 진행하도록 하자
리뷰 받은것중 하나가 @Controller 단에서 파싱을 하였다.
하지만 @Controller은 고객 정보를 받고 에러처리나 리턴을 위해 존재함이다.
데이터 같은 것은 Enitty나 DTO 에서 시도하며, Service단은 repository의 트랜잭션을 위함으로 존재하는 것이란걸 명심해야 할 것같다.
SOLID 원칙중 단일 책임의 원칙의 의해 비지니스 로직간의 역할을 정해줘야겠다.
7. 로그
loggerFactory를 만들어 사용해더라면 이제는 lombok에서 지원하는 어노테이션을 사용하여 로그를 사용할 수 있다.
8. setter
일반적으로 setter, getter 를 만들어 멤버변수를 수정하고 가져오고 하였다.
하지만 개방-폐쇄 원칙(OCP, Open-Closed Principle)는 확장에는 열려있고 수정에는 닫혀있어야하는 원칙에 의해 생성자를 이용해 값을 넣고 getter 로 값을 꺼내 사용한다.
9. 하드코딩하지 말라
만약 for문을 사용하여 값을 처음과 끝을 정해질 일 있을 때는 0, 10같은 수를 직접 넣는게 아니라 상수로 넣어주는것이 더 좋다.
상수를 쓰게되면 나의 실수를 더 줄일 수 도있고 재활용도 할 수 있어 좋은 습관이다.
1주차 리뷰는 여기까지 입니다.
'일상' 카테고리의 다른 글
공부를 계속 해야 하는 이유 (0) | 2022.05.09 |
---|---|
개발자하고 싶은데 어떻게 해야해요? (5) | 2022.05.06 |
제로베이스 백엔드 부트캠프 한달 후기 (0) | 2022.04.19 |
내가 생각하는 직업을 선택하는 가치 (0) | 2022.04.11 |
[인프런] 인프런 성장해봄 이벤트 당첨 후기 (0) | 2022.03.30 |