Go (Golang) 배우기
무료 인터랙티브 온라인 Go 강의입니다. 매 레슨마다 직접 Go 코드를 작성합니다. 동시성이 헷갈릴 땐 AI 힌트가 도와주고, 완주하면 무료 수료증도 드립니다.
22,067+ 명의 codders가 등록함
- 초보자 환영
AI 코딩 도우미
실습 중심의 대화형 강의
모든 레슨에 음성 나레이션 제공
지식을 확인하는 퀴즈
무료 수료증
커리큘럼
섹션 1
기초
섹션 시작하기시작펼치기접기필수 개념과 기본 기술로 튼튼한 기초를 다지세요Go 입문
4 개 강의423- 01Go란 무엇인가요?챌린지
- 02Hello World챌린지퀴즈오디오
- 03Println챌린지퀴즈오디오
- 04Go 주석챌린지퀴즈오디오
변수와 기본 자료형
10 개 강의1069- 01변수란 무엇인가챌린지퀴즈오디오
- 02`:=`를 이용한 타입 추론챌린지퀴즈오디오
- 03정수 (int)챌린지퀴즈오디오
- 04부동 소수점 수챌린지퀴즈오디오
- 05불리언 (Booleans)챌린지퀴즈오디오
- 06문자열 (Strings)챌린지퀴즈오디오
- 07제로 값 (Zero Values)챌린지퀴즈오디오
- 08상수챌린지퀴즈오디오
- 09명명 규칙챌린지퀴즈오디오
- 10요약 - 변수와 타입챌린지
기초 연산자
7 개 강의744- 01산술 연산자챌린지퀴즈오디오
- 02나눗셈 연산자챌린지퀴즈오디오
- 03나머지 연산자챌린지퀴즈오디오
- 04대입 연산자챌린지퀴즈오디오
- 05복합 대입 연산자챌린지퀴즈오디오
- 06증감 연산자챌린지퀴즈오디오
- 07요약 - 계산챌린지
비교 및 논리 연산자
7 개 강의742- 01비교 연산자 - 파트 1챌린지퀴즈오디오
- 02비교 연산자 - 파트 2챌린지퀴즈오디오
- 03논리 AND 연산자챌린지퀴즈오디오
- 04논리 OR 연산자챌린지퀴즈오디오
- 05논리 NOT 연산자챌린지퀴즈오디오
- 06연산자 우선순위 기초챌린지퀴즈오디오
- 07요약 - 비교하기챌린지
기초 입출력
5 개 강의532- 01포맷된 출력챌린지퀴즈오디오
- 02포맷 지시자챌린지퀴즈오디오
- 03타입 출력하기챌린지퀴즈오디오
- 04기본적인 사용자 입력 받기챌린지퀴즈오디오
- 05요약 - 입출력챌린지
제어 흐름: 조건문
10 개 강의1069- 01`if` 문챌린지퀴즈오디오
- 02`else` 키워드챌린지퀴즈오디오
- 03`else if` 키워드챌린지퀴즈오디오
- 04`if` 문에서의 변수 섀도잉챌린지퀴즈오디오
- 05변수 초기화챌린지퀴즈오디오
- 06`switch` 문챌린지퀴즈오디오
- 07표현식이 있는 Switch챌린지퀴즈오디오
- 08표현식이 없는 Switch챌린지퀴즈오디오
- 09`fallthrough` 키워드챌린지퀴즈오디오
- 10요약 - 의사 결정하기챌린지
제어 흐름: 반복문
7 개 강의743- 01`for` 반복문 설명챌린지퀴즈오디오
- 02`for` 반복문 - 기초챌린지퀴즈오디오
- 03`for` 반복문 - 조건만 사용챌린지퀴즈오디오
- 04`break` 키워드챌린지퀴즈오디오
- 05`continue` 키워드챌린지퀴즈오디오
- 06중첩 반복문챌린지퀴즈오디오
- 07요약 - 동작 반복하기챌린지
함수
9 개 강의962- 01함수 이해하기챌린지퀴즈오디오
- 02함수 선언하기챌린지퀴즈오디오
- 03함수 호출하기챌린지퀴즈오디오
- 04함수 매개변수챌린지퀴즈오디오
- 05단일 값 반환하기챌린지퀴즈오디오
- 06여러 값 반환하기챌린지퀴즈오디오
- 07이름이 지정된 반환 값챌린지퀴즈오디오
- 08함수 스코프 기초챌린지퀴즈오디오
- 09요약 - 재사용 가능한 코드 만들기챌린지
포인터
7 개 강의644- 01포인터란 무엇인가요?퀴즈오디오
- 02포인터 변수 선언하기챌린지퀴즈오디오
- 03주소 연산자챌린지퀴즈오디오
- 04포인터 역참조챌린지퀴즈오디오
- 05함수에서 포인터 사용하기챌린지퀴즈오디오
- 06Nil 포인터챌린지퀴즈오디오
- 07요약 - 포인터의 이해챌린지
복합 타입: 배열
7 개 강의650- 01배열 소개퀴즈오디오
- 02배열 선언하기챌린지퀴즈오디오
- 03배열 초기화하기챌린지퀴즈오디오
- 04배열 요소에 접근하기챌린지퀴즈오디오
- 05`len`을 이용한 배열 길이 확인챌린지퀴즈오디오
- 06배열 순회하기챌린지퀴즈오디오
- 07다차원 배열챌린지퀴즈오디오
복합 타입: 슬라이스
10 개 강의965- 01슬라이스 소개퀴즈오디오
- 02슬라이스 리터럴 선언하기챌린지퀴즈오디오
- 03`make`로 슬라이스 생성하기챌린지퀴즈오디오
- 04슬라이스 길이 vs 용량챌린지퀴즈오디오
- 05슬라이스 요소에 접근하기챌린지퀴즈오디오
- 06요소 추가하기챌린지퀴즈오디오
- 07기존 슬라이스/배열 슬라이싱하기챌린지퀴즈오디오
- 08슬라이스 순회하기챌린지퀴즈오디오
- 09슬라이스 복사하기챌린지퀴즈오디오
- 10요약 - 동적 리스트챌린지
복합 타입: 맵
10 개 강의965- 01맵 소개퀴즈오디오
- 02맵 리터럴 선언하기챌린지퀴즈오디오
- 03`make`로 맵 생성하기챌린지퀴즈오디오
- 04키-값 추가 및 업데이트챌린지퀴즈오디오
- 05맵 값에 접근하기챌린지퀴즈오디오
- 06키 존재 여부 확인하기챌린지퀴즈오디오
- 07맵 항목 삭제하기챌린지퀴즈오디오
- 08맵 길이챌린지퀴즈오디오
- 09맵 순회하기챌린지퀴즈오디오
- 10요약 - 키-값 저장소챌린지
복합 타입: 구조체
8 개 강의854- 01사용자 정의 타입 정의하기챌린지퀴즈오디오
- 02구조체 인스턴스 생성하기챌린지퀴즈오디오
- 03구조체 필드 접근하기챌린지퀴즈오디오
- 04구조체 포인터챌린지퀴즈오디오
- 05구조체 초기화하기챌린지퀴즈오디오
- 06임베디드 구조체챌린지퀴즈오디오
- 07익명 구조체챌린지퀴즈오디오
- 08요약 - 사용자 정의 데이터 구조챌린지
기초 에러 처리
8 개 강의858- 01에러의 개념챌린지퀴즈오디오
- 02`error` 인터페이스챌린지퀴즈오디오
- 03에러를 반환하는 함수챌린지퀴즈오디오
- 04에러 확인하기챌린지퀴즈오디오
- 05단순 에러 생성하기챌린지퀴즈오디오
- 06포맷된 에러 생성하기챌린지퀴즈오디오
- 07기초 에러 처리챌린지퀴즈오디오
- 08요약 - 문제 처리하기챌린지
섹션 2
로직 & 흐름
섹션 시작하기시작펼치기접기데이터 구조와 흐름 제어에 중점을 둔 고급 Go 프로그래밍을 마스터하세요. 복잡한 배열, 컬렉션, 오류 처리, 그리고 시간 관리를 다루는 방법을 배워보세요.고급 제어 흐름
5 개 강의528- 01`fallthrough`를 사용한 Switch 문챌린지퀴즈
- 02중첩 루프 탈출하기챌린지퀴즈
- 03특정 루프 계속하기챌린지퀴즈
- 04`goto` 문챌린지퀴즈
- 05요약 - 고급 루프 제어챌린지
구조체와 메서드
6 개 강의439- 01구조체에 메서드 정의하기챌린지퀴즈
- 02값 리시버챌린지퀴즈
- 03포인터 리시버챌린지퀴즈
- 04리시버 선택하기퀴즈
- 05메서드 vs 함수퀴즈
- 06요약 - 구조체 동작챌린지
인터페이스 (기초)
8 개 강의757- 01인터페이스란 무엇인가요?퀴즈
- 02인터페이스 정의하기챌린지퀴즈
- 03인터페이스 구현하기챌린지퀴즈
- 04인터페이스 타입 사용하기챌린지퀴즈
- 05빈 인터페이스챌린지퀴즈
- 06타입 단언챌린지퀴즈
- 07타입 스위치챌린지퀴즈
- 08요약 - 도형과 동작챌린지
프로젝트: 간단한 할 일 목록
프로젝트6 개 강의1- 01프로젝트 설정챌린지
- 02할 일 추가하기프로젝트
- 03모든 할 일 보기프로젝트
- 04할 일 완료하기프로젝트
- 05할 일 삭제하기프로젝트
- 06하나로 합치기프로젝트
Map 심화
5 개 강의432- 01구조체 Map챌린지퀴즈
- 02Map 값으로 포인터 사용하기챌린지퀴즈
- 03Nil Map 체크하기챌린지퀴즈
- 04Map 비교하기퀴즈
- 05요약 - 단어 빈도수 계산기챌린지
관용적인 Go: Set
7 개 강의648- 01Go의 Set 관용구퀴즈
- 02Set 생성하기챌린지퀴즈
- 03Set에 추가하기챌린지퀴즈
- 04요소 포함 여부 확인하기챌린지퀴즈
- 05Set에서 제거하기챌린지퀴즈
- 06Set 순회하기챌린지퀴즈
- 07요약 - 고유한 사용자 이름챌린지
에러 처리 심화
7 개 강의650- 01사용자 정의 에러 타입챌린지퀴즈
- 02%w를 사용한 에러 래핑챌린지퀴즈
- 03errors.Is를 사용한 언래핑챌린지퀴즈
- 04errors.As를 사용한 언래핑챌린지퀴즈
- 05panic 이해하기퀴즈
- 06recover 사용하기챌린지퀴즈
- 07요약 - 안전한 나눗셈챌린지
프로젝트: 간단한 재고 관리
프로젝트6 개 강의1- 01프로젝트 개요챌린지
- 02재고 확인하기프로젝트
- 03새 항목 추가하기프로젝트
- 04재고 수량 업데이트하기프로젝트
- 05보고서 생성하기프로젝트
- 06하나로 합치기프로젝트
패키지와 스코프
7 개 강의550- 01패키지란 무엇인가요?퀴즈
- 02Exported와 Unexported챌린지퀴즈
- 03간단한 패키지 만들기챌린지퀴즈
- 04패키지 별칭 지정챌린지퀴즈
- 05빈 식별자 `_`퀴즈
- 06`init` 함수챌린지퀴즈
- 07요약 - 유틸리티 만들기챌린지
시간 다루기
8 개 강의857- 01현재 시간 가져오기챌린지퀴즈
- 02특정 시간 생성하기챌린지퀴즈
- 03시간 포맷팅챌린지퀴즈
- 04시간 문자열 파싱챌린지퀴즈
- 05시간 간격챌린지퀴즈
- 06시간 연산챌린지퀴즈
- 07Sleep과 Ticker챌린지퀴즈
- 08요약 - 간단한 타이머챌린지
최종 도전 과제
3 개 강의3- 01기초 연락처 목록챌린지
- 02간단한 숫자 검증기챌린지
- 03중복 없는 항목 수집기챌린지
섹션 3
객체 지향 프로그래밍
섹션 시작하기시작펼치기접기클래스, 객체, 재사용 가능한 구조로 코드를 구성하는 방법을 알아보세요Go OOP 기초
11 개 강의1189- 01외부 파일챌린지퀴즈
- 02Go 워크스페이스와 모듈챌린지퀴즈
- 03패키지와 임포트챌린지퀴즈
- 04공개 및 비공개 이름챌린지퀴즈
- 05Go OOP 입문챌린지퀴즈
- 06클래스로서의 구조체챌린지퀴즈
- 07구조체 메서드 정의하기챌린지퀴즈
- 08포인터 리시버 vs 값 리시버챌린지퀴즈
- 09구조체 초기화챌린지퀴즈
- 10생성자 함수챌린지퀴즈
- 11복습 - 간단한 계산기챌린지
타입과 구조체 심층 분석
7 개 강의752- 01기본 및 복합 타입챌린지퀴즈
- 02사용자 정의 타입 정의챌린지퀴즈
- 03구조체 태그챌린지퀴즈
- 04익명 구조체챌린지퀴즈
- 05중첩 구조체챌린지퀴즈
- 06제로 값과 기본값챌린지퀴즈
- 07요약 - 연락처챌린지
포인터와 메모리
6 개 강의644- 01Go의 포인터 기초챌린지퀴즈
- 02구조체 포인터챌린지퀴즈
- 03값에 의한 전달 vs 참조에 의한 전달챌린지퀴즈
- 04new() 함수챌린지퀴즈
- 05Go의 가비지 컬렉션챌린지퀴즈
- 06요약 - 연결 리스트 빌더챌린지
인터페이스
9 개 강의969- 01인터페이스 소개챌린지퀴즈
- 02암시적 구현챌린지퀴즈
- 03계약으로서의 인터페이스챌린지퀴즈
- 04빈 인터페이스 (any)챌린지퀴즈
- 05타입 단언챌린지퀴즈
- 06타입 스위치챌린지퀴즈
- 07인터페이스 구성챌린지퀴즈
- 08Stringer 및 Error 인터페이스챌린지퀴즈
- 09요약 - 도형 계산기챌린지
상속보다 구성을
7 개 강의749- 01Go에 상속이 없는 이유챌린지퀴즈
- 02구조체 임베딩 기초챌린지퀴즈
- 03메서드 프로모션챌린지퀴즈
- 04여러 구조체 임베딩하기챌린지퀴즈
- 05임베딩 vs 집약챌린지퀴즈
- 06임베딩된 메서드 섀도잉챌린지퀴즈
- 07요약 - 직원 계층 구조챌린지
Go에서의 다형성
6 개 강의643- 01인터페이스를 통한 다형성챌린지퀴즈
- 02Go에서의 덕 타이핑챌린지퀴즈
- 03인터페이스 충족 규칙챌린지퀴즈
- 04다형성 컬렉션챌린지퀴즈
- 05의존성 주입챌린지퀴즈
- 06요약 - 결제 프로세서챌린지
캡슐화
5 개 강의536- 01공개 필드와 비공개 필드챌린지퀴즈
- 02패키지 수준의 캡슐화챌린지퀴즈
- 03Getter와 Setter 메서드챌린지퀴즈
- 04Go에서의 정보 은닉챌린지퀴즈
- 05요약 - 학생 기록챌린지
에러 처리와 OOP
7 개 강의754- 01error 인터페이스챌린지퀴즈
- 02사용자 정의 에러 타입챌린지퀴즈
- 03에러 래핑 (fmt.Errorf)챌린지퀴즈
- 04센티넬 에러챌린지퀴즈
- 05errors.Is()와 errors.As()챌린지퀴즈
- 06Panic, Defer, Recover챌린지퀴즈
- 07요약 - 파일 파서챌린지
동시성 & OOP
8 개 강의863- 01Goroutines 기초챌린지퀴즈
- 02Channels & 통신챌린지퀴즈
- 03Buffered vs Unbuffered 채널챌린지퀴즈
- 04Select 문챌린지퀴즈
- 05sync.Mutex & sync.RWMutex챌린지퀴즈
- 06sync.WaitGroup챌린지퀴즈
- 07Thread-Safe 구조체 설계챌린지퀴즈
- 08요약 - Worker Pool챌린지
제네릭 (Go 1.18+)
6 개 강의645- 01제네릭 소개챌린지퀴즈
- 02타입 파라미터챌린지퀴즈
- 03타입 제약챌린지퀴즈
- 04제네릭 구조체챌린지퀴즈
- 05제네릭 메서드 우회 방법챌린지퀴즈
- 06요약 - 제네릭 컬렉션챌린지
표준 라이브러리 & OOP
6 개 강의644- 01io.Reader & io.Writer챌린지퀴즈
- 02sort.Interface챌린지퀴즈
- 03fmt.Stringer 인터페이스챌린지퀴즈
- 04encoding/json과 구조체챌린지퀴즈
- 05http.Handler 인터페이스챌린지퀴즈
- 06요약 - REST API 모델챌린지
고급 OOP 개념
6 개 강의655- 01함수형 옵션 패턴챌린지퀴즈
- 02Go에서의 빌더 패턴챌린지퀴즈
- 03메서드 체이닝챌린지퀴즈
- 04타입 별칭 vs 타입 정의챌린지퀴즈
- 05리플렉션 기초챌린지퀴즈
- 06코드 생성 개요챌린지퀴즈
디자인 패턴 파트 1
6 개 강의651- 01디자인 패턴 소개챌린지퀴즈
- 02싱글톤 패턴챌린지퀴즈
- 03팩토리 패턴챌린지퀴즈
- 04추상 팩토리 패턴챌린지퀴즈
- 05옵저버 패턴챌린지퀴즈
- 06전략 패턴챌린지퀴즈
디자인 패턴 파트 2
7 개 강의764- 01커맨드 패턴챌린지퀴즈
- 02어댑터 패턴챌린지퀴즈
- 03데코레이터 패턴챌린지퀴즈
- 04템플릿 메서드 패턴챌린지퀴즈
- 05상태 패턴챌린지퀴즈
- 06컴포지트 패턴챌린지퀴즈
- 07데코레이터로서의 Middleware챌린지퀴즈
프로젝트: 도서 관리
프로젝트7 개 강의1- 01프로젝트 개요 및 구조챌린지
- 02Book 및 User 구조체프로젝트
- 03대출 시스템프로젝트
- 04Interface를 활용한 검색프로젝트
- 05JSON 영속성 계층프로젝트
- 06관리자 CLI Interface프로젝트
- 07테스트 및 통합프로젝트
최종 도전 과제
3 개 강의3- 01이러닝 플랫폼챌린지
- 02은행 시스템챌린지
- 03게임 캐릭터 시스템챌린지
GO 코스
브라우저에서 무료로 시작하는 실습형 GO 코스.
입문자 챌린지 - 기초 개념 연습하기
인기여러분의 기초 코딩 지식을 테스트하고 프로그래밍 챌린지들을 해결해 보세요. 원하는 어떤 언어든 사용할 수 있습니다. 즐거운 코딩 되세요!
수료 시 인증서
- 20
- 20
코딩 문제
인기이 코스에서 제공하는 다양한 난이도의 연습 문제를 통해 여러분의 프로그래밍 문제 해결 능력을 시험해 보세요. 프로그래밍 언어의 기초 문법을 어느 정도 알고 있는 개발자를 위해 설계되었습니다.
수료 시 인증서
- 32
- 31
코딩 문제: 2편
이 코스에서 제공하는 다양한 난이도의 연습 문제를 통해 여러분의 프로그래밍 문제 해결 능력을 테스트해 보세요. 어떤 프로그래밍 언어든 기초 문법에 대한 사전 지식이 있는 분들을 위해 설계되었습니다. 이 코스는 '코딩 문제 1편'의 연장선상에 있습니다.
수료 시 인증서
- 25
- 24
스택 - 자료구조 시리즈 #1
이 코스에서는 스택 자료구조에 대해 배우고, 원하는 언어로 스택을 처음부터 직접 구현해 보며 다양한 코딩 챌린지를 연습합니다!
- 13
- 6
- 1
힙 & 우선순위 큐 - 자료구조 시리즈 #7
신규이 코스에서는 우선순위 큐의 핵심인 Heap 자료구조에 대해 배우고, 선호하는 언어로 MinHeap을 처음부터 직접 구현하며 다양한 코딩 챌린지를 연습합니다!
수료 시 인증서
- 14
- 6
- 1
별 찍기 부트캠프
프로그래밍 문제 해결 능력을 발휘하여 기초부터 복잡한 수준까지 다양한 별 패턴을 출력하는 방법을 배워보세요. 다양한 수준의 중첩 반복문, 조건문, 그리고 수학적 계산을 활용하는 법을 익힐 수 있습니다.
- 30
- 28
Coddy에서 Go (Golang)을 배우는 이유
- 브라우저에서 진짜 Go 코드를 작성하고 실행하세요. Go toolchain 설치도, GOPATH 설정도 필요 없습니다. 각 레슨마다 작성한 Go 프로그램이 서버에서 컴파일되어 결과가 즉시 표시됩니다.
- Idiomatic Go: 패키지, structs, slices와 maps, interfaces, 에러 처리, goroutines, channels. 백엔드와 CLI를 만들 때 실제로 쓰는 Go 패턴들입니다.
- AI 힌트가 Go 코드 디버깅과 goroutine·channel 관련 버그를 푸는 걸 도와줍니다. 정답을 바로 알려주는 대신 힌트만 주기 때문에, 헷갈리던 동시성 모델이 자연스럽게 이해되기 시작합니다.
- 수료하면 무료 Golang 수료증 제공. backend, 클라우드 인프라, DevOps 분야에서 Go 역량이 점점 더 요구되는 만큼 신뢰할 만한 증빙이 됩니다.