길라잡이: 어플리케이션 웹 서버에 LabVIEW 웹 서비스 생성 및 공개하기 (Real-Time, Windows)
- 업데이트 날짜:2025-08-27
- 8분 (읽기 시간)
다음 단계에 따라 LabVIEW 웹 서비스를 생성하고 공개하여, LabVIEW 웹 서비스와 웹 클라이언트 (이 경우는 웹 브라우저) 사이에서 데이터를 교환합니다.
이 길라잡이는 다음 섹션으로 구성되어 있습니다.
웹 서비스 생성하기
LabVIEW 프로젝트에서 웹 서비스를 개발하여 웹 서비스를 구성하는 VI와 그 외 파일들을 함께 묶고 설정합니다. 다음 단계에 따라 웹 서비스 프로젝트와 2개의 HTTP 메소드 VI를 생성합니다.
- LabVIEW 프로젝트를 생성하여 웹 서비스 파일을 구성합니다. 프로젝트를 Tutorial.lvproj로 저장합니다.
-
내 컴퓨터에서 마우스 오른쪽 버튼을 클릭한 후, 새로 만들기≫웹 서비스를 선택합니다. LabVIEW는 타겟 아래에 웹 서비스 프로젝트 아이템과 폴더를 추가합니다. 노트
- 이 길라잡이에서는 웹 서비스를 생성하여 호스트 컴퓨터에 공개합니다. LabVIEW 프로젝트의 RT 타겟 아래에 웹 서비스 프로젝트를 생성하여 웹 서비스를 Real Time 타겟에 공개할 수 있습니다.
- (Windows) NI는 NI 웹 서버를 사용하여 Windows 컴퓨터에 웹 서비스를 호스팅할 것을 권장합니다. 자세한 설명은 길라잡이: NI 웹 서버에 LabVIEW 웹 서비스 생성 및 공개하기를 참조하십시오.
- 웹 서비스 프로젝트 아이템
에서 마우스 오른쪽 버튼을 클릭한 후, 이름 바꾸기를 선택하고 웹 서비스의 이름을 TutorialService로 변경합니다. 프로젝트는 다음과 같이 나타납니다. 
-
웹 리소스에서 마우스 오른쪽 버튼을 클릭한 후, 새 VI를 선택하여 새 HTTP 메소드 VI를 생성합니다. HTTP 메소드 VI는 클라이언트로부터 HTTP 요청을 받아서 클라이언트에게 데이터를 반환하는 VI입니다. LabVIEW가 템플릿에서 새 VI를 엽니다. 노트 기본적으로 HTTP 메소드 VI는 커넥터 구획을 통해 클라이언트로 데이터를 반환합니다. 이 길라잡이에서 HTTP 메소드 VI는 기본 JSON 포맷의 텍스트 응답을 반환합니다. 이 길라잡이와 관련 없이 HTTP 메소드 VI를 생성하는 경우에는, 사용자 정의된 HTML 페이지 또는 이미지 데이터와 같은 사용자 포맷으로 클라이언트에 데이터를 스트리밍할 수도 있습니다. 웹 서비스 프로퍼티 대화 상자의 HTTP 메소드 VI 셋팅 페이지에서 출력 포맷 타입을 설정합니다.
- 새 VI의 블록다이어그램, 프런트패널, 커넥터 팬을 다음 그림과 같이 만듭니다. 이 VI를 웹 서비스의 일부로 공개할 때, 웹 클라이언트는 VI를 인보크하도록 HTTP 요청을 보냅니다. 실행 시, 이 VI는 다음과 같은 작업을 수행합니다:
블록다이어그램 프런트패널 커넥터 팬 


- 클라이언트가 만든 HTTP 요청(LabVIEW 웹 서비스 요청제외)의 커넥터 팬에 할당된 모든 컨트롤의 값을 받습니다. LabVIEW 웹 서비스 요청은 현재 HTTP 요청을 식별하는 참조 번호와 같은 역할을 합니다.
- a와 b의 합계를 계산합니다.
- 커넥터 팬에 할당된 c 인디케이터를 통해 클라이언트에게 그 값의 합을 반환합니다.
- [요청 변수 읽기] VI를 실행하여, 클라이언트가 현재 HTTP 요청에 포함시킨 쿼리 문자열을 반환합니다. LabVIEW 웹 서비스 요청이 현재 HTTP 요청을 식별합니다. 팁 보다 복잡한 웹 서비스에서는, 웹 서비스 팔레트의 다른 VI들을 사용하여 HTTP 세션, 인증, HTTP 헤더 및 쿠키와 같은 기능들을 활성화하십시오.
- 각 컨트롤과 인디케이터가 커넥터 팬에 나타납니다. 기본 터미널 출력 타입을 사용하는 경우, 웹 서비스는 HTTP 메소드 VI의 커넥터 팬에 할당된 입력과 출력을 통해서만 클라이언트로부터 데이터를 받거나 클라이언트에 데이터를 보낼 수 있습니다. 팁 각 객체에 인식 가능한 이름을 지정합니다. 이 이름은 웹 클라이언트가 VI와 데이터를 교환할 때 사용하는 URL의 일부가 됩니다.
- VI를 Add.vi라는 이름으로 저장합니다.
- 파일≫다른 이름으로 저장을 선택한 후, 입력 요청된 대화 상자에서 복사≫모두 열기를 선택합니다. Tutorial.lvproj에 복사본 추가 확인란에 확인 표시가 되어 있는지 확인한 후, 계속을 클릭합니다.
- 새 복사본을 Subtract.vi로 저장합니다.
- Subtract.vi의 블록다이어그램을 열고, [더하기] 함수를 [빼기] 함수로 대체합니다. 컨트롤과 인디케이터를 다시 연결합니다.
- 프로젝트로 다시 돌아와 웹 리소스에서 마우스 오른쪽 버튼을 클릭한 후, 새 웹 리소스를 선택합니다. 새 프로젝트 아이템의 이름을 AdditionalOperations라고 변경합니다.
-
Subtract.vi를 AdditionalOperations 프로젝트 아이템 아래로 끌어옵니다. 프로젝트를 저장합니다. 프로젝트는 다음 그림과 같습니다.

프로젝트 트리에서 다음 구성요소를 확인합니다:
- LabVIEW는 HTTP 요청 타입을 각 HTTP 메소드 VI의 이름에 추가합니다. 기본으로 HTTP 요청 타입은 GET입니다. 이 길라잡이의 후반에 클라이언트가 특정 HTTP 메소드 VI에 보낸 HTTP 요청의 타입을 변경할 수 있습니다.
- 웹 서비스 프로젝트 아이템
은 또한 시작 VI 폴더를 포함합니다. 이 길라잡이에서는 시작 VI를 사용하지 않지만, 길라잡이의 후반에 그와 관련된 더 자세한 정보가 들어 있습니다.
관련 정보
웹 서비스 테스트 및 디버깅하기
웹 서비스를 타겟에 공개하기 전, HTTP 메소드 VI가 클라이언트와 예상대로 통신하는지 테스트합니다. 웹 서비스를 LabVIEW 프로젝트에서 직접 디버깅 서버에 놓아 클라이언트가 HTTP 메소드 VI에 요청을 보낼 수 있도록 합니다. 디버깅 서버는 Sandbox 환경을 제공합니다.
- (Windows) 내 컴퓨터 아래의 웹 서비스 프로젝트 아이템
에서 마우스 오른쪽 버튼을 클릭한 후, 어플리케이션 웹 서버≫시작 (디버그 서버)를 선택합니다. (Real-Time) RT 타겟 아래의 웹 서비스 프로젝트 아이템
에서 마우스 오른쪽 버튼을 클릭한 후, 시작 (디버그 서버)를 선택합니다. -
Add.vi를 엽니다. 이때 실행 버튼은 VI가 실행을 위해 예약된 상태(
)임을 보여줍니다.이는 LabVIEW가 웹 서비스를 로드하여 디버깅 서버에서 클라이언트와 통신이 가능하도록 했기 때문입니다. - Add.vi를 닫습니다.
- 다음 단계에 따라 클라이언트가 Add.vi를 실행하기 위해 사용할 URL을 얻습니다.
- Add.vi에서 마우스 오른쪽 버튼을 클릭한 후, 메소드 URL 보이기를 선택하여 HTTP 메소드 URL 대화 상자를 디스플레이합니다.
- 사용 가능한 서버 풀다운 다운 메뉴에서 로컬 디버깅이 포함된 아이템을 선택한 후, URL 복사 버튼을 클릭합니다. 웹 서비스를 웹 서버에 공개한 경우, 클라이언트는 다른 포트를 사용하여 디버깅 서버에서 웹 서비스와 통신해야 합니다.
- 대화 상자를 닫습니다. 노트 HTTP 메소드 URL 대화 상자가 열려 있는 경우, 웹 서비스는 클라이언트의 요청에 응답하지 않습니다.
- 4 단계에서의 URL을 표준 웹 브라우저에 붙여 넣고, 다음과 같이 {value} 변수를 숫자형 값으로 대체해야 합니다: http://127.0.0.1:8001/TutorialService/Add?b=2&a=3.
- URL을 탐색합니다. Add.vi는 브라우저에서 HTTP 요청을 받고 a와 b의 값의 합계를 계산한 후, Add.vi의 커넥터 팬에 할당된 각 인디케이터의 이름과 출력값으로 응답합니다. 이 길라잡이에서, 응답은 기본 터미널 출력 포맷의 JSON 문자열입니다. Add.vi의 커넥터 팬에는 c와 값이라는 두 개의 인디케이터가 할당되며 HTTP 메소드 VI는 그 값을 응답으로 반환한다는 점에 유의하십시오.
{"c":5,"value":"b=2&a=3"}
노트 예상치 못한 동작을 발견하는 경우, 웹 서비스 파일을 편집하기 전에 디버깅 세션을 정지해야 합니다. 이는 LabVIEW가 파일들을 실행에 예약하는 동안은 파일을 편집할 수 없기 때문입니다. - Subtract.vi에 대해 4단계와 5단계를 반복하거나 5단계의 URL을 업데이트하여 Subtract.vi에 대해 다음과 같이 고유한 URL 맵핑을 반영합니다. http://127.0.0.1:8001/TutorialService/AdditionalOperations/Subtract?b=2&a=3.
- Subtract.vi에 대해 단계 6을 반복합니다.
- (Windows) 웹 서비스 프로젝트 아이템에서 마우스 오른쪽 버튼을 클릭한 후, 어플리케이션 웹 서버≫정지(디버그 서버)를 선택합니다. (Real-Time) 웹 서비스 프로젝트 아이템에서 마우스 오른쪽 버튼을 클릭한 후, 정지(디버그 서버)를 선택합니다.
관련 정보
클라이언트가 웹 서비스에 접근하는 방법 설정하기
웹 클라이언트는 URL을 사용하여 HTTP 메소드 VI와 데이터를 교환합니다. 이 길라잡이의 후반부에서, 웹 브라우저에 특정 URL을 입력하여 데이터를 HTTP 메소드 VI의 커넥터 팬에 있는 컨트롤로 직접 보낼 것입니다.
다음 단계를 완료하여, 클라이언트가 HTTP 메소드 VI에 접근할 때 사용할 URL을 정의합니다:
- 웹 서비스 프로젝트 아이템
에서 마우스 오른쪽 버튼을 클릭한 후, 프로퍼티를 선택하여 웹 서비스 프로퍼티 대화 상자를 디스플레이합니다. - HTTP 메소드 VI 셋팅 페이지에서, LabVIEW 프로젝트의 웹 리소스 폴더에 있는 HTTP 메소드 VI는 웹 서비스 VI의 테이블에 나타납니다. 또한 AdditionalOperations 프로젝트 아래에 Subtract.vi를 놓으면 Add.vi의 경우와 비교해서 URL 맵핑에 어떤 영향을 미치는지 확인합니다.
- 테이블에서 Subtract.vi를 선택한 후, 페이지 아래쪽의 URL 맵핑 탭에서 다음의 구성요소를 확인합니다.
- 메소드 풀다운 메뉴에서 HTTP 요청 타입을 변경할 수 있습니다. Subtract.vi에 대해 기본 GET 값을 사용합니다.
- LabVIEW가 VI에 대한 URL을 맵핑할 때 사용하는 표준 포맷을 비활성화하고, 대신 서비스 이름 다음에 나오는 URL의 일부를 사용자 정의하도록 선택할 수 있습니다. 이 길라잡이에서는 표준 URL 맵핑을 사용하고 VI 이름을 포함시킵니다.
- URL 필드는 LabVIEW가 HTTP 메소드 VI에 대해 생성하는 베이스 URL을 디스플레이합니다. 예를 들어 Subtract.vi의 경우, LabVIEW는 /AdditionalOperations/Subtract라는 기본 URL 맵핑을 생성합니다.

노트 이 페이지의 다른 탭을 사용하여, 보다 복잡한 웹 서비스에서 권한과 같은 보안 셋팅과 VI가 웹 클라이언트에 출력 데이터를 반환하는 방식을 설정할 수도 있습니다. - 확인 버튼을 클릭하여 웹 서비스 프로퍼티 대화 상자를 종료합니다.
- Tutorial.lvproj를 저장합니다.
관련 정보
어플리케이션 웹 서버에 웹 서비스 공개하기
생성한 웹 서비스를 어플리케이션 웹 서버에 공개할 수 있습니다. 이 길라잡이에서는 독립 웹 서비스를 공개합니다. 하지만 보다 복잡한 어플리케이션에서는 LabVIEW 독립 어플리케이션 또는 설치 프로그램을 통해 웹 서비스를 공개할 수 있습니다. 어플리케이션 웹 서버는 네트워크에 웹 서비스를 호스트하며, SSL (Secure Sockets Layer) 암호화를 비롯하여 네트워크 데이터 교환을 보호하는 여러 보안 관련 도구를 제공합니다.
다음 단계를 완료하여, 로컬 컴퓨터에서 실행되는 어플리케이션 웹 서버에 웹 서비스를 공개합니다:
- 웹 서비스 프로젝트 아이템에서 마우스 오른쪽 버튼을 클릭한 후 어플리케이션 웹 서버≫공개를 선택합니다. 배포 진행 대화 상자가 나타납니다.
- LabVIEW가 에러 없이 웹 서비스를 공개하면, 닫기 버튼을 클릭합니다. 이제 웹 클라이언트는 HTTP 메소드 VI와 데이터를 교환할 수 있습니다.
관련 정보
클라이언트로 웹 서비스 접근하기
다음 단계를 완료하여 URL을 통해 웹 브라우저에 공개된 웹 서비스로 데이터를 전송합니다:
- Add.vi에서 마우스 오른쪽 버튼을 클릭한 후, 메소드 URL 보이기를 선택하여 HTTP 메소드 URL 대화 상자를 디스플레이합니다.
- 사용 가능한 서버 풀다운 다운 메뉴에서 어플리케이션이 포함된 아이템을 선택한 후, URL 복사 버튼을 클릭합니다. 이 URL에는 디버깅 서버의 경우의 URL과는 다른 포트 번호가 포함됩니다. LabVIEW는 이 포트 번호를 어플리케이션 웹 서버에서 실행되는 웹 서비스와의 통신에 사용합니다.
- 대화 상자를 닫습니다.
- URL을 표준 웹 브라우저에 붙여 넣고, 다음과 같이 {value} 변수를 숫자형 값으로 대체해야 합니다: http://127.0.0.1:8080/TutorialService/Add?b=2&a=3. 노트 클라이언트가 웹 서비스를 공개한 시스템과 다른 시스템에 있는 경우, 127.0.0.1을 호스팅 시스템의 실제 IP 주소로 대체해야 합니다.
- 브라우저는 커넥터 팬에 할당된 각 인디케이터의 출력 값을 JSON 응답으로 반환합니다.
관련 정보
웹 서비스 모니터하기
다음 단계에 따라 어플리케이션 웹 서버에 공개된 웹 서비스의 상태를 확인합니다:
- 웹 서비스 프로젝트 아이템에서 마우스 오른쪽 버튼을 클릭한 후, 어플리케이션 웹 서버≫웹 서버 관리를 선택합니다. 웹 브라우저에 NI 웹 기반 설정 및 모니터링이 열립니다.
- 왼쪽 사이드바의 웹 서비스 관리 버튼을 클릭합니다
. - 공개된 웹 서비스 리스트에서 TutorialService를 선택합니다. 이 리스트가 비어 있는 경우, 새로 고침 버튼을 클릭합니다.
- 웹 서비스의 상태가 실행 중이 됩니다. 페이지 아래쪽의 버튼을 사용하여 웹 서비스를 일시 정지하거나, 다시 시작하거나 비공개할 수 있습니다.
- HTTP 메소드 VI, Add 및 AdditionalOperations/Subtract에 대한 URL 맵핑이 실행 중인 HTTP 메소드와 함께 페이지의 오른쪽에 나타납니다.
기타 관련 리소스
- 웹 클라이언트에서 LabVIEW 어플리케이션과 통신하기
- 개요: LabVIEW 어플리케이션과의 웹 기반 통신 — LabVIEW 웹 서비스에 대한 전반적인 개요
- 독립 어플리케이션을 통해 웹 서비스 공개하기 — 어플리케이션이 실행될 때 웹 서비스가 실행되도록 LabVIEW 독립 어플리케이션에 웹 서비스를 포함시킵니다.
- 설치 프로그램을 통해 웹 서비스 공개하기 — 설치 프로세스를 완료할 때 웹 서비스가 실행되도록 Windows 설치 프로그램에 웹 서비스를 포함시킵니다.
- HTTP 메소드 VI 개발하기 또는 HTTP 메소드 VI를 초기화하고 통신하는 시작 VI 개발하기 — 웹 서비스 어플리케이션의 일부로 실행되지만 웹 클라이언트와 데이터를 교환하지는 않는 시작 VI와, 보다 복잡한 HTTP 메소드 VI를 개발합니다.
- 웹 서비스에 정적 컨텐츠 통합하기—웹 서비스를 사용하여 HTML 페이지 또는 이미지와 같은 정적 컨텐츠를 공개합니다.
예제 코드
웹 서비스를 사용하는 예제는 다음 LabVIEW 프로젝트를 참조하십시오:
- examples\Connectivity\Web Services\Weather Monitor\Web Services — Weather Monitor.lvproj