적정 소프트웨어 아키텍처 - 리스크 주도 접근법
조지 페어뱅크스 지음, 이승범 옮김 / 한빛미디어 / 2022년 5월
평점 :
장바구니담기



1. 시작


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


2022년 6월달에 소개할 책은 적정 소프트웨어 아키텍처 입니다




<표지>


개발자가 힘들어하는 것 중에 하나가 아키텍처 입니다

누구한테서 배우기가 쉽지 않은 것이 아키텍처 설계입니다


누구한테 배울 수 없으니 얼마나 세부적으로 설계해야하는지 알 수가 없는데, 바로 이책은 그 ‘적정' 수준에 도움을 줄 수 있는 책입니다.


개발자로서 경력이 3년이상이 된 분이 이 책을 읽는 것을 권장드립니다.

내용이 다소 어려울 수 있습니다.


작은 규모의 소프트웨어 개발을 한다면 굳이 아키텍처 설계를 안해도 되겠지만

유지보수 가능한 소프트웨어

지속가능한 소프트웨어

품질(성능, 보안, 이식성, 유지보수성)을 만족시키는 소프트웨어

를 개발한다면 아키텍처 설계를 추천합니다.


프로젝트 관리에도 리스크 기반 프로젝트 관리를 합니다.

소프트웨어 개발할때도 리스크 기반 sprial 모델을 통해서 개발을 합니다.


아키텍처 설계를 할때도 리스크 주도 접근법을 제시하고 있습니다.


아키텍처 설계는 소프트웨어의 뼈대를 만드는 과정입니다.

리스크가 크면 클수록 설계를 더 세세히 해야 하고

그렇지 않으면 간단한 설계로 할 수 있습니다.


이 책의 저자는 설계의 수준이 적절한지에 대해서 이책에서 제시를 하고

있습니다.





2.목적 (책을 쓴 이유)

저자가 책을 쓴 목적을 보도록 하겠습니다.


‘주어진 시스템의 아키텍처 설계를 얼마나 수행하고 결과물을 만들어야 하는가? 에서 출발합니다.


이 책은 위의 질문에 대한 답을 리스크 주도 모델, 아키텍처 무관, 집중, 상향 설계와 같은 접근 방식을 알려줌으로써 답을 알려주는 책입니다.


대상독자는 

미숙한 개발자 또는 학생에게는 효과적이고 숙련된 개발자가 되는 빠른 방법을 배울수 있고,

숙련된 개발자는 멘토링 능력 향상, 표준 모델, 표기법, 명칭을 배울수 있으며,

소프트웨어 아키텍트는 시스템 구축 기법, 수행 방법을 알려줍니다.

마지막으로 학계 관련자들에게는 리스크 주도 모델, 아키텍처 무관, 집중, 상향 설계를 알려줍니다.


지금부터 책의 내용을 요약하고 살펴보도록 하겠습니다.



3.책의 내용

그럼 이 책의 내용은 어떠한지 구조부터 알아보겠습니다.

구조는 총 2부로 구성되어 있습니다.


1부에서는 소프트웨어 아키텍처가 뭔지?

왜 중요한지?




<페이지 51>


어떤 종류의 제품군에서 아키텍처를 설계해야하는지?

어떻게 사용하는지?


설계방법으로 아키텍처 무관 설계, 집중 설계, 상향 설계제시를 하고, 주요 핵심인 리스크 주도 모델에 대한 설명, 가이드를 제시하고 있습니다.

실제 개발 프로세스에서 적용하는 방법을 설명하고 있습니다.




<페이지 61>



2부에서는 아키텍처 모델을 설명하고 있습니다.

도메인에 포함되는 지속적인 진실을 표현하는 도메인 모델, 




<페이지 183>


시스템 설계를 모델링하는 디자인 모델,




<페이지 199>


아키텍처를 소스코드로 현실화하는 코드 모델을 다룹니다.




<페이지 243>


그리고 아키텍처 모델링에 필요한 핵심 요소인 모델, 컴포넌트, 커넥터, 포트, 역할, 품질 속성, 설계 근거, 환경 요소, 시나리오, 불변 사항, 트레이드 오프, 스타일과 같은 모델 요소를 세밀히 다루고 있습니다.




<페이지 310>


마지막으로 투영(뷰), 분할, 구성, 분류, 일반화, 지정, 구체화, 바인딩, 종속성과 같은 모델 관계를 다루며, 아키텍처 스타일을 다루게됩니다.




<페이지 334>


그리고 아키텍처 모델 사용하기에서는 바람직한 모델 특성, 뷰를 효과적으로 사용하는 방법, 아키텍처 불일치의 리스크, 사용자 인터페이스 계획방법, 기존 시스템을 설명하는 모델에 대비하여 미래 시스템을 규정하는 모델 설명방법, 기존 시스템 모델링하는 방법에 대한 힌트를 다룹니다.



<페이지 376>



4. 책의 좋은 점과 아쉬운 점


4.1 좋은점(장점)

  • 아키텍처 설계의 중요성, 리스크 주도 접근법 등에 대한 깊은 지식을 제공합니다.

  • 적절한 소프트웨어 설계의 수준을 알수 있습니다.



4.2 아쉬운점(단점)

  • 아키텍처 설계는 여전히 어렵습니다.



여기서 책의 서평을 마무리 짓고자 합니다.


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


감사합니다


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
실무자를 위한 그래프 데이터 활용법
데니즈 고즈넬.마티아스 브뢰헬러 지음, 우정은 옮김 / 한빛미디어 / 2022년 5월
평점 :
장바구니담기



1. 시작


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


2022년 5월달에 소개할 책은 실무자를 위한 그래프 데이터 활용법(The Practitioner’s Guide to Graph Data) 입니다



<표지>


이책을 한마디로 그래프 데이터베이스 사용 안내서’라고 할 수 있습니다.


개발자라도 다소 생소하게 들릴 수 있을 것입니다. 

개발에서 데이터베이스라고 함은 오픈소스 관계형 SQL 데이터베이스를 발합니다. MySQL, PostgreSQL, MariaDB, Microsoft SQL Server을 말합니다.


빅데이터 시대가 오면서 NoSQL을 사용하고 있습니다.

몽고DB, 레디스DB, Cassandra가 유명합니다.


그 다음에 나온 것이 그래프 데이터베이스입니다.

시대에 맞게 복잡한 비즈니스 환경을 데이터 기반으로 문제를 해결하기 위해서 사용되어지고 있습니다.


데이터베이스는 오픈소스가 시장에서 80%이상을 차지하고 있습니다. 그만큼 오픈소스가 대세입니다.


그래프 데이터베이스 랭킹을 확인해봤습니다.

출처 : https://db-engines.com/en/ranking/graph+dbms



이책의 저자는 그래프 씽킹이라는 용어를 쓰기 시작했습니다.

디자인 씽킹, 비주얼 씽킹 용어는 들어봤을 것입니다.


항상 새로운 방법론, 기술들은 문제를 해결하기 위해서 만들어지는 것 같습니다. 그래프 씽킹이란 시대 흐름에 맞춰서 비즈니스 환경에서 문제를 해결하기 위해서 만들어진것 같습니다.


그래프 씽킹이란? 도메인 문제를 연결된 그래프로 표현하고 그래프 기술을 사용해서 도메인 역학 관계를 설명함으로 문제를 해결하는 방법입니다.


그래프 데이터베이스에서도 언어를 사용합니다. ‘그래프 스키마 언어(Graph Schema Language(GSL)’ 입니다.


이책은 실제로 그래프 데이터베이스를 사용하고 있어야지만 이해할 수 있습니다.


예제를 사용할 수 있는 환경설정에 대한 부분은 깃허브에 있지만 Docker, Docker-compose, git, cassandra, DataStax, DataStax Studio를 알아야 하고 관련 환경을 구축한 다음에 이책에서 제시하고 있는 예제를 시도해 볼수 있습니다.


깃허브에 나와있는 예제에 대한 환경 구축은 linux OS를 기본으로 만들어져있으며, 다른 OS에 대해서는 안내하지 않고 있습니다.



2.목적 (책을 쓴 이유)

저자가 책을 쓴 목적을 보도록 하겠습니다.


점점 복잡해지고 있는 비즈니스 환경에서 문제를 해결할 수 있는 새로운 방식과 사고를 배우고 실용적인 해결책을 개발하기 위한 도구를 독자들에게 제공하기 위해서 입니다


대상독자는 데이터 엔지니어, 아키텍트, 데이터 과학자, 데이터 분석가, 컴퓨터 과학자이며, 그래프 데이터, 분산 시스템 문제를 해결하고 싶은 분들입니다.


지금부터 책의 내용을 요약하고 살펴보도록 하겠습니다.



3.책의 내용

그럼 이 책의 내용은 어떠한지 구조부터 알아보겠습니다.

구조는 총 13장으로 구성되어 있습니다.


먼저 1장은 그래프 씽킹이 무엇인지? 그래프 씽킹 기술이 출현하게 된 배경, 그래프 씽킹에 대한 개요에 대한 내용입니다.


애플리케이션에서 그래프 기술의 적용 가능성과 사용법을 탐색하는 방법



<페이지 47>



2장은 그래프 데이터 개념, 그래프 스키마 언어에 대한 내용을 다루고 있습니다.



<페이지 69>


3장은 간단한 C360 애플리케이션 구현하는 내용을 다루고 있습니다.



<페이지 91>


4장부터 ~ 8장까지는 가장 많이 사용하는 그래프 기술에 대해서 다루고 있습니다.

그래프 데이터에서 

이웃탐색

트리사용

경로찾기


이 3가지는 가장 많이 사용하는 그래프 기술입니다.


이웃탐색에서는 질의 주도 설계, 그래프 데이터 분할, 정렬, 범위 설정 수행 방법과 고급 질의 기술을 알 수 있으며



<페이지 128>


트리사용에서는 이웃 데이터 이해를 넘어 계층 데이터에 그래프 씽킹을 적용하는 단계로서 실생활에서 찾을 수 있는 다양한 계층 데이터 예를 살펴보고, 다양한 예제를 통해 용어를 소개하며, 문제와 데이터, 스키마를 소개하고 제품화하는 방법을 알려준다.



<페이지 209>


경로찾기에서는 그래프 데이터에서 경로 가중치를 모아 데이터에서 가장 신뢰하는 경로를 찾도록 도와주는 내용을 다루고 있습니다.



<페이지 341>


10장 추천개발

이번 장에서는 웹사이트나 애플리케이션이 사용자에게 영화를 추천하는 방법을 설명하면서 협업 필터링 정의를 다루고 있습니다.



<페이지 355>


11장 그래프 간단한 개체 해석

사람에 관한 정보를 기록한 데이터 소스의 키와 값을 이용해 누가 누구이며, 무엇이 무엇인지 추론하기가 쉽지 않은데, 이를 개체 해석 문제라고 부르며 문제 정의, 분석, 매칭, 병합을 통해서 해결하고자 하지만 그래프로 데이터를 해석하고 합치는 기능은 다면적 문제라서 따로 책 한권을 집필해야 할 정도라고 한다. 그만큼 쉽지 않은 문제이며, 이를 함축적으로 다루고 있습니다.



<페이지 395>


12장은 추천 제품화를 다루고 있습니다.

요즘 거의 모든 제품은 추천 기능을 제공하고 있습니다.

이책에서는 사용자가 최근 평가한 영화로 상위 3개의 영화를 추천하는 방법을 다루고 있습니다. 



<페이지 423>



4. 책의 좋은 점과 아쉬운 점


4.1 좋은점(장점)

  • 그래프 씽킹을 통한 비즈니스 문제 해결을 배울 수 있습니다.



4.2 아쉬운점(단점)

  • 그래프 씽킹을 배우기 위한 환경 구축에 대한 내용이 미흡합니다.

  • 난이도가 높은 책입니다. 기본적으로 NoSQL이나, 그래프 데이터베이스를 사용하고 있는 사람들을 대상으로 쓰여진 책입니다


여기서 책의 서평을 마무리 짓고자 합니다.


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


감사합니다


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
처음 배우는 엘릭서 프로그래밍 - 쉽고 빠르게 익히는 함수형 프로그래밍
데이브 토머스 지음, 권두호 옮김, 최성락 감수 / 한빛미디어 / 2022년 3월
평점 :
장바구니담기


1. 시작

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

2022년 4월달에 소개할 책은 처음 배우는 엘릭서 프로그래밍 (쉽고 빠르게 익히는 함수형 프로그래밍) 」 입니다

엘릭서(Elixir) 다소 생소한 언어 일 수도 있습니다. 하지만 얼랭(Erlang)은 한번쯤 들어보셨을겁니다. 

 

엘릭서(Elixir)는 바로 얼랭 가상 머신(BEAM) 위에서 동작하는 함수형, 동시성 프로그래밍 언어입니다.

 

클로저(Clojure)프로그래밍 언어가 Java 가상머신 위에서 동작하는 함수형 프로그래밍 언어 처럼 말입니다.

 

여기서 중요한 것은 왜 이 책을 읽어야 하는가? 입니다.

개발자라면 매년 프로그래밍 언어를 하나씩 배우는 것은 개발자 역량을 높이는 것중에 하나입니다.

이 말은 제가 한 말은 아니고, 개발자 필독서인 ‘실용주의 프로그래머’ 에서 나오는 말입니다.

 

 ‘매년 새로운 언어를 최소 하나는 배워라.

다른 언어는 동일한 문제를 다르게 푼다. 몇 개의 서로 다른 접근법을 알면 사고를 확장하고 판에 박힌 사고에 갇히는 걸 예방하는 데에 도움이 된다.

- 『실용주의 프로그래머』 중에서

 

 

마침 이 책을 쓴 저자(데이브 토머스)가 바로 그 유명한 ‘실용주의 프로그래머’의 공저를 하신분입니다. 와우~~~^^!!!

그런 분이 직접 쓴 책이라면, 읽어봐야 되지 않을까 생각합니다.

 

왜 이책을 읽어야 하는지? 더 중요한 이유가 있습니다.

하드웨어가 발전하면서 멀티코어, 분산, 실시간이 강조되고 있습니다.

얼랭 프로그래밍 언어 자체가 동시성, 고가용성을 위해서 만들어진 언어입니다.

그래서 견고한 동시성 분산 소프트웨어를 만들기 위해서 엘릭서는 도움을 충분히 줄 것 입니다.

 

이책의 특징은 크게 두가지 입니다.

1. 배경 지식이 전혀 없어도 고수준 언어를 다뤄본 경험과 넘치는 모험심만 있다면 누구나 쉽고 빠르게 엘릭서 프로그래밍을 익힐 수 있다.

    2. 모든 문법과 함수를 세세하게 다루기보다는 간결하고 흥미로운 내용으로 구성하여 엘릭서와 함수형 프로그래밍이라는 새로운 세계로 이끌어준다. 


2. 목적 (책을 쓴 이유)

자~ 이제 책을 쓴 목적을 보도록 하겠습니다.

 책 서문에 필자는 이 책에 대해서 다음과 같이 얘기하고 있습니다.

 

저는 프로그래밍 언어 ‘덕후’입니다. …….
엘릭서가 얼마나 대단한지 사람들이 좀 봐줬으면 합니다.
짧고 흥미로운 내용으로 채우고 싶었습니다.

 

엘릭서에 대해서 궁금하시다면 지금부터 책의 내용을 살짝 보도록 하겠습니다.



3. 책의 내용

그럼 이 책의 내용은 어떠한지 구조부터 알아보겠습니다.

구조는 총 3부(부록제외) 25장으로 구성되어 있으며, 프로그래밍 언어 책으로써 다소 가벼울수 있는(개인적인 생각) 두께의 책 (532페이지) 입니다.

먼저 1부 전통적 프로그래밍에서는 함수형 문법, 자료형 타입, 함수, 모듈, 컬렉션, 문자열, 바이너리, 제어문에 대해서 배울 수 있습니다.


그리고 프로젝트 기반 예제로 깃허브에서 이슈를 가져와 표시하는 이슈 트래커 앱(issues)을 만들어볼 수 있습니다. 


그리고 몇가지 툴에 대해서 소개하고 있습니다. (1부는 50%이상 지면(532페이지 중에 286페이지)을 차지합니다)

 

2부는 엘릭서의 최고의 강점인 동시성 프로그래밍을 알려줍니다. 

간단한 프로세스를 만들어서 실행해보거나, 프로세스 간 메시지를 주고 받거나, 모니터링하고, 분산 서비스를 구현하기 위해 노드를 알아야합니다. 

이쯤되면 노드가 뭔지? 프로세스가 뭔지 헷갈리기 시작합니다. 노드는 ‘하나의 얼랭 VM’이라고 생각하고, ‘시스템’ 이라고 생각할 수 있습니다.

 


3부 엘릭서 심화는 너무 심오해서 이해하기 어려울 수 있습니다. 매크로, 비헤이비어(behaviour), use, 프로토콜에 대해서 다루고 있습니다.

매크로는 한마디로 프로그램을 조작하는 프로그래밍 기법이라고도 할 수 있습니다. 메타프로그래밍 이라고도 합니다. 언어 문법을 확장할 때 사용합니다. 일반적인 애플리케이션을 만들때는 사용할 일이 없습니다. 쓰면 복잡해질 수 있습니다. 그래서 심화 과정에 있나봅니다.


비헤이비어(behaviour) 는 ‘행동’으로 번역가능한데, 실제로 ‘행동’하고는 의미가 같지 않습니다. 저자는 비헤이비어(behaviour) 는를 한마디로 ‘함수 명세의 목록’이라고 말합니다. 객체지향 언어의 추상 클래스, 자바 언어의 ‘인터페이스’와 비슷합니다. 비헤이비어(behaviour)를 사용하는 이유는 인터페이스 모듈이 제대로 구현했는지, 컴파일러가 검증하게 함으로써 런타임 오류를 줄여줄 수 있기 때문입니다.

비헤이비어(behaviour)가 모듈 내부 동작이라면, 프로토콜은 모듈 외부에 위치하여 기존 모듈에 코드를 추가하지 않고도 모듈의 기능을 확장할 수 있습니다. 바로 함수의 다형성을 가능하게끔 합니다.



4. 책의 좋은 점과 아쉬운 점

 

4.1 좋은점(장점)

 1. 다소 귀한 프로그래밍 언어 책입니다.
        엘릭서 프로그래밍 언어를 익힐 수 있는 국내 최초 번역서입니다.
이 책 이외에는 국내 번역된 책이나, 쓰여진 책이 없기 때문입니다.
        그것 하나만 가지고도 이책을 충분히 읽어볼 가치는 있습니다.

    2. 배경지식이 없어도 엘릭서 프로그래밍을 배울 수 있습니다.(쉽지는 않겠지만…)

    3. 간결하고 흥미로운 내용으로 구성하였습니다.(모든 문법과 함수를 세세하게 다루지 않음, 심오한 것을 흥미롭다고 생각하시는 분들에게만 해당됨 ㅎㅎㅎ)

   

4.2 아쉬운점(단점)

1. 실무에 사용가능한 프로젝트 기반 예제 기반이 아닙니다. 
늘 프로그래밍 언어를 배울 수 있는 책에 대해서 저의 생각은 사용 가능한 프로젝트 기반 예제를 선호하는 편입니다.


2. 프로그래밍 언어를 배우는데 재미있는 내용은 아닙니다.
배우는 일은 늘 힘들기 마련입니다.프로그래밍 언어의 대부분의 책은 딱딱할 수 밖에 없지만… 하지만 재미라는 소금을 넣는다면 좀 더 쉽고 신나게 배울수 있지 않을까? 라고 생각을 합니다.


3. 배경지식이 없어도 배울수 있다고 했지만 사실은 프로그래밍 언어를 한가지라도 익히신 개발자분들이 읽어야 할 책입니다.


4. 초보자의 경우 함수형에 대해서 이해가 어려울수 있으며, 자료형 또한 이해 접근이 쉽지는 않습니다.

여기서 책의 서평을 마무리 짓고자 합니다.

이책을 통해서 현재 시대에 맞는 새로운 언어를 배움으로써

  1. 서로 다른 접근법을 통찰하고
  2. 프로그래밍 사고를 확장하고,
  3. 기존 사고에 매몰되는 것을 방지하기를

희망합니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
유니티 교과서 - 유니티(Unity) 2021 버전 완벽 대응, 개정5판
기타무라 마나미 지음, 김은철 외 옮김 / 길벗 / 2022년 2월
평점 :
구판절판


 

시작





오랜만에 초보자를 위한 아주 재미있고 쉬운 책을 발견하였습니다.

이책은 정말 초보자에게 강추합니다.

처음 유니티를 시작하시는 분이라면, 처음부터 끝까지 아주 쉽게 유니티를 배울수 있을거라고 생각합니다.

왜 그것이 가능할까요?

어마어마하게 자세하게 모든 과정을 캡쳐를 해서 친절하게 설명을 해줍니다.

저자는 우리에게 밥을 떠먹여 주고 있습니다.

 

특히 안드로이드, 아이폰에서 직접 다운로드해서 확인할 수 있는 부분까지 모든 과정에 대한 세세한 설명은 초보자들에게는 상당히 유용할 수 있습니다.

 

저는 맥북으로 예제를 진행하였습니다.

처음부터 마지막까지 막힘없이 모든 예제를 진행할 수 있었습니다.

다만 7장에서 일부(유니티 에셋 스토어 에서 ‘standard assets’을 가져오는것) 안되는 부분이 있었습니다.

 

저는 쉽게 설명하는 책을 좋아합니다. 특히 그림 설명이 많은 책을 좋아합니다.

그런 책은 왠지 정성이 많이 쏟은것 같기 때문입니다.

 

정보를 많이 아는분들은 많지만 가르치는 것은 다릅니다.

쉽게 가르치는 전문가가 정말 능력자라고 생각합니다.

이 책은 240개 일러스트, 318개 유티 화면을 수록해서 총 558개의 그림으로 쉽게 이해할수 있도록 기초를 돕는 책입니다.

 

유니티 초보자를 위한 완벽한 지침서가 될것입니다.

 

간단한 예제가 조금 아쉬운 점입니다. 하지만 초보자를 위한 책이기 때문에 어쩔수 없는 부분인것 같습니다.

4장 예제입니다.

마우스를 누른 상태에서 살짝 좌우 움직이면 자동차가 움직이는 예제입니다

 

5장 예제입니다.

위에서 화살표가 내려오고 피하는 게임 예제입니다.



6장예제입니다.

귀여운 고양이가 구름을 발판 삼아 깃발이 있는 정상까지 올라가는 게임입니다.





총평

 

좋은점과 아쉬운점을 얘기해보겠습니다.

좋은점

1.모든 과정을 화면 캡쳐로 초보자도 쉽게 따라할 수 있도록 하였습니다.

2.C#스크립트를 아주 간단하고 쉽게 그림을 추가하여 설명해주고 있습니다.

 

3.게임을 어떻게 만드는지에 대해서 게임 제작 흐름을 익힐수 있도록, 그림을 통해서 쉽게 설명해줍니다.

 

4.전반적으로 내용이 쉽게 이해를 빨리 할수 있도록 558개의 많은 그림을 통해서 가르쳐주고 있습니다.

 


5.아이폰, 안드로이드 폰에서도 쉽게 테스트 할 수 있도록 가르쳐줍니다.

 

아쉬운점

1.한가지 정도 난이도 있는 게임 예제를 넣었으면 하는 아쉬운점은 있습니다.

2.다양한 장르(아케이드, RPG, RTS등과 같은)의 게임 예제가 추가되었으면 하는 아쉬운점이 있었습니다.

3.앱스토어나 구글 플레이에 등록하는 방법까지 추가 되었으면 합니다

4.7장에 유니티 에셋 스토어 에서 ‘standard assets’을 가져오는것이 안되었다.


마지막으로 리뷰어를 마치면서 예상 독자분들에게 드리고자 합니다.

리뷰어를 많이 하고 있지만, 이번 책은 정말 초보자에게 너무나 친절한 책이었습니다.

 

-게임에 관심을 가지고 계시는 초보자분들

-유니티를 처음 접하시는 분들

-안드로이드, 아이폰 게임 처음 개발하고자 하시는 개발자분들

이런 분들에게 적극 추천드리고 싶습니다.

후회안하실겁니다.

 

아마 이 책에 나오는 558개의 그림으로 유니티 기초를 알려주는 것 만으로도 충분히 책 값을 하고 있습니다.

 

오랜만에 좋은 책을 리뷰할 수 있어서 굉장히 기쁘네요~^^



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
러닝 Go - Go 개발자처럼 생각하는 방법
존 보드너 지음, 윤대석 옮김 / 한빛미디어 / 2022년 2월
평점 :
장바구니담기


1. 시작


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


2022년 3월달에 소개할 책은 Learning Go(러닝 Go) 입니다


개발자 사이에서 핫한 언어는 Go언어 입니다.

인기를 한번 볼까요?


가장 유명한 프로그래밍 언어 인기 순위 사이트(타이오베)

https://www.tiobe.com/tiobe-index/



13위 입니다.

Go 언어는 C++의 복잡함, 긴 컴파일 시간을 단축시켜주는 구글에서 만든 언어입니다.

C, C++보다 배우기 쉽습니다.


Go 언어는 무엇을 개발할때 사용하면 좋을까요?


가장 유명한 오픈소스 도커, 쿠버네티스를 Go 언어로 만들었습니다.

컨테이너, 클라우드 환경, 시스템 프로그래밍에 적합한 언어라고 할수 있습니다.


Go언어를 학습하기 위한 모든 문법적인 부분을 포함하고 있습니다. 


책 서문에 필자는 이책에 대해서 다음과 같이 얘기하고 있습니다.


이 책은 Go 언어를 이용해 명확하고 관용적으로 개발할 수 있도록 기초 지식을 전달하는 실용적인 가이드다.


2. 책속으로

이 책은 완전 초급용은 아니고, 어느정도 프로그래밍 언어를 다룰 수 있는 대상을 독자로 책이 쓰여졌으며, 주요 내용을 목차순으로 설명하도록 하겠습니다.


첫장은 간단한 Go 개발 환경 설정을 안내합니다.

저는 Visual Studio Code를 사용해서 개발환경을 설정했습니다.

자동으로 Go관련 플러그인을 설치할 수 있어서 쉽게 환경설정을 해주는것이 초급 개발자에게는 너무나 편안합니다.



두번째장에서는 내장타입사용, 변수선언, 할당 및 연산자 역할을 이해할 수 있는 내용을 다루고 있습니다.


세번째장은 배열, 슬라이스, 맵, 구조체와 같은 복합타입에 대한 내용을 다루고 있습니다.


네번째장은 블록, 섀도, 제어구조(if,for, switch, goto)에 대해서 다루고 있습니다. 프로그래밍 언어에서 소스코드 해석에 대한 복잡성 때문에 사용하지 않는 goto문이 go언어에 포함이 되어 있다는것은 특이한 것 같습니다.


다섯번째장에서는 다른 언어에서의 함수를 비교해서 유사한점과 다른점을 알려줍니다.


여섯번째장은 포인터가 무엇인지, 사용은 어떻게 하는지?, 언제 사용하는지에 대해서 도움을 주는 내용들입니다.

그림을 통해서 쉽게 설명하도록 노력하고 있는데, 결코 쉬운 얘기는 아닙니다.


일곱번째장은 타입, 메서드, 인터페이스를 다루고 있습니다.


여덟번째장에서는 오류가 무엇인지? 정의하는 방법과, 확인하는 방법에 대해 다루고 있습니다.


아홉번째장은 모듈 동작 방법, 패키지 내에 코드 구성방법, 서드파티 모듈 사용법, 자신의 모듈을 배포하는 방법을 다루고 있습니다.


열번째장은 Go언어의 핵심기능중에 하나입니다. 동시성에 대해서 다루고 있습니다.


열한번째장은 표준 라이브러리에서 가장 일반적으로 사용되는 패키지 몇가지를 소개하고 있습니다.


열두번째장은 컨텍스트를 사용하여 요청 메타 데이터를 관리하는 방법을 가르쳐줍니다.


열세번째장은 테스트 작성, 테스팅, 코드 커버리지, 벤치마킹 등 코드 품질을 높이는 방법에 대해서 다루고 있습니다.


뒤로 갈수록 내용은 어려워집니다. 중고급 대상으로 쓰여진책이다 보니 내용이 쉽지가 않네요~^^; 하지만 깊이 있는 책인것은 확실합니다.


열네번째장은 리플렉션, unsafe, cgo를 다루고 있습니다.




마지막 열다섯번째장은 제네릭에 대해 설명하고, 문제를 해결하기 위한 Go사용 법 제네릭을 다루고 있습니다. 이책이 나오기 전에는 제너릭이 포함되지 않았지만, 이 서평을 쓰기 시작할때쯤 1.18버전이 나왔으며, 제네릭이 포함이 되었다고 합니다.

Go언어에서 제네릭이 구현하지 않은 이유가 책에서 3가지로 알려줍니다.

1.빠른 컴파일러

2.가독성이 좋은 코드

3.좋은 실행시간

제네릭을 위의 3가지를 훼손 시키기 때문에 구현을 하지 않았다고 합니다.



3. 아쉬운점

번역이 매끄럽지 못해서, 술술 읽히지 않는 부분이 아쉬운 점으로 남습니다.

대부분의 기술서적은 내용 자체가 딱딱하기 때문에 번역또한 쉽지 않은 부분이 있습니다.


그림, 도표가 거의 없습니다. 

그래도 다행인 것은 포인터 설명은 그림이 포함이 되어서 이해를 도와주고 있습니다. 

그외에는 소스코드, 글자가 대부분이어서, 가독성이 부족할 수 밖에 없어서 아쉬운 부분입니다.


보통의 프로그래밍 언어 책과 유사(기본 명령어에만 치중되어 있는)해서 다소 지겨울 수 있습니다.

재미있는 프로젝트 기반 예제가 없어서 아쉽습니다.


다만 책에서 제공하는 예제가 확장가능하도록 제작했다고 하지만, 아쉬운 부분은 있을수밖에 없습니다.


프로그래밍 언어 배울수 있는 책에 대해서 아쉬운 부분은

실제 업무에서 사용가능한 프로젝트 기반 예제

재미있는 샘플 예제를 통한 기본명령어, 문법, 데이터 타입을 배울 수 있으면 좋을것 같았는데, 늘 아쉬운 부분입니다.



"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


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