처음 시작하는 파이썬 - 파이썬 패키지를 활용한 모던 컴퓨팅 입문, 2판
빌 루바노빅 지음, 최길우 옮김 / 한빛미디어 / 2020년 8월
평점 :
장바구니담기


처음 시작하는 이라는 제목이 무색하게 책이 참 두껍다.

보통 입문서라 함은 좀 얇고, 뭔가 보기에 친절 할 것 같은 느낌이라고 생각 되는 것을 확 깨고 있다. (심지어 표지도 좀 무섭다.)


다만, 내용을 살펴 보면 1부와 2부로 나누어 1부는 파이썬 기초를 다루고, 2부는 파이썬 개발을 위한 여러 가지 응용 패키지를 소개한다.


입문편과 활용편을 합쳐놓은 구성으로 파이썬을 처음 시작하는 사람이라면 1장 부터, 어느정도 기본적인 문법을 알고 있다면 2장의 내용 중에서 필요한 내용을 발췌해서 볼 수 있도록 하고 있다.

취미가 아니라면, 여러 프로그래밍 언어를 배우는 최대의 목적은 무언가 필요한 작업을 완료 하기 위함이다. 어떤 작업을 수행 하기 위한 방법을 알기 위해 주로 검색을 많이 사용 하는데, 이 책은 검색에 드는 시간을 많이 줄여 주며, 필요 한 내용을 어떻게 사용 하는 지 예제를 통해 잘 설명 하고 있다.


물론 파이썬의 전체 내,외부 라이브러리를 소개 하는 것은 불가능 하기 때문에, 내가 꼭 사용해야하는 것에 대한 설명이 없거나 부족 할 수 도 있지만, 한번 비슷한 일을 해본 경험이 있는 것은 아주 처음부터 시작하는 것 보다는 당연히 훨씬 수월하다.


파이썬을 통해 할 수 있는 일이 무궁무진 한데, 그걸 어떻게 시작해야 할지 약간은 막막한 사람에게 추천 하는 책이다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
실전 자바 소프트웨어 개발 - 4가지 프로젝트로 배우는 최신 자바 개발 기법
리처드 워버턴 지음, 우정은 옮김 / 한빛미디어 / 2020년 6월
평점 :
장바구니담기


최신 자바 개발 기법?

제목만 보고 최신 자바 기술을 다루는 책인줄 알았다. 최신 자바 기술을 확인 하는 것이 목적이라면 저자의 다른 책인 모던 자바 인 액션을 보는 편이 낫다.


물론 7장에서는 람다표현식, 스트림, Optional 등의 최신(?) 자바기술을 다루지만, 이 얇은 책에서 소개 이상의 내용을 기대 하기는 어렵다. 


이 책의 목적은 최신 기술을 소개하는 것이 아니라 좋은 소프트웨어를 개발 하는 방법을 배우는 것이다.


SOLID?

책에서는 소프트웨어 개발과 관련한 여러 핵심 주제들을 다룬다. 언젠가의 수업에서 들었던 듯한 SOLID 원칙을 책의 여러 챕터를 걸쳐 예제와 함께 소개 한다.


소프트웨어 설계에 관한 내용이다 보니 단순히 정의나 설명 만으로는 이해하기가 많이 힘든데, 실제 예제 (단순 예제가 아니라, 미니 프로젝트에 기반한 예제) 를 통해 이 원칙을 어떻게 구현 하는지, 구현 하는데에 어떤 디자인 패턴이 사용되는지를 설명 한다.  


누가 이 책을 봐야 할까?

자바도 사용 할 줄 알고, 스프링프레임워크도 사용 할 줄 알지만, 프레임워크가 왜 그렇게 구성되었는지 이해를 못할 때 꼭 읽어 봐야 한다고 생각 한다. 스프링프레임워크를 처음 배울 때 의존성 주입이라는 단어를 이해 못해서 고생 하던 때가 있었는데, 이 책을 먼저 읽고 의존성 주입에 관한 내용을 배웠다면, 이해가 훨씬 빨랐을거라고 생각한다.


물론 저자는 프로그래밍 경력이 조금 생기기 시작한 주니어 개발자라면 반드시 읽어야 한다고 이야기 한다.


프로젝트 기반 설명?

소프트웨어 개발 개념을 쉽게 이해 할 수 있도록 예제 프로젝트를 통해 설명 한다. 입출금 내역 분석기 프로젝트는 실제로 많이 사용하는  파일을 읽어서 업무를 처리하는 내용을 진행 하며, 소프트웨어 설계의 원칙 같은 큰 내용과, 예외를 처리하는 등의 소소하거나 중요한 내용 또한 메이븐 같은 빌드 도구에 대한 설명 까지 진행 하고 있다. 물론 구체적인 사용법은 따로 배우면 된다.


마치며

인덱스 포함 216페이지의 얇은 책이다.

어렵지 않은 책이지만, 사실은 어려운 내용을 다루고 있기 때문에  단순히 책을 다 읽었다고 해서 모든 내용을 이해하거나, 이해한 내용을 바로 사용 할 수 있는것은 아니다.


그래서 저자는 “중요한 것은 이를 연습(의식적 연습 : 목표를 가진 체계적인 연습)하는 것이다" 라고 이야기 한다. 반복하여 연습 하다 보면 의식적으로 사용하지 않더라도 습관으로 자리 잡는다. 모든 배움이 그렇겠지만 소프트웨어 개발의 세계에서도 통하는 이야기이다. 


사족

소프트웨어 카타라는 단어를 처음 들어서 검색해보았다. 일본에서 유래된 단어인듯 한데, 해석 하자면 작은 훈련용 코드를 많이 풀어보았다는 말인듯 한다. 


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
엔터프라이즈 자바 마이크로서비스 - JVM 기반 대규모 애플리케이션을 마이크로서비스로 설계, 구축, 관리하는 기술
켄 피니건 지음, 오현석 옮김 / 한빛미디어 / 2019년 7월
평점 :
절판


마이크로서비스라는 단어를 많이 들어보기는 했는데, 실제로 업무에 활용할 일이 없어서 전체적인 개념을 이해하고 있지는 못했다. 


책은 전형적인 엔터프라이즈 자바 아키텍쳐에서 시작해서 그것이 왜, 어떻게 복잡해졌는지를 보여주고 그로인한 문제점이 무엇인지 확인 하는 것으로 시작 한다.


그리고 마이크로서비스가 무엇인지, 마이크로서비스들로 이루어진 분산 아키텍처가 무엇인지 또한 어떤 이점이 있는지에 대해서 설명을 이어 나간다.


1장의 마지막에서는 마이크로서비스로 마이그레이션 할 때 사용할 수있는 패턴들에 대해서 이야기 하고 있는데, MSA 에 대한 전체적인 그림을 파악 하려면 1장만 읽어도 될듯 하다.


2장 부터는 실제로 카얌베 모노리스라는 애플리케이션을 마이크로서비스로 마이그레이션 하면서 마이크로서비스를 엔터프라이즈 자바로 개발하는 방법에 대해 배운다.


5장은 클라우드 개념 및 클라우드안에서의 개발에 대해 개념이 별로 서있지 않아서 많이 어려웠다.


좀 건너뛰어 9장을 재미있게 읽었는데, 키클록이라는 사용자 식별과 접근 관리를 제공해 주는 오픈소스 프로젝트를 소개 하고, 이것으로 마이크로서비스에서 사용하는 것에 대한 내용을 다룬다. 


“마이크로서비스에 필요한 것이 무엇이든 (인증, 권한 부여 또는 둘 다) 설계 단계에서 보안을 고려해야 한다. 미루고 미뤄서 마지막에 다룰 수 있는 것으로 보안을 간주해서는 안된다” 라는 문구는 인상적이다.


책을 읽으면서 예전에 봤던 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기 (https://www.slideshare.net/balladofgale/spring-camp-2018-11-spring-cloud-msa-1) 를 다시 한번 봤는데, 예전에 전혀 모르겠던 내용이 조금은 더 이해되는 느낌이기는 했다. 


MSA 에 대해서 전혀 모른다면 1장 정도는 꼭 읽어보길 권하고 싶다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
학교에서 알려주지 않는 17가지 실무 개발 기술 - 문자열 인코딩부터 웹 필수 지식까지
이기곤 지음 / 한빛미디어 / 2020년 4월
평점 :
장바구니담기


공부를 처음 시작할 때 부터 지금까지,  개발에 관한 모르는 용어나 기술은 줄어들지 않고 있다. (오히려 계속 늘어가고 있는 실정이다.) 


보통 무언가 작업을 하다가 모르는 내용이 나와서 막히면 구글신의 은혜를 입기 위해 크롬을 키기 마련이다. 다만, 제대로 정리된 내용을 찾아내고 그걸 또 이해하는 것은 온전히 나의 몫이다.


더욱이 시작한지 얼마 안된 상태에서는 무엇을 먼저 찾아야 할지도 모르는 경우가 수두룩 하다.  그래서 간단하게 나마 여러가지 기술을 소개 하는 책에 대한 요구가 있어 왔고 이미 그런 책들을 많이 보아 왔다.


“학교에서 알려주지 않는 17가지 실무 개발 기술” 은 실제로 실무에서 사용 하는 여러가지 기술에 대한 내용을 소프웨어를 지탱하는 기술, 데이터 처리 기술, 웹을 지탱하는 기술 이라는 3가지 파트로 나누어 17가지의 기술을 설명 하고 있다.


기술에 대한 레퍼런스 북이 아니라, 소개서나 입문서의 포지션을 지니고 있기 때문에 자세한 내용은 설명하지 않는 것도 많이 있지만, 설명 자체가 군더더기 없고 깔끔해서 읽으면서 딱히 막히는 부분이 없었다.


그리고 요즘 많이 사용 하고 있는 파이썬 언어로 간단한 예제를 작성하여 보여주기 때문에 때론 뜬구름 잡기가 될 수 있는 부분에 대한 설명도 구체적으로 보여 주고 있다. (책을 읽으면서 각자 사용하는 언어별 예제를 작성해 보는 것도 재미있을 듯 하다.)


기본이 되는 기술들에 대한 개략적인 이해를 배우고, 사용하는 언어별로 내용에 대항하는 라이브러리나 기술 등을 찾아서 공부 하는 로드맵을 스스로 그리다 보면, 개발 실력이 어느순간인가 일취월장 해질 것으로 기대 된다.


신입 사원이 들어 온다면 꼭 한권 선물하고 싶은 책이다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
리팩터링 2판 (리팩토링 개정판) - 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기
마틴 파울러 지음, 개앞맵시 외 옮김 / 한빛미디어 / 2020년 4월
평점 :
장바구니담기


실력없는 개발자만화 - 똥똥배 (https://bit.ly/3bPgO6I)


만화에서 하고자 하는 이야기랑은 좀 다르긴 하지만, 저기서 나오는 전 개발자가  실제로는 대부분 나다. 


짜놓은지 며칠만 지나도 기능 추가 등을 위해서 열어보면 어떻게 이렇게 엉망진창으로 해놓았지라고 생각할 경우가 많다. 생각해 보면, 여러가지 이유로 일단 돌아가기만 하게 하자 라고 하고 작성한 코드들을 나중에 쳐다 볼 때 더욱 그랬다. 


심지어 이건 과거의 이야기가 아니고 현재 진행형이다....


알아보기 쉽고, 좋은 코드를 작성하는 것에 대한 책이 여러가지 있지만, 그중 가장 유명한 책이 리팩터링이다. 


리팩터링 책이 (원서 기준으로) 20년 만에 2판이 나왔다. 원서 기준으로 20년 만의 개정판이라니 대단하다. 개작을 할 수 있는것도 대단하고, 이 책이 아직도 읽히고 팔린다는 것이 대단하다.


리팩터링이란 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법이다. 그리고 한다고 표시가 나는 것도 아니고, 기능이 달라지는 것도 아니고 (달라지면 안되지), 성능이 좋아지는 것도 사실 아니다.


책에서도 이야기 하지만, 리팩터링을 해야하기 때문에 일정을 빼야 한다고 실제로 윗사람에게 이야기를 하면 잘돌아가는 프로그램을 괜히 건드려서 오류가 나면 어떻게 할거냐, 공연한 시간낭비를 하지 마라 라는 소리를 듣기 쉽상이다. 


그럼에도 불구하고, 저자는 다음과 같은 이유로 리팩터링을 해야 한다고 한다. 


- 코드를 건강한 상태로 유지하는데 도움을 줄 수 있다. 

- 소프트웨어 설계가 좋아진다 (아키텍쳐를 충분히 이해하지 못한 채 단기 목표만을 위해 코드를 수정하다 보면 기반구조가 무너지기 쉽다.) 

- 소프트웨어를 이해하기 쉬워 진다. 

- 버그를 쉽게 찾을 수 있다. 

- 프로그래밍 속도를 높일 수 있다. 


그리고 리팩터링을 하는 것은 내가 작성하는 코드를 개선 하고 싶고, 좀더 나은 개발자로 성장하고 싶다면 꼭 해야 한다고 생각 한다. 모든 기능을 지속적으로 개선해나가는 의지를 가지는 것은 자신의 성장에 크게 도움이 된다고 생각 한다. 


책은 순서대로 리팩터링은 무엇인지, 언제 또 왜 해야하는지, 어떻게 해야하는지를 알려 주고 있다. 그리고 언제 하지 말아야 할 지 까지. 


나의 경우 2장까지는 주욱 한번에 보았고 3장 부터는 코드를 쳐다 보다가 이걸 어떻게 개선할 방법이 없을까 할 때 찾아서 보고 또 보고 하고 있다.  


작성된 코드를 리팩터링 할 때 마다, 프로그램의 성능이 좋아지지는 않을지라도 내머리속 성능은 좀나아지는거 같기는 하다. 


내가 짠 코드 보고 내가 욕을 안하는 그날 까지 리팩터링은 계속 된다.


댓글(0) 먼댓글(0) 좋아요(4)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo