본문 바로가기

개발 방법론/리팩터링 이론4

[Refactoring] 변수 추출하기 1. 개요 - 지역변수를 활용해 표현식을 쪼개서 관리하기 쉽게 만든다 - 표현식에 이름을 붙이는 것 - 함수 추출하기와 상당히 유사하다. - 반대로 작업하면 변수 인라인하기이다. 2. 절차 - 불변 변수를 하나 선언하고 이름을 붙일 표현식의 복제본을 대입한다. - 원본 표현식을 새로 만든 변수로 교체한다. - 테스트 - 표현식을 여러 곳에서 사용한다면 변수로 바꿔준다. - 주기적으로 테스트해준다. 3. 예시 - 주문수량 * 개별가격 부분을 추출해보자 - 다음은 수량 할인 / 배송비 부분을 추출해본다. - 주석은 지워도 된다. 리턴 뒤 표현식 자체가 주석처럼 이해하기 쉽게 정리되었기 때문이다. 4. 예시 2 - OOP에서 - 변수로 추출할 수도 있지만, 메서드로 추출할 수도 있다. - 덩치가 큰 클래스에서.. 2023. 5. 3.
[Refactoring] 함수 인라인하기 1. 함수 인라인하기 : - 함수의 본문이 제목보다 읽기 명확한 경우에는 함수제목이 거슬릴 뿐이다. 함수를 인라인으러 넣어버리는 작업을 행하기도 한다. - 이전 단계에서 함수 추출하기의 반대 행위이며, 함수의 목적과 행위의 흐름을 파악하기 좋은 방향으로 추출 혹은 인라인을 진행한다. - 좋은 코드는 컴퓨터가 읽기 좋은 코드가 아니고 사람이 읽기 좋은 코드이다. 그래서 이짓거리(리팩터링)를 하는거다. - 간접호출을 너무 과하게 쓰는 코드도 인라인 대상이다. 위임관계가 복잡하게 얽혀 있으면 인라인 해버려서 차라리 한눈에 파악이라도 하는 방향이 낫다. 2. 함수 인라인 절차 1) 다형 메서드인지 확인한다 : 다형메서드란 동일한 이름을 가지지만 호출되는 객체의 유형에 따라 다른행동을 수행하는 메서드이다. - 서.. 2023. 5. 1.
[Refactoring] 함수 추출하기 1. 함수 추출하기 - 목적과 구현을 분리하는 방식을 기준으로 함수를 추출하는 방법 - 함수의 호출이 많아져 성능이 저하될까 걱정하는 부분에 대해서는 일반지침을 따르자. - 성능최적화의 일반지침 : "최적화를 할 때는 두 규칙을 따른다. 첫 번째, 하지마라. 두 번째, 아직 하지마라." - M. A. 잭슨 - 이름짓기 : 함수 추출의 가장 핵심적인 부분이다. 목적과 하는 일에 대해서 가장 직관적인 이름을 지어라. - 함수의 이름은 나를 당장이라도 때릴 수 있는 사람이 내 코드를 유지/보수 해야된다고 생각할 정도로 확실하고 명확하게 짓는다. 2. 함수 추출하기의 절차 1) 함수를 새로 만들고 목적을 잘 드러내는 이름을 붙인다. ('무엇을' 하는지가 드러나야 한다. '어떻게' 가 아니다. 추상화의 영역이다... 2023. 5. 1.
[Refactoring] 애자일과 TDD 애자일 방법론과 TDD의 관계 애자일 방법론은 소프트웨어 개발 방식 중 하나로, 빠르게 변화하는 고객의 요구사항에 유연하게 대응할 수 있도록 개발하는 것을 목표로 합니다. 애자일 방법론의 핵심 원칙 중 하나는 '지속적인 테스트와 통합'인데요, 이 원칙은 테스트 주도 개발(TDD)과 밀접한 관련이 있습니다. TDD는 개발자가 요구 사항을 충족하는 코드를 작성하기 전에 테스트 케이스를 먼저 작성하는 방법론입니다. 이렇게 함으로써 개발자는 코드의 정확성과 안정성을 보장하고, 리팩토링 과정에서 발생할 수 있는 오류를 최소화할 수 있습니다. 애자일 방법론과 TDD는 서로 상호 보완적인 관계를 가지고 있습니다. 소프트웨어 설계의 중요성 소프트웨어 설계는 개발 과정에서 굉장히 중요한 역할을 담당합니다. 소프트웨어 설.. 2023. 4. 24.