์ฑ ๋ฆฌ๋ทฐ (10) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [ํด๋ฆฐ์ฝ๋] 6. ๊ฐ์ฒด์ ์๋ฃ ๊ตฌ์กฐ ์ฝ์ ๋ ์ง : 2024.09.04์ง์์ด : ๋ก๋ฒํธ C. ๋งํด์ถํ์ฌ : ์ธ์ฌ์ดํธ โ๏ธ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ1. ์๋ฃ ์ถ์ํ๋ณ์๋ฅผ private์ผ๋ก ์ ์ธํ๋๋ผ๋ ๊ฐ ๊ฐ๋ง๋ค getter, setter๋ฅผ ์ ๊ณตํ๋ค๋ฉด ๊ตฌํ์ ์ธ๋ถ๋ก ๋ ธ์ถํ๋ ๊ฒ์ด๋ค.ํด๋์ค๋ ์ถ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํด์ ์ฌ์ฉ์๊ฐ ๊ตฌํ์ ๋ชจ๋ฅธ ์ฑ ์๋ฃ์ ํต์ฌ์ ์กฐ์ํ ์ ์์ด์ผ ํ๋ค. 2. ์๋ฃ ๊ตฌ์กฐ vs ๊ฐ์ฒด์๋ฃ ๊ตฌ์กฐ : ์๋ฃ๋ฅผ ๊ณต๊ฐํ๊ณ ์๋ฌด ๋ฉ์๋๋ ์ ๊ณตํ์ง ์๋๋ค.public class Square { public Point topLeft; public double side;}public class Rectangle { public Point topLeft; public double height; public double width.. [ํด๋ฆฐ์ฝ๋] 5. ํ์ ๋ง์ถ๊ธฐ ์ฝ์ ๋ ์ง : 2024.08.29์ง์์ด : ๋ก๋ฒํธ C. ๋งํด์ถํ์ฌ : ์ธ์ฌ์ดํธ โ๏ธ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ์ ํ์์ ๋ง์ถฐ์ผ ํ๋๊ฐ?์ฝ๋ ํ์์ ์์ฌ์ํต์ ์ผํ์ด๋ค.์ฝ๋๋ ๋ฐ๋์ง๋ผ๋ ์ฒ์ ์ก์๋์ ๊ตฌํ ์คํ์ผ๊ณผ ๊ฐ๋ ์ฑ ์์ค์ ์ฌ๋ผ์ง์ง ์๋๋ค.์์ผ๋ก ๋ฐ๋ ์ฝ๋์ ํ์ง์ ์ง๋ํ ์ํฅ์ ๋ฏธ์น๋ค. ์ํต์ ์ํํ๊ฒ ํ๋ ์ฝ๋ ํ์ 1 : ์ธ๋ก ํ์ ๋ง์ถ๊ธฐ1. ์ ์ ํ ์ธ๋ก ๊ธธ์ด์ผ๋ฐ์ ์ผ๋ก ํฐ ํ์ผ๋ณด๋ค๋ ์์ ํ์ผ์ด ์ดํดํ๊ธฐ ์ฝ๋ค.์๊ฒฉํ๊ฒ ์งํฌ ํ์๋ ์์ง๋ง 200์ค ์ ๋๊ฐ ์ ๋นํ๋ค.2. ๋น ํ์ผ๋ก ๋ถ๋ฆฌํ๊ธฐ๋น ํ์ ์๋ก์ด ๊ฐ๋ ์ ์์ํ๋ค๋ ์๊ฐ์ ๋จ์์ด๋ค.์ผ๋ จ์ ํ ๋ฌถ์์ ์๊ฒฐ๋ ์๊ฐ ํ๋๋ฅผ ํํํ๋ค. ์๊ฐ ์ฌ์ด์๋ ๋น ํ์ ๋ฃ์ด ๋ถ๋ฆฌํ๋ค.ํจํค์ง ์ ์ธ๋ถ, import ๋ฌธ, ๊ฐ ํจ์ ์ฌ์ด์ ๋น ํ์ ๋ฃ์ด์ ๊ฐ๋ ์ฑ์ ๋์ด์... [ํด๋ฆฐ์ฝ๋] 4. ์ฃผ์ ์ฝ์ ๋ ์ง : 2024.08.27์ง์์ด : ๋ก๋ฒํธ C. ๋งํด์ถํ์ฌ : ์ธ์ฌ์ดํธ โ๏ธ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ์ฃผ์์ ๋์ ์ฝ๋๋ฅผ ๋ณด์ํ์ง ๋ชปํ๋ค์ฝ๋๋ง์ผ๋ก ์๋๋ฅผ ํํํ๋ ๊ฒ์ ์ฐ์ ์ผ๋ก ํด์ผ ํ๋ค.์ฃผ์์ด ๊ฑฐ์ ์๋ ์ฝ๋๊ฐ ๋ณต์กํ ์ฃผ์์ด ๋ง์ด ๋ฌ๋ฆฐ ์ฝ๋๋ณด๋ค ์ข๋ค. ์ข์ ์ฃผ์์ด๋?๋ฒ์ ์ธ ์ฃผ์ ์ ์๊ถ, ์์ ๊ถ ์ ๋ณด, ํ์ค ๋ผ์ด์ ์ค, ์ธ๋ถ ๋ฌธ์ ๋ฑ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์ฃผ์ํํ๋ ฅ ์๊ฒ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ํ์ ์์ด์ง ์ ์๋ค.โ ๊ตฌํ ์๋๋ฅผ ์ค๋ช ํ๋ ์ฃผ์ ์ธ์๋ ๋ฐํ๊ฐ์ ์๋ฏธ๋ฅผ ๋ช ๋ฃํ๊ฒ ๋ฐํ๋ ์ฃผ์โ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฝ๊ณ ํ๋ ์ฃผ์ ~ํ์ง ๋ง์ธ์, ~ํด์ผ ํฉ๋๋ค ๋ฑโ TODO ์ฃผ์ ์์ผ๋ก ํ ์ผ, ํ์ํ์ง๋ง ๋น์ฅ ๊ตฌํํ๊ธฐ ์ด๋ ค์ด ์ ๋ฌด ๋ฑโ ๊ทธ๋ฅ ๋์ด๊ฐ ์ ์๋ ๋ถ๋ถ์ ์ค์์ฑ์ ๊ฐ์กฐํ๋ ์ฃผ์ ๊ณต๊ฐ API์ Javadocs ๋์ ์ฃผ์์ด๋?์ฝ๋ .. [๊ฐ์ ๋ฉด์ ์ฌ๋ก๋ก ๋ฐฐ์ฐ๋ ๋๊ท๋ชจ ์์คํ ์ค๊ณ ๊ธฐ์ด] 5. ์์ ํด์ ์ค๊ณ ์ฝ์ ๋ ์ง : 2024.08.26์ง์์ด : ์๋ ์ค ์ฌ์ถํ์ฌ : ์ธ์ฌ์ดํธ โ๏ธ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉํด์ ํค ์ฌ๋ฐฐ์น(rehash) ๋ฌธ์ N๊ฐ์ ์บ์ ์๋ฒ๊ฐ ์์ ๋ ์๋ฒ๋ค์ ๋ถํ๋ฅผ ๊ท ๋ฑํ๊ฒ ๋๋๋ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์serverIndex = hash(key) % Nํน์ ํค๊ฐ ๋ณด๊ด๋ ์๋ฒ์ ์ธ๋ฑ์ค๋ฅผ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ด ๋ฐฉ๋ฒ์ ์๋ฒ ํ์ ํฌ๊ธฐ๊ฐ ๊ณ ์ ๋์ด ์์ ๋์ ๋ฐ์ดํฐ ๋ถํฌ๊ฐ ๊ท ๋ฑํ ๋๋ ์ ๋์ํ๋ค.๊ทธ๋ฌ๋ ์๋ฒ๊ฐ ์ถ๊ฐ๋๊ฑฐ๋ ๊ธฐ์กด ์๋ฒ๊ฐ ์ญ์ ๋๋ ๊ฒฝ์ฐ(์ฆ, N ๊ฐ์ด ๋ฐ๋), ์๋ฒ ์ธ๋ฑ์ค ๊ฐ์ด ๋ฐ๋๋ฉด์ ๋๊ท๋ชจ ์บ์ ๋ฏธ์ค(cache miss)๊ฐ ๋ฐ์ํ๋ค. ์์ ํด์(consistent hash)ํด์ ํ ์ด๋ธ ํฌ๊ธฐ๊ฐ ์กฐ์ ๋ ๋ ๊ฑฐ์ ๋๋ถ๋ถ์ ํค๋ฅผ ์ฌ๋ฐฐ์นํ๋ ์ ํต์ ์ธ ๋ฐฉ์๊ณผ ๋ฌ๋ฆฌ, ์์ ํด์๋ ํ๊ท ์ ์ผ๋ก k/n๊ฐ์ ํค๋ง ์ฌ๋ฐฐ์นํ๋.. [ํด๋ฆฐ์ฝ๋] 3. ํจ์ ์ฝ์ ๋ ์ง : 2024.08.26์ง์์ด : ๋ก๋ฒํธ C. ๋งํด์ถํ์ฌ : ์ธ์ฌ์ดํธ โ๏ธ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ์๋๋ฅผ ๋ถ๋ช ํ ํํํ๋ ํจ์๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ1. ์๊ฒ ๋ง๋ค์ด๋ผ๊ธธ์ด๊ฐ ์งง์์๋ก ์ข๋ค.2. ํ ๊ฐ์ง ์ผ๋ง ํด๋ผ์๋ฏธ ์๋ ์ด๋ฆ์ผ๋ก ๋ค๋ฅธ ํจ์๋ฅผ ์ถ์ถํ ์ ์๋ค๋ฉด ๊ทธ ํจ์๋ ์ฌ๋ฌ ์์ ์ ํ๋ ์ ์ด๋ค.3. ํ๋์ ํจ์ ๋ด์ ์ถ์ํ ์์ค์ ๋์ผํ๊ฒ ๋ง๋ค์ด๋ผ์ฝ๋๋ ์์์ ์๋๋ก ์ด์ผ๊ธฐ์ฒ๋ผ ์ฝํ์ผ ํ๋ค.์์์ ์๋๋ก ์ฝ์ ๋ ์ถ์ํ ์์ค์ด ํ ๋ฒ์ ํ ๋จ๊ณ์ฉ ๋ฎ์์ง๋ฉด ์ฝ๊ธฐ ์ฌ์์ง๋ค.4. Switch ๋ฌธ์ ์ถ์ ํฉํ ๋ฆฌ์ ์จ๊ฒจ๋ผ๊ฐ case ์กฐ๊ฑด์ ๋ํ ๊ตฌํ์ ์บก์ํํ๊ณ , ์ด๋ฅผ ์ถ์ ํฉํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ์ผ๋ก ์ ํํ ์ ์๋๋ก ํ๋ค.5. ์์ ์ ์ธ ์ด๋ฆ์ ์ฌ์ฉํด๋ผ๊ธธ๊ณ ์์ ์ ์ธ ์ด๋ฆ์ด ์งง๊ณ ์ด๋ ค์ด ์ด๋ฆ๋ณด๋ค ์ข๋ค.์์ ์ ์ธ ์ด๋ฆ์.. [๊ฐ์ ๋ฉด์ ์ฌ๋ก๋ก ๋ฐฐ์ฐ๋ ๋๊ท๋ชจ ์์คํ ์ค๊ณ ๊ธฐ์ด] 4. ์ฒ๋ฆฌ์จ ์ ํ ์ฅ์น์ ์ค๊ณ ์ฝ์ ๋ ์ง : 2024.08.20์ง์์ด : ์๋ ์ค ์ฌ์ถํ์ฌ : ์ธ์ฌ์ดํธ โ๏ธ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ์ฒ๋ฆฌ์จ ์ ํ ์ฅ์น๋ฅผ ๋๋ฉด ์ข์ ์ DoS(Denial of Service) ๊ณต๊ฒฉ์ ์ํ ์์ ๊ณ ๊ฐ ๋ฐฉ์ง์๋ฒ ๊ฐ์๋ ์๋ ํํฐ API ์ฌ์ฉ๋ฃ์ ๋ํ ๋น์ฉ ์ ๊ฐ๋ด(bot)์์ ์ค๋ ํธ๋ํฝ์ด๋ ์ฌ์ฉ์์ ์๋ชป๋ ์ด์ฉ ํจํด์ผ๋ก ์ ๋ฐ๋ ํธ๋ํฝ์ผ๋ก ์ธํ ์๋ฒ ๊ณผ๋ถํ ๋ฐฉ์ง 1๋จ๊ณ : ๋ฌธ์ ์ดํด ๋ฐ ์ค๊ณ ๋ฒ์ ํ์ ํด๋ผ์ด์ธํธ ์ธก ์ ํ ์ฅ์น์ธ๊ฐ, ์๋ฒ ์ธก ์ ํ ์ฅ์น์ธ๊ฐ?์๋ฒ ์ธก์ด๋ผ๋ฉด API ํธ์ถ์ ์ ์ดํ๋ ๊ธฐ์ค์? - IP ์ฃผ์, ์ฌ์ฉ์ ID ๋ฑ์์คํ ์ ๊ท๋ชจ๋?์์คํ ์ด ๋ถ์ฐ ํ๊ฒฝ์์ ๋์ํด์ผ ํ๋๊ฐ?์ฒ๋ฆฌ์จ ์ ํ ์ฅ์น๋ ๋ ๋ฆฝ์ ์ธ ์๋น์ค์ธ๊ฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์ ํฌํจ๋ ์ ์๋๊ฐ?์ฌ์ฉ์์ ์์ฒญ์ด ์ฒ๋ฆฌ์จ ์ ํ ์ฅ์น์ ์ํด ๊ฑธ๋ฌ์ง ๊ฒฝ์ฐ, .. [ํด๋ฆฐ์ฝ๋] 2. ์๋ฏธ ์๋ ์ด๋ฆ ์ฝ์ ๋ ์ง : 2024.08.19์ง์์ด : ๋ก๋ฒํธ C. ๋งํด์ถํ์ฌ : ์ธ์ฌ์ดํธ โ๏ธ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ์ด๋ฆ์ ์ ์ง๋ ๋ฐฉ๋ฒ1. ์๋๋ฅผ ๋ถ๋ช ํ๊ฒ ๋ฐํ๊ธฐ๋ณ์, ํจ์, ํด๋์ค ์ด๋ฆ์ผ๋ก ์กด์ฌ ์ด์ , ์ํ ๊ธฐ๋ฅ, ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋๋ฌ๋ผ ์ ์์ด์ผ ํ๋ค.๋ฐ๋ก ์ฃผ์์ด ํ์ํ๋ค๋ฉด ์๋๊ฐ ๋ถ๋ช ํ๊ฒ ๋๋ฌ๋์ง ์์ ๊ฒ์ด๋ค.์ฝ๋ ๋งฅ๋ฝ์ด ์ฝ๋ ์์ฒด์ ๋ช ์์ ์ผ๋ก ๋๋ฌ๋์ผ ํ๋ค.// Badint d; // ๊ฒฝ๊ณผ ์๊ฐ(๋จ์: ๋ ์ง)// Goodint daysSinceCreation;int daysSinceMotdification; 2. ์ฝ๋ ์๋ฏธ๋ฅผ ํ๋ฆฌ๋ ์๋ชป๋ ์ ๋ณด๋ฅผ ๋จ๊ธฐ์ง ์๊ธฐ๋๋ฆฌ ์ฐ์ด๋ ์๋ฏธ ์๋ ๋จ์ด๋ฅผ ๋ค๋ฅธ ์๋ฏธ๋ก ์ฌ์ฉํ๋ฉด ์ ๋๋ค.์ปจํ ์ด๋ ์ ํ์ ์ด๋ฆ์ ๋ฃ์ง ์๋ ๊ฒ์ด ์ข๋ค.accountList โก๏ธ accounts3. ์๋ฏธ.. [๊ฐ์ ๋ฉด์ ์ฌ๋ก๋ก ๋ฐฐ์ฐ๋ ๋๊ท๋ชจ ์์คํ ์ค๊ณ ๊ธฐ์ด] 2~3.๊ฐ๋ต์ ์ธ ๊ท๋ชจ ์ถ์ ~์์คํ ์ค๊ณ ๋ฉด์ ๊ณต๋ต๋ฒ ์ฝ์ ๋ ์ง : 2024.08.19์ง์์ด : ์๋ ์ค ์ฌ์ถํ์ฌ : ์ธ์ฌ์ดํธ โ๏ธ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ๊ฐ๋ต์ ์ธ ๊ท๋ชจ ์ถ์ (back-of-the-envelope estimatation)๋ณดํธ์ ์ผ๋ก ํต์ฉ๋๋ ์ฑ๋ฅ ์์น์์์ ์ฌ๊ณ ์คํ์ ํํ์ฌ ์ถ์ ์น๋ฅผ ๊ณ์ฐํ๋ ํ์์ด๋ค ์ค๊ณ๊ฐ ์๊ตฌ์ฌํญ์ ๋ถํฉํ ๊ฒ์ธ์ง ๋ณด๊ธฐ ์ํ ๊ฒ2์ ์ ๊ณฑ์, ์๋ต์ง์ฐ ๊ฐ, ๊ฐ์ฉ์ฑ๊ณผ ๊ด๋ จ๋ ์์น๋ฅผ ์ดํดํด์ผ ํ๋ค. 2์ ์ ๊ณฑ์์ต์ ๋จ์๋ 1๋ฐ์ดํธ(=8๋นํธ). ASCII ๋ฌธ์ ํ๋๊ฐ 1๋ฐ์ดํธ.1 byte(๋ฐ์ดํธ) - 1KB(ํฌ๋ก๋ฐ์ดํธ) - 1MB(๋ฉ๊ฐ๋ฐ์ดํธ) - 1GB(๊ธฐ๊ฐ๋ฐ์ดํธ) - 1TB(ํ ๋ผ๋ฐ์ดํธ) - 1PB(ํํ๋ฐ์ดํธ)๋จ์๊ฐ ๋ฐ๋ ๋๋ง๋ค 2์ 10์ ๊ณฑ์ฉ ๊ณฑํด์ง๋ค. ์๋ต์ง์ฐ ๊ฐ๋ฉ๋ชจ๋ฆฌ๋ ๋น ๋ฅด์ง๋ง ๋์คํฌ๋ ๋๋ฆฌ๋ค.๋์คํฌ ํ์์ ๊ฐ๋ฅํ ํ ํผํ๋ผ.๋จ์ํ.. ์ด์ 1 2 ๋ค์