|
한줄 소감 "기본적으로 JAVA개발자라면 한권씩 있을만한 책에 포함되었으면 하는 JAVA책" 이라고 정리하고 싶다. 서론 우선 이책은 초보자가 읽기에는 너무 어려운 책이라고 설명하고 싶다. 그렇다고 잘못 쓰여진 책이다는 의미가 아니라 어느정도 JAVA를 다룰줄 아는 사람이 읽으면 시너지 효과를 낼수 있다는 말이다. 다시말해 이책은 일반적으로 시중에 나와있는 JAVA책이 아닌 실제로 JAVA로 서비스를 운영해보고 그 노하우를 예제와 함께 담겨있기에 더욱더 도움이 될만한 책이라고 말하고 싶다. 본론 술술 읽어나가기 편한 말투로 글이 쓰였으며 한사람의 지식이 아닌 각각의 전분문야에 맞추어 글이 쓰여졌기 때문에 좀더 믿음직스러운 책이라고 말할수 있을것 같다. 단, 네이버에서 운영하는 기술블로그인 HelloWorld 에 있는 내용 그대로를 편집이 잘 되지 않은채 바로 책으로 출간해서인지 전체적인 책의 흐름이 끊긴다는 아쉬움이 있지만 각각의 제목에서 볼수 있듯이 각 챕터들은 독립적으로 구성되어있기 때문에 관심있는 분야부터 콕 찝어서 읽기에는 안성마춤이라고 말할수 있다. 일반적인 자바 레퍼런스 책이 아니고 이책처럼 자바의 활용(?)을 논하는 책같은 경우는 그냥 자기생각을 펼치는 수준으로 끝나는게 대부분이였지만 이 책은 일단 예제 중심으로 문제를 제시하고 풀어 나가려는 과정을 독자들에게 알려줌으로써 생각하는 방법을 알려주는것도 눈여겨 볼만한 부분이다. 또한 각 챕터의 마지막에는 "마치며" 라는 소제목으로 앞서 말했듯이 각 전문분야에 맞는 사람이 글을 전개한 후 마지막으로 정리해주는 부분이 있어 자칫 잘못하면 "어렵다", "무슨 말을 하려는지 모른다" 는 부분을 잡아주는 요소도 좋은 부분이다. 아쉬운것은 기본적으로 이해를 하는데 있어 문자보다는 가시적인 그림, 및 도표를 중심으로 설명이 이루어졌으면 좋았을것 같다는 아쉬움이 든다. 물론 본인은 소스코드 중심적으로 설명이 되어있어 이해하기 쉬운 부분도 있었고, 딱딱한 IT적인 내용을 이해하기 쉽도록 실생활에서 일어나는 예를 든 부분은 매우 좋았던 요소인것 같다. 학부시절 학교/학원에서 배워왔던 내용과는 전혀 다른 시점에서 JAVA를 논하는 부분에 있어 JAVA를 처음 접하는 사람들에게는 조금 어려운 부분이 있을수 있으나 많이 다뤄보고 기본적인 자바 프로그래밍을 할수는 있지만 GC, JVM등 이해하기 난해한, 접근하기 까다로운 부분을 중요하게 여기며 "장애 사례"를 들어가면서 알려주는 모습이 가장 인상적인 부분으로 기억된다. 결론 이책을 얼마나 어떻게 활용하는가에 따라 독자의 실력을 키울수도, 그냥 그대로 유지할수도 있을것 같다. 적어도 두세번은 다시 정독해봐야 저자가 말하는 바를 정확히 알수 있을것 같고, 또 이를 제대로 내 것으로 습득할수 있을것 같다. 마치며, 좋은 기회가 되어 이책을 읽게 되었는데 IT 실무업계에서 그냥 저냥 코딩하는것보다는 이렇게 깊이 있는 개발자들이 써놓은 책을 읽어봄으로써 나 자신을 다시 돌아볼수 있는 기회가 되지 않을까 싶다. <이 글은 TECH@NAVER 서평 작성 이벤트에 응모하여 받은 도서를 읽고 작성했습니다.> |
|
2010년부터 시작된 네이버 시리즈의 10번째 책이다. 소프트웨어 품질관리, 자바스크립트 UI 개발과 Jindo 프레임워크, 디자인 스튜디오와 함께하는 기획서 만들기, NHN 오픈 API를 활용한 매시업, 자바스크립트 성능 이야기, 웹 접근성 프로젝트 시작하기, 웹 기획자가 알아야 할 서비스 글쓰기의 모든 것, 쉽고 빠른 모바일 웹 UI 개발, 프런트엔드 개발 시작하기 까지 네이버 개발과정의 거의 전분야에 대해 시리즈가 이어져 오고 있다. 책 표지의 디자인도 이뻐서 자주 손이 갈 것 같다 |
|
네이버 기술 블로그인 헬로월드를 통해서 이미 접했던 내용도 있고, 봐야지 하면서도 업무를 핑계로 못 봤던 내용들도 있어서, 이런 것들이 마음에 부채로 쌓여 있었다. JDk7이 나왔을 때도, JDK6을 오랬동안 사용하고 있어 불편한 점을 못 느껴 별 감흥이 없었는데 JDK8이 나왔을 때는 새롭게 제공하는 기능들에 관심이 가기 시작했고, 기존 헬로월드의 내용들을 JDK8을 반영해서 하나의 책으로 엮어서 나왔다는 것에 기대감이 컸다 1부 자바의 API 이해하기에서 관심있게 읽었던 부분은 자바의 날짜와 시간 API 설명과 람다에 대한 설명이었다. Java API 개발자들이 날짜와 시간 API를 왜 이렇게 복잡하게 만들었을까 생각하면서 짜증섞여가며 개발을 했었는데, 이런 부분을 사회제도, 역사적/과학적 사실들을 확인해 가면서 오류를 수정하고, 대안을 제시해준 점이 인상 깊었다. JDK8에 대한 내용을 보다 보면 람다 표현식에 대한 내용을 자주 듣고 보게 된다. 람다를 설명한 챕터에서는 JDK8에 람다가 적용되기 전에 JDK7 기본 API로 코드를 구현하고 여러 오픈소스 라이브러리와 JVM언어들이 어떻게 자바로 함수형 프로그램와 람다 표현식을 사용할 수 있게 도와주는 지 보여주고, 마지막으로 JDK8의 람다 구현해 대해 설명해 주어, JDK8 람다 구현에서 왜 그러한 인터페이스와 클래스를 사용하는 지에 대한 이유와 앞으로 람다가 어떻게 발전해 나갈 지에 대한 식견을 넓혀주었다. 또한, 람다를 어떻게 사용할 지에 대한 고민거리를 던져주었다. 개인적으로 집중해서 봤던 내용들은 2부와 3부에 있는 JVM과 가비지 켈렉션에 대한 내용이다. 단편적인 지식으로만 알고 있던 JVM 명세와 JVM내부구조, 가비지 컬렉션의 구조와 동작 방식을 이슈해결을 위한 일관된 주제로 여러 챕터에 걸쳐 그림으로 내부구조와 동작 방식을 표시하고 설명을 해서 책 제목 처럼 실제 실행해 보지 않고도 읽으면서 배운다는 느낌을 받게했다. 마지막으로. 네이버 서비스를 개발하면서 경험했던 자바 기술들을 정리한 책이라 초급을 막 벗어난 자바 개발들의 중급 개발자로의 성장에 대한 갈증을 조금이나마 해소할 수 있을 것 같다. 무엇보다도 책 내용에 딸린 각주들을 꼼꼼히 살펴 공부한다면, 중급 개발자 이상으로 발전하는 밑거름이 될 것 같다. <이 글은 TECH@NAVER 서평 작성 이벤트에 응모하여 받은 도서를 읽고 작성했습니다.> |
|
처음부터 출판을 목적으로 나온 내용은 아니고, 네이버 기술 블로그인 헬로월드(http://helloworld.naver.com)의 글들을 정리한 것입니다. 해당 사이트에 가보면 여러 주제의 글들이 있는데, 그 중에 자바 관련한 글들을 모아서 책으로 펴냈습니다.
자바의 문법 소개나 개발방법론 등에 관한 내용은 아니고 자바에 대한 깊이 있는 내용들을 설명하고 있습니다. 초급 개발자가 읽기는 무리이고, 중상급은 되야 배우는 재미도 있고 이해가 갈 것 같습니다.
1장은 날짜와 시간 API와 HashMap의 구현 등으로 흥미를 끌면서 슬슬 예열을 하다가 , 2장, 3장에서 JVM이나 쓰레드 덤프, GC 등으로 갑자기 확 달려옵니다. 저는 원래 이런 로우레벨의 이야기를 좋아해서 재밌게 읽었는데 많은 분들이 만족할 수 있을지는 모르겠습니다 ^^ 내용 자체는, JVM 스펙 자체를 설명한다거나 GC를 하기 위한 알고리즘 자체를 지루하게 설명하는, 그런 내용은 아닙니다. 사실 JVM이나 GC라는 단어만 봐도 너무 어려울 것 같아서 주저하게 되는데요, 가능한 가볍고 쉽게 전달하기 위해 노력을 한 것이 느껴 집니다. 다른 부분은 내용의 통일성이 많지 않은데, 3장의 GC는 집중적으로 설명을 해주고 있습니다. 덕분에 많이 배울 수 있었는데요, 10장의 '자바 가비지 컬렉션의 작동 과정' 하나만 봐둬도 충분한 값어치를 한다고 생각합니다. 12장의 '가비지 컬렉션 튜닝'도 굉장히 흥미로운 내용이지만, 저는 아직 이 단계까지는 가지 못 했네요 ^^; 서버 운영을 하는 쪽에서는 충분히 고민되는 부분일 것 같습니다. 만족스러운 내용이지만 굳이 단점을 찾자면, 제가 앞부분에서 중상급은 되는 개발자에게 적합한 책이라고 했지만 이 책만으로 GC등에 대해 자세히 알기에는 부족합니다. 일단 입문서로써 활용하시고 다른 고급 자료들로 공부하시면 좋을 것 같습니다. <이 글은 TECH@NAVER 서평 작성 이벤트에 응모하여 받은 도서를 읽고 작성했습니다.> |
|
쉽지 않은 주제를 쉽게 풀어쓴 책, 중고급 개발자를 위한 책이지만 초급자도 이해하기 쉽게 쓴 책이라고 이야기하고 싶다. 일정 이상의 경력을 가진 개발자라면 자신의 시스템에서 사용하는 기술 위주로 지식이 한정되곤 한다. 그 한계를 뛰어넘기 위해서 다양한 글을 읽기도 하고, 다른 사람들은 어떤 분야에 관심이 있을까? 라는 의문을 품기도 하고, 관심있는 분야의 커뮤니티 활동을 하기 시작하기도 한다. 그런 분들이 이 책을 읽으면 쉽게 네이버 개발자들이 관심있는 분야를 알 수 있을 꺼 같다. 이 책은 다양한 팀에서 다양한 주제에 관심을 가지고 깊이 있게 연구한 결과물이라고 생각한다. 물론 이런 것까지 알아야 할 필요가 있을까 하는 주제도 있을 것이고, 관심이 없는 분야도 있을 것인데, 그런 주제에 대해서는 제목만 보고, 다음에 관심이 생길 때 찾아볼 수 있는 정도로 읽으면 도움이 될 꺼 같다. 그리고 이런 지식을 모두 습득해야만 개발을 할 수 있는 것은 아니지만 '적어도 네이버에서는 이런 고민들을 가지고 있고, 이런 문제를 풀려고 노력하는구나' 정도를 이해하면 도움이 될 꺼 같고, 다른 곳에서도 다들 한 번씩은 비슷한 고민을 하지 않을까 생각이 든다. 자바의 기본서에서 다루지 않는 API들을 알고 싶다면, 항상 사용하는 HashMap의 내부 동작에 대해서 좀 더 깊게 알고 싶다면, 자바 컬렉션을 개선한 라이브러리를 알고 싶다면, 문제 발생 시 문제 해결하는 방법들이 궁금하다면, Java를 사용하면 GC에 대해서 고민을 해야 되는데 이 책을 읽으면 알 수 있다고 생각한다. 한 마디로 요약하면 사고의 폭을 넓히기 위해서 읽기를 추천 드리는 책, 쉽게 읽히지만 내용은 가볍지 않은 책이라고 소개하고 싶다. <이 글은 TECH@NAVER 서평 작성 이벤트에 응모하여 받은 도서를 읽고 작성했습니다.> |
|
이 책의 내용을 한줄로 평가하자면, “넓지는 않지만, 특정 영역을 깊게 설명한 JAVA 책”입니다. 이 책은 처음 JAVA를 배우는 사람에게는 적합하지 않을 수도 있습니다. JAVA 개발 경험이 많은 사람일 수록 이 책의 내용을 더 잘 이해하고, (자신이 지식이 깊지 않음을) 반성할 것 같습니다. 아마, 10년차 개발자도 새롭게 배울만한 내용이 있을 것입니다. 소프트웨어 개발을 오래 하다보면, 공통적으로 경험하게되는 내용들이 있습니다. 초보 개발자들은 HashMap에 너무 많은 데이터를 넣어, 전체 동작을 느리게 만드는 실수를 몇 번 합니다. 과거 날짜를 많이 다루다 보면, Calendar에 없는 시점이 있다는 것을 발견하고, Calendar의 버그를 의심하기도 합니다. 일반적인 사람들은 적당히 수정하여 해결하고, 조금 부지런한 사람들은 원리를 찾아보고 이해합니다. 더욱 부지런한 사람들은 이해한 내용을 정리하고 공유를 합니다. 부지런하고 깊이 공부하신 분들이 공통적인 경험에 대해 정리한 내용들을 모아 놓은 책입니다. 이 책을 읽으면 앞으로 몇 년간 경험할 내용을 미리 한번에 읽어볼 수 있습니다. 실무적인 내용을 많이 담고 있습니다. 메모리 누수를 찾는 이야기, JDBC에 대한 이야기 등 실무에서 종종 경험하고 해결해야하는 문제들 입니다. 미리 간접적으로 경험해 보고, 비슷한 현상시에 이 내용을 떠올려서 해결하시기 바랍니다.
몇 년에 걸쳐서 만들어진 글들입니다. 1년만 지나도 구닥다리가 되면 IT세상에서, 글들을 수정하고 편집하는 일이 쉽지는 않았을 것 같습니다. 그만큼 연결이 매끄럽지 못한 부분도 보입니다. 여러 사람의, 여러 시대의 글들을 하나의 책으로 구성하다보니 어려움이 있었을 것임을 생각하면, 이해하고 읽으실 수 있을 것입니다. <이 글은 TECH@NAVER 서평 작성 이벤트에 응모하여 받은 도서를 읽고 작성했습니다.> |
|
일단 번역된 책이 아니고, 실무자의 실무 경험을 바탕으로 쓰여진 책이라 이해하기 어렵지 않고 유익하게 읽을 수 있었다. 자바로 개발을 어느 정도 해본 개발자를 대상으로 쓰여진 책이라 자바에 대해 잘 모르는 사람에게는 좀 어려울 수 있다. 각 챕터별로 독립된 주제들로 구성되어 있는데 꽤 깊이도 있고 내용도 유익했다. 날짜 시간 API 설명 부분에서, 단순하고 쉬울거라고 생각하기 쉬운 날짜, 시간 다루기가 생각만큼 단순하지 않고 복잡한 문제들이 있다는 것을 알 수 있었고, 저자가 자바의 관련 오류들을 고치기 위해 관련 정보들을 자세하게 추적하고 리포트 하는 열의가 대단하다는 것도 느낄 수 있었다. 대학을 졸업한지 10여년이 되어서 해시 같은 기본적인 알고리즘이나 자료구조에 대해서 더 공부해 볼 기회는 없었는데, 이 책에서 해시 알고리즘의 최근의 발전을 자바 버전에 따른 구현의 변화와 함께 자세히 알 수 있었다. 자바 7에서 잠깐 도입되었던 MurmurHash는 자바 8에서는 빠지고 다른 해시로 대체되었는데, 자바 9에는 아마 MurmurHash보다 더 빠른 xxHash(https://github.com/Cyan4973/xxHash)가 도입되지 않을까 예상한다.(xxHash는 2014년 최근에 github에 공개된 오픈소스로서, 이 책에는 언급되지 않았고 개인적인 예상이다) 그리고 유심히 보다보면 3개의 이스터 에그를 발견할 수 있다. <이 글은 TECH@NAVER 서평 작성 이벤트에 응모하여 받은 도서를 읽고 작성했습니다.> |
|
"네이버를 만든 기술 읽으면서 배운다- 자바편" 이라는 제목의 책을 접하고 들었던 생각을 우선 작성해보겠다.
1. 책을 선택하는 사람들이 제일 먼저 보는 책의 제목... 2. 이 책을 봐야 하는 사람. 4. 내가 읽었던 자바 서적과 차별성은 있는가
자, 그럼 이제 책의 내용을 한번 살짝 소개 하도록 하겠다. 이 책은 총 4부로 구성되다.
책의 구성에서 볼 수 있듯이 고리타분한 챕터는 없다. 1부. 자바의 API 이해하기 2부. 문제분석과 사례 3부. 가비지컬렉션 4부. 데이터베이스 연결 설정
이책은 IT 기업의 선두인 네이버의 핵심 자바 개발자들이 자신이 가장 자신있어야하는 자바의 특정 분야에 대해서 본인의 이름을 걸고 작성해서 그런지 자바를 시작하는 이... 자바에 대해서 조금 안다고 생각하는 이...
<이 글은 TECH@NAVER 서평 작성 이벤트에 응모하여 받은 도서를 읽고 작성했습니다.>
|
|
이 책을 다 읽고 가장 먼저 든 생각은, 이 책이 자바라는 언어를 막 익힌 초보자부터 자바를 어느 정도 사용은 해봤지만 깊이있게 공부한 적 없는 초중급개발자를 중고급개발자로 끌어올려주는 촉매가 될 수 있을거라는 생각이었다. 구성이 참으로 독특한데, 맨 처음 나오는 1부인 자바의 API 이해하기 부분은 팁 같은 느낌이다. 상대적으로 주제가 가볍지만, 유용하다. 1부에서 다루는 네 가지 주제인 날짜, HashMap, 외부 프로세스, 람다는 얼핏 보면 연관성이 없어보인다. 하지만, 기존의 방식에서 자바 8로 인해 개선이 되었다는 공통적인 주장을 보여주며 이를 통해 최신 기술에 대한 관심을 환기시켜준다. 또한 자바 8을 통해 개선되는 방식을 보여줌으로서 API에 대한 좀 더 깊은 이해를 할 수 있도록 도와준다. 하지만 이 책의 본론은 2부부터 4부부터 진행되는 JVM, 가비지 컬렉션, 데이터베이스 연결에 대한 것이라고 생각한다. 특히 JVM과 가비지 컬렉션. 이 두 가지의 경우 깊게 다루는 국내 서적이 전무한 것으로 알고 있다. 또 평범한 자바 개발자 역시 대략적으로 어떤 역할을 하는 지에 대해서만 알고 있지 원리나 작동 방식을 꿰뚫기는 커녕 관심도 없는 경우가 허다하다고 개인적으로 생각한다. 혹여나 배우고 싶다는 생각이 들어도 영문 서적이나 자료를 통해 배울 수 밖에 없기 때문에 상대적으로 진입 장벽이 높다고 할 수 있다. 그런데 이제 이 책을 통한다면, JVM과 가비지 컬렉션에 대한 개론적인 지식을 익힐 수 있어 조금 더 깊이있는 이해를 할 수 있게 된다. 또 그를 활용한 분석이나 장애처리, 튜닝 기술을 다루면서 그 지식을 실질적으로 활용할 수 있는 방법을 제시한다. 즉, 단순히 이론뿐만이 아니라 직접 써먹을 수 있도록 함으로써 이 책이 진정한 가치를 드러낸다고 생각했다. 책 소개 내용 그대로, 자바를 더 깊이 이해하고 싶다면 반드시 읽어볼 것을 추천한다. <이 글은 TECH@NAVER 서평 작성 이벤트에 응모하여 받은 도서를 읽고 작성했습니다.> |
|
자바에 대해서 내용을 심도있게 상세하게 다루고 있다. 특히 Java 1.8에 대해서도 다루고 있어 자바 언어에서 취약했던 날짜 관련 클래스들이 1.8에서 어떻게 좋아졌는지 소개하고 있다. 실제 개발에서 JDK 1.8을 이용하여 해당 날짜 클래스를 사용해 봤는데 정말 획기적인 발전이라 생각한다. 그리고 경험해보지 못했던 날짜 클래스에 대한 버그 사례도 소개 하고 있어 미리 사전에 그런 버그를 방지할 수 있는 지식을 쌓을 수 있었다. 또한 자바의 가비지컬렉터에 대해서도 상세하게 다루고 있어 메모리를 아예 생각하지 않고 개발하는 개발자가 메모리 누수 현상을 맞닥드렸을 때 어떻게 문제를 풀어갈 수 있는지 예시를 통해 자세히 설명하고 있어 큰 도움이 될거라 생각한다. |