본문 바로가기
Web/Node.JS

[패스트캠퍼스 챌린지 15일차] RESTful API - 리팩토링

by Dev_Mook 2021. 9. 20.

Fast campus Logo

 

Fastcampus_Node.js 수강 목록

 

패스트캠퍼스 작심 30일 챌린지 15일차.

 


오늘은 그동안 작성했던 소스코드를 리팩토링하는 시간!

 

리팩토링을 하기 전에 리팩토링이 뭔지 알아야겠지?

리팩토링은 기능 동작에 영향을 주지 않으면서 내부 소스코드의 구조를 변경하는 것으로,

기능(역할) 단위로 소스코드를 분리하거나, 중복되는 코드를 제거하여 최대한 간결하게

작성하는 것을 말한다.

 

주로 중복코드를 제거하거나 기능단위로 함수를 분리하는 과정을 통해 리팩토링을 진행한다.

(그 외에 더 많은? 무언가를 하겠지?)

 

RESTful API 실습 - 파일 분리

 

RESTful API를 위한 소스코드를 js 파일 하나에 다 작성하였지만, 중복되는 코드가 너무 많다.

 

함수 별로 statusCode도 똑같이 전달하고, Encoding 설정도 모두 중복된다.

그리고 RESTful API를 처리하는 함수는 별도의 파일에 작성하여 사용할 수 있다.

 

/** @type {Route[]} */
const routes = [
    {
        url : /^\/board$/,
        method : 'GET',
        callback : async () => ({
            // TODO : Implement
            statusCode: 200,
            body: boards
        })
    }
];

// 현재 module에서 내보내는 것이 route 라는 것을 알려줌
module.exports = {
    routes
}

 

이렇게 작성하면 1차로 리팩토링 끝!

나머지 기능은 알아서 잘 작성하리라 생각하고,

HTTPiePostman을 통해 테스트를 해보면 이전 소스코드와 동일하게 동작하는 것을 알 수 있다.

 

대신 이전 소스코드보다 유지보구하기 편하게 작성되어있다는 것을 알 수 있다.

물론 일부 기능에 대해서만 리팩토링을 진행한 것이기 때문에

아직도 중복되는 소스코드가 있다.

 

RESTful API 실습 - 리팩토링

 

이런 부분은 추후 알아서 리팩토링을 해보길 바란다.

참고로 나는 기능 단위로 하나하나 분리해서 리팩토링을 진행해볼 예정이다.

(~대한 작게 나눠봐야겠다.)

 


 

[오늘의 학습통계]

패스트캠퍼스 작심 30일 챌린지 15일차 학습통계

 


- 패스트캠퍼스 URL : https://bit.ly/37BpXiC

* 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.