엘키의 주절 주절

소소한 개발 이야기

단점 고치기

사실 누구나 단점은 있다. 내가 생각하는 장점이 남이보기엔 단점일 수도 있으니 말이다. 하지만 중요한 것은, 다수가 단점이라고 하는 데에는 분명한 이유가 있기 마련이다. (뭐, 물리적인 단점이야 어떻게 할 수 있겠냐만은…) 다수가 말한다면 그 단점은 컴플렉스나, 민감한 사항이 아닌, 고쳐야하는 단점이 된다. 단점 고치기에 앞서 가장 먼저 중요한...

루비를 시작했습니다.

Ruby는 일본에서 개발된 프로그래밍 언어로, Perl의 자유로운 표현력과 모호함에서, 모호함을 제거하고 객체 지향적인 개념을 도입한 언어입니다. 윈도우와 연동되어 Win32Api를 사용하실 수 있고, Tk, C언어와의 연동 등 다양한 방법으로 활용 가능합니다. 속도상의 문제를 안고 있지만, 게임에서도 스크립트 언어로 채용되기도 했었고, Rub...

C++ 코드 작성시 주의 사항

R-Value를 써라 if문에서 변수를 Right Value로 두어라. 실수로 비교문(==)이 아닌 대입문(=)이 사용했을 때의 실수를 막아준다. 상수성(const 키워드)을 애용하라. 변경이 이루어지지 말아야 할 변수나 함수에 const 값 적극 이용하라. const는 변경이 되면 안되는 상황을 인지하게 해준다. IN,OUT...

OS 구조와 원리 - 단연 최고의 OS 개발 서적

나는 학창 시절 주입식 교육의 영향인지 뭔진 몰라도, 일본에 대한 반감을 갖고 있는 편이다. 일본 게임, 일본 만화를 많이 접하면서도 일본색이 지나친 것들에 대해선 다짜고짜 싫어해서 (논리적으로 설명하지 못하면서까지 싫어해서) 친구들과 소모적 논쟁도 많이 하곤했었으니…정도가 좀 심했다. 그럼에도 불구하고, 일본의 문화적 역량과, 마인드는 대단하다는...

메모의 기술 - 더 많이 기억하기 위해 기록하라. 그리고 잊어라.

사실 나는 메모를 자주 하긴하지만, 메모를 잘 활용한다 말하긴 힘들었었다. 나에게 있어 메모는 기록의 용도지, 기억의 용도는 아니었었다. 잊기 위해 기록한다? 쉬운 말이지만, 나에겐 너무나 혁신적이었다. 나의 기본 발상을 바꿔버릴 획기적인 발상이었던 것이다. 사실 나는 기록은 증빙의 수단으로 주로 사용해왔다. 최대한 많은 것을 외우길 바랬고, ...

Software Development MEME

Q. 몇살 때 프로그래밍을 처음했나요? A. 초등학교 6학년 겨울에 시작했다. Q. 프로그래밍을 어떻해 하게 되었나요? A. 게임 만들자고 친구가 말해서, 그림은 못그리고, 기획은 그 당시엔 너무 막막해서 시작했다. Q. 무엇이 첫번째 언어입니까? A. C언어 Q. 프로그래밍을 시작한 이후로 어떤 언어들을 사용해봤습니까? A. C언어, C...

사랑하지 않으면 떠나라 - 좀 더 나은 내가 되기 위한 가이드 라인.

내 꿈은 프로그래밍을 시작했을 때도, 지금도 프로그래머다. 그래서 프로그래밍을 잘하기 위해 노력해왔고, 다양한 언어, 다양한 툴을 익히기 위해 노력했다. 내가 프로그래밍만 ‘잘’한다면 모든게 다 잘될거라고 생각했다. 실상은 그렇지가 않았다. ‘프로그래밍을 잘한다’는 것과 ‘일을 잘한다’는 것과는 꽤나 큰 차이가 있었다. 취미나, 해커 (크래커적인...

우리가 미처 알지 못한 소프트웨어 공학의 사실과 오해 - 왜 같은 실수를 반복하는가?

소프트웨어 업계가 아직 젊다고 하지만, 벌써 50년 이상의 세월이 지나왔다. 그 세월 동안 다양한 경험과 통찰로 이루어진 결론들이 있었지만, 이 업계의 많은 사람들은 그 결론들을 일반화 시키는 것을 두려워하고, 인정하지 않으려 해온게 사실이다. (그리고 여전히 대부분 그렇다.) 사람 5명이 해오던 일을 10명이서 한다고, 수행 속도가 2배가 되는 ...

Effective TCP/IP Programming

일반적으로 네트웍 프로그램을 작성할때 대부분 소켓을 이용합니다. 하지만 소켓을 사용할줄 안다는 것이 TCP/IP를 이해한다는 의미는 아닙니다. 사실상 대부분의 네트웍 프로그래머가 소켓이 왜 그렇게 처리 되고 있는지, 왜 그렇게 해야만 하는지에 대해서 모르는 실정입니다. 이 책에선 좋은 네트웍 프로그램 (효율과, 안정성을 모두 보장하는) 을 만들기...

서버 테스트 방법 들

스트레스 테스트 예상한 것보다 훨씬 많은 행동을 시도하는 테스트 클라이언트를 통해서, 많은 부하가 발생했을 시에도 정상동작하는지 확인한다. 접속/해제 테스트 좀비 클라이언트가 남는지 확인한다. 접속/해제시 소켓 재사용 로직이 잘 처리되는지 확인한다. (최대 접속 가능 수가 5000이라고 치면, 5000개 이상의 클라이언트로 접속/해제...