티스토리 뷰

안녕하세요. 구스입니다.


이 글에서는 높은 유연성과 유지보수성을 가진 LabVIEW 코드를 개발하는 효율적인 방법론에 대해서 이야기해볼까 합니다. 일반적인 

LabVIEW 코드는 프로그래밍 방법론 중 절차지향적 프로그래밍 방법론을 사용하게 됩니다. 


DAQmx는 물론, Serial 통신, MI 제품군의 예제코드 모두 절차지향적으로 만들어져 있으며, LabVIEW와 G언어의 특성상 왼쪽에서 오른쪽으로 프로세스가 진행이 되도록 구현이 되어 있습니다. 


이러한 방법론은 개발속도가 빠르다는 장점을 가지고 있지만, 유지보수에 대한 부분이 취약하다는 약점을 가지고 있습니다. 


자 그림을 하나 봅시다. 




일반적인 LabVIEW 프로그래머 혹은 텍스트언어 프로그래머들은 초록색 라인과 같은 프로세스을 이용하여 개발을 하게 됩니다. 특히 LabVIEW 개발에서는 좀 더 심한 경향을 보입니다.


이 차트에서 프로젝트의 시작시점은 가장 왼쪽 부분이며, 시간에 따라 오른쪽으로 이동하는 모습입니다. 프로젝트의 시작은 항상 비교적 요구사항이 적고, 간단하여 순탄하게 개발이 진행이 됩니다. 


특정 기능을 구현하기 위해서 이때 개발자는 개발을 바로 시작을 합니다. 요구사항을 명확히 하기 위한 디자인 및 아키텍처에 대한 고려없이 개발을 시작합니다. 이는 잘못된 것이 아니고, LabVIEW 개발의 가장 일반적인 과정입니다.


하지만 시스템을 업그레이드 시키거나, 수정사항이 나오게 되면 일반적으로 위와 같은 방식은 오랜 시간과 노력을 요구하게 됩니다. 예를 들어 지속적으로 요구사항이 만들어지거나 변경이 요구되는 테스트 어플리케이션을 만든다고 가정을 해봅시다. 


요구사항이 변경되고, 새로운 테스트 요소가 생기고, 그래프로 보던걸 다른 방식으로 보고자 한다면 개발자는 많은 시간과 노력을 들여야 할 겁니다. 이는 시스템의 복잡성을 높여주게 되고, 유지보수를 어렵게 만듭니다. 


요구사항이 지속적으로 변경이 되면, 개발의 복잡성을 더욱 올라가며, 유연성에 대한 고려없이 개발을 진행하게 됩니다. 이는 하나의 함수를 변경하는데도 많은 시간과 비용을 초래하게 됩니다. 


이러한 문제로 인해서 사람들은 재개발 혹은 리팩토링을 고려하게 됩니다. 


자 그럼 객체지향 프로그래밍(OOP)에 대해서 이야기 해봅시다. OOP는 복잡한 시스템의 유연성을 높이기 위해서 프로젝트 시작 시점에 개발이 아닌 디자인과 아키텍처에 더 많은 시간을 투자합니다. 


<OOP의 장점>



사실 OOP는 코드를 개발하기 이전에 개발자에게 자신의 어플리케이션에 대한 더 많은 생각을 고려하게 합니다. OOP로 처음 개발하는 사람이라고 한다면 아키텍처 연구는 물론, 관련 툴을 정확히 사용하는 방법까지 배워야 하기에 많은 시간을 요구하게 됩니다. 


하지만 위의 차트에서 볼 수 있듯이, 아키텍처에 대한 연구가 제대로 된다면 개발 및 유지보수에 대한 비용과 시간은 줄어들게 됩니다. 물론 이 부분을 제대로 하였을 경우에만 가능한 내용이지만요. 


OOP는 복잡성에 대한 어플리케이션의 유연성을 높여주는 유일한 방법입니다. .OOP는 이미 많은 언어와 어플리케이션에 적용이 되어 오고 있습니다. 


객제 지향 디자인은 소프트웨어의 확장성을 높여주고, 이러한 점은 OOP를 사용하는 가장 큰 이유가 되고 있습니다. OOP를 위해 사용되는 디자인의 결과물은 데이터와 함수와의 명시적 관계를 나타내고, 권한없는 접근과 수정을 막아냅니다. 


객체는 인터페이스로 명백히 정의된 개체를 나타내며, 추가적인 기능 구현시 수정해야 할 곳과 수정하지 말아야할 곳이 명확하게 구분이 되어 있습니다. 


이 글에서는 LabVIEW에서의 OOP를 왜 사용해야하는지, 그리고 OOP의 이점이 무엇인지에 대해서 알아보았습니다.

그럼 이만 줄이겠습니다.


이 글이 도움이 되셨으면 아래의 하트를 눌러주세요.


댓글