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

한빛출판네트워크

Head First Go

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

한빛미디어

번역서

판매중

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

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.  못 다룬 여섯 가지 주제: 번외 

  • 이번에 리뷰할 책은 "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에 대한 인기가 한국에서는 별로 없나보다. 

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




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

배송료 안내

  • 책, 아이템 등 상품을 3만원 이상 구매시 무료배송
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

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

* 리뷰 작성시 유의사항

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

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

오탈자 등록

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

도서 인증

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

* 회원가입후 도서인증을 하시면 마일리지 500점을 드립니다.

* 한빛 웹사이트에서 구입한 도서는 자동 인증됩니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한됩니다.

* 절판도서, eBook 등 일부 도서는 도서인증이 제한됩니다.

닫기

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

자료실