1. Compose 어떤걸 할 수 있나요?

  과연 Compose는 어떤 툴이고 왜 배워야 할까요? 프로그래밍에 경험이 있으신 분들이나 아니면 전혀 코딩 능력이 없으신 분들 모두에게 답변 드리기 쉽지 않은 질문입니다.  “나는 이미 C, Fortran, python, tcl 등 다 할 수 있는데 내가 왜 별도의 프로그래밍 툴을 또 배워야 하나요?“, “코딩은 못하지만 이왕 새로 배울 바에는 많이 쓰인다는 C를 제대로 배우는 것이 낫지 않나요?”, “전 이미 matlab이나 mathematica를 쓸 줄 압니다. 비슷한 것 같은데 알 필요가 있을까요?” 네 맞습니다. 다 있을 수 있는 질문들입니다. 먼저 답변 드리기 전에 Compose가 어떤 것을 할 수 있는지 간단히 알아보도록 하겠습니다.

Compose는 엔지니어링 프로그래밍이 가능한 통합 개발도구로써 다음과 같은 주요 기능이 있습니다.

(1) IDE
(2) Math
(3) OML (Open Matrix Language)
(4) Visualization
(5) Application

위에 기능을 자세히 알아보도록 하겠습니다.

(1) IDE
Compose는 통합 프로그램 개발환경(Integrated Development Environment)을 제공합니다. Eclipse와 같은 IDE를 사용해 보신 경험이 있으신 분은 아마 이해가 쉬우실 겁니다. 프로그래밍 과정은 source code의 작성과 debugging을 포함합니다. 이를 위해서는 text-editor, compiler 이외에도 각종 다양한 library등을 용이하게 사용할 수 있는 유기적 작업환경이 필요합니다. Compose는 자체 언어 및 compiler뿐 아니라 python, SciPy 활용 및 HyperWorks와의 연계를 위한 독자적인 개발환경을 지원하고 있습니다.

(2) Math
엔지니어링을 위한 프로그래밍은 일반 IT 프로젝트와는 달리 수학이론을 기반으로 하는 강력한 라이브러리 기능을 요구합니다. Compose는 사용자가 직접 구현하지 않아도 사전에 검증된 다양한 함수등을 통하여 보다 빠르고 신뢰성 있는 엔지니어링 로직을 구현할 수 있도록 합니다. 향후 다양한 추가 함수와 기능들이 지속적으로 확장될 예정입니다.

(3) OML (Open Matrix Language)

공학분야에서의 연산 과정 상당수는 선형대수 연산을 기반으로 합니다. 행렬연산을 기본으로 하는 이러한 프로그래밍 로직은 이미 다양한 형태의 라이브러리로 공개되어 있습니다. 그러나  실제 코딩을 위해서는 수치해석적인 이론에 대한 지식과 스킬을 사용자가 익혀야 하는 어려움이 있습니다. Compose는 널리 알려진 Octave나 matlab과 같이 행렬 연산을 위한 강력한 함수와 여러 유용한 도구를 지원합니다. 또한 기존에 개발된 OML의 legacy code를 사용자분들이 효과적으로 활용할 수 있도록 Octave, matlab과 높은 수준의 호환성을 가지고 있습니다. 따라서 처음 사용하시는 분들도 별도의 학습과 교육과정 없이 compose를 손쉽게 현업에 적용하실 수 있습니다.

(4) Visualization
연산과정을 통하여 얻어진 수치적인 결과를 가시화하는 것은 매우 중요한 과정입니다. 그래프나 2차원 내지 3차원 가시화를 통한 가시화는 그 동안 사용자가 별도의 코드를 작성하거나, 별개의 응용프로그램을 활용하여 구현하는 것이 보통이었습니다. Compose는 수치해석 결과의 가시화를 위해서 내부적으로 손쉽고 다양한 형태의 plotting기능을 제공합니다.

(5) Application
Compose가 가지는 무엇보다도 큰 장점은 CAE 기반의 데이터 활용을 위해서 HyperWorks제품군과 연계할 수 있다는 점입니다. 해석결과 파일을 직접 불러오거나 가시화를 위한 기존 HyperWorks와의 interfacing을 지원합니다. 이는 단일 라이선스 체계를 통한 제품 운영을 할 수 있다는 장점과 더불어 사용자 분들께 새로운 비즈니스 모델을 제공해 드립니다.

지금까지 간략하게 compose가 어떤 제품이고 무엇을 할 수 있는지를 소개해 드렸습니다. 다음 연재부터는 본격적으로 compose에 대해 배워보기로 하겠습니다.