프로젝트를 진행 중이다. 제대로 신경 써서 하다 보니 너무 오래 걸리는 것 같다. 또 제대로 짰다고 생각한 코드도 리팩터링 할 영역 투성이다. 이러면서 실력이 느는 거겠지..?
진짜 제대로 된 프로젝트 한번 만들어보자
리팩토링 목록
불변 객체 이슈
=> setter를 허용한 객체
문제 : 불변성을 띄질 못한다.
해결 : loginDTO 객체는 값을 전달하는게 목적이므로 확실하게 불변성을 지녀야 한다. 따라서 불변객체로 다시 만들자
public class UserLoginDTO {
private final String userId;
private final String userPw;
public UserLoginDTO(String userId, String userPw) {
this.userId = userId;
this.userPw = userPw;
}
public String getUserId() {
return userId;
}
public String getUserPw() {
return userPw;
}
}
=> 불변 객체
ResponseEntity 이슈
=> 기존 코드 핸들러마다 중첩된 responseEntity와 message 객체들
문제 : 응답 내용인 message 객체를 매번 생성하자니 더럽다. 또 Message 객체에 제너릭이 필요할 순간이 올텐데 그때 ResponseEntity와 중복 되므로 둘 중 하나만 쓰는 것이 나을듯 싶다.
해결 : 필요한 정보에 따라 하나의 객체로 응답과 message 객체 필드 추가 (상태코드 및 컨텐트 타입)
SQL 이슈
=> 리터럴이 직접 들어간 SQL -> 이런 거 하지 말자
문제 : 프로그램 내부에서 문제가 생길 시 알아보기 어렵다.
해결 : 리터럴 말고 변수로 넣자
=> Flyway로 default 값 지정
결론
항상 신중히 코드를 작성하는 버릇을 들여야겠다.
반응형
'📕 Spring Framework > Spring Project' 카테고리의 다른 글
2022.05.20 《스프링 부트 권한 처리》 (0) | 2022.05.20 |
---|---|
2022.05.18 「Redis DB 적용」 (0) | 2022.05.18 |
2022.05.14 「JWT 인증」 (0) | 2022.05.14 |
2022.05.12 「ResponseEntity body & BuilderPattern & Join」 (0) | 2022.05.12 |
2022.05.11 「SHA-256 + Salt & 인증」 (0) | 2022.05.11 |