CODE SQUAD/FeedBack 정리

[Review] 웹서버 4단계 - 쿠키를 이용한 로그인 구현 (2022/03/30)

샤아이인 2022. 4. 1.

 

 

[K & Shine] 웹서버 4단계 - 쿠키를 이용한 로그인 구현 by zbqmgldjfh · Pull Request #54 · codesquad-members-2022

안녕하세요 리뷰어님!! K, Shine 팀 입니다. 저희 팀의 리뷰를 해주셔서 감사합니다!!! 기존에 Servlet에 대한 공부를 해본적이 있어, 참고해 가면서 구현하려 노력하였습니다. Step04 TODO list Servlet inter

github.com

1. 코드 리뷰

이번 리뷰는 honux가 해주셨다!! 아프신 와중에 리뷰해주셔서 감사합니다!!

 

1. Session Key를 저장할때 생성하기

원래 우리의 코드는 sessionDB에 저장을 할 때, save에 외부에서 생성된 SessionId 값을 받아서 사용하게 되었다.

하지만 저장함과 동시에 sessionId를 내부적으로 할당받는 것이 더 적합한것 같다.

따라서 다음과 같이 코드를 변경하게 되었다.

public static String save(User value) {
    String sessionId = UUID.randomUUID().toString();
    sessionDB.put(sessionId, value);
    return sessionId;
}

UUID로 세션 키를 발급 한 후, 이를 사용하여 저장후, 해당 key값을 반환하게 된다.

 

2. Abtract Class 고려해 보기

우선 BaseServlet의 코드는 다음과 같다.

public class BaseServlet implements Servlet {
    @Override
    public void service(HttpRequest request, HttpResponse response) {
        String method = request.getMethod();
        if (method.equals("GET")) {
            doGet(request, response);
        } else {
            doPost(request, response);
        }
    }

    public void doGet(HttpRequest request, HttpResponse response) {};
    public void doPost(HttpRequest request, HttpResponse response) {};
}

여기서 doGet, doPost는 BaseServlet을 상속하는 자식 class 에서 직접 구현해 주어야 한다.

따라서 abstract 키워드를 달아줄수도 있다.

 

하지만 나는 abstract 키워드를 달지 않은 이유가 있다.

모든 자식들이 doGet, doPost를 모두 구현할 필요는 없기 때문이다.

어떤 자식들은 get 만 구현하면 끝이기도 하다. 따라서 abtract 키워드를 사용하지 않았다. 

차라리 default 메서드를 추가하는 쪽으로 바꾸는것이 좋을것 같다 생각하였다.

 

3. 매직넘버 지우기

음... tdd를 연습할때 여러번 위와같은 점을 인지하여 상수로 빼려고 상시 노력하였는데... 왜 이번에는... 1이라는 매직 넘버를 알아차리지 못했을까?

 

해당 1 값을 상수로 분리해 주었다!

댓글