Skip to main content Link Search Menu Expand Document (external link) Copy Copied

코드 복사를 피하자

  • 코드를 복사하는 것은 문제가 발생할 수 있는 것이다.
  • 버그가 발생할 경우, 같은 코드를 여러 곳에서 수정해야하므로 비효율적이다.
  • 이미 작성된 메서드를 재사용하거나, 일반화하는 방법을 사용하자.

코드 복사의 문제점

  • 6줄 이상의 같은 코드가 있다면, 이를 코드 클론 또는 사본이라고 볼 수 있다.
  • 이런 코드는 분석하기 어렵다. 사본이 어디에 있는지, 몇 개나 있는지 파악하기 힘들다.
  • 또한 이런 코드는 수정하기 어렵다. 하나의 사본에서 버그가 발생하면, 모든 사본을 수정해야하는 문제가 있다.

해결방안

  1. 복사 붙여넣기 대신, 메서드 호출 리팩토링을 활용하자.
  2. 추출한 메서드를 유틸리티 클래스의 메서드로 만들자.
  3. 공통된 기능을 묶은 상위 클래스를 만들고, 이를 상속하여 재정의하자.

코드 복사를 방지하는 추가적인 방법

  • 복사하기보다, 필요한 기능을 임포트하자.
  • 복사한 후 수정하는 것보다, 상위 클래스 추출을 활용하자.
  • 코드는 언제든지 변경될 수 있다는 것을 기억하자.
  • 백업을 위한 사본을 만드는 것보다, SVN이나 Git 등의 버전 관리 시스템을 사용하자.
  • 긴 SQL 쿼리나 XML, HTML 문서는 문자열 결합, 파라미터를 사용한 메서드로 추출하거나, HTML 코드를 만들어주는 템플릿 엔진을 사용하자.

결론

  • 코드를 복사하는 것은 문제를 일으킬 수 있다.
  • 이미 작성된 코드를 재사용하거나, 일반화하는 방법을 활용하자.
  • 코드 복사를 피하려면, 메서드 호출 리팩토링, 유틸리티 클래스의 메서드 추출, 상위 클래스 추출 등의 방법을 사용하자.