220901(๋ชฉ)
๐ชด ์ฑ์ฅ์ผ์ง
์ฑ
ํ๋ณตํ ์ด๊ธฐ์ฃผ์์(์จ์ธ ๋ค์ด์ด)
์ ๋ด์ฉ์ ์๊ทน๋ฐ์ ์์ํ๋ ์๋ฐํ ์ฑ์ฅ๊ธฐ๋ก
์ด์์๋ ๊ฝ๊ณผ ์ฃฝ์ ๊ฝ์ ์ด๋ป๊ฒ ๊ตฌ๋ณํ๋๊ฐ?
์ฑ์ฅํ๊ณ ์๋ ๊ฒ์ด ์ด์ ์๋ ๊ฒ์ด๋ค.
์๋ช ์ ์ ์ผํ ์ฆ๊ฑฐ๋ ์ฑ์ฅ์ด๋ค!
๐ณ ํค์๋ ์ต๋ํ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌ, ์ถํ์ ๋ณด๋ฉด์ ์ค์ค๋ก ์ค๋ช
JavaScript
๋ชจ๋
๋ชจ๋: ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ฑํ๋ ๊ฐ๋ณ์ ์์๋ก์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋ ์กฐ๊ฐ, ์ผ๋ฐ์ ์ผ๋ก ๊ธฐ๋ฅ์ ๊ธฐ์ค์ผ๋ก ํ์ผ ๋จ์๋ก ๋ถ๋ฆฌ
์๋ฐ์คํฌ๋ฆฝํธ๋ ์ฃผ๋ก ์นํ์ด์ง์ ๋ณด์กฐ๋ก์ ํ์ํ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์, ์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ๊ณ ์๋ ์ธ์ด์ ๋ค๋ฅด๊ฒ ๋ชจ๋ ๊ธฐ๋ฅ์ด ์กด์ฌํ์ง ์์์
๋ฌผ๋ก ํด๋ผ์ด์ธํธ ์ฌ์ด๋์ ์๋ฐ์คํฌ๋ฆฝํธ์์ <script>
๋ฅผ ์ด์ฉํ์ฌ ์ฌ๋ฌ js ํ์ผ์ ๋ก๋ํ ์๋ ์์ง๋ง, ํ์ผ๋ง๋ค ๋
๋ฆฝ์ ์ธ ํ์ผ ์ค์ฝํ(๋ชจ๋ ์ค์ฝํ)๊ฐ ์์ด ๊ทธ๋ฅ ํ๋์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ฒ๋ผ ์์ฉํจ
์ฆ, ์์ฐํ ๊ธฐ๋ฅ์ ์ผ๋ก ํ์ผ์ด ๊ตฌ๋ถ๋์ด์๊ณ ๊ทธ ํ์ผ(๋ชจ๋)์ ๋ถ๋ฌ์์ ์ฌ์ฉํ๋ ๋ชจ๋ํ๊ฐ ์๋์์
ES6๋ชจ๋(ESM)
ES6์์ ์ถ๊ฐํ ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋ ๊ธฐ๋ฅ
<script type="module" src="app.mjs"></script>
export
๋ชจ๋ ๋ด๋ถ์์ ์ ์ธํ ๋ชจ๋ ์๋ณ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋น ๋ชจ๋ ๋ด๋ถ์์๋ง ์ฐธ์กฐ ๊ฐ๋ฅ
์ธ๋ถ์ ๊ณต๊ฐํ๊ธฐ ์ํด export
์๋ณ์๋ฅผ ์ฌ์ฉํ๋ค.
// test_export.mjs ํ์ผ
export const TEST = 12345;
export function add(a, b) {
return a + b;
}
import
๋ฐ๋๋ก ๋ค๋ฅธ ๋ชจ๋์์ ๊ณต๊ฐํ ์๋ณ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด import
๋ฅผ ์ฌ์ฉ
import { TEST, add } from './test_export.mjs';
๋คํธ์ํฌ
๊ธฐ๋ณธ ๊ท์น
-
ํ๋กํ ์ฝ: ๋คํธ์ํฌ๋ผ๋ฆฌ ํต์ ํ๊ธฐ ์ํด ์ ํด๋์
๊ท์น
-
OSI๋ชจ๋ธ(OSI 7๊ณ์ธต): ๋คํธ์ํฌ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ํ์ค ํต์ ๊ท๊ฒฉ
์์ฉ
๊ณ์ธต(7)ํํ
๊ณ์ธต(6)์ธ์
๊ณ์ธต(5)์ ์ก
๊ณ์ธต(4)๋คํธ์ํฌ
๊ณ์ธต(3)๋ฐ์ดํฐ ๋งํฌ
๊ณ์ธต(2)๋ฌผ๋ฆฌ
๊ณ์ธต(1)
-
TCP/IP๋ชจ๋ธ(TCP/IP 4๊ณ์ธต): OSI 7๊ณ์ธต์ 4๊ณ์ธต์ผ๋ก ๊ฐ๋จํํ ๊ท๊ฒฉ
์์ฉ
๊ณ์ธต(4): OSI์์ ์์ฉ, ํํ, ์ธ์ ์ ์ก
๊ณ์ธต(3): OSI์์ ์ ์ก์ธํฐ๋ท
๊ณ์ธต(2): OSI์์ ๋คํธ์ํฌ๋คํธ์ํฌ ์ ์
๊ณ์ธต(1): OSI์์ ๋ฐ์ดํฐ ๋งํฌ, ๋ฌผ๋ฆฌ
-
์บก์ํ: OSI 7๊ณ์ธต์์ ํํ, ์ธ์ ๊ณ์ธต์ ์์ฉ ๊ณ์ธต์ ํฌํจํ์ฌ ์๊ฐํ์ ๋, ์๋์ ๊ณผ์ ์
์บก์ํ
๋ผ๊ณ ํ๋ค.
์์ฉ ๊ณ์ธต(
๋ฐ์ดํฐ
์ ์ก) ->
์ ์ก ๊ณ์ธต((์ ์ก)ํค๋
+ ๋ฐ์ดํฐ ์ ์ก) ->
๋คํธ์ํฌ ๊ณ์ธต((๋คํธ์ํฌ)ํค๋
+ (์ ์ก)ํค๋ + ๋ฐ์ดํฐ ์ ์ก) ->
๋ฐ์ดํฐ๋งํฌ ๊ณ์ธต((๋คํธ์ํฌ ์ ์)ํค๋
+ (์ธํฐ๋ท)ํค๋ + (์ ์ก)ํค๋ + ๋ฐ์ดํฐ +ํธ๋ ์ผ๋ฌ
์ ์ก) ->
๋ฌผ๋ฆฌ ๊ณ์ธต(์ ๊ธฐ์ ์ ํธ
๋ก ์์ ์ธก์ ์ ์ก)
์ ๊ณผ์ ์ด ๊ฑฐ๊พธ๋ก ์์ ์ธก์์ ๊ฑฐ๊พธ๋ก ์ธต์ ์ฌ๋ผ๊ฐ๋ฉฐ ํค๋๋ฅผ ํด์ฒดํ๋ ์์ ์
์ญ์บก์ํ
JavaScript
ํจ์ ์ ์ธ๋ฌธ๊ณผ ํจ์ ๋ฆฌํฐ๋ด ๊ตฌ๋ถ
ํจ์ ์ ์ธ๋ฌธ์ ๊ฐ์ด ์๋ ๋ฌธ์ด๋ค! ์ฆ, ํํ์์ด ์๋๋ค.
function add(a, b) {
return a + b;
}
๊ทธ๋ฐ๋ฐ ํจ์๋ฅผ ์ด๋ฐ ์์ผ๋ก ํํํ ์ ์๋ค.
var add = function addMaker(a, b) {
return a + b;
};
ํ โฆ ์ ๋งคํ๋ค. ํจ์ ํํ์ ๊ฐ์ด ์๊ฒผ๋๋ฐ, ๋ค์๋ ์ต๋ช
์ด ์๋ ๊ธฐ๋ช
์ผ๋ก ๋ง์น ํจ์ ์ ์ธ๋ฌธ์ ๋ณ์ add์ ํ ๋นํ๊ณ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ธ๋ค.
๊ทผ๋ฐ ์์ ์์ ๋ถ๋ช
ํ ์๋ํ๊ณ , ๊ทธ๋ ๋ค๋ ๊ฒ์ ์ฐ๋ณ์ด ๊ฐ
์ผ๋ก ์์ฉํ์ฌ ๋ณ์์ ํ ๋น๋ ๊ฒ ์๋๊น ์๊ฐํ ์ ์๋ค.
์์ ๊ฐ์ ์ํฉ์์ ์ฐ๋ณ์ (๋ชจ์์ ํจ์ ์ ์ธ๋ฌธ๊ณผ ๊ฐ์ง๋ง) ํจ์ ๋ฆฌํฐ๋ด๋ก ํด์๋๋ค.
์ฆ, ํจ์ ์ ์ธ๋ฌธ์ผ๋ก์ ํด์๋๋ ๊ฒ ์๋ ํจ์ ๋ฆฌํฐ๋ด
๋ก์ ํด์๋๋ ํํ์์ธ ๊ฒ์ด๋ค.
{}๋ ์ํฉ์ ๋ฐ๋ผ ๋ธ๋ก๋ฌธ ํน์ ๊ฐ์ฒด ๋ฆฌํฐ๋ด๋ก ํด์๋ ์ ์๋ ๊ฒ๊ณผ ์ ์ฌ!
(function test() {
console.log('()์์ ์๋ ํจ์ ์ ์ธ๋ฌธ ๋ชจ์์ ํจ์ ๋ฆฌํฐ๋ด๋ก ํด์๋ฉ๋๋ค.');
});
test(); // ReferenceError: test is not defined -> ํจ์๊ฐ ์ ์ธ๋์ง ์์
/* ํจ์ ๋ฆฌํฐ๋ด์ด๊ธฐ์ ์ฆ์ ์คํ ํจ์๊ฐ ์๋์ ๊ฐ์ ๋ชจ์์ผ๋ก ์คํ ๊ฐ๋ฅํ ๊ฒ
()์์์์ ํจ์ ์ ์ธ๋ฌธ ๋ชจ์์ ํจ์ ๋ฆฌํฐ๋ด์ด๊ธฐ์ ๊ทธ ๋ค์ ๋ฐ๋ก ()๋ฅผ ๋ถ์ฌ์ ์คํํด๋ } ๋ค์ ;๊ฐ ์๋์ผ๋ก ๋ถ์ง ์๋๋ค. */
(function test() {
console.log('()์์ ์๋ ํจ์ ์ ์ธ๋ฌธ ๋ชจ์์ ํจ์ ๋ฆฌํฐ๋ด๋ก ํด์๋ฉ๋๋ค.');
})();