이 영역을 누르면 첫 페이지로 이동
Coding Groot 블로그의 첫 페이지로 이동

Coding Groot

페이지 맨 위로 올라가기

Coding Groot

코딩 블로그

[Julia] 줄리아 입문하기 3 :: 모듈(Module)에 대한 이해

  • 2019.09.04 14:29
  • Programming Language/Julia
글 작성자: Coding Groot

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된 것 중에서 다시 찾아봅니다.

MyModule 선언

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

export 되지 않은 privatefunction은 current module에서 바로 사용하지 못하는 것을 확인할 수 있음


Module Load 하는 방법 2 : import

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

import로 Load하면 export한 함수도 Dot Syntax로 접근해야 된다는 것을 확인할 수 있음 


Module Load 비교 및 정리

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

Module 이름 prefix를 생략하고 export된 함수(derivative)를 실행함

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

Module 이름을 prefix로 쓴 예시


Module Load 하는 방법 3 : include - Module 파일 로드하기 

자기 directory에 모듈 파일이 있는 경우 

include("MyModule.jl")


출처

  • Julia Manual: Modules
반응형

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [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
다른 글 더 둘러보기

정보

Coding Groot 블로그의 첫 페이지로 이동

Coding Groot

  • Coding Groot의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록
  • 소개
  • 블로그 저작권

카테고리

  • 분류 전체보기 (182)
    • Git (23)
      • Git Tutorial (9)
      • Git Note (7)
      • Git Lecture (7)
    • Programming Language (1)
      • C (2)
      • C Sharp (5)
      • Java (4)
      • JavaScript (7)
      • Julia (5)
      • Python (4)
    • Programming (8)
      • Algorithm (2)
      • Compiler (5)
      • Data Structure (0)
      • Web (12)
      • NestJS (2)
    • DevOps, Infra (36)
      • Apple (6)
      • Cloud (15)
      • Database (1)
      • Network (4)
      • Linux (8)
    • Game Programming (11)
      • Unity Tutorial (5)
      • Unity Note (6)
    • Hardware Design (1)
      • Digital Circuit (1)
    • Note (49)
      • Coffee (2)
      • Retrospect (15)
      • Reading List (14)
    • Mathematics (1)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • Github
  • aws
  • git
  • javascript
  • 서평
  • tutorial
  • 한빛미디어
  • 회고
  • 전체 보기…

정보

Coding Groot의 Coding Groot

Coding Groot

Coding Groot

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기

나의 외부 링크

  • GitHub
  • SlideShare
  • 유니티 2020 수업
  • TIL Blog
  • 모도코

방문자

  • 전체 방문자
  • 오늘
  • 어제
Powered by Tistory / Kakao. Copyright © Coding Groot.

티스토리툴바