2024/07 2

정적 링킹 vs 동적 링킹

1. 개요오늘은 정적 링킹 vs 동적 링킹에 대해 알아보겠습니다.1. 정직 링킹정적 링킹이란 실행 가능한 목적 파일을 만들 때 프로그램에서 사용하는 모든 라이브러리 모듈을 복사하는 방식을 말하며 링커에 의해 이루어집니다.즉, 자신이 작성한 프로그램에서 A라는 외부 함수를 사용했다면, A라는 외부 함수에 대한 정보를 자신이 작성한 프로그램의 실행파일을 만들 때 복사해옵니다.5개의 프로그램에서 A라는 외부 함수를 이용하는데 이때 정적 링킹 방식을 사용하면 5개의 프로그램의 실행 가능한 목적파일 각각에 A의 정보가 담긴다.즉, 중복이 발생한다.따라서 정적 링킹으로 만들어진 프로그램은 크기가 크고 메모리 효율이 좋지않습니다.또한, 정적 링킹을 이용하면, A라는 함수에 변화가 생길 경우 그 변화를 적용하기 위해서..

템플릿(Template)

1. 개요오늘은 C++에 템플릿(template)에 대해 알아보도록 하겠습니다.2. 설명템플릿은 어린시절에 한번쯤 사용했을 모양자와 같습니다. 모양자에는 다양한 종류의 도형들이 틀로 만들어져 있습니다. 이 틀을 활용하면 누구나 정말 반듯한 네모를 그릴수도 있고 별도 그릴수 있습니다. 템플릿의 생산성이 뛰어난 이유도 이와 같습니다. 정말 완성도 높은 코드를 모양자로 찍어내듯 생성할 수 있기 때문입니다. 특히 소스코드의 완성도를 높인 상태에서 STL처럼 확실하게 검증된 라이브러리를 사용한다면 완성도와 생산성, 두마리 토끼를 한꺼번에 잡을 수 있습니다. 템플릿을 많이쓰면 컴파일 속도가 느려지지만 최신 C++ 개발 트렌드를 따르려면 템플릿은 선택이 아니라 필수입니다. 생산성이 높고 유지보수성이 뛰어난 코드가 당..