안녕하세요.
포트폴리오에 올릴 게시판을 만들면서,
문자열에 대한 중복코드를 줄인 경험을 공유하고자합니다.
제 경험이 다른분들께 도움이 되었으면 좋겠습니다.
꼭 게시판이 아니여도,
Java의 String타입을 사용하는 모든 프로젝트에서 적용이 가능합니다.
ㅡㅡㅡ
문자열을 변수로 관리한다.
예전에 이 말을 잘 이해 못했습니다.
msg.setText("잘못된 입력입니다."); 이거를 굳이
public static final String INVALID_INPUT_MESSAGE = "잘못된 입력입니다.";
msg.setText(INVALID)INPUT_MESSAGE); 이렇게 하는 이유요.
이번 프로젝트하며 직접 겪어보며, 제가 느낀
문자열을 변수로 관리하는 방법은 다음과 같습니다.
>> 여기저기서 공통적으로 사용해야하는 문자열은 반드시 변수에 저장해야한다.
[처음 버전]
return "/help/faq.do"; 이렇게 한다던가,
modelAndView.setViewName("/help/faq.do"); 이렇게 한다던가,
jsp페이지 혹은 controller 매핑경로를 반환하는 코드가 있었습니다.
[문제점]
그래서 중복코드가 되게 심했습니다.
로그인페이지 딱 하나만 생각해봐도,
1. 내 문의내역페이지 접근 --> 로그인안되어있음 --> 로그인페이지 이동
2. 문의하기 페이지 접근 --> 로그인안되어있음 --> 로그인페이지 이동
이런식으로, 로그인페이지에 접근하는 경우가 되게많았는대,
이게 모두 "/help/loginForm.do" 이렇게 되어있었습니다.
즉, loginForm으로 가는 경로가 바뀌면,
저의경우 최소 20군데는 넘게 수정을 해야했습니다.
심지어, 로그인안되어있어서 로그인페이지갔다가, 로그인성공하면
이전페이지로 다시 보내야 해서.. previousPage라는 패러미터로 또 페이지를 넘겨야 했기 때문에,
정말 페이지경로 문자열의 중복이 심했습니다.
그래서 모두 이렇게 변수에 저장하고 관리하기 시작했습니다.
왜 굳이 static final로 설정했는지는,
여기 글을 보고 배웠습니다.
꼭 jsp파일경로가 아니여도, 문자열을 사용하는 어떠한 경우라도
똑같은 문자열을 사용한다면,
저는 앞으로 변수에 담으려고 합니다.
ㅡㅡ
이외에도, 예외처리 했던 경험 이라던가,
계산된 or 계산해야하는 값을 자료구조에 저장해야한다던가 하는
기타 저만의 코딩스탠다드가 몇개 더 있습니다만,
뉴비가 만들어서 지키는 규칙이다보니 신빙성이 떨어져서,
커뮤니티에 올려볼지 말지는 고민중입니다.
게시판 혼자 만드느라 1달 되가는데,
꼭 좋은곳 취업하고싶습니다....