1. ์ด์ถฉ์ ํจ๋ฌ๋ ์ค์ ๊ฐ๋ ์ ๊ดํด์ ์์ ํ์์ค.
- ๋์ผํ ํ ์คํธ ์ผ์ด์ค๋ก ๋ฐ๋ณต ์คํํ๋ฉด ๋ ์ด์ ์๋ก์ด ๊ฒฐํจ์ ๋ฐ๊ฒฌ ํ ์ ์๋ค.
์ํํธ์จ์ด ํ ์คํธ ์์น
๊ฐ๋ฐ์๊ฐ ์์ ์ด ๊ฐ๋ฐํ ํ๋ก๊ทธ๋จ ๋ฐ ์์ค์ฝ๋๋ฅผ ํ ์คํ ํ์ง ์๋๋ค.
ํจ์จ์ ์ธ ๊ฒฐํจ ์ ๊ฑฐ ๋ฒ์น ์ฌ์ฉ
๋์์ ๋ฒ์น
- ํน์ ๊ธฐ๋ฅ, ๋ชจ๋, ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๊ฒฐํจ์ด ๋ง์ด ๋ฐ๊ฒฌ๋๋ค.
ํ๋ ํ ์ ๋ฒ์น
- ์ ์ฒด ๊ฒฐํจ์ 80%๋ ์ํํธ์จ์ด ์ ํ์ ์ ์ฒด ๊ธฐ๋ฅ ์ค 20%์ ์ง์ค๋์ด ์๋ค.
์๋ฒฝํ ์ํํธ์จ์ด ํ ์คํ ์ ๋ถ๊ฐ๋ฅํ๋ค.
ํ ์คํธ๋ ๊ณํ ๋จ๊ณ๋ถํฐ ํด์ผํ๋ค.
์ด์ถฉ์ ํจ๋ฌ๋ ์ค (Pesticide Paradox)
- ๋์ผํ ํ ์คํธ ์ผ์ด์ค๋ก ๋ฐ๋ณต ์คํํ๋ฉด ๋ ์ด์ ์๋ก์ด ๊ฒฐํจ์ ๋ฐ๊ฒฌ ํ ์ ์๋ค.
- ์ ๊ธฐ์ ์ผ๋ก ํ ์คํธ๋ฅผ ๋ฆฌ๋ทฐํ๊ณ ์๋ก์ด ํ ์คํธ ์ผ์ด์ค๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค.
์ค๋ฅ-๋ถ์ฌ์ ๊ถค๋ณ (Absence of Errors Fallacy)
- ๊ฐ๋ฐ๋ ์์คํ ์ด ์ฌ์ฉ์์ ์๊ตฌ์ฌํญ์ ๋ง์กฑํ์ง ๋ชปํ๊ฑฐ๋ ์ฌ์ฉ์ฑ์ด ๋ฎ๋ค๋ฉด ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ์ ๊ฑฐํด๋ ํ์ง์ด ๋๋ค๊ณ ๋งํ ์ ์๋ค.
- ์ํํธ์จ์ด ๊ฒฐํจ์ ๋ชจ๋ ์ ๊ฑฐํด๋, ๊ฒฐ๊ตญ ์ฌ์ฉ์์ ์๊ตฌ์ฌํญ์ ๋ง์กฑ์ํค์ง ๋ชปํ๋ฉด ํด๋น ์ํํธ์จ์ด๋ ํ์ง์ด ๋์ง ์๋ค
๋ธ๋ฃฉ์ค์ ๋ฒ์น (Brooks’ Law)
๋ธ๋ฃฉ์ค์ ๋ฒ์น์ "์ธ๋ ฅ ์ถ๊ฐ๋ ์ด๊ธฐ์๋ ํ๋ก์ ํธ ๊ฐ๋ฐ ์๋๋ฅผ ๋์ด์ง๋ง,
์๊ฐ์ด ์ง๋ ์๋ก ์๋ก์ด ์ธ๋ ฅ์ ๊ต์กํ๊ณ ๊ธฐ์กด ์ธ๋ ฅ๊ณผ์ ์ปค๋ฎค๋์ผ์ด์ ๋ฐ ์กฐ์จ์ ๋ฐ๋ฅธ ๋ถ๋ด์ผ๋ก ์ธํด ๊ฐ๋ฐ ์๋๊ฐ ๋๋ ค์ง๋ฉฐ,
๊ฒฐ๊ตญ์๋ ์ถ๊ฐ ์ธ๋ ฅ์ ํฌ์ ํ๊ธฐ ์ด์ ๋ณด๋ค ๊ฐ๋ฐ ์๋๊ฐ ๋์ฑ ๋๋ ค์ง๊ฒ ๋๋ค"๋ ๋ด์ฉ์ ๋ด๊ณ ์์ต๋๋ค.
- ์ง์ฒด๋๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ ํธ์ ์ธ๋ ฅ์ ์ถ๊ฐํ๋ ๊ฒ์ ๊ฐ๋ฐ์ ๋ฆ์ถ ๋ฟ์ด๋ค
2. ๋ฐ์ดํฐ ๋ง์ด๋์ ๊ฐ๋ ์ ๊ดํด์ ์์ ํ์์ค.
๋ฐ์ดํฐ ๋ง์ด๋์ ๋๊ท๋ชจ์ ๋ฐ์ดํฐ ์งํฉ์์ ์ ์ฉํ ์ ๋ณด๋ฅผ ์ถ์ถํ๊ณ
๋ฐ์ดํฐ์ ํน์ฑ๊ณผ ํจํด์ ๋ฐ๊ฒฌํ๋ ๋ฐ ์ค์ ์ ๋๋ ๋ฐ์ดํฐ ๋ถ์ ๊ธฐ๋ฒ์ด๋ค.
3. ํ๋กํ ์ฝ์ ๊ธฐ๋ณธ ์์ 3๊ฐ์ง๋ฅผ ์ฐ์์ค.
ํ๋กํ ์ฝ์ ์๋ก ๋ค๋ฅธ ์ปดํจํฐ๋ ์ฅ์น ์ฌ์ด์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฌ์ฉ๋๋ ๊ท์น์ ์งํฉ์ ๋๋ค.
ํ๋กํ ์ฝ์ ๊ธฐ๋ณธ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
๋ฌธ๋ฒ(Syntax): ํ๋กํ ์ฝ์ ๋ฐ์ดํฐ๊ฐ ์ด๋ค ํ์์ผ๋ก ๊ตฌ์ฑ๋์ด์ผ ํ๋์ง ์ ์ํฉ๋๋ค. ์ด๊ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ํ ํ๋กํ ์ฝ์์ ์ฌ์ฉ๋๋ ๋ฉ์์ง์ ๋ช ๋ น์ด์ ๊ตฌ์กฐ์ ํ์์ ์๋ฏธํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ์ ๋นํธ, ๋ฐ์ดํธ, ํจํท ๋ฑ์ ํํ ๋ฐฉ์์ ๊ฒฐ์ ํฉ๋๋ค.
์๋ฏธ(Semantics): ํ๋กํ ์ฝ์ ๋ฐ์ดํฐ๊ฐ ์ด๋ค ์๋ฏธ๋ฅผ ๊ฐ์ง๋์ง ์ ์ํฉ๋๋ค. ์ด๊ฒ์ ํ๋กํ ์ฝ์์ ์ฌ์ฉ๋๋ ๋ช ๋ น์ด์ ๋ฉ์์ง์ ์๋ฏธ์ ๋ชฉ์ ์ ์๋ฏธํฉ๋๋ค. ์ฆ, ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ด๋ค ์ฉ๋๋ก ์ ์กํ ๊ฒ์ธ์ง์ ๋ํ ๋ช ํํ ๋ชฉ์ ์ ์ ์ํ๋ ๊ฒ์ ๋๋ค.
ํ์ด๋ฐ(Timing): ํ๋กํ ์ฝ์ ๋ฐ์ดํฐ๊ฐ ์ธ์ ์ ์ก๋์ด์ผ ํ๋์ง์ ์ ์ก ์์๋ฅผ ์ ์ํฉ๋๋ค. ์ด๊ฒ์ ๋ฐ์ดํฐ ์ ์ก ๊ฐ๊ฒฉ, ์๋, ์ง์ฐ, ์ฒ๋ฆฌ ๋ฐ ์๋ต ์๊ฐ ๋ฑ๊ณผ ๊ฐ์ ํ์ด๋ฐ ์๊ตฌ ์ฌํญ์ ์ ์ํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ ์ ์ก์ด ์ค์๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ ธ์ผ ํ๋ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ค์ํฉ๋๋ค.
4. ๋ค์์ด ์ค๋ช ํ๋ ์ฉ์ด๋ ๋ฌด์์ธ์ง ์ฐ์์ค.
W3C(World wide Web Consortium)์์ ๊ฐ๋ฐ๋์๊ณ , ์น ๋ธ๋ผ์ฐ์ ๊ฐ ํธํ์ด ๋์ง ์๋ ๋ฌธ์ ์
SGML(Standard Generalized Markup Language)์ ๋ณต์กํจ์ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฐ๋ฐ๋ ๋ค๋ชฉ์ ๋งํฌ์ ์ธ์ด์ด๋ค.
์ ์ค๋ช ํ๋ ์ฉ์ด๋ XML(eXtensible Markup Language)์ ๋๋ค.
5. ์์ฑ-๊ฐ(Attribute-value Pair)์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ ์คํ์ ํธ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ฐ๋ฐฉํ ํ์ค ํฌ๋ฉง์ด๋ค. Ajax(Asynchronous JavaScript and XML)์์ ๋ง์ด ์ฌ์ฉ๋๊ณ
XML(eXtensible Markup Language)์ ๋์ฒดํ๋ ์ฃผ์ ๋ฐ์ดํฐ ํฌ๋งท์ด๋ค.
์ธ์ด ๋ ๋ฆฝํ ๋ฐ์ดํฐ ํฌ๋งท์ผ๋ก ๋ค์ํ ๋ฐ์ดํฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฌ์ฉํ๊ณ ์๋ ๊ธฐ์ ์ ๋ฌด์์ธ๊ฐ?
์์ ์ค๋ช ์ JSON(JavaScript Object Notation)์ ๊ดํ ๊ฒ์ ๋๋ค.
JSON์ JavaScript์์ ํ์๋ ๊ฒฝ๋์ ๋ฐ์ดํฐ ๊ตํ ํ์์ผ๋ก,
์์ฑ-๊ฐ ์(attribute-value pair)์ด๋ ๋ฐฐ์ด ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ํํํฉ๋๋ค.
Ajax๋ฅผ ๋น๋กฏํ ๋ค์ํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ๋๋ฉฐ, ์ต๊ทผ์๋ XML ๋์ ์ ์ฃผ๋ก ์ฌ์ฉ๋๋ ์ฃผ์ํ ๋ฐ์ดํฐ ํฌ๋งท ์ค ํ๋์ ๋๋ค.
๋ํ, JSON์ ์ธ์ด ๋ ๋ฆฝํ ๋ฐ์ดํฐ ํฌ๋งท์ด๊ธฐ ๋๋ฌธ์ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, Python, Java, C++, Ruby ๋ฑ ๋ค์ํ ์ธ์ด์์ JSON์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ชจ๋์ ์ ๊ณตํ๊ณ ์์ต๋๋ค.
6. STUDENT ํ ์ด๋ธ์์ ์ปดํจํฐ๊ณผ ํ์ 50๋ช , ์ธํฐ๋ท๊ณผ ํ์ 100๋ช , ์ฌ๋ฌด์๋ํ๊ณผ ํ์ 50๋ช ์ ์ ๋ณด๊ฐ ์ ์ฅ๋์ด ์์ ๋,
๋ค์ SQL๋ฌธ์ ์คํ ๊ฒฐ๊ณผ์ ๋ฐ๋ฅธ ํํ์ ์๋? (๋จ, DEPT ์นผ๋ผ์ ํ๊ณผ๋ช ์ด๋ค.)
1) SELECT DERP FROM STUDENT;
2) SELECT DISTINCT DEPT FROM STUDENT;
3) SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT = '์ปดํจํฐ๊ณผ';
1. SELECT DERP FROM STUDENT;
๊ฒฐ๊ณผ: STUDENT ํ ์ด๋ธ์ ๋ชจ๋ ํ์์ DERP ์ปฌ๋ผ์ ๊ฐ๋ง ์ ํ๋๋ฏ๋ก, 200๊ฐ์ ํํ์ด ๋ฐํ๋ฉ๋๋ค.
2. SELECT DISTINCT DEPT FROM STUDENT;
๊ฒฐ๊ณผ: STUDENT ํ ์ด๋ธ์์ ์ค๋ณต๋์ง ์๋ DEPT ์ปฌ๋ผ์ ๊ฐ์ ์ ํํ๋ฏ๋ก,
3๊ฐ์ ํ๊ณผ๋ช (์ปดํจํฐ๊ณผ, ์ธํฐ๋ท๊ณผ, ์ฌ๋ฌด์๋ํ๊ณผ)์ ๋ํ 3๊ฐ์ ํํ์ด ๋ฐํ๋ฉ๋๋ค.
3. SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT = '์ปดํจํฐ๊ณผ';
๊ฒฐ๊ณผ: STUDENT ํ ์ด๋ธ์์ DEPT ์ปฌ๋ผ์ ๊ฐ์ด '์ปดํจํฐ๊ณผ'์ธ ๊ฒฝ์ฐ ์ค๋ณต๋์ง ์๋ DEPT ์ปฌ๋ผ์ ๊ฐ์ ์ ํํ๋ฏ๋ก,
1๊ฐ์ ํ๊ณผ๋ช ์ ๋ํ 1๊ฐ์ ํํ์ด ๋ฐํ๋ฉ๋๋ค.
7. ์ค์ผ์ค๋ง ๋ฐฉ์์์ HRN(Highest Response ratio Next) ์ฐ์ ์์ ๊ณ์ฐ์์ ์ฐ์์ค.
HRN(Highest Response ratio Next)์ CPU ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋๋ก,
์๋ต ๋น์จ(response ratio)์ ์ด์ฉํ์ฌ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ๊ณ์ฐํฉ๋๋ค.
์๋ต ๋น์จ์ ๋๊ธฐ ์๊ฐ(waiting time)๊ณผ ์๋น์ค ์๊ฐ(service time)์ ์ด์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ด ๊ณ์ฐ๋ฉ๋๋ค.
์๋ต ๋น์จ = (๋๊ธฐ ์๊ฐ + ์๋น์ค ์๊ฐ) / ์๋น์ค ์๊ฐ
HRN์์๋ ์๋ต ๋น์จ์ด ๊ฐ์ฅ ๋์ ํ๋ก์ธ์ค๋ฅผ ๋ค์์ ์คํํ ํ๋ก์ธ์ค๋ก ์ ํํฉ๋๋ค.
๋ฐ๋ผ์ ์๋ต ๋น์จ์ด ๋์ ํ๋ก์ธ์ค์ผ์๋ก ์ฐ์ ์์๊ฐ ๋์์ง๊ฒ ๋ฉ๋๋ค.
HRN์ ์ฐ์ ์์ ๊ณ์ฐ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฐ์ ์์ = (๋๊ธฐ ์๊ฐ + ์๋น์ค ์๊ฐ) / ์๋น์ค ์๊ฐ
8. ํธ๋์ญ์ ์ ํน์ง ์ค, ์ผ๊ด์ฑ ์ง์์ฑ ์ธ 2๊ฐ์ ํน์ฑ์ ์ฐ์์ค.
ํธ๋์ญ์ (Transaction)์ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์์์ฑ(Atomicity): ํธ๋์ญ์ ์ ์์ ์ ์ ๋ถ ์๋ฃ๋๊ฑฐ๋, ์ ํ ์ํ๋์ง ์์์ผ ํ๋ค.
- ์ผ๊ด์ฑ(Consistency): ํธ๋์ญ์ ์ด ์คํ๋ ํ์๋ ๋ฐ์ดํฐ๋ ์ผ๊ด์ฑ์ ์ ์งํด์ผ ํ๋ค.
- ๋ ๋ฆฝ์ฑ(Isolation): ํ๋์ ํธ๋์ญ์ ์ด ์คํ๋๋ ์ค์๋ ๋ค๋ฅธ ํธ๋์ญ์ ์ด ์คํ๋๋ ๊ฒ์ ๋ฐฉํดํ ์ ์๋ค.
- ์ง์์ฑ(Durability): ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ํ์๋ ๊ทธ ๊ฒฐ๊ณผ๊ฐ ์๊ตฌ์ ์ผ๋ก ๋ฐ์๋์ด์ผ ํ๋ค.
๋ฐ๋ผ์, ์ผ๊ด์ฑ๊ณผ ์ง์์ฑ ์ธ์ ํธ๋์ญ์ ์ ํน์ง์ผ๋ก๋ ๋ ๋ฆฝ์ฑ(Isolation)๊ณผ ์์์ฑ(Atomicity)์ด ์์ต๋๋ค.
9. ๊ณต๊ฒฉ์๊ฐ ํจํท์ ์ถ๋ฐ์ง ์ฃผ์๋ ํฌํธ๋ฅผ ์์๋ก ๋ณ๊ฒฝํด ์ถ๋ฐ์ง์ ๋ชฉ์ ์ง ์ฃผ์๋ฅผ ๋์ผํ๊ฒ ํจ์ผ๋ก์จ
๊ณต๊ฒฉ ๋์ ์ปดํจํฐ์ ์คํ์๋๋ฅผ ๋๋ฆฌ๊ฒ ํ๊ฑฐ๋ ๋์์ ๋ง๋น์์ผ ์๋น์ค ๊ฑฐ๋ถ ์ํ์ ๋น ์ง๋๋ก ํ๋ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ์ ๋ฌด์์ธ๊ฐ?
Land attack์ ๊ณต๊ฒฉ์๊ฐ ์์๋ก TCP ํจํท์ ์์ฑํ์ฌ ์ถ๋ฐ์ง IP์ ํฌํธ๋ฅผ ํผํด์์ IP์ ํฌํธ๋ก ์ค์ ํ๊ณ ,
์ด๋ฅผ ํผํด์์๊ฒ ์ ์กํ๋ ๊ฒ์ ๋๋ค.
์ด๋ ๊ฒ ์ ์ก๋ ํจํท์ ํผํด์ ์ปดํจํฐ์์ ์๊ธฐ ์์ ์ IP์ ํฌํธ์์ ๋ณด๋ธ ๊ฒ์ผ๋ก ์ธ์๋์ด,
์ปดํจํฐ๊ฐ ์๊ธฐ ์์ ์๊ฒ ๋ฐ๋ณต์ ์ผ๋ก ์์ฒญ์ ๋ณด๋ด๋ ๋ฌดํ ๋ฃจํ์ ๋น ์ง๊ฒ ๋์ด์
CPU๋ ๋ฉ๋ชจ๋ฆฌ ๋ฑ์ ์์์ ๊ณ ๊ฐ์์ผ ์๋น์ค ๊ฑฐ๋ถ ์ํ์ ๋น ์ง๊ฒ ๋ฉ๋๋ค.
10. RFC 1321๋ก ์ง์ ๋์ด ์์ผ๋ฉฐ, ์ฃผ๋ก ํ๋ก๊ทธ๋จ์ด๋ ํ์ผ์ด ์๋ณธ ๊ทธ๋๋ก ์ธ์ง๋ฅผ ํ์ธํ๋ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ ๋ฑ์ ์ฌ์ฉ๋๋ค. 1991๋ ๋ก๋๋ ๋ผ์ด๋ฒ ์คํธ๊ฐ ์์ ์ ์ฐ์ด๋ MD4๋ฅผ ๋์ฒดํ๊ธฐ ์ํด ๊ณ ์๋ 128๋นํธ ์ํธํ ํด์ ํจ์๋ ๋ฌด์์ธ๊ฐ?
RFC 1321๋ก ์ง์ ๋์ด ์๋ ์ํธํ ํด์ ํจ์๋ MD5(MD message-digest algorithm 5)์ ๋๋ค.
MD5๋ ์ฃผ๋ก ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ๋ ๋ฉ์์ง ์ธ์ฆ ๋ฑ์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
์๋ณธ ๋ฉ์์ง์ ๊ธธ์ด์ ๋ฌด๊ดํ๊ฒ 128๋นํธ ๊ณ ์ ๊ธธ์ด ํด์ ๊ฐ์ ์์ฑํ๋ฉฐ, MD4๋ณด๋ค ๋ ์์ ํ๊ณ ๋ณด์์ฑ์ด ๋์ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
11. ๋ค์์ ๊ณตํต ๋ชจ๋ ๊ตฌํ์ ๊ฐ๋ ์ ๋ํ ์ค๋ช ์ด๋ค. ๊ดํธ ( ) ์์ ์๋ง์ ์ฉ์ด๋ฅผ ์ฐ์์ค.
- ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์์ด ๊ธฐ๋ฅ์ ๋ถํ ํ๊ณ ์ถ์ํํ์ฌ ์ฑ๋ฅ์ ํฅ์์ํค๊ณ ์ ์ง๋ณด์๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ๊ธฐ ์ํ ๊ณตํต ์ปดํฌ๋ํธ ๊ตฌํ ๊ธฐ๋ฒ์ด๋ค.
- ์ธํฐํ์ด์ค ๋ชจ๋, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทผ ๋ชจ๋ ๋ฑ ํ์ํ ๊ณตํต ๋ชจ๋์ ๊ตฌํํ๋ค.
- ๋ชจ๋ ๊ฐ์ ( 1. ) ์/๋ ์ค์ด๊ณ , ( 2 . ) ์/๋ ๋์ ๊ณตํต ๋ชจ๋ ๊ตฌํ์ ๊ถํํ๊ณ ์๋ค.
- ๊ฒฐํฉ๋
- ์์ง๋
๊ฒฐํฉ๋(Coupling)๋ ์ํํธ์จ์ด ๋ชจ๋ ๊ฐ์ ์ํธ ์ฐ๊ด์ฑ์ด๋ ์์กด๋๋ฅผ ๋ํ๋ด๋ ์ ๋๋ฅผ ๋งํฉ๋๋ค.
๋ชจ๋ ๊ฐ์ ๊ฒฐํฉ๋๊ฐ ๋ฎ์์๋ก ๋ชจ๋ ๊ฐ์ ์์กด์ฑ์ด ์ค์ด๋ค์ด ์์คํ ์ ์ ์ง ๋ณด์ ๋ฐ ๋ณ๊ฒฝ ์์ ์ด ์์ํด์ง๊ณ , ์ฌ์ฌ์ฉ์ฑ๋ ๋์์ง๋๋ค. ๋ฐ๋๋ก ๊ฒฐํฉ๋๊ฐ ๋์ผ๋ฉด ํ ๋ชจ๋์ ๋ณ๊ฒฝ์ด ๋ค๋ฅธ ๋ชจ๋์ ์ํฅ์ ๋ฏธ์น ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋ฏ๋ก
์์คํ ์ ์ฒด์ ์ธ ์์ ์ฑ๊ณผ ์ ์ง ๋ณด์์ฑ์ด ๋จ์ด์ง๋๋ค.
์์ง๋(Cohesion)๋ ์ํํธ์จ์ด ๋ชจ๋ ์์์ ๋ชจ๋ ๋ด๋ถ์ ์์๋ค์ด ์ผ๋ง๋ ๋ฐ์ ํ๊ฒ ๊ด๋ จ๋์ด ์๋์ง๋ฅผ ๋ํ๋ด๋ ์ ๋๋ฅผ ๋งํฉ๋๋ค. ๋ชจ๋ ์์ ์์๋ค์ด ์๋ก ๋ฐ์ ํ๊ฒ ์ฐ๊ด๋์ด ์์์๋ก ๋ชจ๋์ ์์ง๋๋ ๋์์ง๊ณ ,
ํ๋์ ๋ชฉ์ ์ ์ํํ๋ ์์๋ค๋ผ๋ฆฌ ๋ชจ์ฌ ์์ผ๋ฉด ์ข์ ์์ง๋๋ฅผ ๊ฐ์ต๋๋ค.
์์ง๋๊ฐ ๋์์๋ก ๋ชจ๋ ๋ด์ ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ๊ณผ ์ ์ง ๋ณด์์ฑ์ด ๋์์ง๋ฉฐ, ๋ชจ๋ ๊ฐ์ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ ์ ์์ต๋๋ค.
๋ฐ๋๋ก ์์ง๋๊ฐ ๋ฎ์ ๋ชจ๋์ ์ฌ์ฌ์ฉ์ฑ์ด ๋ฎ์์ง๊ณ ์ ์ง ๋ณด์๊ฐ ์ด๋ ค์์ง๋๋ค.
12. ๋ค์์ C์ธ์ด ์์ค ์ฝ๋์ด๋ค. ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์ฐ์์ค.
#include <stdio.h>
void main(){
int i,j;
int temp;
int a[5] = {75,95,85,100,50};
for(i=0; i<4; i++){
for(j=0; j<4-i; j++){
if(a[j] > a[j+1]){
temp=a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(i=0; i<5; i++){
printf("%d", a[i]);
}
}
์ถ๋ ฅ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ๋ค.
50 75 85 95 100
์ ํ ์ ๋ ฌ์ ์ด์ฉํ์ฌ ๋ฐฐ์ด a๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๊ณ ์๋ค.
13. ๋ค์์ ์๋ฐ ์์ค์ฝ๋์ด๋ค. ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์ฐ์์ค.
public class good {
public static void main(String[] args){
int i;
int a[4] = {0,1,2,3};
for(i=0; i<4; i++){
system.out.print(a[i] + "");
}
}
}
์ถ๋ ฅ ๊ฒฐ๊ณผ: 0 1 2 3
14. ๋ค์์ ์๋ฐ ์์ค์ฝ๋์ด๋ค. ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์ฐ์์ค.
public class good {
public static void main(String[] args){
int i = 3;
int k = 1;
swich (i) {
case 0;
case 1;
case 2;
case 3 k = 0;
case 4 k += 3;
case 5 k -= 10;
default: k--;
}
system.out.print(k);
}
}
์์ ์์ค์ฝ๋์์๋ switch ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ณ์ i์ ๊ฐ์ ํ์ธํ๊ณ , ๋ณ์ k์ ๊ฐ์ ๊ฒฐ์ ํ๋ค.
๋ณ์ i์ ๊ฐ์ด 3์ด๋ฏ๋ก, case 3 ์คํ
case 3์์ k์ ๊ฐ์ 0์ผ๋ก ์ค์ ๋๋ฉฐ, break ๋ฌธ์ด ์์ผ๋ฏ๋ก ์ดํ์ case 4๊ฐ ์คํ
k์ ๊ฐ์ 3์ด ๋ํด์ง 3์ด ๋๋ค.
๊ทธ ๋ค์์๋ case 5๊ฐ ์คํ๋๋ฏ๋ก k์ ๊ฐ์์ 10์ด ๋นผ์ง -7์ด ๋๋ค.
๋ง์ง๋ง์ผ๋ก, default๊ฐ ์คํ๋์ด k์ ๊ฐ์์ 1์ด ๋นผ์ง -8์ด ์ถ๋ ฅ๋๋ค.
๋ฐ๋ผ์ ์ ์์ค์ฝ๋์ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ -8์ด ๋๋ค.
case๋ฌธ ์์ ์ฝ๋ ์คํ์ ๋๋ด๋ ค๋ฉด break ํค์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
break ํค์๋๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ค์ case๋ฌธ์ ์ฝ๋๋ ์คํ๋ฉ๋๋ค.
15. ๋ค์์ด ์ค๋ช ํ๋ ์ ํ ํจํค์ง ๋ฆด๋ฆฌ์ค ๋ ธํธ์ ์์ฑ ํญ๋ชฉ์ ๋ฌด์์ธ๊ฐ?
[๋ณด๊ธฐ]
๋ฌธ์ ์ด๋ฆ(๋ฆด๋ฆฌ์ค ๋ ธํธ ์ด๋ฆ), ์ ํ ์ด๋ฆ, ๋ฒ์ ๋ฒํธ, ๋ฆด๋ฆฌ์ค ๋ ์ง, ์ฐธ๊ณ ๋ ์ง, ๋ ธํธ ๋ฒ์ ๋ฑ์ ์ ๋ณด
์ ๋ด์ฉ์ ์ ํ ํจํค์ง ๋ฆด๋ฆฌ์ค ๋ ธํธ์ ์์ฑ ํญ๋ชฉ ์ค "ํค๋" ๋๋ "๊ฐ์"์ ํด๋นํฉ๋๋ค.
์ด ํญ๋ชฉ์ ๋ฆด๋ฆฌ์ค ๋ ธํธ์ ๊ฐ์ฅ ์๋ถ๋ถ์ ์์นํ๋ฉฐ, ์ ํ ์ ๋ณด ๋ฐ ๋ฆด๋ฆฌ์ค์ ๋ํ ์์ฝ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ฆด๋ฆฌ์ค ๋ ธํธ์ ๋ค๋ฅธ ์น์ ์์๋ ์์ธํ ์ ๋ณด์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ๋ด์ฉ์ ๋ค๋ฃจ๊ฒ ๋ฉ๋๋ค.
์ ํ ํจํค์ง ๋ฆด๋ฆฌ์ค ๋ ธํธ(Release Note)๋ ์ํํธ์จ์ด๋ ์ ํ ๋ฑ์ ๋ฆด๋ฆฌ์ค(์ถ์)์ ๋ฐํ๋๋ ๋ฌธ์๋ก,
์ ํ ์ ๋ณด, ๋ฆด๋ฆฌ์ค ์ ๋ณด, ์๋ก์ด ๊ธฐ๋ฅ, ๋ฒ๊ทธ ์์ ๋ด์ฉ, ์ฃผ์์ฌํญ ๋ฑ์ ํฌํจํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ฌ์ฉ์ ๋๋ ๊ฐ๋ฐ์๋ค์ ๋ฆด๋ฆฌ์ค ๋ ธํธ๋ฅผ ํตํด ์๋ก์ด ๊ธฐ๋ฅ ๋ฐ ๋ฒ๊ทธ ์์ ๋ด์ฉ ๋ฑ์ ํ์ธํ๊ณ
์ ๊ทธ๋ ์ด๋ ๋๋ ์ค์น๋ฅผ ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
๋ฆด๋ฆฌ์ค ๋ ธํธ๋ ์ํํธ์จ์ด๋ ์ ํ์ ์ ๋ขฐ์ฑ ๋ฐ ์์ ์ฑ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ
์ฌ์ฉ์๋ค์ด ์ ํ์ ์์ ํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๋์์ค๋๋ค.
16. LoC(Line of Code)๊ฐ 30,000๋ผ์ธ์ด๊ณ , ๊ฐ๋ฐ์๊ฐ 5๋ช ์ด๋ฉฐ, ๊ฐ๋ฐ์๊ฐ ์ํ๊ท 300๋ผ์ธ์ ๊ฐ๋ฐํ๋ค.
์ด๋ ํ๋ก์ ํธ ๊ฐ๋ฐ ๊ธฐ๊ฐ๊ณผ ๊ณ์ฐ์์ ์ฐ์์ค.
- ๊ฐ๋ฐ ๊ธฐ๊ฐ = ์ ์ฒด ์ฝ๋ ๋ผ์ธ ์ / (๊ฐ๋ฐ์ ์ * 1๊ฐ์ ๋น ๊ฐ๋ฐํ๋ ์ฝ๋ ๋ผ์ธ ์)
- ๊ฐ๋ฐ ๊ธฐ๊ฐ = 30,000 / (5 * 300) = 20๊ฐ์
๋ฐ๋ผ์, LoC๊ฐ 30,000๋ผ์ธ์ด๊ณ , ๊ฐ๋ฐ์๊ฐ 5๋ช ์ด๋ฉฐ, ๊ฐ๋ฐ์๊ฐ ์ํ๊ท 300๋ผ์ธ์ ๊ฐ๋ฐํ๋ค๋ฉด,
์ ์ฒด ๊ฐ๋ฐ ๊ธฐ๊ฐ์ 20๊ฐ์์ด๊ณ , ๊ฐ๋ฐ ๊ธฐ๊ฐ์ ๊ณ์ฐํ๋ ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ฐ๋ฐ ๊ธฐ๊ฐ = ์ ์ฒด ์ฝ๋ ๋ผ์ธ ์ / (๊ฐ๋ฐ์ ์ * 1๊ฐ์ ๋น ๊ฐ๋ฐํ๋ ์ฝ๋ ๋ผ์ธ ์)
17. ๋น์ ๊ทํ(De-Normalization)์ ๊ฐ๋ ์ ์ฐ์์ค
๋น์ ๊ทํ(De-Normalization)๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์์ ์ ๊ทํ(Normalization)๋ฅผ ํตํด ํ ์ด๋ธ์ ๋ถํดํ๊ณ
์ค๋ณต์ ์ ๊ฑฐํ์ฌ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ ๊ณผ์ ์ ๊ฑฐ๊พธ๋ก ๋๋๋ ค ๋ฐ์ดํฐ ์ค๋ณต์ฑ์ ํ์ฉํ๋ ๊ฒ์ ๋งํฉ๋๋ค.
์ด๋ฅผ ํตํด ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ์ ํฅ์์ํค๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ ๋น ๋ฅด๊ฒ ์กฐํํ ์ ์์ต๋๋ค.
18. OSI ๊ณ์ธต ์ค ๋นํธ๋ฅผ ์ ์กํ๋ ๊ณ์ธต์ ๋ฌด์์ธ๊ฐ?
OSI ๋ชจ๋ธ์์ ๋นํธ๋ฅผ ์ ์กํ๋ ๊ณ์ธต์ ๋ฌผ๋ฆฌ ๊ณ์ธต(Physical layer)์ ๋๋ค.
๋ฌผ๋ฆฌ ๊ณ์ธต์ ๋์งํธ ๋ฐ์ดํฐ๋ฅผ ์๋ ๋ก๊ทธ ์ ํธ๋ก ๋ณํํ์ฌ ํต์ ์ผ์ด๋ธ์ ํตํด ์ ์กํ๊ณ , ์ ํธ๋ฅผ ๋์งํธ ๋ฐ์ดํฐ๋ก ์ฌ์์ฑํฉ๋๋ค.
๋ฐ๋ผ์ ๋ฌผ๋ฆฌ ๊ณ์ธต์ ๋ฐ์ดํฐ ์ ์ก์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋จ๊ณ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
19. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ์ธก์ ํ๊ธฐ ์ํ ์งํ๋ ๋ฌด์์ธ๊ฐ?
์งํ | ์ค๋ช |
( 1 ) | - ์ ํ๋ฆฌ์ผ์ด์
์ด ์ฃผ์ด์ง ์๊ฐ์ ์ฒ๋ฆฌํ ์ ์๋ ํธ๋์ญ์
์ ์ - ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ์๊ฐ๋น ํ์ด์ง์๋ก ํํ |
( 2 ) | - ์ฌ์ฉ์ ์
๋ ฅ์ด ๋๋ ํ, ์ ํ๋ฆฌ์ผ์ด์
์ ์๋ต ์ถ๋ ฅ์ด ๊ฐ์๋ ๋๊น์ง์ ์๊ฐ - ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ๋ฉ๋ด ํด๋ฆญ ์ ํด๋น ๋ฉ๋ด๊ฐ ๋ํ๋๊ธฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ |
( 3 ) | - ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์๊ฐ ์๊ตฌ๋ฅผ ์ ๋ ฅํ ์์ ๋ถํฐ ํธ๋์ญ์ ์ฒ๋ฆฌ ํ ๊ทธ ๊ฒฐ๊ณผ์ ์ถ๋ ฅ์ด ์๋ฃ๋ ๋๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ |
์์ ์ฌ์ฉ๋ฅ | - ์ ํ๋ฆฌ์ผ์ด์ ์ด ํธ๋์ญ์ ์ ์ฒ๋ฆฌํ๋ ๋์ ์ฌ์ฉํ๋ CPU ์ฌ์ฉ๋ , ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, ๋คํธ์ํฌ ์ฌ์ฉ๋ |
1. ์ฒ๋ฆฌ๋(Transaction Per Second, TPS): ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฃผ์ด์ง ์๊ฐ์ ์ฒ๋ฆฌํ ์ ์๋ ํธ๋์ญ์ ์ ์๋ฅผ ๋ํ๋ ๋๋ค.
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ์๊ฐ๋น ํ์ด์ง ์๋ก ํํํ๊ธฐ๋ ํฉ๋๋ค.
2. ์๋ต ์๊ฐ(Response Time): ์ฌ์ฉ์ ์ ๋ ฅ์ด ๋๋ ํ, ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ต ์ถ๋ ฅ์ด ๊ฐ์๋ ๋๊น์ง์ ์๊ฐ์ ๋ํ๋ ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ๋ฉ๋ด ํด๋ฆญ ์ ํด๋น ๋ฉ๋ด๊ฐ ๋ํ๋๊ธฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ ๋ฑ์ ์ธก์ ํฉ๋๋ค.
3. ๊ฒฝ๊ณผ์๊ฐ: ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์๊ฐ ์๊ตฌ๋ฅผ ์ ๋ ฅํ ์์ ๋ถํฐ ํธ๋์ญ์ ์ฒ๋ฆฌ ํ ๊ทธ ๊ฒฐ๊ณผ์ ์ถ๋ ฅ์ด ์๋ฃ๋ ๋๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋ํ๋ ๋๋ค.
4. ์์ ์ฌ์ฉ๋ฅ (Resource Utilization): ์ ํ๋ฆฌ์ผ์ด์ ์ด ํธ๋์ญ์ ์ ์ฒ๋ฆฌํ๋ ๋์ ์ฌ์ฉํ๋ CPU ์ฌ์ฉ๋, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, ๋คํธ์ํฌ ์ฌ์ฉ๋ ๋ฑ์ ์ธก์ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น๋ ๋ณ๋ชฉ ํ์์ ํ์ ํ ์ ์์ต๋๋ค.
20. ๋ค์์ ๋ชจ๋์ ๊ด๊ณ๋ฅผ ๋ํ๋ธ ๋ค์ด์ด๊ทธ๋จ์ด๋ค. fan-in ๊ฐ์๊ฐ 2 ์ด์์ธ ๋ชจ๋ ๋ช ์นญ์ ์ฐ์์ค.
์ ๋ต : F , H
๋ชจ๋์์์ fan-in์ ํด๋น ๋ชจ๋์ ํธ์ถํ๋ ์ธ๋ถ ๋ชจ๋์ ์๋ฅผ ์๋ฏธํฉ๋๋ค.
์ฆ, ํด๋น ๋ชจ๋์ ์ฌ์ฉํ๋ ๋ค๋ฅธ ๋ชจ๋๋ค์ ์๋ฅผ ๋ํ๋ ๋๋ค.
fan-in์ด ๋์์๋ก ํด๋น ๋ชจ๋์ ๋ค๋ฅธ ๋ชจ๋์์ ๋ ์์ฃผ ํธ์ถ๋๊ณ ์ฌ์ฉ๋๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ฉด์ fan-out์ ํด๋น ๋ชจ๋์ด ํธ์ถํ๋ ์ธ๋ถ ๋ชจ๋์ ์๋ฅผ ์๋ฏธํฉ๋๋ค.
์ฆ, ํด๋น ๋ชจ๋์ด ๋ค๋ฅธ ๋ชจ๋์ ํธ์ถํ๊ณ ์ฌ์ฉํ๋ ์๋ฅผ ๋ํ๋ ๋๋ค.
fan-out์ด ๋์์๋ก ํด๋น ๋ชจ๋์ ๋ค๋ฅธ ๋ชจ๋์ ์์ฃผ ํธ์ถํ๊ณ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.