상세 컨텐츠

본문 제목

Julia

Julia

by KimUH 2023. 4. 27. 17:15

본문

프로그래밍 언어는 크게 보면 다음 2가지로 나누어진다.

- 편의성은 뛰어나지만 실행 속도가 느린 동적 언어

- 실행 속도는 뛰어나지만 편의성은 낮은 정적 언어

 

초기 아이디어 검증 및 데이터 분석등 편의성이 중요한 단계에서는 동적 언어를 쓰다가,

대규모 연산이 필요한 실행 단계에서는 정적 언어로 다시 개발하는 게 일반적인 패턴이었다.

 

이렇게 하나의 문제를 해결하기 위해서 2개의 프로그래밍 언어를 사용해서 중복 개발하는 것은 비용이 상승하고, 생산성이 하락하는 결과를 초래하지만 지금껏 딱히 해결책이 없이 지속되어온 문제이다.

 

최근에 Go언어가 빠른 컴파일을 무기로 이 문제를 해결하는 듯 보였으나, 웹 개발과 클라우딩 컴퓨터 쪽에 편중되고, 데이터 분석 관련 기능이 취약하다보니 아쉬움이 남았다. 

 

Julia는 동적 언어의 편의성과 정적 언어의 빠른 속도를 동시에 실현해서 이 문제를 해결하려는 또 다른 시도이다.

아직 사용자층이 얇고, 과학 계산 분야에 편중되어 있다는 약점이 있지만,

DataFrame 라이브러리도 괜찮고, 편리한 벡터화 문법도 있어서 꽤 유망해 보인다.

( 함수명 뒤에 '.'만 붙이면 벡터화 되니까 반복문을 사용할 필요성이 줄어들고 코드가 단순해 진다.)

 

여러 장점에도 불구하고, 첫 실행 때 마치 정적 언어처럼 오랜 시간 컴파일을 하는 성능 상의 병목 현상, 즉, TTFX(Time To First Execution) 문제로 인해서 동적 언어다운 개발 생산성 향상이 체감되지 않는 문제가 있었는 데, 곧 나올 버전 1.9에서 해당 문제를 해결되었다고 한다.

 

Julia 1.9 릴리즈 노트에 다음 항목이 있다.

 

대충 보면 외부 패키지는 미리 컴파일해서 이미지(pkgimage) 형태로 저장하기에 이후에는 재컴파일이 필요없어서 전체적인 컴파일 시간이 획기적으로 줄어든다고 한다.

 

2023년 4월 현재 RC2(2번째 릴리즈 후보) 상태이어서 정식 버전 출시가 얼마 남지 않은 듯하다.

이제 Julia에 다시 관심을 가지고 공부해 본다. 

 

'Julia' 카테고리의 다른 글

R, Python, Julia 구문 간단 비교.  (0) 2024.05.10
Julia DataFrame 문서  (0) 2023.05.16
Julia의 도트(.) 연산자 (브로드캐스트)  (0) 2023.04.29
Julia의 메소드  (0) 2023.04.29
Julia 문법이 마음에 드는 점.  (0) 2023.04.29

관련글 더보기