์๋ฌธ ๊ฐ๋ฐ์ ๊ณต๋ถํ๊ณ ์ธํด์ผ๋ก ์ฒซ ํ์ฌ์ ๊ฐ์ ๋, ์ฌ์๊ป ์ถ์ฒ๋ฐ์ ์ฑ ์ด ์๋ค. ๋ก๋ฒํธ ๋งํด์ด ์ ์ํ [ ํด๋ฆฐ ์ฝ๋ ] ์ด๋ค. ์ด ์ฑ ์ ๊ฐ๋ฐ ๊ธฐ์ ์ ๊ดํ ๋ด์ฉ๋ ๋ฌผ๋ก ์์ง๋ง, ๊ฐ๋ฐ์ ํ ๋ ์ด๋ค ๋ง์๊ฐ์ง์ ๊ฐ์ ธ์ผ ๋์ ๋๋ฃ๋ค ๋ฐ ์ดํด๊ด๊ณ์ ์๋ ์ฌ๋๋ค์๊ฒ ์ข์ ์ง๋ฅผ
ํธ๋ผ์ด (trie, ์ ๋์ฌ ํธ๋ฆฌ)๋ณด์ด์ด-๋ฌด์ด ๋ฌธ์์ด ๊ฒ์์ปค๋์ค-๋ชจ๋ฆฌ์ค-ํ๋ซ ๋ฌธ์์ด ๊ฒ์ (KMP ์๊ณ ๋ฆฌ์ฆ)๋ผ๋น-์นดํ ๊ฒ์ํธ๋ผ์ด๋ ํธ๋ฆฌ๊ตฌ์กฐ์ด๋ค. ์ ์ฅ๋ ๋ฌธ์์ด ์ค ํ์ฌ ๊ฒ์ํ ๋ฌธ์์ด๊ณผ ์ผ์นํ๋ ๋ฌธ์์ด์ด ์๋์ง ํ์ธํ ๋ ์ฌ์ฉ๋๋ค.๊ฐ ๋จ๊ณ์์ ๋ ธ๋๋ ๋จ์ด๋ฅผ ์์ฑํ๊ธฐ ์ํด
๊ทธ๋ํ: ๊ฐ์ฒด ๊ฐ์ ์ฐ๊ฒฐ์ ์๊ฐ์ ์ผ๋ก ๋ํ๋ด๋ ์๋ฃ๊ตฌ์กฐ๊ทธ๋ํ๋ ๊ฐ์ฒด ๊ฐ์ ์ฐ๊ฒฐ๊ณผ ๊ด๊ณ๋ฅผ ๋ค์ํ๊ฒ ๋ํ๋ผ ์ ์๋ ์๋ฃ ๊ตฌ์กฐ์ด๋ค.๊ทธ๋ํ ์๊ณ ๋ฆฌ์ฆ(์ํ, ๊ฒ์, ์ ๋ ฌ ๋ฑ)์ ํตํด ๋ ๊ทธ๋ํ๋ ธ๋ ๊ฐ์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋ฑ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ๊ทธ๋ํ๋ฅผ ์ ์ฉํ ์ฌ๋ก๋ ๋ค
ํ: O(1) ์๊ฐ์ ๊ฐ์ฅ ๋์ ํญ๋ชฉ์ด๋ ๊ฐ์ฅ ๋ฎ์ ํญ๋ชฉ์ ๋ฐํํ๋ ์๋ฃ๊ตฌ์กฐํ์ ํธ๋ฆฌ์ ๋น์ทํ ์๋ฃ๊ตฌ์กฐ์ ์ผ์ข ์ด๋ค. ์ต๋ ํ์ ๋ถ๋ชจ ๋ ธ๋๊ฐ ์์๋ณด๋ค ํฌ๊ณ , ์ต์ ํ์ ๋ถ๋ชจ ๋ ธ๋๊ฐ ์์๋ณด๋ค ์์ ๊ฒ์ ์ด๋ฅธ๋ค. ํ์ ์๋ฃ๋ฅผ ์ ๋ ฌํ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉํ๋ค. ๋ํ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์
ํธ๋ฆฌ: ์์ ๋ ธ๋๋ฅผ ์ง๋ ํธ๋ฆฌ ํํ์ ์๊ณ ๋ฆฌ์ฆ ๊ตฌ์กฐ๋ฃจํธ ๋ ธ๋: ์ฒซ ๋ฒ์งธ์ด์ ๊ฐ์ฅ ์์ ๋ ธ๋ํธ๋ฆฌ ๊ตฌ์กฐ๋ ์์ ๋ ธ๋๋ฅผ ์ผ๋ง๋ ์ง ๊ฐ์ง ์ ์๋ค. ์ด์ง ํธ๋ฆฌ: ์์ ๋ ธ๋๊ฐ ์ผ์ชฝ, ์ค๋ฅธ์ชฝ ์ด ๋ ๊ฐ ๋ฟ์ธ ํธ๋ฆฌ์ด์ง ํธ๋ฆฌ์๋ ํญ์ ๋ฃจํธ ๋ ธ๋๊ฐ ์๋ค. ์ผ์ชฝ ํฌ์ธํฐ์ ์ค๋ฅธ์ชฝ ํฌ์ธํฐ๋ฅผ
์บ์ฑ: ์๋ฃ๋ฅผ ์์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ ๊ณผ์ ์ฅ์ : ํด๋น ์๋ฃ๊ฐ ๋ค์ ํ์ํ ๋ ์ฝ๊ฒ ์ป์ ์ ์๋ค. ์ฌ์ฉ ์์: DB ์์คํ ์ด ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํด ํ๋ ๋๋ผ์ด๋ธ๋ฅผ ๋ค์ ์ฝ๋ ์์ ์ ํผํ๋ค.์น ๋ธ๋ผ์ฐ์ ๊ฐ ์น ํ์ด์ง๋ฅผ ์บ์ฑํด ์ฝํ ์ธ ๋ฅผ ๋ค์ ๋ค์ด๋ก๋ํ๋ ์์ ์ ํผํ๋ค. ์บ์ฑ ์ฌ์ฉ
์ฐ๊ฒฐ ๋ฆฌ์คํธ(linked list): ์คํ ์๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ฑฐ๋ ํด์ ํ ์ ์๋ ๋์ ์๋ฃ ๊ตฌ์กฐ. ๊ฐ ๋ ธ๋๊ฐ ๋ค์ ๋ ธ๋์ ๋ํ ์ฐธ์กฐ๋ฅผ ๊ฐ๋ ์ ์ด ํน์ง์ด๋ค.๋จ์ผ ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Singly Linked list)์ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Doubly Linked list)๋ก
์คํ๊ณผ ํ๋ ๊ฐ ํ์ ์ ์ถ, ์ ์ ์ ์ถ์ ๋ฐ๋ฅด๋ฉฐ ์ฝ์ ๋ฐ ์ญ์ ์๋๊ฐ ๋น ๋ฅด๋ค๋ ์ฅ์ ์ด ์๋ค. ์ด์ ์ ์คํ๊ณผ ํ์ ๋ํด ์์ฑํ ๋ธ๋ก๊ทธ ๊ธ์ด ์๊ธฐ์ ์ด ๊ธ์์๋ ์๋ก ์๊ฒ ๋ ๊ฐ๋ ๊ณผ ์ฐ์ต๋ฌธ์ ๋ง์ ๊ธฐ๋กํ๋ ค ํ๋ค.peeking: ๋ค์ฌ๋ค ๋ณด๋ ๊ฒ. ์๋ฃ ๊ตฌ์กฐ์์ ํน์ ํญ๋ชฉ์ ์ ๊ฑฐํ
ํด์ ํ ์ด๋ธ: ํค๋ฅผ ๊ฐ์ ๋งคํํ ์ ์๋ ๊ณ ์ ๋ ํฌ๊ธฐ์ ์๋ฃ๊ตฌ์กฐํน์ง:์๋ฃ๋ฅผ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์ ์ฅํ ์ ์๋ค. key-value pair๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ฃ๋ฅผ ์ป์ ์ ์๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์ localStorage๊ฐ ํด์ ํ ์ด๋ธ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค.ํด์ ํจ์๋ฅผ ํตํด ํน
๊ฒ์: ํน์ ๋ฐ์ดํฐ๋ฅผ ์ป๊ธฐ ์ํด ์๋ฃ ๊ตฌ์กฐ์ ํญ๋ชฉ์ ๋ฐ๋ณต์ ์ผ๋ก ์ ๊ทผํ๋ ๊ฒ์ ๋ ฌ: ์๋ฃ ๊ตฌ์กฐ์ ํญ๋ชฉ์ ์์๋๋ก ์์น์ํค๋ ๊ฒ์ ๋ ฌ๋ ์๋ฃ์ ์ ๋ ฌ๋์ง ์์ ์๋ฃ ๋ชจ๋์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. (์ ์ฐํ ์ฌ์ฉ)์ด์ง ๊ฒ์์ ๋นํด ์๊ฐ ๋ณต์ก๋๊ฐ ๋๋ค.๋ฐฐ์ด์ ๊ฐ ํญ๋ชฉ์ ํ ์ธ๋ฑ์ค์ฉ ์์ฐจ์ ์ผ
์๋ฐ์คํฌ๋ฆฝํธ์ ๊ธฐ๋ณธ ์๋ฃํ์ธ String์๋ ๋ค์ํ ๋ฌธ์์ด ๋ฉ์๋๊ฐ ์กด์ฌํ๋ค. The String object's charAt() method returns a new string consisting of the single UTF-16 code unit located
\+ - / \* %(์์ ์ฐ์ฐ๋ค์ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ์์๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ค.)์๋ฐ์คํฌ๋ฆฝํธ๋ ์ซ์์ ๋ํด 64๋นํธ ๋ถ๋์์์ ํํ์ ์ฌ์ฉํ๋ค. ๋ถํธ ๋นํธ๊ฐ 0์ด๋ฉด 0๋๋ ์์๋ฅผ ๋ํ๋ด๊ณ , ๋ถํธ ๋นํธ๊ฐ 1์ด๋ฉด ์์๋ฅผ ๋ํ๋ธ๋ค. ์ง์๋ถ๋ ์ง์ ๊ฐ e๋ฅผ ๋ํ๋ธ๋ค. ๊ฐ์๋ถ๋
App: MessageTransport: Segment => Header, data (data ๋ถ๋ถ์ App์ Message๊ฐ ๋ค์ด๊ฐ๋ค.)Network: Packet => Header, data (data ๋ถ๋ถ์ Transport์ Segment๊ฐ ๋ค์ด๊ฐ๋ค.)Link:
์ ํ์ฌํญ: s๋ ๊ธธ์ด๊ฐ 1 ์ด์, 100์ดํ์ธ ์คํธ๋ง์ ๋๋ค.ํ๊ณ ๋ค๋ฅธ ๋ถ๋ค์ ํ์ด๋ฅผ ๋ณด๋, substr์ด๋ผ๋ ๋ฉ์๋๋ฅผ ์๋ก ์๊ฒ ๋์๋ค. ์ด ๋ฉ์๋๋ฅผ ํ์ฉํด์ ์ ํ ์กฐ๊ฑด: n์ 1์ด์ 8000000000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.์ฒ์์๋ ๋ฒ๋ธ์ ๋ ฌ ํ์์ผ๋ก ํ๊ณ ์ ์ถํ๋ค. ์ด
์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด ํน์ง ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํด๋์ค ๊ธฐ๋ฐ๊ณผ ํ๋กํ ํ์ ๊ธฐ๋ฐ์ผ๋ก ๋๋ ์ ์๋ค. ํด๋์ค ๊ธฐ๋ฐ ์ธ์ด(Java, C++, C#, Python, PHP, Ruby, Object-C)๋ ํด๋์ค๋ก ๊ฐ์ฒด์ ์๋ฃ๊ตฌ์กฐ์ ๊ธฐ๋ฅ์ ์ ์ํ๊ณ ์์ฑ์๋ฅผ ํตํด ์ธ์คํด์ค๋ฅผ ์์ฑ
TCP๋ Network ์ํ์ ๋ฐ๋ผ ๋ฐ์ดํฐ ์ ์ก ์๋๋ฅผ ๋์ด๊ฑฐ๋ ๋ฎ์ถ๋ค. ์ด ํ๋์ ๋จ์ ์ํ ๊ฒ์ด ์๋ ๋ ์์ ์ ์ํ ๊ฒ์ด๋ค. (๋ฌด์กฐ๊ฑด์ ์ผ๋ก ์ ์ก ์๋๋ฅผ ๋์ฌ Network๊ฐ ๋งํ๋ค๋ฉด ๋ชจ๋ ํ๋ ์ผ์ด ๋๊ธฐ์)Network ์ํ์ ๋ํ ์ง์ ์ ์ธ ํผ๋๋ฐฑ์ด ์๊ธฐ ๋๋ฌธ์
์ถ์ฒ: <์๋ฐ์คํฌ๋ฆฝํธ๋ก ํ๋ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ>๋น ์ค ํ๊ธฐ๋ฒ: ์๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ๋ํ๋ด๋ ํ๊ธฐ๋ฒ. ์๊ณ ๋ฆฌ์ฆ์ ์ต์ ์ ๊ฒฝ์ฐ ๋ณต์ก๋๋ฅผ ์ธก์ ํ๋ค. ๋น ์ค ํ๊ธฐ๋ฒ์ ํตํด ์คํ ์๊ฐ๊ณผ ์ฌ์ฉ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด์ ์์ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ์ ๋ถ์ํ ์ ์๋ค. ๋น ์ค ํ๊ธฐ๋ฒ์์ n์ ์ ๋ ฅ์ ๊ฐ์๋ฅผ
ํ๋ก๊ทธ๋๋ฐ: ์ปดํจํฐ๊ฐ ์ผ์ ์ํํ๋๋ก ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ํ๋ก๊ทธ๋จ(๋ช ๋ น์ด ์งํฉ)์ ๋ง๋๋ ์์ ์ปดํ์ผ: ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ปดํจํฐ๊ฐ ์คํ ๊ฐ๋ฅํ ๊ธฐ๊ณ์ด๋ก ๋ง๋๋ ์์ ์ปดํ์ผ๋ฌ: ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ณํํ๋ ํ๋ก๊ทธ๋จ (์\_ ์๋ฐ ์ปดํ์ผ๋ฌ, gcc ๋ฑ)JDK(Java D
์ฐ๊ฒฐ๋ ๋ TCP ์ฌ์ด๋ฅผ TCP connection์ด๋ผ๊ณ ํ๋ค.๊ฐ TCP๋ send buffer์ receive buffer๋ฅผ ๊ฐ์ง๊ณ ์๋ค.TCP์์ ๊ฐ์ฅ ์ค์ํ 3 ๊ฐ์งreliable data transferflow controlcongestion controlflo