메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

Head First Go

명확한 예제로 효율적인 학습법을 제시하는 Go 입문서

한빛미디어

번역서

판매중

  • 저자 : 제이 맥가브렌
  • 번역 : 권민재
  • 출간 : 2020-03-16
  • 페이지 : 556 쪽
  • ISBN : 9791162242797
  • eISBN : 9791162247921
  • 물류코드 :10279
  • 초급 초중급 중급 중고급 고급
4.7점 (46명)
좋아요 : 3

Go 언어를 익히는 가장 확실하고 효율적인 방법

 

이 책은 Go 입문자가 알아야 할 것에 초점을 맞추어 Go 언어의 핵심을 간추리고 이를 쉽게, 재미있게 풀어쓴 Go 입문서입니다. <Head First>만의 독특한 형식(그림과 도식, 풍선 도움말, 대화, 문제 풀이)과 구성으로 개념을 쉽게 설명합니다. 『Head First Go』는 새로운 언어를 익히는 데 가장 흥미로운 입문서입니다.

도서 사이트 : https://headfirstgo.com/

 

 

누구를 위한 책인가요?

 

다음 질문에 한 가지라도 “예”라고 대답한다면, 이 책은 여러분을 위한 책입니다. 최소한의 선수 지식만 필요로 합니다.

  • 텍스트 에디터를 사용할 수 있으신가요?
  • 빠르고 생산성 높은 프로그래밍 언어를 배우고 싶으신가요?
  • 무미건조하고 학구적인 강의보다 언제든 이야기할 수 있는 재미있는 주제를 선호하시나요?

 

도서 특징

 

진지한 고랭 학습자를 위한 『Head First Go』

 

뭔가를 배우려면 먼저 이해하고, 그다음엔 잊어버리지 않아야 합니다. 단순히 지식을 두뇌 속에 집어넣는 방법은 소용없습니다. 인지과학, 신경물리학, 교육심리학 분야의 최신 연구 결과에 따르면 종이 위의 글자만으로 학습하는 것은 충분하지 못하다고 합니다. Head First는 여러분의 두뇌가 쌩쌩 돌아가게 하는 방법을 알고 있습니다.

 

『Head First Go』의 ‘부수면서 배우기!’ 코너는 기존의 코드를 변형시켜서 일부러 문제를 일으킨 다음 이를 해결하는 과정을 통해서 개념과 원리를 더 효율적으로 습득할 수 있게 도와줍니다. 

 

예제와 더 많은 문제를 https://headfirstgo.com/에서 확인하세요.

 

Head First 학습 원리

  • 그림을 넣어 설명합니다. 그림을 사용하면 기억하기 좋아서 학습 효과를 향상시킵니다(기억과 전이 분야 연구에 의하면 89%까지 향상된다고 합니다). 또 그림을 사용하면 이해하기도 쉬워집니다. 
  • 대화체를 사용합니다. 딱딱한 말투보다 개인적으로 대화를 나누는 듯한 문체로 내용을 설명하면 학습 후 테스트에서 40% 정도 더 좋은 점수를 받을 수 있다고 합니다. 이 책은 강의 대신 이야기를 들려 줍니다. 
  • 더 깊이 생각할 수 있게 만듭니다. 도전 의식을 불러일으킬 만한 연습 문제나 질문을 통해 좌뇌와 우뇌를 포함한 여러 감각을 모두 사용해야 하는 활동을 제공합니다.

 

 

04_상세이미지700.jpg

 

제이 맥가브렌 저자

제이 맥가브렌

제이 맥가브렌은 『Head First Go』를 집필하기 이전에 『Head First Ruby』를 집필한 경험이 있습니다. 피닉스 교외에서 가족과 함께 반려견을 키우며 트리하우스에서 소프트웨어를 가르치고 있습니다. 그의 웹사이트는 https://jay.mcgavren.com/입니다.

권민재 역자

권민재

수학과 프로그래밍을 좋아하고, 특히 백엔드 기술과 시스템 설계 및 자동화에 관심이 많습니다. 평소에는 취미로 Go와 Python으로 이것저것 만듭니다. 지난 약 2년 반 동안 게임 서버 개발자로 일해 왔으며 현재는 당근마켓 플랫폼팀에서 Go로 플랫폼 서비스를 만들고 있습니다.

서문

1장.  시작해 봅시다: 문법 기초 

2장.  다음엔 어떤 코드가 실행될까요?: 조건문과 반복문 

3장.  호출해 주세요: 함수 

4장.  코드 묶음: 패키지 

5장.  목록에서: 배열 

6장.  확장 문제: 슬라이스 

7장.  데이터 라벨링: 맵 

8장.  저장소 만들기: 구조체

9장.  나만의 타입: 사용자 정의 타입 

10장.  당신만 알고 계세요: 캡슐화와 임베딩 

11장.  당신은 무엇을 할 수 있나요?: 인터페이스 

12장.  다시 일어서기: 실패 복구하기 

13장.  작업 공유하기: 고루틴과 채널 

14장.  코드 품질 보증: 자동 테스트 

15장.  요청에 응답하기: 웹 앱 

16장.  패턴 따르기: HTML 템플릿 

부록 A.  os.OpenFile 이해하기: 파일 열기 

부록 B.  못 다룬 여섯 가지 주제: 번외 

KakaoTalk_20200601_030925703.jpg

 

O’REILLY에서 최고의 개발 입문서인 Head First 시리즈로 Go 언어를 다룬 서적을 출간했습니다.

 

저는 Python 만 빼고 모든 Head First 시리즈를 구매했을 정도로 이 책의 열렬한 독자입니다.

 

이 서적의 장점은 입소문으로 아마 많이 알고 계실 겁니다.

 

일단 어떤 개발 언어나 기술을 처음 접하는 초보자들을 위해 자연스럽게 반복적인 학습이 가능하도록 합니다.

 

일반 기술서에서 개념 하나를 몇 줄에 끝내는 것과 비교해서 이 시리즈는 책 전반에 걸쳐 반복해서 설명합니다. 결국은 기억에 오래 남습니다.

 

더불어 모든 기술의 설명에는 흥미로운 그림, 도식과 함께 ‘스토리’가 존재합니다. 

그 스토리에서 우리가 알아야 하는 개념이나 문제점 등을 제시하면서 스스로 해결책을 찾을 수 있도록 유도를 합니다.

 

본 Go 서적도 위에서 설명한 Head First가 가진 여러 장점을 잘 살린 명저라고 단언할 수 있습니다.

 

부록을 제외하고 16장에 걸쳐 입문자가 반드시 알아야 하는 Go 언어의 기초적인 개념과 문법을 설명합니다.

 

JAVA, C 프로그래머의 경우 비교적 쉽게 학습이 가능합니다. 이 책의 목차를 보면 알겠지만, 조건문, 반복문, 함수, 배열, 자료구조 등 프로그래밍 언어를 배울 때 반드시 학습하는 내용이 대부분이기 때문입니다. 

 

포인터, 코루틴, 채널 등의 내용이 다소 어려울 수 있는데, 자세히 읽어보면 기존 프로그래밍 언어에서 사용하는 개념이라 용어와 문법만 다를 뿐 이해하는데 큰 어려움은 없습니다.

 

Head First 시리즈에는 항상 연습문제가 있고 도전 과제가 존재합니다. 

이 연습문제가 단순해 보이지만 앞에서 설명한 내용을 독자가 완전히 숙지하고 있는지 검증하는 작업이기도 합니다.

 

Go 언어를 빨리 내 것으로 만들고 싶다면 연습문제도 열심히 풀어 보시 길 바랍니다. (모범 답안도 제공이 됩니다.)

 

520 페이지가 넘는 다소 두꺼운 분량이지만, Go언어를 시작하는 모든 입문자에게 이 책을 강력하게 추천합니다. 

 

#Go

#Head_First

#한빛미디어

 

개발자라하면 한 번 쯤 들어봤을 Head First 시리즈에서 Go 언어 입문서가 나왔다. Go 언어는 구글이 만든 언어인데 아직 실사용을 많이 하지는 않는 것 같다.

하지만 구글이 분명 가만히 사라지도록 놔두진 않을 것이라고 생각한다. 구글도 사내에서 직접 Go를 사용한 개발을 하고 있고 국내 기업들도 서버 개발 등에 활용하는 사례가 있다.

아직은 시장성이 없을지 모르지만 세상이 어떻게 변할지 모르니 공부해두는 것도 나쁘지 않을 것 같다.

독자 대상에 대해 재미있게 표현했다. 하지만 이 말만큼 적당한 것도 없다. 새로운 언어를 배워보고 싶은 의지가 있는 분들에게 추천한다. 그리고 그런 분들에겐 재미있고 쉽게 학습할 수 있는 기회를 제공하는 것이 Head First의 특징이다.

입문서 답게 위와 같이 함수 호출하는 방법부터 Println 함수까지 친절히 설명해준다. 무엇보다 다른 입문서보다 친절한 것은 강의가 아닌 책에서 느껴질 수 있는 한계를 극복하기 위해 그림으로 설명한 것이 많다는 점이다. 코드도 좋지만 입문자에게는 코드 그 자체의 의미가 매우 궁금한 부분일 수 있다.

코드 자체에 밑줄과 화살표를 통해서 하나씩 의미를 설명해주어 개념 장착에 큰 도움을 준다.

캡슐화 등 객체지향에 대한 개념도 알려준다. 입문자에게 어쩌면 객체 지향이란 개념 자체가 어려운 관문일 수 있다. 이런 개념도 상세한 설명을 통해 이해를 돕는다.

이미 명성이 자자한 시리즈의 새로운 언어에 대한 책이므로 기존 Head First 팬이나 새롭게 Go에 입문하는 분들은 참고할 만한 책이다.

 

요즘 핫한 프로그래밍 언어를 꼽으라고 하면 자바스크립트 계열 언어들과 파이썬, 그리고 Go를 꼽을 수 있을 것이다.
비즈니스적으로 볼 때 Go는 아직 메이저 랭귀지라 보기는 어렵지만 미래에 충분히 메이저가 될 가능성이 높은 랭귀지 중 하나이다.
우선 구글에서 만들었고, 적극적으로 지원하고 있다.
그리고 도커 등 많이 사용하고 있는 서비스의 개발 언어이다.
(다른 언어도 그렇지만) Go를 통해 모든 것을 해결할 수는 없겠지만, 특정 부분에서는 이미 타 언어에 비해 나은 성능을 보여주고 있다.
무엇보다 이제 막 프로그래밍을 시작하는 분들에게 학습커브가 완만하다는 것도 장점이라 할 수 있다.
 

go.jpg

 

 
이 책 Head First Go는 Go를 쉽고, 재미있게 배울 수 있는 책이다.
이미 Head First 시리즈에 대한 명성은 개발자라면 모두 알고 있을 것이다.
레퍼런스처럼 단순하게 개발 정보를 서술하고 있지 않다.
최대한 쉽고 재미있게, 그리고 빨리 배울 수 있는 방법을 편집에 적용하였다.
Head First를 처음 보는 사람은 지금까지 보던 책과 다른 분위기에 낯설겠지만 한번 보기 시작하면 딱딱해 보이는 다른 책들이 보기 싫을지도 모른다.
 
Go는 문법상 복잡하거나 어려운 언어가 아니다.
언어를 개발할 당시부터 이 부분을 염두에 두고 만들었다고 한다.
그래서 공식 레퍼런스도 다른 언어에 비해 짧다.
 
이 책은 Go의 문법적 특징만 알려주는 것이 아니라 실전에서 응용할 수 있는 웹앱까지 직접 프로그램할 수 있도록 알려준다.
무엇보다 '부수면서 배우기' 코너는 책을 그대로 따라하는 방식이 아니라 실제 프로그램 개발시 일어날 수 있는 문제나 오류들에 대한 해결방안을 알려준다.
 
이 책은 다른 Head First시리즈처럼 Go언어를 배우고 싶은 분들에게 추천할 수 있는 책이다.

빨리, 쉽게 해보긴 좋지만 뭔가 구성이 혼란스러운 느낌이다. 아마도 원문 구성을 그대로 끌어오다 보니 이렇게 된 것 같다. 부담을 적게 주는 대화체는 좋지만 구성이 체계적이었으면 어떨까 하는 생각이 든다. 그리고 통일되지 않은 폰트도 혼란스러운 인상에 한몫한다. 약간 어지럽다. 이런 부분은 원본이 아무리 그래도 가독성을 위해 통일하면 어떨까 한다.

이런 역동적인 구성이라면 영상이나 슬라이드가 내용 전달하기에 좋지 않을지?

Image from iOS.jpg

 

Head First 시리즈는 언제나 새로운 언어를 배우기에 좋은 입문서다.

Go 이전에, Javascript를 시작할때, Head First 책으로 독학을 했었는데, 나름 중요한 개념도 쉽게쉽게 손으로 풀수 있는 퀴즈와 흥미로운 예시로 Javascript를 쉽게 이해할 수 있게 해주어 도움이 많이 되었었다.

그때의 기대감이 이번에도 함께 들었는데 역시 이 기대를 실망시키지 않았다.

조금 어느정도 개발을 하는 사람들이 보면 더 술술 읽힐 책이고, 생초보가 보면 단순한 용어 등이 조금 헷갈릴 수 있지만, 그게 언어를 배움에 있어서 크게 장벽이 되지는 않는 것 같다. 

무엇보다도 이 책의 강점인 그림으로 풀어주는 예시들이나, 좀 더 친숙하게 이해할 수 있는 설명들이 매우 좋았으며,

다른 기본서 대비 그냥 매번 똑같이 재미없는 예시 코드들이 아닌, 뭔가 내용이 있고 흥미로운 예시코드들이 있어서 쭉쭉 진행을 할 수 있었던 것 같다.

Go 뿐만 아니라, 다른 Head First 책들도 많이 추천하는 편이며, 이 책이 되게 생각보다 알차다는 것을 시간이 지나서 다시보면 알 수 있을 것이다. 

 

 

Head First 시리즈에서도 Go 입문서이다. Head First 시리즈는 상당히 유명한 걸로 알고 있고 디자인 패턴, 서블릿 등 몇몇 책은 이미 몇 권 가지고 있다. 이 시리즈에서 설명해주는 방법은 속도는 좀 느리지만 하나씩 차근차근 충분한 그림과 코드를 사용하는 것이다. 어떤 언어에 대해 입문하는 것을 이 시리즈로 접해보는 건 처음이다.

 

실무나 프로젝트를 통해서 언어를 한두 개 사용해본 사람의 경우, 보통 입문서를 보면 초반은 지루해서 많이 건너뛰곤 한다. 주로 나오는 내용이 함수, 조건문, 반복문일 테니까 말이다.

 

본인은 언어의 성격을 알기 위해서이기도 하고, 딱히 특정 언어에 대해 굉장히 deep 하게 아는 게 아니기 때문에 조건문이나 반복문도 꼭 살펴보곤 한다. 문법도 익힐 겸 말이다. 이 책도 기초부터 굉장히 쓸모 있는 설명을 많이 해준다. 특히 에러와 로그에 관련된 부분이 기억나는데, 실제로 지금도 업무에서 어떤 기능에 대해 설계하고 구현을 하다 보면 테스트 코드나 로그에 대해 별로 신경을 못쓰는 경우가 대부분이다. Go에서는 에러를 반환하는 함수의 경우 여러 개의 변수 중 하나의 변수로 에러 값을 리턴해준다. 그리고 사용하지 않는 변수는 선언할 수 없다. 변수를 사용하지 않는 방법도 있지만, 실무에서는 보통 최대한 많은 에러에 대해 대비를 해야 하기 때문에 컴파일 시 에러에 대해 예외 처리하지 않은 부분을 알 수 있으니까 정말 좋은 언어라는 생각도 들었다.

 

C/C++, Java, PHP를 주로 사용하는 본인의 경우 Go는 파이썬과 비슷한 수준의 언어로 생각이 된다. 문법이라든지 패키지 사용법 등이 그렇다. 나이를 먹다 보니 새로운 언어를 배워도 막상 쓸 일이 별로 없다. 하지만 새로운 프로젝트를 맡게 될 때나 이직(?)을 하게 된다면 또 다른 언어를 주로 사용하게 될 수도 있지 않을까? 본인은 기억력이 상당히 안 좋다. 책을 봐도, 리뷰를 해도 금세 까먹는다. 언어 입문서도 그렇고 자기 계발서도 그렇다. 그래서 오히려 더 지식에 대한 지식이 중요하다고 생각한다. 이야기가 좀 샌 것 같다.

 

 

 

 

 

언어 입문서지만 설명이 간결하고 자연스러운 반복학습을 유도하며 개념적인 부분에 신경 쓰다 보니 읽다 보면 이해도 쏙쏙 되고 금방금방 페이지가 넘어가는 것 같다. 점심시간 전에 20분씩만 읽어도 금방이다. 국내에서는 아직 golang을 별로 사용하지 않는 것 같다. golang이 클라우드 쪽에 강점이 있는 것 같은데, 앞으로 좀 더 활용할 기회가 많아지지 않을까 싶다.

 

 

SAM_8749.JPG

안녕하세요?
이번달은 헤드 퍼스트 Go를 신청해서 읽었습니다.

 

늘 그렇듯이 이 책 리뷰를 누가 읽을까? 많이 고민하면서 씁니다.
프로그램밍을 처음 접하시는 분들도 계시고, 다른 언어를 사용하시다가 Go 언어에 관심이 생기셔서 검색하고 오신 분들도 많으실꺼에요.
이 책을 신청하게 된 계기가 제가 요즘 쿠버네티스도 좀 보고 있는데, 쿠버네티스가 Go로 만들었다고 해서 급 관심이 생겼습니다.
쿠버네티스를 만들었다고 하면, 우리가 Go 에 대해서 충분히 관심을 가질만하다고 생각합니다.
결론부터 이야기하면 다른 언어로 입문 공부하신 분들이 읽으시면 좋습니다.
저는 주로 파이썬으로 공부를 해서, 파이썬을 위주로 자바스크립트, 자바, C#과 관련하여 코멘트를 조금 하자고 합니다.(초보용이에요)
 

 

SAM_8750.JPG

일반 프로그래밍 언어처럼 비슷한 순서로 목차가 구성되어있습니다. 
중반 이후부터 파이썬과 자바스크립트 입문에서는 볼 수 없는 Go 프로그래밍 언어의 특징적인 개념들이 많이 나옵니다. 그래서, 개념이 낯설어서 힘들게 느껴질수도 있습니다.

 

그래도, 중반까지의 개념 설명들을 읽으면 왜 요즘 자바스크립트에서 타입스크립트를 선호하는 개발자들이 늘고 있는지 이해가 갑니다.
 

SAM_8751.JPG

Go 를 보면서, 파이썬이나 자바스크립트 보다 전체 문법 구조가 더 탄탄하다는 느낌을 받았습니다. 처음 시작은 패키지 임포트하면서 비슷하게 가는 것 같지만, 빠르게 간단한 프로그램을 만들것인가? 시간이 걸리더라도 에러없는 탄탄한 프로그램을 만들것인가? 에 대한 선택의 문제인 것 같습니다.

 

SAM_8752.JPG

파이썬의 경우 자동형 변환, 타입 설정을 별도로 하지 않아도, 에러 값 처리에 대한 신경을 별로 하지 않아도 되지만(물론 견고하게 프로그래밍하려면 다 신경써야 하지만, 프로그램 입문자의 경우 그렇게 하기 힘들다는 일반적인 이유에서), 헤드퍼스트 Go 에서는 처음부터 이 부분까지 신경쓰면서 Go 언어를 설명합니다.

 

그래서, 파이썬 같은 프로그래밍 입문자의 경우에도 자신의 프로그램이 여러 에러에 잘 대처하기 위해서는 어떤식으로 프로그래밍을 해야 하는지 좋은 느낌을 받을 수 있습니다.
 

SAM_8753.JPG

 

여러 타입과 문제와 해결이 전체적인 유기성을 갖고 차근차근 설명합니다. 그래서 여기서 이 프로그래밍 개념들을 왜 배워야하는지 수긍하게 되어서, 자꾸 뒷페이지로 넘어가게 됩니다. 책 내용이 특별히 어렵다보다는 첫 개념 잡는데 시간을 많이 할애하고, 앞에서 배운 것들을 뒷에서도 자꾸 언급하게 되어서 전체 개념을 잡기에 좋습니다.
그래서, 문법 구조나 개념이 자바나 C# 를 배우는 듯한 느낌도 들지만, 책 설명이 쉽고, 예제가 간단한 것들이라서 중급으로 가는 길목이라면 어렵지 않게 공부할 수 있습니다.

다만, 헤드 퍼스트에 대한 호불호에 따라서 다른 평가가 나올 것 같습니다. 제 생각에는 어느 정도 아는 입장에서 보면, 소설책 읽듯이 아~ 그렇지, 아 ~ 이런 면은 좋네 라고 생각하면서 전체적이 그림을 잡기에 좋지만, 처음 입문자라면 자꾸 말이 길어지고, 정확한 개념을 잡는데 다소 장황할 수 있습니다.

저는 이번에 책을 읽으면서, 프로그램밍을 할 때 고려해야 할 여러가지들을 이해하는데 많은 도움이 되었습니다. 그러나, 파이썬을 주로 사용하다가 보니, 이렇게까지 고려하면서 할 필요는 없는 것 같습니다. 기존 개발자분들 중에서 Go 언어에 대해서 관심이 생기신 분들은 책 양이 많아보이지만, 엄청 빠르게 읽을 수 있기 때문에, 일독을 하시면서, 잘 짜여진 문법 구조를 맛보시기를 바랍니다.

 

 

KakaoTalk_20200531_202004209.jpg

 

국내에 GO 언어에 대한 책이 많은 없는 상황에서 나같은 문과출신으로 코딩을 취미로 거북이처럼 배우고 있는 사람들에게 헤드퍼스트 시리즈로 GO 언어를 접할 수 있다는 사실은 매우 기뻐할 일이다. 구글에서 개발하고 구글의 최신 서비스들은 GO언어를 통해 개발된다고 해서 많은 호기심을 가지고 있었지만, 개념도 제대러 잡히지 않는 초보들은 쉽게 접근할 수가 없었다. 과거에도 HTML, CSS, 자바스크립트, 그리고 통계학 등의 헤드퍼스트로 접해서 구성이나 매번 사용되는 사람그림(?)등은 전혀 낮설지가 않았다. GO의 특징은 컴파일 언어이지만 컴파일러의 속도가 매우 빨라 인터프리터 언어처럼 쓰일 수 있는 장점이 있다. 그리고 단순함과 실용성을 목적으로 만들어진 언어이기 때문에 키워드가 25개 정도 밖에 되지 않으며 문법 또한 간결해서 입문이 쉬운편이다. 이런 GO언어의 헤드퍼스트 버전이 나온다는 것 자체가 너무 흥미를 끌었다.대화와 많은 그림과 도식을 통해 딱딱한 교과서 방식이 아닌 왕초보를 위한 클래스처럼 차근차근히 독자로 하여금 GO 언어를 이해할 수 있게 지팡이를 가진 것처럼 목적지로 인도해줄 것 이다. 때로는 만화책을 보는 것처럼 말풍선과 때로는 40대 이상의 아저씨가 할 법한 썰렁한 유머 등이 있지만 그냥 무작정 이 흐름에 맡기고 무조건 따라해보면 좋을 것 같다. 코로나19로 여러 제약이 많은 이때에 최신의 핫한 GO 언어를 헤드퍼스트 시리즈로 입문하면 좋을 것 같다.

 

KakaoTalk_20200531_171004269.jpg

 

이 책에는 중요 내용이 반복적으로 나와서 앞에서 잊을 만한 것들이 다시 나오기 때문에 

자연스럽게 go 언어 학습에 도움이 되었고 그림으로 설명 되어있어서 한눈에 보기도 편하고 

배우는데 즐거웠습니다 다른 책들은 집중하면서 이 코드가 어떤 것을 설명하는지 자세히 봐야하기에 

또 공부해야해? 라는 심적 부담감이 없어서 좋았습니다 

오늘 리뷰할 도서는 [Head First Go] 이다.
 
 
 
Head First 시리즈는 너무 유명하고 본인의 책장에도 이미 여러 권이 있다.
 
(Head First 시리즈는 읽지 않고 책장에 있기만 해도 왠지 뿌듯하다?)
 
유명한 이유? 음...그림이 많고 친절하고 자세한 설명? 에잉...책을 보면 나와 있다.
 
 
어쨌든 좋은 책인건 알겠고, "Go" 언어에 관한 책은 2년 전 쯤에 잠깐 본 적이 있다.
 
당시에 "Go" 언어에 관한 책이 몇 권 없었기에 선택의 여지가 없이 봤던 책이었다.
 
그 책은 내용 자체가 나쁘지는 않았는데 "Go" 언어 자체가 C 언어의 뒤를 따르는 것 같은 느낌을 많이 받아서 
 
좀 거시기 했다. 그 이유는 본인이 C 언어를 싫어하는 개인적인 이유에서다.
 
 
이 책은 프로그래밍 언어를 다루는 입문서이다. 그렇기에 사실 목차나 내용은 다른 책들에 비해 특이할 점이 많이 없다.
 
그러나 Head First 시리즈 특유의 방법들로 그 문제점들이 사그라지는 듯한 느낌이었다.
 
독자들이 책을 읽으면서 잘 이해하고 있는지 퀴즈를 내고 있다. 
 
간혹 퀴즈만 내고 답이 없는 책들도 있어서 당혹스러운데, 이 책은 설명과 함께 답도 있으므로 퀴즈를 풀어보면 
 
많은 도움이 되겠다.
 
 
 
책의 뒷 부분에서는 고 루틴, 웹 관련 내용도 있어서 흥미를 유발시킨다.
 
 
"Go" 언어를 처음 시작하는 분들에게는 꼭 이 책을 권하고 싶다. 
 
왜? Head First 시리즈니까 ! 

Go는 2009년 구글이 개발한 프로그래밍 언어이다. 가비지 컬렉션 기능이 있고, 병행성을 잘 지원하는 컴파일 언어이다. 컴파일과 실행 속도가 빠르고 배포도 편리하면서 쉽게 사용할 수 있는 프로그래밍 언어이다. Go의 특징은 아래와 같다.

- 빠른 컴파일 속도

- 간결한 코드

- 미사용 메모리 자동 해제(가비지 컬렉션)

- 편리한 동시성 코드 작성

- 멀티코어 프로세서 지원

C 언어와 문법이 비슷한데, Head First 의 특유의 재미있고, 이해하기 쉬운 설명들이 많이 있다. 처음에는 Go 언어의 기본 문법, 조건문과 반복문, 함수, 패키지, 배열, 슬라이스, 맵, 구조체, 사용자 정의 타입 등 Go의 기본 문법들에 대해서 소개한다. 10장에서는 캡슐화, 임베드의 개념 및 사용법에 대해서 소개하고, 11장에서는 특정 메서드를 정의하는 모든 타입의 값을 저장할 수 있는 변수 또는 매개변수를 정의하는 인터페이스에 대해 소개한다. 12장에서는 실패 복구하기, 13장에서는 고루틴과 채널, 14장에서는 자동 테스트, 15장에서는 웹 앱, 16장에서는 HTML 템플릿에 대해 소개하고 있다.

래퍼런스 책까지는 아니더라도 Go를 처음 접하는 개발자 도는 Go를 쉽게 이해하고 싶어하는 사람들에게는 추천할 만한 책이다. 그림과 설명이 많으며, 적절한 질문과 답변 및 예제, 퀴즈를 통해 쉽게 이해하기 쉬워진다.

 

나는 GO언어 재재재재재재입문자다. 기본적인 문법은 상당히 익숙하다. 그런데 Go언어를 활용해서 뭔가 고급스러운 걸 만들어보고자 했을 때는 마음처럼 잘 되지 않아서 좌절하는 일을 반복해왔다. 그러다가 이 책을 접하게 되었다. 

 

결론부터 말하자면, 그간 다양한 개발 언어를 공부하면서 Head First 시리즈를 많이 접해봤지만, 이 책 만큼 내용이 만족스러웠던 책은 없었다. 

 

개인적으로 Head First 시리즈에서 싫어했던 부분은, 부담스러운 서양식 유머, 산만한 서술 방식, 널뛰는 챕터 구성 등이다. 그러나 이 책을 통해  왜 Head First 시리즈가 왜 일부 학습자들에게는 열광적인 지지를 받고 있는 지 알 수 있었다. 

 

가장 좋았던 부분은, 이 책은 일반적인 학습서처럼 타입 ->변수 -> 조건문 -> 함수 이런 형태로 사전처럼 전개되지 않는다는 거다. 이 책은 각 장마다 학습할 메인 테마에 가장 잘 어울리는 예제를 완성하는 형태로 내용이 전개된다. 중점적으로 학습할 주제는 있지만, 순서대로 해당 내용만 국한되어 나오지는 않고 초심자가 GO언어를 익히면서 알아가야하는 것은 모조리, 그리고 상세히 설명한다.

 

설명도 일반적인 도서와는 다르게, 공이 굉장히 많이 들어가 있다. 소스코드가 학습자에게 조금이라도 어렵다 싶은 부분은 모두 화살표로 빼서 하나하나 설명을 추가했다.

 

한글 번역도 한국 Go언어 커뮤니티에서 활발한 활동을 보이는 권민재님이 맡아서 처음부터 끝까지 흠잡을데가 없었다. 한글 단어 선택도 훌륭하고 부드럽게 읽히면서 내용 서술도 이해하기 쉬웠다. 

 

지금까지 한국에 번역 출간된 Go언어책은 대부분 다 읽어본 학습자로서, 이 책을 국내 Go언어 입문서에 새로운 이정표라고 부르고 싶다. 

 

  • 이 책은 한빛미디어의 «나는 리뷰어다» 이벤트로 받은 서적입니다.

책표지!

가끔 별다른 의미없이 새로운 언어에 도전하는데, 사용할 수 있는 수준으로 열심히 하는건 아니지만 작은 토이 프로젝트(Toy Project)를 진행하면서 언어의 특징을 알아보는 수준으로 진행한다. 이번에 스터디 하는 분들과 Go Study를 진행하였고, 운이 좋아서 Head First Go도 함께 참고할 수 있어서 좋은 경험이었다.

1

개인적으로 “Head First” 책을 그렇게 선호하는 편이 아니다. 책의 분량이 생각보다 많고, 분량에 비해서 다루는 내용이 조금 적다고 생각하기 때문이다. 하지만 “Head First” 책 중에서 “Head First Design Patterns”은 엄청나게 좋아한다. 책의 분량이 많은데 비해서 다루는 내용이 적은데, 디자인 패턴의 경우 12개의 디자인 패턴을 다루고 있다. 기존의 GoF 책에 비해서 절반 정도 다루지만 12개의 패턴에 대해서 매우 상세하게 다루고 있고, 우선순위가 높은 패턴을 잘 선별해서 소개해주고 있어서 “Head First Design Patterns”과 “Head First Statistics”은 추천한다.

이번에 읽게 된 책도 Go를 처음 접하는 분들에게 좋은 선택이라 말하고 싶다. 국내에 출간된 Go 책 중에서 “디스커버리 Go 언어”를 가장 좋아하는데, 해당 교재는 처음 접하는 분들에게 적합한 교재는 아니다. 기본적인 문법은 Go Documentation에서 제공하는 A Tour of Go를 접하고 읽었던 책이라 무작정 읽기에는 조금 난이도가 있다고 생각한다. 하지만 이번 “Head First Go”는 Go를 처음 접하는 분들에게 추천할 수 있는 책이다.

2

Go를 처음 접하는 분들은 A Tour of Go로 시작하면 좋다고 하지만 설명이 너무 간략해서 쉽지 않다. 따라서 이런 입문서를 참고해서 A Tour of Go를 진행하면 훨씬 수월하다. 이번에 Go를 사용해서 블록체인을 활용하는 튜토리얼을 진행하면서 Go 언어를 공부했는데, 이 책의 중반정도 되는 수준만 알아도 블록체인과 관련된 튜토리얼을 진행하는데 어려움이 없었다. 언어의 명세가 복잡하지 않아서 해당 교재의 수준만으로 재미있게 튜토리얼을 진행할 수 있었다.

3

“Head First” 전매특허인 편집도 학습에 많은 도움이 되었다. 명세가 간단하지만 기존의 언어와 차이가 많아서 약간 아리송한 부분은 “Head First”의 전매특허와 같은 ‘편집’이 적절한 도움이 될 것으로 생각된다. 그리고 나처럼 Go 언어를 어설프게 알고 있는 분들도 문법을 깔끔하게 정리할 수 있는 기회가 될 것으로 생각된다.

전매특허!

 

Golang은 이전 회사의 백엔드에서 사용한 언어라 많이 들어본 언어입니다(코드를 전혀 못본게 지금 돌이켜보면 매우 아쉽네요)

 

그 후에 점점 고랭에 대해 많이 들으며 흥미가 계속 생겼습니다. 관련 책을 몇개 구입해서 보는데, 막상 진도가 막히고.. 어렵더라구요

 

그런데 이 책은 역시 헤드퍼스트 시리즈답게, 매우 입문자에게 좋은 구성을 가지고 있습니다. 읽고 따라서 치고, 내용 정리하다보면 1장이 금방 끝납니다

 

부수면서 배우기(에러를 발생시키며 그 에러가 왜 났는지 설명), 바보 같은 질문은 없습니다! 카테고리에서 나오는 내용도 매우 유익합니다! 에러를 내면서 강의하는 방식도 꽤 괜찮겠다-라는 생각을 했습니다

 

고랭은 C 언어랑 비슷한 느낌을 받았고, class, 상속이 없는 부분은 생소하지만 신기했습니다. 코루틴 코루틴 말도 많이 들었는데 간단히 어떤 개념인지 이제 이해가 가네요

 

민재님이 번역을 잘 해주셔서 이해도 더 잘되는 것 같아요! 

 

책 2-3회독 하고 간단한 어플리케이션 만들어봐야겠네요. 고랭에 관심있는 분들이 처음 시작할 때 매우 추천합니다! 

 

Head First Go는 한빛미디어에서 출판된 Go언어의 입문서이며 중급자들도 참조할 수 있는 메뉴얼이다.

  

입문서로서의 역활은 내가 어려서 GW-BASIC으로 처음 짯던 프로그램인 숫자 맞추기 게임을 통해서 충분히 하고 있는데, 코딩하여 실행된 화면은 아래와 같다. 나는 Atom 에디터를 사용했다, 사용할 에디터 선택은 자유이다.

 

10번 내에 컴퓨터가 랜덤으로 발행한 숫자를 맞춰야 승리하는 간단한 게임이다.

 

화면을 보면 대충 짐작하겠지만 Golang은 멀티 리턴값을 지원하고 언어 자체적으로 컨벤션을 제공한다.

(언어 자체적으로 제공하는 컨벤션이 맘이 들지 않는다면 어쩔 수 없다. 구글에 요청 메일을 보내자.)

 

개인적으로 가장 맘에 들었던 부분은 프로그램이 커질수록 모듈화가 필요한데 Golang에서 어떻게 모듈화를 하여 사용할 수 있는지 여러 페이지를 할애하여 잘 나와있다는 것이다. Golang에서 모듈화를 몇번 연습하면 오바좀 해서 언어의50%가량 익힌 것이라 생각한다. 프로그램의 구조를 어떻게 정의할 수 있는지 미리 알고 사용할 수록 커다란 프로그램을 만드는데 도움이 되기 때문이다.

 

아래는 책의 중간에 나온 모듈화를 하고 가져와서 사용하는 내용의 일부이다.

 

 

Head First Go에선 이후 Go언어의 배열을 비롯한 멀티태스킹, 채널등의 개념을 배우고 마지막으로 웹앱을 만들며 책을 끝맺는다. Go언어에서 멀티태스킹은 특히 중요한데 Go의 내부 스케줄러가 마이크로프로세스를 관리하는 능력이 뛰어나기 때문이다. 최대 사용할 마이크로프로세스의 개수를 지정하는 API도 있다. (좀 더 스케줄러의 내용을 깊이 들어가보면 최대 마이크로프로세스의 개수를 넘겨서 사용하는 경우가 발생할 수 있는데, 이 경우를 확실히 이해하는 것이 좋다.)

 

Go언어의 간결한 문법으로 사용가능한 멀티태스킹 기능을 사용하면 빠르게 강력한 스케줄러를 갖춘 멀티태스킹 프로그램을 작성할 수 있다. Go언어의 스케줄러는 Go언어를 사용하는 이유이자 언어의 꽃이라고 해도 지나치지않다.

 

입문자에겐 눈에 보기 쉽게 쓰여진 책이고 중급자 이상에겐 매번 언어의 특성을 기억해야 하는 번거로움을 덜어줄 레퍼런스로서의 역활을 독톡히 할 책이 출판되었다고 생각한다.

 

Go언어에 관심이 있는 개발자들이라면 이 책을 한권 소장해 보기를 권한다

 

한빛미디어 출판사의 "Head First Go(제이 맥가브렌 저 / 권민재 역)"를 읽고 작성한 리뷰입니다.

표지


Go 언어는 구글에서 개발한 언어로 동시성 지원이 가능하기 때문에 클라우드를 위한 언어로 불리기도 하며, 해커랭크(HackerRank)의 올해 설문조사에서 개발자들 사이에 가장 배우고 싶은 언어 1위를 차지할 만큼 인기있는 언어이다.

처음 Go를 접했을 때만 해도 구글 내부에서만 쓰이는 듯한 느낌, 독특한 기능들 때문에(마치 무림의 세계로 비유하면 사파 혹은 마교 같은 느낌이다.) 썩 내키지 않았는데 앞서 언급한 인기 순위나 트렌드, 그리고 사용자 비율이 계속 증가세를 보이고 있어 본 도서를 시작으로 학습하기로 결정하였고 그 결과를 본 리뷰로 남긴다.

먼저 본 도서를 통해 배운 Go 언어에 대한 특징을 간단히 요약하면 다음과 같다.

  • Go 만의 독특한 (구글스러운?)면이 있다.
    • 물론 장점일수도 단점일수도 있다.
    • 현대 프로그래밍 언어론과 부합하지 않는 경우가 많다.
      • 예를 들면 Class가 없다.
    • 많이 듣긴 했지만 정체를 몰랐던 Duck Typing(덕 타이핑) 개념이 존재한다.
      • 덕분에 Class가 아닌 Struct를 통해 객체 지향을 구현한다.
      • 개인적으로 C 언어의 Struct와 함수 포인터를 이용해 OOP를 구현하던 시절이 생각나서 반가웠다.
      • 함수형 프로그래밍의 직관성과 효율성이 가미된 것 같은 느낌이 들어 만족스러웠다.
    • Function과 Method가 공존한다. ㅋㅋㅋ
      • 메소드 체이닝, 추상화, Interchangeability(교체가능성)의 개념과 밀접하다.
      • 대문자로 시작하면 Function과, 소문자로 시작하면 Method이다.
      • 개인적으로 효율적이라 좋았다.
  • GoRoutine(고루틴) 이라는 비동기 매커니즘을 제공한다.
    • 메시지 채널을 이용하여 동시성 프로그래밍이 가능하다.
    • C 언어 등으로 멀티스레드 프로그램을 개발해 본 사람은 동시성 구현을 위해 프로그래머가 이렇게 할 일이 없다는 것에 적잖이 놀란다.
  • 클라우드, 서버 사이드 언어로 인기가 많다.
    • 분산시스템에 매우 특화되어 있다.
    • Docker나 Kubernetes를 모르는 사람은 있어도 못들어 본 사람은 거의 없을 것이다. 바로 이것들을 만드는 언어이다.
  • Go 언어 컴파일러는 Go 언어로 만들었다. (덕분에 컴파일이 빨라 인터프리터 언어처럼 쓸 수 있다.)

  • C 언어와 문법이 유사하다.
    • 개발자가 C 언어를 개발했던 사람 중 한명이다.
    • 덕분에 포인터가 등장한다. ㅋㅋㅋ
    • 그런데 본인처럼 C언어를 좋아하는 사람들은 쌍수를 들고 환영할 일이기도 하다. (개인적으로 Java의 참조포인터, close() 메소드가 마음에 안 들었는데 어차피 포인터 개념이면서 조작이 불가하여 불편했었다.)
  • 예약어(keyword)가 25개 밖에 없어 쉽게 배울 수 있다.

이렇듯 Go 언어는 정말 Go 스럽다. 굉장히 우스꽝스러운 모양새가 많아 배우고 구현하면서도 자주 웃었다. 구글의 개발자 문화가 반영된 것일까? 피식피식 웃으면서도 OOP와 비효율성에 대한 깊은 고민과 철학이 담겨있다는 점에서 감탄하는 계기가 되기도 했다.


본 도서에 대한 소개를 이 즈음에서 마무리 하고 수십년 간 입문서로 유명한 Head First 시리즈에 대해 소개해 볼까 한다. Head First 시리즈는 입문서로 활용할 경우 최고의 선택으로 손색이 없을 정도의 명작이다.

Head First 시리즈의 독특한 구성에 대해 아는 것은 본 도서의 절반인 구성과 체계를 이해하는 것이기에 장점 및 특징 몇 가지를 소개해보려 한다. 먼저, 아래 그림을 보면 이런 Go 언어와 무관해보이는 두뇌를 정복하는 방법이 나온다.Head First
책을 읽을 때마다 중간 중간 이러한 장치들이 나타나는데 머리말에서 알 수 있듯 머리가 휴식을 취한 것 처럼 환기되기도하고 흥미를 불어넣어 가독성을 높여주는 역할을 한다.

예를 들면 Go언어 대한 Block 설명을 들 수 있는데 순차적으로 이루어진 코드를 그냥 읽어나가다 보면 블록 간 뚜렷한 경계선이 보이지 않은 채 지나가는 경우가 있다. 그럴때마다 아래 그림처럼 핵심 개념을 명확히 해주는 시각화 자료가 등장하여 쉽고 빠른 이해가 가능하다.Block

프로그래밍을 한 번이라도 배운 분들이 처음 맞닥뜨리는 장애물 중 하나가 for문의 생소한 구조이다. 우리는 순차적으로 코드를 읽어나가기 마련인데 for문의 동작 방식은 그렇지 않아 매끄러운 이해가 어렵다. 역시 아래 그림과 같이 깔끔한 시각화로 개념을 명확하게 하기 위한 경계선을 긋는다.Head First

하나의 소스를 완성하기 까지 위에서 열거한 방식처럼 부분의 개념을 쪼개 개념을 명확히 한 후 각 개념간의 관계에 집중할 수 있는 구성이 마음에 들었다. 단원의 마지막 장에는 아래 그림과 같이 완성된 소스코드를 보여주는데 주석이 앞서 설명한 개념 및 관계를 상기시켜주므로 완벽한 이해를 돕는다.소스코드 완성본

마지막으로 고루틴을 예로 들어보자. 멀티스레드 프로그래밍을 전혀 접하지 않은 분들은 동시성 처리가 매우 생소하고 어렵게 느껴질 것이다. 미리 접한 이로써 말씀드리자면 동시성 처리가 어려운 이유는 프로그래머가 메모리의 상황을 머리속에서 그려가며 세마포어, 뮤텍스 등을 활용해 각 병렬 모듈을 일일이 제어해야 하기 때문이다.

Go 언어는 그런 세부적인 부분을 알아서 처리하기 때문에 매우 편리하지만 물론 프로그래머가 처리해야 하는 부분도 있다. 순서 등의 제어를 위해 채널을 활용해야 하는 것이다. 아래 그림은 동시성의 개념을 직관적으로 이해하는데 있어 큰 도움을 준다.고루틴

실행 시마다 순서가 뒤죽박죽으로 실행되는 3가지 예시를 통해 동시성의 특성을 직관적으로 이해할 수 있으며 채널의 필요성 또한 바로 이해가 가능하다. 아래 코드 자석 그림은 처음부터 프로그래밍을 짜는 막막함을 크게 덜어주며, 코드 자석 퀴즈를 풀고 직접 코딩을 해보면 얼마나 쉬운지 느낄 수 있다. 머리속에서 개념간의 연결 그물이 느껴질 것이다.

Go 언어 초보자라면 혹은 프로그래밍에 대해 아무것도 모른다면 이 책을 첫 단추로 삼으면 절대 후회하지 않을 듯 하다. Go의 재미와 Head First의 재미를 둘 다 느낄 수 있기 때문이다.

head_first_go.jpg

 

GO라는 언어에 관심이 있어서 읽었다.

GO라는 언어를 처음 배우는 사람들이 읽기 진짜 좋은 책이라고 생각한다. 내용이 어렵지 않게 설명되어 있고, 그림을 통한 설명도 있어서 이해하는 게 어렵지 않다. 다만 기존에 프로그래밍 언어를 알고 있는 사람에 한해서다. 프로그래밍을 아주 처음 접하는 사람에게는 어려울 수 있을만한 내용이다.

 

각 챕터는 네 개의 파트로 나뉜다. 챕터 설명, 바보 같은 질문은 없다, 부수면서

배우기 그리고 연습문제가 있다.

설명 부분은  챕터에서 설명하고자 하는 내용을 세세하게 알려준다. 특히 그림을

사용하는 것과 코드를 설명하는 부분이 다른 책들과 다른게 특징이다. 그림은

글로 된 설명을 독자가 머리로 이해하는데 헷갈릴만한 것들을 보여줘서 이해하기

쉽게 하고,  코드 설명은 다른 책들이 코드를 쭉 쓰고 그 위나 아래에 설명을 하는

것과 다르게 옆에서 사람이 설명해 주듯이 각 코드 라인에 설명을 적어서 라인별로

이해하는 데 도움이 된다.

'바보 같은 질문은 없다'와 '부수면서 배우기'는 보통 Go 사용이 익숙한 사람들이

보기에는 '이건 너무 쉬워서 당연히 안 틀리겠지'라고 생각해 그냥 넘어갈 법한

부분들을 알려준다. 초보자 입장에서는 '왜 안 알려주지' 했을법한 내용들을

설명해 줘서 고마운 내용들이다.

'연습문제'는 각 챕터에서 배운 걸 간단하게 적용해 볼 수 있는 문제들이다. 

 

책에서 아쉬웠던 점은 초보자들이 Go라는 언어를 시작하기에는 쉽게 설명을

하지만,  그래서 그런지 '조금만 더 알려주지' 하는 아쉬움이 남는다. 하나하나

다 알려줄 수는 없지만 아쉬움이 남는 챕터들이 조금씩 있다.

그리고 연습문제의 난이도가 너무 쉽거나, 쉬운 정도밖에 없어서 난이도가 조금

높아졌으면 한다.

 

그래도 이 책은 충분히 처음 시작하는 사람들에게 Go라는 언어에 대한 흥미를 줄 수

있다고 생각한다. 물론 나도 이 책을 읽고 Go라는 언어가 맘에 들어서 조금씩

사용하려고 연습을 하고 있다.

 

이번에 리뷰할 책은 "HeadFirst Go"입니다.

Go는 구글에서 만든 프로그래밍 언어입니다. 
go 혹은 golang으로 불리우며 컴파일하면 각각의 플랫폼에 맞는 바이너리 실행파일이 생성됩니다.

이 책 또한 헤드퍼스트 시리즈답게  쉽게 쓰여졌습니다
500페이지 분량의 책이지만, 큼지막한 글씨의 코드 많은 그림으로 이루어진 부가설명등으로
마치 글을 읽고 있기보다는 PPT나 그림등을 보고 있다는 느낌이 드네요.

대상독자는 초급자대상 입문용이라고 생각됩니다. 
책의 목차는
문법기초, 조건문과 반복문, 함수, 패키지, 배열, 슬라이스, 맵, 구조체, 사용자 정의 타입, 캡슐화와 임베딩, 인터페이스,
실패 복구하기, 고루틴과 채널, 자동 테스트, 웹앱, HTML템플릿 으로 이루어져 있습니다.

이 책에서 좋았던 부분은 "부수면서 배우기"라는 코너가 중간중간 나오는데
초심자나 다른언어를 쓰다 go 언어를 쓰게되면 코드를 잘못 작성하거나 해서 오류가 났을때
익숙치 않은 에러메시지가 나와서 당황할 수 있는데, 이 코너에서 정상적인 코드 설명 후에
조금씩 코드를 망가뜨리고 그랬을때 어떤 오류가 어떤 이유로 실패하는지를 몇가지씩 보여주는데
언어를 처음 익힐때 도움이 많이 될 거라고 생각됩니다.

챕터마다 코드 퀴즈도 (객관식이긴 하지만) 내가 챕터를 제대로 이해했는지 판단할 수 있는 좋은 방법인거 같습니다.

C언어 이후에 간만에 포인터를 사용하는 코드를 봐서 걱정도 됐지만 예제수준의 내용으론 파악하기 문제가 없었고,
컴파일러에서도 어느정도 미리 잘못쓰여진 코드를 체크해주는거 같았습니다.

고루틴을 통한 동시성 지원, 코드의 타입과 변수명 순서가 다르다던지 struct구조체는 있는데 class는 없고, exception은 지원안하고 그대신 error를 리턴하게 하는등 여러가지 다른점이 있어서 go 언어를 배우려면 기본문법외에 별도의 best practice같은 걸 배워야 할 거 같습니다.

요새 나온 언어라서 쉽게 웹서버를 만들 수  있다던지, 자동테스트를 위한 패키지가 기본으로 들어가 있어서 토이프로그램을 만드는데는 
일단 좋을거 같은데, 뭐랄까 어플리케이션을 개발한다고 했을때 기존 파이썬, node, 자바등에서 go로 넘어가야 할 이유를 딱히 찾지는 못했습니다.
컴파일속도가 빠르다한들 각각의 플랫폼마다 별도 빌드를 해야한다는 점도 있고.

이런 말을 하기 그렇지만 개인적으로 Go 언어에 대한 철학을 좋아한다.

 

Strict 한 언어 규칙, 개발을 서포트 해주는 회가 있고 합리적인 철학을 가지고 있는 개발 언어가 좋은 언어라고 생각한다.

Format까지 내장으로 만들고 변수 이름까지 강제적으로 규칙으로 제한하는 Strict 한 언어 규칙과

Google이라는 매우 강한 Background를 가지고 있기 때문에 호시탐탐 Go 언어를 배우고자 시도하였다.

하지만 집에 Go 언어 책만 4권이 있고 Go 언어를 배우는 시도를 셀 수 없을 정도로 많이 시도하였다.

하지만 이 책은 달랐다.

책을 읽는 사람이 처음 프로그래밍을 접해본다는 가정을 가지고 책이 작성되어 있기 때문에 초심자도 매우 쉽게 언어에 대한 이해를 쌓을 수 있었다.

또한 책이 유머러스하게 작성되어 있기 때문에 지루하지 않게 Go 언어를 공부할 수 있었다.

또한 아래와 같은 간단한 퀴즈로 현재의 공부 상태를 확인할 수 있는 점이 좋았다.

만약 프로그래밍에 익숙하지 않는데 Go 언어를 배운다고 한다면 내가 읽었던 책 중 당연히 이 책을 추천할 것 같다.

이 책을 계기로 모두 한번 새로운 언어에 도전해 보길 바란다.

HEAD_FIRST_GO.jpg

 

예전에 Go에 관심을 갖고 잠시 해봤던 적이 있었지만 곧 그만뒀다. 이유가 약간 어이없지만, 내가 보기엔 코드가 못생겨서였다(특히 함수의 시작이 대문자인게 맘에 안 들었음). 계속 Python을 사용했고, 몇 년 사이 Python의 위상은 예전과 비교할 수 없을만큼 높아졌고 tiobe에서 상위권으로 진입했다. Go는 그에 비하면 아직도 마이너한 언어이지만 Docker와 Kubernetes를 필두로 한 Go로 작성한 프로그램들이 점점 입지를 다지면서(http://www.ciokorea.com/slideshow/22991) 역시 급성장하고 있다.

과거를 돌이켜보면 원래 C로 사회 생활을 시작했기에 처음에 Python을 봤을 때는 indent로 block을 구분하는 Python이 굉장히 이상해보였던 기억이 난다. 마찬가지로 나에겐 Go의 못생긴 syntax도 혹시 몇 년 후에는 오히려 괜찮아보이지 않을까? 하는 생각으로 이 책을 읽기 시작했다.

1장에도 나오는데 https://play.golang.org/에서 간단한 건 바로 실행할 수 있지만, 그냥 GoLand를 설치해서 따라해보기로 했다. mac에서는 brew install go 로 설치(/usr/local/Cellar/go/1.14.2_1)할 수 있고, GoLand를 사용하는 경우 자체적으로 설치(~/sdk/go1.14.2)할 수도 있다. 1장을 시작으로 2장의 조건, 반복문까지는 전형적인 프로그래밍 초보자용 책의 내용으로 Go의 문법을 다루며 아마 대부분의 사람들이 문제 없이 따라할만 하다.

아마 최초의 장벽은 3장 함수에 포함된 포인터일 거고(예전에는 C가 대부분 프로그래밍 기초 수업에서 사용하는 언어였고 포인터 부분부터 좌절을 맛보기 시작한다), 일단 여기를 잘 넘어가면 4장 패키지, 5장 배열, 6장 슬라이스, 7장 맵, 8장 구조체, 9장 사용자 정의 타입까지는 다시 큰 어려움 없이 배울 수 있다.

10장 캡슐화와 임베딩, 11장 인터페이스에 가면 여기부터는 언어 문법뿐만 아니라 프로그래밍 패러다임에 관계된 부분을 차차 알아야 하기 때문에 두 번째 장벽으로 볼 수 있다. 이 부분은 나에게도 신선하게 다가왔는데, class는 없고 struct가 있는 건 알고 있었지만, interface가 있는 건 몰랐고(duck typing), 또 function과 method의 자체적인 구분을 가지고 있는 부분도 새로웠다(go에 대해 아무 것도 몰랐을 때 어떻게 이런 형태를 구현하지? 했던 의문이 9~11장을 읽으면서 해소).

아마 마지막 관문은 13장 고루틴과 채널일텐데, 내용 자체는 따라가기 어렵지 않지만 멀티태스킹이나 동시성/병렬성에 대한 부분이 초보자에게는 어려울 수 있다. 12장 실패 복구하기나 14장 자동 테스트는 go가 비교적 최신 언어라는 점을 보여주는 편리한 부분이고, 15장 웹 앱, 16장 HTML 템플릿은 책을 정리하면서 종합적으로 보여준다.

go에 대한 인상

system programming을 할 수 있도록 목표를 잡았다는 점은 알고 있었는데 그 때문인지 한 마디로 하면 “advanced C”라고 하고 싶다. 포인터나 클래스 없이 구조체가 있다는 점도 그렇고, 언어의 여러가지 모습이 C를 하던 시절을 생각나게 한다.

그런데 책을 읽으면서 “advanced”된 여러가지 요소가 Go에 대한 흥미를 불러일으켰는데, 가장 큰 부분은 duck typing을 통해 클래스를 안 쓰고 구조체를 통해 OOP를 구현하고 있다는 부분이었다. 개인적으로는 OOP보다 절차식 프로그래밍이 훨씬 직관적이라 생각하기도 하고, OOP = class라고 잘못 생각하는 사람들도 있지만, 사실 클래스는 OOP의 필수 요소가 아니란 점에서 go와 같은 언어 설계가 맘에 들었고, 배우고 싶단 생각이 들었다.

이외에도 여러가지 도구들 (go run, go fmt, go install, go doc 등)도 최근의 언어들은 많이 지원하는 부분이지만, 편리한 도구가 늘어나는 건 당연히 좋은 일이기 때문에 역시 맘에 들었다.

처음 go를 봤을 때 가장 싫어했던 부분인 대문자로 함수/메소드가 시작하는 부분도 대문자/소문자로 외부 노출 여부를 결정한다는 점에서 간단하면서 괜찮다는 쪽으로 생각이 바뀌었다.

Head First Go에 대한 인상

이번에 책을 보면서 예전에는 head first 시리즈가 내용이 좋긴 하지만 조금 스타일이 맞지 않는다고 생각해서 거의 보질 않았는데 오랜만에 이번 책을 보면서 처음 배우는 사람들에게는 확실히 일반적인 프로그래밍 책보다 이런 스타일이 훨씬 쉽고 친숙하게 느껴지겠다는 생각이 들었고, 앞으로 다른 언어에 대한 책도 head first 시리즈를 살펴봐야겠단 생각을 했다.

무엇보다도 go에 대한 나의 예전 생각을 이번에 바꿨다는 점에서 개인적으로는 굉장히 오래 기억에 남을만한 책이 될 거 같단 생각이 든다.

Etc

  1. 약간 의외였지만, 이 벤치마크 글에 따르면 Go를 performance 때문에 선택할 이유는 없다. https://www.quora.com/Will-the-emergence-of-Golang-threat-the-popularity-of-C-Java
  2. 책이 아니라 리디북스 프로그램 관련 문제가 있다. 책의 판형이 조금 달라서 그런지 모르겠지만 맥북 모니터에서는 오른쪽 페이지들이 약간 잘려서 보인다. 리디북스 앱이 스크린캡쳐를 막아놔서 스크린샷 첨부를 하지는 못했지만 외부모니터에서는(가로 1920) 제대로 보이고, 맥북 모니터에서는 그렇지 않았다.

 

정말 간결하면서, 강력한 언어, Go에 대한 책입니다.

 

책을 읽고 예제를 타이핑 해보면서, 책을 정말 쉽게 썼다고 느꼈습니다.

만약, 방향을 잡아줄 멘토가 있다면,( 혹시 없어도 )

프로그래밍을 전혀 모르는 사람, 혼자 읽으면서, 충분히 Go를 익힐만큼 쉽게 써진 책입니다.

 

간결한 언어

저는 4년전에 Go에 대한 책을 읽은 적이 있는데요.

그때도 그랬지만, Go에 대한 책을 읽으면, "C"언어를 떠올리게 됩니다. 

마치 C언어를 다시만들어 보고 싶었던, "켄 톰슨"이 Go를 통해서 이를 실현한 것 아닌가 하는 느낌이 책을 읽는 내내 다가오거든요.

정말 딱, 정확하게 가질것만 가지고 있어서 탄복하게 만드는 그런 언어 입니다.

 

"따라서 Go에서는 예외와 같은 기능을 찾지 마세요. 예외 기능은 의도적으로 생략되었습니다.지금까지 예외를 사용해 온 개발자는 적응 기간이 필요할 수도 있겠지만, Go 메인테이너는 예외 없는 코드가 결국에는 더 나은 소프트웨어를 만들 거라고 믿습니다-본문중에서-"

 

Go언어의 예외처리는 panic, recover라는 두 함수를 사용해서 합니다. 

문제는 다른 언어에 비해서 얘네들이 너무 너무 빈약하다는 것입니다.

그 이유에 대해서 본문에서는 Go 설계자중 한 사람인,롬 스파이크의 인터뷰를 제시해주고 있습니다.

 

'의도적으로 생략'했다는 겁니다.

사실 예외처리 구문은 코드를 나쁘게 만드는 습관중에 하나입니다. ( 제 기억엔 마이어스의 Effective C++에서 본것 같습니다. ) 

예외처리를 하면 당장 머릿속에 복잡함은 극복하기 쉬울지 모르지만 

결과적으로 그 예외가 어디서 처리되는지를 보면, goto문을 사용하는 것과 다를 바 없습니다.

 

게다가 3,4개 예외가 쌓여가다보면, 결국엔 빠뜨리고 처리하지 못하는 경우도 다반사이고요.혹시 catch문을 써서 잡는다 해도, 이거 코드를 읽기 어렵게 만듭니다.

 

defer 문은 또다른 간결함의 끝판 왕입니다.

사실 jquery에서 promise를 사용할때 등장하는 용어가 defer입니다. 

자바스크립트와 다른 언어들에서 promise, future를 떠올려보면 async처리만을 위해서 이런 객체들을 사용하게 되는데요.

 

GO의 defer는 해당 함수가 끝날때까지 미뤄두는 것을 의미합니다.

이렇게 되면 다른 언어에서 왠만하면 예외로 처리하던 코드들을 defer를 통해서 제어하면서 처리할 수 있게 됩니다.(코드의 논리 흐름상 defer를 통해서 어떻게 마무리할지 알려주는 것은 코드를 읽기 편하게 합니다. )

 

게다가, 고루틴과 채널...

c와 c++그리고 java같은 언어에서 thread를 사용해본 경험이 있으시다면,

혹시 MFC에서 쓰레드를 캡슐화해서 사용하는 코드를 써보신 분이라면...

또는 크리티컬 섹션 코드 때문에 눈물로 밤을 지샌 분이라면..

go 루틴과 channel을 생성하고 사용하는 코드를 보면서 감동을 느낄 수밖에 없으실 겁니다.

 

말로 표현이 불가능한 예술입니다.

 

강력한 언어

고루틴은 다른 언어의 쓰레드 보다 생성속도와 사용하는 리소스 면에서 성능이 월등하다고 합니다.

고루틴이 제공하는 동시성은 어떤 언어에서도 따라오기 힘든 정도 인데요.

앞에서 말씀드렸지만, 다른 언어로 이런 작업을 해보신 분이라면,

백퍼센트 공감하실 겁니다. ( 스칼라 언어에 경우 akka라이브러리로 비슷한 기능이 있지만 Go만큼 간결하지 않습니다 )

 

그래서 그런지,

도커와 쿠버네티스가 Go언어로 만들어졌다고 알려져 있습니다.(아마도 이 이유로 Go언어를 사용하는 회사가 많아졌는지도 모르겠습니다. )

 

결론

물론, 프로그래밍 언어를 모르는 분들 입장에서 Go언어가 어려울 수도 있겠지만,

C를 아는 사람이라면, 정말 놀랄만큼 쉬운 언어가 Go입니다. 

 

C문법에서 가장 골치 앞은 포인터부분을 상당히 깔끔하게 정리했고, 

일급함수 개념을 도입해서 함수형 프로그래밍이 어느정도 가능하게 해줬는데...

이렇게까지 언어를 정리할 수 있다는 것은 설계자들에게 경의를 표하지 않을 수가 없습니다.

 

게다가,

이 책이 정말 읽고 따라하기 쉽게 되어 있습니다.

책을 읽다보면, 마치 저자가 독자의 머릿속에, Go에 대한 지식을 차곡차곡 쌓아주고 있는 것 같습니다.

간단한 문법 설명과 이를 사용한 예제, 그 이해를 기반으로 다음 예제를 설명하는 .. .

앞에서 말했던것처럼, 프로그래밍을 모르는 사람도 독학이 가능할 것 같은 그런 책입니다.

 

Head First Go: 명확한 예제로 효율적인 학습법을 제시하는 Go 입문서

한빛 미디어 <나는 리뷰어다> 5월!

4월은 건너뛰고 5월 <나는 리뷰다>를 신청하게 되었다. 이번엔 개발 책이랑 동영상 제작 도서를 선택했는데 개발 책을 받게 되었다!

'Head First Go: 명확한 예제로 효율적인 학습법을 제시하는 Go 입문서'

두번째로 리뷰하게 된 책은 바로 이것!! 개발자라면 한번 쯤은 들어봤을 Head First 시리즈다. 특히 이번 Go 언어는 3월에 나온 따끈따끈한 신간이다. Go언어를 사용하는 회사도 많아지고 관심도가 높아져 도서를 찾는 분들이 많을 텐데, 기본서로 한 권 가지고 있기에 아주 좋은 책이다.

 

 

대화체와 그림으로 이해하게 만들어주는 책

Head First 학습 원리

  • 그림을 넣어 설명합니다. 그림을 사용하면 기억하기 좋아서 학습 효과를 향상시킵니다(기억과 전이 분야 연구에 의하면 89%까지 향상된다고 합니다). 또 그림을 사용하면 이해하기도 쉬워집니다.
  • 대화체를 사용합니다. 딱딱한 말투보다 개인적으로 대화를 나누는 듯한 문체로 내용을 설명하면 학습 후 테스트에서 40% 정도 더 좋은 점수를 받을 수 있다고 합니다. 이 책은 강의 대신 이야기를 들려 줍니다.
  • 더 깊이 생각할 수 있게 만듭니다. 도전 의식을 불러일으킬 만한 연습 문제나 질문을 통해 좌뇌와 우뇌를 포함한 여러 감각을 모두 사용해야 하는 활동을 제공합니다.

누구를 위한 책인가요?

다음 질문에 한 가지라도 “예”라고 대답한다면, 이 책은 여러분을 위한 책입니다. 최소한의 선수 지식만 필요로 합니다.

  • 텍스트 에디터를 사용할 수 있으신가요?
  • 빠르고 생산성 높은 프로그래밍 언어를 배우고 싶으신가요?
  • 무미건조하고 학구적인 강의보다 언제든 이야기할 수 있는 재미있는 주제를 선호하시나요?

위 내용을 읽어보면 '정말 학습 효과를 향상 시키고 이해가 쉬운 책이라고?' 하며 궁금증을 갖을 수 있는데 정말 그렇다. 특히 친구가 나한테 설명해주는 듯한 대화체와 재밌는 그림이 Go 언어에 대한 이해도를 높인다. 그래서 Go언어를 한번도 접해보지 못한 사람, 프로그래밍을 안해본 사람도 보기 좋다.

나는 Go를 작년 Go 브릿지 서울 커뮤니티에 참여하면서 접하게 되어 Go의 기본 문법은 알고 있는 상태에서 이 책을 읽었다.
그런 면에서 볼 때 Go를 아예 몰랐던, 조금 알았던 상관없이 편하게 읽을 수 있는 책이었다. 특히 내가 책을 통해 새롭게 알게 된 지식도 있었다.

  • 새롭게 알게 된 지식
    • 룬(rune)
      • Go의 룬은 단일 문자를 나타내는 데 사용한다. 룬 리터널은 작은 따옴표를 사용한다.
      • 'A' - 95 출력(유니코드 문자 코드)
    • 네이밍 규칙
      • 변수, 함수, 타입의 이름이 대문자로 시작하면 외부로 노출(exported)되어 외부 패키지에서 접근할 수 있습니다(fmt.Println의 P가 대문자인 것도 같은 이유이며, 따라서 main 패키지 등에서 접근할 수 있습니다). 반면에 소문자로 시작하면 외부로 노출되지 않아(unexported) 동일한 패키지에서만 접근할 수 있습니다.

 

 

Go를 처음부터 끝까지 알고 싶다면?

'Head First Go'는 Go의 기본 문법부터 고루틴, 테스트, 웹 앱 만들기까지 이루어져 책 한 권으로 Go를 끝낼 수 있다. 특히 마지막 챕터에 웹 앱을 만들 수 있는 점은 큰 메리트가 아닐까 생각한다.
그래서 나도 이걸 읽고 서버 프로그래밍을 한번 해볼까? 하는 생각이 들 정도였으니말이다.
이 책을 하나씩 따라하다보면 어느새 Go를 잘 다룰 수 있는 사람이 될 수 있을 것 같다 :) Go가 궁금한 모든 분들에게 추천하고 싶다.

책의 예제는 사이트에서 제공하고 있으며 심화 예제도 제공하니 한번 쯤 들려서 보면 좋을 것 같다.
https://headfirstgo.com



출처: https://hyesunzzang.tistory.com/200 [HYESUN.IO]


오늘 살펴볼 도서는 Head First Go입니다. 구글에서 만든 Go언어에 대한 입문서입니다. 표지를 보면 익숙하겠지만 오레일리 출판사에서 나온 원서의 번역본입니다. Go언어는 2009년 구글에서 발표한 언어로 최근 우리나라에서도 많이 활용되고 있습니다. 클라우드 및 네트워크의 백앤드 등의 영역에서 대체적으로 많이 사용되며, 도커, 쿠버네티스, 분산 시스템 등에 많이 이용된다고 합니다.


Go언어의 특징은 빠른 컴파일 속도, 간결한 코드, 자동 가비지 컬렉션, 편리한 동시성 코드 작성, 멀티코어 지원 등이 있습니다. 최신의 언어답게 간결한 문법과 좋은 성능을 보이는 것이 특징입니다. 현재 Go언어는 오픈소스로 누구나 무료로 쉽게 사용할 수 있습니다. 하나의 프로그램으로 멀티운영체제에 동작가능하며, 웹 서버의 동시 접속을 좀 더 쉽고 효율적으로 작성할 수 있어 유지보수면에서도 훌륭할 것으로 봅니다.


전체적인 구성은 그림과 예제가 많은 형태입니다. 입문서답게 처음 접하는 사람들도 쉽게 받아들일 수 있게 구성되어 있습니다. 만약 파이썬과 같은 프로그래밍 언어를 한번이라도 다뤄본 경험이 있다면 Go언어는 매우 익숙할 것이다. 필자 또한 Go언어를 얼핏들어보고 접해봤지 실제로 사용해보적은 없다. 하지만 처음 패키지를 불러들이고 라이브러리를 import하고 코드를 작성하는 과정은 파이썬과 매우 유사해 이러한 부분은 프로그래밍 언어에 익숙해지는데 많은 도움을 줄 것이라 봅니다.


다양한 그림과 삽화를 통해 이해를 돕고 있으며 중간중간 '중요 항목'을 정리하며, 연습문제 또한 간단하게 나와있습니다. 차례대로 읽으면서 따라한다면 큰 문제없이 따라할 수 있을 것입니다. 마지막 정도의 13장에서는 고루틴과 채널에 대해 배운다. 고루틴의 일반적인 입문서에서는 잘 다루지않는 내용이지만 Go언어에서는 마지막에 다루고 있습니다. 작업을 한 번에 처리하는 것이 아닌 작은 작업으로 쪼개어 처리하는 것입니다. 이 때 채널이라는 개념을 통해 얼마만큼 잘게 쪼갤지 결정하며, 고루틴 간 데이터를 동기화하며 특정 고루틴이 다른 고루틴보다 앞서가지 않도록 제어해야 한다. 앞서 Go언어는 멀티코어 프로그래밍에 좋은 이점이 있는데 이러한 고루틴을 사용해 멀티프로그래밍을 쉽게 할 수 있습니다.


Go언어를 처음접하는 독자분들께 훌륭한 도서가 되길 바랍니다.



Head First

올해 3월 Head First Go 가 출간되었다. Head First는 O’REILLY 사에서 출간한 컴퓨터 관련 시리즈 도서로 다양한 책들이 있으며 많은 소프트웨어 개발자들이 한번은 봤을법한 표지로도 유명하다.

도서의 목차는 아래와 같다.

목차

	서문1장. 시작해 봅시다: 문법 기초2장. 다음엔 어떤 코드가 실행될까요?: 조건문과 반복문3장. 호출해 주세요: 함수4장. 코드 묶음: 패키지5장. 목록에서: 배열6장. 확장 문제: 슬라이스7장. 데이터 라벨링: 맵8장. 저장소 만들기: 구조체9장. 나만의 타입: 사용자 정의 타입10장. 당신만 알고 계세요: 캡슐화와 임베딩11장. 당신은 무엇을 할 수 있나요?: 인터페이스12장. 다시 일어서기: 실패 복구하기13장. 작업 공유하기: 고루틴과 채널14장. 코드 품질 보증: 자동 테스트15장. 요청에 응답하기: 웹 앱16장. 패턴 따르기: HTML 템플릿부록 A. os.OpenFile 이해하기: 파일 열기부록 B. 못 다룬 여섯 가지 주제: 번외

이 도서도 다른 Head First 시리즈 도서와 구성이 비슷하다. 처음 Head First를 10여년 전 접했을 때는 책 구성을 보고 많이 놀랐던 기억이 있다. 일반적인 기술 서적과는 확실히 다른 Head First만의 스타일이 존재한다. 이 부분에 대해서는 호불호가 있다.

이 도서의 특이한 점은 그림이 많다. 매우 많다. 그림을 사용한 학습은 기억력에 큰 도움이 되지만 그 만큼 책이 두꺼워 질 수 있고, 책이 얇아지게되면 기술의 깊이가 얕아질 수 있다. 이 책은 580여페이지의 도서로 기술의 깊이보단 입문자를 위한 기초를 탄탄히 할 수 있는 내용으로 가득 채워져 있다. 그렇기에 입문자들에게 매우 추천하는 책이다.

또 다른 특이한 부분은 대화체를 사용한다. 서로가 나와서 대화를 하면서 문제를 알려주고 해결하는 방법 등을 제시하면서 언어의 특징을 설명한다. (이 리뷰는 도서 리뷰기에 GO에 대한 이야기는 생략한다.) 이런 설명법이 어색할 수 도 있지만 흥미를 더욱 유발시키고 즐거울 수 있다. 나는 이러한 방식의 기술서적이 처음에는 어색했지만, 지금은 다른 이들에게 추천할 수 있다.

컴퓨터 언어를 처음 공부하는 분들에게 이 책은 유용하지만, 다른 컴퓨터 언어를 깊숙히 이해하고 있는 분들에게 이 책은 너무 쉬울 수 있다. 나같은 경우에도 Head First 시리즈를 좋아하지만 빠르게 지식을 정리해서 습득해야 할 필요가 있을 땐 찾지 않는 편이다. 이 부분은 유의해서 책을 선택하면 좋을 것 같다.

마지막으로 Go 언어는 요즘 오픈소스 진영에서도 굉장히 많이 사용되고 있기 때문에, 꼭 한번 배워보길 추천한다. 언어가 매우 재밋고 입문자도 C/C++ 언어보다 쉽게 배울 수 있다.(개인적으로 python 만큼 쉽진 않아보인다. 전문가 수준까지는 다른 얘기겠지만..)

 




 

<Head First Go>

 

이번에 리뷰하는 책은 한빛미디어사의 Head First 시리즈중 Go 언어를 설명하는 <Head First Go> 책이다.

 

예전에도 몇 권의 Head First 시리즈 책을 접했었다.

그 당시에도 프로그래밍 언어를 공부하려고 샀던 다른 책들과 너무 다른 느낌에 충격을 받았었는데, 그때의 그 느낌은 이번 Go 언어 도서에서도 그대로 느낄 수 있었다.

 

나는 이 책을 한단어로 표현해본다면 "필기노트"같다고 말할 것 같다.

 

아마도 이 책을 처음 접하는 분들은 복잡하고, 난해하다라는 느낌을 받을 수 있을 것이다. 나 역시 처음에는 책의 편집방향, 삽입된 이미지, 책의 폰트 등 기존의 책들과는 분명한 차이가 있어 약간은 거부감이 들었던 것도 사실이다.

 

하지만 천천히 읽어가다보면 과할정도로 친절하고, 매력적인 책이라고 느껴지기 시작한다.

 

이 책의 장점이라 생각되는 부분을 적어본다.

 

<내 필기노트를 보듯이 이해가 쉬워진다>

일반적인 책들은 예시 코드를 표와 같은 것으로 나열하고 밑에 각각에 코드에 대한 설명을 한다. 그럴때면 코드와 설명을 매칭해서 보는데 불편했던 적도 많았다.

 

그렇지만 이 책은 코드 내에 꼭 필기노트 작성하듯이 바로바로 화살표도 그려놓고 네모도 그려놓고 설명도 써놓는다. 이런부분이 직관적으로 코드이해에 도움이 되는 것 같다.

 

<반복만이 살길이다>

어떤것들을 배울 때는 반복하는 것이 가장 효율적이라는 생각이 든다. 이 책은 다양한 예제와 설명을 반복함으로써 단순히 이해를 넘어 체득화 시키려는듯 보인다.

 

<궁금중들을 속 시원하게 풀어준다>

책에는 "바보 같은 질문은 없습니다" 코너가 있다. 나는 예전부터 다른 시리즈를 읽을 때도 그랬듯이 이 코너를 좋아한다. 정말 내가 궁금해 하는 내용들에 대해서 답변이 되어 있었기 때문이다.

 

코너 제목처럼 바보 같은 질문, 즉 너무나도 단순하면서 궁금해지는 질문들에 대한 답변을 중간 중간 넣어서 책을 읽어가는데 감초 역할을 하는 것 같다.

 

좋은 것만 이야기 하니 단점도 이야기 해볼까 한다.

 

<어수선한 내용들 때문에 속이 울렁거릴지도 모른다>

정말 일반적인 책 편집의 구조에서 벗어난 자유 분방한 편집을 보여주는 책이다. 글과 사진, 이미지, 예제코드, 주석등이 주어진 형태없이 나열되어 있다.

그래서 책을 펴면 어디부터 읽을지 고민되는 경우도 발생한다. 나는 여전히 이 부분에 대해서는 적응이 되지 않는다. 하하

 

다른 단점을 찾으려해도 일단은 떠오르는게 별로 없다.

즉, 내가 단점이라고 말한 부분들에 대한 적응만 된다면 분명히 장점이 더 많은 책이라는 생각이다.

 

앞으로도 Head First 시리즈의 독특한 해석법으로 다양한 분야의 책들이 출판되었으면 하는 바람이다.



약 3년 전부터 공부하고 싶었던 Golang의 입문서 입니다.

헤드퍼스트 사의 책에 대해선 명성만 알았고 제대로 읽어본 적이 없었는데

이번 기회로 헤드퍼스트 책의 장점을 많이 느겼습니다.

 

개인적으로는 배움에 대한 시간제약이 없고, 마음의 여유가 많은 상황에서

천천히 책의 흐름을 한장 한장 꼼꼼히 따라갈 수 있을 때에 

헤드퍼스트 사의 책이 큰 효과를 발휘하는 것 같습니다.

 

전반적인 흐름은 각 장마다 학습시키려는 목표가 있고

이를 숙지시키기위해 반복적인 학습 장치들을 마련해두었습니다.

퀴즈, 빈칸채우기, 하나의 작은 프로그램을 여러 차례에 거쳐 완성하고 

개선하는 작업 등으로 이전에 배웠던 원리들을 암시적/명시적으로 활용하면서

반복시켜 머리속에 각인시키는 점이 재미있었고 책의 구성에 많은 노력을 

기울인 것을 느낄 수 있었습니다.

 

언어의 기본문법과 용례를 빠르게 찾고 적용하고자 하는 분들에게는 

다소 적합하지 않다고 생각했습니다.

책의 한장 한장이 이전까지의 지식을 기반으로 이뤄져있고, 구체적인 설명과 원리가 가득합니다.

왜? 보다는 잘 동작하는 어떻게? 가 궁금하신 분들은 빠르게 완성된 코드 조각을 탐색하는 것이 

필요한데 이 책의 정보형태는 순차적이고 독자를 사고시킴에 적합하다 생각했습니다.

 

프로그래밍을 처음 접하시는 분, 이미 타 언어의 경험이 있으나 GoLang은 처음 접하시는 분,

학습의 시간적 여유가 있어 충분히 천천히 내용전개가 되어도 괜찮고 오히려 원리를 이해하는 것이

목적이신분 들에겐 적합할 것 같습니다.

 

GoLang 학습에도 당연 큰 도움을 받았는데 그걸 넘어서 헤드퍼스트라는 브랜드에 큰 호감을 얻은

책이었습니다. 

 

IMG_1014.jpg

 

헤드 퍼스트 시리즈에 대해서는 이제 막 IT 공부를 시작하는 학생부터

업계의 종사자들 까지 많은 이들에게 알려져 있다.

많은 이들에게 헤드 퍼스트 시리즈를 알리고 

고유의 인지도를 쌓고 유지하는 데에는 그 특유의 스타일과 개성이 한 몫을 했는데

Head First GO 에서도 특유의 그 스타일과 개성이 똑같이 적용된다.

 

헤드퍼스트 시리즈는 장단이 뚜렷하다.

설명과 구성이 무겁지 않고 가볍게 접근할 수 있게 한다.

마치 해수욕장이나 실내 수영장 얕은 물에서 천천히 몸에 물을 적시며

놀이하듯 수영에 임할수 있듯이 

심오하거나 무겁지 않게 접근하고 생각해볼수 함으로써 지레 겁먹거나 질리게 하지 않는다.

단점 또한 뚜렷한데 이해를 쉽게할 수 있게 돕고 내용을 강조하기 위해 

그림을 많이 사용하다보니 집중이 어려울수 있고 깊이 있는 설명에 대한 갈증이 생길 수 있다. 

물론 이런 점이 학습 의욕을 고취시켜 스스로 학습하는 계기가 될수도 있지만..

 

어쨌든. 이런 헤드퍼스트 시리즈 고유의 특성들에 대해 인지하고 본인의 취향에 맞는다면

이 Head First GO 또한 좋은 입문서가 될 것 같다. 

시리즈가 이어져 온대에는 그만한 이유가 있고 이 책 또한 똑같은 이유를 갖고 있다.

우리가 새로운 제품에 관심을 갖고 이것저것 만져보며 일상에 한 부분이 되듯이

Go라는 구글의 새로운(이라고 하기엔 공개 된지 꽤 됐지만) 언어가 지적인 호기심을 충족시켜주며 

업무에 적용가능한 하나의 옵션이 될 수 있게 이 책이 도와 줄 것이라고 생각한다.(물론 Head First 시리즈 취향에 맞다면.)

 

 

IMG_5159.JPEG

 

 

오늘 리뷰할 책은 'GO 언어'를 몰라서 배우려고 하는 사람 또는 프로그래밍을 처음 입문하는 사람도 차근차근 쉽게 따라갈 수 있도록 쓰인 기초 개념서, 'Head First GO'이다.

 

Head first Go. 헤드 퍼스트는 '무작정'이라는 뜻으로 쓰이는 말로 '일단, 무작정 따라 해봐!'라는 느낌적인 느낌의 책이다. 이 시리즈를 아는 사람들은 알겠지만 개발 서적 중에서도 좀 특이한 책이다. 독학에 특화된 책으로 5페이지 분량을 이 책을 어떻게 읽고 활용하는지 그 방법을 소개하고 있다. 한국 독자들이 보기엔 좀 생소할 수도 있는 형태의 책이다. 머리말부터 따라서 읽어 가다 보면 아래와 같은 내용이 나온다.

 

누구를 위한 책일 까요.

다음 질문에 한 가지라도 “예”라고 대답한다면,

1. 텍스트 에디터를 사용할 수 있으신가요?

2. 빠르고 생산성 높은 프로그래밍 언어를 배우고 싶으신가요?

3. 무미건조하고 학구적인 강의보다 저녁 식사에 대화하기 위한 재미있는 주제를 선호하십니까?

 

이 책이 맞지 않는 사람은 누구일까요.

다음 질문에 하나라도 “예”라고 대답한다면,

1. 컴퓨터를 사용해 본 적이 없나요?

2. 레퍼런스 책을 찾고 있는 슈퍼 개발자인가요?

3. 새로운 것을 시도하는 게 두려운가요?

 

 

​누구를 위한 책이며, 이 책에 맞지 않는 사람은 누구인가라는 두 계열의 질문 중 각 3번째 질문이 이 책을 가장 잘 표현한 질문인 것 같다. 

 

이 책은 보통 프로그래밍 언어 책처럼 go라는 언어의 설명, 특징, 컴파일 방법 등 일반적으로 언어를 배우는 내용은 동일하게 들어있다. 하지만 그림과 사진이 많이 들어 있다. 정말 많이 들어 있다. 그림과 사진이 많이 들어 있다고 무조건 쉽고 좋은 책이라고는 할 수 없지만. 한 가지 더 특이한 점은 책 안의 텍스트가 대화체를 사용한다는 점이다.

 

그림을 넣어 설명합니다.

글자만 있는 것보다는 그림을 사용하는 편이 기억과 전이 분야 연구에 의하면 89%까지 향상된다고 합니다.

대화체를 사용합니다.

최근 연구에 의하면 대화를 나누는 듯 내용을 설명하면 학습 후 테스트에서 40% 정도 더 좋은 점수를 받을 수 있다고 합니다. 

 

라고 적혀있다.

 

 

위 내용처럼 go 언어의 기능을 설명하는 과정에서 많은 연습 문제들이 있는데 하나 예를 들자면, go에서 파일에서 내용을 읽어오는 기능을 설명하는 부분이 있다. 일반적인 기술 서적과는 다르게 설명이 되어있다.

 

개표하기

올해 슬리피 크리크 지역 교육위원회 이사가 선출될 예정이며, 여론사는 선거가 정말 임박했음을 보여 주고 있습니다.

후보 1. 이름 엠버 그레이엄, 직업 매니저

후보 2. 이름 브라이언 마틴, 직업 회계사

 

각 후보의 사진과 함께 말풍선으로 각 후보들이 자기소개를 하는 사진이 삽입되어 있다. 그리고 투표의 내용 파일을 읽어와서 누가 몇 표를 획득했는지 개표를 하는 기능을 만드는 내용이다.

 

기존의 국내 서적처럼 딱딱하게 공부를 하는 것도 좋겠지만 이런 식으로 소설책을 읽듯이 다른 사람들과 대화를 주고받으며 공부를 하듯이 go 언어를 배워보는 것도 나쁘지 않은 것 같다.

 

처음에 책을 펼쳤을 때는 그림과 말풍선들로 산만하게 보였지만 천천히 읽다 보면 마치 노트에 공부 내용을 필기한 것 같기도 하고 친구들과 함께 질문을 하면서 공부하는 것 같기도 하고, 딱딱한 프로그래밍 언어 공부지만 나름 지루할 수 있는 부분들을 많이 상쇄 시키면서 공부할 수 있어서 좋은 것 같다.

 

개인적으로 이 책을 추천하는 사람은 go라는 언어를 독학으로 배우면서, 급하지 않고 천천히, 재미있게 배우고 싶은 분들이라고 생각한다.

kubectl version을 실행하면 GoVersion이 나온다

요즘 대세인 kubernetes는 GO언어로 개발되어 있다.

그만큼 GO언어 쓰는 곳이 많겠고, 클라우드로 프로젝트를 하는 입장에서 GO언어에 대한 쓰임이 점차 많아질 듯하다.

하지만 여전히 web 프로젝트를 하면서 java를 많이 사용하고 있고, GO언어를 주력으로 쓰기에는 SI 프로젝트에서는 어려운 것이 사실이다.

또한, 그동안 java만 사용했었는데, 포인터, 구조체라는 단어를 보게 되어 C언어를 떠올리게 되었다. 새로운 언어를 배우기에는 많은 두려움이 있었지만, 그 유명한 Head First 시리즈 답에 많은 그림과 여백이 나를 조금은 안심시켰다.

어떤 블로그에서 GO언어를 활용해서 kubernetes에서 필요한 기능을 구현했다는 글을 본 적이 있다. GO언어를 익혀 나도 그렇게 되는 것을 꿈꿔보았다.

그러기에는 입문자용으로 괜찮은 책이라 생각한다. 쉽게 접근을 할 수 있도록 많은 도움을 주는 책이다.

장마다 연습문제도 제공하고 있어서 푸는 재미가 쏠쏠하다. 모두 한번 도전해 보시길 바란다.

사회적인으로 거리 두기를 하는 시점에서 여유시간들이 많이 생겼는데요. 여유시간에 자기 개발에 도전하는 사람들이 많이 있습니다. 자기개발하기 위한 입문서로써 Head First 시리즈가 있습니다. 단순히 지식을 두뇌 속에 집어넣는 방법보다 두뇌가 쌩쌩 돌아가는 방법으로 학습을 제시합니다.

 

여유 시간에 새롭게 도전하고 싶은 프로그래밍 언어로 Go 프로그래밍 언어를 소개합니다. Go 언어는 2009년에 구글에서 발표된 이후 지금까지 꾸준히 발전하면서 많은 사용자층을 확보해 왔습니다. 특히 클라우드 시대가 도래된 이후 클라우드를 위한 언어라는 말이 나올 정도로 클라우드, 네트워크 및 백엔드 분야에서 주목받는 언어로 자리매김하고 있습니다.

 

흔히 golang 이라고도 불리는 Go 프로그래밍 언어는 구글의 V8 Javascript 엔진 개발에 참여했던 Robert Griesemer, Bell Labs에서 유닉스 개발에 참여했던 Rob Pike, 그리고 역시 Bell Labs에서 유닉스 개발했으며 C 언어의 전신인 B 언어를 개발했던 Ken Thompson이 함께 개발했습니다.

 

다양한 특징을 가지고 있는 새로운 프로그래밍 언어를 배우려면 먼저 이해하고 그다음엔 그 내용에 대해서 잊어버리지 않아야 하는데요. 두뇌활동과 학습효과를 도와주는 이유로 Head First 시리즈를 많이 선택합니다. 이번 Head First Go 저서에서는 부수면서 배우기 코너로 기존의 코드를 변형시켜서 일부러 문제를 일으킨 다음 이를 해결하는 과정을 통해서 개념과 원리를 더 효율적으로 습득할 수 있게 도와주는 장점이 있습니다.

 

텍스트로만 나열된 개념들로만 설명하는 것이 아닌 그림 삽화를 넣고 기억하기 좋은 학습 효과를 일으킵니다. 또한 그림에 대한 부연설명도 깔끔한 서체로 되어있어 이해하기도 쉬워집니다. 전체적인 개념을 설명하는 딱딱한 문체가 아닌 개인적으로 대화를 나누는 듯한 대화체로 되어 있어 처음 접하는 개념을 쉽게 받아들이고 익히는 게 큰 도움이 될 것입니다. 이 저서의 장점으로 생각하는 점은 장마다 핵심적으로 알고 있어야 하는 단어들을 볼드체에서 먼저 눈에 익힐 수 있는데요.

 

Go 언어는 간결한 문법, 빠른 컴파일 및 실행 속도, 풍부한 표준 라이브러리 그리고 언어 차원에서 동시성 지원 덕분에 빠르고 강력한 애플리케이션을 높은 생산성으로 구현할 수 있습니다. 또한 언어와 함께 제공되는 표준 포맷팅 도구, 테스트 도구, 문서화 도구 및 go 커뮤니티 내에서 통용되고 있는 컨벤션 덕분에 go 개발자 간 코드 일관성을 더욱더 쉽게 유지할 수 있다는 장점이 있는 언어입니다.

 

많은 장점이 있는 Go 언어는 specification을 인쇄하면 100페이지도 안 될 정도로 배우기 쉬운 언어인데요. Head First Go 저서는 Go의 문법이나 기능을 단순한 나열만 하지 않고 장마다 주어진 주제별 예제를 통해 어떤 문법이나 기능이 왜 필요한지 이를 사용해 문제를 어떻게 해결할 수 있는 풍선, 도움말, 대화, 문제 풀이 등으로 다양하게 방식으로 설명되어 있습니다. 자기주도 학습을 가능하게 다양한 질문을 던져주고 Go 언어를 통해 문제해결을 하도록 유도해줍니다. 더 많은 예제와 문제를 원하실 경우 https://headfirstgo.com에서 확인할 수 있습니다.

 

구글의 다운로드 서버가 Go 언어로 되어 있으며 여기서 다운로드 서버란 구글 크롬, 다운로드 구글 어스, 안드로이드 SDK 등을 말합니다. 이뿐만 아니라 우버는 NodejsGo 언어로 교체하면서 유저와 드라이버를 매칭해 주는 알고리즘 만들며 그 외에도 아메리칸익스프레스, 넷플릭스, Dropbox, 등 많은 회사가 Go 언어를 사용하고 있으며 다양한 면에서 어마무시한 퍼포먼스를 보여주고 있습니다.

 

새로운 언어를 배우고 싶은 독자, 빠르고 생산성 높은 프로그래밍 언어를 배우고 싶은 사람들에게 도전하기 쉬운 Head First Go 저서를 추천합니다. 많은 정보를 얻고 싶은 독자분들에게 저자 제이 맥가브렌 https://jay.mcgavren.com을 방문해보는 것도 추천합니다.

 현업에서도 데이터 분석이랑 시각화 관련 작업을 하다보니, R과 Python, 어쩌다가 C로 업무를 하게 되는데, 최근 트렌드 중에 "Go" 라는 언어가 많이 나오고 있는 것 같았다. 그래서 언젠가는 어떤 포인트로든 내가 하는 업무에 Go 를 접목시켜서 좀 배워볼 기회를 가지면 좋겠다 싶었는데, 마침 책으로써 미리 다뤄볼 기회가 생겨서, 이에 대한 글을 좀 남겨보고자 한다.

 

그림1. Go의 마스코트, Gopher

 

Go는 2009년, Google의 Rob Griesemer와 Rob Pike, Ken Thompson이 만든 functional language이다. 원래의 목적은 google 내부에서 많이 다뤄지는 network기반의 데이터 처리를 용이하게 하기 위해서 만든 언어였지만, 빅데이터를 처리하는 요즘 트렌드와 맞물려서 오픈소스로 많이 활용되고 있다.

 

그림2. Go의 TIOBE Index

 

C나 Java와 같이 많이 쓰이는 언어에 비해서 비교적 최근에 나온 언어인만큼 다른 언어의 장점을 많이 살리고, 최근 기술의 경향성을 반영한 측면이 많이 드러나 있다. 사실 나도 Go를 모르는 상태에서 책을 읽으면서 많이 느꼈던 게, 뭔가 여러 언어가 짬뽕이 되어 있다는 것이었다. 특히 package handling같은 것은 Python을 보는 듯했고, pointer를 처리하고 memory에 직접 접근하는 부분은 C/C++에서 사용하던 부분과 많이 유사해보였다.

 

그림3. Head First Go

 

 시중에 Go 관련 번역서들이 많이 나와있지 않은 상태에서, 이 책은 Go를 딱 처음 접하는 사람들이 하나씩 직접 기초 문법을 접하면서, 궁극적으로 하나의 간단한 웹앱을 만드는 과정을 다루고 있다. 세부적으로 따지자면, Go의 기본적인 문법(함수, 타입, 조건/반복문, 함수 선언, 포인터)와 자료형(배열, 구조체, 맵 등), tool(package나 test, web 등) 와 같이 Go의 전반적인 내용들을 전부 다루고 있다. 아마 Head First 시리즈를 접해본 사람이라면 알겠지만, 책의 내용이 다른 책에 비해 쉽게 기술되어 있다. 이 책이 지향하는 부분은 명확하다. 이해를 쉽게 하기 위한 그림이 많고, 눈코딩과 퀴즈들이 많이 들어 있다. 물론 Go를 활용해서 실무에 활용해야 하는 사람이라면, 부족하게 느낄 수도 있겠지만(서문에도 딱 "이 책은 레퍼런스를 찾는 슈퍼 개발자를 위한 책이 아닙니다"라고 적혀있다.), 그래도 나름대로 Go에서 추구하는 testing이나 routine과 같은 고급 문법도 나름 이해가 쉽게끔 설명이 되어 있어 좋았다.

  원서의 기존 내용 만큼이나 번역 내용도 깔끔해서 마치 재미있게 풀어쓴 소설책을 읽는 느낌이 나고, 어쩌면 나처럼 Go를 처음 접하는 사람이라면 재미있게 책을 읽으면서 Go를 공부할 수 있을 것이다. 이런 부분이 여타 Go 번역서와 비교되는 Head First Go 만이 가지는 차별성이 될 거 같다. 

(참고로 해당 도서 관련 추가 예제도 따로 홈페이지(영어)로 구축되어 있으니 참고하면 학습에 많이 도움이 될 거라 생각한다.)



출처: https://talkingaboutme.tistory.com/entry/Book-Head-First-Go [자신에 대한 고찰]

 

어느덧 Go언어를 사용한지 2년이 되었다. Java 언어로 개발을 해오다가 처음 Go 언어를 접했을 때 어떤 부분은 C와 비슷하기도 하고 Java와 비슷한 부분도 있어서 혼란스러운 부분이 많았었다. 특히 포인터를 활용하는 부분에 있어서는 예전에 C++을 했던 기억으로 내가 느끼기에는 Syntax가 애매모호한 부분들이 있었다. Head First Go 책에도 포함된 내용이긴 하지만 내가 느꼈던 혼란은 Go 언어 자체적으로 편의를 위해 제공되는 것들이 꽤 있었기 때문이었다.

 

 

넘나 명쾌한 포인터 설명

 

 

예를 들어 구조체 포인터인 경우 정상적으로 포인터를 참조하려면 (*pointer).value 와 같이 참조를 해야할 것 같은데 pointer.value로도 참조가 가능하고, 생성하지 않아 nil 값인 슬라이스를 내장 함수에 전달할 경우 값이 채워진 슬라이스로 반환된다. 이러한 부분들은 번거로움을 줄이기 위해 Go 언어에서 자체적으로 제공되는 기능인 것이었다.

지금은 Go 언어에 많이 익숙해져 이전과 달리 생산성이 많이 증가한 것을 느끼는 중이다. 현재 개발 중인 업무 특성상 크로스 플랫폼을 지원해야하고, 최대한 가볍고 종속성이 없는 어플리케이션을 배포해야하는 데, 이 요구사항에 딱 들어맞는 것이 Go 언어라고 생각한다.

 

 

내 책장의 Head First 책들

 

 

언어 자체를 학습하는데도 그리 오랜 시간이 걸리진 않지만 사실 대충 알고 개발에 들어가면 실수하는 부분들이 많이 존재한다. 처음 Go 언어를 접했을 때 Head First Go 책이 있었다면 굉장히 큰 도움이 되었을 것 같다. 관심 있는 분야에 Head First 책이 있다면 일단 사놓고 보는 스타일인데 그 이유는 Head First 책들은 모두 이해하기 쉽기 때문이다. 이해하기 쉬운 적절한 예제 뿐만 아니라 글을 읽다보면 실력있고, 의사 전달에 타고난 사수가 1:1 코칭을 해주는 듯한 느낌을 받게 한다. 어떤 분야든 Head First는 입문서로는 최고인 것 같다.

 

 

2년 동안 Go 언어를 활용해보면서 나름 많이 익숙해졌다고 생각을 하고 있었는데, 사실 개발을 하다보면 가장 기본적인 부분에서 막히는 경우가 상당하다. 이 책을 읽다보니 머릿속에 흩어져있던 지식들이 정리가 되는 느낌이 들었다. 알고 있었지만 너무 익숙해져서 놓쳤던 부분들과 전혀 몰랐었던 내용도 있었다. 익숙하게 사용하고 있지만 놓치기 쉬운 부분들은 따로 정리를 하면서 읽었다.

 

 

 

재미있는 예제들이 한가득!

 

 

책을 읽으면서 번역서라는 느낌이 들지 않을 정도로 문맥을 이해하기 쉬웠고, 예제도 군더더기 없이 깔끔하고 좋았다. 예제를 할 때는 repl 사이트(https://repl.it/)를 사용했는데, 가볍게 따라해볼 때 편리하다. 처음 Go 언어를 접하는 분들에게는 정말 추천하고 싶은 책이다.

Head First Go
믿고 구매할 수 있는 Head First 시리즈! 지금까지 이렇게 두꺼운 책을 보면 반감부터 들었다면 Head First 시리즈 책은 너무나도 친절한 주석과 설명덕분에 볼 때마다 부담이 없었기에 이번에도 부담 없이 선택했습니다.
 
 

_1170776.jpg

 

_1170777.jpg

 

 

명확한 예제로 효율적인 학습법을 제시하는 Go 입문서!
전공서적중 거의 유일하게 그림이 많고 코드상 주석까지도 포함돼있는 책이기 때문에 초보자가 보기에도 부담이 없습니다. Golang의 설치부터 테스트 코드 작성. 중간중간에 나오는 많은 예제와 문제들도 학습에 많은 도움이 됐습니다. 예제는 어렵지 않기 때문에 많은 시간을 소요하지 않고도 풀 수 있기 때문에 꼭 풀어보고 지나가는 게 좋습니다.
 
수많은 초보적인 질문들, 부수면서 배우기! 이걸 이렇게 잘못 사용하면 어떻게 될까? 이건 왜 이런거죠? 등 초보가 책을 보면서 생각하게 될 수많은 질문들을 정리해놓고 코드 자석 등을 보며 어떤 코드가 실행될지를 예측하는 등 기초부터 탄탄하게 책 한 권으로 정리할 수 있기 때문에 후회 없는 책이라고 할 수 있겠네요!
 
 

_1170778.jpg

 

 

Head First Go
컴파일 언어이이지만 컴파일러의 컴파일 속도가 매우 빨라 인터프리터 언어처럼 쓸 수 있는 장점을 가진 Go언어! 국내에 많지 않은 책들 중 가장 쉽고 편하게 설명이 되어있어 입문용으로는 손색이 없어 보입니다. 최근 블록체인 등으로 인기가 상승하고, Python처럼 웹 개발 등 다양한 분야에서 활용도가 높아지고 있기 때문에 기존 언어만 고집할게 아니라 어느 정도 검증된 언어를 새로 배워보는 것도 좋아 보입니다.

 

 

KakaoTalk_Photo_2020-04-30-17-45-57.jpeg

 

 

이번 달은 Head First Go를 신청하였습니다.

평소에도 가끔 관심 있었던 언어였지만 관심만 있었지 일하다 보니 또 기억 속에서 사라져서 이번에는 기회가 되었을 때 한번 경험을 해보고 싶어서 이렇게 신청하였습니다.

그리고 차후 프로젝트 go를 이용한 백 엔드 API를 설계도 해보고 싶고 해서 일단은 뭐든지 기본이 중요하니

예전에도 Head First 책을 읽어봐서 좋은 경험이 있어서 이번에도 이 책으로 신청하였습니다.

일단 이 책은 먼가 사람들과 스터디를 같이 하는 느낌이 들게 하는 책입니다.

지속해서 질문을 독자들에게 하고 또한 중간중간에 퀴즈 같은 것이 있어서 학습효과에서는 최고입니다.

그리고 그림으로 쉽게 설명이 되어 있어서 초반에 기본 서적으로 하기에 좋은 책입니다.

어느 정도 개발은 해 보신들은 예제는 따라 하지 않아도 결괏값은 책에서 잘 나와 있으니 참고하시면 됩니다.

그래도 요즘 언어들은 그나마 플레이그라운드를 제공해서 문법 익히기에도 환경설정으로 인한 스트레스를 안 받고 바로 코딩을 하면 되니 많이 좋아진 거 같다. 자바만 해도 환경 세팅하는 거 자체가 머리가 아파서 그래도 예전보다 아주 편해 졌지만 저는 책 예제는 플레이그라운드를 이용하다가

어차피 JetBrain 회사에서 Goland 툴을 무료로 30일 동안은 쓸 수 있으니 그걸로 공부해도 좋을 것 같아서 세팅해서 했습니다~

go 언어에서는 변수를 선언만 하고 사용하지 않으면 에러가 발생하는 거 좀 신기 갑자기~ 자바 개발자 보니 변수 선언하고 안 써도 에러는 안 나지만 go는 에러가 나서 신기하네요

그리고 이 책에서 주목이란!? 내용을 꼭 읽어보세요. 읽어보시면 아하 이래서 이렇게 되는 거라는 것을 느낄 수 있을 거예요.

그리고 저는 소스 코드 자체에 설명이 되어 있는 게 좋아서 이 책은 소스 코드에 자체로 설명이 되어 있어서 소스 코드랑 같이 한눈에 보기 좋아요~

이번 달 업무가 바빠서 책을 다 읽지는 못하였지만 그래도 이번 긴 연휴 기간에 이 책을 한 번 더 읽을 것입니다.

고는 구글에서 만든 언어이고 속도 및 간결한 코드와 그리고 미사용 메모리도 해제해주는  멀티 프로세스상에서 최고의 언어입니다.

언어를 공부하기에 초기 책으로는 이 책이 최고라 생각해서 저는 새로운 언어를 배울 때는 헤드 퍼스트 책을 항상 추천해주고 싶어요

이 책을 제공해주신 한빛미디어 관계자분들께 감사드립니다.

표지.png

 

20202, ZDNET은 최근 개발자가 가장 배우고 싶어하는 프로그래밍 언어에 대한 설문 조사 결과를 발표했다. 전세계 162개국 116천명 이상의 개발자를 대상으로 중복 선택이 가능한 방식으로 진행한 설문 조사 결과, 1위는 36.2%를 기록한 Go 언어가차지하였다고 한다. 2009년 구글이 개발한 Go 언어는다른 언어에 비해 배우기 쉽고, 성장 가능성이 높은 것이 개발자들이 선택하게 된 주요 이유로 꼽았는데, 작성 방식이 C와 비슷해 관련 언어를 사용하던 개발자가 습득하기유리하고, 병렬 처리 또한 쉽게 지원되는 것도 강점으로 꼽았다. (출처: https://www.zdnet.co.kr/view/?no=20200205112108)

 

zdnet_001.jpg

 

Go 언어는 신생 언어인 만큼 그동안 개발자들이 사용하고 있던 언어들의 여러 장점들을 잘 어우른 것으로 평가받고 있다. Go 언어는 구글의 공식 언어라는 점 뿐 아니라, 간결한 문법, 병행 프로그래밍 지원, 정적 타입 및 동적 실행, 간편한 협업 지원, 컴파일 및 실행 속도의 향상 등에서 큰 강점을 갖고 있다고 한다.
 이렇게 전세계 개발자들이 선호하는 새로운 언어인 Go. 하지만 새로운 언어를 배우고 익숙해 지기까지는 많은 시간과 노력이 필요하다. 다른 사람이 짜 놓은 프로그램을 조금씩 고쳐 쓰거나, 간단한 작업을 하는 것은 어떤 언어를 선택하던지 그리 어려운 일이 아닐 수 있다. 그러나 하나의 언어를 제대로 활용하기 위해서는 단순히 언어의 문법 뿐 아니라, 해당 언어가 추구하고 있는 철학과 설계 개념에 대한 이해가 필수적이다.
 “Head First Go”는 Go 언어를 배우고자 하는 개발자 또는 이미 Go 언어를 사용하고 있더라도 Go 언어가 가지고 있는 철학과 설계 개념을 다시금 익혀 자신의 실력을 한단계 레벨업하고자 하는 중급 이상의 개발자에게도 유용한 책이다. 책장을 넘기면 나오는 그림처럼 “핵심만 콕 집어서” 효율적인 학습이 가능하도록 하고 있다.

 

head_first_go_01.png

 

 

이 책은 전체 16개의 주제로 구성되어 있다. 책의 초반 부는 제 1장의 문법의 기초에서부터, 조건문과 반복문, 함수, 패키지등 Go 언어를 사용하기 위한 기본적인 내용을 예제 프로그램을 발전시켜 나가는 방법으로 설명한다. 책의 중반 이후는 사용자 정의 타입, 캡슐화와 임베딩, 인터페이스, 실패 복구하기 등의 내용을 다루며, 책의 후반부는 Go 언어가 가지고 있는 큰 장점 중 하나인 고루틴을사용하여 작업을 공유하고, 빠르게 처리하는 방법과 자동화된 테스트, 웹앱 및 HTML 템플릿을 소개한다.

 다른Head First 시리즈처럼 이 책도 다양한 삽화가 학습의 흥미를 더하고 있다. 마치 만화책을 읽는 것처럼 즐겁게 읽다 보면 어느새 Go 언어에익숙해 진 자신을 발견할 수 있을 것이다.

 

 

 


 

 


GO라는 프로그래밍 언어가 있다.

 

 


이 책을 보고 처음 들어봤는데 ...

 

 


구글의 엔지니어 세명은 빠른컴파일속도, 간결한코드, 미사용메모리자동해제(가비지컬렉션), 편리한동시성코드작성, 멀티코어 프로세서지원의 특징을 고려한 새로운 언어 GO를 만들었다.

 

 


2009년에 오픈소스로 전환해 공개된 이후 꾸준히 발전하면서 클라우드를 위한 언어라는 말이 나올 정도로 각광받는 언어라고 한다.

 

 


 

 


이 언어는 간결한 문법, 빠른 컴파일 및 실행속도, 풍부한 표준라이브러리 그리고 언어차원에서의 동시성지원 덕분에 빠르고 강력한 애플리케이션을 높은 생산성으로 구현할수 있고, 언어와 함께 제공되는 다양한 컨벤션 덕분에 개발자들이 코드일관성을 더욱 쉽게 유지할 수 있다는 장점이 있다고 한다.

 

 


프로그래밍하다보면 코드 일관성이 중요하긴 하다.

 

 


 

 


이 책은 텍스트에디터를 사용할 수 있으면

 

 


빠르고 생산성 높은 프로그래밍 언어를 배우고 싶으면

 

 


무미건조하고 학구적인 강의보다 저녁식사에 대화하기 위한 재미있는 주제를 선호한다면

 

 


추천한다.

 

 


 

 


HeadFirst 책의 장점이 그렇듯 그림이 많고 대화체에 여러관점을 보여주는 이야기와 연습문제가 있고, 독창적인 개념과 그림으로 이해와 인지가 잘 되게 나와있어서 흥미를 가지고 입문하기에 딱 좋은 시리즈다.

 

 


 

 


GO를 사용해 보기 위한 가장 쉬운 방법은 https://play.golang.org 라는 웹서비스를 이용해서 코드를 작성하고 실행해 볼수 있고 실행결과도 브라우저에서 바로 확인할 수 있다.

 

 


 

 


C언어나 자바등 다른 언어를 배웠다면 기본 문법과 형식은 쉽게 이해가 간다.

 

 


따라하다보면 확실히 간결한 문법으로 프로그래밍을 할 수 있는 것같다.

 

 


책에서 설명하는 것을 따라하고 연습문제도 풀고 하다보면 GO언어의 기본은 할 수 있다고 말 할 수 있을 거 같다.

 

 

Go의 입문서로 최적

Head Firrt 시리즈를 처음 접해봤는데 쉽게 읽혔다. 
어떤 언어를 처음 접할때 쉽게 읽히고 흥미를 가져야 한다고 생각하는데 본 책이 그랬다. 

 - 내용을 이미지로 시각화하여 쉽게 이해할 수 있었다.

-  각 챕터 마다 연습문제로  코드 조각들을 손으로 작성 할 수 있게 하여 내용을 복습 할 수 있었다.

- 구어체로 설명하여 과외 선생님이 설명해주는 듯한 느낌을 받았다.

 - 혼자 공부하여도 지루 하지 않게 본 책으로 Go를 이해하기 충분할 것이다. 

- Go에 대해서 깊게 알수는 없겠지만 본 책을 통하여 Go에 대한 흥미를 쌓고 입문서로 기초 문법들을 공부하기에 최적의 책이라고 생각한다. 

프로그래밍 언어가 참 많다.
대학에 들어와서 Python으로 처음 프로그래밍을 해보고 지금까지도 Python만 쓰고 있는 나로써는 다른 언어들에 대한 호기심과 필요성을 어느 정도 인식하고 있었음에도 “아직 Python 실력도 많이 모자른데..”라는 생각과 두려움에 다른 언어를 감히 시작 못했었다. 그렇게 생각’만’하고 있던 프로그래밍 언어들 중에는 Golang도 있었다. Google에서 개발한 언어이고 캐릭터가 귀여워서 눈에 띄었고 컴퓨터 공학도가 아니라서 잘은 모르지만 Python처럼 쉽지만 빠르다고 들었기 때문이다. (또한 어디선가 Go 개발자들의 연봉이 제일 높다는 이야기도 들었던 것 같다.)

그러던 중 한빛미디어의 나는 리뷰어다 프로그램을 통해 4월달 책으로 Head First GO(제이 맥가브렌 저, 권민재 역)을 만나게 되었고 드디어 Python을 잠시 떠나 Go를 시작했다.
500 page라는 압도적인 분량에 기가 죽을 수도 있지만, 책을 열어보면 그림과 코드가 보기 쉽게 크게 나와있어서 생각보다 쉽게 넘어간다. 다른 프로그래밍 입문서와 다르게 ‘여러분의 두뇌를 정복하는 방법’도 알려주고 내용 서술도 대화체로 되어있는데 저자가 뇌의 감성적인 부분을 자극시키기 위해 이렇게 구성했다고 한다. 새로운 프로그래밍 언어를 배우는 독자들을 생각하는 세심한 배려가 느껴졌다. 그리고 책의 구성을 보면 외국책의 냄새가 나는데 이건...어떻게 표현할지 모르겠다. 덕분에 Go를 딱딱하지 않게 배울 수 있었다!
4월 달 리뷰 할 책이지만 사실 책 전부를 다 공부하지는 못했다. 그러나 지금까지 공부한 경험을 토대로 몇 가지 느낀 것들을 정리해보려고 한다.
처음에 어떤 프로그램이나 언어를 사용해보기 위해서 가장 많이 좌절하게 되는 부분이 환경 구축이다. 바로 시작하고 싶은데 시작을 못하게 만드는 걸림돌이 생기는 것은 의욕을 많이 떨어뜨리게 한다. 그런 면에서 책에서는 도입을 Golang을 웹 상에서 실행할 수 있는 playground를 사용해서 하기 때문에 출발이 좋았었다. 단순히 Hello만 찍어보는 것이 아니라 type까지 playground에서 공부하고 넘어가기 때문에 처음 프로그래밍을 해보는 분들에게 프로그래밍의 기본 중 기본인 type까지 머리 속에 잘 남아있을 수 있을 것 같다.
중간에 나오는 연습 문제나 코드 자석 문제들도 이해하는데 크게 도움이 됐다. 사실 어떤 프로그래밍 서적이든 연습 문제로 학습자의 이해와 실행력을 유도한다. 하지만 프로그래밍 초보자들은 문제를 처음 맞이할 때 막상 무엇부터 시작해야 할지 잠시 버퍼링이 생기고 이런 부분에서 학습 흐름을 끊어서 그냥 넘어가거나 책을 덮어 버릴 때도 있다. 그런 어려움을 잘 이해해서 그런지 이 책에서는 코드를 다 쓰게 하기보다는 부분 생략퍼즐처럼 조립식 문제를 내어서 생각의 흐름을 이어갈 수 있게 해준다.
나처럼 Go 언어를 배우고 싶다 생각만 했던 분들에게 망설임 없이 추천하고 싶은 책이다. 외국어처럼 프로그래밍 언어도 생각만 하지 말고 빨리 부딪혀보는 것이 좋은 것 같다. 4월 리뷰 책을 원하던 기술 입문서를 만나 정말 행복했었다. 아직 남은 부분이 많아서 적어도 여름까지는 끝까지 완주할 것을 목표로 Go!
Practice! Practice! Practice!

 

 

 

 

 

 

 

1.png

 

Head First 시리즈의 책은 일관성있고, 중독성이 있다.

일단 문장의 서술하는 방법이나 독자들에게 전달하는 방법이

과외 선생님이 옆자리에 앉아서 친절하게 설명해 주는 느낌이다.

내가 아이에게 처음 프로그램 언어를 가르친다면 비슷하게 가르쳐 줄 것 같아.

그런 면에서 새로운 언어를 배우는 자습서의 용도로 Head First 시리즈는 아주 적절하다.

2.png

지금 다 이해하지 못했더라도 괜찮습니다.

새로운 개념을 가르칠 때 앞에서 어려운 내용을 설명하는 것은 하수의 교수법이다.

먼저 흥미를 갖도록 먼저 재미있는 부분부터 설명하고 나머지는 넘기는 것이 좀 더 효율적인 학습법이지.

3.png

부수면서 배우기

단원마다 구성되어 있는 부수면서 배우기도 맘에 들었다.

코딩 과정에서 초급자가 가장 힘들어 하는 것은 디버깅이다.

"책대로하면 되는데 내가 바꾸면 안되더라."

"에러가 나는데 무슨 의미인지 모르겠어"

이런 어려운 부분을 잘 설명하도록 접근한 방법이다.

처음 프로그래밍 언어를 도전하는 분들에게는 추천할 만한 책이다.

유일하게 내가 적응이 안되는 것은 아래의 스타일

미국에서 만든 책이니 이해는 되지만, 적응은 안되네.

4.png

오래된 미국 스타일의 사진

HeadFirst_Go.jpg

 

   Head First는 그림으로 구조나 원리를 설명해주기에 입문할 때 개념을 잡는데 도움을 주는데 이 책 역시 마찬가지였습니다. Go가 무엇인지 잘 모를 때 보기에 좋은 책입니다.

 

 

   보통 1~2개의 페이지로 하나의 주제를 다루고 있어서 이해하기 쉽고, 학습 후에도 필요한 부분을 찾아서 보기 편합니다. 책을 보다가 당장 필요한 부분이 아니라면 건너뛰면서 보기에도 좋습니다.

 

   단지 Go같은 경우에 기존의 프로그래밍 언어와 많이 다른 생소한 체계는 아니지만, 그렇기 때문에 많이 사용하는 언어와의 차이점이나 개발 시 유의할 점들을 비교해놓은 내용이 있었으면 더 좋았을 거라는 생각이 듭니다.

 

 

 

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

 

go.jpg

 

 

IT서적을 많이 봤었지만, Head First 시리즈는 처음 읽어보았습니다.


이해에 도움이 되는 그림도 많고 말투가 친근하게 느껴져서 일반 it 서적보다 쉽게 쉽게 읽히는 편이었습니다.


Go언어에 대해서 깊게 알고싶거나 심화된 내용 혹은 레퍼런스로 사용하실 분 보다는


Go언어를 처음 접해보고 배워보고 싶은 사람에게 추천 드립니다.


Go언어는 단순함과 속도에 중점을 둔 프로그래밍 언어로서, 문법이 다른 언어에 비해 쉬워서 러닝커브가 얕으며


멀티코어 프로세서를 적극 활용함으로서 더욱 더 빠른 프로그램을 작성할 수 있게 해줍니다.


또한 Go 언어는 구글에서 발표하고 관리하는 언어이기에 꾸준히 발전하며 사용자 층을 넓혀가고 있습니다.


최근들어 늘어가는 클라우드 환경에서 가장 많이 사용되는 언어이기도 해서 Devops에 관심이 있다면 


Go언어를 배워보는것을 추천드립니다.


이 책은 Go의 문법을 단순히 나열해주는 것이 아니라 각 챕터마다 주어진 주제에 대해 예를 들면서


각각의 케이스를 해결하기 위한 방법을 자세히 알려주고 있습니다.


다른 언어를 접해보지 않으신 분이나, Go를 처음 접해보시는 분들께 추천 드리는 책입니다.

[한줄평]

프로그래밍의 시작은 Head First Go가 진리입니다.


[목차구성]

1장. 시작해 봅시다: 문법 기초

2장. 다음엔 어떤 코드가 실행될까요?: 조건문과 반복문

3장. 호출해 주세요: 함수

4장. 코드 묶음: 패키지

5장. 목록에서: 배열

6장. 확장 문제: 슬라이스

7장. 데이터 라벨링: 맵

8장. 저장소 만들기: 구조체

9장. 나만의 타입: 사용자 정의 타입

10장. 당신만 알고 계세요: 캡슐화와 임베딩

11장. 당신은 무엇을 할 수 있나요?: 인터페이스

12장. 다시 일어서기: 실패 복구하기

13장. 작업 공유하기: 고루틴과 채널

14장. 코드 품질 보증: 자동 테스트

15장. 요청에 응답하기: 웹 앱

16장. 패턴 따르기: HTML 템플릿


[서평]

Head First시리즈는 호불호가 많은 것 같습니다. 저는 우선 Head First 방식의 학습을 선호 합니다. 일반적인 프로그래밍 입문 서적은 튜토리얼 방식으로 문법과 기능 위주의 학습 방식으로 설명을 합니다. 하지만 Head First 도서의 경우는 미국식 교육방식으로 암기식이 아닌 토론식 같은 방식으로 설명을 하고 있습니다. 어느 쪽이 더 좋다라고는 말할수는 없지만 저같은 경우는 대화체 형식으로 옆에서 대화 나누듯한 문체로 설명하는 것이 좋았습니다.


이책에서 좋은 점은 각 장마다 개념 설명과 문법을 강의 노트 작성 하는 것처럼 상세 하게 알려줍니다. 그리고 ‘바보 같은 질문은 없다’에서 정말 입문자들이 물어볼듯한 질문에 대해서도 Q&A 방식으로 설명을 하고 있습니다.

그리고 ‘코드를 잘못 작성하면 어떻게 될까요?’, ‘부수면서 배우기!’에서 잘돌아 가는 코드를 에러를 내어 보면서 트러블 슈팅을 어떻게 하는지 배울수 있습니다.

‘수영장 퍼즐’에서는 앞에서 배운 코드에 대해서 코드 조각을 빈칸에 맞게 채워 넣으면서 제대로 이해하고 있는지 점검할수 있습니다. ‘코드 자석’에서도 출력 내용을 보여주고 코드를 작성 하는데 앞에 배운 내용을 암기 식이 아닌 여러번 반복함으로써 자연스럽게 외울수 있게 되는거 같습니다. 

 

Head First Go는 개념 설명을 충분하게 하여 좀더 빠르게 Go언어에 대해서 학습할 수 있습니다. Go 언어를 처음 입문 한다면 Head First Go로 시작하는것을 추천 합니다.

Head First Go.png

 

웹 서핑을 하다가 Go 언어에 관심이 생겨서 <Head First Go>를 읽게 되었습니다.

Go 언어는 클라우드를 위한 언어로 클라우드, 네트워크 및 백엔드 분야에서 각광받는 언어입니다.

Go 언어는 간결한 문법, 빠른 컴파일 및 실행 속도, 풍부한 표준 라이브러리 그리고 언어 차원에서의 동시성 지원 덕분에 빠르고 강력한 애플리케이션을 높은 생산성으로 구현할 수 있습니다.

이 책은 Go 언어를 모르거나 심지어는 프로그래밍을 처음 입문하는 사람도 차근차근 쉽게 따라갈 수 있도록 쓰인 기초 개념서입니다.

<Head First Go>는 마치 Go를 아는 형님이 Go를 모르는 동생에게 알려주듯이 대화체로 Go 문법을 설명합니다. 설명할 때 예제 코드의 첫 줄부터 마지막 줄까지 세세하게 설명해서 예제 코드를 쉽게 이해할 수 있었습니다.

수영장 퍼즐, 연습문제, 코드 자석으로 코드 이해도 점검이 반복되기 때문에 기억에 오래 남았습니다.

각 장의 마지막 부분에 장 요약이 있어서 앞 부분을 다시 읽지 않아도 한 페이지로 다시 되새길 수 있어서 좋았습니다.

<Head Frist Go>를 읽고 Go에 대한 기초 지식이 함양되었습니다. Go 개발자가 되고 싶은 사람에게 추천합니다!

 

지난 몇년간 Go언어를 배워야 겠다는 생각에 몇 권의 책을 읽었지만 

이책만큼 이해하기 쉽고 따라하기 쉽게 되어 있는 책을 보지 못했던 것 같다.

 

대 부분이 프로그래밍 초보자도 이해하기 쉽게 되어 있고 

바보같은 질문은 없다. 부수면서 배우기 처럼 

독자들이 가질 수 있는 초보적인 질문이나 

프로그래밍중 쉽게 실 수 할 수 있는 부분을 친절하게 잘 설명해 주고 있다.

 

다만 독자 타겟이 초급 프로그래머 혹은 프로그래밍 입문자 인듯 하여 

Go의 보다 깊이 있는 내용까지는 다루지 못하지만 

Go를 처음 공부하는데는 최고의 선택이라고 생각된다.

 



표지.jpg

 

KakaoTalk_20200425_215135780.jpg

 

 

Go 라는 언어가 있다.

대중적이진 않았는지 이 책을 보고 처음 알게 되었다.

2009년에 구글에서 만들었다고 하는데 찾아봤을 때 진짜인지 아닌지 모르겠지만 개발진들이 어떤 언어 싫어해서 만들게 되었다는 이야기도 봤다.(진짜인지는 모르겠지만 그렇다면 정말 대단한 사람들이라 생각된다.)

 

해당 책은 입문서다. python 책도 읽어봤는데 나쁘지 않았으니 python 입문서 찾는 사람은 한 번 보는 것도 추천한다.

Go 라는 언어를 맛보기를 할 수도 있다.

설치하지 않고 온라인에서 체험할 수 있는 거다. 이건 책에서도 알려준다.

 

아, Go 라는 언어를 써보는데 python은 exe 실행 파일 만들 때 이것저것 해야 해서 으씨.. 이랬었는데 Go는 실행파일을 쉽게 만들 수 있다!!! 이것도 책에서 알려줬다! 좋다! 게다가 입문서의 특징은 뭐다? 프로그래밍 언어는 큰 틀은 비슷한데 경험자는 그걸 다시 짚고 갈 수 있다는 것이다! 입문자는 아 이게 뭐구나 하고 헤메지 않고 갈 수 있다는 것이다. python 책 이야기 하면서 말했는데 이 책은 입문서로 괜찮은 편이다.

 

책은 중간중간에 연습 문제 같은 거 나오는데 생각보다 쉬운 편이다. 글자만 읽는 건 솔직히 지루하고 잘 안 들어오니까 종이에 왕창 써가며 읽으면 좋다. 여백도 충분해서 책에 해도 되고 그게 싫으면 연습장에 하는 것도 좋더라.



개인적으로 Go 라는 언어를 공부하기 좋은 책인 거 같다.

솔직히 말해서 GO를 처음 들었을 때 바둑인줄 알았다. 이게 프로그래밍 언어인지 뭔지 몰랐다.

근데 2020년 가장 배우고 싶은 언어로 GO가 뽑혔다 해서 놀랐다.

 

 

물론 가장 배우고 싶은 프로그래밍언어가 가장 많이 쓰이는 언어는 아니지만 아무튼 관심을 끌기엔 충분했다.

 

책의 내용을 차례대로 따라가면 그림도 많고 뭐 이리 쓸 데 없는 것들이 많아?? 라고 할 수 있고 나도 그랬는데

이 그림 때문에 내가 GO를 배우고 있다는 것을 챕터 1이 끝날 때 쯤 깨닫는다 ㅋㅋ

?? 내가 벌써 다음장에 와있네? 

 

bold체와 글자 크기를 다르게하고 글자체도 다양해서 정말 책이

입체적으로 보인달까?? 그 책을 진짜 좋아하는 사람들은 책의 글자가 튀어나온다고도 하는데 난 진짜 이 책을 읽으면서 처음으로 그 느낌을 이해하게 되었다.

 

이전의 많은 프로그래밍 언어 책을 배웠지만 정말 하루 하루 과제같은 느낌이었는데

얘는 그냥 하고싶어서 하는 느낌??

언제까지 갈진 모르겠지만 지금 배우고 있는 와중에도 질린 날은 없었다. 

 

그런데 정말 이 책 자체도 좋고 GO언어도 좋고 이 책에 맞춰져가는 나도 좋긴 한데...?

내 머리 자체가 이 책을 공부하는 동안 너무 빠져들어서 그런지 당연히 ; 을 써야하지만 생략하고 print도 이상하게 쓰고 그런다. ㅠㅠㅠㅠ

 

내가 하고 싶은 말은 이 책을 보기 전에 다른 언어공부를 하고 있었다면 그것을 끝내고 하는게 좋겠다.

이 책과 병행하면 텐션 차이도 그렇고 다른 언어와 병행하기 힘들 수 있을 것 같다. 

 

아무튼 많은 도움이 될 것은 확실하지만 아직 GO에 대한 인기가 한국에서는 별로 없나보다. 

사실 지금 노저어야 하는데 ㅋㅋㅋ 난 그래도 조금 더 배워보려고 한다




결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원 무료배송
닫기

리뷰쓰기

닫기
* 상품명 :
Head First Go
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
Head First Go
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
Head First Go
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 상품1