00. Tucker의 Golang 목차
00. Tucker의 Golang 목차
✅ 1. Reference
https://github.com/tuckersGo/musthaveGo
✅ 2. 목차
00 개발 환경 구축 – 윈도우, MacOS, 리눅스
2.1 단계 탄탄하게 기초 문법 다지기]
01 Hello Go World
- 1.1 Go 역사
- 1.2 Go 언어 특징
- 1.3 코드가 실행되기까지
- 1.4 Hello Go World 코드 뜯어보기
02 변수
- 2.1 변수란?
- 2.2 변수 선언
- 2.3 변수에 대해 더 알아보기
- 2.4 변수 선언의 다른 형태
- 2.5 타입 변환
- 2.6 변수의 범위
- 2.7 숫자 표현 핵심 요약 / 연습문제
03 fmt 패키지를 이용한 텍스트 입출력
- 3.1 표준 입출력
- 3.2 표준 입력
- 3.3 키보드 입력과 Scan( ) 함수의 동작 원리 핵심 요약 / 연습문제
04 연산자
- 4.1 산술 연산자
- 4.2 비교 연산자
- 4.3 실수 오차
- 4.4 논리 연산자
- 4.5 대입 연산자
- 4.6 연산자 우선순위 핵심 요약 / 연습문제
05 함수
- 5.1 함수 정의
- 5.2 함수를 호출하면 생기는 일
- 5.3 함수는 왜 쓰나?
- 5.4 재귀 호출 핵심 요약 / 연습문제
06 상수
- 6.1 상수 선언
- 6.2 상수는 언제 사용하나?
- 6.3 타입 없는 상수
- 6.4 상수와 리터럴 핵심 요약 / 연습문제
07 if문
- 7.1 if문 기본 사용법
7.2 그리고 &&, 또는 - 7.3 중첩 if
- 7.4 if 초기문; 조건문 핵심 요약 / 연습문제
08 switch문
- 8.1 switch문 동작 원리
- 8.2 switch문을 언제 쓰는가?
- 8.3 다양한 switch문 형태
- 8.4 const 열거값과 switch
- 8.5 break와 fallthrough 키워드 핵심 요약 / 연습문제
09 for문
- 9.1 for문 동작 원리
- 9.2 continue와 break
- 9.3 중첩 for문
- 9.4 중첩 for문과 break, 레이블 핵심 요약 / 연습문제
10 배열
- 10.1 배열
- 10.2 배열 사용법
- 10.3 배열은 연속된 메모리
- 10.4 다중 배열 핵심 요약 / 연습문제
11 구조체
- 11.1 선언 및 기본 사용
- 11.2 구조체 변수 초기화
- 11.3 구조체를 포함하는 구조체
- 11.4 구조체 크기
- 11.5 프로그래밍에서 구조체의 역할 핵심 요약 / 연습문제
12 포인터
- 12.1 포인터란?
- 12.2 포인터는 왜 쓰나?
- 12.3 인스턴스
- 12.4 스택 메모리와 힙 메모리 핵심 요약 / 연습문제
13 문자열
- 13.1 문자열
- 13.2 문자열 순회
- 13.3 문자열 합치기
- 13.4 문자열 구조
- 13.5 문자열은 불변이다 핵심 요약 / 연습문제
14 패키지
- 14.1 패키지
- 14.2 패키지 사용하기
- 14.3 Go 모듈
- 14.4 패키지명과 패키지 외부 공개
- 14.5 패키지 초기화 핵심 요약 / 연습문제
15 [Project] 숫자 맞추기 게임 만들기 ★☆☆☆
- 15.1 해법
- 15.2 사전지식
- 15.3 랜덤한 숫자 생성하기
- 15.4 숫자값 입력받기
- 15.5 숫자 맞추기 완성하기 핵심 요약 / 연습문제
2.2 단계 고급 기법으로 Go 레벨업하기]
16 슬라이스
- 16.1 슬라이스
- 16.2 슬라이스 동작 원리
- 16.3 슬라이싱
- 16.4 유용한 슬라이싱 기능 활용
- 16.5 슬라이스 정렬 핵심 요약 / 연습문제
17 메서드
- 17.1 메서드 선언
- 17.2 메서드는 왜 필요한가?
- 17.3 포인터 메서드 vs 값 타입 메서드 핵심 요약 / 연습문제
18 인터페이스
- 18.1 인터페이스
- 18.2 인터페이스 왜 쓰나?
- 18.3 덕 타이핑
- 18.4 인터페이스 기능 더 알기
- 18.5 인터페이스 변환하기 핵심 요약 / 연습문제
19 함수 고급편
- 19.1 가변 인수 함수
- 19.2 defer 지연 실행
- 19.3 함수 타입 변수
- 19.4 함수 리터럴 핵심 요약 / 연습문제
20 자료구조
- 20.1 리스트
- 20.2 링
- 20.3 맵
- 20.4 맵의 원리 핵심 요약 / 연습문제
21 에러 핸들링
- 21.1 에러 반환
- 21.2 에러 타입
- 21.3 패닉 핵심 요약 / 연습문제
22 고루틴과 동시성 프로그래밍
- 22.1 스레드란?
- 22.2 고루틴 사용
- 22.3 고루틴의 동작 방법
- 22.4 동시성 프로그래밍 주의점
- 22.5 뮤텍스를 이용한 동시성 문제 해결
- 22.6 뮤텍스와 데드락
- 22.7 또 다른 자원 관리 기법 핵심 요약 / 연습문제
23 채널과 컨텍스트
- 23.1 채널 사용하기
- 23.2 컨텍스트 사용하기 핵심 요약 / 연습문제
24 제네릭 프로그래밍
- 24.1 제네릭 프로그래밍 소개
- 24.2 제네릭 함수
- 24.3 제네릭 타입
- 24.4 언제 제네릭 프로그래밍을 사용해야 하는가?
- 24.5 제네릭을 사용해 만든 유용한 기본 패키지 핵심 요약 / 연습문제
25 [Project] 단어 검색 프로그램 만들기 ★★☆☆
- 25.1 해법
- 25.2 사전 지식
- 25.3 실행 인수 읽고 파일 목록 가져오기
- 25.4 파일을 열어서 라인 읽기
- 25.5 파일 검색 프로그램 완성하기
- 25.6 개선하기 핵심 요약 / 연습문제
2.3 단계 네트워크 서버 개발 및 성능 개선 기법 익히기]
26 테스트와 벤치마크하기
- 26.1 테스트 코드
- 26.2 테스트 주도 개발
- 26.3 벤치마크 핵심 요약 / 연습문제
27 프로파일링으로 성능 개선하기
- 27.1 특정 구간 프로파일링
- 27.2 서버에서 프로파일링 핵심 요약 / 연습문제
28 [Project] HTTP 웹 서버 만들기 ★★☆☆
- 28.1 HTTP 웹 서버 만들기
- 28.2 HTTP 동작 원리
- 28.3 HTTP 쿼리 인수 사용하기
- 28.4 ServeMux 인스턴스 이용하기
- 28.5 파일 서버
- 28.6 웹 서버 테스트 코드 만들기
- 28.7 JSON 데이터 전송
- 28.8 HTTPS 웹 서버 만들기 핵심 요약 / 연습문제
29 [Project] RESTful API 서버 만들기 ★★★☆
- 29.1 해법
- 29.2 사전 지식 : RESTful API
- 29.3 RESTful API 서버 만들기
- 29.4 테스트 코드 작성하기
- 29.5 특정 학생 데이터 반환하기
- 29.6 학생 데이터 추가/삭제하기
- 29.7 RESTful API로의 발전
- 29.8 Gin으로 서버 만들기 핵심 요약 / 연습문제
30 [Project] gnet과 gRPC으로 채팅 앱 만들기 ★★★★
- 30.1 gnet을 이용해서 echo 서버 제작
- 30.2 클라이언트 제작
- 30.3 채팅 서버 제작
- 30.4 gRPC란?
- 30.5 gRPC를 이용한 채팅 프로그램 핵심 요약 / 연습문제
2.4 Tucker 노트]
노트 A. Go 문법 보충 수업
- A.1 배열과 슬라이스
- A.2 for range
- A.3 입출력 처리
- A.4 알아두면 유용한 go 명령어
- A.5 cgo로 C 언어 호출하기
- A.6 go doc
- A.7 Embed
노트 B. 생각하는 프로그래밍
- B.1 Go는 객체지향 언어인가?
- B.2 구조체에 생성자를 둘 수 있나?
- B.3 포인터를 사용해도 복사가 일어나나?
- B.4 값 타입을 쓸 것인가? 포인터를 쓸 것인가?
- B.5 구체화된 객체와 관계하라고?
- B.6 Go 언어 가비지 컬렉터
- B.6 Go 언어 가비지 컬렉터
This post is licensed under CC BY 4.0 by the author.