'분류 전체보기'에 해당되는 글 130건

  1. 2008/06/09 마지막 순간 3
  2. 2008/05/14 예외 처리는 언제나 확실하게! 1
  3. 2008/05/03 시간 1
  4. 2008/03/06 미묘한 10픽셀 7
  5. 2008/03/01 스웨덴어 배우기 3
  6. 2008/02/11 연휴 휴유증 +
  7. 2008/01/29 행복 2
  8. 2008/01/19 2008년 새해에는 다들 무엇을 하시나요? 3
  9. 2007/12/28 긴장과 이완
  10. 2007/12/25 아이디어 3

마지막 순간

즐거운 이야기 2008/06/09 04:23 by inureyes

이미 몇번째이지만 그 순간의 느낌은 정말 특별하다.

1.7

저 막대기를 끌어 올리기 위해서는 정말... 많은 사람들이 고생을 해야 한다

15분을 남겨두고 드는 이 감정을 삭히려 오늘 새벽에도 한바퀴 산책을 해야 할 듯 하다. 시간이 적어져 글을 쓰는 것도 확연히 줄었지만, 요새처럼 풍부하게 읽고 보고 생각하는 적도 최근에는 그리 없었다.

덧) 1.7의 버전 이름은 Risoluto이다. 항상 그 버전의 기능적 특징이나 목표를 의미한 이름이 붙어 왔지만, 이번만큼은 텍스트큐브를 통하여 제작자들이 세상에 하고 싶은 말을 담았다. 한국의 민주주의에 축복을.

필자
author image
inureyes 입니다. 하고 싶은 일과 해야 할 일의 균형 맞추기를 하며 즐겁게 살고 있습니다. N/W에서는 구성을, TC에서는 교리 전파? 및 사회자?를 맡고 있습니다. 오전과 오후에는 물리학을, 저녁 시간에는 코딩을 하며 삽니다.
http://forest.nubimaru.com

2008/06/09 04:23 2008/06/09 04:23

예외 처리는 언제나 확실하게!

머리아픈 이야기 2008/05/14 10:06 by daybreaker

정말로 오랜만의 글이로군요. 간만에 재미있는, 그러나 슬픈(...) 삽질기를 하나 들려드릴까 합니다. ㅠ_ㅠ

지금 스웨덴 교환학생의 가장 마지막 관문(?)으로 Musical Communication and Music Technology라는 매우 긴 이름을 가진 과목의 기말 프로젝트를 하는 중입니다. 발표는 오늘(!)이지만 프로젝트 기간 자체가 워낙 짧았던 데다 같이 하는 애들이 지난 주에 시험이 계속 겹치는 등의 이유로 실제 진행은 거의 3일 벼락치기로 하는 중이지요;;;

과목 이름에서 유추할 수 있듯 프로젝트 내용은 상당히 '미디어 아트'적인 내용입니다. 과제로 했던 Lab에서 마지막에 했던 것이 실시간 비디오프로세싱 프로그램인 EyesWeb을 이용하여 사람의 동작을 웹캠으로 찍어 음악을 컨트롤하는 내용이었는데, 그것을 좀더 확장하기로 한 것이지요. 처음엔 막연히 뭘 더 넣을 수 있을까 고민하다가 요즘 한창 유명해진 니코니코조곡 오토마리오 버전 동영상을 보고 실제 몸의 움직임을 추적하여 실제 사람이 연기하는 마리오를 만들면 재밌겠다 싶어서 그쪽으로 방향을 잡았습니다. (그게 어젭니다-_-)

수업 때 소리를 컨트롤하는 프로그램으로 실시간 소리 합성이 가능한 오픈소스 사운드 프로그래밍 툴인 Pure Data를 이용했는데, 이게 사운드 생성은 쉬워도(?) 기존에 녹음된 사운드를 재생하는 것이 난감하더군요.; 그래서 EyesWeb에서 Open Sound Control(이하 OSC)이라는 프로토콜을 이용해 UDP로 쏴주는 메시지들을 직접 받아 소리 재생을 하는 프로그램을 짜면 어떨까 싶었습니다.

자, 서론이 길었습니다.<br/> 제가 요즘 유용하게 이곳저곳 잘 써먹는 Python을 이용하기로 했고, 크로스플랫폼 소리 재생을 위해 pygame 라이브러리를 써서 쉽게 소리 재생을 할 수 있었습니다. 또한 OSC 프로토콜을 파싱해주는 것도 이미 Python으로 구현되어 있었기 때문에 그 라이브러리를 가져다 쓰니 통신도 금방 구현할 수 있었지요. 근데 갑자기 어느 순간부터, EyesWeb에서 계속 쏴주고 있는 UDP 데이터를 못 받고 block되어버리는 겁니다.

EyesWeb 문제인가 싶어서 데이터 전송 속도를 줄여보기도 하고, 파일을 새로 만들어보기도 했고 윈도우 문제인가 싶어서 방화벽에 UDP 포트 추가도 해보고 심지어 패킷스니핑 프로그램까지 썼습니다.;; 또 OSC 라이브러리 문제인가 싶어서 멀티쓰레드로 된 구현을 싱글쓰레드로 바꿔보기도 하고 별의별 짓을 다 해봤지요. 일단 혐의(?)는 소켓 쪽에 문제가 있을 것으로 생각하고 있었습니다.

근데 여기가 스웨덴이다보니, 저보다 Python을 잘 하시는 퍼키군님과 같은 다른 사람들의 도움을 요청하자니 다들 자고 있을 시간이더군요. -_-; 혼자 힘들게 구글링하며 온갖 삽질을 다 하다가, 결국 가장 원시적인 디버깅 방법, 즉 print 찍어보기를 해봤습니다. 그리고 1분만에 좌절했습니다. (........)

원인은 세 가지였습니다.

  • pygame.mixer.get_busy()를 이용해 현재 재생 상태를 알아내는 부분이 있는데, is_busy()라는 잘못된 이름의 함수를 썼습니다. (이건 전적으로 제 잘못입니다..orz) 근데 이 부분이 항상 실행되는 게 아니고, 받아온 모션캡처 데이터에 따라 반랜덤하게 실행되는 곳이었죠.
  • OSC 라이브러리가 멀티쓰레드로 돌며 제가 지정한 핸들러 함수를 호출해주는 방식이었습니다. 따라서 그 안에서 뭔 일이 발생하여 죽더라도 프로그램은 죽지 않았습니다.
  • OSC 라이브러리 내부 코드에서 핸들러를 호출하는 부분을 try-except 구문이 둘러싸고 있었는데, 그 except 구문에 어떤 예외를 받을지 지정이 되어 있지 않았습니다. 즉, 모든 예외를 다 받겠다는 것이었죠.

자, 이쯤에서 무슨 일이 벌어졌을까요?

잘못된 이름의 함수를 썼으니 당연히 예외가 발생하여 프로그램이 죽어야 할 것입니다. 하지만 그 예외를 라이브러리 코드 내에서 먹어버렸고, 불행히도 그 try-except가 소켓 데이터를 읽는 while 루프 바로 바깥이라서 루프가 종료되고 결과적으로 해당 쓰레드는 아무 일 없었다는 듯 '정상 종료'를 했습니다. 하지만 메인 프로그램은 계속 돌고 있었죠. 화면에는 아무것도 나오지 않습니다. 게다가 그 잘못된 함수를 호출하는 순간은 제가 카메라 앞에서 어떤 동작을 하느냐에 따라 달라지니 에러가 랜덤하게 발생하는 것처럼 보였던 겁니다. (위에서, 싱글스레드로 바꿔보기도 했다고 썼는데, 이 경우에도 랜덤 발생으로 보였던 겁니다. 게다가 프로젝트 듀가 급하니 마음도 급했던지 차분하게 생각하지 못했던 것도 문제였죠.)

그래서......인생이란 삽질인 것입니다. OTL

여러분, 저같이 애꿎은 사람 희생시키지 마시고 예외 처리할 땐 어느 예외를 받을 것인지 항상 확실하게 지정하는 습관을 들입시다~ ㅠ_ㅠ

필자
author image
Daybreaker(아침놀)입니다. 현재 KAIST 전산학과에 재학 중이며 전산 외에도 물리, 음악, 건축 등에 관심이 많습니다. Needlworks 내에서는 각종 홈페이지 제작 및 서버 관리 등과 함께 Textcube 개발에 참여하고 있습니다.

홈페이지 : http://daybreaker.info

2008/05/14 10:06 2008/05/14 10:06

시간

따뜻한 이야기 2008/05/03 00:30 by inureyes

저녁에 silvester님과 챗을 했습니다. 그냥 물리학 이야기였습니다만, 답변을 하던 도중에 무선 키보드의 전지가 나가 버렸습니다. (죄송) silvester님의 경우 고등학생이기도 하고, 중간고사 기간이라 바쁠텐데 실험을 하고 계시더군요. 아마 고등학교 프로젝트? 같은 것인듯 했습니다.

박사 2년차부터는 의무적으로 가르칠 필요도, 배울 필요도 없습니다. 학부 학생들에게 무엇인가를 가르치면서 동시에 배우기도 하는 물리학 석사나 박사 1년차와는 조금 다른 점입니다. (물론 박사 2년차까지는 수료를 위해서 수업을 들어야 하긴 합니다.) 이젠 시험 공부를 하다 보면 새로운 지식을 더 집어 넣는 것이 갈수록 시간을 더 요하는 것을 느낍니다. 갈수록 지식의 종류나 분야가 복잡해지고 다양해지기 때문이겠습니다. 원래 이 연차쯤 되면 지식을 더 집어 넣는 것에 치중하기 보다는 새로운 것들을 만들어 내야 합니다만, 아직까지 '모르는 것'들에 대한 미련을 못 버려서 계속 수업을 듣고 있습니다.

그러다보면 여러 생각을 하게 됩니다. 가끔 하는 생각 중 하나가 '딱 한달만 자유 시간이 있었으면 좋겠다'는 생각입니다. 한 달만 '코딩만 해도 된다면' 뭘 만들 수 있을까? 혼자서 생각하고서는 노트에 막 적어 놓고 좋아합니다. 하지만 시간이 충분하지 않지요. 그래서 보통 노트 안의 것들은 그 안에 남아서 잠자게 되거나, 아니면 긴 시간을 두고 하나씩 세상에 나옵니다. 텍스트큐브에 넣고 싶은 희한한 기능들도 노트에 여럿 들어있습니다. 이건 꼭 해야겠다 싶은 내용은 티켓에 등록해놓고, 나머지는 공책에서 잠자거나 메일로 날아갑니다.

그런데 정말 한 달이 생기면 원없이 텍스트큐브 코딩이나 플러그인 만들기를 할까요?한 달의 시간이 있다면 아마 한 달을 몽땅 써야 할 수 있는 일이 따로 보일지도 모릅니다. 게다가 노트를 채우는 희한한 아이디어들은 압박이 없으면 나오지 않는 종류의 것인지도 모르지요.

'비어있는 한 달'을 꿈꾸면서 언젠가는 그런 시간이 생기는 날이 오겠구나 합니다. 그런 기대와 상상을 하기 때문에 그 날을 위해? 또 물리학 연구를 하게 되고, 공부를 하다가 머리가 터질 것 같으면 텍스트큐브 코드로 도망을 갑니다. 어쩌면 그 두가지는 일과 취미처럼 상보적 관계를 이루고 엉켜 있는 것인지도 모릅니다. 제리가 없으면 톰이 참 심심한 것 같이 그렇게 말이지요. 시간은 흘러가고, 바쁨의 정도도 그에 비례하여 커지지만 그래도 용케 방향을 잡고 두가지를 모두 해 내게 만드는 것이 무엇인지는 조금 더 생각을 해 보아야 답을 알 수 있을 문제 같습니다.

필자
author image
inureyes 입니다. 하고 싶은 일과 해야 할 일의 균형 맞추기를 하며 즐겁게 살고 있습니다. N/W에서는 구성을, TC에서는 교리 전파? 및 사회자?를 맡고 있습니다. 오전과 오후에는 물리학을, 저녁 시간에는 코딩을 하며 삽니다.
http://forest.nubimaru.com

2008/05/03 00:30 2008/05/03 00:30

미묘한 10픽셀

즐거운 이야기 2008/03/06 01:44 by inureyes

저녁 기숙사 프로그램과 클래식 음악 그룹 활동을 끝내고 나서, 은진이 지적하던 부분 중에서 유일하게 남은 두번째 부분을 수정했다. (그라피티에님이 불러주는대로 코드를 썼더니 되더라.)

줄간격은 맞췄고, 마지막으로 메뉴 전체가 오른쪽으로 10픽셀이 밀리는 문제가 남아 있었다.


me: 미묘한 그 10픽셀을 ㅠ_ㅠ

graphittie:

me: 아, 설마 0 10px 0 10px 때문에 밀리고 있는걸까 하는 생각이.. 맞네요 해결 완료 ..

graphittie: 헤더에 뭔가 있군요 흐흐흐흐

me: 그러고보니 미묘하게 10픽셀 이라고 하니 어째서 럭키스타가 생각이 났을까......

graphittie: ;;;;;;;
이 대화는........................
JH님과 우리 둘만 이해할 수 있을 듯한...
ㅡㅡ;;
됐군요
제대로 나오네요
포럼에서 헤더 쪽에 문제가 있는데 이동하시는 사이에 트래킹 해보겠습니다

me: 옙 그럼~ 그리고 아마 토끼군도 이해할겁니다 이대화 -_-

graphittie: 헉;;

필자
author image
inureyes 입니다. 하고 싶은 일과 해야 할 일의 균형 맞추기를 하며 즐겁게 살고 있습니다. N/W에서는 구성을, TC에서는 교리 전파? 및 사회자?를 맡고 있습니다. 오전과 오후에는 물리학을, 저녁 시간에는 코딩을 하며 삽니다.
http://forest.nubimaru.com

2008/03/06 01:44 2008/03/06 01:44

스웨덴어 배우기

즐거운 이야기 2008/03/01 23:03 by daybreaker

요즘 이 블로그에 글이 뜸하군요.;

전에도 말씀드렸다시피 저는 현재 스웨덴에서 KTH(Kungliga Tekniska Högskolan; Royal Institute of Technology) 교환학생 생활을 하고 있습니다.

원래는 스웨덴어 강의를 신청할 예정이었으나 몇 가지 혼선이 빚어지는 바람에 결국 못 듣게 되었네요. 다행히 인터넷으로 찾아보니 한글로 스웨덴어 소개를 해놓은 곳들이 몇 군데 있어서 기본적인 문법 공부도 하고 이 언어가 대체 어떻게 생겨먹은 언어인지는 감을 잡고 있습니다.

아무튼, 이 포스팅에서는 스웨덴에 와서 살면서 별도의 교육 없이 자연적으로 습득하게 되는 생활 필수 용어(?)들을 재미삼아 정리해볼까 합니다.

스웨덴어는 영어의 알파벳 외에 3가지의 모음 철자를 더 사용합니다. ä는 한글의 'ㅐ'와 거의 비슷하고, ö는 'ㅓ'와 비슷합니다. å의 경우 'ㅗ'와 'ㅓ'의 중간쯤 되는 발음을 가지는 것 같(?)습니다.;

hej
영어의 'hey'와 발음은 같지만 여기선 hi, hello의 뜻으로 사용됩니다. 보통 재빠르게 두 번 반복합니다. 약간 목소리를 높인다는 느낌으로 '헤이헤이'..
hejdår
good bye에 해당하는 인사말. 하지만 hej로만 사용하기도 합니다.
tack
thank의 뜻. '탁' 혹은 '탁키'와 같은 식으로 thank you를 표현합니다.
förlåt
sorry의 뜻. I'm sorry를 이 단어로 표현합니다.
tågtrain, 기차를 가리키는 용도로 쓰입니다. commuter train(통근 열차)는 pendeltåg라고 부릅니다.
tunnelbana
(T-bana)
지하철. 이건 모를래야 모를 수가 없는 단어. metro, subway라고 해도 사람들은 알아듣습니다. 영국식 영어인 underground는 잘 안 쓰더군요.
buss (복수형은 bussar)
짐작하다시피 bus의 뜻.
mot
toward. '~로'의 뜻.
till
until, to의 뜻을 모두 가집니다.
från
from과 같습니다.
eller
or. 또는.
och
and. 그리고. ('오흐'라고 읽을 수도 있지만 빨리 말할 땐 그냥 '오'라고 말합니다.)
maten
음식. food.
müsli (musli)
원래 ü는 스웨덴어 알파벳은 아닌데 쓰이는 경우가 있습니다. (독일어에는 있죠.) 시리얼류의 음식을 나타낼 때 쓰입니다.
dryck
음료수. drink.
mjölk
milk. '미여ㄹ크'를 아주 빨리 발음하면 비슷...할라나?;;;
bäst före
best before. 음식물 유통기한을 나타낼 때 씁니다.
är
영어의 be 동사에 해당합니다. 변화형은 아직 잘 모르겠네요;;
kan
영어의 can 조동사.
har
have.
att
영어의 at과 비슷하게 쓰이는 듯.
herrar
남자. (화장실 갈 때 꼭 알아두셔야 합니다.. 가끔 그림 없이 글자로만 써둔 곳이 종종..-_-)
dammer
여자.
toalett
toilet. '토알렛뜨' 비슷하게 발음합니다.
ej / nej
no, not의 뜻.
utgång
exit. 출구를 나타내는 표지판에 쓰입니다.
upp
up. 영어와 비슷.
nedd
down.
skolan
school.
bibliotek(et)
library. 도서관을 가리킬 때 씁니다.
huset
house. 'blahblah huset'이라는 형식으로 어떤 용도의 건물인지 나타낼 때 주로 쓰입니다. 시청은 stadshuset이라고 씁니다.
kyrka
church. 성당·교회들을 뜻합니다.
röd
red. 빨강. (색깔 단어들은 학교 컴퓨터실 이름 덕분에 알게 되었습니다..-_-)
grön
green. 초록.
brun
brown. 갈색.
jag
I. 나. g는 사실상 묵음입니다.
du
you. 당신. 목적격은 dig.
vad
what
hur
how
~vägen
~ street. 주소를 나타낼 때 거리 단위로 사용하므로 많이 볼 수 있습니다.
dubbel
double.
bäd
bed.
bra
good.
dag
day.
en
영어에서 1개라는 수량과 particular하지 않은 것(?)을 나타내는 'a'와 같음.
banken
bank. 은행. SEB, Handelsbanken, Nordea 3가지가 주요 은행인 듯합니다.
kort(et)
card. 각종 신분증이나 카드 등을 가리킬 때 사용됩니다.
konto
account. 은행 계좌, 가입 계정 등을 뜻합니다.
kund
guest 정도의 뜻인듯.
nästa
next. 지하철 등에서 '다음 역은 xxx입니다'를 간단히 'Nästa xxx'라고 알려줍니다.
karta
map. 지도. 영어에서 cartographer라는 말이 있는데 저 'cart-'가 라틴어 어원이지요.

후, 일단 생각나는 대로 적어봤습니다. 스웨덴어가 영어에 비해 혀를 굴리는 r 발음(이탈리아어가 이게 가장 강한 듯합니다..)이나 모음의 높낮이 억양이 상당히 강합니다. 몇몇 자음도 된소리의 성향을 더 띕니다. k도 'ㄲ'와 비슷한 느낌으로 들릴 때가 종종 있습니다. 스웨덴어로 put에 해당하는 동사가 trycker인데 '트릭께르'와 같이 발음하더군요. (여기서 'ㄹ'은 모두 혀를 살짝 굴려주어야..-_-)

같은 라틴어권이라서 영어, 프랑스어, 독일어 등과 비슷한 어휘를 많이 가지고 있지만 같은 알파벳이더라도 각 언어마다 발음이 다르기 때문에 같은 어원을 가지고 철자가 약간씩 바뀌어 표현되는 경우가 많습니다. 예를 들면 영어의 project는 스웨덴어로 projekt라고 쓰여지는 식이죠. 영어와 독일어를 섞어준 것과 약간 비슷하다고 볼 수 있겠습니다. 영어의 경우 사실 단어에 따라 같은 철자라도 발음이 달라지는 경우(예외 케이스)가 상당히 많은데, 유럽 언어들을 잘 살펴보면 철자 그대로 발음된다라는 느낌이 훨씬 강합니다. 우리가 영어에 워낙 익숙해져서 잘 모를 뿐이죠.

라틴어와 유럽어들의 관계는 사실 중국어와 동아시아어들의 관계와 비슷합니다. 라틴어 어휘들이 유럽어들에 흡수되어 지대한 영향을 끼쳤듯, 한국어·일본어에도 중국어 한자 어휘들이 많이 스며들어있고 또한 각 언어의 발음에 맞게 변화되었죠. 이런 사실들을 관찰하는 것도 나름 재미있습니다.;

중국 친구들이 좀 생겨서, 같은 한자 단어에 대한 중국어와 한국어의 발음 차이라든가, 한자 단위로 언어를 사용하는 중국애들이 어떻게 단어를 사용하는지와 같은 것도 상당히 흥미롭습니다. 기회가 되면 중국어를 제대로 공부해보고 싶군요.

아무튼 이상 뜬금없는 스웨덴어 강좌(?)였습니다.;;;

ps. 영국식 영어와 미국식 영어의 차이점 하나. 감기 걸렸을 때 I'm sick이라고 하면 미국식이고, I'm ill이라고 하면 영국식이라는군요. 영국식 영어에서 sick은 좀더 'mental'과 관련된 의미가 강하고, 미국에서는 그냥 다 sick으로 부르는 경향이 있다고 합니다.

ps2. 여기 와서 알게 된 한국인 입양아 친구 중에 스웨덴어는 잘 하는데 영어를 잘 못하는 친구가 하나 있습니다. 그 친구가 영어를 쓰는 걸 보면 '콩글리시'처럼 '스웽글리시(?)'가 되는데 그 과정에서 스웨덴어와 영어의 차이점을 거꾸로 유추하는 것도 재밌군요.;;;
필자
author image
Daybreaker(아침놀)입니다. 현재 KAIST 전산학과에 재학 중이며 전산 외에도 물리, 음악, 건축 등에 관심이 많습니다. Needlworks 내에서는 각종 홈페이지 제작 및 서버 관리 등과 함께 Textcube 개발에 참여하고 있습니다.

홈페이지 : http://daybreaker.info

2008/03/01 23:03 2008/03/01 23:03

연휴 휴유증 +

머리아픈 이야기 2008/02/11 11:48 by LonnieNa

지난 화요일은 기쁨의 시간이었지요.
설날의 명절에 가족들과 함께 한다는 생각에서도 그랬지만, 그보다 매일 반복되는 출근 퇴근의 지겨움 속에서 휴가라 느낄만큼의 긴 연휴가 기다리고 있다는 생각에서 였습니다.
어떻게 지나갔는지 모르게 빠르게 지나가버렸네요.
많이 먹어서 배탈이 난 사람들도 있었을듯 싶은데요,
사실 새벽까지 운전하고 밀리는 고속도로를 내려가서는 첫 연휴의 명절 첫날은 잠에서 헤어나올질 못했답니다.

그리곤 틈을 타, 서로 밀릴거라 눈치만 보고 있던 명절 다음날인 금요일 오전 재빠르게 다시 올라왔지요.
다행이 밀리는 길 없이 올라올 수 있었습니다.
뉴스를 보니 토요일 일요일에 오히려 더 밀렸다고 하더라구요.
사람들의 심리란, 지금쯤 밀리지 않겠지 라고 모두들 같은 생각에 금요일엔 출발하지 않고 미루고 미뤄 토요일에 다들 출발했던 모양입니다.

그렇게 주말은 집에서 보내고 있는데 어젯밤엔 안타까운 소식이 들리더라구요.
다들 들어서 아시겠지만, 화재가 있었습니다. 다행이 명판은 건진듯 싶은데 1호를 태워먹으면서 서로서로 무슨 그리들 변명이 많은것인지 오늘 아침엔 화가 치밀어 오를 정도였습니다.
미리 미리 이런일이 없게 했으면 좋았겠지만, 일이 터지고 나니 뒤물러서서 한다는 말이..
서로 인정할건 인정하고 잘못했으면 용서를 빌고 앞으로는 다시는 그런일이 없도록 하자는 의사를 표현해야하는데 이래서 이렇게 된것이니 사실상 내가 잘못한건 없다 라고 외치는 그 사람들이 더 원망스럽기만 합니다.

긴 연휴를 마치고 월요일에 안그래도 월요병에 난리인데 연휴까지 겹쳐서 몽롱하게 축 쳐저 있는데, 이런소식까지..
어찌나 아침엔 나오기 싫던지 출근하는 차 안에선 다시금 일탈하고 싶은 충동이 생기더라구요.
이를 어째, 이젠 여름 휴가가 있기전까진 별다는 연휴없이 매일매일 일요일만을 손꼽아 기다려야한다는 안타까움만 앞서네요.

이렇게 오늘도 반나절 지나갔다~ 으히
근데 오후는 더더욱 길게만 느껴져~

필자
author image
LonnieNa 입니다. Needlworks에서 Painter에 있습니다.
http://blog.2pink.net
Painter로,
여러분과 나의 세상을 바라보는 시선을 달리합니다.

2008/02/11 11:48 2008/02/11 11:48

행복

따뜻한 이야기 2008/01/29 23:50 by gofeel

샤워를 마치고 나와

따뜻한 핫초코를 마시며

흘러 나오는 음악을 들으며

이불 속에 누워







MBP에

새로만들 플러그인의 기능들을 정리해서 메모하고

참고할[footnote]라이브러리와 코드를 가져다 쓸(-.-)[/footnote] 프로그램을 설치하고

코드를 읽으면서 뒹굴거리는 것

-.-;

----

블로그에 너무 오래간만에 글을 적네요. 다들 잘 지내시죠..-.-);

제 새해 목표는 10 플러그인 100 티켓 1000 커밋입니다 (s-_-)s

필자
author image
gofeel입니다.
Needlworks에서는 사람들과 만나며 많은 이야기를 듣고 이걸 Creator에게 일거리로 만들어 넘기는 Balancer 역할을 하고 있습니다. 못 넘기면 결자해지도 합니다.
재미난 사람들과의 재미있는 수다는 언제나 환영입니다. 부담없이 접근해 주세요. :)
http://bringbring.com

2008/01/29 23:50 2008/01/29 23:50

2008년 새해에는 다들 무엇을 하시나요?

따뜻한 이야기 2008/01/19 19:20 by daybreaker

어째 제가 마지막으로 글 쓰고 나서 다들 바쁘신지 아무도 글을 안 올리시는군요(...).

저는 현재 스웨덴 스톡홀름에 교환학생으로 와 있습니다. 온지 며칠 되었는데 새로운 사람들을 만나고 또 그 속에서 어딜 가나 사람 사는 건 똑같다 뭐 이런 것도 느껴보고, 문화적인 차이도 느껴보고(어떤 Love 파티 공지사항에 콘돔 가져오라는 걸 아주 당연하게 붙여놓는다거나-_-).. 단순히 여행이 아니라 실제로 6개월 동안 살아가기 위해 생필품 같은 것도 사러 다녀보고, 은행에도 가보고 이러니까 느낌이 많이 다르네요.

수업은 다음 주부터 시작이라서 이번 주는 주로 학생회에서 주최하는 이런저런 교환학생들을 위한 행사에 참가하면서 사람들도 사귀고 살아갈 기반 닦기(핸드폰을 만든다든가)에 집중하고 있습니다. 시간 상으로 여유는 많은데, 이곳이 밤이 길어서인지 잠도 같이 길어져서(?) 막상 활동하는 시간은 얼마 안 되네요;; (해가 오전 8시 반에 떠서 오후 3시 반이면 집니다. 4시만 되면 완전 깜깜... 오후 9시 정도 되면 왠지 졸립기 시작합니다..-_-)

아무튼, 전 교환학생을 마치고 6월 중순 쯤 한국에 돌아갈 예정이고, 그 후엔 인턴을 해볼 생각입니다. 뭐랄까, 3년 동안 학교에서 너무 시달리며 살았더니 정신적인 휴양 기간을 가진다는 게 맞겠군요. 교환학생을 온 것도 공부 자체가 목적이라기보다는 새로운 사람들을 만나고 다양한 문화적 환경을 접해보고, 또 그동안 오래 공부하지 않아서 많이 까먹은 영어 실력도 다시 늘려보고 이러면서 refresh를 하기 위한 것입니다. 과제와 시험으로 사람을 옥죄는 듯한 생활에서 잠시나마 해방되고 싶달까요. (물론 여기서도 공부가 호락호락한 건 아니겠지만 말입니다)

12월 30일까지 마지막 프로젝트를 하느라 달리고, 1월 1일 아침에는 새해 선물로 멋지게 성적이 떠주시고.. (...) 이거 사람 사는 생활이 아니지 않습니까.. ㅠㅠ;;; (저기 신정규님도 박사자격 시험이 1월 7일이 듀라서 마찬가지로 고생을 많이 하셨더군요.)

아무튼 글을 쓴 목적은 이겁니다. 여러분은 2008년에 어떤 일들을 계획하고 계시나요? :)

필자
author image
Daybreaker(아침놀)입니다. 현재 KAIST 전산학과에 재학 중이며 전산 외에도 물리, 음악, 건축 등에 관심이 많습니다. Needlworks 내에서는 각종 홈페이지 제작 및 서버 관리 등과 함께 Textcube 개발에 참여하고 있습니다.

홈페이지 : http://daybreaker.info

2008/01/19 19:20 2008/01/19 19:20

긴장과 이완

따뜻한 이야기 2007/12/28 03:38 by daybreaker

정말 폭풍과도 같은 전공 3학년 시기를 끝내고 나니 홀가분한 기분입니다. (사실 아직 프로젝트가 하나 남아 있습니다..ㅜㅜ)

대학 들어오고 나서 매 학기마다 '아, 이번 학기가 정말 제일 힘들었어'라는 얘기를 6학기째 해오고 있군요; 그래도 이번 가을학기는 지난 봄학기보다는 조금 덜(?) 힘들었던 것 같습니다. 봄학기 때 들었던 소프트웨어 공학 개론이라는 원래는 꽤 널널한 편에 속했던 과목이 갑자기 교수님이 바뀌고 대학원 프로젝트를 학부로 끌고내려오면서 엄청나게 빡쎄지는 바람에, 매일 10시간씩 조모임하고 한 자리에 앉아서 해지는 거 보고 해뜨는 거 보고 하기를 수십번... 다른 과목들은 그냥 다 안드로메다로 가버린 슬픈 기억이 있었죠. (응용미분방정식이라는 과목에서 첫 한 달 동안 쪽지시험 만점을 받다가 나중에는 공부할 시간이 없어서 백지를 냈을 정도니까... 게다가 그나마 열심히 했던 소프트웨어공학개론마저 프로젝트 점수를 사실상 평준화시키고 얼마 비중이 안 되는 시험으로 점수가 다 갈렸죠. 결국 자체 기준으로 재수강 2개 만들고 A를 하나도 못 받은 안습의 학기가 되었습니다.. orz―원래 학기 시작하기 전에는 올A가 목표였는데 말이죠 -_-)

그러고나서는 여름학기 때 운동 + textcube.org 제작 + 동아리 System Programming 세미나 조교를 한답시고 이것저것 펼쳐놓다가 별로 쉬지도 못하고 계속 말리고, 가을학기에는 OS 프로젝트 한답시고 계속 바빴습니다. (그래도 OS 프로젝트는 2명이서 하는 거였고 팀메가 룸메였기 때문에 시간 조절이 편해서 체감 로드는 소공개에 비해서 낮았죠.)

하여간 이래저래 지친 상태에서 프로젝트 듀와 함께 이런저런 일이 겹칠 때마다 일종의 패닉 상태 같은 게 찾아오더군요. 봄학기때는 그냥 멋모르고(?) 살았던 것 같은데, 가을학기 때는 OS 2번, 3번 프로젝트 끝날 때 한 번씩 고비가 왔었습니다. 굉장히 할 일은 많은데, 아무것도 할 의욕이 나지 않고 괜히 심심하고 말리고 싶고 뭐 그런 상태 말이죠. 2번 프로젝트 끝나자마자 동아리에서 야심차게 준비한 Workshop 발표도 당일 새벽 1시부터 준비를 시작하여 밤 꼴딱 새고 유체이탈 상태로 발표하고 게다가 그날 밤에 동아리 홈커밍데이랍시고 선배들과 새벽 5시까지 술마시고 달렸으니...-_-;;

아, 정말 어떻게 살아남았나 싶군요. OS 2번 프로젝트와 워크샵이 끝나고 한동안 휴식 기간을 가졌습니다. 약 2주 정도 정말 그때그때 해야 하는 숙제 말고는 전혀 공부하지 않았죠. (그래도 그런 숙제들을 처리하는 데만도 2~3일씩은 꼬박 걸립니다.) 그래서 그나마 OS 3번 프로젝트와 겹친 기말고사를 버텨낼 수 있었지 않나 싶습니다. 마지막 수리물리 오픈북 오픈타임 14시간짜리 시험이 아주 제대로 피날레를 장식해줬다는...-_-; (그런 시험은 어차피 컨닝 같은 게 의미가 없기 때문에 정말 끈기 싸움이죠.)

2학년 때까지만 해도 어떻게 조금만 노력하면 거의 퍼펙트한 결과를 얻을 수 있었지만, 3학년부터는 80~90%까지는 금방 되어도 99%, 100%를 달성한다는 게 몇 배의 노력이 필요해졌습니다. 미리 선행학습하고 뭐 이런 거 다 필요 없고 정말 각자의 능력과 노력이 드러나게 되는 것 같습니다. 그리고 많은 선배들, 부모님이 '인생은 장기 레이스이다'라고 말했던 것을 느끼게 됩니다. 한 순간 달리고 끝내는 것이 아니고 계속 해야 할 일들이 물밀듯 밀려오기 때문에 우선순위를 정해서 어떤 것은 완벽하게 성에 차지 않더라도 적당 선에서 포기하고 더 중요한 것에 집중할 줄 알아야 하는 것 같습니다. (뭐 능력이 좋아서 모든 걸 완벽하게 할 수 있다면 또 모르겠지만...ㅠㅠ)

또 하나 느꼈던 건, 오토마타 과목을 듣는데 고등학교 동기 친구하고 정말 똑같이 숙제하고 똑같이 시험공부하고 했음에도 시험 결과를 보면 완전 천지 차이가 날 수도 있다는 겁니다.. ㅠ_ㅠ; 시험 문제가 주로 증명 스타일로 나오는데(그렇다고 책에 나온 증명을 달달 외운다고 풀 수 있는 문제는 안 나옵니다. 시간 제한은 있지만 오픈북이거든요. -_-), 나중에 그 친구와 함께 얘기해보니 문제를 푸는 스타일이 저랑 완전히 다르더군요.

저는 주로 배운 지식을 체계적으로 정리해서 나만의 언어로 변환·이해하여 그걸 가지고 뭔가 해보는 스타일인 반면, 그 친구는 일단 문제를 어떻게 풀어야겠다는 아이디어가 생각나면 그걸 맞게 유도하기 위해서 레퍼런스를 뒤지는 스타일입니다. 평상시에 숙제를 하거나 이럴 땐 크게 차이나지 않지만, 어려운 증명 문제를 풀어야 할 경우는 친구의 스타일이 더 맞는 것 같습니다. 저는 배우지 않았다면 증명 쪽으로는 일단 아이디어가 생각나지 않으니까 시작을 못합니다;; -_-; 친구한테 어떻게 풀었냐고 물어보면 중간에 감으로 건너뛰고 '그냥 이렇게 하면 될 것 같아서'라는 게 대부분입니다. 저는 그 풀이를 보고 빠진 부분을 세세하게 채워넣어주는 편이고, 친구는 거꾸로 그걸 보고 '아하~' 이러죠.;; (하지만 오픈북 증명 스타일의 시험이라면 친구처럼 되는 것이 아이디어만으로 일단 문제 답을 구해놓고 세세한 부분은 책을 보며 채워나갈 수 있으니 더 좋겠죠.)

대신에 제가 유리한 경우는 바로 OS(....)와 같은 큰 규모의 체계적인 프로그램을 만들어야 하는 경우입니다. 번뜩이는(?) 아이디어로 일단 코딩은 빨리빨리 진행시킬 수 있지만, 저는 시스템이 어떻게 이루어져 있는지 먼저 파악하고 거기에서 하나하나 쌓아가기 때문에 전체 진행속도가 아주 빠르지는 않지만 꾸준하게 계속 나아갈 수 있고 중간중간 리팩토링·코드 정리를 자주 하기 때문에 다른 사람이 코드를 보기 편해하는 편입니다. 저는 OS처럼 한 줄 한 줄 고민하며 짜는 경우, 제가 어디를 어떻게 고쳐서 어떤 문제가 왜 고쳐졌는지 거의 다 파악을 하면서 진행하지만, 그 친구의 경우는 진행이 굉장히 빨라서 물어보니 일단 어쩌다보니까-_- 고쳐졌는데 왜 고쳐졌는지는 모르는 경우가 많았습니다.

어쨌든 전공이 빡세지면서 그러한 개개인의 특징이 더욱 극명하게 드러나고 대비되는 것 같습니다. 얼마 전에 지도교수님과 면담했을 때 교수님이 절 보고 '실무적 개발 능력은 학부생 수준에서는 이미 충분하고도 남는(?) 수준에 도달해 있지만 이론적 기초를 좀더 닦으면 좋겠다'고 하신 것도 비슷한 맥락이겠지요. 사실 그래서 수리물리를 듣고 수학적 intuition을 키우고자 한 것이긴 합니다만... (.....)

죽죽 생각나는 대로 쓰다보니 제목하고는 먼 글이 되어버렸군요;; 아무튼 과제하다가 더이상 말리지 않기 위해 이만 접습니다. 결론은 한 학기 동안의 푸념. (...)

ps. 이 글을 쓰기 위해 기나긴 여정을 거쳤습니다. (...) 바로 이 글과 동일한 버그 때문인 것 같군요. OTL;;; 그야말로 딱 걸렸...

필자
author image
Daybreaker(아침놀)입니다. 현재 KAIST 전산학과에 재학 중이며 전산 외에도 물리, 음악, 건축 등에 관심이 많습니다. Needlworks 내에서는 각종 홈페이지 제작 및 서버 관리 등과 함께 Textcube 개발에 참여하고 있습니다.

홈페이지 : http://daybreaker.info

2007/12/28 03:38 2007/12/28 03:38

아이디어

머리아픈 이야기 2007/12/25 23:34 by inureyes

가끔 엄청나게 오래된 일을 한참을 돌아와서 해결하게 된다.

텍스트큐브가 태터툴즈였던 시절, 작년 중순즈음엔가 fastCGI 환경 지원에 대한 요청이 들어온 적이 있었다. 당시에는 서버에 fastCGI 환경을 쉽게 구축하지 못하였고, 그래서 자연히 뒤로 밀리게 되었다. 이후 조금씩 workaround들을 통하여 구현을 해 놓았지만 역시 제대로 돌아가지는 못하고 있었다.

작년 말에는 '외국계 호스팅에서 태터툴즈가 잘 안돌아간다' 는 문의를 받았다. 직접 서버의 권한을 받아 들어가 본 결과 서버측에서 mod_rewrite에 대하여 선처리를 미리 해 둔 상태였다. 이 경우를 처리하기 위해서는 rewrite 모듈[footnote]아파치 웹서버 등에 들어있는, 주소를 처리해서 미리 정해놓은 인터페이스로 연결해주는 모듈이다. 텍스트큐브의 글들의 주소가 괴상한 숫자등이 아니라 읽을 수 있는 문자가 되도록 도와주는 모듈.[/footnote] 에 대한 의존도를 확 줄여야 했다. 이런 경우에 주로 사용하는 방법은 rewrite 모듈의 모든 결과를 하나의 파일로 보내고, 그 파일이 요청을 모두 해석해서 처리하는 방식이다. 그러나 당시 간단하게 테스트 해 본 결과 그림파일이나 음악파일 등등등 까지도 모두 php 엔진을 거쳐서 내보내기 때문에 서버에 무리가 있었다. 소스도 엄청나게 고쳐야 했다. 기존의 방식을 고수하기가 힘들어 보였다. 소스를 대대적으로 개수하기에는 언제나 시점의 무리가 있어서 계속 그 일은 뒤로뒤로 밀려왔다.

그러면서 1년이 넘는 시간이 지났고, 잘은 모르지만 머릿속 어딘가에서 그 생각이 계속 돌아가고 있었나보다. rewrite 모듈이 없는 상황에서 돌아가는 예외 처리를 추가한다거나, fastCGI를 지원하는 예외 처리를 추가한다거나 하는 식으로 대응해 가다가 사흘쯤 전 샤워하다가 아이디어가 떠올랐다. define으로 상수를 정의하는데, 그 상수를 두 번 정의할 경우 어느쪽이 무시되는가? 에 대한 생각이었다. 실험해 보니 처음 define만이 유지되었다. 그 때부터는 문제가 연속적으로 죽 풀렸다.

텍스트큐브는 /lib/suri.php 를 통하여 현재 주소 체계를 해석하고, 어떤 부분이 주소이고 어떤 부분이 파라미터인지 파악해 낸다. 그리고 각 인터페이스 (blog 하위의 디렉토리들은 사실 인터페이스라고 부르는 것이 더 적당하다.) 에서 필요한 라이브러리를 통째로 불러낸다. 과거에는 불가능했지만, 두달 사이에 이루어졌던 컴포넌트 및 라이브러리의 독립화로 인하여 라이브러리를 불러오는 시점의 의존성이 사라졌다. 따라서 suri가 실제로 동작하기 이전이라면 주소 처리 부분을 기존의 suri가 이해하기 좋게 만들어서 suri에 코드 한 줄을 추가하여 호환성을 유지할 수도 있을 것이다. 또한 각 인터페이스에서는 모든 포함관계의 기준이 되는 ROOT를 미리 정의하는데, 인터페이스 파일이 불려지기 이전에 ROOT를 일률적으로 정의해 버리면 이후의 모든 파일 포함관계들도 전부 수정 없이 이식할 수 있지 않을까.

그래서 크리스마스 이브 전날부터 크리스마스 기간 내내 그 부분을 구현하였다. 일단 (못 고치면 블로그 못쓴다-는 자신에게로의 압박을 위해서) 개인 서버의 아파치 웹서버를 fastCGI 기반으로 변경하였다. rewrite 모듈이 보내주는 값을 해석하는 부분은 최소한의 크기로, 또한 앞에서 처리해야 유리한 루틴은 최대한 앞에서 처리하는 식으로 작성하였다. 덕분에 기존 코드는 거의 손을 대지 않은채로, fastCGI나 다양한 rewrite module들에 대한 대응이 가능해졌다.

말이 길었다. 결론은 간단하다. 아이디어는 하늘에서 떨어지지는 않는다. 그렇다고 아이디어를 낼려고 머리 싸매고 있다고 튀어 나오는 것도 아니다. 문제를 완벽히 이해할 때 까지 생각하고 곱씹는 과정에서 문제의 한계라고 스스로 생각하고 있는 무엇인가를 넘기위한 뇌의 싸이코 댄스가 시작된다. 그 댄스 중 일부가 실제로 먹히면 그 댄스에 아이디어라는 이름이 붙게 된다.

아이디어는 사고의 형태에 붙는 명칭이 아니라 이미 일어난 사고에 붙이는 자격이다.

필자
author image
inureyes 입니다. 하고 싶은 일과 해야 할 일의 균형 맞추기를 하며 즐겁게 살고 있습니다. N/W에서는 구성을, TC에서는 교리 전파? 및 사회자?를 맡고 있습니다. 오전과 오후에는 물리학을, 저녁 시간에는 코딩을 하며 삽니다.
http://forest.nubimaru.com

2007/12/25 23:34 2007/12/25 23:34