서버 클라이언트 언어가 다를 경우, 공용 코드 관리 방법 문의 드립니다.

boooy의 이미지

안녕하세요 다른 커뮤니티에 올렸던 질문인데요 이곳에도 문의 드립니다

서버와 클라 모두 구현하려고 합니다. 이때 서로간에 공용으로 사용될 코드가 예상되는데요 (접근 url, 테이블 매핑 객체 및 기타)
이경우 언어가 다르던지 해서 코드 작성시 서로 참조가 안될 경우, 양쪽에 코드 중복으로 수정이나 관리가 귀찮아질 것 같습니다
보통 이경우 어떻게 해결 하시는지요?

제가 생각한 방법은 아래와 같으나.. 전혀 다른 방법이 정석일 것 같아 질문 드립니다

1. 언어간 변환툴을 사용한다 (없으면 만든다. 보통 key-value형태의 class 들이니 언어특성을 거의 타지 않음으로)

2. 통신할때 사용하는 데이터 형식(json등)이 있으니 이것만 손으로 짜고 양쪽에 사용될 파일들은 이 파일로 부터 각각 자동 생성되게 한다(예:json > 서버 class, json > 클라 class). 통신하지 않는 공용 코드도 같은 방식을 사용한다.

서버는 python, 클라이언트는 actionscript(air)로 생각중이나 꼭 이 상황에 해당되는 질문은 아닙니다. 서버가 자바 클라가 c++인 경우등 언어가 다른 상황에서의 해결법이 궁금하네요

익명 사용자의 이미지

language-neutral, platform-neutral한 프로토콜을 정의하는 방법이야 여럿 있을 수 있겠죠.
질문자님이 말씀하신 대로 data serialize부터 시작하지 않을까 싶은데, 뭐 protobuf(https://developers.google.com/protocol-buffers/ ) 같은 거 찾으시는 건가요? 이게 질문자님의 1과 2를 조금씩 커버하고 있는 것 같은데요.

유감스럽게도 소위 application-specific한 부분에 대해서는 직접 작성하시는 것밖에 달리 도리가 없을 것 같군요.

boooy의 이미지

감사드립니다
해당 언어의 파일로 자동 생성 기능도 있고 제가 원하던 기능은 다 있는듯 싶습니다
(ActionScript로의 변환은 기대하지도 않던 부분인데 third-party add-on으로 있네요)

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.