다른 서버와의 연동시 통신 프로토콜

1,057 views
Skip to first unread message

Ki-Seok Kim

unread,
Feb 21, 2013, 1:03:49 AM2/21/13
to ks...@googlegroups.com
안녕하세요.

조언 하나 부탁 드릴게 있어서요. 경력이  짧다보니 어떤게 좋은 방법이고 일반적인지 모르겠더라구요.

WAS 하고 다른 서버와 연동해야할 일이 있습니다. C or C++ 로 만든 서버이구요.

TCP 를 이용합니다. 주 기능은 명령 보내고 응답 받는게 대부분입니다. 

그런데 아직 마땅히 정의된 프로토콜이 없어서, 시간도 얼마 없고.. 사실 별거 없는데 정의할거 생각하니 벌써부터 진절머리가 나내요..

그래서 어떻게하면 될거 다되고, 개발하기 쉽고, 단순하게 설계 할 수 있을까 생각해봤습니다.

그래서 심플 하면 JSON 이라고 생각했습니다. 데이터 포멧중 제일 단순한 포멧이 아닐까 생각합니다.

그래서 이 JSON String 을 그냥 패킷에 싫어 보내버리면 어떨까 생각해봤습니다.

두가지 걸리는게 있는데요 하나는 C 서버에서 과연 파싱이 가능할까.. 찾아보니까 라이브러리는 있는거 같더라구요.

또하나는 암호화 인데요 암호화를 해야할거같은데 암호화는 경험이 없어서 어찌 해야할지 막막하내요..

뭐 일단 구현단계의 고민보다는.. 과연 제가 생각한 방법이 무리가 없는지.. 일반적인지.. 좋은방법인지 모르겠내요.

어짜피 C 서버 개발자분이 "싫어" 하면 끝이겠지만...

많은 조언 부탁드립니다. 

감사합니다.


서영하

unread,
Feb 21, 2013, 1:52:57 AM2/21/13
to ks...@googlegroups.com
안녕하세요. 지금 제가 운영하고 있는 서버가 json을 사용하는 프로토콜로 되어있습니다.
서버단은 JAVA로 만든 TCP Socket 서버이구요. 디바이스 단은 C로 구성되어있고, json 프로토콜로 통신을 
주고 받고 있어요. 일단 json 라이브러리는 http://www.json.org 가시면 구하실 수 있습니다.
암호화 같은 경우엔 저희 같은 경우는 Base64를 사용하고 있어요. Data 부분만 Base64로 인코딩을 하여 앱단에서 서버로 보내고, 서버는 그걸 디바이스단으로 전달하여 디바이스에서 디코딩하는 방식으로 했어요.

json을 사용하여 프로토콜을 구성하면 편하실거 같아요. 



2013년 2월 21일 오후 3:03, Ki-Seok Kim <hello...@gmail.com>님의 말:


--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ksug+uns...@googlegroups.com에 이메일을 보내세요.
이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com/groups/opt_out을(를) 방문하세요.
 
 



--

=================================================================
Seo, Young Ha
Mobile 010-2572-6545

Ki-Seok Kim

unread,
Feb 21, 2013, 1:58:51 AM2/21/13
to ks...@googlegroups.com
아 감사합니다. 실제로 쓰는데가 있내요.ㅎ
일단 일정이 촉박하다는 핑계로 제안해봐야겠습니다. ㅎ

2013년 2월 21일 오후 3:52, 서영하 <skyl...@gmail.com>님의 말:

ilho ko

unread,
Feb 21, 2013, 2:17:59 AM2/21/13
to ks...@googlegroups.com
base64는 암호라기 보다는 인코딩이기때문에 문자열을 보면 base64라는걸 쉽게 유추할 수 있고 또한 쉽게 디코딩해서 확인할 수 있습니다. 

그보다는 aes 128나 256을 써서 처리하시는게 좋을듯 합니다. 


2013년 2월 21일 오후 3:58, Ki-Seok Kim <hello...@gmail.com>님의 말:

Hanghee Yi

unread,
Feb 21, 2013, 2:59:23 AM2/21/13
to ks...@googlegroups.com
서로에 대해 잘 아는 인증된 서버라면 대칭키 방식 어느것을 써도 괜찮을 것 같네요.

2013년 2월 21일 오후 4:17, ilho ko <ilh...@gmail.com>님의 말:

Ki-Seok Kim

unread,
Feb 21, 2013, 3:19:34 AM2/21/13
to ks...@googlegroups.com
감사합니다. 

암호화 블럭 사이즈를 벗어난 데이터는 어떻게 처리해야할지 고민 해봐야겠습니다.


2013년 2월 21일 오후 4:59, Hanghee Yi <java...@gmail.com>님의 말:

Sungchul Park

unread,
Feb 22, 2013, 8:42:27 PM2/22/13
to ks...@googlegroups.com
thrift도 검토해보십시오.

http://thrift.apache.org/

JSON이 HTTP에 문자열로 통신을 하기 때문에 상호 운용성은 좋지만 성능이 떨
어집니다. 외부의 불특정한 대상과 통신하는 게 아니고 내부에서 쓰는 거라면
굳이 범용적인 프로토콜을 쓸 필요는 없겠죠. thrift가 최고의 성능을 내는
프로토콜은 아니지만 상호 운용성과 성능을 모두 만족시킬 수 있는 기술 중
하나입니다. 페이스 북에서 만들어서 아파치에 기증한 프로젝트이고 트위터도
내부적으로 사용하는 것으로 압니다.

13. 2. 21. 오후 3:03, Ki-Seok Kim 쓴 글:
> --
> Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이
> 전송되었습니다.
> 이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면
> ksug+uns...@googlegroups.com에 이메일을 보내세요.
> 이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
> http://groups.google.com /group/ksug?hl=ko에서
> <http://groups.google.com/group/ksug?hl=ko%EC%97%90%EC%84%9C> 그룹을
> 방문하세요.
> 더 많은 옵션을 보려면 https://groups.google.com /groups/opt_out을(를
> <https://groups.google.com/groups/opt_out%EC%9D%84%28%EB%A5%BC>) 방문
> 하세요.
>
>

편현장

unread,
Feb 23, 2013, 9:52:17 AM2/23/13
to ks...@googlegroups.com
Avro 도 추천합니다. 데이터 직렬화나 전송에 대해서 더 강한 프레임워크나 라이브러리도 있지만 최적의 성능과 요구조건에는 avro 도 괜찮은 답안이 될 거 같습니다.
avro 도 thrift 와 같은 역할을 하나 모델에 대한 표현형식을 JSON 으로 하며 성능 상의 이점이 좀 더 있습니다. 다만, 많은 언어들을 지원하지만 그 언어들에 대해 RPC 모듈까지 모두 지원하는 건 아닙니다. 하지만 요구하시는 C, C++, Java 는 지원을합니다. 


향후 C 나 C++, Java 이외에도 다른 언어를 고려하고 있다면 박성철님처럼 thrift 를 쓰라고 권하고 싶습니다.


2013년 2월 23일 오전 10:42, Sungchul Park <gyu...@gmail.com>님의 말:
thrift도 검토해보십시오.

http://thrift.apache.org/

JSON이 HTTP에 문자열로 통신을 하기 때문에 상호 운용성은 좋지만 성능이 떨 어집니다. 외부의 불특정한 대상과 통신하는 게 아니고 내부에서 쓰는 거라면 굳이 범용적인 프로토콜을  쓸 필요는 없겠죠. thrift가 최고의 성능을 내는 프로토콜은 아니지만 상호 운용성과 성능을 모두 만족시킬 수 있는 기술 중 하나입니다. 페이스 북에서 만들어서 아파치에 기증한 프로젝트이고 트위터도 내부적으로 사용하는 것으로 압니다.

13. 2. 21. 오후 3:03, Ki-Seok Kim 쓴 글:
안녕하세요.

조언 하나 부탁 드릴게 있어서요. 경력이  짧다보니 어떤게 좋은 방법이고 일반적인지 모르겠더라구요.

WAS 하고 다른 서버와 연동해야할 일이 있습니다. C or C++ 로 만든 서버이 구요.

TCP 를 이용합니다. 주 기능은 명령 보내고 응답 받는게 대부분입니다.

그런데 아직 마땅히 정의된 프로토콜이 없어서, 시간도 얼마 없고.. 사실 별거 없는데 정의할거 생각하니 벌써부터 진절머리가 나내요..

그래서 어떻게하면 될거 다되고, 개발하기 쉽고, 단순하게 설계 할 수 있을 까 생각해봤습니다.


그래서 심플 하면 JSON 이라고 생각했습니다. 데이터 포멧중 제일 단순한 포멧이 아닐까 생각합니다.

그래서 이 JSON String 을 그냥 패킷에 싫어 보내버리면 어떨까 생각해봤습 니다.

두가지 걸리는게 있는데요 하나는 C 서버에서 과연 파싱이 가능할까.. 찾아 보니까 라이브러리는 있는거 같더라구요.


또하나는 암호화 인데요 암호화를 해야할거같은데 암호화는 경험이 없어서 어찌 해야할지 막막하내요..

뭐 일단 구현단계의 고민보다는.. 과연 제가 생각한 방법이 무리가 없는 지.. 일반적인지.. 좋은방법인지 모르겠내요.


어짜피 C 서버 개발자분이 "싫어" 하면 끝이겠지만...

많은 조언 부탁드립니다.

감사합니다.


--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ksug+unsubscribe@googlegroups.com에 이메일을 보내세요.

이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
http://groups.google.com /group/ksug?hl=ko에서 <http://groups.google.com/group/ksug?hl=ko%EC%97%90%EC%84%9C> 그룹을 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com /groups/opt_out을(를 <https://groups.google.com/groups/opt_out%EC%9D%84%28%EB%A5%BC>) 방문 하세요.


--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ksug+unsubscribe@googlegroups.com에 이메일을 보내세요.

이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com/groups/opt_out을(를) 방문하세요.





--
==========================================================
COMAS  Hyun-Jang, Pyun
Assistent Manager / R&D Div. / Solution Business  Comas, Inc.
(Bangbae-Dong) Nambu beltway 2145, Seocho-Gu, Seoul 137-820, Korea
Tel :  +82-2-3218-6300 
Mobile : +82-10-8565-8071  /  Fax : +82-2-3218-6370
E-mail : ker...@comas.co.krslot...@gmail.com

Ki-Seok Kim

unread,
Feb 24, 2013, 7:07:31 PM2/24/13
to ks...@googlegroups.com
감사합니다.

이런게 있는지 몰랐내요. 좋은 정보 얻어갑니다.


2013년 2월 23일 오후 11:52, 편현장 <slot...@gmail.com>님의 말:
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ksug+uns...@googlegroups.com에 이메일을 보내세요.

Bee kim

unread,
Feb 24, 2013, 7:57:42 PM2/24/13
to ks...@googlegroups.com
좀 뒷북이긴 한데 구글에서 만든 protocol buffer란 놈도 있습니다. ;;

2013년 2월 25일 오전 9:07, Ki-Seok Kim <hello...@gmail.com>님의 말:



--
---------------------------------------------
 넥스트리소프트 (주)
 수석컨설턴트, 아키텍트 / 컨설팅사업부 김영진
 서울시 금천구 가산동 371-28
 우림라이온스밸리 A동 405호, 153-786
 Tel : 02-2026-4016   Fax : 02-2026-4020
 Mobile : 010-4012-9409
 E-mail : yj...@nextree.co.kr
 http://www.nextree.co.kr
---------------------------------------------
Reply all
Reply to author
Forward
0 new messages