ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
ยท
๐Ÿ“ 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์— ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋‚จ์€ ..
๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜(Memory Leak)์˜ ๊ฐœ๋…๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
ยท
๐Ÿ“ Language/โœ Language
๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜(Memory Leak)๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ž€ ๋™์  ํ• ๋‹นํ•œ ๋’ค ํ•ด์ œ๋ฅผ ํ•˜์ง€ ์•Š์•„ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ณ„์† ์œ ์ง€ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•ด ๋ฐœ์ƒํ•˜๋Š” ํ˜„์ƒ์ด๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๊ณ„์†๋˜๋ฉด ๊ฒฐ๊ตญ OOM(Out Of Memory) ํ˜„์ƒ์ด ๋ฐœ์ƒํ•ด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋” ์ด์ƒ ๋™์ž‘ํ•˜์ง€ ๋ชปํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ(์ž๋ฐ” JVM)์ด ์ข…๋ฃŒ๋˜๋Š” ์ตœ์•…์˜ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. 1. C++1) RAII(Resource Acquisition Is Initialization)RAII์€ ์ง์ ‘ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๋ฅผ ํ•ด์ค˜์•ผ ํ•˜๋Š” ์–ธ์–ด์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์„ค๊ณ„ ํŒจํ„ด์ด๋‹ค. ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์˜ ์‚ฌ์šฉ์ด ๋๋‚ฌ์„ ๋•Œ ์ž๋™์œผ๋กœ ํ•ด์ œ๋ฅผ ํ•ด์ฃผ๋ฉฐ exception์ด ๋ฐœ์ƒํ•ด๋„ ํš๋“ํ•œ ์ž์›์ด ํ•ด์ œ๋จ์„ ๋ณด์žฅํ•œ๋‹ค. 2) ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ(Smart Pointer)C++์˜ RAII..