Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
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
31
Tags
more
Archives
Today
Total
관리 메뉴

개발자도전

[팜팜 리팩토링] RESTful API로 리팩토링 본문

팜팜 프로젝트

[팜팜 리팩토링] RESTful API로 리팩토링

도do 2023. 3. 13. 16:34
728x90

문제 파악

기존의 mapping 방식은 GET과 POST 매핑만을 사용해서 작성했었습니다.

그러나 리팩토링에 대해 공부하면서 RESTful API를 알게 되었고 RESTful API로 리팩토링 하였습니다.

 

RESTful API를 사용하는 이유는 가독성 향상, 유지보수 용이, 각 모듈이 독립적으로 작동할 수 있도록 설계할 수 있습니다.

 

RESTful API의 네이밍 규칙을 따라서 리팩토링 해주었습니다.

1. 명사를 사용한다.
2. 소문자를 사용한다.
3. 복수형을 사용한다.
4. 구분자는 -(하이픈)을 사용한다 /  _(언더바)와 카멜케이스 허용하지 않는다.
5. url 마지막에 슬래쉬를 포함시키지 않는다.
6. 파일 확장자는 포함하지 않는다.
7. CRUD 함수명을 사용하지 않는다.
8. 필터를 위해 쿼리 파라미터를 사용한다.

 

문제 해결

먼저, 자원(Resource)을 식별하고 HTTP Method를 결정하는 과정을 거쳤습니다.

메소드를 결정 후 네이밍 규칙에 맞게 주소들을 수정해주었습니다.

 

1. 삽입, 수정, 삭제 관련 mapping주소를 모두 post로 작성해주었었는데

추가 : PostMapping / 수정 : PutMapping , PatchMapping / 삭제 : DeleteMapping를 사용해서 수정해주었습니다.

수정 전 코드 : 
@GetMapping("/board/{boardTypeNo}/{boardNo}/delete")

수정 후 코드 :
@DeleteMapping("/boards/{boardTypeNo}/{boardNo}")

 

2. 복수형으로 작성하지 않고 단수형으로 작성한 부분들을 수정해주었습니다.

 

3. CRUD를 사용하면 안되는데 update를 작성한 코드가 있어서 edit로 수정해주었습니다.

수정 전 코드 : 
@GetMapping("/board/{boardTypeNo}/{boardNo}/update")

수정 후 코드 : 
@GetMapping("/boards/{boardTypeNo}/{boardNo}/edit")

 

4. 이전 코드에서는 게시글 삭제 시 DeleteFlag로 삭제여부를 GetMapping을 사용해 수정해주었었습니다.

게시글을 삭제하는 것이지만 DB에서 데이터를 삭제해주는 것이 아니라 DeleteMapping을 쓰지 않고 PatchMapping을 사용해서 수정해주었습니다.

수정 전 코드 : 
@GetMapping("/board/{boardTypeNo}/{boardNo}/delete")

수정 후 코드 : 
@PatchMapping("/boards/{boardTypeNo}/{boardNo}")

 

✔ 회고

 

리팩토링에 대해서 알아보다가 RESTful API를 알게 되었습니다.

그러면서 RESTful API를 사용하면 코드의 가독성과 유지보수성이 향상된다는 것을 알게되었고 리팩토링을 해보게되었습니다.

 

최근에 작업한 프로젝트의 매핑주소를 보니 확실히 코드의 가독성에 대한 문제점이 보였습니다.

따라서 RESTful API를 적용하여 기존의 매핑주소를 리팩토링해보았습니다.

 

URL 작성 규칙을 찾아보고 이에 맞지 않는 주소들은 맞도록 수정해주면서 더욱 제가 작성한 코드들의 문제점들이 확실히 보였습니다.

이 전엔 단순히 get과 post매핑을 사용해주어 각각 어떤 기능에 대한 주소인지를 적어줌으로 길었던 코드가 RESTful API로 수정하지 간결해진것이 보였습니다.

 

리팩토링을 마치고, 기존에 있던 문제점이 해결되어서 코드의 가독성과 유지보수성이 향상된 것을 확인할 수 있었습니다. 또한, RESTful API를 적용함으로써, 코드의 일관성과 통일성을 유지할 수 있어서 다른 개발자들이 코드를 이해하고 유지보수하는 데에도 도움이 되었습니다.

이번 리팩토링을 통해, RESTful API의 개념과 규칙을 배우고 적용해볼 수 있었습니다. 앞으로도 이를 유지하며 API를 설계하고 구현하는 데 노력할 것입니다.

 

728x90

'팜팜 프로젝트' 카테고리의 다른 글

[팜팜 리팩토링] Ajax를 Axios로 리팩토링  (0) 2023.03.15
[팜팜 프로젝트 회고]  (0) 2023.03.15
Comments