예제

본 장에서는 AnyLink HTTP2 어댑터를 사용한 예제를 설명합니다.

1. 개요

다음은 HTTP2 기본 거래 구성입니다. 본 예제에서는 더미 거래를 통해 아웃바운드를 테스트하며, Path 기반의 거래 식별을 사용합니다.

figure tutorial http2 start
기본 거래 구성도

다음은 인바운드 거래를 수행하는 과정에 대한 설명입니다.

  1. HTTP2 인바운드 어댑터를 통해 외부로부터 HTTP2 요청을 수신합니다.

  2. Path 정보를 기반으로 거래를 식별합니다.

  3. 해당 거래의 서비스 플로우를 수행합니다.

  4. 응답을 HTTP2 스트림을 통해 반환합니다.

전문 구성

예제에서 사용할 전문 구성은 다음과 같습니다. 전문은 모두 JSON 형식의 메시지를 사용합니다.

  • 요청 메시지

    Physical Name Logical Name Field Type JsonKey

    DATA1

    DATA1

    string

    none

    DATA2

    DATA2

    string

    none

  • 응답 메시지

    Physical Name Logical Name Field Type JsonKey

    DATA1

    DATA1

    string

    none

    DATA2

    DATA2

    string

    none

    DATA3

    DATA3

    string

    none

2. 어댑터 생성

AnyLink WebAdmin에 로그인한 후 초기화면에서 [구성관리] > [어댑터]를 선택한 후 어댑터 목록화면[Add] 버튼을 클릭하면 어댑터 등록 화면이 나타납니다. 어댑터 생성에 대한 자세한 내용은 어댑터 설정을 참고합니다.

AnyLink WebAdmin의 접속 및 사용법에 관한 자세한 내용은 AnyLink WebAdmin 안내서를 참고합니다.

다음은 HTTP2 어댑터를 생성하는 예제입니다.

figure http2 adt add
HTTP2 어댑터 등록 화면
  • 기본정보

    항목 설정값

    어댑터 아이디

    HTTP2_ADT

    어댑터 이름

    HTTP2_ADT

    어댑터 종류

    HTTP2

  • [상세설정] 탭

    항목 설정값

    아웃바운드 스레드 풀 아이디

    미사용

3. 엔드포인트 생성

어댑터 생성이 완료되면 [어댑터] 탭에서 등록된 어댑터를 조회하고, 조회된 어댑터를 클릭하면 어댑터 상세정보 화면으로 이동합니다.

[엔드포인트 목록] 탭 아래 [Add] 버튼을 클릭하면 엔드포인트 등록 화면이 나타납니다. 엔드포인트 생성에 대한 자세한 설명은 엔드포인트 설정을 참고합니다.

3.1. 인바운드 엔드포인트 생성

다음은 HTTP2 인바운드 엔드포인트를 등록하는 예제입니다.

figure http2 in ep add
인바운드 엔드포인트 등록 화면
  • 기본정보

    항목 설정값

    엔드포인트 아이디

    HTTP2_IN_EP

    엔드포인트 이름

    HTTP2_IN_EP

    엔드포인트 상태

    Running

    부팅 초기값

    Running

    통신 방향

    Inbound

  • [연결정보] 탭

    항목 설정값

    인바운드 포트 지정

    8888

3.2. 아웃바운드 엔드포인트 생성

다음은 HTTP2 아웃바운드 엔드포인트를 등록하는 예제입니다.

figure http2 out ep add
아웃바운드 엔드포인트 등록 화면
  • 기본정보

    항목 설정값

    엔드포인트 아이디

    HTTP2_OUT_EP

    엔드포인트 이름

    HTTP2_OUT_EP

    엔드포인트 상태

    Running

    부팅 초기값

    Running

    통신 방향

    Outbound

  • [연결정보] 탭

    항목 설정값

    protocol

    http

    호스트

    127.0.0.1

    Path

    /http2-dummy

    포트

    8888

4. 스튜디오 리소스 생성

본 절에서는 스튜디오에서 리소스를 생성하는 방법에 대해서 설명합니다.

AnyLink 스튜디오 사용법에 대한 자세한 내용은 AnyLink 스튜디오 안내서를 참고합니다.

예제는 하나의 거래 그룹을 부모 노드로 하는 인바운드 거래와 아웃바운드 거래로 구성됩니다.

4.1. 거래그룹 생성

다음과 같이 거래 그룹을 설정하여 생성합니다.

figure tutorial txgrp create
거래그룹 생성
항목 설정값

패키지

com.tmax

거래 ID

http2

거래 이름

http2

4.2. 거래 생성

거래그룹 하위에 다음과 같이 거래 및 더미 거래를 설정하여 추가합니다.

  • 거래 생성

    figure tutorial tx create
    거래 생성
    항목 설정값

    노드 타입

    거래

    거래 이름

    test

    거래 ID

    test

  • 더미 거래 생성

    figure tutorial tx dummy create
    더미 거래 생성
    항목 설정값

    노드 타입

    거래

    거래 이름

    dummy

    거래 ID

    dummy

4.3. 메시지 생성

예제에서 사용할 요청 메시지와 응답 메시지를 생성합니다.

  • 요청 메시지 생성

    figure tutorial req msg create
    요청 메시지 생성
    항목 설정값

    메시지 아이디

    RequestMessage

    메시지 이름

    RequestMessage

    생성된 요청 메시지를 다음과 같이 설정합니다.

    figure http2 req msg setting
    요청 메시지 정보
    Physical Name Logical Name Field Type JsonKey

    DATA1

    DATA1

    string

    none

    DATA2

    DATA2

    string

    none

  • 응답 메시지 생성

    figure tutorial res msg create
    응답 메시지 생성
    항목 설정값

    메시지 아이디

    ResponseMessage

    메시지 이름

    ResponseMessage

    생성된 응답 메시지를 다음과 같이 설정합니다.

    figure http2 res msg setting
    응답 메시지 정보
    Physical Name Logical Name Field Type JsonKey

    DATA1

    DATA1

    string

    none

    DATA2

    DATA2

    string

    none

    DATA3

    DATA3

    string

    none

4.4. 아웃바운드 룰 생성

아웃바운드 거래에서는 아웃바운드 룰을 호출하여 HTTP2 아웃바운드를 실행합니다.

거래 노드의 컨텍스트 메뉴에서 [새로만들기] > [아웃바운드 룰] > [HTTP2 아웃바운드 룰]을 선택하면 HTTP2 아웃바운드 룰 생성 화면이 나타납니다.

figure tutorial http2 outboundrule create
아웃바운드 룰 생성
항목 설정값

아웃바운드 아이디

HTTP2_OUTBOUNDRULE

아웃바운드 이름

HTTP2_OUTBOUNDRULE

4.5. 플로우 생성

HTTP2 거래에서 호출될 플로우를 생성합니다.

figure tutorial flow create
플로우 생성
항목 설정값

플로우 아이디

HTTP2_FLOW

플로우 이름

HTTP2_FLOW

더미 거래에 대해서도 플로우를 생성합니다.

figure tutorial flow dummy create
더미 플로우 생성
항목 설정값

플로우 아이디

HTTP2_FLOW_DUMMY

플로우 이름

HTTP2_FLOW_DUMMY

5. 스튜디오 리소스 설정

본 절에서는 생성한 리소스를 설정하는 방법에 대해서 설명합니다.

5.1. 거래 설정

  1. 예제에서 사용된 거래의 구조는 다음과 같습니다.

    figure http2 biztx tree
    거래 트리
  2. 다음과 같이 더미 거래 플로우를 작성합니다.

    figure http2 biztx dummy flow
    더미 플로우
  3. 다음과 같이 본 거래 플로우를 작성합니다.

    figure http2 biztx flow
    본 거래 플로우
  4. 본 거래 플로우의 HTTP2 액티비티에서 호출할 아웃바운드 룰은 다음과 같습니다.

    figure http2 biztx outboundrule
    아웃바운드 룰 설정
    항목 설정값

    아웃바운드룰 ID

    HTTP2_OUTBOUNDRULE

    아웃바운드룰 이름

    HTTP2_OUTBOUNDRULE

    응답 수신 방식

    ASYNC

    HTTP Method

    POST

    요청처리 타임아웃(ms)

    10000

    Endpoint(Group)

    HTTP2_OUT_EP

    요청 메시지

    RequestMessage (Json)

    응답 메시지

    ResponseMessage (Json)

5.2. 거래 식별 설정

HTTP2 어댑터는 Path를 기반으로 거래를 식별합니다. 다음과 같이 거래그룹과 거래에 파싱 정보를 설정합니다.

  • 거래그룹 파싱 정보 설정

    1. 거래그룹(http2)을 선택합니다.

    2. [파싱 정보] 탭을 클릭합니다.

    3. '하위 거래 식별 방법' 항목에 `HTTP_PATH`를 지정합니다.

      figure http2 parsing rule biztx group
      거래그룹 파싱 정보 설정
  • 거래 파싱 정보 설정

    1. 거래(test)를 선택합니다.

    2. [파싱 정보] 탭을 클릭합니다.

    3. '거래 식별코드' 테이블에 다음과 같이 추가합니다.

      figure http2 parsing rule biztx
      거래 파싱 정보 설정
      항목 설정값

      코드값

      [/http2-test]

      종류

      REQUEST

      더미 거래에도 동일하게 설정합니다.

      figure http2 parsing rule biztx dummy
      더미 거래 파싱 정보 설정

5.3. 플로우 설정

HTTP2 거래에서 호출될 플로우를 다음과 같이 설정합니다.

figure http2 biztx setting
거래 플로우 설정

더미 거래도 동일하게 설정합니다.

figure http2 biztx setting dummy
더미 거래 플로우 설정

5.4. 에러 플로우 설정

HTTP2 인바운드 거래에서 에러 발생 시 기본적으로 응답을 전송하지 않습니다. 에러 응답이 필요한 경우 에러 플로우를 설정해야 합니다.

figure http2 error flow
에러 플로우

에러 발생 시 Status Code는 500으로 응답합니다. 아웃바운드 스트림의 응답 Status Code가 200이 아닌 경우 해당 요청은 실패로 처리됩니다.

6. 배포

거래그룹/거래 배포정보를 설정합니다.

배포 후 인바운드 엔드포인트의 상세설정 탭에서 배포한 거래그룹을 지정합니다.

figure http2 select biztx group
거래 배포

거래 배포 설정화면에 대한 자세한 사용법은 AnyLink 스튜디오 안내서를 참고합니다.

7. 거래 테스트

다음은 HTTP2 어댑터에 대한 테스트 수행 결과입니다.

figure http2 result
거래 테스트 - 트랜잭션 로그