Post

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.