티스토리 뷰
[코드 리팩토링]
[객체에게 일을 많이 시키자]
보통 로그인시에 비밀번호를 비교할 때는 다음과 같이 get 메서드를 사용하여 비밀번호를 반환함.
if(!password.equals(user.getPassword())){
System.out.println("Login fail");
return "redirect:/users/loginForm";
}
하지만 이렇게 하면 비밀번호를 가져오고 비교하는 작업 2개를 해야한다.
이 작업을 한 번에 하기 위해서는 User 객체에 matchPassword() 라는 메서드를 만든다.
-- User 클래스 --
public boolean matchPassword(String newPassword){
if(newPassword==null){
return false;
}
return newPassword.equals(password);
}
-- Controller --
if(!user.matchPassword(password)){
System.out.println("Login fail");
return "redirect:/users/loginForm";
}
이렇게 메서드를 만들어 비교를 한 번에 할 수 있다.
[자주 쓰는 코드는 따로 클래스를 만들자]
Session을 생성할 때 세션의 이름을 지정해 주어야 한다.
Session의 이름을 지정해주게 되면, 나중에 수정하기가 어려워진다. 그래서 따로 final 변수로 지정하여 사용한다.
public static final String USER_SESSION_KEY = "sessionedUser";
로그인 여부 확인, 세션 가져오는 메서드도 자주 사용하는 메서드들이다. 따로 만들어서 재사용할 수 있도록 한다.
public static boolean isLoginUser(HttpSession session){
Object sessionedUser=session.getAttribute(USER_SESSION_KEY);
if(sessionedUser==null){
return false;
}
return true;
}
public static User getUserFromSession(HttpSession session){
if(!isLoginUser(session)){
return null;
}
return (User)session.getAttribute(USER_SESSION_KEY);
}
위의 코드들을 따로 HttpSessionUtils라는 클래스로 만들어서 필요할 때마다 가져다 쓴다.
이번 시간에는 기초적인 코드 리팩토링을 하는 방법에 대해 다루어 보았습니다.
코드 리팩토링을 하지 않으면 복잡도가 점점 높아지기 때문에 지속적으로 코드를 리팩토링 해주면서 개발하는 것을 권장합니다.
'Back-end' 카테고리의 다른 글
[JPA] 1대1 관계 (0) | 2018.09.23 |
---|---|
[Spring Boot]원격 서버에 배포하기 (0) | 2018.09.20 |
[SpringBoot] 자기 자신에 한해 개인정보 수정 (0) | 2018.09.18 |
[SpringBoot] 로그인 상태에 따른 메뉴처리, 로그아웃 (0) | 2018.09.18 |
Restful API, 어노테이션 관련 알아볼 것들 (0) | 2018.09.15 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 항해플러스백엔드
- Inception
- 내년은 빡세게!!
- 깃허브
- docker
- 재테크공부
- 도커
- 개발자 회고
- 열반스쿨기초반
- github
- 인셉션
- 부동산공부
- 깃
- pop_back
- 월부닷컴
- 2023년
- Use case
- 유즈케이스
- 파라메터
- resize
- 폭포수
- 항해솔직후기
- 항해플러스후기
- 관계대수
- GIT
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- 월급쟁이부자들
- Spring boot
- push_back
- front
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함