TIL 22.12.19 과제리뷰 후 코드정리

쓰옹·2022년 12월 19일
0

개발자를 향해~~TIL✍

목록 보기
43/87
post-thumbnail

큰그림을 그려보자

        UI        ------>  ┌    Application(Server)    ┐     ------>    DB
(Browser/POSTMAN)          |-Controller (Presentation) |          (Database. h2)
                           |     ↓                     |
                           |-  Server  (Application)   |
                           |     ↓                     |
                           |-Repository (DB)           |
                           └---------------------------┘
  • 인증/인가는 Controller에 포함

ExceptionHandler

  • 기존 코드는 컨트롤러의 예외처리를 하나도 안해놨다.
  • 한번에 예외를 처리하기 위해 @RestControllerAdvice를 통해 예외처리 클래스를 따로 만들었다.
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();
    }
}
  • 에러를 IllegalArgumentException으로만 해서 하나의 예외만 처리할 수 있게 해놨는데
    공부가 더 필요하다. 상태코드나 에러메세지를 세부적으로 하나하나 설정하고 처리할 수 있게 해야할 것 같다.

객체지향적으로 설계

로그인 기능을 구현할 때 비밀번호가 일치하는지 확인하는 로직도 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은 대체될 수 있다. 같은 기능을 제공하는 기술들이 많음
이걸 바꾼다고 했을 때 httpServlet을 받는 애들은 다 변경이 일어나야함
그래서 reponse를 안 남기는게 좋다..
요청을 받거나 응답을 할 떄는 항상 스콥을 최소화하는게 좋음 그래야 결합도가 낮아질 수 있음
Service에서 reponse가 필요한 이유를 찾아서 코드 변경

profile
기록하자기록해!

0개의 댓글