Page 11 - 006963
P. 11

마틴 파울러(Martin Fowler)가 제안한 <리팩토링: 코드 품질을 개선하는 객체지향 사고법>(한빛미디                      1

                        어, 2012) 같은 도구를 작성하기는 매우 어렵습니다. 그리고 이러한 도구는 동적이고 다양하게 변
                        형된 생태계(2장 참고)가 존재하는 자바스크립트에서 리팩토링을 하는 사람들의 상상력을 뒤처지                               리팩토링이란?
                        게 할 것입니다.

                        파울러의 접근 방식은 자동화보다는 안전하지 않은 상태를 최소화하는 코드로 변경하는 단계의
                        리팩토링 ‘메커니즘’에 중점을 두었습니다.

                        책에서 옵다이크가 이야기한 자동화된 접근법만 사용한다면 리팩토링은 많이 지연될 수 있습니
                        다. 그리고 이 방식은 파울러가 강조한 기계적인 접근(단계적 절차) 방식에서 벗어납니다. 그것은
                        주어진 리팩토링을 이용하여 코드에 대해 확신하기에, 테스트할 때마다 변경 사항의 성공 여부를

                        간단하게 확인할 수 있는 코드를 준비해야 하기 때문입니다. 그래서 책에서는 리팩토링한 코드가
                        제대로 실행되지 않을 때 변경 전 코드로 되돌릴 수 있도록(롤백) 반드시 버전(우리는 깃(git)을 사
                        용합니다) 관리를 사용하여 단계적으로 리팩토링을 진행하는 파울러 접근 방식도 고려하면서 진
                        행합니다.



                                      버전 관리를 사용하세요!
                          코드를 변경한 후 이전 상태로 쉽게 되돌릴 수 없다면 기반 코드에 심각한 영향을 줄 수 있습니다. 리팩토링 계획이 있
                          는 기반 코드를 백업하지 않았다면 책을 내려놓으세요. 그리고 버전 관리를 한 후 다시 시작하기 바랍니다.

                          버전 관리를 사용하고 있지 않다면 깃(http://git-scm.com/)을 추천합니다. 그리고 깃허브(http://github.com)에서
                          여러분이 한 작업을 백업하길 권장합니다.



                        물론 책 앞부분에서 자동화와 역학의 (메커니즘) 접근법을 비교하는 것은 무신경하게 반응하는 것
                        처럼 보일 수 있습니다. 그러나 기본적으로 책에서 사용된 절차[적색(테스트 실패 상태), 녹색(테

                        스트 통과 상태), 리팩토링 주기, 무언가 잘못되면 신속하게 되돌아가는 롤백(roll back)]는 품질 관
                        리 팀이 가장 많이 취하는 단계적인 작동 방식을 기반으로 합니다. 아마도 나중에는 자동화된 리
                        팩토링이 파울러의 광범위한 리팩토링 카탈로그와 책에서 소개된 모든 내용에 부합하겠지만, 시

                        간이 좀 걸릴 것입니다.
                        우리 목표는 자바스크립트 개발자를 지저분한 곳에서 내보내는 것입니다. 이 작업은 자동화와 기
                        계화를 시도하는 과정이 되겠지만, 겸손한 거장들(옵다이크, 파울러, 존슨 등)의 작업 중 가장 중

                        요한 부분은 우리 코드를 더욱 개선하고 안전하게 만드는 새로운 접근법을 제공할 것입니다.







                                                                                                      027




         리팩토링 자바스크립트(본문)최종.indd   27                                                             2018-09-19   오전 1:31:09
   6   7   8   9   10   11   12   13   14   15   16