By Hamid Shojaee, 역 한빛리포터 2기 신동섭
이번 기사에서는 아래 function들을 가지고 있는 Visual Studio.NET Beta 1에서 사용 가능한 ASP.NET을 사용하는 아주 간단한 웹 서비스를 개발할 예정입니다.
- Add(Integer1, Integer2) -- 2개의 수를 더하면 결과를 돌려준다.
- Multiply(Integer1, Integer2) -- 2개의 수를 곱하고 결과를 돌려준다.
우리는 추가를 할 수 있는 "web methods"를 사용하기위해 자동으로 생성된 웹 서비스 페이지를 사용 할 것입니다.
만약 여러분이 웹 서비스가 무엇인지를 알지 못하고 빠른 overview를 얻고 싶다면,
"Introduction To Web Services"를 읽고 난 다음, 다시 이 기사를 읽으면 됩니다.
필요조건
이 기사를 여러분의 첫번째 웹 서비스를 개발하는데 사용하기 위해서, 여러분은 아래의 프로그램을 미리 인스톨 해 놓아야만 합니다:
- Windows 2000 (any version)
- Internet Information Services (IIS)
- Visual Studio .NET Beta 1
이 기사를 계속 읽기 전에 이들 프로그램이 훌륭하게 설치되었으며 잘 작동하는지를 확인하여야 합니다. 또한, 이 기사에 담겨져 있는 예제들은 Visual Basic.NET (또는 Visual Basic 7.0) 구문을 사용합니다. 즉 Visual Basic에 익숙해 있어야만, 이 기사를 이해할 수 있습니다.
Visual Studio.NET에서 프로젝트 생성하기
시작하려면, 먼저 Visual Studio.NET에서 새로운 웹 서비스 프로젝트를 생성하여야 합니다:
- 파일메뉴에서 "New"를 선택하고, 다음으로 "Project"를 선택한다.
- 아래에 보여지는 것처럼 "New Project"의 "Project Types" 리스트 박스안에서 "Visual Basic Projects"를 선택하고 "Templates" 리스트 박스에서 "Web Service"를 선택한다.
- 아래의 Name 박스에 "MathLibrary"를 입력하고 Location 박스에 http://[여러분 컴퓨터 명]이 맞는지를 확인하고, 맞다면 현 상태대로 놔둔다.
프로젝트를 생성하기 위해 OK 버튼을 누릅니다. 이때 Visual Studio는 인터넷에서 웹 서비스가 동작 가능하도록 하기위해 IIS 서버에 관련된 파일들을 포함하는 여러분의 웹 서비스 프로젝트를 위한 많은 파일들을 생성합니다. 아직 웹 서비스 프로젝트에 Functionality가 없더라도, Visual Studio는 완전히 동작 가능한 웹 서비스를 생성합니다.
여러분의 첫번째 웹 서비스를 작성하기
이 프로젝트안에서 동작할 주요 파일은
service1.asmx 파일입니다. 이 파일은 여러분의 웹 서비스가 보여줄 function들을 포함합니다. 파일명(Solution Explorer 창에서)에서 마우스 오른쪽 버튼을 클릭하여 나타나는 Service1.asmx 페이지 뒤에 나타나는 code를 열고 "View Code"를 선택합니다. 여러분은 약 50줄의 코드가 생성되어있는 것을 볼 수 있을 것입니다. 우리는 간단히 연산 가능한 라이브러리를 개발하려 하기 때문에,
service1.asmx "code behind" 파일에 생성된 모든 코드를 제거할 것입니다. 그리고 우리가 생성하려고 하는 연산 기능을 가진 몇 줄의 코드로 이 파일을 바꿀 것 입니다:
Imports System.Web.Services
Public Class Service1
Inherits System.Web.Services.WebService
Public Function Add(ByVal n1 As
Integer, _ ByVal n2 As Integer) As Integer
Return n1 + n2
End Function
Public Function Multiply(ByVal n1 As
Integer, _ ByVal n2 As Integer) As Integer
Return n1 * n2
End Function
End Class
|
우리가 쉽게 이해할 수 있는 작은 양의 이 코드를 마스터해 보도록 합시다.
첫번째 줄:
Imports System.Web.Services
|
여기서는 웹 서비스에 적절한 .NET Framework가 생성한 functionality집합을 우리가 사용할 수 있도록 해 줍니다. 이것은 마이크로소프트가 개발자들이 사용할 수 있도록 이미 개발해 놓은 라이브러리입니다.
다음으로:
Public Class Service1
Inherits System.Web.Services.WebService
|
이 두 라인의 코드는 마이크로소프트가 개발하고 System.Web.Services 라이브러리를 통해 사용 가능하도록 만들어진 "WebService" 클래스로부터 웹 서비스 기능을 상속 받은 하나의 새로운 클래스를 생성합니다. 우리는 코드의 첫번째 줄에 이 라이브러리를 import합니다.
다음으로, 우리는 첫번째 웹 메소드(또는, 이 경우에 함수)를 가집니다:
Public Function Add(ByVal n1 As Integer, _
ByVal n2 As Integer) As Integer
Return n1 + n2
End Function
|
함수명 앞에
접미사를 갖는다는 하나의 예외를 가지는 일반적인 Visual Basic 함수처럼 보인다는 것을 알아야 합니다. 컴파일러가 웹에서 불러질 수 있는 함수로써 가능한 이러한 함수를 만들도록 하기위해
WebMethod() 접미사를 사용합니다. 그 함수의 컨텐츠는 여러분이 개발하는 모든 것이 될 수 있습니다. 여러분은 데이터베이스의 한 테이블의 레코드를 리턴하는 함수를 사용할 수 있습니다. 여기에는 제한이 없습니다. 현실적으로 하나의 일반적인 함수에서 수행될 수 있는 어떠한 것도 웹상에서 생성되는 웹 함수에서 수행될 수 있습니다.
그것들이 거기에 있는 모든 것들입니다. 우리는 지금 웹 메소드로서 사용될 수 있는 두개의 함수로 웹 서비스를 생성했습니다. 이제 이러한 것들을 사용해 보도록 합시다!
웹 서비스 사용하기
우리가 서비스1 웹 서비스를 사용하기 전에 완전하게 컴파일을 하여야 합니다. Visual Studio.NET안에 있는 "Build" 메뉴에서 "Build" 명령어를 사용하면 이러한 것을 만들 수 있습니다. 일단 프로젝트가 build되고 나면, Visual Studio.NET은 Service1 WebService(a SDL contract)의 XML 정의를 생성하고 Service1 Web Method를 생성시키도록 하는 페이지를 생성합니다. 이 페이지로 가기 위해서는 Visual Studio.NET의 디버그 메뉴로부터 웹 서비스를 "start"하거나 여러분의 PC에 Service1.asmx 페이지로 이동할 수 있습니다. 여러분이 프로젝트를 시작할 때, 아래와 같은 페이지를 볼 수 있을 것입니다:
메소드중의 하나를 생성하기 위해, 메소드를 위한 파라미터 값을 간단히 입력하고 "Invoke" 버튼을 클릭합니다. 이러한 예제로 add 메소드를 생성하고 파라미터 값으로 3과 5를 입력할 것입니다:
일단 여러분이 이 add 메소드를 생성하면 아래와 같은 결과 페이지를 보게 될 것입니다:
3과 5의 합의 결과가 8임을 볼 수 있습니다.
다음은 어디로 가야하나?
닷넷 프레임워크 에센스 By 쑤안 타이, 호앙 램 2001년 9월 89-7914-145-9 주문번호: 1145 384 페이지 정가: 18,000원 |
여러분은 웹 서비스 표준을 따르는 다른 어떤 프로그래밍 언어와 ASP.NET 웹 페이지뿐만 아니라 C# 애플리케이션과 비주얼 베이직으로부터 웹 서비스를 사용할 수 있습니다. 다음 기사에선, 여러분에게 Visual Basic.NET 윈도우 애플리케이션으로부터 개발된 MathLibrary 웹 서비스를 사용하는 방법을 다룰 것입니다.
Hamid Shojaee는 마이크로소프트 컨설팅 서비스사의 수석 컨설턴트이며 웹 기반 time tracking solution을 전문으로 하는 time and attendance 소프트웨어 회사, Vitrix Corporation의 공동창업자이다.
신동섭님은 한빛 리포터 1기에 이어 2기로 활동 중이며, 전자공학을 전공했습니다. 현재 LG전자에 근무하고 있으며 네트워크 프로그램 개발을 담당하고 있습니다. 관심분야는 보안, 웹 솔루션, 프로토콜 쪽으로, 곧 보안에 관한 기사를 실을 예정입니다.
Return to: dotnet.hanbitbook.co.kr