UI ------> ┌ Application(Server) ┐ ------> DB
(Browser/POSTMAN) |-Controller (Presentation) | (Database. h2)
| ↓ |
|- Server (Application) |
| ↓ |
|-Repository (DB) |
└---------------------------┘
package com.sparta.blog.exception;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@RestControllerAdvice
public class ExceptionHandler {
@org.springframework.web.bind.annotation.ExceptionHandler
public String handleException(IllegalArgumentException e) {
return e.getMessage();
}
}
로그인 기능을 구현할 때 비밀번호가 일치하는지 확인하는 로직도 Service에서 구현했는데 이 기능은 User에서 책임져야하기 때문에 수정했다
UserService.java
// 비밀번호 확인
if (!user.getPassword().equals(password)) {
throw new IllegalArgumentException("비밀번호 불일치!");
}
수 ↓ 정
if (!user.isValidPassword(loginRequestDto.getPassword())) {
throw new IllegalArgumentException("비밀번호 불일치!");
}
User.java
public boolean isValidPassword(String inputPassword) {
return this.password.equals(inputPassword);
}
httpServlet은 대체될 수 있다. 같은 기능을 제공하는 기술들이 많음
이걸 바꾼다고 했을 때 httpServlet을 받는 애들은 다 변경이 일어나야함
그래서 reponse를 안 남기는게 좋다..
요청을 받거나 응답을 할 떄는 항상 스콥을 최소화하는게 좋음 그래야 결합도가 낮아질 수 있음
Service에서 reponse가 필요한 이유를 찾아서 코드 변경