[질문] 서버 전원을 내리지 않고 수정을 할수 있는 언어에는 어떤 언어들이 있을까요?

MORIARTY의 이미지

보통 게임 서버나 일반 웹서버나 서버안의 설정을 바꾸기 위해서 재 컴파일을 하고 테스트를 위해 서버 전원을 내리는것으로 알고 있었는데요.

L/O 모 게임 서버에서 서버와 클라이언트 프로그램간의 접속을 죽이지 않고 그대로 서버 설정 변경이 적용이 되는것을 보고 어떤 원리로 움직이는것인지 굼금해져서 질문을 올립니다.

Q> 어떤 원리로 동작을 하는것인가요?

Q> 루아 / 리습(Lisp) / 파이썬 같은 언어를 인터프리터 형태로 운용을 하는것인가요?

Q> Erlang, JAVA, C++로도 가능할까요?

검색용 키워드라도 찔러 주신다면 그저 감사할뿐입니다.

bookgekgom의 이미지

루비 온 레일즈
---------------------------------------------------------------------------------------------------------------
루비 온 레일즈로 만들고 있는 홈페이지 입니다.

http://jihwankim.co.nr

여러 프로그램 소스들이 있습니다. 와서 받으삼.

---------------------------------------------------------------------------------------------------------------
루비 온 레일즈로 만들고 있는 홈페이지 입니다.

http://jihwankim.co.nr

여러 프로그램 소스들이 있습니다.

필요하신분은 받아가세요.

MORIARTY의 이미지

흐음 루비를 쓰던 트위터의 서비스는 유명하더군요.
----------------------------------------------------------
홈즈, 그만 좀 따라다니게나..

======= ======= ======= ======= =======
홈즈, 그만 좀 따라다니게나.

7339989b62a014c4ce6e31b3540bc7b5f06455024f22753f6235c935e8e5의 이미지

Hot code loading이나 hot code swapping이라고 불리는 것 같습니다.
스크립트 언어의 경우 대부분 가능할 것 같네요. Erlang이 홍보하는 기능 중 하나이기 때문에 Erlang에서는 잘 되겠죠 뭐.

MORIARTY의 이미지

유용한 키워드를 알려주셔서 감사합니다.

알려주신 키워드로 검색을 해보고 있는 중입니다.

아는것은 없지만, 얼랑이 서버 App으로 아주 유용한 언어인듯이 느껴집니다.

======================================================================
홈즈, 그만 좀 따라다니게나..

======= ======= ======= ======= =======
홈즈, 그만 좀 따라다니게나.

김정균의 이미지

서버 자체의 전원을 내리는 일은 별로 없습니다.

linux 나 unix 의 경우에는 kernel update 외에는 reboot을 할 이슈가 없으며, Windows 의 경우에도 system level 의 registry 가 업데이트 될 경우에만 reboot 이 필요합니다. (표현이 좀 이상하군요. 하여튼 registry 에는 2가지 영역이 있는데, 부팅시에 정보를 올리는 영역과 프로세스가 그때 그때 마다 읽어 들이는 영역으로 나뉩니다.)

MORIARTY의 이미지

흐음. 제가 잘 몰라서요. ㅎㅎ

서버 데몬 프로그램을 재시동을 시키면 된다는 사실을 깜박했습니다. ㅎㅎ

친절한 코멘트 감사합니다.
============================================================
홈즈, 그만 좀 따라다니게나..

======= ======= ======= ======= =======
홈즈, 그만 좀 따라다니게나.

송효진의 이미지

게임서버의 패치반영의 경우 그냥 끊어지는 것 아닐까요?
게임서버만 재시동 하면 되는거고, OS 부팅처럼 오래걸릴 작업은 아니겠고,
클라이언트 프로그램 처럼 큰 데이터를 다루지도 않을 것 같고,
클라이언트의 GUI 는 약간 랙이 있어도 부드럽게 표현되도록 '하던 동작 계속하기' 정도만 해도
티가 거의 안날 것 같네요.

아니면 포트만 유동적으로 변경 가능하게 설계해 놓고,
새 서버 띄운 후 옛 서버 죽이면서 새 서버의 포트를 원래의 포트로 변경한다거나...

어쨌거나 어떤 언어로 작성하던간에 프로그램을 변경하면 재실행을 해야 하는것은 어쩔 수 없을겁니다.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇 개 안돼요~
http://xenosi.de/

MORIARTY의 이미지

적절한 코멘트 해주셔서 감사합니다.
------------------------------------
홈즈, 그만 좀 따라다니게나..

======= ======= ======= ======= =======
홈즈, 그만 좀 따라다니게나.

select99의 이미지

수정? 을하는데 전원을 왜 내리는지 모르겠군요.

전원내리고 수정하는게 뭐가 있을런지..ㅡ.ㅡ;;

아마 수정후 리붓해야할경우를 말씀하시는거라면.. 대부분의경우는그런거 안해도 됩니다.

프로그램을 재기동 하는경우를 말씀하시는거라면 대부분 재기동 해야합니다.

즉 수행하는 자신이 변경되는경우는 대부분 재기동 되어야하고.. 자신이 변경되는게 아니고 자신이 수행시키는 스크립트가 변경되면..
재기동 안해도 되는경우가 많겠죠..

후자는 언어에 구속되는것이 아니라 구현방법에따라 설정이든 수행이든 바뀌게 그렇게 구현할수있습니다.

MORIARTY의 이미지

프로그램의 업데이트가 좀더 적절한 단어일까요?

아무튼, 적절한 코멘트 해주셔서 감사합니다.
==============================
홈즈, 그만 좀 따라다니게나..

======= ======= ======= ======= =======
홈즈, 그만 좀 따라다니게나.

M.W.Park의 이미지

Erlang에서 지원됩니다.
언어 디자인 목표중에 하나였죠.

물론 Lisp에서도 됩니다.

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

monovision의 이미지

NGINX 의 경우 바이너리 버젼이 바뀌었을 경우 서비스 중단없이 바이너리를 교체할 수가 있습니다.

대략적인 교체 순서는...

parent 에 바이너리 교체를 알리는 메세지를 쏴주면 이 parent 가 하는 일을 worker 에 할당을 합니다.
그 후에 parent 를 죽이고 교체된 바이너리를 시작을 하면 worker 가 하던 것을 새로운 parent 가 가져가는 구조입니다.

아파치보다 가벼운 웹서버를 찾다가 NGINX 를 테스트 중인데 문서가 조금 부실한 거 빼고는 상당히 좋은 기능이 많은 웹서버같습니다.

댓글 달기

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