새소식

반응형
250x250
📁 프로젝트 일지/👩‍🏫 공공 교육 서비스

15.코드 리팩토링(2) - RESTful한 API 만들기(1) / 클래스 목적에 맞게 수정하기

  • -
728x90
반응형

🦮 스스로를 위한 리팩토링 일지 가이드

1️⃣ 리팩토링 이전 코드는 어떠했는가

2️⃣ 어떻게 리팩토링하였는가

3️⃣ 리팩토링 이후 코드는 어떻게 개선되었는가

 

 

REST API를 처음 공부하고 사용해 보면서 나와 팀원이 설계 규칙을 제대로 지키지 못한 부분이 보였다.

또한 팀원과 각각 회원 관리, 댓글 기능에만 REST API를 적용하고 다른 부분에는 적용하지 않았는데,

이 부분이 통일성이 없어 코드 가독성을 저하한다.

 

 

리팩토링 전
리팩토링 전

 

LoginChk 컨트롤러 클래스와 MemberController 클래스에서,

로그인/로그아웃 처리 메소드들은 MemberController 클래스에,

회원 가입/정보 수정/탈퇴 메소드들은 LoginChk 클래스에 적혀 있었다.

즉 클래스 이름과 메소드 용도가 일치하지 않는 문제가 있다.

 

 

 

 

정적 웹페이지를 리턴하던 기존 컨트롤러에도 REST API를 적용했다.

확실히 가독성이 더 좋아졌다.

 

 

url에는 자원만 표시되도록 고치고, 언더바 대신 하이픈을 사용하는 설계 규칙대로 수정했다.

 

 

메소드와 필드를 이동하여 LoginChk 컨트롤러 클래스에는 로그인 처리 로직만,

MemberController 클래스에는 회원 가입/조회/정보 수정/탈퇴/관련 페이지 띄우는 메소드만 남겼다.

 

회원 관련 메소드만 한 클래스에 썼을 때는 @RestController로만 구현을 했었는데,

MemberController에 회원 관련 로직 메소드들을 옮기면서 데이터를 리턴하는 메소드와 뷰를 리턴하는 메소드를 한 클래스에 쓰는 법을 배웠다.

@Controller를 그대로 쓰면서 공통되는 리소스는 @RequestMapping("/member")과 같이 표시하고, 데이터를 리턴하는 메소드에는 @ResponseBody를 추가해야 한다.

 

그리고 REST API로 고치는 과정에서 405 오류를 자주 만났다.

원인은 정말 어이없는 사소한 실수들...

1.메소드 리턴 타입을 void에서 boolean으로 고쳤는데 메소드에 return문을 까먹고 안썼다든가...

2.회원 탈퇴 로직을 동기->비동기로 수정하는 과정에서 $.ajax를 쓰는데 제이쿼리 라이브러리를 스크립트에 로드하지 않았다든가...

이런 사소한 오류들로 약간 삽질하느라 지쳐서 전부 다 고치진 못했다.. 허허

 


다음에 리팩토링할 부분

1.REST API 적용 - MyCourseController / ReviewController

2.코드 줄이기

- 안쓰는 impot문 삭제 - 모든 클래스

- 안쓰는 주석, 디버깅문, 매개변수 삭제 - 모든 클래스

3.안쓰는 jsp 파일 삭제 - 샘플 프로젝트 jsp 파일 + 그외

4.클래스 목적에 맞게 메소드명 통일/수정 - 모든 클래스

5.모듈화하여 유지보수 용이하게 만들기

 

728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.