게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
초보 개발자에게 드리는 조언
게시물ID : computer_130167짧은주소 복사하기
작성자 : 7850
추천 : 11
조회수 : 984회
댓글수 : 69개
등록시간 : 2013/11/25 04:10:46
안녕하세요~
프로그래밍을 18여년정도 하다가 그만둔 사람입니다.
아무생각없이 오유하고 놀다가.. 어떤 컴게의 글을 보고 과거생각이 나서 적어봅니다.

디자인패턴이나..
그런 글들은 몇몇분이 적어주셨으니
저는 좀 다른 이야기를 적겠습니다.

책중에 조엘온 소프트웨어 라는 책에도 나오는 말인데요.

"자신이 쓰고 싶은 결과물을 만들라 라고 권하고 싶습니다."

우리모두 프로그래머이기 전에 컴퓨터사용자 입니다.

당신은 cpu점유율이 80~90%를 먹어서 컴퓨터가 먹통수준이 되는 어플리케이션을 사용하고 싶은 마음이 나십니까?

당신은 머만 누르면 로딩바만 나오는 프로그램을 사용하고 싶으신가요?

왜 갑자기 이런말을 하는가.. 하면

실제로 많은 개발자들이 저품질의 결과물을 내놓고 있습니다.

물론 일정이나 인력이 말도 안되게 밀어붙여대는통에 그렇다..? 라면

그건.. 머 그회사가 그렇게 저질 결과물을 내놓고.. 결국엔 그 회사이름에 먹칠하며 회사가 망하던... 책임을 지겠죠.

그거야 그렇게 운영한 그 회사책임이니 이건 논외로 치고..

실제로 적당한 여건이 되어도.. 그런 결과물을 내놓던 팀원들도 있었기에 하는말입니다.

과거에 한 프로젝트에 동시에 두 모듈의 프로세스가 돌아가는 어플을 만들어야 했던 시기에..

UI를 맡긴팀이 cpu점유율 80~90%를 사용하게 결과물을 만들면서 아 이정도면 아주 잘했다.. 라는 반응들을 보인적이 있습니다.

반면 그걸 동영상으로 캡쳐하는 모듈 개발팀역시.. cpu는 50%이상 사용했던 기억이 납니다..

그래서 프로젝트 관리하는 입장에서.. 군더더기 더 짜르고 각자 cpu사용량을 더 낮추라고 하는데..

그 말귀를 못 알아먹던 팀원들이 존재했거든요.

80%+50%는 뭡니까.. 그걸 소비자보고 사용하라고 팔아먹을 수 있다는 말입니까?

그냥 간단하게 API만 구현해서 기능만 된다.. 라고 만들지 말라는 말입니다.


예를들어 컴퓨터에서 제일 부하를 많이 주는 작업이.. 메모리를 할당하고 반납하고 하는 과정인건 대부분 아시지요?

메모리에 데이터를 올리는 부분역시 자주쓰는것과 어쩌다 쓰는것을 분할해서

수시로 사용하는것은 메모리에 고정적으로 두고 참조해서 쓰고 ( 아 물론 양이 적당할때 이야깁니다. )

이런.. 분할하는것 이라던가..


게임을 만드실경우라 치면..

매번 화면에 적이 나타나야 될때마다 개체 새로생성해서 동작하고 죽으면 가비지컬랙터로 던져주고..

이러지 말라는 이야깁니다.

화면에 최대로 나오는 적이 20마리다. 그럼 처음부터 20개 개체를 생성해놓고

상태따라서 처음엔 sleep, 화면밖에 생성될때 init, 화면안으로 이동 move, attack 등등의 동작상태를 처리하게 하고 끝나면 sleep 모드로 대기..

말그대로 오브젝트 풀을 운용하라는 이야기입니다.

그리고 언제나 이동패턴이 똑같은건 매번 이동함수 계산하지 말고

한번 함수계산해서 결과값으로 프로그램 짤때부터 배열에 집어넣고 값만 갖다 쓰게해서 cpu 부하를 줄여준다던지 말입니다.
( 부드러운 모션처리위해서 많이들.. 삼각함수나 복잡한 공식, 무거운함수 돌리시는분들 많지요? .. 안좋슴다~ )


물론 시행착오도 겪습니다.

삼각함수를 매번 계산할게 아니라 소수점 3자리까지 미리 계산해서 그걸 배열로 저장해놓고

그 값을 읽어다가 사용하는 모듈을 만들어본적이 있습니다.

문제는 결과가.. 삼각함수를 계산한게... 그냥 배열값을 프린트하는것 보다 다.. 빠른 결과가 나오데요??

말도안되는.... 이게 뭐지..

왜 계산하는게 이미 답을 알고 있던거 그냥 가져오는것 보다 빠른가...

한참 끙끙대다가 GPU GEM이란 책에서.. 답을 얻었습니다.

CPU는.. 참으로 엄청난 발전을 해왔습니다. 1-2년만에 아주아주 다른 등급의 발전을 하고 있지요.

헌데 RAM은.. CPU 발전속도에 비하면 너무너무 느린 발전을 하고 있다고 합니다.

그래서 상황에 따라서( cpu 연산속도가 빠르고 다른 계산할게 없는 상태라 하면.. ) RAM까지 가서 저장된 값을 읽어오는것보다

그냥 CPU내부에서 계산해버리는것이 더 빠를 수도 있다.. 란 문구를 찾았습니다.

아 물론 저 모듈은 CPU가 느린 환경이나, 동시 계산량이 많은 어플에는 분명 효과가 나올겁니다.

아무튼.. 이런 저런 고민과 개선노력이..

초보자에서 벗어나도록 만들고 산출 결과물 역시 수준높은 물건이 나온다고 생각을 합니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호