본문 바로가기

책소개

자바 성능을 결정짓는 코딩 습관과 튜닝 이야기


며칠전 허과장님 책상에 놓여있던 책을 한번 스르륵 훑어보고 "어? 이거 재미있겠다" 하고 읽게된 책입니다.
사례 위주와 그에 따른 코드 위주로 챕터로 나누어져있는 책입니다.

얼마전, 풍대리님께 질문을 드렸다가 (자바가 call by value냐 call by reference냐... 이 설명을 듣고 소설같은 자바 책을 다시 읽었습니다 ㅋㅋ) 메모리에 대한
설명을 듣고나서 어떻게 하면 메모리 낭비 없이? 어떻게 하면 효율적인 코드가? 라는 생각을 하게 되었는데
이게 그냥 한번 설명 듣고 촥촥촥 코드가 바뀌면 더할나위 없이 좋겠지만 그럴리가 없는지라
이래저래 아쉬워하던차에 저 책을 접하게 되었습니다.

풍대리님이 설명해주신 내용들도 물론 들어있었고 (제일 첫부분부터 나오더군요 ㅋㅋ)
내용도 크게 어렵지 않으면서, 뭔가 좀 한 두 단계 더 올라가고 싶은데 ...
라는 생각을 가지고 있는 저 같은 초급 개발자들에게 참 좋은 책인 것 같습니다.

물론 이 책을 본다고 해서 당장 자바를 프로그래밍 할 때 메모리 낭비없이 효율적으로 모든 코드를
만들 수 있는 것은 아닙니다. (물론 그렇게 하실 수 있는 분도 계실겁니다 -_-b)

그래도 어느정도 생각의 패턴은 바꿀 수 있을었던 것 같습니다.

요새 이스토어 검색을 손 대고 있는데, 운영을 하다보면 소스를 참 많이 건드리게 됩니다.

서비스 추가 요청에 의해서 새로운 클래스가 생기기도 하고
또 새로운 변수와 메서드들이 생기기도 합니다. 그와 반대로 필요없는 변수들과 메서드들도 생기게 되구요.

뭐, 책에 나온대로 loop를 돌릴때 조금이라도 효율적인 방법으로 또는
collection 객체를 사용 할 때 조금이나마 빠르고 메모리를 적게 점유하는 것으로
사용하는 섬세함은 당장 갖추지 못 하더라도

위와 같이 운영을 하면서 소스를 수정함에 있어서..
조금은 위험스럽고, 조금은 번잡스럽겠지만(혹은 많이..) 필요없는 변수들과 메서드들은 남겨둘 것이 아니라
삭제를 해서 불필요한 객체들을 조금이라도 덜 생성 시키려는 노력을 하게 되더라구요..

꽤..위험이 큽니다. 뭔가 잘 돌아가던 것을 지우고 없앤다는거.. 저도 크게 탐탁치 않구요.

그래도 할 만한 가치는 있다는 생각이 들었습니다.

요즘 읽고 있는 책에 있던 내용이 있습니다.

"하나의 트랜잭션을 추가하면서 0.25초가 추가되었다고 하면, 이 트랜잭션이 하루에 수십만번 호출되면
저 0.25초라는 것도 무시 하지 못 하는 시간이 된다."

시스템의 처리용량을 선형적으로 단순하게 계산하는 것은 문제가 좀 있겠지만,
메모리도 "아무리 작은 객체 작은 메모리라도 저렇게 메모리를 불필요하게 점유하는 것들이 수백개 수천개
존재한다면 그것도 무시하지 못 할 용량" 일 거라는 생각이 드네요~

한 두어번정도.. 읽으면서 머리속에 정리해두기에 참 좋은 책이라고 생각됩니다.