잡담: 2008년 12월 8일

기시감

@rein | 업데이트된 리비젼이 404인걸 보고
@rein | 없는 리비젼이라고 잠시 고민한 나는
@rein | 무엇인가                          
@rein | …                               

HTTP 404 코드는 page not found(없는 페이지/URI). SVN revision은 1에서 시작해서 계속 단조 증가하는 정수. 

 

일력

Peanuts의 코믹스트립이 하나씩 나와있는 일력을 써왔다. 이제 슬슬 12월도 1/3쯤 지난 시점. 거의 밑바닥까지 걷어내서 몇 장 안남은 일력을 보니 올해도 다 갔구나 싶다.

근데 문제는 내년도 Peanuts 일력은 못 샀다는거 ㅠㅠ

고양이 키우기(?)

방금 IRC에서 있었던 대화.

 

[18:42:59]  @rein_uriel | 
[18:43:51]  @rein_uriel | ++-~~~                                    =—————-0-009998879ㅐㅕ7665543444ㅔ;ㅔ[ㅣㅐㅏㅑㅣㅓㅕㅗㅛㅎㅅㄺㅇㄷㄵㅁㅂㅈ                          ㄴㅇㄷㄱㄽ효ㅗㅓㅕㅏㅑㅐㅣㅔ;[‘”              
[18:43:54]  @rein_uriel | ?:;;;;;;.,ㅡㅝㅗㅠㅎㅍㅊㄹㅇㅌㅋㄴㅁㅋㄴㅌㅇㅊㄿ휴ㅗㅝㅡㅏ,ㅣ.;/’
[18:44:07] @shurain_rin | …
[18:44:10]    @xenosoz_ | …
[18:44:18] @shurain_rin | 고양이라도 키우시는건가
[18:44:36]             -=- xenosoz_ has changed topic for #????? to: “@rein_uriel | ++-~~~                                    =—————-0-009998

                           879ㅐㅕ7665543444ㅔ;ㅔ[ㅣㅐㅏㅑㅣㅓㅕㅗㅛㅎㅅㄺㅇㄷㄵㅁㅂㅈㄴㅇㄷㄱㄽ효ㅗㅓㅕㅏ”
[18:44:41] @shurain_rin | …
[18:45:38]        @飛烏 | …
[18:47:29]    @피앙_ire | …
[18:48:09]      @平野綾 | …
[18:48:14]      @TEnOTT | ….
[18:50:40]  @rein_uriel | ……………
[18:50:42]     @Arngard | 유리엘 고양이
[18:50:49]     @Arngard | 유리고양이 ‘ㅅ’

orz

단지 키보드 청소를 했을 뿐인데 -_-;;[1]

  1. 물론 메모장 띄워놓고 했는데, 어찌어찌 ALT+TAB도 된듯 -_-;;;; []

일과 놀이 사이

…놀이 대신 흥미/취미/… 등등 원하는 단어로 바꿔서 생각해도.

오늘자 xkcd.com 의 코믹 스트립. (CCL attribution/non-commercial)

typewrite from xkcd.com

할머니에게 메일을  타이프라이터를 써서  보내는 과정에서, cnn, reddit, 구글 뉴스그룹, boingboing, bbc, slashdot 등을 방문하려고…타이핑해버린[1] 노트를 그려낸 것. 참 geek스러운 장면인데 -_-;;; 
뭔가 내가 일 할 때, 혹은 일이라 부를만한 주 작업을 할 때 순간적으로 다른 문맥 — 예를 들어 HanRSS를 열어 다른 블로그를 본다거나, 알라딘이나 toonk.com에 가서 새로 나온 책/만화책을 확인한다거나… — 으로 왔다갔다하는게 느껴짐 -_-;;

다른 사람들은 어떠한가 궁굼함;;;
사실 일이 엄청 흥미진진한 경우 — 슬프게도 그런게 하루에 한 두시간 수준이란 문제가 … — 별로 저런 경우가 없는데 그렇지 않은 경우엔 위와 같은 일이 종종(혹은 아주 자주?) 생김;; 그런 집중이 발휘될 때는 버그도 거의 안생기는데 말이지;;;;;[2]

+모 개발자 채널의 IRC 로그 일부.  

<r*> 집에서 인터넷이 안되다보니
<r*> 생산성이 짱임

…실로 위와 같은 듯.[3]

  1. 컴퓨터 앞에서 글 쓰다가 alt+tab으로 웹브라우져로 가서 주소 입력을 하려고 했다면, 타이프라이터 앞이라 저런 자국(?)이 남게되는 것… []
  2. 사실 딴짓을 해서 그 사이를 파고들어 버그가 생긴건지도 []
  3. 주의: 화자는 rein이 아님 []

(게임) 서버 정기 점검이 필요한 이유

…반쯤은 유머니 적당히 해석합시다(먼산).

후배인 (전직) 게임 개발자 i 모군(대역;가명)과의 대화 :$

[18:38:26]	<i>	 먼가 만들것좀주실분 ㅠ [..]
[18:38:54]	<rein>	...
[18:38:58]	<rein>	자동 코딩 머신이 필요함
[18:39:07]	<rein>	기왕이면 멀티스레드 응용에서 레이스 컨디션도 좀 잡아주고
[18:39:11]	<rein>	데드락 프리딕션도 좀 해주고
[18:39:12]	<rein>	...
[18:39:20]	<i>	 ㅇㅇ
[18:39:21]	<i>	 저도필요함
[18:39:31]	<i>	 쓰레드기능은 없어도괜찮음
[18:39:40]	<rein>	아 안돼
[18:39:41]	<rein>	...
[18:39:57]	<rein>	new BYTE[ length ]
[18:39:58]	<rein>	해놓고
[18:40:04]	<rein>	또 new BYTE[ length ]
[18:40:05]	<rein>	하고 있네
[18:40:06]	<rein>	...
[18:40:10]	<rein>	(같은 포인터에 할당)
[18:40:11]	<i>	 괜찮아요
[18:40:13]	<i>	 안죽으니까
[18:40:18]	<rein>	결국엔 죽어
[18:40:18]	<rein>	...
[18:40:23]	<rein>	하드 긁다 큐 뻑남
[18:40:32]	<i>	 ㅇㅇ
[18:40:32]	<rein>	시간이 좀 걸리긴하겠지만
[18:40:34]	<i>	 서버는
[18:40:38]	<i>	 정기점검 시간이있는게
[18:40:41]	<i>	 좋은거같음
[18:40:48]	<rein>	...
[18:40:50]	<rein>	실로 그러함
[18:40:55]	<rein>	인덱스도 리빌드하고 디비도 튜닝하고
[18:40:59]	<i>	 ㅇㅇ
[18:41:00]	<rein>	죽은 메모리도 반납하고(...)
[18:41:04]	<i>	 말도안되는 버그로부터
[18:41:05]	<i>	 안전함
[18:41:08]	<rein>	ㅇㅇ
[18:41:09]	<rein>	...
[18:41:24]	<i>	 제가 21일 지나면 서버가 죽는 버그
[18:41:27]	<i>	 말씀드렸었던듯
[18:42:36]	<rein>	...

 

사실 주기적으로 전체 시스템을 내렸다 올릴 수 있다는 것만으로도, 단위가 크지 않은 메모리 릭[1]  — 물론 반복도 적어야 — 이나, 잘 설계되지 않은 디비 인덱스 문제 같은게 해결된다(…).

메모리 릭은 프로세스에 종속된 거니 다시 시작하면 그만이고, 디비 인덱스도 빨리 못만들어낼 — 실시간으론 하면 안될 — 녀석들도 만들어내면 그만이니까 -_-;;

여담이지만 하드웨어 성능이 지금보다 안 좋았던 2000년대 초반의 게임들은 디비에서 데이터 삭제 자체를 안하고 넘어가는 경우도 왕왕 있었다고 한다. 디비 커밋 — 특히 하드디스크를 꼭 갔다오는 — 연산들은 최대한 피하려고 메모리 디비에 "지워졌다"고 체크만 해놓고, 이것도 묶어서 커밋하고(…), 정기 점검 시간에 몰아서 삭제하는 일을 했다고 한다(…).

  1. 위에서 내가 결국엔 죽는다고 말한 것도 반응 속도가 생명인 게임 서버의 경우 메모리 릭 때문에 물리 메모리가 모자라서 하드 스왑을 시작하면 반쯤 죽은거라고 봐도 무방하기 때문. []

잡담: 2008년 5월 20일

어떤 디버깅

<rein_> 덤프도 없이
<rein_> 미니덤프 로그랑
<rein_> (덤프도아님)
<rein_> 모듈 주소정보랑
<rein_> 해당 리비젼 빌드한 맵파일만 가지고
<rein_> 추측디버깅중(…)
<rein_> + 재연안됨
<rein_> orz
<zzl> 이건 뭐 실진맥도 아니고

Orz

결국 제대로 된 덤프를 남기게 변경했지만 (팀 라이브러리 ㄳ), 여튼 서버 코드를 내 손에서 한참 벗어난 곳에서 디버깅해야할 줄은. 이건 다 경험 문제겠지.

이력서 제발 좀

– 경력과 관계 없는 알바 : 프로그래머가 사무직 보조 알바라거나 물건 배달이라거나 이런걸 하는 경력을 볼 것 같진 않지 않냐 -_-;;; 경력/알바 쓰라는데 자기가 지원하는 분야랑 관계없는 거면 안 쓰는게 이익같다 (적어도 나 같은 사람이 보게된다면)

– (경력방향으로 관련이 있는 것에) 도전해봤다는 것은 그 자체로 +다. 적어도 신입이라면 확실히 좀 더 눈에 뛰지

– 뭔가 반 사회적으로 보인다거나, 우울/불안해 보이는 mail 주소는 참아줬으면 좋겠다. 없다면 이름/이니셜 정도의 메일 주소를 하나쯤 개설하는 것도

문제 찾기

육체적인 문제에서 정신적인 문제 영역으로 갈 수록, 잘하는 사람과 그렇지 않은 사람의 격차는 확연이 벌어진다. 그렇지만 그 격차가 충분히 유의미하지 않을 수도 있는 새내기(…)들의 영역에서 적당한 문턱값을 갖는 문제를 찾는다는 건 참 애매한듯 -_-;;

그런 의미에서 su-doku가 참 좋은데 이건 웹 여기저기에 너무 많은 해답이 알려져 있다 -_-;;

회식 + 자전거

생각없이 자전거 타고 출근했는데, 오늘 회식이었다(…). 음주운전(?)을 할 수는 없고 옆에 들고 사실상 걸어온듯[…]

메신저 서버를 만든다면

후배 d* 가 물어본 질문.

d |
d | 질문
d | 메신저를 개발한다고 했을 때
d | 염두에 둬야 할 점은 뭐가 있을까요?
d | 음… 일단 다른 메신저의 소스는 구해놨고, 네트워크 좀 더 공부해야 하려나…

…여기에 대한 몇몇 의견.

p | 부가기능 어디까지 지원하나요
d | 그냥 노멀하고 스탠다드한 메신저라고 가정하지요.
p | 파일전송이 되냐 안되냐, 게임(…)이 되냐 안 되냐에 따라서
p | 레이어가 차이가 있을 것 같지만
p | 저도 네트워크를 잘 아는 건 아니므로
ㅃ | 1:1 대화에서 다대다 대화가 될 경우를 염두에 두면 좋지 않을까

내 경우에는 보통 이런 결정을 내린다 — 특히 개발 기간이 짧아야 한다거나 한 경우에는 더더욱.

있는 솔루션 쓰자 — 이 경우엔 IRC 서버를.

rein | d: IRC서버 고쳐서 써
rein | …
d | …
rein | 아니 농담이 아닌데
rein | 인증이랑 초기 접속만 맞게 수정하고
rein | 나머지는 IRC / IRC query 기능이잖
rein | 잘 알려져있고
rein | 분산 서버 구현도 알려져있고
rein | 테스트되었고
rein | 뭘 더 바라는데

사실 이런 경우엔 아주 이상적인 솔루션이기도한 IRC 서버가 있다. 우리가 만들어야하는 물건 중 상당수는 이미 발명된 경우가 대부분이고 — 많은 경우 수차례 반복된다 — 그 중 적합한게 적어도 하나는 있다.[1]

메신저 서버가 가져야할 안정성 문제[2] , 확장성 문제[3] 가 해결되어있으니 그냥 쓰면 되지 않나 싶다.[4]

재작년에 채팅 서버군 솔루션이란걸 볼 기회가 있었는데 보고나서의 내 논평은,

그냥 IRC 서버 쓰시죠

뭐 그러하다.[5]

  1. 특히나 수정을 할 수 있고, 라이센스 문제 없이 쓸 수 있는 것도 있을 것이다 []
  2. 설마 메신져 서버가 몇 일마다 죽는다거나, 점검이 필요하다고 하면 이해해줄 사용자는 없겠지 []
  3. IRC 서버는 잘 정의된(성능이야 둘째로 쳐도) 그리고 오랜 기간 테스트된 분산 서버 시스템이고 []
  4. 특히나 테스트 문제는 소프트웨어 개발에서 가장 중요하고 가치있는 부분인데 이게 대충 해결되는 솔루션이다 []
  5. 그러고보니 이 대화 역시 IRC에서… []

프로그래머들의 이사

어제 이사하는 중에 인터넷이 개통되자 주저없이(?) IRC에 접속. 접속하고 나서의 대화들.

[18:49:48] <ㄹㅋ-ㅇㄹㅅ> 어 이사했냐?
[18:49:59] <rein_moved> 옷정리만 빼면 완료인듯
[18:50:05] <ㅃㅅ_ㅎㅅ> 역시.
[18:50:06] <rein_moved> 그러나 이미 스피커 컴퓨터 엑박은 설치 완료라는거
[18:50:07] <rein_moved> …
[18:50:11] <ㅃㅅ_ㅎㅅ> 순위가
[18:50:14] <rein_moved> …
[18:50:16] <ㄹㅋ-ㅇㄹㅅ> …
[18:50:21] <ㅃㅅ_ㅎㅅ> 컴퓨터 책 취미활동 >>>>> 옷
[18:50:23] <ㄹㅋ-ㅇㄹㅅ> 당연히 컴퓨터 스피커 놓고 음악 트는 게 먼저 아닌가여…
[18:50:25] <rein_moved> 컴퓨터 >> 스피커 >>>>> 엑박 >> 책 >>>>>>>>>>>>>>>>> 옷
[18:50:26] <ㄹㅋ-ㅇㄹㅅ> 그리고 나서 나머지 정리
[18:50:40] <rein_moved> 나머진 생각나고 시간나고 의욕까지 생기면
[18:50:50] <ㅃㅅ_ㅎㅅ> 근데 간혹 곤란한 게
[18:50:55] <rein_moved> …
[18:50:55] <ㅃㅅ_ㅎㅅ> 이사하고 어쩌다 필요한 물건 못 찾을 때
[18:50:58] <ㅃㅅ_ㅎㅅ> 후…
[18:50:58] <rein_moved> 괜찮아
[18:50:59] <rein_moved> 근성
[18:51:00] <rein_moved> […]

그들의 우선순위란 … (…)

ps. 창 밖을 보니 눈이 잔뜩 쌓여있음. 날짜를 참 잘 잡은듯[…].

+ 화자들이 모두 N모사라는 공통된 사실을 발견. 근데 첫 글자만 같다는건 …

다카하시 방법론

Open/Free Softare 커뮤니티에서 요즘 많이 사용되고 있는 프리젠테이션 방법론 중 하나로 "다카하시 방법론" 혹은 "다카하시 메소드"라는 것이 있다. 동아시아권 언어처럼 문자로 표현하면 하나의 글자가 꽤나 많은 의미를 담는 경우에 주로 사용하기 좋은 방법인데,

  • 극단적으로 큰 크기의 글자를 사용한다
  • 굉장히 적은 수의 글자만은 한 페이지에 넣는다
  • 페이지당 시간이 극히 짧다 – 페이지당 0.5초 ~ 2초 정도
  • 청중이 슬라이드에 집중하게 한다

정도를 담고 있다. 글자가 크게 쓰고 적은 수를 사용해서인지 한글자 한글자가 복잡한 동아시아권(특히 CJK 삼국)에서 특히 호평받고 있는 듯 하다.

…라는 이유로 내일 해야하는 서버 프로그래밍에서 스크립트 언어 – 특히 Lua – 를 사용하는 것에 대해서 프리젠테이션할 때 저 방법론을 쓰려고 한다.

이 얘기를 IRC 모 채널에서 했더니,

Continue reading 다카하시 방법론