|
자바책에 필수와 교양이 있다면...
성능 관련된 책일 것이라는 선입견에 교양서적으로 볼 수도 있겠지만, 읽어본 결과 필수서적에 더 가깝다.
책 제목을 다시한 번 생각해 보면 정답이 나온다. "자바 성능을 결정짓는 코딩 습관과 튜닝 이야기"...
풀자면... "성능에 대해 별 생각 없는 자바개발자의 코딩이 성능에 얼마나 치명적일 수 있는가"에 대한 지적이다.
이 책을 성능관련 부서에 있는 사람들이 우선적으로 보겠지만... 정작 이 책을 봐야 할 사람들은 따로 있다.
무개념 코더분들!!! 버그 심는 수준을 넘어서서 핵폭탄 투하하시는 분들!!!
머리가 나쁘면 몸이 고생한다지만... 무개념 코딩으로 사용자는 짜증나고 열받고, 운영조직은 날밤까게 된다.
자신이 개발한 코딩으로 인해... 자신의 주문정보가 사라지거나, 자신의 월급이 깍이거나, 자신의 세금이나 보험료가 과도하게 오르거나, 자신의 처방이 아닌 정신병자 처방을 받거나, 자신의 신용등급이 이유없이 하락하거나 하는 꼴을 당해봐야 한다.
이시대 자바개발자들의 손에 의해 만들어지는 많은 시스템들... 그 시스템들로 대한민국이 움직이고 있다. 나 자신도 그 이용자일 수 밖에 없는 것이다.
모든 것을 미리 다 알고 개발할 수는 없겠지만.. 양심이 있고 의식이 있는 개발자라면... 성능과 정확한 처리를 위하여 공부하고 노력해야 한다.
그런 의미에서...자바개발자라면 반드시 이 책을 3회 정독해야 한다.
40여개 프로젝트에 대한 성실한 고민에서 나온 경험을... 돈주고 살 수 있다는 것 자체가 축복이다.
이런 고마운 책을 집필하신 저자에게 감사의 마음을 전하고 싶다. |
|
워낙 바빠서 책 한자 읽을 시간이 없었던 한달이었다.
퇴근을 하고 꾸벅꾸벅 졸아가면서도 한장한장 페이지를 넘길 수 밖에 없었던것은
리뷰작성을 위해서 이기도 했지만, 여타 다른책에서 볼 수 없는 이 책의 독특한 점
때문이었다.
개발에 있어서 '어떠한 효율적인 면'을 소개할때 이론적인 근거를 대며
접근을 하기보다는 대부분 실제로 효율적인 것, 효율적이지 않은 것의
예시를 실행해 본 결과를 근거로 설명하고있다.
물론 좀 더 깊은 프로그래밍 내공을 위한 이론적 설명도 함께 곁들이고 있지만
이렇게 직접적으로 '효율적이지 않다'는 것을 확인하게 되면
개발자의 입장에서는 더욱 명쾌함을 느끼게 된다.
책을 읽는내내 지금까지 자바 개발을 하면서 간과해왔던, 비효율적이었던
나의 코드들을 떠올리며 낯뜨거워짐을 느끼기도 하였지만
이 책에서 전수하여주는 저자의 10여년간의 노하우가 단시간에 전해지는것 같아
흥미진진하였다.
소설책을 읽듯이 편히 읽을 수 있는 개발서였으며, 무엇보다도 현업에서의 경험이
녹아있는 흔치않은 책이었다.
|
|
얼마전까지 JSP로 웹사이트 유지보수작업을 한 적이 있었다. 그런데 이 사이트가 정말 느렸고, 사용자들의 불만도 상당했다. JSP나 서블릿에도 문제가 있었을 것이지만, 서버 세팅이 정말 엉성했던 것 같다. 문제는 이 사이트가 뭐가 문젠지를 모른체 유지보수 계약은 끝났는데, 이 책을 보며 문제점이 무엇이였을까 생각해보게 됐다. 또한 최적화 작업이 원할한 사이트 운영에 얼마나 중요한 역할을 하는지 새롭게 느끼게 하는 책이다.
아쉬움 점은 Blog2Blog 시리즈가 기존의 IT 개발서적과는 확실히 차별성이 있는 시리즈인데, 초보,튜닝,경험씨의 대화로 문제를 해결하는 게 아니라 문제제시나 제시만을 해준다는 점이 아쉽고, 상세한 내용을 다루기 보단 아이디어나 기본적인 개념, 경험 등을 제시하기 때문에 이전에 유사한 경험을 해보지 않았을 경우 어필이 어려울 수도 있지 않을까 하는 생각이 든다.
전반적으로 많은 도움이 되는 책이라 생각된다. 사이트에 성능상의 문제가 있는데, 어떻게 할지 모른다면 한번쯤 읽어볼만한 책이다. 초중급 정도의 경험을 갖춘 개발자-꼭 자바개발자일 필요는 없다고 생각함. 아이디어는 충분히 제공한다고 생각되기 때문-라면 읽어보길 추천한다. |
|
최근 대두 되는 성능에 관련된 , 특히 자바에서의 성능에 관련된 내용을 알기쉽게 잘 다루어 준듯하다.
초보자나 중급자가 참조하기에 좋은 코딩 팁들이 들어있다.
그리고 어플리케이션 성능에 대한 개념과 성능향상을 위해 고려해야 할 기본 지식들을 정립는데 좋은 책인듯..
추천드립니다.
|
|
사실 좋은 서평들을 많이 해주셨지만 몇가지 짚고 넘어가야할 부분이 있어서 이렇게 제 개인적인 생각을 적습니다.
사실 가볍게 출퇴근 하는 길에 읽기는 좋은 책인듯 싶습니다. 이 말은 깊이 있는 내용은 아니라는 점입니다. 물론 깊이 있는 내용 그리고 딱딱한 내용이여야만 꼭 좋은건 아니지만 아무턴 뭔가 읽으면서 아쉬운 부분들이 상당히 많더군요.
그리고 사실 소스 코드나 아니면 몇가지 부분에서 저자의 의견에 동의할수 없는 부분들이 존재합니다. 특히 Connection, Statement, ResultSet close 부분에 대한 저자의 결론은 절대 동의 하지 못하겠더군요.
그외에 왜 디자인 패턴을 넣었는지도 잘 이해가 되지 않습니다. 디자인 패턴을 알아야 설명할 수 있고 디자인 패턴을 이해해야 성능 튜닝도 할 수 있다고 서두에 밝히시긴 했지만. 그 이후 책을 진행해 나가면서 그리 디자인 패턴과 관련된 내용이 필요한 부분을 찾지는 못했습니다. 그냥 몇군데 용어 정도는 쓰더군요.
재미 있었고 나름대로 책을 만들기 위해 고민한 흔적은 보이지만 특별히 다른 자바 성능 관련 서적 혹은 문서와 특별나게 좋은 점을 찾지는 못하겠더군요. |
|
Blog2Book 시리즈는 처음 읽어보는데, 자연스러운 구성이 각 스토리별 주제에 쉽게 다가갈 수 있게 해주고 비슷한 경험들이 생각나서 재미있게 읽어나갈 수 있었다.
자바로 개발을 하면 항상 성능에 대한 이야기를 듣게 된다.
최근에야 워낙 자바가 널리 쓰이고 언어 자체도 최적화가 많이 되어 이슈가 줄어들었다. 하지만, 최근의 시스템들이 점점 더 다수의 사용자를 대상으로 개발되면서 좀더 안정적이고 빠른 성능을 낼 수 있는 개발 능력을 요하고 있다. 이 책은 주로 웹 기반에서 자바 개발을 하면서 어떻게 최적화하고 어떻게 해야 효과적으로 개발할 수 있는지 저자의 경험을 바탕으로 알차게 서술하고 있다.
특히 다른 최적화책에서는 단순히 설명으로만 끝나던 내용을 실제로 시간값을 측정해서 비교하며 보여주는 부분들도 인상적이고(숫자가 많이 나와 좀 딱딱해 보일 수도 있지만), 개발자들이 습관적으로 안 좋게 코딩하는 것들도 예를 들어가며 고쳐주는 것들도 많은 도움이 된다.
물론 자바 개발을 몇 년 하신 분들의 경우 많은 부분들을 이미 파악하고 있을지도 모른다. 하지만 이 책을 통해 다시 한번 확인해 보는 시간도 가질 수 있고, 시스템 튜닝을 사례를 들어가면 설명했던 부분은 다른 곳에서는 보기 힘든 내용이라고 생각된다.
일반적으로 실제 시스템 개발을 하면서 이렇게 책에 나온 것처럼 소스 코드별로 수행 횟수, CPU 시간, 대기 시간 등을 측정해 가며 튜닝을 하는 경우는 거의 보지 못했다. 저자가 했던 이런 경험들을 간접적으로나마 보면서 쉽게 생각하며 작성했던 코드들을 조금 더 다르게 보면서 개발할 수 있을 거 같다.
개인적으로 오랜 만에 재미있게 읽은 책이었다.
초중급자들에게 한 번 읽어보라고 추천하고 싶은 책이다. |
|
자바 웹개발을 시작하게 된 얼마 안 된 웹 개발자 입니다. 성능, 당연히 신경써야 하는 부분이지만, 어떻게 코딩 해야 되는지, 어느 부분을 신경 써야 하는 지 막막했는데, 이 책을 읽고, 성능을 신경을 써서 코딩하는 것이 그렇게 어렵지 않다는 것을 알게 되었습니다. ( 물론 아직 가야할 길이 멉니다. ) 성능에 대해서 초보 개발자가 신경 써야 하는 부분에 대해서 집중적으로 나와 있다는 생각이 들고, 10년이라는 성능 튜닝 경험을 책 한 권으로 얻을 수 있다는 것이 저한테는 큰 축복이었습니다. 그리고 무엇보다도 책이 강의를 듣는 것처럼 쉽게 쓰여서 있여서 한 번 다 읽는데 큰 시간이 필요하지 않다는 것입니다. ^^ |
|
이 책은 성능분석 전문가를 위한 책은 아닌거 같다. 제목에서 알 수 있듯이 개발자을 위한 책으로 각 장별로 어떤 내용을 담고 있는지 써봤다.
이 책이 한빛의 Blog2Book시리즈의 세번째로 알고 있다. 이 시리즈가 원하는 블로그처럼 쉽게 익히는 책이라는데는 일단 성공한거 같다. 성능이라는 편협한 이야기를 개발자들이 쉽게 이해하고 적용할 수 있을거 같다. 책을 보기전에는 성능관련 툴의 화면샷으로 도배한 책 일거라 생각했는데 그런 부분은 부록에 약간 정도..하지만 성능툴에 대한 설명이 조금 부족한게 아쉽다. 사실 툴을 사용하다보면 어쩌다 사용하는거라 그 결과를 어떻게 해석해야 하는지 몰라 어려움을 겪는데 그런게 좀 더 있다면 더 좋지 않을까 하는 생각을 해봤다. 그것만 빼면 개발자들에게는 참 유용한 책이라는 생각이 든다. |
|
쉽지 않은 이야기를 나초보라는 가상 인물의 프로젝트 경험을 토대로 재미있게 기술 하고 있다. |
|
튜닝하면 먼저 떠오르는 것이 sql이었지만 코딩도 sql 튜닝 못지 않게 중요하다는 것을 느꼈습니다. for 조건내의 size()함수나 last()사용시 문제가 되는 경우, 불필요한 소스코드가 반복문 내에 있는 경우 등 조금만 생각하면 알 수 있는 것들이지만 무심코 지나칠 수 있는 것들이 때에 따라 퍼포먼스에 상당한 영향을 줄 수 있다는 점입니다. 놓치기 쉬운 것들이지만 그만큼 코딩 습관이 중요하다는 것을 느끼게 해줍니다. 특히 저는 전산실에서 시스템을 운영하는 입장에서 로그를 상당히 자주 보게 되어서 11장을 가장 주의깊게 읽었습니다. 특히나 WAS로그를 실시간으로 확인하는데 그러기 위해서는 빨리 지나가는 로그중에서 제가 보고자하는 부분을 찾기위해 log.println 이나 System.out.println 을 여러번 찍게됩니다. 물론 디버깅을 완료하면 대부분 지우지만 나중에 다시 볼 경우를 위해 파라미터 값을 찍어놓게됩니다. 하지만 이렇게 무심코 찍어놓은 로그가 관리하는 시스템 성능에 이렇게까지 악영향을 주는지는 줄은 몰랐는데 이번기회를 통해 앞으로는 소스를 볼때마다 꼭 필요한 로그를 제외하고는 주석처리해야겠습니다. 또한 제가 속한 곳에서는 07년 말에 프로젝트를 시작해서 08년 초까지 진행하면서 로그 관련 표준화는 본 적이 없었는데, 서버의 리소스와 디스크가 낭비된다는 점을 미리 알았다면 '개발 초기에 표준화를 건의해서 성능 향상시킬수 있을텐데...'라는 생각이 듭니다. 아쉽다고 생각한 점은, 문제 제시시에만 대화 형식으로 이루어져 있는데 해결해나가는 부분을 구성했으면 독자들에게 한발짝 더 다가가지 않았을까하는 생각이 듭니다. 물론 그렇게 되면 지면을 더 할애해야되겠지만... 마지막으로, 책에서 보여주는 예제들이 실제 운영해오면서 자주 볼 수 있는 문제점이라 그런지 저에게는 많은 숙제를 내준 것 같습니다. 그래서 코딩시 한번 더 생각해보는 것이 중요하다고 생각합니다. 잘못된 소스 코드 한줄이 최악의 경우 서버를 다운시킬 수 있는 만큼 올바른 코딩은 자신을 올바른 개발자나 운영자로 이끌 것이라고 생각합니다. |