길라잡이: NI 웹 서버에 LabVIEW 웹 서비스 생성 및 공개하기 (Windows)
- 업데이트 날짜:2025-08-27
- 8분 (읽기 시간)
다음 단계에 따라 LabVIEW 웹 서비스를 생성하고 공개하여, LabVIEW 웹 서비스와 웹 클라이언트 (이 경우는 웹 브라우저) 사이에서 데이터를 교환합니다.
이 길라잡이는 다음 섹션으로 구성되어 있습니다.
웹 서비스 생성하기
LabVIEW 프로젝트에서 웹 서비스를 개발하여 웹 서비스를 구성하는 VI와 그 외 파일들을 함께 묶고 설정합니다. 다음 단계에 따라 웹 서비스 프로젝트와 2개의 HTTP 메소드 VI를 생성합니다.
- LabVIEW 프로젝트를 생성하여 웹 서비스 파일을 구성합니다. 프로젝트를 Tutorial.lvproj로 저장합니다.
-
내 컴퓨터에서 마우스 오른쪽 버튼을 클릭한 후, 새로 만들기≫웹 서비스를 선택합니다. LabVIEW는 타겟 아래에 웹 서비스 프로젝트 아이템과 폴더를 추가합니다. 노트 이 길라잡이에서는 웹 서비스를 생성하여 호스트 컴퓨터에 공개합니다. 프로젝트 탐색기의 Real-Time (RT) 타겟 아래에 웹 서비스 프로젝트를 생성하여 웹 서비스를 RT 타겟에 공개할 수 있습니다. 웹 서비스를 RT 타겟에 공개하려면, 웹 서비스 호스팅에 어플리케이션 웹 서버만 사용할 수 있습니다. 자세한 설명은 길라잡이: 어플리케이션 웹 서버에 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 메소드 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 프로젝트에서 NI 웹 서버로 바로 웹 서비스를 실행하여 클라이언트가 HTTP 메소드 VI에 요청을 보낼 수 있도록 합니다.
- 웹 서비스 프로젝트 아이템
에서 마우스 오른쪽 버튼을 클릭한 후 시작을 선택합니다. - 사용자의 컴퓨터에서 NI 웹 서버를 처음 사용하는 경우, 다음 단계에 따라 NI 웹 서버를 활성화하고 설정합니다.
- 웹 서비스 시작 대화 상자에서 NI 웹 서버 설정을 클릭하여 NI Web Server Configuration을 시작합니다.
- 이 길라잡이에서는 단순 로컬 접근의 미리 설정된 값을 선택한 후, 다음을 클릭합니다.
- 인증 탭에서 서버 관리를 위한 관리자 사용자로 로그인을 선택한 후 암호를 생성합니다. 다음을 클릭합니다.
- 마침을 클릭하여 이 설정을 적용합니다.
- LabVIEW 프로젝트로 돌아가서 1 단계를 반복합니다. 웹 서비스가 이제 NI 웹 서버에서 실행되고 있습니다.
-
Add.vi를 엽니다. 이때 실행 버튼은 VI가 실행을 위해 예약된 상태(
)임을 보여줍니다. 이는 LabVIEW가 웹 서비스를 로드하여 NI 웹 서버에서 클라이언트와 통신이 가능하도록 했기 때문입니다. - Add.vi를 닫습니다.
- 다음 단계에 따라 클라이언트가 Add.vi를 실행하기 위해 사용할 URL을 얻습니다.
- Add.vi에서 마우스 오른쪽 버튼을 클릭한 후, 메소드 URL 보이기를 선택하여 HTTP 메소드 URL 대화 상자를 디스플레이합니다.
- 사용 가능한 서버 풀다운 다운 메뉴에서 NI 웹 서버가 포함된 아이템을 선택한 후, URL 복사를 클릭합니다.
- 대화 상자를 닫습니다. 노트 HTTP 메소드 URL 대화 상자가 열려 있는 경우, 웹 서비스는 클라이언트의 요청에 응답하지 않습니다.
- 6 단계에서의 URL을 표준 웹 브라우저에 붙여 넣고, 다음과 같이 {value} 변수를 숫자형 값으로 대체해야 합니다: http://127.0.0.1:80/TutorialService/Add?b=2&a=3. 노트 NI 웹 서버는 HTTP/HTTPS 프로토콜에 따라 80/443을 기본 포트로 사용합니다. 그러나 다른 어플리케이션이 해당 포트를 점유하면 포트 번호가 변경될 수 있습니다. NI Web Server Configuration에서 포트 번호를 사용자 정의할 수 있습니다. 인증, 포트 및 원격 연결과 같은 서버 설정에 대한 더 자세한 정보는 NI 웹 서버 설정하기를 참조하십시오.
- URL을 탐색합니다. Add.vi는 브라우저에서 HTTP 요청을 받고 a와 b의 값의 합계를 계산한 후, Add.vi의 커넥터 팬에 할당된 각 인디케이터의 이름과 출력값으로 응답합니다. 이 길라잡이에서, 응답은 기본 터미널 출력 포맷의 JSON 문자열입니다. Add.vi의 커넥터 팬에는 c와 값이라는 두 개의 인디케이터가 할당되고, HTTP 메소드 VI는 그 값을 응답으로 반환한다는 점에 유의하십시오.
{"c":5,"value":"b=2&a=3"}
노트 예상치 못한 동작을 발견하는 경우, 웹 서비스 파일을 편집하기 전에 디버깅 세션을 정지해야 합니다. 이는 LabVIEW가 파일들을 실행에 예약하는 동안은 파일을 편집할 수 없기 때문입니다. 웹 서비스 프로젝트 아이템에서 마우스 오른쪽 버튼을 클릭한 후 정지를 선택합니다. - Subtract.vi에 대해 6단계와 7단계를 반복하거나 7단계의 URL을 업데이트하여 Subtract.vi에 대해 다음과 같이 고유한 URL 맵핑을 반영합니다. http://127.0.0.1:80/TutorialService/AdditionalOperations/Subtract?b=2&a=3.
- Subtract.vi에 대해 단계 8을 반복합니다.
- 웹 서비스 프로젝트 아이템에서 마우스 오른쪽 버튼을 클릭한 후 정지를 선택합니다.
관련 정보
클라이언트가 웹 서비스에 접근하는 방법 설정하기
웹 클라이언트는 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를 저장합니다.
관련 정보
NI 웹 서버에 웹 서비스 공개하기
생성한 웹 서비스를 NI 웹 서버에 공개할 수 있습니다. NI 웹 서버는 NI가 만든 LabVIEW 웹 서비스 및 SystemLink™ 서비스와 같이 사용자가 생성한 서비스를 호스팅할 수 있는 산업용 급 웹 서버입니다. NI 웹 서버는 일반적인 웹 보안 위협으로부터 웹 어플리케이션을 보호하고 많은 엔터프라이즈 등급 데이터 서비스에 높은 확장성을 제공하며 디바이스 관리를 가능하게 합니다. 이 길라잡이에서는 웹 서비스를 NI 패키지에 포함시키고 패키지를 설치하여 공개합니다.
다음 단계를 완료하여, 패키지를 통해 로컬 컴퓨터에서 실행되는 NI 웹 서버에 웹 서비스를 공개합니다.
- 프로젝트 탐색기 윈도우의 빌드 스펙에서 마우스 오른쪽 버튼을 클릭한 후, 새로 만들기≫패키지를 선택하여 패키지 프로퍼티 대화 상자를 시작합니다.
- 정보 페이지에서, 패키지 출력 디렉토리 텍스트 박스에 패키지를 빌드할 위치를 지정합니다.
- 웹 서비스 페이지에서 패키지의 웹 서비스에 포함할 TutorialService 확인란에 확인 표시를 합니다.
- 빌드를 클릭하면 빌드 상태 대화 상자가 나타납니다.
- LabVIEW가 패키지 빌드를 완료하면 탐색을 클릭하여 LabVIEW가 패키지 파일 .nipkg를 저장할 대상 디렉토리를 엽니다.
- 패키지를 더블 클릭하여 NI 패키지 관리자를 통해 패키지를 설치합니다. 설치가 완료되면 웹 서비스가 호스트 컴퓨터의 NI 웹 서버에 공개됩니다.
- LabVIEW 프로젝트를 닫습니다. 공개된 웹 서비스는 LabVIEW 런타임에서 실행되며 LabVIEW 개발 시스템에 의존하지 않습니다.
관련 정보
클라이언트로 웹 서비스 접근하기
다음 단계를 완료하여 URL을 통해 웹 브라우저에 공개된 웹 서비스로 데이터를 전송합니다:
-
웹 서비스 테스트 및 디버깅하기 섹션의 7 단계에서의 URL을 표준 웹 브라우저에 붙여 넣고, 다음과 같이 {value} 변수를 숫자형 값으로 대체해야 합니다: http://127.0.0.1:80/TutorialService/Add?b=2&a=3. 노트 클라이언트가 웹 서비스가 공개된 시스템과 다른 시스템에 위치하는 경우, 127.0.0.1을 호스트 시스템 또는 NI Web Server Configuration에서 사용자 정의한 호스트 이름의 실제 IP 주소로 대체해야 합니다.
- 브라우저는 커넥터 팬에 할당된 각 인디케이터의 출력 값을 JSON 응답으로 반환합니다.
관련 정보
기타 관련 리소스
- 개요: LabVIEW 어플리케이션과의 웹 기반 통신 — LabVIEW 웹 서비스에 대한 전반적인 개요
- 패키지를 통해 웹 서비스 공개하기 — 패키지를 설치할 때 웹 서비스가 실행되도록 NI 패키지에 웹 서비스를 포함시킵니다.
- 독립 어플리케이션을 통해 웹 서비스 공개하기 — 어플리케이션이 실행될 때 웹 서비스가 실행되도록 LabVIEW 독립 어플리케이션에 웹 서비스를 포함시킵니다.
- HTTP 메소드 VI 개발하기 또는 HTTP 메소드 VI를 초기화하고 통신하는 시작 VI 개발하기 — 웹 서비스 어플리케이션의 일부로 실행되지만 웹 클라이언트와 데이터를 교환하지는 않는 시작 VI와, 보다 복잡한 HTTP 메소드 VI를 개발합니다.
- 웹 서비스에 정적 컨텐츠 통합하기—웹 서비스를 사용하여 HTML 페이지 또는 이미지와 같은 정적 컨텐츠를 공개합니다.
예제 코드
웹 서비스를 사용하는 예제는 다음 LabVIEW 프로젝트를 참조하십시오:
- examples\Connectivity\Web Services\Weather Monitor\Web Services — Weather Monitor.lvproj