당신은 은행에 가서 현금 6천만원을 만원권으로 인출하여, 집으로 가려고 한다. 그런데 은행에 나왔을 때 그 6천만원은 모든 사람들에게 보이게 될 뿐만 아니라, 주위에서 이상한 눈초리로 볼 수도 있을 거라고 생각하니, 어떤 생각을 강구해야 될것 같다. 당신이라면 이 현금 6천만원을 어떻게 집까지 가져가겠는가? 나라면, 꼭꼭 숨키거나, 친구들을 불러서 같이 가져가거나, 승용차를 대기시키는 등, 다른 사람이 최대한 적게 볼 수 있는 방법을 사용 할 것이다. C++ 에서 정보라 불릴 수 있는 것이 바로 "돈"이라 할 수 있다. 정보의 가치가 크면 클 수록 더욱 비싸진다. 왜냐하면 이 정보는 아주 좋기 때문에, 많은 곳에서 사용 하려고 달려 들기 때문이다. 당신이라면 이 정보를 어떻게 가져와 이용할 것인가? 이상..
CPPCS 검색 결과
이런 정석에는 항상 "왜!?" 라는 것이 따라 다니는데... "전역 데이터"를 왜 최소화 해야 하는가? 전역 데이터는, 전역 네임스페이스에 있는 데이터로써, 어디에서건 접근 할 수 있다. 이 말만 들으면, 아주 좋은 자리에 줄을 선 데이터 이다. 하지만 이 "어디에서건"이 매우 복잡한 상태를 초래하게 된다. 자리가 매우 좋으니, 어디에서건 값을 수정 할 수 있게 된다. 그래서 그 값이 왜 어떻게 언제 수정되었는지 알기가 매우 힘들어 진다. 이런 것이 "아느니 모르니만 못하다" 라는 소리를 듣는 경우이다. 그렇다면, "공유 데이터" 는 무엇을 말하는 것일까? 바로 클래스의 멤버 데이터를 말한다. 이것은 또 왜 문제인가? 바로 전역 데이터 처럼 쓰여지니 문제가 똑같이 된다. 경험으로는. private 멤버 ..
성급하게 비관하지 마라. 불필요한 복사 생성자를 호출하게 한다든지, 루프내에 불필요한 작업을 한다든지, ..... 뭐 기본적인 내용이다. 이런것들은 디자인을 크게 해치지 않으며, 보기에도 불편한게 아니므로, 크게 생각되지 않는다. Effective C++, Exceptiona C++, 등에 이런 자세한 것들이 많이 나오니, 여기서는 이렇게 정리~ 총평 음..~?
라틴 속담 채찍을 때린다고 말이 달리고 싶어지는 것은 아니다. 시작을 "라틴 속담"으로 했는데, 그 이유는, 최적화를 한다고 해서, 그게 최적화가 꼭 되는게 아니라는 말을 하고자 함에 있다. 이번 항목은, 이른 최적화가 왜 좋지 않은지, 무엇이 더 좋은 최적화 인지를 논하는 항목이다. 이른 최적화는 디자인과 코드를 보다 복잡하게 만들고 읽기 힘들게 하며, 비록 성능상에 이점이 있다 해도, 최종 목적이 되는 결과물과 비교해서 더 좋은 성능을 발휘하는 경우는 극히 드믈다. 만약, 코드를 변경하게 될 일이 생기게 될 경우, 더 변경이 까다롭게 된다. 이는 다음의 말을 생각나게 한다. "빠른 프로그램을 정확한 프로그램으로 바꾸는 것보다, 정확한 프로그램을 빠른 프로그램으로 바꾸는게 훨씬 쉽다" 그리고, 최적화를..
여기서 말하는 "적절한 규모" 는 데이터의 처리 속도의 규모 이다. 즉 성능인데, 이 성능은 빠를 수록 좋다. 책에선 '언제, 어떻게'를 아는게 중요하다.란 이야기를 하는 것이다. 그렇다면 여기서 말하는 성능 최적화의 '언제'는 언제인가? '언제'를 알 기란 매우 어려운데, 수 많은 책에서는 '언제'에는 절대 속하지 않을 때가 있다고 한다. 바로 '초기' 이다. 프로그램 코딩의 초기에는 데이터 처리 성능엔 신경을 쓰지 말라고 한다. 왜냐하면, '이른 최적화는 항상, 프로그램이 복잡해 지기 때문' 이라 한다. 그러면 초기에 무엇을 염두해야 하는가? 바로 '얼마나 더 간결하고, 얼마나 더 정확한지' 이다. 그러면 '일반적인 답'이 나왔다. 바로, '프로그램 초기에는 최적화를 하지 않는다' 이다. : ) 그러..
이 정석은 평생 가장 익히기 힘든 것 중에 하나이다. 명언만 써도 바로 이해 될 수 있는 항목일 것이다. 프로그램은 사람이 읽을 수 있또록 쓰여져야 하고, 컴퓨터가 실행할 수 있도록 하는 것은 그 후의 문제이다. - 헤롤드 아벨슨, 제랄드 제이 수스맨 프로그램을 쓸 때는 사람을 먼저 생각하고, 컴퓨터는 두 번째로 생각하라 - 스티브 맥코넬 컴퓨터 시스템의 가장 값싸고, 빠르고 안정적인 구성 요소는 바로, 없는 요소이다 - 고든 벨 빠진 구성 요소야말로 가장 정확한 요소이며(절대 실수하지 않으므로), 가장 안전한 요소이며(부서질 수 없으므로), 디자인하고, 문서화하고, 테스트, 관리하기 가장 쉬운 요소이다. 간결한 디자인의 중요성은 아무리 강조해도 디나치지 않다. - 존 베틀리 이 모든 말은 "하나를 표현..
최근댓글