'2009/09'에 해당되는 글 9

  1. 2009/09/28 우리 아이가 달라졌어요 (2)
  2. 2009/09/18 원메이크 레이싱을 계속 하고 있는 이유 (4)
  3. 2009/09/18 Recaro Sportster CS (2)
  4. 2009/09/13 포르테 쿱 출고 (7)
  5. 2009/09/11 lock-free 와 최적화 (9)
  6. 2009/09/09 volatile 과 memory barrier (2)
  7. 2009/09/08 나 왜 기혼자로 되어있지...? (10)
  8. 2009/09/07 TDD (4)
  9. 2009/09/06 난생 처음 팁을 받았다 (13)
사용자 삽입 이미지

사놓고 계속 모셔두던 버킷시트를 집 근처 샵에서 8만원 주고 드디어 설치했다. 낮은 포시션을 좋아하기 때문에 일부로 스페이서도 빼고 장착했다.

버킷시트 하나 바꾸었을 뿐인데 차가 이전보다 가볍고 날렵해진 느낌을 받았다. 포지션이 낮아져서 그런건지 아니면 시트가 전해주는 정보량이 많아진건지는 잘 모르겠다. 여튼 순정 시트보다 맘에 든다.

시트는 내 몸에 완전히 꼭 맞는다. 아마 살이 조금만 찐 사람이라면 이게 꽤나 답답할것 같은 느낌이 든다. (그러고 보니 이전 주인도 몸이 큰편이었는데 여기 앉으려면 좀 힘들었을것 같다.)

3점식 안전벨트를 위한 구멍이 플라스틱 처리되어 있는데 이게 날개뼈에 부닥쳐서 아픈편이다. 레이싱 슈트 입으면 괜찮아 질것 같기도 하다. 그러고 보면 이전 스파르코 시트는 안그랬던것 같은데 뭐가 다른지 한번 비교해 봐야겠다.
2009/09/28 01:26 2009/09/28 01:26
사실 내가 스피드를 즐긴다거나, 레이싱이 엄청나게 재밌다거나.. 뭐 그런 이유는 아니다. -.-

일단 그냥 재밌어 보여서 나갔는데, 해보니 나름대로 적당히 재미있었다.

물론 사고나 기타등등에 들어가는 비용만큼 재밌는건 아니다.

사실 사고만 안나면 계속 할만한 괜찮은 취미다. 사고 안낼 자신 있으면 적극 권장한다. (사실 욕심 안내면 사고 안남)

그런데 지금 계속 하고 있는 가장 큰 이유는....

이게 계속 해봐도 도저히 생각만큼 늘지가 않기 때문. -_-

현재 평균 아래다. 그러다 보니 오기가 생긴다, -_-+++

지난번 내구레이스에서는 써킷 첨 타본 여성 드라이버가 클릭으로 내 쎄라토 베스트렙을 넘었다는 소식도 들리고... -_-;;;;;

어떻게든 포디움 설때까지는 좀 해봐야겠다.

혼자서 연습해서 늘 수 있는 종류라면 좋겠는데,

레이싱이란게 해보니깐 축구보다 더 심각한 팀 스포츠다.

그러고 보니 좀 막막하구만. -_-
2009/09/18 02:59 2009/09/18 02:59

Recaro Sportster CS

취미/차 2009/09/18 02:52
사용자 삽입 이미지


폴쿱 구매 기념으로 선물 받은 레카로 버킷 시트.

중고 구매하러 나갔는데 판매자가 무려 아우디 R8 을 몰고 나와서

"이거 스바루에 쓰던건데..." 라면서 시트를 건넸다. ㅎㄷㄷㄷ

언제 장착하지.. 이번 주말은 김천 내려가야 되는데.. 흠냐

남게 된 순정 시트는 떼어내서 로지텍 G25 랑 맞춰 꾸며 볼까 싶다.
2009/09/18 02:52 2009/09/18 02:52

포르테 쿱 출고

취미/차 2009/09/13 02:57
사용자 삽입 이미지

어제 R튠이 끝났다고 해서 오늘 윰하고 손잡고 용인 KMSA 에 들러서 가져왔다. 간단히 몰아본 소감을 적어 보자면...

1. 무게는 쎄라토보다는 무겁고 젠쿱보다는 가벼운것 같다.
2. 전자식 악셀레이터는 여전히 적응하기 어렵다. 클러치감이 젠쿱보다는 감이 좋은것 같긴 하다만....
3. 3단 기어 물리자 마자 차가 뒤로 축 처지는 느낌. -_-;;; 그래서 서울 도착하자 마자 스펙을 뒤져보니 제길, 엄청난 롱기어다. 2단에서 3단 기어비 차이가 쎄라토보다1 30% 나 길다. 개인적으로 고속주행은 그다지 즐기지 않고 숏기어의 짧게 치고나가는 맛을 좋아하는데 완전 안습. 2단 레드존에서 변속해 보아도 RPM 이 4000 밑으로 떨어진다. 아이고.. oTL 그래서 3단 올릴때마다 매우 불쾌하다.
4. 아무래도 신형이다 보니 여러가지 편의장비들이 좋다. 블루투스는 원츄.. DMB 네비게이션 옵션을 넣지 않은걸 후회하고 있다.
5. 순정 시트는 직접 타보니 완전 안습... 가운데 재질이 꽤 미끄러워서 몸이 좌우로 요동친다. 거기다 시트고도 너무 높아... 왠만하면 걍 써볼까 했는데 필히 버킷시트로 바꿔줘야 할것 같다.

총평 : 쎄라토 유로가 몹시 그립다.. 그거 정말 좋은 차였구나.. 흑흑

덧. 윰을 내년 내구레이스에 출전시키려고 했는데 G 변화에 너무 민감해하는것 같다. 막 멀미난다고.... 어떡하지.. 아냐 아마 신차 냄새때문에 어지러웠던걸꺼야.. -.-;;;
2009/09/13 02:57 2009/09/13 02:57

lock-free 와 최적화

전산 2009/09/11 19:34
나는 lock-free 를 사용하지 않는다. 성능이득은 거의 미미한데 비해 투자비용이 너무 과다하다고 생각하기 때문이다. lock-free 같은 하드코어 튜닝 기법 관련해서는 Eric S. Raymond 본좌의 이야기를 경청할 필요가 있겠다.


시간복잡도를 변화시키는 최적화라면 모를까, 선형적인 성능향상은 쓸데없는 짓이며 무어의 법칙앞에 무력할 뿐이라는 얘기인데 나는 저 의견에 동의한다. 링크 따라 가보면 그런짓 할시간에 딴걸 더 만들라고 충고하고 있다. Eric S. Raymond 스스로가 개발자 이므로 피가 되고 살이 되는 이야기를 저렇게 명쾌하게 해줄 수 있는것 같다.

사실 최근에는 무어의 법칙이 한계에 다다라서, 코어를 좀 더 단순하게, 그리고 많이 박는쪽으로 나가고 있다 보니 저 이야기가 진리만은 아니다. 하지만 그렇다 해도 게임에서의 lock-free 는 성능이득이 너무 작다. 내가 커널이나 디바이스 드라이버를 만들거나 혹은 진짜 시간이 남아돌지 않는 이상, lock-free 를 쓰는 일은 없을 것 같다.
2009/09/11 19:34 2009/09/11 19:34
volatile 과 메모리 베리어의 이해부족으로 인한 잘못된 정보가 인터넷에 꽤 널려있다. 특히 한글 문서에서 미묘한 오류를 포함하고 있는 문서가 많이 발견되는것 같다. OOE(Out of order execution) 는 컴파일러와 프로세서에 의해 일어날 수 있는데 어지간한 지식 없이는 메모리 베리어를 제대로 이해하기 힘들다. 오류의 발생 빈도가 낮아재현과 해결이 무척 힘든 부분이기 때문에, 개념부터 바닥의 디테일까지 확실하게 이해해야할 필요가 있다.

관련해서 f군과 수집한 몇가지 자료들을 추천해 본다.

* Eric Eilebrecht - Fun programming problem: a simple lock-free algorithm
* Jonathan Morrison - How Does KeMemoryBarrier Work
* Bartosz Milewski - Who ordered memory fences on an x86?
* David Howells - Linux Kernel Memory barriers

자신은 제대로 이해하고 있고, 응용에도 강하다고 생각한다면 아래의 연습문제를 풀어보자.

1. 인라인 어셈블리는 왜 컴파일러 메모리 베리어로 기능하는가?
2. 컴파일러 메모리 베리어와 프로세서 메모리 베리어는 왜 구분해서 사용되어야 하는가?
3. 크리티컬 섹션이나 뮤텍스 등 동기화 객체로 코드를 동기화하면 메모리 베리어 효과가 발생한다. 그 이유는 무엇인가?

덧. 나라면 여차하면 삑사리 나는짓 하지 않고 그냥 동기화 객체 쓴다.
2009/09/09 19:16 2009/09/09 19:16
사용자 삽입 이미지

포르테 쿠페 오늘 출고되어서 보험가입 하고서 청약서 받았는데...

결혼여부에 기혼으로 되어있네... 먼일이지..? -_-;;
2009/09/08 19:41 2009/09/08 19:41

TDD

전산 2009/09/07 22:07

나는 TDD 의 장점이 두 가지가 있다고 생각한다.

 

우선 첫 번째는살다 보면 예전에 만들어둔 코드가 이후의 수정 때문에 문제가 생기는 경우가 가끔 있다. 그런데 TDD 로 개발해 왔다면 이전에 작성해 둔 테스트를 활용 할 수 있기 때문에 이런 문제 발견이 쉬워진다. 대신, 코드 인터페이스 변경 시에는 기존의 테스트들도 고쳐주는 수고를 감수해야 할 것이다.

 

두 번째로, TDD 는 결합도(coupling) 낮은 디자인을 유도한다. 코드를 테스트 가능하게 만들려면 인터페이스가 명확해야 하고 어떻게든 다른 모듈과의 관계를 제거하거나 줄여야만 한다. 일반적으로 결합도가 낮은 코드는 좋은 디자인일 확률이 높기 때문에 모든 코드를 테스트 가능하게 유지하다 보면 전체적인 코드 수준도 좋아진다.

 

위와 같은 이유로, 기존의 프로젝트에 TDD 를 적용하는 것은 불가능하다고 본다. TDD 는 좋은 디자인을 유도할 뿐이지 이미 존재하는 나쁜 디자인을 좋은 디자인으로 변화시키지는 않기 때문이다. 켄트 벡은 기존 프로젝트에 TDD 를 어떻게 적용하냐는 질문에 책에서 그것은 책 한권으로 설명해야 하는 분량이다라는 답을 한것 같은데 내 생각에 기존 코드를 테스트 가능하게 만드는 방법은 없다. 그냥 새로 짜는게 빠르고 효율적일거다.

 

그렇다면 Testors는 모든 것을 TDD 로 개발하느냐..? 그렇지 않다. 나는 에반젤리스트도, 방법론자도 아니다. 뭔가가 새로 나오면 그것이 필드에서 실제로 동작하는걸 확인하지 않는 이상은 도입을 꺼린다. 좋은 방법론 1~2년쯤 늦게 도입한다 해서 프로젝트가 망하지는 않는다. 구지 리스크를 감수할 필요 없이 나 빼고 남들이 다 써서 긍정적인 효과가 명백히 드러날때에 써도 늦지 않다.

 

만약 내가 엔진이나 라이브러리나 웹, 혹은 비즈니스 로직을 주로 다루는 프로그래머였다면 대부분을 TDD 로 작성했을지 모르겠다. 하지만 나는 온라인 게임 프로그래머이고(였고) 게임에서 발생하는 상황에 대한 테스트 케이스를 작성하는 것은 쉽지 않다. 이건 숫자들의 합을 더하는 수준의 문제가 아니다. 결합도를 없애는 것만이 능사가 아니며 효율을 위해 어느정도의 관계는 분명히 유지시켜야 한다.

 

사실 TDD 라는 용어를 접하기 전부터 길찾기라던가 기타 게임 개발에 필요한 기하 문제들을 풀때는 항상 테스트를 작성했었다. input & output 이 명확한 이런 문제들을 테스트를 작성하지 않고 작업하는 사람이 정말 근성가이라고 본다.

 

3년쯤 전인가 회사의 UI 엔진을 스크립팅 가능하게 리뉴얼 하는 작업을 한 적이 있었다. 기존의 엔진은 폼 디자이너 툴만이 제공되었는데 이걸 기존 C++ 코드 & 리소스들과의 하위호환성을 유지하면서 루아 스크립팅 & 시뮬레이션이 가능하도록 만드게 목표였다. 작업은 순조로워서 엔진과 툴 모두 쓸만한 수준으로 부작용 없이 리뉴얼 할 수 있었다. 이후 UI 들은 자체 테스트를 내장한 채로 개발이 되었었다. 그런데 어떤 경우들은 테스트 작성 비용이 재현 및 디버깅 비용을 넘어서기도 했다.

 

게임 프로그래밍이란게 그렇다. input output 을 명확하게 정의하기 힘들다. 시간의 흐름도 중요하고 타이밍도 중요하다. 몇몇 특정한 상태에 대한 테스트를 작성하고 유지하는것에 대한 비용은 정말이지 엄청나게 커질 수 있다. 내가 취한 방법은 대부분의 UI 들에서 테스트 작성을 포기하고, 런타임에 재현 및 디버깅이 쉽도록 한 것이었다. 키 하나로 스크립트가 모두 reload 되고, UI 가 문제 발생 이전으로 리셋되는 식이었다.

 

요약하자면, TDD 는 사실 패턴과 마찬가지로 이전부터 쓰는 사람은 모두 써왔던 방법이고, 그게 모든 분야에 사용되고 있지 않은 이유는 당연하게도 TDD 모든것에 대한 해답이 될 수 없기 때문이라고 생각한다. (난 사실 TDD 가 적용될 수 있는 분야가 매우 한정적이라고 생각한다) 문제는 이런글 (http://testors.net/tt/625)들이 귀 얇은 친구들을 혹세무민하여 주화입마에 빠지게 하는것에 있다. (이 대목에서 모 군이 찔려할것 같다...)

 

만약 TDD 가 정말로 결함을 줄여주고 개발 기간을 단축시켜 준다면 (참고: 난 이런 개발 효율이 측정 가능하지 않다고 생각한다), TDD 를 도입하지 않은것을 불안해 할 필요가 없다. 그게 사실이라면 어느샌가 당신 주변의 대부분의 개발자들이 TDD 를 사용해 프로젝트를 진행하고 있게 될거다. 그때 관심 가져도 늦지 않을것 같다.

2009/09/07 22:07 2009/09/07 22:07
사용자 삽입 이미지

토요일은 A 매치 데이여서 한국과 호주 축구 국가대표 경기가 있었다. 축구 경기가 있는날은 대형 TV 를 구비한 호프집은 장사가 잘되는 반면 우드스탁같은 바는 거의 파리가 날린다. 그래서 우드스탁 사장님은 토요일은 손님 없을게 뻔하므로 안나오겠다고 윰하고 나보고 바를 보라고 그랬다. 윰이 "전 노래를 틀줄 모르는데요" 라고 했더니 "기현이가 할 줄 알거야" 라고 했다고.. 해서 난생 처음 영업시간에 사장님 자리에 앉았는데...

손님이 없을거라는 사장님의 예상과는 달리 바 오픈하고 청소도 미처 끝나지 않았는데 왠 외국인 남자 + 한국인 아지매 손님이 들이닥쳤다. 곧이어 남자3 + 여자1 손님도 들어왔다. 이후 초저녁부터 신청곡 러쉬가 이어지는데...

한국인 손님들의 신청곡은 뭐 딥퍼플, 비틀즈, 미스터빅.. 뭐 이런 계열을 벗어나지 않으므로 대충 넘겼는데 저 외국인의 신청곡이 만만치 않았다. 첫 신청곡은 아마 이랬던 걸로 기억한다.

Bruce Cockburn - After the Rain
Barenaked Ladies - My Apartment
Collective Soul - Shine
Rush - Singles
Oasis - Wonderwall

Rush 의 Singles 는 곡명이 아니라 앨범명이다. 다 틀어줄 수는 없는 노릇이고 바에 Singles 앨범도 없었으므로 패스. 일단 Collective Soul 과 Oasis 노래부터 걸어 놓고 다른 곡들을 찾는데.. Bruce Cockburn 의 노래는 아무리 찾아도 안나온다. 이것도 패스. 다음은 Barenaked Ladies 의 My Apartment 라.... 뭘까 싶어 열심히 찾았더니 The Old Apartment 곡명을 잘못 쓴것 같다. 이걸 걸어 주었다. 일단 3곡 클리어... 그랬더니

그 외국인 남자가 바로 걸어 오더니 나에게 팁 3만원을 주었다...!!!

우드스탁 역대 최고액의 팁...! 윰은 혹시 저사람이 오빠 몸 어딘가를 만진 다음에 옷에 팁 꽂아 준거 아니냐고 묻기까지.. -.-;;; 여튼 정신이 아찔해진 나는 Bruce Cockburn 의 곡도 꼭 틀어주리라 마음먹고 열심히 인터넷을 뒤지기 시작했다. 그런데 아무리 찾아도 안나오는거다. 유튜브에도 없는 아주 레어한 곡이었다. 찾아 보니까 70년대부터 활동한 캐나다 뮤지션의 곡.

신청곡 취향을 살펴보니 캐나다쪽하고 뭔가 연이 있는것 같아 아무래도 연관성이 있는 The Band 의 Acadian Driftwood 를 틀어 보았더니 아니나 다를까 바로 반응이 왔다. 곡 끝나기도 전에 나한테 오더니 지금 나오는 곡이 뭐냐고 묻는다. 그래서 포스트 잇에 곡명을 적어줬다. ㅋㅋㅋㅋ

왠지 삘받아 윰이 끓여준 라면도 먹는둥 마는둥 하면서 관련 정보를 찾던 도중, 그는 두번째 신청곡 쪽지를 건냈는데....

Collective Soul - Run
Oasis - Bag It Up
Barenaked Ladies - Lovers in A Dangerous Time
Uriah Heep - The Wizard

BRUCE COCKBURN - AFTER THE RAIN

농담이 아니고 진짜 저렇게 큰 대문자로 써 있었다. -_-;;;

팁도 받은게 있는데다 첫번째에 안틀어 줬다고 두번째에 저렇게 간절하게 써서 신청하다니.. 이건 안틀어 주면 큰일이 날것 같다. 그래서 본격적으로 곡을 찾아보기 시작했다.

지나고 나서 하는 얘긴데 진짜 토렌트부터 인터넷 안찾아본 곳이 없었다. 심지어 아마존에 가서 $0.9 에 MP3 를 직접 구매해서 들려주려고 했으나 미국내 거주자가 아니면 곡을 팔지 않더라. 괴상한 MP3 판매 사이트에서 구매하려고 보니 이건 $25 단위로 결재를 해야해서 포기 -.-;

여튼 윰도, 나도 오기가 발동해서 도대체 어떤 곡일까 궁금해서 도저히 곡 검색을 멈출수 없다. 이후 결국 필사적인 노력 끝에 WinMX 에서 간신히 곡을 입수. 운명이었는지 외국인 peer 로부터 다운로드 받는데도 몇분 안에 전송이 완료 되었다. 곡을 리스트에 걸어두고 나니 왠지 뿌듯....

막상 들어보니 좀 차분하고 퓨젼 재즈삘이 있는 곡이었다. 예전 뮤지션인데도 꽤 세련된 느낌.

여튼 결국 곡을 찾아서 틀어 주었더니 다시 바로 오더니 팁을 만원 더 줬다.

옆에 있던 희권형과 윰은 자신들은 못받아본 고액의 팁 러쉬에 분해하면서 피눈물을 흘리고... ㅋㅋㅋ

여튼 그렇게 바에서 일하고 셔터 내리고 집에 와서 잤다. 끗.
2009/09/06 17:30 2009/09/06 17:30