리팩토링 리팩토링은 내부의 코드를 개선하는 하나의 방법론이자 솔루션을 뜻합니다. 리팩토링을 한마디로 말하자면, 나쁜 냄새가 나는 코드를 최적화하는 것입니다. 여기서 주의할 점은 런타임 시의 최적화가 아니라 프로그래밍을 할 때 버그 없는 프로그램을 만드는 것입니다. 외부 인터페이스는 그대로 두고 내부의 코드만을 개선하여 재사용과 가독성을 높이는 데 목적이 있습니다. [ 리팩토링 시리즈 ] [C++] 누구나 쉽게, 리팩토링(클린코드)-① 순수가상함수/추상클래스 [C++] 누구나 쉽게, 리팩토링(클린코드)-② 인터페이스 [C++] 누구나 쉽게, 리팩토링(클린코드)-③ 캐스팅 [C++] 누구나 쉽게, 리팩토링(클린코드)-④ 상속 (개념과 특징) 이번시간에는 리팩토링을 진행하면서 Null 객체를 도입에 대해 살펴..
리팩토링 리팩토링은 내부의 코드를 개선하는 하나의 방법론이자 솔루션을 뜻합니다. 리팩토링을 한마디로 말하자면, 나쁜 냄새가 나는 코드를 최적화하는 것입니다. 여기서 주의할 점은 런타임 시의 최적화가 아니라 프로그래밍을 할 때 버그 없는 프로그램을 만드는 것입니다. 외부 인터페이스는 그대로 두고 내부의 코드만을 개선하여 재사용과 가독성을 높이는 데 목적이 있습니다. [ 리팩토링 시리즈 ] [C++] 누구나 쉽게, 리팩토링(클린코드)-① 순수가상함수/추상클래스 [C++] 누구나 쉽게, 리팩토링(클린코드)-② 인터페이스 [C++] 누구나 쉽게, 리팩토링(클린코드)-③ 캐스팅 이번시간에는 리팩토링을 진행하면서 상속개념에 대해 살펴보겠습니다. 4. 상속 스타크래프트의 마린과 고스트를 예로 설명하겠습니다. clas..
리팩토링 리팩토링은 내부의 코드를 개선하는 하나의 방법론이자 솔루션을 뜻합니다. 리팩토링을 한마디로 말하자면, 나쁜 냄새가 나는 코드를 최적화하는 것입니다. 여기서 주의할 점은 런타임 시의 최적화가 아니라 프로그래밍을 할 때 버그 없는 프로그램을 만드는 것입니다. 외부 인터페이스는 그대로 두고 내부의 코드만을 개선하여 재사용과 가독성을 높이는 데 목적이 있습니다. [ 리팩토링 시리즈 ] [C++] 누구나 쉽게, 리팩토링(클린코드)-① 순수가상함수/추상클래스 [C++] 누구나 쉽게, 리팩토링(클린코드)-② 인터페이스 [C++] 누구나 쉽게, 리팩토링(클린코드)-③ 캐스팅(이번글) 이번시간에는 리팩토링을 진행하면서 캐스팅 개념에 대해 살펴보겠습니다. 3. 캐스팅 캐스팅이란 형변환을 뜻합니다. 잘못된 형변환은..
리팩토링이란 리팩토링은 내부의 코드를 개선하는 하나의 방법론이자 솔루션을 뜻합니다. 리팩토링을 한마디로 말하자면, 나쁜 냄새가 나는 코드를 최적화하는 것입니다. 여기서 주의할 점은 런타임 시의 최적화가 아니라 프로그래밍을 할 때 버그 없는 프로그램을 만드는 것입니다. 외부 인터페이스는 그대로 두고 내부의 코드만을 개선하여 재사용과 가독성을 높이는 데 목적이 있습니다. 참고로 리팩토링은 전체적인 아키텍처에서부터 개선해나가는 디자인패턴과 떼어놓을 수 없는 관계입니다. 개념은 동일한데 바라보는 관점이 다른 것입니다. 이제 본격적으로 리팩토링을 시작합니다. 1. 순수가상함수와 추상클래스 문제 발생 먼저 접하기 쉬운 Animal 클래스를 구현해볼까요! Dog개, Cat고양이 클래스도 함께 구현합니다. 개발자들이 ..
2. 인터페이스 이번에는 핸드폰 예제를 이용합니다! 쌈쏭의 자랑 애니콜(Anycall) 핸드폰의 통화(call)기능을 구현합니다.사람(Person)은 use_phone()을 통해 이 기능을 사용합니다. 싸이언(Cyon) 핸드폰을 하나 더 구매했다고 합시다.싸이언은 통화 기능이 애니콜과 달리 send 함수를 사용하네요.역시 통화하기 위해 Person 클래스에 싸이언용 use_phone()을 구현합니다. 애니콜과 싸이언은 다른 타입으로, 다른 타입의 포인터끼리는 호환이 되지 않기 때문에void use_phone(Cyon *p, const char* n) { p -> send(n); }을 하나 더 만들어주어야 하는 것이죠. 메인함수에는int main() { Person p; Anycall a; p.use_ph..
Refactoring은 내부의 코드를 개선하는 하나의 방법론이자 솔루션입니다.대부분 리팩토링은 OS에 독립적인 Java에서 이루어지는데요.그러나 객체 지향의 내부 구조를 이해를 돕기 위해 C++로 진행하겠습니다. 리팩토링을 한마디로 말하자면, 나쁜 냄새가 나는 코드를 최적화하는 것입니다.여기서 주의할 점은 런타임에서의 최적화가 아니라!코드를 짤 때, 버그 없는 프로그램을 만드는 것입니다.외부 인터페이스는 그대로 두고 내부의 코드만을 개선하여 재사용과 가독성을 높이는 데 목적이 있습니다. 특히 전체적인 아키텍처에서 개선해나가는 디자인패턴과 떼어놓을 수 없는 관계입니다.리팩토링과 디자인패턴의 개념은 동일한데, 바라보는 관점이 다를 뿐 입니다! 이제 본격적으로 리팩토링을 시작합니다. 1. 순수 가상함수와 추상..