[C/C++] 구조체/전문 컴파일

Hyo Kyun Lee·2022년 8월 10일
0

C/C++

목록 보기
4/23

1. 개요

프로프레임을 이용한 C/C++ 프로그래밍은 눈에 보이는 부분이 거의 없기 때문에 내부적인 동작 및 구조를 이해하는 것이 중요하다.

2. 구조체와 전문(Msg)

프로프레임에서 input, output 구조체를 생성하면서 반드시 전문(Message, Fixed Length or Delimiter)도 같이 구성하도록 되어있다.

우리가 구조체를 만들고 컴파일하는 작업은 전문을 컴파일하는 작업이지, 구조체를 컴파일하는 작업이 아니다. 실제로 컴파일을 하게 된다면, 구조체의 소스(.so)는 만들어지지 않고 전문에 대해서만 소스파일이 만들어지는 것을 확인할 수 있다.

Data Grid가 우리가 필요한 service, 정보들이 포함된 하나의 체계이고 이것이 미들웨어로부터 얻어온 것임을 일단 유의하자.
Data Grid

결국 미들웨어가 정보를 처리해야 하는데, 이것이 이해할 수 있는 구조(=전문)로 변환해주는 과정이 필요하다.

이때 proMapper(매핑)하는 과정은 구조체와 구조체간(출력 구조체에서 subout을 만드는 과정인듯)이며, 구조체와 전문간 매핑하는 과정은 아니다.

3. Fixed length

전문은 기본적으로 client와 주고받는, 말 그대로 "다수의 정보가 담겨진 길이가 정해진 문자열"이다.

client가 전송한 입력변수 혹은 프로프레임 내부에서도 입력받은 변수나 다른 input/output 정보들을 확보하고자 할 때, fixed length에서 "정해진 섹터(구역)대로 문자열을 slice한다. 그 후 각 영역별로 저장된 정보들을 미들웨어에서 섹터별로 확보하여 참조한다."

이 전문이라는 개념이 처음에는 이해하기 쉽지 않은데, 대략적으로 참조하는 정보들의 길이와 전송하는 전체 정보의 길이가 "정해져 있기 때문에" fixed length라고 이해하면 좋을 것 같다.

4. Delimiter

참조하는 정보의 섹터별 길이가 정해져 있지 않고, 특정값을 통해 구분하는 방법이다.

이 경우 구분인자를 정해주어야 하고(보통은 콤마(,)), 미들웨어는 구분인자에 따라 정보들을 slice하여 참조한다.

5. 참고자료

proframe / 구조체 컴파일 관련 -
http://egloos.zum.com/dsjmg/v/4330481
http://dsjmg.egloos.com/4330481
https://pangate.com/164

※ 첫번째, 세번째 링크가 이해하는데 도움이 됨

0개의 댓글