리펙토링을 실제로 어떻게 수행하는지.. 마틴 파울러(Martin Fowler)의 리펙토링 책에 나온 내용을 요약합니다. 여기에 정리한 내용은 인덱스 정도로 활용하시고.. 실제 리펙토링을 위한 예제나 자세한 설명은 책을 참고하시기 바랍니다. 1. 메소드 정리 (Composing Methods) Extract Method (136) 그룹으로 함께 묶을 수 있는 코드 조각이 있으면, 코드의 목적이 잘 드러나도록 메소드의 이름을 지어 별도의 메소드로 뽑아낸다. Inline Method (144) 메소드 몸체가 메소드의 이름 만큼이나 명확할 때는, 호출하는 곳에 메소드의 몸체를 넣고 메소드를 삭제하라 Inline Temp (146) 간단한 수식의 결과값을 가지는 임시변수가 있고, 그 임시변수가 다른 리펙토링을 하..
리펙토링을 하려면 소스 코드 속의 나쁜 냄새를 맡을 수 있어야 한다고 합니다. "리펙토링"이란 책에서 켄트 벡(Kent Beck)과 마틴 파울러(Martin Fowler)가 이야기한 코드 속의 나쁜 냄새에 대해 정리해 보려고 합니다. 중복된 코드 (Duplicated Code) - 동일한 소스가 여기 저기 사용된다면 반드시 리펙토링을 해야 한다고 합니다. Extract Method (136), Extract Class (179), Pull Up Method (370), Form template Method (393) 긴 메소드 (Long Method) - C 프로그래밍부터 시작해서인지 절차적 프로그래밍에 익숙한 경우, 하나의 메소드에서 모든 일을 처리하는 경우가 종종 있습니다. 긴 메소드는 쪼개야 한다고..
프로그래머들은 한번쯤 리펙토링이라는 것을 들어봤을 겁니다. 리펙토링이 좋다는 것은 익히 들어 알겠는데 실제로 못하는 경우가 대부분입니다. 왜 그럴까요? 우선, 리펙토링이 무엇이고 어떻게 하는 것인지 모르기 때문인 것 같습니다. 솔직히 저도 리펙토링 관련 책을 이번에 읽어보기는 했지만, 아직도 어떤 경우에 리펙토링을 해야 하는지 느낌이 확 오지는 않습니다. -.- A->B로 변경하는 것이 설명되어 있으면, 바로 B->A로 바꾸는 것도 설명되어 있습니다. 즉, 경우에 따라 적용하는 리펙토링이 다르다는 것인데.. 이건 경험이 필요한 것 같습니다.~ 끊임없이 생각해보고 변경하다보면 어떤 것이 올바른 리펙토링인지 알수 있지 않을까 합니다. 다음으로는 리펙토링을 하고 있으면, 윗분들은 아무것도 하지 않고 있다고 생..
프로젝트를 진행할 때, 현업에서 사용하는 방법론은 여러가지가 있습니다. 방법론!! 몇몇 사람들 특히 개발자들은 방법론은 쓸데없는 것이고 개발에 전혀 도움이 되지 않는다고 이야기 합니다. 저 역시도 RUP, 마르미, 이노베이터 등의 방법론을 토대로 프로젝트를 진행해 본 경험이 있습니다만, 솔직히 방법론이 무용지물이라는 생각을 해본 적이 꽤 있습니다. 이유는 바로 방법론에 맞추어 개발하고 산출물을 만드는 것이 아니라, 프로젝트 완료 시점에 방법론의 산출물을 한꺼번에 작성하거나 초기에 대충 작성해 놓고 나중에 한꺼번에 변경하는 것이 문제가 되는 것이었습니다. 그러다보니 오히려 방법론이 개발팀에 있어서는 짐이 되는 것이죠.. 또, 방법론은 모든 프로젝트를 염두에 두고 만들어 놓은 것이므로.. 프로젝트의 특성에 ..