yuchi's Development Home
글 수 401
프로그래밍에 국한된 얘기임을 먼저 밝혀두겠다.
업계 사람들이랑 얘기하다보면 '걔는 열심히 하는데 실력이 안늘어.' 라고 안타깝게 토로하는 경우가 있다.
열심히라...내 생각엔 말이다.
아마 열심히 하지 않았을 것이다.
아니 물론 본인들 입장에선 열심히 했겠지.
수천라인짜리 switch,case문을 구사했다던가(손가락에 물집 잡히지 않았을까?), 모든 데이타를 하드 코딩했다던가..
나름 열심히 했겠지만 이건 열심이라 볼 수 없다.
자. 시나리오를 보자.
초짜 프로그래머. 나름 열심히 일을 한다.
한참 하다보니 뭔가 한계를 느낀다.
검색속도가 너무 느리다던가, 비교구문이 너무 많다고 느낀다거나 메모리를 너무 많이 먹는다고 느끼는 경우는 흔하다.
자료구조에 대한 학습이 되어있지 않은 초짜 프로그래머에게는 특히나 많이 있을법한 경우다.
그래 이러한 문제중 하나가 발생했다 치자.
누군가의 조언을 듣고 자료구조책을 폈다.
링크드리스트? 이런 정도는 쉽다.
해쉬? 뭐 것도 그럭저럭 할만하다.
2진트리? 약간 어렵게 느껴진다. 실제로 해보니 삽입하는건 쉬운데 삭제하는건 만만치 않다. 하루,이틀,삼일 소모해봤지만 뜻대로 잘 안된다. 슬슬 짜증이 난다.
에라 모르겠다. 하던대로 엄청난 하드코딩으로 코드를 짠다.
아니면 좀더 잔머리를 굴려서 STL이라는 신이 내려주신 '불' 같은 도구를 사용하기로 한다. '직접 만드는건 고집불통의 바보들이나 하는 짓이다'라고 말하면서.
좀 다른 케이스를 볼까?
나름 우아한 서버 모델을 구현하고 싶어서 멀티스레드를 사용했다.
동기화 문제가 발생하기 시작한다. 데드락이 걸리거나 전혀 이해할 수 없는 어드레스에서 크래쉬한다.
옆에서 선배 프로그래머가 조언을 해준다. os책을 좀 봐라. 내용이 너무 동떨어진거 같으면 시스템 프로그래밍 책이라도 좀 봐라.
버그 슬레이어의 debugging application같은 책을 추천할지도 모른다.
그래 이런 책들 한권이라도 떼면 훨씬 상황은 좋아질 수 있다.
그러나....
보니까 내용이 꽤 많다. 만만치 않다고 느낀다. 뭔 소린지 잘 모르겠다.
CPU와 메모리,인터럽트 제어에 대한 기본 컨셉이 없으면 사실 내용을 이해하긴 힘들다.
결국
'에라이...멀티스레드를 쓰지 말자.' 요렇게 되거나...
'나는 게임을 만들고 싶어서 프로그래밍을 하는거지, 프로그래밍을 하려고 게임을 만드는건 아니다' 따위 어설픈 변명을 늘어 놓는다. '
x랄. 네가 게임업계의 순교자냐?
그리고 꽤 많은 케이스인데...
풍운의 꿈을 안고 3D프로그래밍에 입문.
D3D 샘플 가지고 좀 끄덕대보니 삼각형도 출력되고..
오호라 d3dx라이브러리를 사용하니 모델도 쉽게 출력된다.
거기까지다.
이제 뭔가 제대로 돌아가는걸 만들려고 하면 수많은걸 알아야한다.
적어도 고교수학정도는 되새겨야한다.
처음엔 벡터 덧셈만 하면 될 것 같았지만 나름대로 꽤 많은 수학식이 등장한다.
벌써 눈앞이 캄캄해진다.
애니메이션 하나를 구현하려고 해도 쿼터니온이니 뭐니 알아야 하고.
그 유명한 bsp/pvs따위를 구현해보려고 하니 CSG를 또 구현해야한다.
n각형을 자르고 조립하는 모델링 코드를 짜야하는데 수학도 수학이고 터져나오는 수많은 버그에 감당이 안된다.
아 어려워!!!!
하다 때려치고.
'해보니까 전 서버가 잘 맞아요. 서버 프로그래머 체질이입니다.'
혹은 더 나쁜 케이스로
'전 컨텐츠를 얹는 게임 프로그래머가 적격입니다. 그러려고 게임 프로그래머가 되었거든요'
따위의 소리를 늘어놓게 된다.
프로그래머면 프로그래머지, 서버는 뭐고 클라이언트는 뭐고, 엔진은 또 뭐냐.
이런 케이스 숱하게 많이 봐왔다.
이 글을 보고 '그 새끼 말하는거 졸라 싸가지 없어.' 라고 말할 사람이 많을줄로 안다. 아니 이미 지금도 그렇게 욕하는 자들이 많은것도 알고 있다.
내가 싸가지가 있거나 없거나 난 현실을 말했다.
컴파일러와 툴은 널렸다. 인터넷과 책에는 수많은 정보가 널렸다.
하려고 마음먹고 껍질을 하나 깰 각오만 되어있다면 웹에서 OS제작까지 못할건 없다.
시간을 투자하는것 외에도 과감히 문 열고 눈보라가 치는 바깥으로 나가는 모험을 감행하는 것이 '노력'이다.
아는것만 쥐고 안주하려고 하면서 감히 '노력'이나 '열심'이란 단어를 사용하지 말라.
업계 사람들이랑 얘기하다보면 '걔는 열심히 하는데 실력이 안늘어.' 라고 안타깝게 토로하는 경우가 있다.
열심히라...내 생각엔 말이다.
아마 열심히 하지 않았을 것이다.
아니 물론 본인들 입장에선 열심히 했겠지.
수천라인짜리 switch,case문을 구사했다던가(손가락에 물집 잡히지 않았을까?), 모든 데이타를 하드 코딩했다던가..
나름 열심히 했겠지만 이건 열심이라 볼 수 없다.
자. 시나리오를 보자.
초짜 프로그래머. 나름 열심히 일을 한다.
한참 하다보니 뭔가 한계를 느낀다.
검색속도가 너무 느리다던가, 비교구문이 너무 많다고 느낀다거나 메모리를 너무 많이 먹는다고 느끼는 경우는 흔하다.
자료구조에 대한 학습이 되어있지 않은 초짜 프로그래머에게는 특히나 많이 있을법한 경우다.
그래 이러한 문제중 하나가 발생했다 치자.
누군가의 조언을 듣고 자료구조책을 폈다.
링크드리스트? 이런 정도는 쉽다.
해쉬? 뭐 것도 그럭저럭 할만하다.
2진트리? 약간 어렵게 느껴진다. 실제로 해보니 삽입하는건 쉬운데 삭제하는건 만만치 않다. 하루,이틀,삼일 소모해봤지만 뜻대로 잘 안된다. 슬슬 짜증이 난다.
에라 모르겠다. 하던대로 엄청난 하드코딩으로 코드를 짠다.
아니면 좀더 잔머리를 굴려서 STL이라는 신이 내려주신 '불' 같은 도구를 사용하기로 한다. '직접 만드는건 고집불통의 바보들이나 하는 짓이다'라고 말하면서.
좀 다른 케이스를 볼까?
나름 우아한 서버 모델을 구현하고 싶어서 멀티스레드를 사용했다.
동기화 문제가 발생하기 시작한다. 데드락이 걸리거나 전혀 이해할 수 없는 어드레스에서 크래쉬한다.
옆에서 선배 프로그래머가 조언을 해준다. os책을 좀 봐라. 내용이 너무 동떨어진거 같으면 시스템 프로그래밍 책이라도 좀 봐라.
버그 슬레이어의 debugging application같은 책을 추천할지도 모른다.
그래 이런 책들 한권이라도 떼면 훨씬 상황은 좋아질 수 있다.
그러나....
보니까 내용이 꽤 많다. 만만치 않다고 느낀다. 뭔 소린지 잘 모르겠다.
CPU와 메모리,인터럽트 제어에 대한 기본 컨셉이 없으면 사실 내용을 이해하긴 힘들다.
결국
'에라이...멀티스레드를 쓰지 말자.' 요렇게 되거나...
'나는 게임을 만들고 싶어서 프로그래밍을 하는거지, 프로그래밍을 하려고 게임을 만드는건 아니다' 따위 어설픈 변명을 늘어 놓는다. '
x랄. 네가 게임업계의 순교자냐?
그리고 꽤 많은 케이스인데...
풍운의 꿈을 안고 3D프로그래밍에 입문.
D3D 샘플 가지고 좀 끄덕대보니 삼각형도 출력되고..
오호라 d3dx라이브러리를 사용하니 모델도 쉽게 출력된다.
거기까지다.
이제 뭔가 제대로 돌아가는걸 만들려고 하면 수많은걸 알아야한다.
적어도 고교수학정도는 되새겨야한다.
처음엔 벡터 덧셈만 하면 될 것 같았지만 나름대로 꽤 많은 수학식이 등장한다.
벌써 눈앞이 캄캄해진다.
애니메이션 하나를 구현하려고 해도 쿼터니온이니 뭐니 알아야 하고.
그 유명한 bsp/pvs따위를 구현해보려고 하니 CSG를 또 구현해야한다.
n각형을 자르고 조립하는 모델링 코드를 짜야하는데 수학도 수학이고 터져나오는 수많은 버그에 감당이 안된다.
아 어려워!!!!
하다 때려치고.
'해보니까 전 서버가 잘 맞아요. 서버 프로그래머 체질이입니다.'
혹은 더 나쁜 케이스로
'전 컨텐츠를 얹는 게임 프로그래머가 적격입니다. 그러려고 게임 프로그래머가 되었거든요'
따위의 소리를 늘어놓게 된다.
프로그래머면 프로그래머지, 서버는 뭐고 클라이언트는 뭐고, 엔진은 또 뭐냐.
이런 케이스 숱하게 많이 봐왔다.
이 글을 보고 '그 새끼 말하는거 졸라 싸가지 없어.' 라고 말할 사람이 많을줄로 안다. 아니 이미 지금도 그렇게 욕하는 자들이 많은것도 알고 있다.
내가 싸가지가 있거나 없거나 난 현실을 말했다.
컴파일러와 툴은 널렸다. 인터넷과 책에는 수많은 정보가 널렸다.
하려고 마음먹고 껍질을 하나 깰 각오만 되어있다면 웹에서 OS제작까지 못할건 없다.
시간을 투자하는것 외에도 과감히 문 열고 눈보라가 치는 바깥으로 나가는 모험을 감행하는 것이 '노력'이다.
아는것만 쥐고 안주하려고 하면서 감히 '노력'이나 '열심'이란 단어를 사용하지 말라.