๐Ÿ’ป Computer Science/CS interview

    ํ”„๋กœ๊ทธ๋ž˜๋ฐ

    ์ „์‚ฐ ๊ธฐ๋ณธ ๊ฐ์ฒด์ง€ํ–ฅ์ด ๋ฌด์—‡์ธ๊ฐ€์š”? ์ ˆ์ฐจ์ง€ํ–ฅ๊ณผ์˜ ์ฐจ์ด์ ์€ ๋ญ์ฃ ? ๊ฐ์ฒด์ง€ํ–ฅ SOLID ์›์น™์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๊ฐ์ฒด์ง€ํ–ฅ 4๊ฐ€์ง€ ํŠน์ง•์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๋Œ€ํ‘œ์ ์ธ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์—๋Š” ์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ๋‚˜์š”? ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ๋ณ€์ˆ˜์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. AOP๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? ์ปดํŒŒ์ผ๋Ÿฌ์™€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? ์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? 1๊ธ‰ ๊ฐ์ฒด์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. JAVA ๊ธฐ๋ณธ Java ์ ‘๊ทผ ์ œ์–ด์ž์— ๋Œ€ํ•ด์„œ ๊ฐ๊ฐ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. JVM์˜ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. Garbage Collector ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋‚˜์š”? GC์˜ ์ข…๋ฅ˜์— ๋Œ€ํ•ด์„œ ๋งํ•ด๋ณด์„ธ์š”. Java ๋ฒ„์ „ ๋ณ„ ํŠน์„ฑ์— ๋Œ€ํ•ด์„œ ์•„๋Š”๋Œ€๋กœ ๋งํ•ด์ฃผ์„ธ์š”. Jav..

    ์ž๋ฃŒ๊ตฌ์กฐ

    ์ „์‚ฐ ๊ธฐ๋ณธ ๋ฐฐ์—ด๊ณผ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ์Šคํƒ๊ณผ ํ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ํ•ด์‹œํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ํŠธ๋ฆฌ ํฌํ™”(Perfect) ์ด์ง„ํŠธ๋ฆฌ, ์™„์ „(Complete) ์ด์ง„ํŠธ๋ฆฌ, ์ •(Full) ์ด์ง„ํŠธ๋ฆฌ์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ๊ฐ๊ฐ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. ๊ทธ๋ž˜ํ”„์™€ ํŠธ๋ฆฌ์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ํž™์˜ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๋Š” ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ง€๋‚˜์š”? ๋ ˆ๋“œ ๋ธ”๋ž™ ํŠธ๋ฆฌ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. ๋ ˆ๋“œ ๋ธ”๋ž™ ํŠธ๋ฆฌ์˜ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ ๊ณผ์ •์— ๋Œ€ํ•ด์„œ ๋งํ•ด๋ณด์„ธ์š”. B-Tree์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

    ์•Œ๊ณ ๋ฆฌ์ฆ˜

    ์ „์‚ฐ ๊ธฐ๋ณธ ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š” ํŒฉํ† ๋ฆฌ์–ผ(factorial)์„ ๊ตฌํ˜„ํ•ด ๋ณด์„ธ์š”(์†์ฝ”๋”ฉ). ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด ๊ตฌํ˜„ ๋ฐฉ์‹ ์„ธ ๊ฐ€์ง€๋ฅผ ๋งํ•ด๋ณด์‹œ๊ณ , ์‹œ๊ฐ„๋ณต์žก๋„์™€ ๊ณต๊ฐ„๋ณต์žก๋„๋ฅผ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. BFS/DFS ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ์€ํ–‰์› ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ์ •๋ ฌ ์ •๋ ฌ์˜ ์ข…๋ฅ˜์—๋Š” ์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ๋‚˜์š”? ์‚ฝ์ž… ์ •๋ ฌ์ด ์ผ์–ด๋‚˜๋Š” ๊ณผ์ •์„ ์„ค๋ช…ํ•ด ๋ณด์„ธ์š”. ํ€ต ์ •๋ ฌ์ด ์ผ์–ด๋‚˜๋Š” ๊ณผ์ •์„ ์„ค๋ช…ํ•ด ๋ณด์„ธ์š”. 54321 ๋ฐฐ์—ด์ด ์žˆ์„ ๋•Œ, ์–ด๋–ค ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„๊นŒ์š”? ๋žœ๋ค์œผ๋กœ ๋ฐฐ์น˜๋œ ๋ฐฐ์—ด์ด ์žˆ์„๋•Œ, ์–ด๋–ค ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„๊นŒ์š”? ์ž๋ฆฟ์ˆ˜๊ฐ€ ๋ชจ๋‘ ๊ฐ™์€ ์ˆ˜๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด์ด ์žˆ์„ ๋•Œ, ์–ด๋–ค ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„๊นŒ์š”?

    OS

    ๊ธฐ๋ณธ๊ฐœ๋… ์šด์˜์ฒด์ œ๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? ์šด์˜ ์ฒด์ œ๋Š” ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด๊ฐ€ ์ปดํ“จํ„ฐ ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ†ต์‹ ํ•˜๊ณ  ์ž‘๋™ํ•˜๋„๋กํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ์šด์˜์ฒด์ œ์˜ ์ฃผ์š” ๋ชฉ์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”? 1. ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ๊ณ„์‚ฐ ํ™œ๋™์„ ๊ด€๋ฆฌํ•˜์—ฌ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋„๋ก ํ•œ๋‹ค. 2. ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ๋ฐ ์‹คํ–‰์„ ์œ„ํ•œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ํ”„๋กœ์„ธ์Šค๋ผ๊ณ  ํ•œ๋‹ค. ์šด์˜ ์ฒด์ œ ํ”„๋กœ์„ธ์Šค, ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๋‹ค. ํ”„๋กœ์„ธ์Šค์˜ ํŠน์ง•์€ ๋ฌด์—‡์ธ๊ฐ€์š”? ์Šค๋ ˆ๋“œ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? ์Šค๋ ˆ๋“œ์˜ ํŠน์ง•์€ ๋ฌด์—‡์ธ๊ฐ€์š”? ํ”„๋กœ์„ธ์Šค Q1.ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? ํ”„๋กœ์„ธ์Šค๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ๋งํ•˜๋ฉฐ, ์Šค๋ ˆ๋“œ๋Š” ์ด ํ”„๋กœ์„ธ์Šค ์•ˆ์—์„œ ์‹คํ–‰๋˜๋Š” ํ๋ฆ„ ๋‹จ์œ„๋ฅผ ๋งํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ์ตœ์†Œ ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋ฅผ ๋ณด์œ ..

    DB

    ์ „์‚ฐ ๊ธฐ๋ณธ JOIN์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๋‚ด๋ถ€ ์กฐ์ธ๊ณผ ์™ธ๋ถ€ ์กฐ์ธ์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? ์ •๊ทœํ™”์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ํŒŒํ‹ฐ์…”๋‹๊ณผ ์ƒค๋”ฉ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ORM์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? NoSQL์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? ์Šคํ‚ค๋งˆ๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? ์ธ๋ฑ์Šค ์ธ๋ฑ์Šค๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? ์–ด๋–ป๊ฒŒ ๋™์ž‘ ํ•˜๋‚˜์š”? ์ธ๋ฑ์Šค์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—๋Š” ์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ๋‚˜์š”? Table Full Scan๊ณผ Index Range Scan ์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. ํŠธ๋žœ์žญ์…˜ ํŠธ๋žœ์žญ์…˜์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? 4๊ฐ€์ง€ ์›์น™์„ ํฌํ•จํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€๊ณผ ๊ฐ ์ˆ˜์ค€์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋“ค์— ๋Œ€ํ•ด ๋งํ•ด๋ณด์„ธ์š”. ๊ณต์œ  ๋ฝ๊ณผ ๋ฐฐํƒ€ ๋ฝ์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? ๋ฐ๋“œ๋ฝ์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ, ์–ด๋–ป๊ฒŒ ๋ฐœ์ƒํ• ๊นŒ์š”?