모바일 클라이언트 - 웹서버 구성에 관한 조언 부탁드립니다.

dcmru의 이미지

안녕하세요. 간만에 KLDP에 글을 올려봅니다.
시스템 프로그래밍만 하다가 모바일 플랫폼을 어쩌다가 하게 되었습니다.
재미있게 하고 있는데, 결국 플랫폼을 벗어나 서버 구성이 필요하게 되었습니다.
웹서버관련 지식은 학부 때 배운 ASP와 APM으로 홈페이지를 운영해본 것이 다입니다.
사설이 길었습니다. ^^;

구현할 모습은 모바일 클라이언트(Android)에서 서버의 DB(PostgreSQL) 값을 읽거나 쓰는 작업이 될 것 같습니다.
여기에 보안을 더하여 모바일 클라이언트를 구별 하고, 통신에 암호화 기법을 쓰는 것입니다.
모바일 클라이언트에서 직접 DB 핸들링은 하지 않는 것으로 판단되어 중간에 웹서버를 두기로 하였습니다.

일단 구현을 하는데 주위의 말로는 Apache에 JSP, PHP를 사용해보라는 것입니다.
그래서 조금 더 검색을 해보았더니 WAS가 있는 것을 확인하였습니다.
그리고 JSP, PHP 등이 WAS의 한 부분(?)이라는 것도 알았구요.

현재 구현을 하려는 모습에서 최대 유저 수는 500 정도가 될 것 같습니다.

여기서 JSP 또는 PHP를 Apache와 연동하여 구현을 하여도 충분한 것인가 하는 것입니다.
WAS의 개념을 찾다가 JAVA로 웹서버를 구축하여 연동을 하는 것 같기도 했거든요.

통신은 주로 데이터의 이동이므로 XML 또는 JSON이라는 것을 사용해보려고 합니다.
현재 구현하려는 기술에서 전체적인 그림이 그려지지 않아 조언을 부탁하는 글을 올리게 되었습니다.
구현하는데 있어서 도움의 글을 부탁드립니다.

hiseob의 이미지

제 친구가 하고있는 졸업작품과 비슷하군요.

GPS 좌표 -> 서버 -> 제3자 이런 프로그램인데

서버에 https 적용하기, 안드로이드에서 https로 웹서버와 통신하는 방법, PHP 에서 POST/GET 으로 넘어오는 값 읽어서 -> 처리해서 -> 클라이언트에 값 넘겨주기, 데이터 자체의 암호화 하는 방법, 클라이언트 구별은 전화번호 + 회원가입, 등등등.

안드로이드 어플리케이션이라고 해도 아파치/PHP/DB를 사용하는거면 PC에서 프로그램 하는거나 차이가없죠.

http://localhost/something.php?id=abc&mode=2&request_id=123456
이렇게 하면 php 스크립트가 실행될때 어디 변수에 들어가서 이걸 처리를 어떻게 해서 출력을 어떻게 하느냐.

결론적으로, 게시판 만드는거나 큰 차이 없습니다...

dcmru의 이미지

단순히 PHP든 JSP든 인자로 넘겨서 파싱해서 처리하면 된다는 뜻으로 이해하겠습니다.
그런데, 사용자가 많아진다거나 좀 대형서비스를 한다고 했을 때 이 구성으로 처리할 수 있는 것인지 의문이 듭니다.
그래서 WAS를 사용해보려고 하는데요, 사용자에게 표현해줄 데이터는 아니기 때문에 PHP, JSP를 안거쳐도 될 것 같은 생각이 듭니다.
바로 WAS를 서버로 사용하여 JSON, XML 또는 SOAP 등의 기술을 사용하여 데이터를 주고받을 수 있는지 궁금합니다.
이에 대해서 아시는 분들도 조언 좀 해주세요~

노력만이 살길이다.

spyrogira256의 이미지

WAS는 보통 Web Application Server의 줄임말입니다.
java 쪽에서 대표적인게 tomcat를 들수가 있을꺼 같습니다.
php는 apache에 mod_php를 올려서 쓰니 apache를 그거라고 보는게 맞을거 같은데 잘모르겠네요.

안드로이드에서 데이터를 호출 하는 프로토콜을 http,https로 하는 경우엔.
일반적인 post,get 방식으로 url로 호출 했을때 java나 php에서 json , xml로 return 하는 방식을 사용할 수 있습니다.
이거는 기본적은 asp에서 웹페이지를 작업했던 방식과 동일하게 작업을 하시면 됩니다.

두번째로 soap를 이용하는 방식은 웹서비스라고 검색을 해보시면 방법을 찾을 수 있습니다.
soap로 주고 받는 방식은 soap 프로토콜에 맞춰서 rpc 사용하는 것과 같이
안드로이드, 서버양쪽이 wsdl로 동일한 메소드를 구현하는 방식이 필요합니다.
이 방식은 복잡해서 빨리 사용하시기엔 불편할꺼 같구요.

마지막 방식으로 json,xml로 보낸는 방식을 물어보시는게 이 방식 같은데요.
restful webservice란 방식입니다. 이 방식은 일반적인 web service보단 단순하게 사용할 수 있는데요.

java쪽에서 jersy, resteasy 등의 프레임워크가 있습니다. http 프로토콜의 post,get,delete(?),put로
json,xml를 주고 방식을 수 있습니다.

php도 restful webservice로 검색을 하면 구축하는 방법은 많을꺼라고 생각이 됩니다.

위의 3가지 방식 모두다 웹에서 나오는 결과를 값을 가지고 파싱을 해서 안드로이드에서 처리를 하시면 될꺼 같습니다.

안드로이드에선 webservice, restfulwebservice, 일반 http 다 가능한걸로 알고 있습니다.

dcmru의 이미지

의문점들이 많이 풀렸습니다. 이해가 안가는 부분은 검색하면서 공부해보면 알 것 같습니다.
감사합니다.

노력만이 살길이다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.