생산성 가속화하는 그래픽 기반 프로그래밍 '랩뷰'
상태바
생산성 가속화하는 그래픽 기반 프로그래밍 '랩뷰'
  • 이나리 기자
  • 승인 2017.06.21 10:41
  • 댓글 0
이 기사를 공유합니다

임베디드 머신, 정확한 타이밍에 동작시키는 리얼타임 프로그래밍

[CCTV뉴스=이나리 기자] 

적합한 프로그래밍 언어 선택, 랩뷰 아니면 C?

“랩뷰(LabVIEW)가 C보다 좋은 이유는 무엇입니까?”란 질문을 수 차례 받아왔다. 솔직히 이 질문은 잘못됐다고 본다. 올바른 질문이 되려면 좀 더 구체적인 부연 설명을 덧붙여야 한다. 예를 들어 “이 작업에, 이런 제약 조건에 처한 경우 무엇이 더 적합합니까?”처럼 말이다. 이런 추가 설명이 없다면, “밀가루보다 빵이 좋은 이유가 무엇입니까?”라고 묻는 것과 다를 바 없다.

내쇼날인스트루먼트(이하 NI)의 랩뷰 시스템 디자인 소프트웨어와 C의 관계는 한 마디로 빵과 밀가루의 관계다. 샌드위치를 만들려면 빵을 사용하고, 케이크를 만들려면 밀가루를 사용해야 하는데, 처음부터 밀가루로 빵을 만들다 보면 시간과 비용만 낭비할 뿐이다. 하지만 케이크라면 밀가루가 없어서는 안 된다. 마찬가지로 어떤 프로그래밍 언어가 해당 작업에 가장 적합한지 결정하다 보면 종종 어려움을 겪기도 한다. 결국 작업에 따라 적합한 툴을 사용하는 것이 가장 중요하다는 것을 뜻한다.

뷰 시스템 디자인 소프트웨어는 C 같은 로우레벨 언어 사용으로 인한 리스크, 비용과 직접 구축의 불편을 해소할 수 있기 때문에 측정 또는 컨트롤 시스템을 구축하는데 효과적이다. 그렇다고 랩뷰가 C보다 ‘나은’ 프로그래밍 언어라는 말은 아니다. 특히, 랩뷰 대부분이 G 뿐만 아니라 C, C++로 프로그래밍되어 있다는 점을 감안하면 더욱 그렇다. 오히려 프로그래머가 반드시 알고 있어야 하는 LabVIEW의 강점은 따로 있다.

로우레벨 컨트롤을 위한 언어 ‘C’

C는 리소스가 충분하지 않아 면밀하게 관리해야 하는 애플리케이션에 효과적이다. C는 로우레벨 언어이기 때문에 메모리 할당이나 스레드같이 가장 미세한 부분까지 직접 지정해야 한다. 뛰어난 프로그래머라면 대부분 고급 언어를 구현할 때 발생하는 오버헤드를 제거하기 위해 로우레벨 언어의 제어 기능을 사용한다. 또한 로우레벨에서는 타깃 아키텍처를 활용하거나 운영체제 속성을 호스팅해 성능을 높일 수도 있다.

NI 프로그래머들이 대부분의 랩뷰 라이브러리를 C 또는 C++로 프로그래밍한 이유도 바로 여기에 있다. 파일 I/O나 분석 같은 연산 작업은 C 만큼이나 랩뷰에서도 빠르다. 이 연산들 역시 로우레벨 언어로 프로그래밍됐고, 랩뷰가 지원하는 플랫폼과 운영 체제에 최적화돼 있기 때문이다.

어떤 면에서는 개발자의 효율성이 직접 코딩을 통한 최적화보다 중요하다. 직접적인 코딩 기능을 다소 포기하고 다른 프로그래머들의 문제 해결 방법을 이용한다면 품질이나 생산성 면에서 여러 프로젝트에 이롭게 작용할 수도 있다. 프로그래밍 언어는 더 높은 추상화 수준을 향해 끊임없이 발전하고 있다. 따라서 컴퓨팅의 세부 사항이 아닌 당면한 문제를 해결하는 데 도움된다.

병렬 실행과 실제 I/O를 위한 랩뷰

구현 언어가 무엇이 되었든 간에 하이레벨 시스템 디자인과 로우레벨 구현은 반드시 구분돼야 한다. 측정과 컨트롤 애플리케이션을 개발할 때 프로그래밍은 시스템 디자인의 한 부분일 뿐이다. 또 엔지니어들이 컴퓨팅, 측정 하드웨어나 운영체제 등의 고급 기능을 지원할 목적으로 기존의 소프트웨어를 학습하거나 재프로그래밍하기에는 시간이 부족할 수도 있다. 새로운 방법으로 메모리 할당이나 스레드 풀을 처리한다고 해서 가치가 창출되는 것은 결코 아니다.

전체 기사를 보시려면 로그인 필요

로그인 또는 회원가입을 해주세요. (회원만 열람가능)

로그인 회원가입


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
0 / 400
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.