Computer기본지식/리팩터링
-
리팩터링 Chapter 8 - 기능 이동Computer기본지식/리팩터링 2021. 10. 8. 15:25
이번 챕터는 프로그램 요소를 생성 혹은 제거하는 것에 더해 클래스나 모듈이동을 주로 설명합니다. 이 챕터에서 가장 중요한 작업은 테스팅이라고 생각합니다. 필드나 함수를 클래스 간의 이동 할 경우 충돌이 발생할 수 있습니다. 그래서 한 단계씩 하면서 꼭 테스트를 진행해야합니다. 그럼 시작해보겠습니다. 8-1 함수 옮기기 class Account { get overdraftCharge() {...} class AccountType { get overdraftCharge() {...} 함수를 이동하는 기준은 모듈화를 얼마나 잘 시켰는지입니다. 모듈화는 프로그램을 수정하려 할 때 해당 기능의 작은 부분만 이해해도 가능하게 해주는 능력입니다. 예를 들어 어떤 함수가 자신이 속한 모듈 A의 요소들보다 다른 모듈 B..
-
리팩터링 Chapter 5, 6(앞부분) - 기본적인 리팩터링Computer기본지식/리팩터링 2021. 9. 10. 16:00
이번 장에서는 본격적으로 리팩터링기법에 대한 소개가 시작됩니다. 첫 번째 챕터는 함수추출과 인라인 등 기본적인 리팩터링 기술에 대해서 설명합니다. 양이 꽤 많은 관계로 반으로 나눠서 진행하였습니다. Chapter 5. 리팩터링 카탈로그 보는 법 5-1 리팩터링 설명 형식 1. 개요 개념도 + 코드 예시가 나옵니다. 다음에 찾기 쉽게 기억 되살리기용 시각 장치입니다. 2. 절차 구체적인 진행 순서가 기억나지 않을 때 참고하는 것입니다. 작은 단계들을 밟아 나가는게 핵심입니다. 상황이 난해할수록 단계를 잘게 나누면됩니다. 3. 예시 레퍼런스로써 사용하면 됩니다. 물론 간단한 코드로 구성되어있습니다. Chapter 6. 기본적인 리팩터링 6-1 함수 추출하기 function printOwing(invoice)..
-
리팩터링 Chapter 4 - 테스트 구축하기Computer기본지식/리팩터링 2021. 9. 2. 19:04
이번 4장은 테스트를 어떻게 작성하고 작성한 것을 바탕으로 리팩터링하는 방법을 가르쳐줍니다. 저도 Spring을 공부하면서 무작정 기능을 개발하는 습관이 있었습니다. 예외적인 부분과 경계부분은 전혀 고려하지 않았습니다. 이 챕터를 읽고나서는 코드를 짜는 방식에 대한 생각이 완전히 바뀌었습니다. 기능을 구현하기 전 무조건 기능에 대한 테스트 코드를 작성하고 그것에 맞춰가는 방식으로 코드를 구성할 예정입니다. 이것이 바로 TDD(Test Driven Development)입니다. 4장을 정리해보겠습니다. 4-1 자가 테스트 코드의 가치 실제 프로그래머들이 코드를 작성하는 시간의 비중은 크지 않습니다. 대부분의 시간을 설계 및 버그 수정에 시간을 쏟아 붓습니다. 작업을 효율적으로 해줄 수 있는 방법이 테스트를..
-
리팩터링 Chapter 3 - 코드에서 나는 악취Computer기본지식/리팩터링 2021. 8. 26. 16:40
이번 포스팅은 코드에서 나는 악취라는 주제로 포스팅하겠습니다. 이번 챕터는 리팩터링을 언제 해야하고 언제 그만할지를 알려주는 챕터입니다. 그래서 다양한 리팩터링 기술들을 간단하게 코드로 소개했습니다. 3-1 기이한 이름 함수, 모듈, 변수, 클래스 등은 이름만 보고도 무슨 일을 하고 어떻게 사용해야 하는지 명확히 알 수 있도록 신경써야합니다. 대부분 함수 선언 바꾸기, 변수 이름 바꾸기, 필드 이름 바꾸기로 리팩터링. 3-2 중복 코드 한 클래스에 두 메서드가 똑같은 표현식 사용하는 경우 : 함수 추출하기 코드가 비슷한데 완전히 똑같진 않을 경우 : 문장 슬라이스하기 같은 부모로부터 파생된 서브 클래스에 중복 코드가 있을 경우 : 메서드 올리기 문장 슬라이스 비슷한 부분을 모아서 함수 추출하기를 쉽게 적..