๋ชจ๋“ˆ๊ณผ ์ปดํฌ๋„ŒํŠธ
ยท
๐Ÿ“ Computer Science/โœ
๋ชจ๋“ˆ๊ณผ ์ปดํฌ๋„ŒํŠธ ๊ณต๋ถ€ํ•˜๋‹ค ๋ณด๋ฉด ์žฌ์‚ฌ์šฉ์„ฑ์ด๋ผ๋Š” ๋‹จ์–ด์™€ ํ•จ๊ป˜ ๋ชจ๋“ˆ๊ณผ ์ปดํฌ๋„ŒํŠธ๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๊ณต๊ณต์—ฐํ•˜๊ฒŒ ๋“ฑ์žฅํ•œ๋‹ค. ๋‘˜ ๋‹ค ์–ด๋– ํ•œ ๊ตฌ์กฐ์™€ ๊ธฐ๋Šฅ์˜ ์ตœ์†Œ ๋‹จ์œ„์™€ ์œ ์‚ฌํ•œ ๊ฐœ๋…์œผ๋กœ ์ •์˜๋˜๊ณ  ์žˆ๊ธฐ์— ์ด ๋‘˜์„ ํ˜ผ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žฆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋‘˜์€ ๋ช…ํ™•ํ•˜๊ฒŒ ๋‹ค๋ฅธ ์˜๋ฏธ๋ฅผ ์ง€๋‹ˆ๊ณ  ์žˆ๋‹ค. ์„œ๋ฒ„-ํด๋ผ์ด์–ธํŠธ ๊ตฌ์กฐ์—์„œ ์„œ๋ฒ„ 1๊ฐœ์™€ ํด๋ผ์ด์–ธํŠธ 100๊ฐœ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ชจ๋“ˆ์€ ์„œ๋ฒ„ 1๊ฐœ, ํด๋ผ์ด์–ธํŠธ 1๊ฐœ, ์ด 2๊ฐœ ์ปดํฌ๋„ŒํŠธ๋Š” ์„œ๋ฒ„ 1๊ฐœ, ํด๋ผ์ด์–ธํŠธ 100๊ฐœ, ์ด 101๊ฐœ 1. ๋ชจ๋“ˆ(Module) ๊ฐ€์žฅ ์ƒ์œ„์— ์œ„์น˜ํ•˜๋Š” ๊ตฌํ˜„์˜ ๋‹จ์œ„ ๋งŒ๋“ค์–ด์ง„ ์‚ฐ์ถœ๋ฌผ์˜ ๊ตฌํ˜„ ๋‹จ์œ„์ด๋‹ค. ๋น„์Šทํ•˜๊ฑฐ๋‚˜ ์—ฐ๊ด€์„ฑ ์žˆ๋Š” ๊ฒƒ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฉ”์„œ๋“œ๋‚˜ ํด๋ž˜์Šค์˜ ์ง‘ํ•ฉ์ด๋‹ค. 2. ์ปดํฌ๋„ŒํŠธ(Component) ๋Ÿฐํƒ€์ž„ ๊ฐœ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋‹จ์œ„ ์‹คํ–‰ ์ค‘์ธ ์†Œํ”„ํŠธ์›จ์–ด์˜ ํ™œ๋™ ๋‹จ์œ„์ด๋‹ค.
ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
ยท
๐Ÿ“ Computer Science/โœ
ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 1. ํ”„๋ ˆ์ž„์›Œํฌ(Framework) ํ”„๋ ˆ์ž„์›Œํฌ๋ž€ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ตฌ์ฒด์ ์ธ ๋ถ€๋ถ„์— ํ•ด๋‹นํ•˜๋Š” ์„ค๊ณ„์™€ ๊ตฌํ˜„์„ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ๋” ์ผ๋ จ์˜ ํ˜‘์—…ํ™”๋œ ํ˜•ํƒœ๋กœ ํด๋ž˜์Šค๋“ค์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ผˆ๋Œ€๋‚˜ ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋ฅผ ๋œปํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง„ํ–‰ํ•  ๋•Œ ํ•„์ˆ˜์ ์ธ ์ฝ”๋“œ, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋“ฑ๊ณผ ๊ฐ™์ด ์–ด๋А ์ •๋„์˜ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ด ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ผˆ๋Œ€ ์œ„์—์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์™„์„ฑ๋œ ์ œํ’ˆ์ด ์•„๋‹Œ ์™„์„ฑ๋œ ์ œํ’ˆ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ๊ฐœ๋ฐœ์ž๋ฅผ ๋„์™€์ฃผ๋Š” ๋˜๋Š” ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. 2. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Library) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ž€ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋กœ์ง์„ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ํŽธ๋ฆฌํ•˜๋„๋ก ์ž˜ ์ •๋ฆฌํ•œ ์ผ๋ จ์˜ ์ฝ”๋“œ๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค. ์ฆ‰, ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์–ด๋– ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋„์›€์„..
์ž๋ฃŒ๊ตฌ์กฐ ์ •๋ฆฌ
ยท
๐Ÿ“ Computer Science/โœ Data Structure
์ž๋ฃŒ๊ตฌ์กฐ ์ •๋ฆฌ 1. ์„ ํ˜• ๊ตฌ์กฐ์™€ ๋น„์„ ํ˜• ๊ตฌ์กฐ 2020.04.24 - [๐Ÿ“ Computer Science/โœ Data Structure] - ์„ ํ˜• ๊ตฌ์กฐ(Linear Structure)์™€ ๋น„์„ ํ˜• ๊ตฌ์กฐ(Non-Linear Structure) ์„ ํ˜• ๊ตฌ์กฐ(Linear Structure)์™€ ๋น„์„ ํ˜• ๊ตฌ์กฐ(Non-Linear Structure) 1. ์„ ํ˜• ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋ชจ์–‘์œผ๋กœ ๊ตฌ์„ฑํ•œ๋‹ค. 1) ๋ฐฐ์—ด(Array) ๋™์ผํ•œ ์ž๋ฃŒํ˜•์˜ ๋ฐ์ดํ„ฐ๋“ค์ด ๊ฐ™์€ ํฌ๊ธฐ๋กœ ๋‚˜์—ด๋˜์–ด ์ˆœ์„œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ์ง‘ํ•ฉ์ด๋‹ค. ๋น ๋ฅธ ์ ‘๊ทผ(O(1))๊ณผ random access๊ฐ€ tech-interview.tistory.com 2. ์ด์ง„ ํŠธ๋ฆฌ 2020.04.24 - [๐Ÿ“ Computer Science/โœ Data Structure] - ..
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๋ฆฌ
ยท
๐Ÿ“ Computer Science/โœ Database
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๋ฆฌ 1. ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 2020.04.27 - [๐Ÿ“ Computer Science/โœ Database] - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DataBase) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DataBase) ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์กด์žฌํ•˜๊ธฐ ์ด์ „์—๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜์˜€๋‹ค. 1. ํŒŒ์ผ ์‹œ์Šคํ…œ ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ํŒŒ์ผ์„ ์ด์šฉํ•˜์—ฌ ์ž๋ฃŒ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํŒŒ์ผ tech-interview.tistory.com 2. ์ธ๋ฑ์Šค 2020.04.27 - [๐Ÿ“ Computer Science/โœ Database] - ์ธ๋ฑ์Šค(Index) ์ธ๋ฑ์Šค(Index) ์ธ๋ฑ์Šค(Index) ๋ฐ์ดํ„ฐ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์Œ์œผ๋กœ ๊ตฌ์„ฑ๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๋‹ค. ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ”์„ Full Scan ํ•˜์ง€ ์•Š๊ณ  ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•ด..
ํŒŒํ‹ฐ์…”๋‹(Partitioning)๊ณผ ์ƒค๋”ฉ(Sharding)
ยท
๐Ÿ“ Computer Science/โœ Database
1. ํŒŒํ‹ฐ์…”๋‹(Partitioning) ์„œ๋น„์Šค์˜ ํฌ๊ธฐ๊ฐ€ ์ ์  ์ปค์ง€๊ณ  DB์— ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ทœ๋ชจ ๋˜ํ•œ ๋Œ€์šฉ๋Ÿ‰ํ™” ๋˜๋ฉด์„œ, ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋Š” DB ์‹œ์Šคํ…œ์˜ ์šฉ๋Ÿ‰์˜ ํ•œ๊ณ„์™€ ์„ฑ๋Šฅ์˜ ์ €ํ•˜๋ฅผ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋˜์—ˆ๋‹ค. ์ฆ‰, ํ•˜๋‚˜์˜ DBMS์— ๋„ˆ๋ฌด ํฐ table์ด ๋“ค์–ด๊ฐ€๋ฉด์„œ ์šฉ๋Ÿ‰๊ณผ ์„ฑ๋Šฅ ์ธก๋ฉด์—์„œ ๋งŽ์€ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜์—ˆ๊ณ  ์ด๋Ÿฐ ์ด์Šˆ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ table์„ ํŒŒํ‹ฐ์…˜(partition)์ด๋ผ๋Š” ์ž‘์€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ๊ด€๋ฆฌํ•˜๋Š” ํŒŒํ‹ฐ์…”๋‹(Partitioning)์ด ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋˜์—ˆ๋‹ค. ํŒŒํ‹ฐ์…”๋‹์ด๋ž€ ํฐ table์ด๋‚˜ index๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์šด ํŒŒํ‹ฐ์…˜์ด๋ผ๋Š” ์ž‘์€ ๋‹จ์œ„๋กœ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ถ„ํ• ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ฌผ๋ฆฌ์ ์ธ ๋ฐ์ดํ„ฐ ๋ถ„ํ• ์ด ์žˆ๋”๋ผ๋„ DB์— ์ ‘๊ทผํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ž…์žฅ์—์„œ๋Š” ์ด๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•œ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ..
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ’€(Database Pool)
ยท
๐Ÿ“ Computer Science/โœ Database
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ’€(Database Pool) 1. ์ปค๋„ฅ์…˜ ํ’€(Connection Pool) ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์Šค๋ ˆ๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Connection์ด ํ•„์š”ํ•˜๋‹ค. DB Connection Pool manager๊ฐ€ ์ผ์ •์˜ connection์„ ์—ฌ๋Ÿฌ ๊ฐœ ์ƒ์„ฑํ•ด ๋‘์–ด ์ €์žฅํ•ด ๋†“์€ ์บ์‹œ(๊ณต๊ฐ„) ์ด ๊ณต๊ฐ„์˜ connection์„ ํ•„์š”ํ•  ๋•Œ ๊บผ๋‚ด ์“ฐ๊ณ  ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ธฐ๋ฒ• 2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ๊ณผ์ • ์›น ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐ๋œ Connection ๊ฐ์ฒด๋“ค์„ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•ด Pool์— ์ €์žฅํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ์‹œ Pool์—์„œ Connection ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผํ•œ๋‹ค. ์š”์ฒญ ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚˜๋ฉด ์‚ฌ์šฉ๋œ Connection ๊ฐ์ฒด๋ฅผ ๋‹ค์‹œ Pool์— ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋‚จ์€ ..