프로그래머의 적성에 따라 다음과 같은 식으로 역할을 나누면 어떨까 하는 생각이 들었음

1. 옵티마이저
  - 나는 1 fps 를 올릴때마다, 1kb 를 줄일 때마다 삶의 보람을 느낀다 타입
  - 좋아하는 툴 : 프로파일러, 프로파일링 라이브러리, 메모리 할당 현황 뷰어
  - 이 사람이 가장 좋아하는 책 : Efficient C++, Effective C++ 시리즈, 인텔 프로세서 최적화 cookbook...

2. 인터페이스 디자이너
  - 나는 불필요한 dependency 를 없앨 때마다 삶의 보람을 느낀다 타입
  - 쓰기 쉽고 편하게 된 라이브러리를 만드는 것이 임무
  - 각 모듈의 인터페이스에서 작명이나 구성이 사용자 중심이 아니라 구현자 중심으로 되어있는 부분을 수정
  - 회사에서 만든 라이브러리는 언제라도 외부에 돈받고 팔 수 있는 수준이어야 한다는 신조
  - 이 사람이 가장 좋아하는 책 : John Lakos 의 Large scale C++ Developement
  - 내가 가장 관심을 가지고 있는 분야

3. 구조 설계자
  - mvc 구조로 딱딱 기능이 잘 분담되어 있는 프로그램을 보면 기분이 좋아지는 타입
  - 인터페이스 디자이너와 유사한 부분이 있지만, 인터페이스 디자이너는 여러개의 모듈 사이에어의 관계에 주목하는 반면, 구조 설계자는 한 모듈 내에서의 기능 구현
  - 버츄얼 함수를 언제 써야 하고, 언제 쓰지 말아야 할지에 대해서 동물적인 감각으로 디자인
  - 이 사람이 가장 좋아하는 책 : 디자인 패턴, POSA 등...

4. 신기술 연구원
  - 아 돈만 있으면 이것도 써보고 싶고 저것도 써보고 싶고, 몸에 좋은건 다 써보고 싶다 타입
  - gamedev 나 flipcode 같은 곳에 소개된 외국산 신종 라이브러리를 검토하고 도입, 적용하는 일
  - 그 밖에 논문이나 아티클로만 소개되었던 부분들을 직접 구현해서 적용하는 것도 포함
  - 이 사람이 가장 좋아하는 책 : GPG 시리이즈...

5. 어플리케이션 프로그래머
  - 나는 유저들이 직접 만지는 부분을 만드는 것이 좋다 타입
  - 지식보다는 경험을 이용해서 성과를 내는 타입
  - 이 사람이 좋아하는 책 : 책보다 해킹을 좋아함

6. 테스트 케이스 프로그래머
  - 유닛 테스트 or 예제 프로그램을 만드는 담당자.
  - 뉴비 개발자가 우선 현재 시스템을 이해하기 위해 필수로 거쳐야 할 코스
  - 이 사람이 가장 봐야 하는 책 : Test Driven Development, Extreme Programming Installed

7. 툴 프로그래머
  - 나는 툴을 만들어서 사람들의 노가다를 덜어주는 것에서 보람을 느낀다 타입
  - 언젠가 나만의 3ds max 같은 툴과 sdk 같은 것을 만들어보고 싶다
  - 그의 고객은 외부 유저가 아니라 내부 개발자
  - 이 사람이 가장 좋아하는 문서 : 3DSMAX SDK 레퍼런스 매뉴얼

사람마다 7 가지중 딱 한가지에만 맞춰지는 것은 아니고 2가지 이상의 특징을 가질 수도 있음

당신의 타입은?

imcgames 의 김학규입니다