๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€119

[gqlgen] gin.Context ์ด์šฉํ•˜๊ธฐ ๋ฌธ์ œ gin์„ graphql(gqlgen)์˜ router๋กœ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ gin.Context์— ๋‹ด์•„๋†“์€ ๊ฐ’๋“ค์ด, graphql resolver์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ctx(context.Context)์— ๋‹ด๊ฒจ์žˆ์ง€ ์•Š์•˜๋‹ค. gin.Context์— key-value๋กœ ์ €์žฅํ•œ ๊ฐ’์„ resolver์˜ ctx.Value("key")๋กœ ์ ‘๊ทผํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ์ƒํ™ฉ gqlgen ๊ณต์‹ ๋ฌธ์„œ์—์„œ ์ œ๊ณตํ•˜๋Š” example์— gin.Context๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์•ˆ๋‚ด๋˜์–ด ์žˆ๋‹ค. ๋งํฌ ํ•˜์ง€๋งŒ, ์ด ๋ฐฉ๋ฒ•์€ context.Context์— gin.Context๋ฅผ ๊ทธ๋Œ€๋กœ ๋‹ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ๊ฐ์˜ resolver์—์„œ ๋งค๋ฒˆ ์•„๋ž˜์˜ ์ž‘์—…์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค. 1. context.Context์—์„œ gin.Context ๊บผ๋‚ด๊ธฐ 2. gin.Cont.. 2023. 8. 9.
[C++/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์•ผ๊ทผ ์ง€์ˆ˜ ๋ฌธ์ œ https://programmers.co.kr/learn/courses/30/lessons/12927# ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์•ผ๊ทผ ์ง€์ˆ˜ ํšŒ์‚ฌ์› Demi๋Š” ๊ฐ€๋”์€ ์•ผ๊ทผ์„ ํ•˜๋Š”๋ฐ์š”, ์•ผ๊ทผ์„ ํ•˜๋ฉด ์•ผ๊ทผ ํ”ผ๋กœ๋„๊ฐ€ ์Œ“์ž…๋‹ˆ๋‹ค. ์•ผ๊ทผ ํ”ผ๋กœ๋„๋Š” ์•ผ๊ทผ์„ ์‹œ์ž‘ํ•œ ์‹œ์ ์—์„œ ๋‚จ์€ ์ผ์˜ ์ž‘์—…๋Ÿ‰์„ ์ œ๊ณฑํ•˜์—ฌ ๋”ํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค. Demi๋Š” N์‹œ๊ฐ„ ๋™์•ˆ ์•ผ๊ทผ ํ”ผ๋กœ๋„ programmers.co.kr ํšŒ์‚ฌ์› Demi๋Š” ๊ฐ€๋”์€ ์•ผ๊ทผ์„ ํ•˜๋Š”๋ฐ์š”, ์•ผ๊ทผ์„ ํ•˜๋ฉด ์•ผ๊ทผ ํ”ผ๋กœ๋„๊ฐ€ ์Œ“์ž…๋‹ˆ๋‹ค. ์•ผ๊ทผ ํ”ผ๋กœ๋„๋Š” ์•ผ๊ทผ์„ ์‹œ์ž‘ํ•œ ์‹œ์ ์—์„œ ๋‚จ์€ ์ผ์˜ ์ž‘์—…๋Ÿ‰์„ ์ œ๊ณฑํ•˜์—ฌ ๋”ํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค. Demi๋Š” N์‹œ๊ฐ„ ๋™์•ˆ ์•ผ๊ทผ ํ”ผ๋กœ๋„๋ฅผ ์ตœ์†Œํ™”ํ•˜๋„๋ก ์ผํ•  ๊ฒ๋‹ˆ๋‹ค. Demi๊ฐ€ 1์‹œ๊ฐ„ ๋™์•ˆ ์ž‘์—…๋Ÿ‰ 1๋งŒํผ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•  ๋•Œ, ํ‡ด๊ทผ๊นŒ์ง€ ๋‚จ์€ N ์‹œ๊ฐ„๊ณผ ๊ฐ ์ผ์— ๋Œ€ํ•œ ์ž‘์—…๋Ÿ‰ w.. 2022. 4. 5.
[C++/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ˆซ์ž ๊ฒŒ์ž„ ๋ฌธ์ œ https://programmers.co.kr/learn/courses/30/lessons/12987 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ˆซ์ž ๊ฒŒ์ž„ xx ํšŒ์‚ฌ์˜ 2xN๋ช…์˜ ์‚ฌ์›๋“ค์€ N๋ช…์”ฉ ๋‘ ํŒ€์œผ๋กœ ๋‚˜๋ˆ  ์ˆซ์ž ๊ฒŒ์ž„์„ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ํŒ€์„ ๊ฐ๊ฐ AํŒ€๊ณผ BํŒ€์ด๋ผ๊ณ  ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ˆซ์ž ๊ฒŒ์ž„์˜ ๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๋ชจ๋“  ์‚ฌ์›์ด ๋ฌด์ž‘์œ„๋กœ programmers.co.kr ํ’€์ด A์™€ B๋ฅผ ๋ชจ๋‘ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. a_idx, b_max_idx๋ฅผ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ A[a_idx] vs B[b_max_idx] ์ด๋ ‡๊ฒŒ ์ˆœ์ฐจ์ ์œผ๋กœ ๋Œ€๊ฒฐ์„ ํ•ด ๋‚˜๊ฐˆ๊ฑด๋ฐ, 1. A๊ฐ€ ์ด๊ธฐ๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด, B์˜ ๊ฐ€์žฅ ์ž‘์€ ์›์†Œ๋ฅผ ๋‚ธ๋‹ค๊ณ  ์ƒ๊ฐ (์–ด์ฐจํ”ผ ์งˆ ๋ฐ”์— ์ œ์ผ ์ž‘์€ ๊ฑธ๋กœ ์ง€์ž!) 2. B๊ฐ€ ์ด๊ธฐ๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด, B[b_max_idx]๋ฅผ ๋‚ธ๋‹ค๊ณ .. 2022. 3. 29.
[Go] go-socket.io์˜ Redis Adapter socket.io์—์„œ๋Š” redis adapter๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Adapter? https://socket.io/docs/v4/adapter/ ์ •์˜ Adapter๋Š” client์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ ํ˜น์€ ์ „์ฒด client์—๊ฒŒ event๋ฅผ broadcastํ•˜๋Š” server-side component์ด๋‹ค. ์™œ ํ•„์š”ํ• ๊นŒ? ๊ธฐ๋ณธ์ ์œผ๋กœ socket.io์—์„œ in-memory adapter๊ฐ€ broadcast๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ, socket.io ์„œ๋ฒ„๊ฐ€ ์—ฌ๋Ÿฌ๋Œ€๋กœ ๋ถ„์‚ฐ๋˜์–ด์žˆ์„ ๋•Œ, in-memory adapter๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๋‘ ๊ฐœ์˜ socket.io ์„œ๋ฒ„๊ฐ€ ์žˆ์„ ๋•Œ, in-memory adapter๋ฅผ ์ด์šฉํ•˜๋ฉด server A์—์„œ server B์— ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋Š” client๋“ค์—๊ฒŒ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด์ค„ ์ˆ˜ ์—†.. 2022. 3. 3.
[C++/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํŒŒ๊ดด๋˜์ง€ ์•Š์€ ๊ฑด๋ฌผ ๋ฌธ์ œ https://programmers.co.kr/learn/courses/30/lessons/92344 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํŒŒ๊ดด๋˜์ง€ ์•Š์€ ๊ฑด๋ฌผ [[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5]] [[1,0,0,3,4,4],[1,2,0,2,3,2],[2,1,0,3,1,2],[1,0,1,3,3,1]] 10 [[1,2,3],[4,5,6],[7,8,9]] [[1,1,1,2,2,4],[1,0,0,1,1,2],[2,2,0,2,0,100]] 6 programmers.co.kr ๋ฌธ์ œ๊ฐ€ ๊ธธ๋‹ค.. ์š”์•ฝํ•˜๋ฉด, NxM์˜ ์ดˆ๊ธฐ borad์—์„œ (r1, c1) ~(r2, c2)์˜ ์ž„์˜์˜ ๊ตฌ๊ฐ„?๋ถ€๋ถ„์„ ๊ณต๊ฒฉ(-)ํ–ˆ๋‹ค๊ฐ€ ํšŒ๋ณต(+)ํ–ˆ๋‹ค๊ฐ€ ํ•˜๋ฉด์„œ ์ตœ์ข…์ ์œผ๋กœ ๊ฐ’์ด 0๋ณด๋‹ค ํฐ ์นธ์˜ ๊ฐฏ์ˆ˜๋ฅผ ์„ธ๋ฉด ๋˜๋Š” ๋ฌธ.. 2022. 3. 1.
[C++/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ด์ค‘์šฐ์„ ์ˆœ์œ„ํ ๋ฌธ์ œ https://programmers.co.kr/learn/courses/30/lessons/42628 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ด์ค‘์šฐ์„ ์ˆœ์œ„ํ programmers.co.kr ์ด์ค‘ ์šฐ์„ ์ˆœ์œ„ ํ๋Š” ๋‹ค์Œ ์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์–ด ์„ค๋ช… I ์ˆซ์ž ํ์— ์ฃผ์–ด์ง„ ์ˆซ์ž๋ฅผ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. D 1 ํ์—์„œ ์ตœ๋Œ“๊ฐ’์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. D -1 ํ์—์„œ ์ตœ์†Ÿ๊ฐ’์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์ด์ค‘ ์šฐ์„ ์ˆœ์œ„ ํ๊ฐ€ ํ•  ์—ฐ์‚ฐ operations๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋ชจ๋“  ์—ฐ์‚ฐ์„ ์ฒ˜๋ฆฌํ•œ ํ›„ ํ๊ฐ€ ๋น„์–ด์žˆ์œผ๋ฉด [0,0] ๋น„์–ด์žˆ์ง€ ์•Š์œผ๋ฉด [์ตœ๋Œ“๊ฐ’, ์ตœ์†Ÿ๊ฐ’]์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด์ฃผ์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ operations๋Š” ๊ธธ์ด๊ฐ€ 1 ์ด์ƒ 1,000,000 ์ดํ•˜์ธ ๋ฌธ์ž์—ด ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. operations์˜ ์›์†Œ๋Š” ํ๊ฐ€ ์ˆ˜.. 2022. 3. 1.
๋ฐ˜์‘ํ˜•