๐ Computer Science
![๋ฐ์ดํฐ๋ฒ ์ด์ค ํ(Database Pool)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcDo9aA%2FbtrHp3ha7CU%2FLpUsluYGyDkb2hQODPhQZ1%2Fimg.png)
๋ฐ์ดํฐ๋ฒ ์ด์ค ํ(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++] ํํ ๋ถํ , ๋ชจ์ค ์๊ณ ๋ฆฌ์ฆ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn2lQy%2Fbtrz6q3LrU4%2FKPnE3MMzghMLrJ9IcWCjT1%2Fimg.png)
[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)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcm6ofe%2FbtrwaFeKT7R%2F6OGPc3kikBpKThRxSiHRt0%2Fimg.png)
[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๊ฐ์ ์ ์๊ฐ ๋น ์นธ์ ์ฌ..