gRPC๋ ์ ์ค์ฉ์ ์ผ๊น? ์ด ๊ธ์ gRPC๋ฅผ ์ ํ ์ง ์ผ๋ง ์ ๋๊ฑฐ๋ ์๋กญ๊ฒ ์์๋ณด๊ณ ์ถ์ ์ฌ๋์ ๋์์ผ๋ก go, gRPC ๊ทธ๋ฆฌ๊ณ MSA ํ๊ฒฝ์์์ ์ค๋ฌด ๊ฒฝํ์ ๊ธฐ๋ฐํ์ฌ ์์ฑ๋์์ต๋๋ค. ์ ๋ gRPC๋ ์ธํ๋ผ ๊ตฌ์ถ์ ์์ด ๋ค์ ๋ฌ๋์ปค๋ธ๊ฐ ์๋ ํธ์ด์ง๋ง ๊ต์ฅํ ์ค์ฉ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ค๋์ ์ด์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ํด๋ณด๋ ค๊ณ ํด์. ๋จผ์ , gRPC๋ ๋ฌด์์ผ๊น์? gRPC๋ ํ ๋ฌธ์ฅ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ์ ์ํด๋ณผ ์ ์์ต๋๋ค. gRPC๋ Protocol Buffer๋ฅผ IDL(Interface Definition Language)๋ก ์ฌ์ฉํ๋ HTTP/2๊ธฐ๋ฐ์ RPC ํ๋ ์์ํฌ์ ๋๋ค. ์์ํ ๋จ์ด๋ค์ด ๋ง์ ์ ์์ ๊ฒ ๊ฐ์๋ฐ์! ์ ๊น ๋ช ๊ฐ์ง ์ดํด๋ณผ๊น์? RPC(Remote Procedure Call) RPC๋ ๋ง ๊ทธ๋..
๊ฐ์ ๊ณ ๋ฃจํด(goroutine)๊ณผ ์ฑ๋(channel)์ ๋ํด์ ์์๋ณด์ ๊ณ ๋ฃจํด(goroutine) ๊ณ ๋ฃจํด์ Go๋ฐํ์์์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์ด์ฉํ ๋์์ฑ์ ์ง์ํ๋ ๊ฒฝ๋ ๊ฐ์ ์ฐ๋ ๋์ด๋ค. ๊ฐ์ ์ฐ๋ ๋๋ผ๋ ๊ฒ์ ์ค์ ๋ก OS๋ ๋ฒจ์์ ์ฐ๋ ๋๊ฐ ์์ฑ๋๋ ๊ฒ์ด ์๋๋ผ ์ ํ๋ฆฌ์ผ์ด์ (Go)๋ ๋ฒจ์์ ๊ฐ์์ ์ฐ๋ ๋๊ฐ ์์ฑ๋๋ ๊ฒ์ ์๋ฏธํ๋ ์ฃผ์ํ์ ๋ฐํ์์์๋ง ๋์ํ๊ธฐ ๋๋ฌธ์ main ๋ฐํ์์ด ์ข ๋ฃ๋๋ฉด ๋ชจ๋ ๊ณ ๋ฃจํด์ด ์ข ๋ฃ๋๋ ์ฃผ์ํ์ go ํค์๋๋ฅผ ์ด์ฉํด ๊ณ ๋ฃจํด์ ์ ์ธํ๋ค ๋ค์ ์์๋ฅผ ํตํด์ ๊ณ ๋ฃจํด์ ์ฌ์ฉ๋ฒ์ ์์๋ณด์ import ( "fmt" "time" ) func main() { // go ํค์๋๋ฅผ ์ด์ฉํด ๊ณ ๋ฃจํด ์์ฑ -> ๋์์ ์คํ๋จ. ์ ์ฒด ์ถ๋ ฅ์ ๋ณด๋ฉด์ ์ดํดํด๋ณด์ go bar("foo") bar("bar") /..
๊ฐ์ Go์ ๊ตฌ์กฐ์ฒด(struct)์ ํ์ (type) ๊ทธ๋ฆฌ๊ณ ๋ฉ์๋(method)์ ๋ํด์ ์์๋ณด์ ๊ตฌ์กฐ์ฒด(struct) go์์๋ c์ ๊ตฌ์กฐ์ฒด์ ์ ์ฌํ ํํ๋ฅผ ์ง์ํ๋ค ๊ตฌ์กฐ์ฒด๋ฅผ ์ ์ธํจ์ผ๋ก์จ ์๋ก์ด ์๋ฃํ์ ์ ์ธํ ์ ์๊ณ , type-safe์๋ ํจ๊ณผ๊ฐ ์๋ค ์๋ ์์๋ฅผ ํตํด ์์๋ณด์ type user struct { name string age int } func main() { user := user{name: "mokhs00", age: 23} fmt.Println(user) } receiver์ method go์์๋ receiver๋ฅผ ์ด์ฉํด ๋ฉ์๋ ๊ธฐ๋ฅ์ ์ด์ฉํ ์ ์๋ค func (t T) Foo() {}ํ์์ด๋ฉฐ ๊ธฐ์กด ํจ์์์ ์์ (t *T)๊ฐ ์ถ๊ฐ๋ ๊ฒ์ด๋ค (T๋ ํ์ ์ด๋ค) T์ ๋ํ rece..
๊ฐ์ go ์ธ์ด ์ฌ์ฉ๋ฒ์ ๋ํด์ ์์๋ณด์ ๋ค์ ๋ชฉ์ฐจ๋ก ์งํ๋๋ฉฐ ๋ค๋ฅธ ์ธ์ด๋ก ํ๋ก๊ทธ๋๋ฐ์ ๊ฒฝํํด๋ณธ ์ฌ๋ ๋์์ผ๋ก ์์ฑํ๋ค ๊ฐ์ ๋ณ์, ์์ ์ ์ธ(+์ถ์ฝํ ์ ์ธ) ํ์ ํจ์ ์ ์ธ(ignore value(_), defer, export function) ์กฐ๊ฑด๋ฌธ(if, switch) ๋ฐ๋ณต๋ฌธ(for) pointer(*) ๋ฐฐ์ด(slice, array) ๋ณ์, ์์ ์ ์ธ ๊ธฐ๋ณธ์ ์ผ๋ก ์์๋ const, ๋ณ์๋ var ํค์๋๋ฅผ ์ด์ฉํด ์ ์ธํ๋ค ์ฌ๋ฌ ๋ฐฉ๋ฒ์ผ๋ก ๋ณ์, ์์ ์ ์ธ๋ ๊ฐ๋ฅํ๋ฐ, ์ด๋ ์๋ ์ฝ๋๋ก ์ดํด๋ณด์ // ๊ธฐ๋ณธ ์ ์ธ var age = 23 var name string name = "mokhs" // ๋ณ์ ์ถ์ฝํ ์ ์ธ : ์๋์ ์์ธํ ์์๋ณด์ role := "Backend Engineer" // ์์ ์ ์ธ ..
- Total
- Today
- Yesterday
- ์ฝ๋ฉํ ์คํธ
- ์ฅ์ ํ๊ณ
- grpc client
- 2023 ๊ฐ๋ฐ์ ํ๊ณ
- ๊น์ด/๋๋น ์ฐ์ ํ์(DFS/BFS)
- ๋ฐฑ์ค
- ์ข์ ์์ง๋์ด
- ์ข์ ์ฝ๋๋ ๋ฌด์์ธ๊ฐ?
- Go
- Golang
- ์ถ์ ์ง๋
- AWS re:Invent 2023
- ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค
- 2๋ ์ฐจ ์๋ฒ ๊ฐ๋ฐ์
- mysql ์คํ ๊ณํ
- mysql
- ์๊ณ ๋ฆฌ์ฆ
- HTTP
- 2023 ํ๊ณ
- Aws Reinvent 2023
- rate limit
- ์คํ/ํ
- ํด์
- ์ข์ ๊ฐ๋ฐ์ ๋๊ธฐ
- ์ข์ ๊ฐ๋ฐ์
- golang oomkilled
- kotlin s3 upload
- ํ(Heap)
- ๋ฑ ํฌ์๋ฌ๋ ๊ฐ๋ฐ์
- ํ๋ก๊ทธ๋๋จธ์ค
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |