프로그래밍 공부
카테고리
작성일
2024. 1. 23. 14:38
작성자
WDmil
728x90

4.5 코드의 재사용

경험있는 C++프로그래머라면 절대 바닥에서부터 프로젝트를 시작하지 않는다. 대신 표준템플릿 라이브러리, 오픈소스, 직장에서 내부적으로 구할 수 있는 코드 자산, 또는 자신이 작성했던 코드 등을 광범위하게 수집하여 재활용한다.

 

거기에 더하여 유능한 C++프로그래머라면 여러가지 일반적인 디자인 문제에 적용되는 접근 방법이나 전략을 재활용한다.

이러한 전략은 과거 프로젝트에서 배운 것 일수도 있고 전형적인 디자인 패턴 일 수도 있다.

 

이러한 방법을 최대한 활용하려면 재사용하려는 코드들의 유형과 코드 재사용에 따른 장단점을 이해할 필요가 있다.

오해하지 말아야 할 점은 코드를 재사용한다는 것이 소스코드 편집기에서 복사하여 붙여넣기 하는 것이 아니라는 점이다!

 

코드 재사용은 중복되는 코드가 없어야 한다.


4.5.1 용어정리

코드 재사용의 장단점을 살펴보기 전에 재사용 코드의 유형과 관련 용어를 알아두면 도움이 된다. 재사용 가능한 코드는 다음 세가지 종류로 나뉜다.

  • 과거에 직접 작성했던 코드
  • 동료가 작성한 코드
  • 재직 중인 조직 바깥에 있는 협력업체에서 작성한 코드

그리고 재사용 코드의 구성 형태는 다음과 같이 구분할 수 있다.

  • 독립 함수 또는 클래스,
    과거에 직접 작성했던 코드나 동료가 작성한 코드는 이런 형태일 가능성이 높다.
  • 라이브러리.
    특정 작업을 수행하기 위한 코드의 집합이다. 예를 들어 암호 처리 등 특정 영역의 문제 해결이나 XML 피싱 등, 특정 목적의 작업일 수 있다. 이 외에도 동기화나 스레드를 지원하기 위한 유틸리티 일 수도 있고 네트워킹이나 그래픽 처리 전문일 수도 있다.
  • 프레임워크.
    디자인할 프로그램이 연계될 주변 코드들의 집합이다. 예를 들어 마이크로소프트 파운데이션 클래스(Microsoft Foundation Class)[MFC]는 MS 윈도우용 그래픽 유저 인터페이스 애플리케이션 개발을 위한 코드의 집합이다. 프레임워크는 프로그램 디자인이 자신이 제공하는 형식을 강제하는 경우가 많다.

프로그램은 라이브러리를 사용하면서도 프레임 워크를 채용할 수 있다. 라이브러리는 단지 함수 목록을 제공하는 반면 프레임워크는 프로그램의 디자인과 구조의 기반이 된다.

 

애플리케이션 프로그래밍 인터페이스(Appliciation Programming Interface)[API]도 자주 등장하는 용어다. API는 특정 목적의 라이브러리나 코드를 이용하기 위한 차욱 역할을 한다. 예를 들어 프로그래머는 네트워크 기능을 사용하기 위해 소켓 API를 사용할 수 있는데, 여기서 소켓 API는 라이브러리 본체가 아니라 소켓 프로그래밍을 할 수 있도록 공개된 인터페이스를 의미한다.

 

API와 라이브러리는 다르다! 라이브러리는 구현을 지칭하는 반면 API는 그 라이브러리의 공개된 인터페이스를 지칭한다.

 

사람에 따라 라이브러리, 프레임워크, 함수컬렉션 등으로 부르는 방식이 달라지기도 한다.

728x90