์ข์ ์ฝ๋๋ฅผ ํ๋จํ๋ ๊ฑด ์ฃผ๊ด์ด๋ค. ์ด ๊ธ์ ์ฝ์ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ ๋ํด ์ต์ํ ์๊ฐํ ๊ฑฐ๋ฆฌ๋ฅผ ์ป์ด๊ฐ ์ ์๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ค. ์ฝ๊ธฐ ์ฌ์ด ์ฝ๋๋ ๋ฌด์์ด๊ณ ์ ์ฝ๊ธฐ ์ฝ๊ฒ ์์ฑํด์ผํ๊ณ ๊ทธ๋ฐ ์ฝ๋๋ ์ด๋ป๊ฒ ํ์ํ๋์ง ๊ฐ๋ ์ฑ์ ๋ณธ์ง์ ์ผ๋ก ์ฃผ๊ด์ ์ธ ๊ฒ์ด๋ฉฐ ๊ทธ๊ฒ์ด ์ ํํ ๋ฌด์์ ์๋ฏธํ๋์ง ํ์คํ๊ฒ ์ ์ํ๊ธฐ๋ ์ด๋ ต๋ค. ๊ฐ๋ ์ฑ์ ํต์ฌ์ ๊ฐ๋ฐ์๊ฐ ์ฝ๋์ ๊ธฐ๋ฅ์ ๋น ๋ฅด๊ณ ์ ํํ๊ฒ ์ดํดํ ์ ์๋๋ก ํ๋ ๊ฒ์ด๋ค. ์ค์ ๋ก ์ด๋ ๊ฒ ํ๋ ค๋ฉด ๋ค๋ฅธ ์ฌ๋์ ๊ด์ ์์ ๋ณด์์ ๋, ์ฝ๋๊ฐ ํผ๋์ค๋ฝ๊ฑฐ๋ ์๋ชป ํด์๋ ์ ์๋์ง๋ฅผ ์์ํ๊ณ ๊ณต๊ฐํด์ผ ํ ๋๊ฐ ๋ง๋ค. ์ ๋ด์ฉ์ ์ข์ ์ฝ๋, ๋์ ์ฝ๋ : ํ๋ก๊ทธ๋๋จธ์ ์ฝ๋ ํ์ง ๊ฐ์ ๋ฒ์ด๋ผ๋ ์ฑ ์ ํ ๋ถ๋ถ์ด๋ค. ์ด ์ฑ ์์ ๋งํ๋ ์ฝ๋ ํ์ง์ ํต์ฌ ์์๊ฐ ์ฌ๋ฌ๊ฐ์ง ์๋๋ฐ ๊ทธ ์ค ํ๋๋ ๊ฐ๋ ์ฑ์ด๋ค. ์ฆ,..
๊นํ์๋, ์ ์ฌ 1์ฃผ๋ ์ ์ถํํด์! 2022๋ 3์ 28์ผ๋ถ๋ก ๋ฑ ํฌ์๋ฌ๋์ ํฉ๋ฅํ๊ณ ์ต๊ทผ์ ์ ์ฌ 1์ฃผ๋ ์ด ๋์์ต๋๋ค!! ๋ฑ ํฌ์๋ฌ๋์ ์ด๋ค ์๊ฐ๊ณผ ๋ง์์ผ๋ก ํฉ๋ฅํ๊ฒ ๋์๊ณ ์ง๊ธ๊น์ง ์ด๋ค ์ผ๋ค์ ํ๊ณ , ์์ผ๋ก๋ ์ด๋ป๊ฒ ํ๊ณ ์ถ์์ง์ ๋ํด์ ์ด์ผ๊ธฐํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ฑ ํฌ์๋ฌ๋ ์ง์๋ถํฐ ํฉ๋ฅ๊น์ง 22๋ ์ด์ ์ด์ง์ ๊ฒฐ์ฌํ๊ณ ์ฌ๋ฌ ํ์ฌ์ ์ฐพ๊ณ ์ง์ํ๋ ์ค ๋ฑ ํฌ์๋ฌ๋๊ฐ ๋์ ๋์๊ณ ๋ฐ๋ก ์ง์ํ๊ฒ ๋์์ต๋๋ค. ์ฑ์ฉ์ ์๋ฌด๋๋ ๊ทธ ํ์ฌ์ ๊ฐ์ธ์ด ๋จ๊ธฐ์ ์ผ๋ก ๊ฒฐํผํ๋ ๊ฒ์ด๋ผ ์๊ฐํ๊ณ ๊ฐ์ธ์ ์ผ๋ก ์ง์ ์ ์ ๊ทธ ํ์ฌ์ ๋ํด์ ์์ธํ ์์๋ณด๋ ํธ์ธ๋ฐ, ๋ฑ ํฌ์๋ฌ๋๋ ๊ทธ ๋น์ ์ ์๊ฒ ๊ฐ์ฅ ๋งค๋ ฅ์ ์ด์์ต๋๋ค. ๊ทธ๋์ ์ต์ข ์คํผ๊ฐ ์์ ๋ ํฐ ๊ณ ๋ฏผํ์ง ์๊ณ ํฉ๋ฅํ๊ฒ ๋ค ๊ฒฐ์ ํ๊ณ ์ฑ์ฉ ํ๋ก์ธ์ค ์งํ ์ค์ด๋ ๋ค๋ฅธ ํ์ฌ๋ค์ ์ฐ๋ฝํด์ ์ฃ์กํ๋ค๋ ..
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" // ์์ ์ ์ธ ..
https://www.acmicpc.net/problem/7576 7576๋ฒ: ํ ๋งํ ์ฒซ ์ค์๋ ์์์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ๋ ์ ์ M,N์ด ์ฃผ์ด์ง๋ค. M์ ์์์ ๊ฐ๋ก ์นธ์ ์, N์ ์์์ ์ธ๋ก ์นธ์ ์๋ฅผ ๋ํ๋ธ๋ค. ๋จ, 2 ≤ M,N ≤ 1,000 ์ด๋ค. ๋์งธ ์ค๋ถํฐ๋ ํ๋์ ์์์ ์ ์ฅ๋ ํ ๋งํ www.acmicpc.net ์ดํด ํ์ด์ ์์ ๋ฌธ์ ๋ฅผ ์ดํดํด๋ณด์ ํ ๋งํ ์ ์ต์ ์ํ๊ฐ 1์ด๋ง๋ค 1์นธ์ฉ ์ ์ด๋๋ ์ํฉ์ด๊ณ ์ ์ฒด ํ ๋งํ ์ ์ ์ด๋๋๋ฐ ๊ฑธ๋ฆฌ๋ ์ต์ ์๊ฐ์ ์ถ๋ ฅํด์ผํ๋ค ๊ฒฐ๊ตญ ํ์์ ์งํํด์ผํ๊ณ , ๊ฐ ์ขํ์ ์ต์ ์๊ฐ์ ๊ธฐ๋กํด์ผํ๋ฏ๋ก BFS๋ฅผ ์ด์ฉํด์ผํ๋ค BFS๋ฅผ ์งํํ๋ฉฐ cost๋ฅผ ๊ธฐ๋กํ๊ณ ํ์ ์ข ๋ฃ ํ์ cost ์ค ๊ฐ์ฅ ํฐ ๊ฐ์ ์ถ๋ ฅํ๋ฉด ๋๋ค ํ์ด ์ฌ๊ธฐ์ ๋ฐฉ๋ฌธ์ฒ๋ฆฌ๋ ์ต์ ํ ๋งํ ์ฌ๋ถ๋ก ํ๋ค = 1..
https://www.acmicpc.net/problem/2667 2667๋ฒ: ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ ๊ณผ ๊ฐ์ด ์ ์ฌ๊ฐํ ๋ชจ์์ ์ง๋๊ฐ ์๋ค. 1์ ์ง์ด ์๋ ๊ณณ์, 0์ ์ง์ด ์๋ ๊ณณ์ ๋ํ๋ธ๋ค. ์ฒ ์๋ ์ด ์ง๋๋ฅผ ๊ฐ์ง๊ณ ์ฐ๊ฒฐ๋ ์ง์ ๋ชจ์์ธ ๋จ์ง๋ฅผ ์ ์ํ๊ณ , ๋จ์ง์ ๋ฒํธ๋ฅผ ๋ถ์ด๋ ค ํ๋ค. ์ฌ www.acmicpc.net ์ดํด ํด๋น ๋ฌธ์ ๋ 2์ฐจ์ ๋ฐฐ์ด๋ก ์ฃผ์ด์ง๋ map์ ํ์ํ์ฌ ์ฐ๊ฒฐ๋ ์ง์ญ์ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ์ฆ map์ ์ํํ๋ฉฐ ๋ฐฉ๋ฌธ์ฒ๋ฆฌ๋์ง ์์ ์ขํ๊ฐ ์๋ค๋ฉด ํด๋น ์ขํ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ธ์ ํ ์ขํ๋ฅผ ๋ชจ๋ ๋ฐฉ๋ฌธ์ฒ๋ฆฌํ๋ค. ์ด๋ ๊ฒํ๋ฉด ์ฐ๊ฒฐ๋ ์ง์ญ์ ๋ชจ๋ ๋ฐฉ๋ฌธ์ฒ๋ฆฌ๋ ๊ฒ์ด๊ณ map์ ์ํ ์ค์ ๋ฐฉ๋ฌธ๋์ง ์์ ์ขํ๋ฅผ ์ฐพ๋๋ค๋ฉด ์๋ก์ด ์ง์ญ์ ๋ฐ๊ฒฌ์ ์๋ฏธํ๋ค. ๋ฐ๋ผ์ map์ ์ํํ๋ฉฐ ๋ฐฉ๋ฌธ๋์ง ์์ ์ขํ๋ฅผ ์ฐพ์ ์ ํด๋น ์ขํ๋ฅผ ์์..
- Total
- Today
- Yesterday
- Go
- Golang
- ํ๋ก๊ทธ๋๋จธ์ค
- mysql metadata_locks
- ํด์
- ๊น์ด/๋๋น ์ฐ์ ํ์(DFS/BFS)
- 2023 ํ๊ณ
- golang oomkilled
- ์ข์ ์์ง๋์ด
- ์ฅ์ ํ๊ณ
- 2023 ๊ฐ๋ฐ์ ํ๊ณ
- kotlin s3 upload
- ์ข์ ๊ฐ๋ฐ์ ๋๊ธฐ
- ์ถ์ ์ง๋
- ์ฝ๋ฉํ ์คํธ
- ์๊ณ ๋ฆฌ์ฆ
- ์ข์ ๊ฐ๋ฐ์
- Aws Reinvent 2023
- 2024ํ๊ณ
- ์คํ/ํ
- HTTP
- mysql mdl
- mysql
- ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค
- mysql metadata lock
- grpc client
- AWS re:Invent 2023
- mysql ์คํ ๊ณํ
- ํ(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 |