필요로 함 ( 도움말 ) ↑ Arcelli Fontana, Francesca ; Zanoni, Marco ; Ranchetti, Andrea ; Ranchetti, Davide ( 2013 ). " Software Clone Detection and Refactoring ". 《 ISRN Software Engineering 》 2013 : 1 - 8. doi : 10. 1155 / 2013 / 129437. | 확인날짜 = 는 | url = 을 필요로 함 ( 도움말 ) ↑ Kapser, C. ; Godfrey, M. W., " " Cloning Considered Harmful " Considered Harmful, " 13th Working Conference on Reverse Engineering ( WCRE ), pp. 19 - 28, Oct. 2006 ↑ Wagner, Stefan ; Abdulkhaleq, Asim ; Kaya, Kamer ; Paar, Alexander ( 2016 ). " On the relationship of inconsistent software clones and faults : an empirical study ". 《 Proc. 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering ( SANER
##urn sum / 4 ; } 위의 함수를 사용하면 루프 중복이 없는 소스 코드를 제공한다 : extern int array1 [ ] ; extern int array2 [ ] ; int average1 = calc - average - of - four ( array1 ) ; int average2 = calc - average - of - four ( array2 ) ; 이 사소한 경우에서 컴파일러는 해당 함수로 향하는 두 호출에 대한 인라인을 선택할 수 있으며 위의 예처럼 기계 코드가 중복되거나 중복되지 않을 수 있다. 함수가 인라인 처리되지 않으면 추가적인 함수 호출의 부하가 발생하여 실행에 시간이 더 소요될 수 있다. 이론적으로 실행 시 추가 시간은 문제가 될 수 있다. 같이 보기 [ 편집 ] 안티패턴 중복배제 각주 [ 편집 ] ↑ Spinellis, Diomidis. " The Bad Code Spotter's Guide ". InformIT. com. 2008년 6월 6일에 확인함. ↑ Code similarities beyond copy & paste by Elmar Juergens, Florian Deissenboeck, Benjamin Hummel. ↑ Stefan
] 소프트웨어 취약점이 있는 코드가 복사될 때 개발자가 이러한 사본을 알지 못하는 경우 취약점은 계속해서 복사된 코드에 남아있게 된다. [ 4 ] 코드 중복을 사용하면 컴파일 시간의 단축, 인지 부하의 감소, 인적 오류의 감소, 코드를 잊거나 간과하는 일의 감소를 달성할 수 있다. 그러나 모든 코드 중복이 리팩터링이 될 수 있는 것은 아니다. [ 5 ] 프로그래밍 언어가 특히 동시 편집과 같은 사용자 인터페이스 기법과 함께 지원되는 경우 부적절하거나 과도하게 복잡한 추상화를 제공한다면 복제 자체가 가장 효율적인 해결책이 될 수 있다. 게다가, 리팩토링을 할 때 코드를 분리하는 것이 어떠한 유지보수적 이익 보다 더 중요할 수 있다. [ 6 ] 중복 코드는 중복되지 않은 코드 보다 상당히 더 오류가 있는 경향이 있는 것으로 보이지는 않는다. [ 7 ] 중복 코드의 감지 [ 편집 ] 중복 코드를 찾기 위해 수많은 여러 알고리즘들이 제안되었다. 이를테면 다음과 같다 : 베이커 알고리즘. [ 8 ] 라빈 - 카프 문자열 검색 알고리즘. 추상 구문 트리를 사용. [ 9 ] 시각적 클론 감지 ( Visual clone detection ). [ 10 ] 카운트 매트릭스 클론 감지 ( Count Matrix Clone Dete
##rgens, Florian Deissenboeck, Benjamin Hummel. ↑ Stefan Wagner, Asim Abdulkhaleq, Ivan Bogicevic, Jan - Peter Ostberg, Jasmin Ramadani. How are functionally similar code clones syntactically different An empirical study and a benchmark PeerJ Computer Science 2 : e49. doi : 10. 7717 / peerj - cs. 49 ↑ Li, Hongzhe ; Kwon, Hyuckmin ; Kwon, Jonghoon ; Lee, Heejo ( 2016년 4월 25일 ). " CLORIFI : software vulnerability discovery using code clone verification ". 《 Concurrency and Computation : Practice and Experience 》 28 ( 6 ) : 1900 - 1917. doi : 10. 1002 / cpe. 3532. | 확인날짜 = 는 | url = 을 필요로 함 ( 도움말 ) ↑ Arcelli Fontana, Francesca ; Zanoni, Marco ; R
##one Detection Studies. In ACSC ( pp. 105 - 114 ). 외부 링크 [ 편집 ] The University of Alabama at Birmingham : Code Clones Literature Finding duplicate code in C #, VB. Net, ASPX, Ruby, Python, Java, C, C, ActionScript, or XAML 원본 주소 " " 분류 : 안티패턴소스 코드숨은 분류 : 인용 오류 - URL 없이 확인날짜를 사용함 둘러보기 메뉴 개인 도구 로그인하지 않음토론기여계정 만들기로그인 이름공간 문서토론 변수 보기 읽기편집역사 보기 더 보기 검색 둘러보기 대문사용자 모임요즘 화제최근 문서 보기임의 문서로도움말기부 도구 여기를 가리키는 문서가리키는 글의 최근 올리기특수 문서 목록고유 링크문서 정보위키데이터 항목이 문서 인용하기 인쇄 / 내보내기 책 만들기PDF로 다운로드인쇄용 판 다른 언어 日 本 語 中 文 링크 편집 이 문서는 2018년 9월 5일 ( 수 ) 15 : 30에 마지막으로 편집되었습니다. 모든 문서는 크리에이티브 커먼즈 저작자표시 - 동일조건변경허락 3. 0에 따라 사용
( Visual clone detection ). [ 10 ] 카운트 매트릭스 클론 감지 ( Count Matrix Clone Detection ). [ 11 ] [ 12 ] Locality - sensitive hashing 기능적 중복 코드의 예 [ 편집 ] 정수의 배열의 평균을 셈하는 다음의 코드 스니펫이 있다고 하자. extern int array - a [ ] ; extern int array - b [ ] ; int sum - a = 0 ; for ( int i = 0 ; i < 4 ; i ) sum - a = array - a [ i ] ; int average - a = sum - a / 4 ; int sum - b = 0 ; for ( int i = 0 ; i < 4 ; i ) sum - b = array - b [ i ] ; int average - b = sum - b / 4 ; 2개의 루프를 하나의 함수로 재작성할 수 있다 : int calc - average - of - four ( int * array ) { int sum = 0 ; for ( int i = 0 ; i < 4 ; i ) sum = array [ i ] ; return sum / 4 ; } 위의 함수를 사용하면 루프 중복이 없는 소스 코드를 제공한다 : extern int array
중복 코드 - 위키백과, 우리 모두의 백과사전 중복 코드 위키백과, 우리 모두의 백과사전. ( 코드중복에서 넘어옴 ) 둘러보기로 가기 검색하러 가기 코드를 메소드로 대체하여 수행한 중복 코드 해결의 예. 중복 코드는 동일한 실체가 소유하거나 유지 보수하고 있는 하나의 프로그램 내에서 또는 각기 다른 프로그램 내에서 한 번 이상 발생하는 일련의 소스 코드를 가리키는 컴퓨터 프로그래밍 용어이다. 중복 코드는 보통 바람직하지 않는데 여기에는 수많은 이유가 있다. [ 1 ] 중복 코드의 최소한의 요건은 동시다발적 유사성 보다는 연속적으로 중복되는 것으로 보이는 코드의 양에 적용된다. 중복 코드의 연속은 코드 클론 ( code clone ), 간단히 클론 ( clone ) 이라고도 하며 소스 코드 내에서 중복을 찾는 자동화된 과정은 클론 감지 ( clone detection ) 라고 한다. 목차 1 중복을 일으키는 원리 2 비용과 이점 3 중복 코드의 감지 4 기능적 중복 코드의 예 5 같이 보기 6 각주 7 외부 링크 중복을 일으키는 원리 [ 편집 ] 중복 코드가 발생하는 이유들 중에는 복사해서 붙여넣기 프로그래밍을 포함하는데, 여기에서 학문적인 문맥에서 표절, 징발의 일부로 간주될 수도 있으며 그저 동작하기 때문에 코드의 부분이 복사되
##rd IEEE International Conference on Software Analysis, Evolution, and Reengineering ( SANER 2016 ) 》. ↑ Brenda S. Baker. A Program for Identifying Duplicated Code. Computing Science and Statistics, 24 : 49 - 57, 1992. ↑ Ira D. Baxter, et al. Clone Detection Using Abstract Syntax Trees ↑ Visual Detection of Duplicated Code Archived 2006년 6월 29일 - 웨이백 머신 by Matthias Rieger, Stephane Ducasse. ↑ Yuan, Y. and Guo, Y. CMCD : Count Matrix Based Code Clone Detection, in 2011 18th Asia - Pacific Software Engineering Conference. IEEE, Dec. 2011, pp. 250 - 257. ↑ Chen, X., Wang, A. Y., & Tempero, E. D. ( 2014 ). A Replication and Reproduction of Code Clone Detection Studies. In ACSC ( pp. 105 - 114 ). 외부 링크 [ 편집 ] The University of Alabam
, 여기에서 학문적인 문맥에서 표절, 징발의 일부로 간주될 수도 있으며 그저 동작하기 때문에 코드의 부분이 복사되는 것이다. 대부분의 경우 이러한 작업에는 변수 이름 변경이나 코드 추가 / 삭제와 같은 복제된 코드 내의 사소한 수정이 수반된다. 언어적인 측면에서는 코드의 한 복사본을 여러 목적으로 다룰 수 있게 하는 기능을 거의 늘 제공하지만 프로그래머가 적절하게 이를 처리할 시간이 부족해서가 아니라, 또 소프트웨어 부후증의 증가를 고려해서가 아닌, 해당 언어를 잘 알지 못해서 복사본이 만들어진다. 프로그램의 다른 일부분과 매우 비슷한 기능을 포함하는 경우도 있으며 개발자가 독립적으로 다른 곳에 존재하는 것과 매우 비슷한 코드를 작성할 수 있다. 여러 연구에 따르면 이렇게 독립적으로 작성된 코드는 일반적으로 문법적으로 유사하지 않다. [ 2 ] [ 3 ] 개발 속도나 용이성을 증가하기 위해 복제 코드의 생성을 필요로 하는 자동으로 생성되는 코드는 중복의 또다른 이유이기도 하다. 실제 생성기에는 소스 코드에 중복을 포함하지 않고 만들어내는 출력에만 영향을 미친다. 비용과 이점 [ 편집 ] 소프트웨어 취약점이 있는 코드가 복사될 때 개발자가 이러한 사본을 알지 못하는 경우 취약점은 계속해서 복사된 코드에
편집되었습니다. 모든 문서는 크리에이티브 커먼즈 저작자표시 - 동일조건변경허락 3. 0에 따라 사용할 수 있으며, 추가적인 조건이 적용될 수 있습니다. 자세한 내용은 이용 약관을 참고하십시오. 미국 및 다른 국가에 등록되어 있는 Wikimedia Foundation, Inc. 소유의 등록 상표입니다. 개인정보 정책 위키백과 소개 면책 조항 개발자 쿠키 정책 모바일 보기
중복 코드는 동일한 실체가 소유하거나 유지 보수하고 있는 하나의 프로그램 내에서 또는 각기 다른 프로그램 내에서 한 번 이상 발생하는 일련의 소스 코드를 가리키는 컴퓨터 프로그래밍 용어이다. 중복 코드는 보통 바람직하지 않는데 여기에는 수많은 이유가 있다. 중복 코드의 최소한의 요건은 동시다발적 유사성 보다는 연속적으로 중복되는 것으로 보이는 코드의 양에 적용된다. 중복 코드의 연속은 코드 클론(code clone), 간단히 클론(clone)이라고도 하며 소스 코드 내에서 중복을 찾는 자동화된 과정은 클론 감지(clone detection)라고 한다.