๐Ÿ“ Computer Science

    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ’€(Database Pool)

    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ’€(Database Pool)

    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ’€(Database Pool) 1. ์ปค๋„ฅ์…˜ ํ’€(Connection Pool) ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์Šค๋ ˆ๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Connection์ด ํ•„์š”ํ•˜๋‹ค. DB Connection Pool manager๊ฐ€ ์ผ์ •์˜ connection์„ ์—ฌ๋Ÿฌ ๊ฐœ ์ƒ์„ฑํ•ด ๋‘์–ด ์ €์žฅํ•ด ๋†“์€ ์บ์‹œ(๊ณต๊ฐ„) ์ด ๊ณต๊ฐ„์˜ connection์„ ํ•„์š”ํ•  ๋•Œ ๊บผ๋‚ด ์“ฐ๊ณ  ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ธฐ๋ฒ• 2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ๊ณผ์ • ์›น ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐ๋œ Connection ๊ฐ์ฒด๋“ค์„ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•ด Pool์— ์ €์žฅํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ์‹œ Pool์—์„œ Connection ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผํ•œ๋‹ค. ์š”์ฒญ ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚˜๋ฉด ์‚ฌ์šฉ๋œ Connection ๊ฐ์ฒด๋ฅผ ๋‹ค์‹œ Pool์— ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋‚จ์€ ..

    ์šด์˜์ฒด์ œ ์ •๋ฆฌ

    ์šด์˜์ฒด์ œ ์ •๋ฆฌ 1. ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ๊ตฌ์„ฑ 2020.04.23 - [๐Ÿ“ Computer Science/โœ OS] - ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ๊ตฌ์„ฑ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ๊ตฌ์„ฑ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฌผ๋ฆฌ์  ๊ธฐ๊ณ„ ์žฅ์น˜์ธ ํ•˜๋“œ์›จ์–ด์™€ ํŠน๋ณ„ํ•œ ์ž‘์—…์„ ์ง€์‹œํ•˜๋ ค๊ณ  ๋ช…๋ น์–ด๋กœ ์ž‘์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ์ธ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ํ•˜๋“œ์›จ์–ด ํ”„๋กœ์„ธ์„œ, ๋ฉ”๋ชจ tech-interview.tistory.com ๋งˆ์šฐ์Šค๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ์ปดํ“จํ„ฐ์—์„œ ์ผ์–ด๋‚˜๋Š” ๋ชจ๋“  ์ผ์— ๊ด€ํ•ด์„œ ์„ค๋ช… ํ‚ค๋ณด๋“œ์—์„œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์ด ๋“ค์–ด์˜ค๋ฉด ํ‚ค๋ณด๋“œ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ CPU์—๊ฒŒ ํ‚ค๊ฐ€ ์ž…๋ ฅ๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๋ ค์ค€๋‹ค. CPU๋Š” ํ˜„์žฌ ์ˆ˜ํ–‰ ์ค‘์ด๋˜ ์ž‘์—…์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ธํ„ฐ๋ŸฝํŠธ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด OS ๋‚ด์— ์ •์˜๋œ ํ‚ค๋ณด๋“œ ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด์„ ์ฐพ์•„๊ฐ„๋‹ค. ํ‚ค๋ณด๋“œ..

    [C++] ํ‰ํ–‰ ๋ถ„ํ• , ๋ชจ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜

    [C++] ํ‰ํ–‰ ๋ถ„ํ• , ๋ชจ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜

    ํ‰ํ–‰ ๋ถ„ํ• , ๋ชจ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ‰ํ–‰ ๋ถ„ํ• (SQRT Decomposition)์€ ๋ฐ์ดํ„ฐ๊ฐ€ N๊ฐœ์ด๋ฉด √N๊ฐœ๋งŒํผ ๋‚˜๋ˆ ์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๊ฐ ๊ทธ๋ฃน์€ ๋Œ€ํ‘ฏ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋งŒ์•ฝ ์ฃผ์–ด์ง€๋Š” ์ฟผ๋ฆฌ๊ฐ€ ๊ตฌ๊ฐ„์˜ ๋ง์…ˆ์ด๋ผ๋ฉด ๊ทธ๋ฃน์˜ ํ•ฉ์ด ๋Œ€ํ‘ฏ๊ฐ’์ด ๋œ๋‹ค. ๋ชจ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์–ด๋–ค ๊ตฌ๊ฐ„ [s, e]์— ์†ํ•˜๋Š” ์›์†Œ๋“ค์„ ์ด์šฉํ•˜์—ฌ ์–ด๋–ค ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์—…๋ฐ์ดํŠธ๊ฐ€ ์—†์–ด ์ฟผ๋ฆฌ์˜ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค. ๊ทธ๋ž˜์„œ ์ฟผ๋ฆฌ ์ˆœ์„œ๋ฅผ ์žฌ๋ฐฐ์น˜ํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋ฐฐ์—ด์„ k(√N)๊ฐœ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ ์ฃผ๊ณ , ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋‘ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ ๋จผ์ € ์ฒ˜๋ฆฌํ•œ๋‹ค. [s1/k] < [s2/k] [s1/k] = [s2/k] and e1 < e2 ๋ฌธ์ œ https://www.acmicpc.net/problem/1..

    [๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจํ„ด] ๊ฒŒ์ž„ ๋ฃจํ”„ ํŒจํ„ด(Game Loop Pattern)

    ๊ฒŒ์ž„ ๋ฃจํ”„ ํŒจํ„ด(Game Loop Pattern) ๋จผ์ € ์š”์•ฝํ•˜์ž๋ฉด ๊ฒŒ์ž„ ๋ฃจํ”„ ํŒจํ„ด์ด๋ž€ ๊ฒŒ์ž„ ์ง„ํ–‰์„ ์œ ์ € ์ž…๋ ฅ, ํ”„๋กœ์„ธ์„œ ์†๋„์™€ ๋””์ปคํ”Œ๋ง ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋” ์‰ฝ๊ฒŒ ๋งํ•˜์ž๋ฉด ์ž…๋ ฅ์ด ์—†์–ด๋„ ํ”„๋กœ์„ธ์„œ๊ฐ€ ์ž˜ ๋Œ์•„๊ฐ„๋‹ค๋Š” ๋ง์ด๋‹ค. ์ด ํŒจํ„ด์€ ํŠน์ˆ˜ํ•˜์—ฌ ๊ฒŒ์ž„ ๋ถ„์•ผ ์™ธ์—์„œ๋Š” ์ฐพ์•„๋ณด๊ธฐ๋Š” ํž˜๋“ค์ง€๋งŒ ์‹ค์ œ๋กœ ๋งŽ์ด ์“ฐ์ด๊ณ  ์žˆ๋‹ค. (์œ ๋‹ˆํ‹ฐ ๋“ฑ ๊ฒŒ์ž„ ์—”์ง„) ์˜ˆ์ „ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ฝ”๋“œ๋ฅผ ๋ชจ๋‘ ์งœ๊ณ  ๋‚˜์„œ์•ผ ํ”„๋กœ๊ทธ๋žจ์„ ๋Œ๋ฆด ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ฆ‰, ์ค‘๊ฐ„์— ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋‹ค. ์ด๋Ÿฐ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐฐ์น˜ ๋ชจ๋“œ ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ๋ชจ๋“  ์ž‘์—…์ด ๋๋‚˜๊ณ  ๋‚˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉˆ์ถ˜๋‹ค. ์—ฌ๊ธฐ์„œ ๋‚˜์˜ค๋Š” ๋ฌธ์ œ์ ์€ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ๋„ ์˜ค๋ž˜ ๊ฑธ๋ ค ์ƒ์‚ฐ์„ฑ์ด ๋–จ์–ด์ง€๊ฒŒ ๋œ๋‹ค๋Š” ์ ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€ํ™”ํ˜• ํ”„๋กœ๊ทธ๋žจ์ด ๋‚˜์™”๋‹ค. ํ”Œ๋ ˆ์ด์–ด์˜ ์ž…๋ ฅ์„ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ์‘๋‹ตํ•˜๋ฉด..

    [C++] ๋ˆ„์  ํ•ฉ(Prefix sum)

    [C++] ๋ˆ„์  ํ•ฉ(Prefix sum)

    ๋ˆ„์  ํ•ฉ(Prefix sum) ๊ณ„์‚ฐ ์–‘์„ ์ค„์—ฌ์„œ ์‹œ๊ฐ„์ ์œผ๋กœ ๋งŽ์€ ์ด๋“์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. 1. ๊ธฐ๋ณธ ์›๋ฆฌ 1) 1์ฐจ์› ๋ฐฐ์—ด 1์ฐจ์› ๋ฐฐ์—ด์—์„œ i๋ฒˆ์งธ๋ถ€ํ„ฐ j๋ฒˆ์งธ ์ธ๋ฑ์Šค๊นŒ์ง€ k๋ฅผ ๋”ํ•œ ๊ฒƒ์„ ๊ธฐ๋กํ•˜๋ ค๋ฉด, ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์˜ i๋ฒˆ์งธ ์ธ๋ฑ์Šค์— k๋ฅผ ๋”ํ•˜๊ณ  j+1๋ฒˆ์งธ ์ธ๋ฑ์Šค์— k๋ฅผ ๋นผ๋ฉด ๋œ๋‹ค. ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” ๊ธฐ์กด ๋ฐฐ์—ด ํฌ๊ธฐ๋ณด๋‹ค ํ•˜๋‚˜ ์ด์ƒ ํฌ๊ฒŒ ๋งŒ๋“ ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํฌ๊ธฐ๊ฐ€ 5์ธ ๋ฐฐ์—ด์—์„œ 0๋ฒˆ์งธ๋ถ€ํ„ฐ 2๋ฒˆ์งธ ์ธ๋ฑ์Šค๊นŒ์ง€ N์„ ๋นผ๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ˆ„์  ํ•ฉ ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค. { -N, 0, 0, N, 0, 0 } ์œ„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ 0๋ฒˆ์งธ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๊นŒ์ง€ ๋ˆ„์  ํ•ฉ์„ ๊ณ„์‚ฐํ•˜๊ฒŒ ๋˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ถ”๊ฐ€๋กœ 1๋ฒˆ์งธ๋ถ€ํ„ฐ 2๋ฒˆ์งธ ์ธ๋ฑ์Šค๊นŒ์ง€ M์„ ๋”ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋ˆ„์  ํ•ฉ ๋ฐฐ์—ด์— ๊ฐ’์„ ์ถ”๊ฐ€ํ•œ๋‹ค. { -N, -M, 0, N, M..

    [C++] ์ค‘๊ฐ„์—์„œ ๋งŒ๋‚˜๊ธฐ(Meet In The Middle)

    ์ค‘๊ฐ„์—์„œ ๋งŒ๋‚˜๊ธฐ(Meet In The Middle) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ์™„์ „ ํƒ์ƒ‰์œผ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒฝ์šฐ, ํƒ์ƒ‰์˜ ๋ฒ”์œ„๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ๊ฒฝ์šฐ์˜ ์ˆ˜์™€ ์—ฐ์‚ฐ๋Ÿ‰์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ๋Š˜์–ด๋‚˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ์ด๋•Œ ์ค‘๊ฐ„์—์„œ ๋งŒ๋‚˜๊ธฐ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด, ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์ œ๊ณฑ๊ทผ๋งŒํผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ์ค‘๊ฐ„์—์„œ ๋งŒ๋‚˜๊ธฐ ๋ฐฉ์‹์€ ์•ž์ชฝ๊ณผ ๋’ค์ชฝ์—์„œ ์ ˆ๋ฐ˜์”ฉ ์ ‘๊ทผํ•˜์—ฌ ์ค‘๊ฐ„์—์„œ ํƒ์ƒ‰ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋งŒ๋‚˜๊ฒŒ ํ•˜๋Š” ํƒ์ƒ‰ ๊ธฐ์ˆ ์„ ์˜๋ฏธํ•œ๋‹ค. ์ฆ‰, ์ค‘๊ฐ„์—์„œ ๋งŒ๋‚œ ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ํ•ฉ์ณ ์ „์ฒด ๊ฒฐ๊ณผ๋ฅผ ๋ฝ‘์•„๋‚ด๋Š” ๊ฒƒ์ด๋‹ค. ๋ฌธ์ œ https://www.acmicpc.net/problem/1208 1208๋ฒˆ: ๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ 2 ์ฒซ์งธ ์ค„์— ์ •์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” N๊ณผ ์ •์ˆ˜ S๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 40, |S| ≤ 1,000,000) ๋‘˜์งธ ์ค„์— N๊ฐœ์˜ ์ •์ˆ˜๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ..