[Julia] 줄리아 입문하기 3 :: 모듈(Module)에 대한 이해
Julia의 Module이란?
- 관련된 함수들과 (변수와 같은) 정의들의 그룹을 저장하는 곳
- 분리된 작업 공간 == 새로운 전역 변수의 공간 == 다른 사람들이랑 작업할 때, 이름 충돌을 걱정할 필요가 없다
- 다른 모듈의 특정 식별자(함수명 or 변수명)만 노출할지 정할 수 있다. (== Importing 하는 것)
module ThisIsNewModule ...여기 안에 줄리아 코드를 작성... end
Module을 사용하는 방법
앞의 포스트([Julia] 줄리아 입문하기 2)에서, 현재 세션에서 Module에 있는 함수를 사용하기 위해서는 Julia에게 해당 Module을 사용하겠다고 전달을 해야 한다고 했습니다.
Module을 사용한다고 하는 것은 Module을 Load 한다고 합니다.
Module을 Load를 하기 위해서, 여러가지 방법을 쓸 수 있습니다. 첫 번째 방법은저번 포스트에서 보여준 using
을 쓰는 것이고 두 번째 방법은 import
키워드로 사용하는 것입니다. 그 두 가지 방법을 비교해보겠습니다. 그리고 세 번째 방법으로 Module 파일을 Load하는 것에 대해 설명해 보겠습니다.
Module Load 하는 방법 1 : using
using MyModule
위의 구문은 MyModule을 Load합니다. 이제 MyModule.[함수 or 변수]로 함수를 호출하거나 변수를 불러올 수 있습니다.
그리고 어떤 함수를 호출했는데 현재 작업하는 공간(current Module)에서 찾을 수 없다면 MyModule의 export된 것 중에서 다시 찾아봅니다.

예시로 Module을 한번 만들어 봤습니다. publicfunction은 export되어서 다른 Module에서 import
가 가능 합니다. 반면, privatefunction은 export되지 않아서 MyModule을 통해서만 쓸 수 있습니다.

Module Load 하는 방법 2 : import
using
키워드처럼 import
키워드를 사용해서도 Module이나 Package를 Load할 수 있습니다.
하지만 using
과 다르게 import
키워드를 쓰면 MyModule 안에 있는 함수를 쓰려면 Dot Syntax를 사용해야 접근할 수 있습니다. (Ex) MyModule.publicfunction()
그리고 import
키워드로 Importing한 함수는 extend 할 수 있습니다.

Module Load 비교 및 정리
다시 정리해보겠습니다!using
키워드를 쓸 경우, 정의된 것이 export 되어있다면 Module 이름을 prefix로 안 쓰고 사용할 수 있습니다.
예를 들어서, Calculus Module안에 derivative함수는 export 되어있습니다.
그렇기 때문에 그냥 함수명(derivative)으로 바로 함수를 호출할 수 있습니다.

→ [Module 이름].[함수명]
다음과 같은 경우를 Module 이름을 prefix로 쓴다(Dot Syntax)고 합니다.
→ Calculus.derivative(sin, pi)
다음은 Module이름을 prefix로 쓴 예시입니다.

Module Load 하는 방법 3 : include
- Module 파일 로드하기
자기 directory에 모듈 파일이 있는 경우
include("MyModule.jl")
출처
댓글
이 글 공유하기
다른 글
-
[Julia] 줄리아 입문하기 4 :: 표준 모듈(Standard Module)에 대한 이해
[Julia] 줄리아 입문하기 4 :: 표준 모듈(Standard Module)에 대한 이해
2019.09.09 -
[Julia] 줄리아 입문하기 2 :: 줄리아 파일의 종류, 패키지 매니저, 모듈 사용하기
[Julia] 줄리아 입문하기 2 :: 줄리아 파일의 종류, 패키지 매니저, 모듈 사용하기
2019.09.03 -
[Julia] 줄리아 입문하기 1 :: 줄리아 설치 및 실행
[Julia] 줄리아 입문하기 1 :: 줄리아 설치 및 실행
2019.08.21 -
[Julia] 줄리아 소개와 특징 :: 빠르고 배우기 쉬운 프로그래밍 언어
[Julia] 줄리아 소개와 특징 :: 빠르고 배우기 쉬운 프로그래밍 언어
2019.08.20
댓글을 사용할 수 없습니다.