2006년에 SI회사에 있을때 썻던글을 수정없이 올렸습니다. 참고하세요.
요즘 세상에는 하드웨어가 발전되고 최적의 알고리즘들이 모듈화 되어있어서 퍼포먼스 튜닝에 대한 수요가 많이 없다. 또한 퍼포먼스 튜닝은 하드웨어, 운영체계, 컴파일러,프로토콜등의 구조를 모르고서는 구현할 수 없는것이 바로 그것이기 때문에 사실 시도 자체도 않하는 경우가 많다. 그렇지만 최고의 개발자를 꿈꾼다면 퍼포먼스와 메모리 최적화에 대한 개발습관을 들이고 끊임없이 시스템 구조에 대한 연구없이는 선주자들이 주는 콩고물이나 주워먹는 개발자가 될수밖에는 없다
필자의 예를들면 1990년대에는 PDA라고하는 지금의 스마트폰에서 폰기능만 뺀 기기들이 있었다 지금의 기기들하고는 비교도 않될정도의 낮은 사양이었고 지원되는 개발툴 주변기기들도 형편없었다. 그래서 하드웨어를 알아야 했고 운영체제 특성을 알아야했다. 안드로이드가 등장한 시기까지 나를 찿는 업체들은 줄을 섰다. 안드로이드부터 시작한 개발자들은 안드로이드 프래임웍이 재공하는 수천가지 기능들이 당연한거라고 생각하겠지만 사실 수년동안 모바일 또는 포터블 기기를 개발한 사람들이 아주쉽게 시간이 많이 드는 기능들을 프래임웍속에 숨겨놓았기 때문에 지금 안드로이 개발자들이 자바 개발자들과 같은 대우를 받고 있는것이다.
필자 얘기하고 싶은것은 PDA시절을 얘기하는것이다. 사실 퍼포먼스와 메모리 최적화를 고려하지않으면 왠만한 시스템은 탑제될수없었다. 그래서 나에대한 유니크는 컷다
혹자는 말할것이다 안드로이드와 아이폰이 대세고 그걸하면 되는거 아니냐고 PDA시절에는 WINDOWS CE가 대세였다. 지금 그 개발자들 설곳이 없다(애플의 OBJECTIVE C에 대해서도 할말은 많지만 퍼포먼스 튜닝에서 다룰 부분은 아니고)
혹자는 하드웨어가 발전했는데 자꾸 옛날얘기를 하느냐고 할수도 있을듯하다. 하드웨어가 발전할수록 데이타도 늘어나고 있다는것이다. 구글의 무인자동차? 인고지능? 이거다 데이타와의 싸움이다.
1클럭의 시간 요즘 하드웨어에서는 시간으로 환산도 않되지만 간은 작업을 수백만번 한다면 유의미한 시간이 될것이다. 앞으로하는 강좌를 잘 인지하여 개발시 습관을 들이기 바란다
'programming' 카테고리의 다른 글
[Algorithm] C++ 문자열 조합 (combination) (2) | 2023.06.04 |
---|---|
[Algorithm] C++ 미로찾기 (graph traversal ) (0) | 2023.06.03 |
[Algorithm] Graph & Tree (0) | 2023.05.30 |
[Algorithm] Stack 과 Recursive (3) | 2023.05.30 |
퍼포먼스 개선 - 디스크입출력(2006년 version) (0) | 2023.03.22 |