์šฉ์–ด

  • 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 ์š”์•ฝ

์ฐพ์•„๋ณด๊ธฐ

  • ์ฐพ์•„๋ณด๊ธฐ