์ฉ์ด
- robustness : ์์์น ๋ชปํ ์ํฉ์ด ๋ฐ์ํด๋ ์ด๋ ์ ๋ ๊น์ง๋ ๋ณ๋ฌธ์ ์์ด ๋์ํ๋๊ฒ
- resiliency : ์ด๋ ์ ๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋๋ผ๋ ๋ค์ ์ ์์ ์ผ๋ก ๋์ํ๋ ๊ฒ
๋ชฉ์ฐจ
CHAPTER 1 ์ปค๋งจ๋ ๋ผ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ
- 1.1 ์ฒซ ์ ํ๋ฆฌ์ผ์ด์
$ ./app
Invalid number of arguments
Usage: ./app <integer> [-h|--help]
A greeter application which prints the name you entered <integer> number of times.%
โฆ/practical-go/chap01/manual-parse
$ echo $? # ๋ง์ง๋ง exit code ํ์ธํ๊ธฐ
1
- 1.2 ์ ๋ ํ ์คํธ ์์ฑ
- 1.3 Flag ํจํค์ง ์ฌ์ฉ
- ๋ณดํต์ cli ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ๋๋ค
application [-h] [-n <value>] -silent <arg1> <arg2>- -h๋ ์๋ด ๋ฌธ๊ตฌ๋ฅผ ์ถ๋ ฅํ ์ง ์ง์ ํ๋ bool ์ต์ ๊ฐ
- -n value๋ ์ฌ์ฉ์๊ฐ n์ด๋ผ๋ ์ต์ ์ ๋ํด ์ง์ ํ๋ ๊ฐ
- -silent๋ -h์ ์ด์ด ๋๋ค๋ฅธ ๋ถ๋ฆฌ์ธ๊ฐ
- arg1 arg2๋ ์์น ์ธ์ ์์น ์ธ์์ ๋ฐ์ดํฐ ํ์ ๊ณผ ๊ทธ์ ๋ํ ์ฒ๋ฆฌ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์์
- ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ์ ๋ณดํต ํ์์ ์ธ ์ต์ ๊ณผ ๋ถ๊ฐ์ ์ธ ์ต์ ์ด ๊ณต์กดํ๋ค.
- 1.3.1 ํ๋๊ทธ ํ์ฑ ๋ก์ง ํ ์คํธ
- 1.4 ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๊ฐ์
- 1.4.1 ์ค๋ณต๋ ์ค๋ฅ ๋ฉ์์ง ์ ๊ฑฐ
- 1.4.2 ์ฌ์ฉ๋ฒ ๋ฉ์์ง ์ฌ์ฉ์ ์ ์
- 1.4.3 ์์น ์ธ์๋ฅผ ํตํด ์ด๋ฆ ๋ฐ๊ธฐ
- 1.5 ์ ๋ ํ ์คํธ ์ ๋ฐ์ดํธ
- 1.6 ์์ฝ
CHAPTER 2 ๊ณ ๊ธ ์ปค๋งจ๋ ๋ผ์ธ ์ ํ๋ฆฌ์ผ์ด์
- 2.1 ์๋ธ์ปค๋งจ๋ ๊ตฌํ
- 2.1.1 ์๋ธ์ปค๋งจ๋ ์ฃผ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ
- 2.1.2 ๋ฉ์ธ ํจํค์ง ํ ์คํธ
- 2.1.3 Cmd ํจํค์ง ํ ์คํธ
- 2.2 ๊ฐ๊ฑดํ ์ ํ๋ฆฌ์ผ์ด์
์์ฑ
- 2.2.1 ๋ฐ๋๋ผ์ธ์ ์ฌ์ฉํ ์ฌ์ฉ์ ์ ๋ ฅ
- 2.2.2 ์ฌ์ฉ์ ์๊ทธ๋ ์ฒ๋ฆฌ
- 2.3 ์์ฝ
CHAPTER 3 HTTP ํด๋ผ์ด์ธํธ ์์ฑ
- 3.1 ๋ฐ์ดํฐ ๋ค์ด๋ก๋
- 3.1.1 ๋ฐ์ดํฐ ๋ค์ด๋ก๋ ํ ์คํธ
- 3.2 ์์ ๋ฐ์ดํฐ ์ญ์ง๋ ฌํ
- 3.3 ๋ฐ์ดํฐ ์ก์
- 3.4 ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ ์ทจ๊ธ
- 3.5 ์์ฝ
CHAPTER 4 ๊ณ ๊ธ HTTP ํด๋ผ์ด์ธํธ
- 4.1 ์ปค์คํ
HTTP ํด๋ผ์ด์ธํธ ์ฌ์ฉ
- 4.1.1 ๊ณผ๋ถํ ์ํ์ ์๋ฒ์์ ๋ค์ด๋ก๋
- 4.1.2 ํ์์์ ๋์ ํ ์คํธ
- 4.1.3 ๋ฆฌ๋ค์ด๋ ํธ ๋์ ์ค์
- 4.2 ์ฌ์ฉ์ ์์ฒญ ์ปค์คํฐ๋ง์ด์ง
- 4.3 ํด๋ผ์ด์ธํธ ๋ฏธ๋ค์จ์ด ๊ตฌํ
- 4.3.1 RoundTripper ์ธํฐํ์ด์ค ์ดํด
- 4.3.2 ๋ก๊น ๋ฏธ๋ค์จ์ด
- 4.3.3 ๋ชจ๋ ์์ฒญ์ ํค๋ ์ถ๊ฐ
- 4.4 ์ปค๋ฅ์
ํ๋ง
- 4.4.1 ์ปค๋ฅ์ ํ ์ค์
- 4.5 ์์ฝ
CHAPTER 5 HTTP ์๋ฒ ์์ฑ
- 5.1 ์ฒซ HTTP ์๋ฒ
- 5.2 ์์ฒญ ํธ๋ค๋ฌ ์ค์
- 5.2.1 ํธ๋ค๋ฌ ํจ์
- 5.3 ์๋ฒ ํ ์คํธ
- 5.4 Request ๊ตฌ์กฐ์ฒด
- 5.4.1 ๋ฉ์๋
- 5.4.2 URL
- 5.4.3 Proto, ProtoMajor, ProtoMinor
- 5.4.4 Header
- 5.4.5 Host
- 5.4.6 Body
- 5.4.7 Form, PostForm
- 5.4.8 MultipartForm
- 5.5 Request ๊ฐ์ฒด์ ๋ฉํ๋ฐ์ดํฐ ๋ถ์ฐฉ
- 5.6 ์คํธ๋ฆฌ๋ฐ ์์ฒญ ์ฒ๋ฆฌ
- 5.7 ์๋ต ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ
- 5.8 ์์ฝ
CHAPTER 6 ๊ณ ๊ธ HTTP ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์
- 6.1 Handler ํ์
- 6.2 ํธ๋ค๋ฌ ํจ์ ๊ฐ์ ๋ฐ์ดํฐ ๊ณต์
- 6.3 ์๋ฒ ๋ฏธ๋ค์จ์ด ์์ฑ
- 6.3.1 ์ปค์คํ HTTP ํธ๋ค๋ฌ ๊ธฐ๋ฒ
- 6.3.2 HandlerFunc ๊ธฐ๋ฒ
- 6.3.3 ๋ฏธ๋ค์จ์ด ์ฒด์ด๋
- 6.4 ๋ณต์กํ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์
์ ํ
์คํธ ์์ฑ
- 6.4.1 ์ฝ๋ ์ ๋ฆฌ
- 6.4.2 ํธ๋ค๋ฌ ํจ์ ํ ์คํธ
- 6.4.3 ๋ฏธ๋ค์จ์ด ํ ์คํธ
- 6.4.4 ์ด๊ธฐ ์๋ฒ ์์ ํ ์คํธ
- 6.5 ์์ฝ
CHAPTER 7 ์ค์๋น์ค ๊ฐ๋ฅํ HTTP ์๋ฒ
- 7.1 ์์ฒญ ํธ๋ค๋ง ์ค๋จ
- 7.1.1 ์์ฒญ ์ฒ๋ฆฌ ์ค๋จ ์ ๋ต
- 7.1.2 ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ ๋๊น ์ฒ๋ฆฌ
- 7.2 ์๋ฒ๋จ ํ์์์
- 7.2.1 ๋ชจ๋ ํธ๋ค๋ฌ ํจ์์ ํ์์์ ๊ตฌํ
- 7.2.2 ์๋ฒ ํ์์์ ๊ตฌํ
- 7.2.3 ์ฐ์ํ ์ข ๋ฃ ๊ตฌํ
- 7.3 TLS๋ฅผ ํ์ฉํ ๋ณด์ ํต์
- 7.3.1 TLS์ HTTP/2 ๊ตฌ์ฑ
- 7.3.2 TLS ์๋ฒ ํ ์คํธ
- 7.4 ์์ฝ
CHAPTER 8 gRPC๋ฅผ ์ฌ์ฉํ RPC ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ
- 8.1 gRPC์ ํ๋กํ ์ฝ ๋ฒํผ
- 8.2 ์ฒซ ์๋น์ค ์์ฑ
- 8.2.1 ์๋ฒ ์์ฑ
- 8.2.2 ํด๋ผ์ด์ธํธ ์์ฑ
- 8.2.3 ์๋ฒ ํ ์คํธ
- 8.2.4 ํด๋ผ์ด์ธํธ ํ ์คํธ
- 8.3 ํ๋กํ ์ฝ ๋ฒํผ ๋ฉ์์ง ์ดํด๋ณด๊ธฐ
- 8.3.1 ๋ง์ฌ๋ง๊ณผ ์ธ๋ง์ฌ๋ง
- 8.3.2 ์์ ํธํ์ฑ ๋ฐ ํ์ ํธํ์ฑ
- 8.4 ์ฌ๋ฌ ๊ฐ์ ์๋น์ค
- 8.5 ์๋ฌ ํธ๋ค๋ง
- 8.6 ์์ฝ
CHAPTER 9 ๊ณ ๊ธ gRPC ์ ํ๋ฆฌ์ผ์ด์
- 9.1 ์คํธ๋ฆฌ๋ฐ ์ปค๋ฎค๋์ผ์ด์
- 9.1.1 ์๋ฒ ์ฌ์ด๋ ์คํธ๋ฆฌ๋ฐ
- 9.1.2 ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ์คํธ๋ฆฌ๋ฐ
- 9.1.3 ์๋ฐฉํฅ ์คํธ๋ฆฌ๋ฐ
- 9.2 ์์์ ๋ฐ์ดํฐ ์ก์์
- 9.3 ์ธํฐ์
ํฐ๋ฅผ ํ์ฉํ ๋ฏธ๋ค์จ์ด ๊ตฌํ
- 9.3.1 ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ์ธํฐ์ ํฐ
- 9.3.2 ์๋ฒ ์ฌ์ด๋ ์ธํฐ์ ํฐ
- 9.3.3 ์คํธ๋ฆผ ๋ํ
- 9.3.4 ์ธํฐ์ ํฐ ์ฒด์ด๋
- 9.4 ์์ฝ
CHAPTER 10 ์ค์๋น์ค ๊ฐ๋ฅํ gRPC ์ ํ๋ฆฌ์ผ์ด์
- 10.1 TLS๋ฅผ ํ์ฉํ ๋ณด์ ํต์
- 10.2 ์๋ฒ์ ๊ฐ๊ฑด์ฑ
- 10.2.1 ํฌ์ค ์ฒดํฌ ๊ตฌํ
- 10.2.2 ๋ฐํ์ ์ค๋ฅ ์ฒ๋ฆฌ
- 10.2.3 ์์ฒญ ์ฒ๋ฆฌ ์ค๋จ
- 10.3 ๊ฐ๊ฑดํ ํด๋ผ์ด์ธํธ
- 10.3.1 ์ฐ๊ฒฐ ๊ตฌ์ฑ ๊ฐ์
- 10.3.2 ์ผ์์ ์ธ ์ฅ์ ์ํฉ ๋์
- 10.3.3 ๋ฉ์๋ ํธ์ถ์ ํ์์์ ์ค์
- 10.4 ์ฐ๊ฒฐ ๊ด๋ฆฌ
- 10.5 ์์ฝ
CHAPTER 11 ๋ฐ์ดํฐ ์ ์ฅ์ ํ์ฉ
- 11.1 ์ค๋ธ์ ํธ ์ ์ฅ์ ํ์ฉ
- 11.1.1 ํจํค์ง ์๋ฒ ์ ๊ทผ ๋ฐ ํ์ฉ
- 11.1.2 ํจํค์ง ์ ๋ก๋ ํ ์คํธ
- 11.1.3 ๊ธฐ๋ฐ ๋๋ผ์ด๋ฒ ํ์ ์ ๊ทผ
- 11.2 ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ฉ
- 11.2.1 ํจํค์ง ์๋ฒ์ ํตํฉ
- 11.2.2 ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง ํ ์คํธ
- 11.2.3 ๋ฐ์ดํฐ ํ์ ํ ๋ณํ
- 11.2.4 ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋์ญ์ ์ด์ฉ
- 11.3 ์์ฝ
APPENDIX A ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ด์ธก ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ธฐ
- A.1 ๋ก๊ทธ, ๋ฉํธ๋ฆญ, ๊ทธ๋ฆฌ๊ณ ํธ๋ ์ด์ค
- A.2 ํ
๋ ๋ฉํธ๋ฆฌ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ
- A.2.1 ์ปค๋งจ๋ ๋ผ์ธ ์ ํ๋ฆฌ์ผ์ด์
- A.2.2 HTTP ์ ํ๋ฆฌ์ผ์ด์
- A.2.3 gRPC ์ ํ๋ฆฌ์ผ์ด์
- A.3 ์์ฝ
APPENDIX B ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌํ๊ธฐ
- B.1 ํ๊ฒฝ์ค์ ์ ๋ณด ๊ด๋ฆฌ
- B.2 ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ
- B.3 ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ
- B.4 ์์ฝ
์ฐพ์๋ณด๊ธฐ
- ์ฐพ์๋ณด๊ธฐ