{{ post.title }}
글 편집
글 편집 (이전 에디터)
{{ post.author.name }}
작성일
리커다인 GUI, 현재와 미래
조기훈 수석연구원/팀장
리커다인을 처음 세상에 선보인지도 어느덧 19년이 흘렀습니다. 기능적으로 다양 한 변화와 업그레이드가 있었는데, 그 중 점점 더 쾌적해지는 사용환경의 변화가 가장 눈에 띄는 점 중 하나라 할 수 있을 것입니다.
이 개선은 바로 Graphic User Interface, GUI 팀이 주도하고 있는데요, GUI 팀의 수장이 바로 조기훈 팀장입니다. 조기훈 팀장은 2003년도에 펑션베이에 입사하여 지금까지 총 14년동안 리커다인 GUI팀에서만 잔뼈가 굵은, 리커다인 GUI 부분의 전문가라 할 수 있습니다. 리커다인 GUI의 현재와 미래, 조기훈 팀장에게 들어보았습니다.
안녕하세요. 먼저 본인 소개를 부탁 드립니다.
안녕하세요. 저는 펑션베이에서 GUI팀 팀장을 맡고 있는 조기훈이라고 합니다.
벌써 10년 이상 리커다인의 GUI 개발을 담당하고 계신 것으로 알고 있습니다. GUI 팀이 하는 일에 대해 소개를 부탁 드립니다.
GUI (Graphical User Interface)는 그래픽 사용자 인터페이스라는 말 그대로, 시각적으로 표현된 사용자 조작 환경입니다. GUI팀은 사용자들에게 보여지는 리커다인의 모든 부분을 개발하는 팀이라고 할 수 있습니다. 모델의 그래픽을 보여주기 위한 그래픽 엔진부터 사용자들이 사용하는 리본이나 툴바, 다이얼로그까지 모두 GUI 팀의 손을 거쳐 개발됩니다. 모델을 만들기 위한 ‘오퍼레이션(Operation)’이나 파일 의 Import, Export 등도 모두 GUI팀이 담당하고 있습니다.
좀 더 이해하기 쉬운 UI를 만들고, 반응 속도나 입출력 속도를 개선하는 부분도 모두 GUI 팀의 역할입니다.
리커다인 GUI 개발에 있어서 특징적인 부분은 어떤 점들이 있을까요?
우선 CAE에 대한 이해도가 중요하다는 점을 들 수 있을 것 같습니다. 리커다인은 다물체 동역학이라고 하는 전문적인 분야를 다루는 소프트웨어이다 보니, 단순한 GUI개발자가 아닌 CAE를 이해할 수 있는 능력이 중요시됩니다. 이 때문에 현재 GUI 개발자 중에는 기계공학을 전공한 개발자가 60% 이상입니다. 대부분 석사학위를 보유하고 있고요.
또 하나는 리커다인이라는 제품 자체가 20년 가까이 된 제품이고, 수많은 기능을 포함하고 있다 보니 각자의 전문분야도 중요하지만, 전체 아키텍처를 아울러서 볼 수 있는 능력을 갖추어야 한다는 점도 들 수 있을 것 같습니다.
20년 가까이 된 제품이니만큼, 그 사이에 많은 변화가 있었을텐데요.
리커다인의 기본적인 소스는 오랜 기간 동안 유지되고 있습니다. 예를 들어 2000년에 만들어진 소스 파일 중에서 지금까지도 수정이나 변경 없이 쓰이는 것도 있고요.
하지만, 대부분의 소스 코드는 오랜 시간 동안 기능의 업그레이드나 버그 수정 등을 거치면서 리팩토링*되고, 완전히 새로운 알고리즘으로 대체되는 등, 완전히 달라졌다고 해도 과언이 아닙니다.
특히, 몇 년에 한번씩 아주 대대적인 변경이 이루어지는데, 이 때는 개발자들이 정말 혼신의 힘을 다해서 리커다인 개발에 매진합니다.
*리팩토링(Refactoring): 소프트웨어 공학에서 ‘결과의 변경 없이 코드의 구조를 재조정 함’을 뜻한다. 주로 가독성을 높이고 유지보수를 편하게 하여 궁극적으로 소프트웨어의 안 정성 향상에 기여하게 된다. 직접적으로 버그를 없애거나 새로운 기능을 추가하는 행위는 아니다. 사용자가 보는 외부 화면은 그대로 두면서 내부 논리나 구조를 바꾸고 개선하는 유지보수 행위이다.
리커다인은 매년 새로운 버전이 출시되고 있지요. 이 때, 수많은 기능들이 개선 되거나 추가되는 것으로 알고 있습니다. 그러한 개발 아이템들은 어떤 기준을 가지고 선정이 되나요?
매 버전마다 약 100여가지 기능이 추가되고 개선이 됩니다. 이 때, 어떤 아이템을 개발할 지는 우선 고객의 요청사항을 최우선으로 하여 결정됩니다. 한국은 물론, 미국, 일본, 독일 등 전 세계의 리커다인 사용자들로부터 요청사항을 수집하고, 이를 토대로 우선순위를 결정하여 개발 아이템을 정하게 됩니다.
또한 FFlex나 G-Modeling과 같이 펑션베이에서 선제적으로 사전연구를 진행 한 후, 개발하는 아이템들도 존재합니다. 이러한 아이템들의 개발 기간은 수 년이 걸리기도 합니다.
아이템을 선정한 다음 과정은 어떻게 되나요?
선정된 아이템에 대해 스펙을 정하게 됩니다. 펑션베이에서는 스펙을 잡을 때, 디자인보다는 기능성을 좀 더 중시합니다. 아무래도 주 고객들이 엔지니어이다보니 기능성에 대한 요구가 더 강한 것 같습니다. 기능성을 중시한다는 말은 작업 동선이나 단계를 최소화 한다던지, 비슷한 기능들을 한 곳에 모아놓음으로써 좀 더 편리하게 사용할 수 있게끔 한다고 이야기할 수 있겠습니다.
그 덕분인지, 매년 개최되는 유저 컨퍼런스에서 시행하는 설문조사에서도 리커다인의 장점을 꼽는 질문에서 조작성 부분이 매년 1, 2 위를 기록하고 있습니다.
"리커다인 사용자로서 생각하는 가장 강점은 어떤 부분입니까?"에 대한 설문조사 결과
디자인보다는 기능성을 중시한다고 하셨는데, 그러면 디자인은 어느 정도나 신경을 쓰시는 건가요?
디자인보다 기능성이 중요하다는 뜻이지, 디자인을 경시하는 것은 아닙니다. 저희는 GUI 전담 디자이너가 있어서, 리커다인에서 각종 UI의 형상이나 색상, 배치까지 고민을 하고 있습니다. 사용자 편의성 부분에 있어서도 디자이너의 관점에서 신경을 쓰고 있습니다.
기능성이나 디자인 외에도 신경을 쓰시는 부분이 있다면 어떤 것들이 있을까요?
저희는 범용성을 항상 중요시하고 있습니다. 고객이 다양하다 보니, 특정 목적에만 적합한 특별한 UI보다는 전반적으로 보았을 때 적합한 관점에서 스펙을 정하게 됩니다.
그리고, 통일성과 일관성도 중요한 요소입니다. 제품이 20개가 넘는 툴킷을 비롯하여 아주 방대한 기능을 제공하고 있다 보니, 비슷한 유형의 요소나 UI가 사용될 때가 있습니다. 하지만, 작업 시기나 담당자가 다르 기 때문에, 비슷한 기능인데도 불구하고 다른 형태로 개발될 가능성이 있는데, 이를 최소화하고 일관된 UI 를 제공하기 위해 신경을 쓰고 있습니다. 이를 위해 항상 리팩토링, 모듈화 등을 통해서 안정성을 강화하고, 일관성을 유지하고 있습니다.
예를 들어, 리커다인에는 다양한 Measure 기능이 제공되는데요, 조금씩 다른 기능일지라도, 항상 입력값-결과표시-버튼 이라는 레이아웃으로 기능을 제공하고 있습니다.
좀 더 크게는 Track툴킷이나 Chain, Belt의 경우 서로 다른 툴킷이지만 사용해보면 아주 비슷한 느낌으로 사용할 수가 있습니다.
MTT2D와 MTT3D의 경우도 2D, 3D라는 차이가 있을 뿐이지 일관된 UI와 작업 방식을 제공하고 있습니다.
물론 특정 분야 사용자의 경우, 범용적인 UI가 다소 불편할 수도 있습니다. 어떤 경우에는 일관된 UI보다는 조금은 그 상황에 맞는 UI가 아쉬울 때도 있지요. 하지만, 그런 경우를 일일이 허용하다 보면, 다수의 사용자들에게 혼란을 주고, 개발자에게 있어서도 제품의 안정성을 떨어뜨릴 수 있게 됩니다.
이와 같은 특별한 경우를 위해 리커다인에서는 ProcessNet이나 eTemplate과 같은 커스터마이즈 기능을 통해 맞춤형 UI를 만들 수 있는 환경을 제공하고 있습니다. 특히 사용자가 만든 ProcessNet 함수를 리본 컨트롤에 등록해서 사용할 수도 있습니다.
첫 상용버전인 2001년에 출시된 RecurDyn 4.0과 곧 출시될 RecurDyn V9R1을 보면, 완전히 다른 소프트웨어처럼 느껴질 정도인데요. 과연 미래의 RecurDyn은 어떤 모습으로 변화할 지 생각을 들려주실 수 있을까요?
지난 10여년을 돌이켜보면, UI (User Interface)라는 관점에서 UX (User Experience)으로 많이 이동을 했다고 생각합니다. 단순한 사용자 환경에서 사용자가 소프트웨어로부터 얻게 될 경험이나 결과물에 초점을 맞추어 나간 것이죠. 앞으로의 방향도 큰 틀에서는 이 기조가 유지되리라 생각합니다.
지난 V8R5에서 소개된 G-Modeling 기술은 완성이 아니라 출발점이라고 생각합니다. 단순히 사용자들이 사용할 수 있는 UI가 아니라, 사용자들이 원하는 바를 이룰 수 있도록 도와주고 결과물을 낼 수 있도록 해주는 UX의 개선에 지속적인 노력을 기울여 나갈 것입니다.
이 외에도 몇 년 전부터 큰 주목을 받고 있는 클라우드, AI, IoT, 디지털 트윈과 같은 개념들이 있는데 리커다인에도 이러한 기술들을 접목해 나갈 수 있도록 사전 연구를 진행하고 있습니다.
예를 들면, 별도의 컴퓨터 없이도 클라우드 환경에서 사용할 수 있는 리커다인, 조인트나 접촉과 같은 요소들을 자동으로 인식하고 정의해주는 AI, 실제 제품과 IoT환경을 통해 통신하고 이 데이터를 시뮬레이션에 활용하거나 시뮬레이션 결과를 손쉽게 실제로 사용할 수 있는 GUI 환경 등, 아직은 확실히 가능하다고 약속할 수 없는 내용도 있지만, 10여년 후에는 상당 부분이 실현되어 있을지도 모릅니다. 디지털 트윈의 경우, 현재의 리커다인으로도 자체적인 디지털 트윈 환경을 구축하기 위한 시도가 여러 기업에서 이루어지고 있기도 하고요.
GUI 팀장으로서, 제품개발을 하는 데 있어서 제일 중요하게 여기는 점은 무엇인가요?
역시 버그 없는 제품이겠죠. 버그를 완전히 없애는 것은 쉽지 않지만, 버그를 최소화하기 위해서 항상 최선을 다하고 있습니다. 예를 들어, 기능을 개발할 때는 반드시 그와 관련된 테스트 케이스를 추가하고 있습니다. 이미 그렇게 만들어진 테스트 케이스가 수천 가지가 넘고 데일리빌드와 자동화 테스트 기능을 이용하여 매일마다 테스트를 수행하고 있습니다. 여기에 추가적으로 QA팀에서 수작업으로도 테스트를 하고 있으며 QA팀만의 자동테스트도 함께 운용되고 있습니다.
Relation Map 다이얼로그
다양한 이야기를 소개해주셔서 감사합니다. 끝으로 GUI팀장으로서 특별히 마음에 들거나 소개하고 싶은 기능이 있을까요?
리커다인의 가장 핵심 기능이라 할 수 있는 MFBD 관련 툴킷이나 이와 관련된 G-Modeling 기능 등 큼직큼직한 것도 많지만, Relation Map 이라는 기능을 소개해드리고 싶습니다.
개인적으로는 이 기능을 개발하기 위해 다양한 소프트웨어를 벤치마크 하고, 이를 토대로 리커다인 만의 UI 를 결정한 과정도 기억에 남네요.
Relation Map을 이용하면, 전체 모델을 한눈에 볼 수는 없지만 한번의 클릭으로 원하는 엔티티를 선택하고, 그와 연결된 엔티티를 손쉽게 확인할 수 있어, 결과적으로 전체 모델을 파악하는데 아주 큰 도움이 됩니다.. 또한 이 기능을 릴리스하고 곧바로 이를 강화하기 위한 Backward, Forward 기능이라던지 필터 기능을 비롯하여 여러 기능이 추가되어, 고객들뿐만 아니라 개발자들에게 있어서도 작업 효율을 크게 높여주 었다고 생각합니다.
아직 이 기능을 써보지 않은 분들이 계시다면 이 인터뷰를 통해서 꼭 한 번 써보시길 당부 드리고 싶네요.