본문 바로가기

반응형

module

(5)
[C++20] 모듈(module) 컴파일 성능 비교 들어가며 C++의 프로젝트의 규모가 점점 커짐에 따라 프로젝트 빌드 속도도 그에 비례해 늘어나게 된다. 심한 경우는 오타하나 수정했는데 빌드하느라 몇 십분이 소모되기도 한다. 아무것도 하지 못하고 빌드 프로그래스바만 바라보고 있어야 한다는 것은 엄청난 인력과 시간의 낭비가 아닐 수 없다. 여기에 나와 같은 고민을 하든 분들을 위한 반가운 소식이 있다. C++20 스펙에 추가된 모듈(module)을 사용하면 단순 헤더 파일을 사용하는 것 보다 훨씬 빠른 컴파일 속도를 얻을 수 있다고 한다. 모듈이 궁금하신 분들은 '[C++20] 모듈(module)' 포스트에서 보다 자세한 내용을 확인 할 수 있다. 이번 포스트에서는 이 모듈이 어떻게 헤더파일을 사용하는 것 보다 빠른 컴파일 속도를 제공하는지에 대해 간단하..
[C++20] 당신이 모듈(module)을 써야만 하는 이유 들어가며 C++의 모듈(module)은 concepts, ranges, coroutine과 더불어 'Big Four'이라고 불려지며 C++20 스펙에 추가된 네 가지 주요 요소 중에 하나다. 모듈은 기존 헤더 파일을 대체할 수 있을 뿐만 아니라, 컴파일 시간 개선, 매크로 격리(macro isolation, 용어가 생소하지만 뒤에 설명이 나온다)등을 제공한다. 간단하게 정리하면 #include 전처리 방식을 대신할 수 있는 새로 도입된 개념으로써 java의 package나 C#의 namespace와 동일한 역할을 한다. 모듈의 도입으로 C++에 어떠한 변화가 생겼는지 알아 보기 위해 우리는 기존 C++은 어떤 모습이었는지 먼저 살펴 볼 필요가 있다. 기존 C++의 구조를 보기 위해 그 유명한 "Hello..
[C++20] 모듈(module) 모듈(module) 이란? C++20 이전의 C++에서는 필요한 함수 또는 클래스를 불러오기 위해 #include 전처리문을 이용해 왔다. 이런 헤더 파일 방식의 문제는..많지만 그 중에 필자가 가장 크리티컬하게 생각하는 부분은 #include 전처리문을 가리키고 있던 파일의 내용 그대로 치환해버려 헤더에 있는 필요하든 필요하지 않든 상관 없이 정의 되어있는 모든 기능을 포함하게 된다는 것이다. 예를 들어 cmath 헤더 파일에서 정작 내가 필요한 기능은 acos함수 하나 뿐이지만, acos를 사용하기 위해서 나는 헤더에 정의된 모든 함수들을 인클루드하고 컴파일 해야만 한다. 이미 현재 다른 언어들에서는 필요한 기능만을 가져 올 수 있는 기능을 제공하고 있지만 C++은 이번 C++20 스펙의 module..
[Python] 모듈 객체(module object) 이번 포스트에서는 저번 파이썬 모듈에 이어 "모듈 객체(module object)"에 대해 살펴 본다. 이번 장은 코드 작성을 통해 무엇을 만들어 보기 보다는 모듈 객체를 통해 얻을 수 있는 정보들을 알아 보는 위주로 진행 된다. 모듈 객체란 지금 까지 강의에서 파이썬은 모든 것이 객체로 관리 된다고 이야기 해왔다. 모듈은 하나의 객체이며 어떤 함수와 클래스가 모듈 안에 있고 모듈의 이름은 무엇인지, 어떤 파일인지에 대한 정보들을 가지고 있다. 모듈 역시 객체이므로 아래와 같이 주소와 타입, 사이즈 등을 확인 할 수 있다. import mylib import sys print('address :',hex(id(mylib))) print('type :', type(mylib)) # print('size :..
[Python] 모듈(module) 이번 포스트에서는 코드 재사용의 끝판왕 '모듈(module)'에 대해 살펴보겠다. 정확한 사용법을 언급하진 않았지만 지금까지 예제들에서도 이미 많이 써왔던 것이라 큰 거부감은 없을 것이라 생각 한다. 가벼운 마음으로 읽고 넘어 가도록 하자. 파이썬 모듈 임포트 만일 여러분이 어떤 함수를 정말 잘 만들었다고 가정하자. 그럼 이 함수를 다른 파이썬 프로그램에서도 가져다 사용하고 싶은데 어떻게 해야 할까? 지금까지 여러분이 표준 파이썬 모듈을 임포트(import) 했던 것과 똑같이 사용 할 수 있다. 예를 들어 아래와 같이 여러분은 'mylib.py'라는 파이썬 파일을 만들고 그 안에 함수를 작성했다고 가정하자. # file: mylib.py def add(a, b) : return a + b def mul(..

반응형