웹 서비스의 구성요소 (Real-Time, Windows)
- 업데이트 날짜:2025-08-27
- 3분 (읽기 시간)
상위 토픽: 웹 서비스 개발하기
웹 서비스에는 HTTP 메소드 VI, HTTP 메소드 VI 의존성, 시작 VI, 정적 컨텐츠 파일이 포함될 수 있습니다. 웹 서비스 프로젝트 아이템에 웹 서비스 파일을 구성합니다.
다음 LabVIEW 프로젝트는 웹 서비스 파일의 구성 및 설정에 사용하는 웹 서비스 프로젝트 아이템 및 서브아이템을 포함합니다. 최상위 레벨 웹 서비스 프로젝트 아이템을 추가하려면, 내 컴퓨터와 같은 타겟에서 마우스 오른쪽 버튼을 클릭한 후 새로 만들기≫웹 서비스를 선택합니다.
HTTP 메소드 VI
HTTP 메소드 VI는 웹 서비스의 최상위 VI이며, 웹 서비스의 주요 기능이 들어 있습니다. 웹 클라이언트가 HTTP 요청을 웹 서비스에 보내면, 웹 서비스는 요청을 수락한 후 특정 HTTP 메소드 VI로 보냅니다. HTTP 메소드 VI와 웹 클라이언트는 네트워크를 통해 데이터를 교환합니다.
웹 리소스 프로젝트 아이템에서 마우스 오른쪽 버튼을 클릭한 후, 새 VI를 선택하여 새 HTTP 메소드 VI를 생성합니다.
웹 리소스 프로젝트 아이템 아래에 서브아이템을 추가하여 HTTP 메소드 VI를 구성할 수 있습니다. 이러한 서브폴더는 사용자 모음과 같은 동일한 리소스를 기반으로 작업을 수행하는 HTTP 메소드 VI들을 그룹으로 묶는 RESTful 설계에 유용합니다. RESTful이란 Representational State Transfer (REST) 구조를 지칭합니다.
또한 서브폴더의 이름은 클라이언트가 서브 폴더에 둔 HTTP 메소드 VI를 실행할 때 사용하는 URL에도 나타납니다. 예를 들어 다음 그림에서, Subtract.vi HTTP 메소드 VI의 URL에는 서비스 이름 뒤에 AdditionalOperations이 포함됩니다: http://127.0.0.1/TutorialService/AdditionalOperations/Subtract.
관련 정보
HTTP 메소드 VI 의존성
HTTP 메소드 VI 의존성은 개발하려는 HTTP 메소드 VI의 필수 구성요소입니다. 의존성에는 SubVI, 공유 변수, DAQ 채널 및 HTTP 메소드 VI 안에 나타나는 그 외 구성요소들이 있습니다.
LabVIEW 웹 서비스를 배포할 때, LabVIEW 웹 서비스는 SubVI와 같은 HTTP 메소드 VI 의존성을 자동으로 묶습니다. 공개된 웹 서비스에는 공유 변수와 같은 HTTP 메소드 VI 의존성은 포함되지 않습니다.
시작 VI
시작 VI는 웹 서비스 어플리케이션의 일부로 실행되지만, HTTP 메소드 VI와는 달리 웹 클라이언트와 데이터를 교환하지는 않습니다. 시작 VI를 사용하여 웹 서비스에서 다음 중 하나 또는 하나 이상의 태스크를 실행할 수 있습니다:
- 파일에서 데이터를 로드하고 값을 초기화하기.
- 웹 서비스가 클라이언트로부터 받은 데이터를 처리하고 조작하기.
- 웹 서비스 실행 중 주기적으로 데이터를 파일에 저장하기.
웹 서비스가 포함된 LabVIEW 어플리케이션은 또한 이전 태스크를 수행할 수 있습니다. 그러나, 어플리케이션의 일부가 아닌 독립 웹 서비스의 경우 대신 시작 VI를 사용합니다. 시작 VI는 네트워크 리소스를 사용하지 않고 HTTP 메소드 VI와 데이터를 교환할 수 있어, 어플리케이션 효율성을 증가시킬 수 있습니다.
시작 VI 프로젝트 아이템에서 마우스 오른쪽 버튼을 클릭한 후, 새 VI를 선택하여 새 시작 VI를 생성합니다. 각 웹 서비스에는 여러 개의 시작 VI가 포함될 수 있습니다.
관련 정보
정적 컨텐츠
웹 서비스에서 HTTP 메소드 VI와 더불어 정적 컨텐츠를 공개할 수 있습니다. 정적 컨텐츠 파일의 예는 HTML 파일, JavaScript 파일, 스타일 시트, 이미지 및 비디오입니다. WebVI를 사용하여 웹 서비스에 대한 사용자 인터페이스를 생성하는 경우, WebVI가 생성하는 웹 페이지 파일은 정적 컨텐츠입니다.
웹 서비스에서 마우스 오른쪽 버튼을 클릭한 후, 공개 컨텐츠 폴더 추가 또는 비공개 컨텐츠 폴더 추가를 선택하여 프로젝트에 폴더를 추가하고 디스크상의 정적 컨텐츠 폴더에 맵핑합니다. 디스크상의 정적 컨텐츠를 프로젝트 트리의 구성과 같도록 공개 컨텐츠가 있는 폴더와 비공개 컨텐츠가 있는 두 개의 주요 폴더로 구성합니다:
- 비공개 컨텐츠—클라이언트는 HTTP 요청을 통해 비공개 폴더에 있는 파일에 접근할 수 없습니다. 비공개 파일은 URL 맵핑을 갖지 않습니다. 오직 웹 서비스의 VI만 비공개 정적 컨텐츠를 사용할 수 있습니다. 예를 들어, 웹 서비스가 설정 파일을 사용하여 실행되는 경우, 해당 설정 파일을 비공개로 만들 수 있습니다.
- 공개 컨텐츠—클라이언트는 HTTP 요청을 통해 공개 정적 컨텐츠에 접근할 수 있습니다. 공개로 해야 할 파일의 예로는 HTML 페이지 및 이미지가 있습니다. LabVIEW는 자동으로 각 공개 파일에 URL 맵핑을 할당합니다.
주요 폴더는 Public Folder\html 및 Public Folder\images와 같이 서브폴더를 가질 수 있습니다. 프로젝트 트리의 폴더들은 기본으로 자동 적용 폴더이며, 이는 디스크상의 폴더의 내용을 실시간으로 반영하며 업데이트된다는 것을 의미합니다.