๐ป Computer Science
์ด๋ถ ํ์(Binary Search)
์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ๋ฐฐ์ด์์ ์ํ๋ ์ซ์(target)์ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ๋ฐฐ์ด ์ ์ฒด์ ์ค๊ฐ๊ฐ์ target ๊ฐ๊ณผ ๋น๊ต ์ค๊ฐ๊ฐ์ด target ๊ฐ๋ณด๋ค ํฌ๋ฉด ์ผ์ชฝ ๋ถ๋ถ๋ง ์ ํ ์ผ์ชฝ๋ถ๋ถ์ ์ค๊ฐ๊ฐ์ ๋ค์ target ๊ณผ ๋น๊ต ์ ๋ฐฉํฅ์ผ๋ก ํธ๋ ๋ฐฉ๋ฒ๊ณผ ์ฌ๊ท๋ก ํธ๋ ๋ฐฉ๋ฒ ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ์ ๋ฐฉํฅ๋ ์ด๋ป๊ฒ ๋ณด๋ฉด ๊ฐ๋ ์ ์ผ๋ก๋ ์ฌ๊ท๋ก ํธ๋ ๋ฐฉ๋ฒ๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ฐ๋ ์ ๋ ฌ๋ ์๋ฃ๋ฅผ ๋ฐ์ผ๋ก ๋๋์ด ํ์ํ๋ ๋ฐฉ๋ฒ ์ฃผ์์ : ์๋ฃ๋ ์ค๋ฆ์ฐจ์ ์ผ๋ก ์ ๋ ฌ๋ ์๋ฃ์ฌ์ผ ํ๋ค. ์ด์งํธ๋ฆฌ, ๋ฐ์ด๋๋ฆฌ์์น๋ ์ฝ๋ฉ ์ธํฐ๋ทฐ ๋จ๊ณจ๋ฌธ์ ํผํฌ๋จผ์ค๊ฐ ์์ฃผ ์ข๊ณ ๊ตฌํํ๋ ์ค์ dynamic programming, recursion์ ๋ณผ ์ ์๋ค. ํน์ง linear search (์์ฐจ๊ฒ์) : ์์๋๋ก ์ฐพ๋๋ค. ์ฑ๋ฅํ๊ฐ์ ๋น๊ต๋์์ผ๋ก ์ฌ์ฉํ๋ค. ..
๋์ ๊ณํ๋ฒ(Dynamic Programming)
๋ณต์กํ ๋ฌธ์ ๋ฅผ ๊ฐ๋จํ ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์ ๋ก ๋๋์ด ํธ๋ ๋ฐฉ๋ฒ ํํ ๋งํ๋ DP๊ฐ ๋ฐ๋ก '๋์ ๊ณํ๋ฒ' ํ ๊ฐ์ง ๋ฌธ์ ์ ๋ํด์, ๋จ ํ ๋ฒ๋ง ํ๋๋ก ๋ง๋ค์ด์ฃผ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ฆ, ๋๊ฐ์ ์ฐ์ฐ์ ๋ฐ๋ณตํ์ง ์๋๋ก ๋ง๋ค์ด์ค๋ค. ์คํ ์๊ฐ์ ์ค์ด๊ธฐ ์ํด ๋ง์ด ์ด์ฉ๋๋ ์ํ์ ์ ๊ทผ ๋ฐฉ์์ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ํ ์ ์๋ค. ๋์ ๊ณํ๋ฒ์ Optimal Substructure์์ ํจ๊ณผ๋ฅผ ๋ฐํํ๋ค. Optimal Substructure : ๋ต์ ๊ตฌํ๊ธฐ ์ํด ์ด๋ฏธ ํ๋ ๋๊ฐ์ ๊ณ์ฐ์ ๊ณ์ ๋ฐ๋ณตํ๋ ๋ฌธ์ ๊ตฌ์กฐ ์ ๊ทผ ๋ฐฉ์ ์ปค๋ค๋ ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํด๊ฒฐํ๊ธฐ ์ํด ์๊ฒ ์ชผ๊ฐ์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ธ ๋ถํ ์ ๋ณต๊ณผ ๋งค์ฐ ์ ์ฌํ๋ค. ํ์ง๋ง ๊ฐ๋จํ ๋ฌธ์ ๋ก ๋ง๋๋ ๊ณผ์ ์์ ์ค๋ณต ์ฌ๋ถ์ ๋ํ ์ฐจ์ด์ ์ด ์กด์ฌํ๋ค. ๋ชจ๋ ๋ต์ ๋ง๋ค์ด๋ณด๊ณ ๊ทธ ์ค ์ต์ ํด์ ์ ์๋ฅผ ๋ฐํ..
ํ๋ก๊ทธ๋๋ฐ
์ ์ฐ ๊ธฐ๋ณธ ๊ฐ์ฒด์งํฅ์ด ๋ฌด์์ธ๊ฐ์? ์ ์ฐจ์งํฅ๊ณผ์ ์ฐจ์ด์ ์ ๋ญ์ฃ ? ๊ฐ์ฒด์งํฅ 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๊ฐ์ง ์์น์ ํฌํจํด์ ์ค๋ช ํด ์ฃผ์ธ์. ํธ๋์ญ์ ์ ๊ฒฉ๋ฆฌ ์์ค๊ณผ ๊ฐ ์์ค์์ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ๋ค์ ๋ํด ๋งํด๋ณด์ธ์. ๊ณต์ ๋ฝ๊ณผ ๋ฐฐํ ๋ฝ์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ์? ๋ฐ๋๋ฝ์ด๋ ๋ฌด์์ด๋ฉฐ, ์ด๋ป๊ฒ ๋ฐ์ํ ๊น์?
Network
์ ์ฐ ๊ธฐ๋ณธ OSI 7๊ณ์ธต์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์. TCP/IP 4๊ณ์ธต์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์. DNS๊ฐ ๋ฌด์์ธ๊ฐ์? ๋๋ฉ์ธ ์ด๋ฆ์ผ๋ก ์ค์ IP๋ฅผ ์ด๋ป๊ฒ ์ฐพ์ ์ ์๋์ง ํ๋ฆ์ ์ค๋ช ํด ์ฃผ์ธ์. TCP/UDP TCP์ UDP์ ์ฐจ์ด์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์. TCP ํค๋์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์. MTU๊ฐ ๋ฌด์์ธ๊ฐ์? 3-way hand shake, 4-way hand shake ํ๋ฆ์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์. HTTP HTTP ํ๋กํ ์ฝ์ ๋ํด์ ์๋๋๋ก ๋งํด์ฃผ์ธ์. HTTP์ HTTPS ์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ์? HTTPS๊ฐ ๋์ํ๋ ๋ฐฉ์์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์. HTTP 1.0๊ณผ 1.1์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ์? HTTP2์ ๊ทธ ํน์ง์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์. HTTP ํค๋์ ๊ตฌ์กฐ์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์. keep-alive..
[mysql] auto increment ์ด๊ธฐํ
mysql์์๋ auto increment๋ฅผ ์ด๊ธฐํ ํ๋๋ฐ ์์ด์ ๊ทธ๋ฅ oracle ์ํ๊ณ ๋ ๋ค๋ฅธ ๊ฒ ๊ฐ๋ค. ์ค์ ๋ก๋ ์ด์์ ๋ช ๋ น์์ด ๋จนํ์ง ์๋๋ค. ์๋ mysql์ด์ฌ์ ๊ทธ๋ฐ ๊ฑฐ ์ธ๊ฐ ๋ณด๋ค. ๊ทธ๋์ ๋ฐ์ ์์ ์ฌ์ฉํด๋ณด์. ์ ๋ฆฌ docker์์ mysql๋ฒ์ ผ์ด 5.7์ธ๋ฐ ์ต์ ๋ฒ์ ผ์ ๋ค์ด๋ฐ์์ ํ์ธํด๋ณด์. ํ์ธํด๋ณด๊ณ ์๋๋์ง ํ๋จํ์
UML์ด๋?
๋ชฉ์ฐจ 01 UML์์ดํด 02 ์ ์ค์ผ์ด์ค ๋ค์ด์ด๊ทธ๋จ 03 ํด๋์ค๋ค์ด์ด๊ทธ๋จ 04 ์์ฐจ๋ค์ด์ด๊ทธ๋จ 05 ํต์ ๋ค์ด์ด๊ทธ๋จ 06 ํ๋๋ค์ด์ด๊ทธ๋จ 07 ์ํ๋ค์ด์ด๊ทธ๋จ 08 ์ปดํฌ๋ํธ๋ค์ด์ด๊ทธ๋จ 09 ๋ฐฐ์น๋ค์ด์ด๊ทธ๋จ 10. Object Modeling Technique(OMT) 01. UML์ ์ดํด UML์์ญํ •์ํํธ์จ์ด์ ์ ์ฒด๋ฅผ ํ๋จํ ์ ์๋๋ก 12๊ฐ์ ๋ค์ด์ด๊ทธ๋จ์ ์ ์ • ์์คํ ์ด ์ํธ์์ฉํ๋ ์ธก๋ฉด ,์์คํ ์ ์ฒด ๊ตฌ์กฐ์ธก๋ฉด , ์ปดํฌ๋ํธ ๊ฐ์ ๊ด๊ณ๋ฑ์ ์๊ฐ์ ์ผ๋ก ๋ณผ ์ ์๊ฒ ๋ํ๋ธ ๋๋ฉด UML์ ์ดํด 1980๋ ๋ ๋ง๋ถํฐ 1990๋ ๋ ์ด์ ๊ฐ์ฒด์งํฅ์ผ๋ก ๋ชจ๋ธ๋ง ํ๋ ๊ณผ์ ๊ณผ ๋ชจ๋ธ๋ง ์ธ์ด ์ถํ ์ค๊ณ์ ํํ ๋ฐฉ๋ฒ์ ๊ธ์ฆ์ผ๋ก ํผ๋์ ์ด๋ 03. ํด๋์ค ๋ค์ด์ด๊ทธ๋จ ํด๋์ค๋ค์ด ์๋ก ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋์ด ์๊ณ ์ด๋ค ์ญํ ์ ํ๋์ง ๋ค์ด์ด ๊ทธ๋จ์ผ๋ก..