엘키의 주절 주절

소소한 개발 이야기

둠. 컴퓨터 게임의 성공신화. 존 카맥, 존 로메로 - 천재 프로그래머 이야기

천재들은 대부분 영재인 경우가 많다. 해당 분야를 일찍 접하고, 그와 동시에 재능을 발휘해오며 천재 소리를 듣게 되었기 때문일 것. 대부분의 좋은 평가를 받는 프로그래머는 꼼꼼하고 성실해서 일을 잘 하거나, 경험이나 연륜에서 묻어 나오는 판단으로 좋은 결과를 내는 사람들이 대다수다. 하지만 천재들은 그런 경험 없이도 뛰어난 판단력과 통찰력을 갖고 ...

아키텍트 이야기 - 프로젝트의 성공을 위한 지휘자, 아키텍트가 되자.

사실 프로젝트를 진행해오면서 표준이 필요하다는 생각이 많이 들었습니다. XP에서도 주장하는 것은 죽은 문서를 만들지 말자는 것이지, 문서를 만들지 말자는 것이 아니듯이, 필요한 문서라면, 자주 참고해야 되는 내용이라면 당연히 문서화 하는 것이 맞습니다. 프로젝트가 오래 진행될 수록 네이밍, 클래스 상관도, 기본 설계 방침과 같은 것들에 대한 필요성...

익스트림 프로그래밍 - 소프트웨어 개발도 결국 사람에 달려있다.

사실 소프트웨어 개발에서 자바를 사용할 것인가, C++을 사용할 것인가, 윈도우를 사용할 것인가, 리눅스를 사용할 것인가, DBMS는 어떤 것을 사용할 것인가와 같은 기술적인 이슈는 빠질 수 없는 요소입니다. 그렇지만 기술적인 요소들에 대한 이해도가 높고, 능숙한 기술들로 소프트웨어를 개발한다고 했을 때에도 여전히 소프트웨어 개발은 쉽지 않습니다. ...

나의 게임 업계 투신기

내 또래 남자 아이들중 안그런 아이들이 몇이나 있었겠냐만은, 나 역시 게임을 무척이나 좋아했다. 초등학교도 들어가기전인 6살때 친척형 손잡고 오락실에 간 이후로, 내 인생에서 게임을 빼놓고 이야기할 수 없을 정도 큰 위치를 차지해 버렸다. 처음 오락실에서 했던 게임은 속칭 탱크라 불리는 배틀시티였다. 나의 첫 게임 배틀 시티. 당시 내가 살던...

코드 읽기

문득 코드를 작성하던 중 이런 생각이 들었다. “과연 지금 내가 작성한 이 코드가 분석하기 쉬운 코드일까?” 생각해보면 아마추어 일때를 제외하고는 새 코드 작성보다 다른 사람의 코드 분석하는 시간이 더 잦았고, 새 코드를 작성하더라도 다른 코드와 어울려야 했기 때문에 코드 분석은 늘 필요했다. 심지어 내 코드를 분석해야 되는 일도 잦았다. 기억력...

린 소프트웨어 개발 - 개발 효율 향상을 위한 애자일 지침서

혼자 개발을 하던 시대는 지나갔다. 게임 업계에서도 1인 개발자는 별바람님을 제외하곤 사라진지 오래다. 그만큼 팀 작업의 중요성은 더 크게 다가 오고 있다. 한 프로젝트를 위해 마케팅, 서비스, 시스템, 개발이라는 각기 다른 업무를 맡고 있는 사람들이 협동해야하며, 한 팀 내에서도 웹, 서버, 클라이언트, 애니메이터, 배경, 원화가, 모델러, 기획자...

대체 뭐가 문제야?

프로그래머는 자주 개발자라는 이름으로 불리고, 구현이 가장 중요한 듯 생각되기도 한다. 하지만, 개발 과정에서나, 유지보수 과정에서나 문제는 발생하기 마련이다.  능력이 아무리 뛰어나고, 머리 좋은 사람들이라 해도 문제를 만들기 마련이며, 오죽했으면 문제가 없다는 것은 아무 일도 일어나지 않고 있다는 증거다라는 말이 있겠는가? 문제가 발생하는 것을 ...

C++ 오류의 원인들

strcpy 등의 길이제한이 없는 함수는 사용하지 않는다 strncpy, memcpy와 같은 함수를 사용하고, 스트링 맨 끝에, 0을 넣어주는 것이 안전하다. 특히나 클라이언트에서 올라온 데이터는 더더욱 그렇다. 포인터 검사는 반드시 하라 포인터 사용시에는 무조건 NULL포인터 검사를 하는 것이 좋다. 바로 쓰고 싶을 경우는 참조자를 사...

패치의 악몽을 피하기 위해

패치시에 문제가 하나도 발생하지 않는다면 얼마나 좋겠냐만은… 패치 과정에서 실수가 생기는 경우가 많은 것이 사실이다. 패치 준비과정에서의 피로와, 수작업으로 인해 사소한 실수가 큰 파장을 일으키는 것이 현실. 주로 점검시에 발생하는 문제는 패치 준비가 제대로 되지 않아 생기는 문제가 많다. 다음은 실 서비스 적용시 문제를 덜 일으키기 위한 방법이다...

서버 프로그래밍시 주의 사항

멀티 쓰레드 시 동기화는 주의 깊게 하라 멀티 쓰레드에서 같은 데이터를 동시에 접근하지 못하도록 동기화는 필수다. 현재 사용중인 데이터가 특정 시점까지 변해선 안 된다면, 데이터 사용이 끝나기 전까지 다른 쓰레드에서 접근이 불가능 하도록 해야 한다. 물론, 동기화를 항시 고려하지 않게끔 이를 구조적으로 분리해두는 것이 더 좋다.   ...