220902(๊ธ)
๐ชด ์ฑ์ฅ์ผ์ง
์ฑ
ํ๋ณตํ ์ด๊ธฐ์ฃผ์์(์จ์ธ ๋ค์ด์ด)
์ ๋ด์ฉ์ ์๊ทน๋ฐ์ ์์ํ๋ ์๋ฐํ ์ฑ์ฅ๊ธฐ๋ก
์ด์์๋ ๊ฝ๊ณผ ์ฃฝ์ ๊ฝ์ ์ด๋ป๊ฒ ๊ตฌ๋ณํ๋๊ฐ?
์ฑ์ฅํ๊ณ ์๋ ๊ฒ์ด ์ด์ ์๋ ๊ฒ์ด๋ค.
์๋ช ์ ์ ์ผํ ์ฆ๊ฑฐ๋ ์ฑ์ฅ์ด๋ค!
๐ณ ํค์๋ ์ต๋ํ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌ, ์ถํ์ ๋ณด๋ฉด์ ์ค์ค๋ก ์ค๋ช
๋คํธ์ํฌ
๋ฌผ๋ฆฌ ๊ณ์ธต(OSI์ 1๊ณ์ธต)
๋ฌผ๋ฆฌ ๊ณ์ธต
- 0๊ณผ 1๋ง์ผ๋ก ์ด๋ฃจ์ด์ง ๋นํธ์ด์ ์ ๊ธฐ ์ ํธ๋ก ๋ณํํ๊ธฐ ์ํด ์กด์ฌํ๋ ๊ณ์ธต
- ์ปดํจํฐ์ ๋คํธ์ํฌ ์ฅ๋น๋ฅผ ์ฐ๊ฒฐ ๋ฐ ์๋ก ๊ฐ์ ์ ์ก๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ๊ธฐ ์ ํธ๋ก ๋ณํํ๋ ๊ณ์ธต
์ ๊ธฐ ์ ํธ ์ข ๋ฅ
- ์๋ ๋ก๊ทธ ์ ํธ: ํํ(๋ฌผ๊ฒฐ ๋ชจ์)์ผ๋ก ์ฃผ๋ก ์ ํ ํ์ , ๋ผ๋์ค ๋ฐฉ์ก ๋ฑ์์ ์ฌ์ฉ๋๋ ์ ํธ
- ๋์งํธ ์ ํธ: ๋ง๋ ๋ชจ์์ผ๋ก ์ปดํจํฐ์ 0๊ณผ 1 ๋นํธ์ด์ ์ ๋ฌํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ ๊ธฐ ์ ํธ
๋ ์นด๋
๋คํธ์ํฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ก์์ ํ ์ ์๋๋ก ๋ฉ์ธ ๋ณด๋ ๋ด์ ์๋ ๋ ์นด๋ ํน์ ๋ณ๋์ ๋ ์นด๋๋ฅผ ์ฌ์ฉ
๋คํธ์ํฌ ์ ์ก ๋งค์ฒด
์ ์ก ๋งค์ฒด๋ ๋ฐ์ดํฐ๊ฐ ํ๋ฅด๋ ๋ฌผ๋ฆฌ์ ์ธ ์ ๋ก
๋ก ํฌ๊ฒ ์ ์ ๊ณผ ๋ฌด์ ์ผ๋ก ๊ตฌ๋ถ
ํธ์์คํธ ํ์ด ์ผ์ด๋ธ(์ ์ )
์ผ๋ฐ์ ์ผ๋ก ํํ ๋ ์ผ์ด๋ธ, ๋ ์
์ด๋ผ ๋ถ๋ฅด๋ ์ผ์ด๋ธ
์ผ์ด๋ธ์ ์์ชฝ ๋์๋ RJ-45
๋ผ๋ ์ปค๋ฅํฐ๊ฐ ๋ถ์ด์๋ค.(๋ ๊ฝ์ผ๋ฉด ๋ธ๊น ์๋ฆฌ๋๋ ๋ถ๋ถ)
์ผ์ด๋ธ์ ์ข ๋ฅ
-
UTP(Unshielded Twist Pair)
- ๊ตฌ๋ฆฌ ์ 8๊ฐ๋ฅผ 2๊ฐ์ฉ ๊ผฌ์ ๋ง๋ ๋ค ์์ ์ ์ ์ผ๋ก ๋ฐ๋ก ์ค๋ ๋ณดํธ๊ฐ ๋์ด์์ง ์์ ๋ ธ์ด์ฆ์ ์ํฅ์ ๋ฐ๊ธฐ ์ฌ์
- ์ ๋ ดํ๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก ๋ง์ด ์ฌ์ฉ
-
STP(Shielded Twist Pair)
- 2๊ฐ์ฉ ๊ผฌ์ ๋ง๋ ์ ์ ์ค๋๋ก ๋ณดํธํ ์ผ์ด๋ธ
- ์ค๋๊ฐ ์์ด ๋ ธ์ด์ฆ๊ฐ ์ ์ผ๋ ๊ฐ๊ฒฉ์ด ๋น์ธ ๋ณดํธ์ ์ผ๋ก ์ฌ์ฉํ์ง๋ ์์
ํต์ ๊ท๊ฒฉ์ ๋ฐ๋ฅธ ๋ถ๋ฅ
-
๋ค์ด๋ ํธ ์ผ์ด๋ธ
- 8๊ฐ์ ๊ตฌ๋ฆฌ ์ ์ ๊ฐ์ ์์๋ก ์ปค๋ฅํฐ์ ์ฐ๊ฒฐํ ์ผ์ด๋ธ
- ์ฃผ๋ก ์ปดํจํฐ์ ์ค์์น๋ฅผ ์ฐ๊ฒฐํ ๋ ์ฌ์ฉ
-
ํฌ๋ก์ค ์ผ์ด๋ธ
- 8๊ฐ์ ๊ตฌ๋ฆฌ ์ ์ค ํ์ชฝ ์ปค๋ฅํฐ์ 1, 2๋ฒ ์ฐ๊ฒฐ์ ๋ค๋ฅธ ์ชฝ ์ปค๋ฅํฐ์ 3, 6๋ฒ์ ์ฐ๊ฒฐํ ์ผ์ด๋ธ
- ์ปดํจํฐ๋ผ๋ฆฌ ์ง์ ์ฐ๊ฒฐํ ๋(์ปดํจํฐ ๊ฐ ์ง์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋๋, ์์ชฝ ๋ชจ๋ 1,2๋ฒ์ ์ฌ์ฉํ๊ธฐ์ ์ด๋ ๊ฒ ํฌ๋ก์คํ ๊ฒ)
๋ฆฌํผํฐ์ ํ๋ธ
๋ฆฌํผํฐ
์ผ๊ทธ๋ฌ์ง ์ ๊ธฐ ์ ํธ๋ฅผ ๋ณต์(์ ํ)ํ๊ณ ์ฆํญํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง ๋คํธ์ํฌ ์ค๊ณ ์ฅ๋น
์ฆ, ์ผ์ด๋ธ์ด ๋๋ฌด ๊ธธ์ด์ง๋ฉด ์ผ์ด๋๋ ์ ๊ธฐ ์ ํธ์ ์์ค์ ์ค๊ฐ์์ ๋ณต์(๊ณ ์๋๋ก ํด๊ฒ์์ฒ๋ผ)
์์ฆ์ ๋ค๋ฅธ ๋คํธ์ํฌ ์ฅ๋น์์ ๋ฆฌํผํฐ ๊ธฐ๋ฅ์ ์ง์ํ๊ธฐ์ ์ฅ๋น๋ก์ ๋ฆฌํผํฐ๋ ๊ฑฐ์ ์ฐ์ง ์๋๋ค.
ํ๋ธ
๋ฆฌํผํฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ๊ธฐ ์ ํธ๋ฅผ ๋ณต์ํ๊ณ ์ฆํญํ๋ ๊ธฐ๋ฅ
์ค์ ๋ก ํต์ ํ๋ ํต๋ก์ธ ํฌํธ๋ฅผ ์ฌ๋ฌ๊ฐ ๊ฐ์ง๊ณ ์์ด ๋ฆฌํผํฐ ํ๋ธ๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
๋ฆฌํผํฐ์ ๋ค๋ฅด๊ฒ ํฌํธ๋ฅผ ์ฌ๋ฌ ๊ฐ ๊ฐ์ง๊ณ ์์ด ์ปดํจํฐ ์ฌ๋ฌ๋์ ํต์ ๊ฐ๋ฅ
์ปดํจํฐ1, 2, 3, 4, 5๊ฐ ํ๋ธ์ ์ฐ๊ฒฐ๋์ด์๊ณ 1์์ 2๋ก ๋ฐ์ดํฐ๋ฅผ ์ก์ ํ ๋, ํ๋ธ์ ์ฐ๊ฒฐ๋ ๋๋จธ์ง ์ปดํจํฐ(3, 4, 5)์๋ ๋ฐ์ดํฐ๊ฐ ์ ์ก๋๋ค. 3~5์๊ฒ๋ ๋ถํ์ํ ๋ฐ์ดํฐ์ด๊ธฐ์ ํ๋ธ๋ฅผ ๋๋ฏธ ํ๋ธ๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๊ณ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์กด์ฌํ๋ ๊ฒ์ด
์ค์์น
JavaScript
ํ๋กํผํฐ ์ดํธ๋ฆฌ๋ทฐํธ
์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ํ๋กํผํฐ๋ฅผ ์์ฑํ ๋ ํ๋กํผํฐ์ ์ํ
๋ฅผ ๋ํ๋ด๋ ํ๋กํผํฐ ์ดํธ๋ฆฌ๋ทฐํธ
๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ ์ ์ํ๋ค.
- ํ๋กํผํฐ์ ๊ฐ(value)
- ๊ฐ์ ๊ฐฑ์ ๊ฐ๋ฅ ์ฌ๋ถ(writable)
- ์ด๊ฑฐ ๊ฐ๋ฅ ์ฌ๋ถ(enumerable)
- ์ฌ์ ์ ๊ฐ๋ฅ ์ฌ๋ถ(configurable)
ํ๋กํผํฐ ์ดํธ๋ฆฌ๋ทฐํธ์๋ ์ง์ ์ ๊ทผํ ์๋ ์์ง๋ง, Object.getOwnPropertyDescriptor ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ์ ์ผ๋ก ํ์ธ ๊ฐ๋ฅํ๋ค.
๋ฐ์ดํฐ ํ๋กํผํฐ์ ์ ๊ทผ์ ํ๋กํผํฐ
- ๋ฐ์ดํฐ ํ๋กํผํฐ: ํค์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋ ์ผ๋ฐ์ ์ธ ํ๋กํผํฐ(์ฐ๋ฆฌ๊ฐ ํํ ์๊ฐํ๋ ํค์ ๋ฒจ๋ฅ)
- ์ ๊ทผ์ ํ๋กํผํฐ: ์์ฒด์ ์ผ๋ก ๊ฐ์ ๊ฐ์ง ์๊ณ ๋ค๋ฅธ ๋ฐ์ดํฐ ํ๋กํผํฐ์ ๊ฐ์ ์ฝ๊ฑฐ๋ ์ ์ฅํ ๋ ํธ์ถ๋๋ ์ ๊ทผ์ ํจ์๋ก ๊ตฌ์ฑ๋ ํ๋กํผํฐ
- get, set ๊ฐ์ ๋ ์๋ค(ใ ใทใ ใท)
๊ฐ์ฒด ๋ณ๊ฒฝ ๋ฐฉ์ง
- ๊ฐ์ฒด ํ์ฅ ๊ธ์ง: Object.preventExtensions
- ๊ฐ์ฒด ๋ฐ๋ด: Object.seal
๊ฐ์ฒด ๋๊ฒฐ
: Object.freeze, ์ค๋ก์ง ์ฝ๊ธฐ๋ง ๊ฐ๋ฅ -> ์๋ง ๊ธฐ์ตํด๋ ๋ ๋ฏ
๋ค๋ง, ๊ฐ์ฒด ๋๊ฒฐ๋ ์ค์ฒฉ ๊ฐ์ฒด๋ ์์ ํ ๋๊ฒฐ์ํค์ง ๋ชปํ๋ค.(์์ ๋ณต์ฌ์ ๊น์ ๋ณต์ฌ์ฒ๋ผ ์์ ๋๊ฒฐ์) ์ฌ๊ท๋ฅผ ํตํ
๊น์ ๋๊ฒฐ
๊ตฌํ(๊น์ ๋ณต์ฌ์ฒ๋ผ ๋ฌด์กฐ๊ฑด ์๊ณ ์์ด์ผํ๋ ๊ฑด ์๋์ง๋ง ๊ธฐ์ตํด๋์!)
function deepFreeze(target) {
if (target && typeof target === 'object' && !Object.isFrozen(target)) {
Object.freeze(target);
Object.keys(target).forEach((key) => deepFreeze(target[key]));
}
return target;
}
JavaScript
์์ฑ์ ํจ์
๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ ์ค ํ๋์ธ ์์ฑ์ ํจ์
- ํจ์๋ new ์ฐ์ฐ์์ ํจ๊ป ํธ์ถ๋๋ฉด ์์ฑ์ ํจ์๋ก ๋์ํ๋ฉฐ ์๋ฌต์ ์ผ๋ก ์ธ์คํด์ค๋ฅด ๋ฐํํ๋ค.
- ์ผ๋ฐ ๊ฐ์ฒด๋ ํธ์ถํ ์ ์์ง๋ง, ํจ์๋ ํธ์ถํ ์ ์๋ค.
constructor
- constructor: ํจ์ ์ ์ธ๋ฌธ, ํจ์ ํํ์, ํด๋์ค(ํด๋์ค๋ ํจ์๋ผ๋ ์ )
- non-constructor: ๋ฉ์๋(ES6์์์ ๋ฉ์๋ ์ถ์ฝ ํํ), ํ์ดํ ํจ์
new.target๊ณผ ์ค์ฝํ ์ธ์ดํ ์์ฑ์ ํจํด
new.target์ ํจ์ ์์ (์์ฑ์ ํจ์)๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
// new.target์ ์ด์ฉํด new ์ฐ์ฐ์๋ฅผ ์์ผ์ ๋์ ๋ํ ๋ฐฉ์ง
function Dog(name, age) {
if (!new.target) {
return new Dog(name, age);
}
this.name = name;
this.age = age;
}
// new.target์ ์ฌ์ฉํ์ง๋ชปํ ๋(ES6 ์ด์ )
// ์ค์ฝํ ์ธ์ดํ ์์ฑ์ ํจํด ์ด์ฉ
// new ํค์๋๋ฅผ ์์ฐ๋ฉด this๊ฐ ์ ์ญ ๊ฐ์ฒด์ ๋ฐ์ธ๋ฉ๋๋ฏ๋ก
function Dog(name, age) {
if (!(this instanceof Dog)) {
return new Dog(name, age);
}
this.name = name;
this.age = age;
}
๋นํธ์ธ ์์ฑ์ ํจ์
Object, Function ์์ฑ์ ํจ์๋ new ์ฐ์ฐ์๊ฐ ์์ด ํธ์ถํด๋ new ์ฐ์ฐ์๋ฅผ ๋ถ์ธ ๊ฒ์ฒ๋ผ ๋์ํ๋ค.
๋ฐ๋ฉด String, Number, Boolean ์์ฑ์ ํจ์๋ new ์ฐ์ฐ์ ์์ด ํธ์ถํ๋ฉด ๊ฐ๊ฐ ๋ฌธ์์ด, ์ซ์, ๋ถ๋ฆฌ์ธ ๊ฐ์ ๋ฐํํ๋ค.(์ฐ๋ฆฌ๊ฐ ๋ฐ์ดํฐ ํ์
์ ๋ณ๊ฒฝํ ๋, String, Number, Boolean์ ์ฌ์ฉํ ์ ์๋ ์ด์ )