Studying Web Development/Refactoring

리팩터링 2판 구매, 내 프로젝트에 적용해보기

Esoolgnah 2022. 6. 29. 16:23
728x90

 

코드스테이츠를 수료 후 팀프로젝트, 개인 토이 프로젝트를 끝내고 나름 리팩터링이라는 것을 해봤다고 생각했지만 아무래도 제가 해왔던 리팩터링이 제대로 된 리팩터링이 아니란 생각이 들었습니다. 돌이켜보면 그저 버그 해결과 새로운 기능, 요소 추가에 초점이 맞춰진 행동들이었습니다.

이런 생각이 든 김에 구매할까 말까 고민만 하던 책 리팩터링 2판을 구매하게 되었고, 읽기만 하면 공부가 잘 되지 않을 것 같아 제 개인 토이 프로젝트(코딩애플 쇼핑몰 프로젝트)에 적용시켜보며 제대로 공부해보려고 합니다.

우선 이 책에서 말하는 리팩터링의 정의는 아래와 같습니다.

 

리팩터링이란 겉으로 드러나는 코드의 기능(겉보기 동작)은 바꾸지 않으면서
내부 구조를 개선하는 방식으로 소프트웨어 시스템을 수정하는 과정이다.
버그가 생길 가능성을 최소로 줄이면서 코드를 정리하는 정제된 방법이다.
요컨대, 리팩터링한다는 것은 코드를 작성하고 난 뒤에 설계를 개선하는 일이다.

 


위 정의에 따르자면 저는 리팩터링을 했던 2건 모두 딱히 내부 구조를 개선하지 않았습니다. 버그를 해결하긴 했지만 가능성을 최소로 줄였는지는 모르겠습니다. 책을 보면서 리팩터링할 때 어떤 점을 소홀히 했는지 파악하고 고쳐봐야겠습니다.

 

책의 목차는 아래와 같이 구성되어있습니다.

 

01. 리팩터링: 첫번째 예시

02. 리팩터링 원칙

03. 코드에서 나는 악취

04. 테스트 구축하기

05. 리팩터링 카탈로그 보는 법

06. 기본적인 리팩터링

07. 캡슐화

08. 기능 이동

09. 데이터 조직화

10. 조건부 로직 간소화

11. API 리팩터링

12. 상속 다루기

 

그 중 3번(코드에서 나는 악취)을 보면 괜시리 찔립니다. 제 코딩애플 쇼핑몰 프로젝트는 강의를 보며 그대로 따라 만든 뼈대에 살을 붙여 만들었는데, 코드의 구조를 개선하지 않고 기능과 요소를 추가하기만 하여 진짜로 코드에서 악취가 나는 것만 같습니다. 리팩터링을 공부하면서 정리하기에 아주 적합하다고 생각되었습니다.

오늘부터 책을 읽으면서 중요한 내용은 정리도 하고, 프로젝트에 적용시키며 코드에서 악취가 안나는 프로젝트로 만들어보겠습니다.
그리고 현재의 코드 상태와 비교를 확실히 할 수 있도록 레포지토리를 따로 만들어보려고 합니다.

드라마틱한 변화를 보여줄 수 있다면 좋겠네요!

그럼 코드에서 악취가 나는 현재의 레포를 공개하며, 글을 마무리하겠습니다.

 

https://github.com/Esoolgnah/CodingApple_Shopping_Mall

 

GitHub - Esoolgnah/CodingApple_Shopping_Mall: 코딩애플 쇼핑몰 프로젝트 🛒

코딩애플 쇼핑몰 프로젝트 🛒. Contribute to Esoolgnah/CodingApple_Shopping_Mall development by creating an account on GitHub.

github.com

 

 

 

728x90

 

 

 

반응형