매일 업데이트
2022-11-25 18:13 6 min

Golang을 마스터하기 위한 최고의 리소스

이 글에서는 Golang 학습 및 숙달을 위해 온라인에서 구할 수 있는 최상의 자료들을 소개합니다.

사람마다 학습 방식에 대한 선호도가 다르기 때문에, Golang 관련 텍스트 기반 자료, 튜토리얼, 비디오, 그리고 인기 강좌까지 폭넓게 다룰 예정입니다.

Golang은 현재 매우 빠른 속도로 인기를 얻고 있으며, Go를 탐험하기 시작하면 매력에 푹 빠지게 될 것입니다.

개발자를 위한 완벽 가이드

약 5만 명의 수강생을 보유한 이 패키지는 Golang 기초를 배우는 데 매우 적합한 학습 자료 중 하나입니다. 이 과정은 철저한 검증을 거쳤으며, 대다수 학습자에게 효과적인 것으로 입증되었습니다. 구매 시 평생 이용 권한이 제공되며, 비디오 강좌를 선호한다면 이 패키지가 바로 당신을 위한 것입니다.

이 강좌는 입문자나 기본 개념을 재검토하고 싶은 학습자에게 이상적입니다. 9시간 분량의 주문형 비디오와 추가 코드 자료 및 과제가 포함되어 있습니다.

이 강좌에서 다루는 주요 내용은 다음과 같습니다.

  • 언어 설정, 설치 및 기본 사항
  • 패키지 및 파일 구조
  • 변수, 함수, 배열 및 슬라이스
  • 맵, 구조체 및 인터페이스에 대한 심층적인 이해
  • 채널 및 고루틴(동시성 프로그래밍)

집중 학습 부트캠프

300개 이상의 강의로 구성된 부트캠프 과정은 Udemy에서 Golang을 배우기에 좋은 선택입니다. 다음 애플리케이션들을 직접 만들어보면서 학습하게 됩니다:

  • 로그 파서
  • 파일 스캐너
  • 스팸 마스커

더불어 이 과정은 1000개 이상의 실습 기회를 제공합니다.

구조체, 인터페이스, 채널과 같은 Go의 핵심 개념을 다루는 것은 물론, 공 튀기기 애니메이션을 만드는 흥미로운 프로젝트도 포함되어 있습니다.

과정을 성공적으로 마치면 수료증도 받을 수 있습니다.

Go 투어

개인적으로 공식 Golang 문서, 블로그, 튜토리얼을 즐겨 이용합니다. 이 대화형 강좌는 무료이며, 로컬 환경 설정이 필요 없습니다. 웹사이트를 방문하여 각 주제별 실습 코드를 통해 기초부터 학습할 수 있습니다.

별도 설정 없이 Go를 탐색하고 기본 사항을 배우고 싶다면 이 강좌를 추천합니다.

Go 예제

이곳은 전체 강좌라기보다는 기본 개념이 가물가물할 때 찾아볼 만한 곳입니다. 이 웹사이트는 각 개념을 소개 텍스트와 실행 가능한 전체 예시 코드를 통해 설명합니다. 매우 간결한 구성을 통해 학습에 집중할 수 있도록 도와줍니다. 다음은 주요 소개 게시물들입니다.

  • 변수와 상수
  • for 루프
  • if/else 및 switch 문
  • 배열 및 슬라이스
  • 범위 (Scope)
  • 함수

필요한 대부분의 주제를 다루고 있습니다! 확인해 보고 필요할 때 참고할 수 있도록 북마크 해두세요.

X분 안에 배우는 Y

기본 사항을 빠르게 훑어보고 싶다면 X분 안에 배우는 Y가 좋은 자료입니다. 이는 Go뿐만 아니라 거의 모든 프로그래밍 언어에 대한 자료를 제공합니다. 커뮤니티 중심이며, 많은 주제를 하나의 페이지에서 다룹니다. Go에 익숙해지면 직접 기여해보세요.

다음은 하나의 함수 내에서 동시성 프로그래밍을 설명하는 튜토리얼의 코드 스니펫입니다.

// 일부 숫자를 동시에 증가시키는 데 inc를 사용합니다.
func learnConcurrency() {
    // 슬라이스를 만드는 데 사용되는 동일한 make 함수입니다. Make는
    // 슬라이스, 맵, 채널을 할당하고 초기화합니다.
    c := make(chan int)
    // 세 개의 동시 고루틴을 시작합니다. 숫자는 기계가 가능하고
    // 제대로 구성된 경우 아마도 병렬로 동시에 증가됩니다. 세 개 모두 동일한
    // 채널로 전송합니다.
    go inc(0, c) // go는 새로운 고루틴을 시작하는 문입니다.
    go inc(10, c)
    go inc(-805, c)
    // 채널에서 세 가지 결과를 읽고 출력합니다.
    // 결과가 도착하는 순서는 알 수 없습니다!
    fmt.Println(<-c, <-c, <-c) // 오른쪽의 채널, <-는 "수신" 연산자입니다.

    cs := make(chan string)       // 또 다른 채널, 이것은 문자열을 처리합니다.
    ccs := make(chan chan string) // 문자열 채널의 채널입니다.
    go func() { c <- 84 }()       // 값만 보내기 위해 새로운 고루틴을 시작합니다.
    go func() { cs <- "wordy" }() // 이번에는 cs에 대해 동일합니다.
    // Select는 switch문과 유사한 구문을 갖지만 각 case는 채널 연산을 포함합니다.
    // 통신 준비가 된 케이스 중에서 무작위로 케이스를 선택합니다.
    select {
    case i := <-c: // 수신된 값을 변수에 할당할 수 있습니다.
        fmt.Printf("it's a %T", i)
    case <-cs: // 또는 수신된 값을 삭제할 수 있습니다.
        fmt.Println("it's a string")
    case <-ccs: // 빈 채널, 통신 준비가 되지 않았습니다.
        fmt.Println("didn't happen.")
    }
    // 이 시점에서 값은 c 또는 cs에서 가져왔습니다. 위에 시작된 두 개의
    // 고루틴 중 하나가 완료되었고 다른 하나는 블록 상태로 유지됩니다.

    learnWebProgramming() // Go가 합니다. 당신도 하고 싶을 것입니다.
}

간결하고 정확한 정보를 제공하므로, 특정 Golang 주제에 대한 간략한 개요가 필요하다면 유용할 것입니다.

Go Time

오디오 학습을 선호하는 분이라면, Go Time은 훌륭한 팟캐스트입니다. 많은 뛰어난 개발자들이 참여하여 실제 경험과 회사에서 Go를 사용하는 방법에 대한 지식을 공유합니다. 또한 GopherCon(golang 컨퍼런스)을 통해 저명한 인사들이 커뮤니티와 학습 내용을 공유하는 것을 확인할 수 있습니다.

이 커뮤니티에서는 Go와 관련된 최신 동향과 개선 사항에 대한 논의가 활발하게 이루어집니다.

추가로 인기 있는 팟캐스트를 더 소개하겠습니다.

서적

Golang 관련 훌륭한 서적이 많이 있습니다. 개인적으로 즐겨보는 책들을 여기에 추가하겠습니다.

블로그

Golang 주변에는 유익한 블로그들이 많이 있습니다. Medium과 같은 플랫폼에서도 다양한 관련 글들을 찾아볼 수 있습니다. 여기 유용하다고 생각되는 몇 가지 블로그를 공유합니다.

유튜브

비디오 기반 학습을 선호하시나요?

물론입니다. freeCodeCamp에서 제공하는 Golang 초보자 튜토리얼을 확인해 보세요.

결론

Golang을 처음 배우는 입문자라면 위에 소개된 강좌 중 하나를 수강하는 것을 추천합니다. 또한, 학습 내용을 전 세계와 공유하며 Go 생태계 발전에 기여해 주세요. Go 학습 여정에 이 글이 도움이 되고, 여러분의 발전을 응원합니다.

저자
Korea

기술 트렌드와 실용적인 팁을 전하는 लेखक입니다.