728x90
이번 프로젝트는 범위도 상당하였고, 난이도도 꽤 있어서 여러번 시도할 줄 알았는데, 리뷰어님께서 긍정적으로 평가해주셔서 PASS를 했네요.
처음 환경 셋팅부터시작하여, WEB API 및 테스트코드, swagger 환경까지 구축하는 프로젝트였습니다. 자세한 내용은 수강신청하여 보실 수 있습니다.
리뷰 #1
Advice
RequestParam의 name과 전달받을 파라미터의 이름이 동일하다면 생략가능하다.
defaultValue가 정의되어 있다면 required도 생략가능하다.
//변경 전
@RequestParam(name = "start", defaultValue = "0", required = false) int start)
//변경 후
@RequestParam(defaultValue = "0") int start)
다른 Controller에서도 사용할 수 있게 Service 레이어의 메소드에서 분기하자.
//변경 전 Controller
if (productId == 0) {
//서비스 호출
reservationUserComments = commentService.getComments(start, limit);
} else {
//서비스 호출
reservationUserComments = commentService.getCommentsByProductId(productId, start, limit);
}
//변경 후 Controller
reservationUserComments = commentService.getComments(productId, start, limit);
다른 Controller에서도 Service 레이어에 접근할 수 있도록 변경하였다.
SQL문 IFNULL 함수를 사용하여 기본값을 반환하도록 할 수 있다.
SELECT IFNULL(AVG(ruc.score), 0)
기존에는 값이 없을 경우 null을 가지고 있었는데, SQL문에서 0으로 초기화 하여 값을 셋팅하는 방법도 있다.
https://www.w3schools.com/sql/func_mysql_ifnull.asp
카멜 표기법을 지키자
//변경 전
public Integer getAvgBydisplayId(Long displayId)
public int selectCountBycategoryId(Long productId)
//변경 후
public Integer getAvgByDisplayId(Long displayId)
public int selectCountByCategoryId(Long productId)
검토한다고 했는데 미쳐 바꾸지 못했던 부분이 있었습니다. 리뷰어님께서 꼼꼼하게 잡아주셨습니다.
인터페이스 멤버의 접근 제어자는 반드시 public이므로 생략할 수 있다.
//변경 전
public interface CategoryService {
public List<Category> getCategories();
}
//변경 후
public interface CategoryService {
List<Category> getCategories();
}
링크: opentutorials.org/module/2495/14142
728x90
'웹 프레임워크 > Spring' 카테고리의 다른 글
Spring Controller에서 list형태가 포함되어 있는 json 포맷 받기, 응답 (0) | 2021.01.16 |
---|---|
Spring Controller에서 json으로 Date format 객체 받기, 응답 (0) | 2021.01.16 |
프로젝트B. 방명록 만들기 코드 리뷰 및 회고 (boostcourse 웹 백엔드) (0) | 2020.12.24 |
프로젝트A. 명함 관리 프로그램 코드 리뷰 및 회고 (boostcourse 웹 백엔드) (0) | 2020.12.23 |
gradlew org.codehaus.groovy.runtime.InvokerHelper 문제 해결 (0) | 2020.08.25 |