여정
Go (Golang) 배우기
Go (Golang)을 처음부터 배우는 무료 온라인 강의입니다. 실습 과제, 실제 프로젝트, AI 힌트, 수료증과 함께 변수, 조건문, 반복문, 함수, 자료구조, 프로젝트 구조를 익힙니다.
20,350+ 명의 codders가 등록함
이 여정에 포함된 내용
AI 코딩 도우미
실습 중심의 대화형 강의
모든 레슨에 음성 나레이션 제공
지식을 확인하는 퀴즈
무료 수료증
커리큘럼
3 섹션284 개 강의256 챌린지1,839 퀴즈 문제01섹션 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요약 - 문제 처리하기챌린지
02섹션 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중복 없는 항목 수집기챌린지
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게임 캐릭터 시스템챌린지
Coddy에서 Go (Golang)을 배우는 이유
- 무료 온라인 Go (Golang) 강의입니다. 설치나 환경 설정 없이 브라우저에서 첫 레슨부터 바로 연습할 수 있습니다.
- Go (Golang) 레슨은 단순 튜토리얼이 아닙니다. 각 개념마다 직접 코드를 작성하는 과제가 있어 실습으로 이해합니다.
- Go (Golang) 연습 문제에서 막히면 AI 힌트가 정답을 그대로 주지 않고 다음 단계의 사고 과정을 도와줍니다.
- Go (Golang) 과정을 마치면 LinkedIn이나 이력서에 추가할 수 있는 무료 수료증을 받을 수 있습니다.
Go (Golang) 학습에 대한 자주 묻는 질문
Go (Golang)은 배우기 쉬운가요?
네. 경험이 없어도 Go (Golang)을 시작할 수 있습니다. Coddy는 짧은 연습 문제로 나누어 문법을 이해하고 변수, 조건문, 반복문, 함수, 자료구조, 프로젝트 구조를 연습하며 자신감을 쌓게 합니다.
Go (Golang)을 배우는 데 얼마나 걸리나요?
Go (Golang)의 기초는 매일 연습하면 보통 1~2주 안에 익힐 수 있습니다. 실제 프로젝트를 편하게 만들려면 속도에 따라 1~3개월 정도를 잡는 것이 좋습니다.
Go (Golang)을 온라인에서 무료로 배울 수 있나요?
Coddy는 Go (Golang) 무료 온라인 강의를 제공합니다. 레슨, 코딩 과제, 퀴즈, 프로젝트가 있으며 모든 것이 브라우저에서 실행됩니다.
Go (Golang)을 빠르게 배우려면 어떻게 해야 하나요?
가장 빠른 방법은 매일 직접 작성하는 것입니다. Coddy에서는 짧은 설명 뒤 바로 실습하고 AI 힌트로 피드백을 받기 때문에 긴 영상보다 실습 시간이 많습니다.
완료하면 Go (Golang) 수료증을 받나요?
네. Coddy에서 Go (Golang) 과정을 완료하면 LinkedIn이나 이력서에 추가할 수 있는 무료 수료증을 받습니다.
Go (Golang)을 배운 뒤 무엇을 만들 수 있나요?
강의를 마치면 유용한 스크립트, 작은 앱, 자동화, 간단한 게임, 포트폴리오에 넣을 수 있는 프로젝트를 만들 수 있습니다. 더 고급 주제로 넘어갈 수 있는 기초도 갖추게 됩니다.