IT/책리뷰 / / 2020. 12. 31.

[책리뷰] 자바 개발자를 위한 97가지 제안 - 제이펍

포스팅 목차


    개인 취향일 수 있겠지만 서점에서 책을 고를 때 항상 먼저 보는게 있다면 첫인상(?) 이라고도 할 수 있는 책 재질이나 디자인(?) 편집이 호감이 가는 책들이 있습니다. 물론 내용도 중요하지만 읽을 때 좀더 즐거움을 줄수 있는 요소니깐요^^

    이 책을 받아보고 첫인상은 무척 마음에 들었습니다. 책 받기 전에 제이펍 블로그를 통해서 어떤 책인지 미리 살펴 보았는데, O’Reilly 시리즈 중 케블린 헤니(Kevlin Henney) 님의 97 Things Every Java Programmer Should Know의 원서를 번역한 책이었습니다. 제목부터 번역하는데 "제안"이라는 말로 번역할 만큼 많이 고민하고 많은 신경을 쓰신게 느껴졌습니다.

    책에 대한 자세한 내용은 아래 제이펍 블로그를 통해 볼수 있습니다 ^__^

    https://jpub.tistory.com/1118

    자바 개발자를 위한 97가지 제안

    더 나은 자바 개발자로 성장하기 위한 새로운 시각! 다른 언어 개발자가 보기에도 충분한 범용적인 프로그래밍 노하우! 도서구매 사이트(가나다순) [교보문고]  [도서11번가]  [반디

    jpub.tistory.com


    책에 대한 전체적인 내용은 73인의 전문가를 통해 듣는 자바 뿐만 아니라 테스트, 배포, 팁 등 다양한 내용들을 담은 에세이 같은 형식의 책이었습니다. 그래서 가볍게 읽기도 좋고 어떤 기술을 배우는 책이라기 보다는 그들의 생각을 들어보고 공감하며 고민해 볼 수 있게 해주는 책이라고 생각합니다.

    그리고 각 97가지 주제마다 내용 중에 중요한 키워드를 강조해주고 있어서 해당 주제와 함께 한눈에 이 기고자가 어떤 내용을 말해 주고 싶은지 쉽게 알아볼 수 있도록 도와주도록 편집한 점이 좋았습니다.

    약간 아쉬운 점은 에세이 형식이긴 하지만 약간의 분류가 들어갔으면 좋지 않았을까라는 생각이 들었습니다. 기고자 별로 분류한다던가, 키워드별로 분류한다던가.. 물론 이건 번역서이기도 하고 개인 취향이기에 이런 형식을 좋아하시는 분들도 있을거라 생각합니다.

    책을 볼때 전체적으로 한눈에 볼 수 있는 목차를 보게 되는데 목차 내용만 봐도 흥미로운 제목과 한번 쯤은 고민해 봤을 제목들도 있었고 미래에 대한 고민을 해 볼수 있는 제목들도 많았습니다.

    사실 자바 개발을 예전에 하다가 지금은 시스템 운영/개발 업무를 하다 보니 크게 도움은 안될거 같았지만 해당 내용들이 JVM, GC, JDK 등 자바에만 국한되어 있는 것도 있지만 변수, 간결한 코드 작성, 주석, 널 변수, 간결한 코드 작성, 주석, 널같이 다른 언어에서도 생각해 볼 수 있는 문제들도 있었습니다.

    더불어 자기계발, 개발 문화, 팀 문화, 배포, CD, 데브옵스 같은 키워드들에 대한 기고자들의 생각도 간접적으로 느낄 수 있는 주제들도 있었기 때문에 단지 개발자들만을 위한 책은 아니라고 생각합니다.

    대부분의 내용들은 개인에게도 좋지만 팀, 또는 다른 개발자들을 배려하기 위한 많은 고민들에 대한 주제들이 아닐까라는 생각을 해봤습니다.




    ​몇가지 읽으면서 줄친 내용들을 적어보았다.
    이 밖에도 더 좋은 내용들이 많이 들어있다.

    # 문제와 업무를 더 작은 단위로 나누기
    - 작은 문제를 해결하면 더 이상 그 문제는 고민하지 않아도 되고 커밋도 자주하게 된다.
    - 커밋을 자주 하게 되면 롤백 및 디버깅에도 도움이 된다.
    - "특별하다" 라는 업무도 작게 나눌수 있다.

    # 기본 도구의 사용에 충실하자
    - 진정한 기술을 손에 넣으러면 기본 도구를 이해하고 충분히 활용할 필요가 있다.

    # 불꽃 그래프를 이용한 성능 확인
    - 넷플릭스 성능 엔지니어가 만든 flame graphs 를 이용한 성능 확인

    # 자주 릴리스하면 위험을 줄일 수 있다
    - 얼마나 많은 테스트를 실행하든 결국은 성공 여부를 확인 할 수 있는 곳은 프로덕션 환경뿐이다. 작고 빈번한 릴리스는 실패의 가능성을 줄인다. 릴리스에 최대한 작은 변경사항만 포함하면 릴리스로 인해 실패할 가능성이 작아진다.
    - 작은 변경 사항을 자주 릴리스해서 장애 가능성을 줄이고 변경 위험을 낮추자.

    # '풀스택 엔지니어'는 마음가짐이다.
    - 할수 있다는 태도로 시니어 이면서 동시에 주니어가 되는것이다.

    # 널을 피하는 방법
    - 변수를널 값으로 초기화하지 말자
    - 널 값을 리턴하지 말자
    - 널 값 매개변수를 전달하거나 받지 말자

    # 지속적 전달로 반복가능성과 감사가능성 향상하기
    - 개발자가 변경사항을 커밋하는 시점부터 해당 변경 사항이 프로덕션 환경에 배포될 때까지의 모든 과정에 포함된 테스트, 변경 제어, 배포 처리 등은 반드시 자동화 해야 한다.
    - CD를 도입하면 코드를 배포하는데 드는 시간과 노력을 줄일 수 있다.
    - CD를 도입하면 배포 절차의 반복가능성 과 감사가능성이 향상 된다.

    # 일이 끝났어요. 그런데...
    - 끝에 대한 정의!
    - 아직 끝나지 않은 상태는 테스트 작성이 문서화 또는 예외 상황 처리가 안된 경우가 보통이다.
    - 반드시 기억하자. 실제로 끝내기 전까지는 절대 끝냈다고 말하지 말자.

    # 주석의 종류
    - 계약은 자바독 주석으로 작성한다. (/** */)
    - 문백은 블록 주석으로 작성한다.(/* */)
    - 이사한 점은 줄 단위 주석으로 작성한다. ( // )

    # 관용적인 자바 코드를 학습하고 머릿속에 캐시하자
    - 커뮤니티가 어떤 작은 기능을 표현하기 위한 일반적인 방법, 보편적으로 동의한 방법, 즉 이런 관용 코드를 아무 생각 없이 작성할 수 있다면 빨리 코드를 작성할 수 있다.
    - 이 부분은 자바 외에도 다른 언어에서도 마찬가지란 생각이 들었다.



    마지막으로 다른 좋은 말들도 많았지만, 자신의 직업을 멋지게 표현한 분이 있었다.

    내 직업은 코드를 바꾸는 일이 아니라 변화를 설계하는 일이라 생각한다. 코드는 그저 세부 사항일 뿐이다.
    - 제시카 커



    가끔 우물 안 개구리 같은 느낌이 들때가 많다.
    반복적인 일만 하다 보면 답답하기도 하고 자기 계발에도 한계가 있다고 느낄 때가 있다.
    현재 일하는 문화와 맞지 않는 부분들도 있지만 책속 전문가들은 어떻게 일하고 어떤 문화를 가지고 있는지 알 수 있었던 기회였다.
    자바개발자 만을 위한 책이 아니라고 말한 이유를 알거 같다. 개발자와 엔지니어, 팀리더들도 한번쯤은 읽어보시기를 추천한다.

    그리고 추가적으로 책 읽으신 후 서평이벤트도 도전해보시고 좋은 책한권 더 읽을 기회를 노려보세요 :)



    [책구매 바로가기]
    Coupang


    #제이펍 #자바개발자를위한97가지제안 #개발자 #서평 #책리뷰


    • 네이버 블로그 공유
    • 네이버 밴드 공유
    • 페이스북 공유
    • 카카오스토리 공유