00 개발 환경 구축 - 윈도우, MacOS, 리눅스 [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단계 고급 기법으로 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 개선하기 핵심 요약 / 연습문제 [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를 이용한 채팅 프로그램 핵심 요약 / 연습문제 [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 언어 가비지 컬렉터