코드 재사용: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
Luckas-bot (토론 | 기여)
잔글 [r2.5.2] 로봇이 더함: nl:Code-reuse
20번째 줄:
== 재사용의 형태 ==
; 편의적 재사용(opportunistic reuse)
: 프로젝트를 시작할 때 재사용가능한 컴퍼넌트가콤포넌트가 있는지를 찾아보고 재사용한다.
; 계획적 재사용(planned reuse)
: 컴퍼넌트를 차후에 재사용가능하도록 전략적으로 설계해 나간다.
29번째 줄:
; 외부 재사용(external reuse)
: 서드파티에서 만든 콤포넌트를 구하여 사용한다. 유상인 경우, 조달비용을 자신이 직접 개발할 때 드는 비용의 20% 이하로 잡는 것이 일반적이다. 또, 조달한 콤포넌트를 학습하여 활용하는데 걸리는 시간도 고려해야 한다.
 
==예==
;소프트웨어 라이브러리
코드 재사용의 매우 일반적인 예로서 라이브러리를 사용하는 것이다. 각종 형식으로 정보의 변환, 외부기억장치 액세스, 외부 프로그램과의 인터페이스, 정보(수, 단어, 이름, 위치, 날짜 등)의 조작이라고 한 일반적인 조작은, 많은 프로그램으로 필요하게 된다. 새로운 프로그램을 쓸 때, 라이브러리의 코드를 사용해 그것들 작업을 실행하도록 할 수 있어 [[차바퀴의 재발명]]과 같이 같은 조작을 실행하는 프로그램을 또 만들어 쓸 필요는 없다. 라이브러리의 실장은 특수한 사례도 포함하여 자주 평가되고 있다고 하는 이점이 있다. 결점은, 성능 향상이나 출력 형식을 바꾸고자 할 때 세부사항을 조절할 수 없는 점과 라이브러리를 취득·학습·설정하는 데에 시간과 비용이 든다는 점이다.
 
;[[디자인 패턴]]
디자인 패턴은 비슷한 문제를 풀기 위한 범용적인 해법이다. 디자인 패턴은 개념적이고, 개별 문제의 필요에 따라서 수정 가능하다. 추상 클래스와 인터페이스는 특정의 패턴의 실장에 재사용 가능하다.
 
; 체제
{{참조|응용프로그램 체제}}
서드파티 응용프로그램이나 체제를 통해 소프트웨어의 큰 부분을 재사용하는 것도 많다. 다만 체제는 통상 특정 영역에 고유한 것으로, 광범위하게 응용하기는 어렵다.
 
== 같이 보기 ==
*[[Don't repeat yourself]]
*[[상속]]
*[[수속형 프로그래밍]]
*[[다형성]]
*[[가상 상속]]
*[[소프트웨어 콤포넌트]]
*[[차바퀴의 재발명]]
*[[NIH 증후군]]
 
[[분류:소프트웨어 공학]]