[완료] 간단한 소켓 프로그램을 구성하려 합니다..

iamoon의 이미지

안녕하세요..

제가 갑자기 프로젝트를 시작하게 되서 질문드립니다.

의료 기기로 부터 정보를 받아서 (이 부분은 참고 소스와 경험이 있으므로 패스), 모처에 있는 서버에 (mysql)형식으로 저장을 하려 합니다. 데이터는 물론 다수의 정수, 실수 뭐 이런거죠. Struc로 규정해야겠구요..

질문 : 서버에서 어떤 디비를 쓰던 통신하는 입장에서는 그건 알 필요가 없는 것 아닌가요?

질문 : 서버와 통신하는 것은 모두 '소켓 프로그램'에 속하나요?..

질문 : 기반은 윈도우 + VC 6.0 으로 생각하고 있는데요 (제가 윈도우 개발을 했던 기반이어서), 향후 제품화할 때는 우분투 + ?? 가 좋을까요?.. UI는 큐티가 예쁘다고 하던데 어떤지요?.. 좋은 IDE 추천좀요.. 쉽게 배울 수 있고 디버깅도 어렵지 않은... 파이썬으로 개발하고 싶은 생각도 있습니다. 제일 좋긴 한데 회사 입장에서는 잘 안쓰는 언어를 도입하는 데 저항이 있어서...

질문 : '소켓 프로그램'에 대한 가장 간결하게 설명한 블로그나 문서 출처 좀 알려주세요..

한 반년 아이폰 프로그램 공부했더니 갑자기 날벼락이 떨어져서... ㅋㅋ 우문현답 부탁드려요..

감사합니다..

aral1의 이미지

질문 : 서버에서 어떤 디비를 쓰던 통신하는 입장에서는 그건 알 필요가 없는 것 아닌가요?
네, 클라이언트 측에서 DB에 직접 연결을 하는게 아닌 이상 알 필요는 없습니다.^^
혹시 모르니 DB와 서버프로그램은 최대한 느슨하게 연결시키는 편이 좋을 것 같습니다.
mysql에 특화된 쿼리형식이나 명령어에 의존하는 경우, 혹시 모를 DBMS변경에 유연하게 대처할 수 없기 때문입니다.

질문 : 서버와 통신하는 것은 모두 '소켓 프로그램'에 속하나요?..
사전적 의미로 따지고 들어가면 TCP/IP로 통신하는 모든 프로그램은 소켓 프로그램 범주안에 들어갑니다.ㅜㅜ
심지어 인터넷 익스플로러도 소켓 프로그램이지요.
하지만 우리 개발자들끼리 일반적으로 통용되는 소켓 프로그래밍이라 함은 read/write 같은 저수준 네트웍 함수들을 사용하여 직접 IOCP 서버를 구현하는 등의 작업을 뜻합니다.
경험삼아 직접 개발해 보시는 것도 좋지만, 업무상 필요한 것이라면 이미 공개된 라이브러리나 예제들을 사용하는 것이 비용과 안정성에 있어서 저는 추천드리는 바입니다.

질문 : 기반은 윈도우 + VC 6.0 으로 생각하고 있는데요 (제가 윈도우 개발을 했던 기반이어서), 향후 제품화할 때는 우분투 + ?? 가 좋을까요?.. UI는 큐티가 예쁘다고 하던데 어떤지요?.. 좋은 IDE 추천좀요.. 쉽게 배울 수 있고 디버깅도 어렵지 않은... 파이썬으로 개발하고 싶은 생각도 있습니다. 제일 좋긴 한데 회사 입장에서는 잘 안쓰는 언어를 도입하는 데 저항이 있어서...
그나마 제일 쉬운 질문이네요.. ^^;;
팀원들과 협업하기 좋은 툴이 best 툴인 것 같습니다.

질문 : '소켓 프로그램'에 대한 가장 간결하게 설명한 블로그나 문서 출처 좀 알려주세요..
예전에 얼핏 '열혈 소켓 프로그래밍'이었나 하는 책이 좋다고 인터넷에서 본 적 있습니다. (저는 그 책을 읽은 적이 없습니다..)
개념이나 관련 예제는 네이버만 해도 한글로 잘 설명된 블로그들이 많으니 여기저기 참고하시면 됩니다.
윈도우즈 기반 개발환경 이신것 같아 아래 유용해 보이는 링크를 적어둡니다.
http://jkkang.net/unix/netprg/chap5/net5_intro.html

건승하세요 ^^

iamoon의 이미지

답변 감사드리구요..

질문 2 에서요.. 공개된 라이브러리는 뭐가 있나요? VC++ 6.0에서 사용 가능한 걸루요..

질문 3 에서요.. 팀원이 없습니다. 그냥 혼자 개발.. ㅋㅋ 그래서, 언어도 파이썬을 고려하고 있구요..

감사 감사...

aral1의 이미지

VC++ 6.0! 정말 세월이 지나도 사랑받는 명품 개발툴이죠ㅎ
혹시 stl이나 boost같은 애들과 친하다면 boost.asio 라이브러리를 추천드려요.
http://www.boost.org/doc/libs/1_36_0/doc/html/boost_asio.html

다른 것들도 있구요.
http://javawork.egloos.com/2174089
http://mikhailberis.github.com/cpp-netlib/
http://pocoproject.org/download/index.html

그리고 저는 써보지 않았지만 파이썬도 다들 강력하고 좋은 언어라고 하더군요.
이 기회에 배워보시는 것도 나쁘지 않을것 같네요.^^

댓글 달기

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