๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

    ๋Œ€๋ฆฌ์ž์™€ ์ต๋ช…๋ฉ”์†Œ๋“œ(1)

    ๋Œ€๋ฆฌ์ž์™€ ์ต๋ช…๋ฉ”์†Œ๋“œ(1)

    ์ฐธ๊ณ  ์˜์ƒ https://youtu.be/HNX_FZBU_wA ๋Œ€๋ฆฌ์ž(Delegator) - ์ฝ”๋“œ(๋ฉ”์†Œ๋“œ)๋ฅผ ๋Œ€์‹  ์‹คํ–‰ํ•˜๋Š” ๊ฐ์ฒด - ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋“ฏ ์‚ฌ์šฉ(์ฆ‰, ์ธ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ ๋ฐ›์Œ) - ๋‹จ, ๋Œ€๋ฆฌ์ž๊ฐ€ ์‹คํ–‰ํ•  ์ฝ”๋“œ๋Š” ์ปดํŒŒ์ผ ์‹œ์ ์ด ์•„๋‹Œ ์‹คํ–‰ ์‹œ์ ์— ๊ฒฐ์ • ๋Œ€๋ฆฌ์ž์˜ ์„ ์–ธ๊ณผ ์‚ฌ์šฉ (1) delegate ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ, ๋Œ€๋ฆฌ์ž ์„ ์–ธ delegate int MyDelegate(int a, int b); //์ธํ„ฐํŽ˜์ด์Šค ์„ ์–ธํ•  ๋•Œ ์ฒ˜๋Ÿผ ๊ตฌํ˜„์€ ์—†๋‹ค! ํ˜น์€ ํ•œ์ •์ž - delegate - ๋ฐ˜ํ™˜ํ˜• - ๋ธ๋ฆฌ๊ฒŒ์ดํŠธ๋ช…(๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชฉ๋ก) private delegate int MyDelegate(int a, int b); (2) ์‚ฌ์šฉ ์˜ˆ namespace Delegate // Note: actual namespace de..

    [๋ฆฌํŒฉํ„ฐ๋ง 2ํŒ] 12.10์„ ์ฝ๊ธฐ์— ์•ž์„œ ์œ„์ž„์ด๋ž€?

    [๋ฆฌํŒฉํ„ฐ๋ง 2ํŒ] 12.10์„ ์ฝ๊ธฐ์— ์•ž์„œ ์œ„์ž„์ด๋ž€?

    ์ฐธ๊ณ ๊ธ€ https://umbum.dev/822 Composition VS Extends : delegation, decorator, wrapper Effective Java : ์•„์ดํ…œ 18. (๊ธฐ๋Šฅ ํ™•์žฅ์ด ํ•„์š”ํ•  ๋•Œ)์ƒ์†๋ณด๋‹ค๋Š” ์ปดํฌ์ง€์…˜์„ ์‚ฌ์šฉํ•˜๋ผ [Effective Java] 4์žฅ ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์†์ด๋ž€? extends๋ฅผ ๋งํ•จ. (implements๋Š” ์•„๋‹˜. ์ด๊ฑด ๊ตฌํ˜„.) ์ปดํฌ์ง€์…˜์ด๋ž€? Compo umbum.dev ๋งํฌ ์š”์•ฝ: ์ƒ์†์€ extends ์ปดํฌ์ง€์…˜์€ ํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ๋‚ด๋ถ€ private ๋ณ€์ˆ˜๋กœ ๋‘๋Š” ๊ฒƒ(ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ๊ตฌ์„ฑ์š”์†Œ๋กœ ์“ฐ์ธ๋‹ค๋Š” ๋œป) ์ƒ์†๊ณผ ์ปดํฌ์ง€์…˜์˜ ์ฐจ์ด๋Š” ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜๋Š๋ƒ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์„œ delegateํ•˜๋Š๋ƒ์˜ ์ฐจ์ด๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 0. ์ƒ์† vs ๋ธ๋ฆฌ๊ฒŒ์ดํŠธ ์œ„์ž„(์ปดํฌ์ง€์…˜)..

    [๋ฆฌํŒฉํ„ฐ๋ง 2ํŒ] 12.7 ์„œ๋ธŒํด๋ž˜์Šค ์ œ๊ฑฐํ•˜๊ธฐ

    [๋ฆฌํŒฉํ„ฐ๋ง 2ํŒ] 12.7 ์„œ๋ธŒํด๋ž˜์Šค ์ œ๊ฑฐํ•˜๊ธฐ

    1. ์–ธ์ œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„๊นŒ ๋”์ด์ƒ ์“ฐ์ด์ง€ ์•Š๋Š” ์„œ๋ธŒํด๋ž˜์Šค์™€ ๋งˆ์ฃผํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ๊ฐ€์น˜ ์—†๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜๋Š๋ผ ์—๋„ˆ์ง€๋ฅผ ๋‚ญ๋น„ํ•  ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฐ ์ •๋„๊นŒ์ง€ ๋˜๋ฉด ์„œ๋ธŒํด๋ž˜์Šค๋ฅผ ์Šˆํผํด๋ž˜์Šค์˜ ํ•„๋“œ๋กœ ๋Œ€์ฒดํ•ด ์ œ๊ฑฐํ•˜๋Š” ๊ฒŒ ์ตœ์„ ์ด๋‹ค. ๋ถˆํ•„์š”ํ•œ ์„œ๋ธŒ ํด๋ž˜์Šค๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ๋Œ€์‹ ์— ์™ธ๋ถ€์—์„œ ์ „ํ˜€ ์•Œ ํ•„์š”์—†๋Š” ๋‚ด๋ถ€๋กœ์ง๋“ค์„ ์ž˜ ์บก์Šํ™”ํ•ด๋‘๊ณ , ์™ธ๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ฒŒ create๋ผ๋Š” ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ๋ฅผ ์ œ๊ณตํ•ด์ฃผ๊ณ , ๊ธฐํƒ€ ํ•„์š”ํ•œ ๋ฉ”์†Œ๋“œ๋ฅผ ์ž˜ ์ฑ™๊ฒจ์ฃผ๋„๋ก ํ•˜์ž. 2. ์ ˆ์ฐจ (1) ์„œ๋ธŒํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋ฅผ ํŒฉํ„ฐ๋ฆฌ ํ•จ์ˆ˜๋กœ ๋ฐ”๊พผ๋‹ค. -> ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ธก์—์„œ ๋ฐ์ดํ„ฐ ํ•„๋“œ๋ฅผ ์ด์šฉํ•ด ์–ด๋–ค ์„œ๋ธŒํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ• ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค๋ฉด ๊ทธ ๊ฒฐ์ • ๋กœ์ง์„ ์Šˆํผํด๋ž˜์Šค์˜ ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ์— ๋„ฃ๋Š”๋‹ค. (2) ์„œ๋ธŒํด๋ž˜์Šค์˜ ํƒ€์ž…์„ ๊ฒ€์‚ฌํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ทธ ๊ฒ€์‚ฌ ์ฝ”๋“œ์— ํ•จ์ˆ˜ ์ถ”์ถœํ•˜๊ธฐ์™€ ..

    [Node.js] (5) ์š”์ฒญ๊ณผ ์‘๋‹ต ์—ฐ๊ฒฐํ•˜๊ธฐ, ๋ฒ„ํผ ๊ฐœ๋… (๋ฆฌ๋””๋ ‰์…˜, ์œ ์ €์ž…๋ ฅ๊ฐ’ ํŒŒ์ผ์ƒ์„ฑ ํ›„ ์ €์žฅ)

    [Node.js] (5) ์š”์ฒญ๊ณผ ์‘๋‹ต ์—ฐ๊ฒฐํ•˜๊ธฐ, ๋ฒ„ํผ ๊ฐœ๋… (๋ฆฌ๋””๋ ‰์…˜, ์œ ์ €์ž…๋ ฅ๊ฐ’ ํŒŒ์ผ์ƒ์„ฑ ํ›„ ์ €์žฅ)

    (1)~(4)๊นŒ์ง€๋Š” ์„œ๋ฒ„๋ฅผ ์Šคํ•€ ์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ, ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ ์š”์ฒญ ๊ฐ์ฒด๋ฅผ ๋ฐ›๊ณ , ์‘๋‹ต์„ ๋Œ๋ ค์ค„ ์ˆ˜ ์žˆ๋Š” ์‘๋‹ต ๊ฐ์ฒด์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…์„ ์ž‘์„ฑํ•˜์˜€๋‹ค. ํ„ฐ๋ฏธ๋„ ์„œ๋ฒ„ ์ข…๋ฃŒ ctrl + c ์„œ๋ฒ„ ์žฌ์‹œ์ž‘ node app.js 1. ์‹ค์Šต์šฉ ์›น์„œ๋ฒ„ ์ฝ”๋“œ ์ž‘์„ฑ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•ด์ค€๋‹ค. const url = req.url; url์ด ๋ญ”์ง€์— ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ๋‚ด์šฉ์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ด์ฃผ๋„๋ก ํ•˜์ž. if (url === '/') { const http = require('http'); const server = http.createServer((req, res) => { const url = req.url; if (url === '/') { res.write(''); res.write(''); res.write(..

    [Node.js] (4) ์‘๋‹ต ์ „์†ก

    [Node.js] (4) ์‘๋‹ต ์ „์†ก

    const http = require('http'); const hostname = '127.0.0.1'; const port = 3001; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/html'); res.write(''); res.write(''); res.write('Hello from my Node.js Server!'); res.write(''); res.end('Hello Node'); //์ด ์‹œ์ ๋ถ€ํ„ฐ๋Š” ๋” ์ด์ƒ ์•„๋ฌด ๊ฒƒ๋„ ์ž…๋ ฅํ•ด์„œ๋Š” ์•ˆ๋จ //์ด ๋ถ€๋ถ„์€ ์šฐ๋ฆฌ๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ ๋‹ค์‹œ ์ „์†กํ•˜๋Š” ๋ถ€๋ถ„์œผ๋กœ, Node.js๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ ๋‹ค์‹œ ์ „์†กํ•˜๊ธฐ ๋•Œ๋ฌธ re..

    [๋ฆฌํŒฉํ„ฐ๋ง 2ํŒ] 12.6 ํƒ€์ž… ์ฝ”๋“œ๋ฅผ ์„œ๋ธŒํด๋ž˜์Šค๋กœ ๋ฐ”๊พธ๊ธฐ

    [๋ฆฌํŒฉํ„ฐ๋ง 2ํŒ] 12.6 ํƒ€์ž… ์ฝ”๋“œ๋ฅผ ์„œ๋ธŒํด๋ž˜์Šค๋กœ ๋ฐ”๊พธ๊ธฐ

    0. ๋ฆฌํŒฉํ† ๋ง ์ „ ์ „์ฒด ์ฝ”๋“œ class Employee { #name; #type; constructor(name, type) { this.validateType(type); this.#name = name; this.#type = type; } validateType(arg) { if (!['engineer', 'manager', 'salesperson'].includes(arg)) { throw new Error(`${arg}๋ผ๋Š” ์ง์› ์œ ํ˜•์€ ์—†์Šต๋‹ˆ๋‹ค.`); } } get type() { return this.#type; } toString() { return `${this.#name} (${this.#type})`; } } const mandoo = new Employee('๊ธฐํšํ•˜๋Š”๋งŒ๋‘', 'eng..

    [๋ฆฌํŒฉํ„ฐ๋ง 2ํŒ] 11.13 ์˜ˆ์™ธ๋ฅผ ์‚ฌ์ „ํ™•์ธ์œผ๋กœ ๋ฐ”๊พธ๊ธฐ

    [๋ฆฌํŒฉํ„ฐ๋ง 2ํŒ] 11.13 ์˜ˆ์™ธ๋ฅผ ์‚ฌ์ „ํ™•์ธ์œผ๋กœ ๋ฐ”๊พธ๊ธฐ

    0. ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์„๊นŒ? ์˜ˆ์™ธ๋„ (๋” ์ด์ƒ ์ข‹์ง€ ์•Š์„ ์ •๋„๊นŒ์ง€) ๊ณผ์šฉ๋˜๊ณค ํ•œ๋‹ค. ์˜ˆ์™ธ๋Š” '๋œป๋ฐ–์˜ ์˜ค๋ฅ˜'๋ผ๋Š”, ๋ง ๊ทธ๋Œ€๋กœ ์˜ˆ์™ธ์ ์œผ๋กœ ๋™์ž‘ํ•  ๋•Œ๋งŒ ์“ฐ์—ฌ์•ผ ํ•œ๋‹ค. ํ•จ์ˆ˜ ์ˆ˜ํ–‰์‹œ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ์กฐ๊ฑด์„ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ „์— ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๋Š” ๋Œ€์‹  ํ˜ธ์ถœํ•˜๋Š” ๊ณณ์—์„œ ์กฐ๊ฑด์„ ๊ฒ€์‚ฌํ•˜๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค. 1. ์ ˆ์ฐจ (1) ํŒฉํ„ฐ๋ฆฌ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค. ํŒฉํ„ฐ๋ฆฌ ํ•จ์ˆ˜์˜ ๋ณธ๋ฌธ์—์„œ๋Š” ์›๋ž˜์˜ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. (2) ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋˜ ์ฝ”๋“œ๋ฅผ ํŒฉํ„ฐ๋ฆฌ ํ•จ์ˆ˜ ํ˜ธ์ถœ๋กœ ๋ฐ”๊พผ๋‹ค. 2. ์˜ˆ์ œ ์ฝ”๋“œ (1) ๋ฆฌํŒฉํ„ฐ๋ง ์ „ ํ•ด๋‹น ์ฝ”๋“œ์˜ ๋ฌธ์ œ์  : ์ „๋‹ฌ๋ฐ›์€ ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด์„œ ๋ฐฐ์—ด์˜ ํŠน์ •ํ•œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ธ๋ฐ, ์ธ๋ฑ์Šค๋ฅผ ์ „๋‹ฌ๋ฐ›์„ ๋•Œ, ์ธ๋ฑ์Šค๊ฐ€ 0๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๋˜๋Š” ์ธ๋ฑ์Šค๊ฐ€ ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์˜ ์‚ฌ์ด์ฆˆ๋ณด๋‹ค ๋„˜์–ด๊ฐ€๋Š”๊ฑด ์‹คํŒจ ์ผ€์ด์Šค๋กœ ์ถฉ๋ถ„ํžˆ ์˜ˆ์ƒ(expected..

    [Node.js] (3) ์š”์ฒญ ๊ฐ์ฒด

    [Node.js] (3) ์š”์ฒญ ๊ฐ์ฒด

    const http = require('http'); const hostname = '127.0.0.1'; const port = 1080; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); console.log(req); res.end('Hello World'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); }); console.log(req); ์š”์ฒญ ๊ฐ์ฒด ํ—ค๋”๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ฆ‰, ์š”์ฒญ ๋ฐ ์‘๋‹ต์— ์ถ”๊ฐ€๋œ ๋ฉ”ํƒ€ ..

    [Node.js] (2) Node์˜ ๋ผ์ดํ”„์‚ฌ์ดํด ๋ฐ ์ด๋ฒคํŠธ ๋ฃจํ”„

    const http = require('http'); const server = http.createServer((req, res) => { console.log(req); }); server.listen(3000); ์œ„ ์ฝ”๋“œ๋กœ ์ƒ์„ฑํ•œ ์„œ๋ฒ„๋Š” ์ œ๋Œ€๋กœ ๊ธฐ๋Šฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์•„์ง ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค. Node.js๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์ด๋ฒคํŠธ ๋ฃจํ”„ ์ž‘์—…์ด ๋‚จ์•„ ์žˆ๋Š” ํ•œ ๊ณ„์†ํ•ด์„œ ์ž‘๋™ํ•˜๋Š” ๋ฃจํ”„ ํ”„๋กœ์„ธ์Šค๋กœ, ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๊ฐ€ ์žˆ๋Š”ํ•œ ๊ณ„์† ์ž‘๋™ํ•œ๋‹ค. ๋“ฑ๋ก ํ›„ ์ œ๊ฑฐํ•˜์ง€ ์•Š์•˜๋˜ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ(createServer์— ๊ณ„์†๋˜๋Š” ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ)๋Š” ์„œ๋ฒ„๊ฐ€ ๊ณ„์† ์šด์˜๋˜๊ธฐ ์œ„ํ•ด ์ œ๊ฑฐํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. ์ฝ”์–ด ๋…ธ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ด ์ด๋ฒคํŠธ ๋ฃจํ”„์— ์˜ํ•ด ๊ด€๋ฆฌ๋œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•  ๋•Œ๋„ ๋ฐ์ดํ„ฐ ์š”์ฒญ์„ ๋„ฃ์œผ๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ณ  ..

    [๋ฆฌํŒฉํ„ฐ๋ง 2ํŒ] 11.12 ์˜ค๋ฅ˜ ์ฝ”๋“œ๋ฅผ ์˜ˆ์™ธ๋กœ ๋ฐ”๊พธ๊ธฐ

    0. ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์„๊นŒ? ์˜ˆ์™ธ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์ œ๊ณตํ•˜๋Š” ๋…๋ฆฝ์ ์ธ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด ์˜ˆ์™ธ๋ฅผ ๋˜์ง„๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ ์ ˆํ•œ ์˜ˆ์™ธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ์ฝœ์Šคํƒ์„ ํƒ€๊ณ  ์œ„๋กœ ์ „ํŒŒ๋œ๋‹ค. (ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ฐพ์ง€ ๋ชปํ•˜๋ฉด ๋ณดํ†ต์€ ๋‹จ์ˆœ ๊ธฐ๋ณธ ๋™์ž‘์ด ์ˆ˜ํ–‰๋œ๋‹ค.) ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ฅ˜ ์ฝ”๋“œ๋ฅผ ์ผ์ผ์ด ๊ฒ€์‚ฌํ•˜๊ฑฐ๋‚˜ ์˜ค๋ฅ˜๋ฅผ ์‹๋ณ„ํ•ด ์ฝœ์Šคํƒ ์œ„๋กœ ๋˜์ง€๋Š” ์ผ์„ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ์˜ˆ์™ธ๋Š” ์ •ํ™•ํžˆ ์˜ˆ์ƒ ๋ฐ–์˜ ๋™์ž‘์ผ ๋•Œ๋งŒ ์“ฐ์—ฌ์•ผ ํ•œ๋‹ค. ๋‹ฌ๋ฆฌ ๋งํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์˜ ์ •์ƒ ๋™์ž‘ ๋ฒ”์ฃผ์— ๋“ค์ง€ ์•Š๋Š” ์˜ค๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ๋งŒ ์“ฐ์—ฌ์•ผ ํ•œ๋‹ค. (* ์˜ˆ์˜๋ฅผ ๋˜์ง€๋Š” ์ฝ”๋“œ๋ฅผ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์ฝ”๋“œ๋กœ ๋ฐ”๊ฟ”๋„ ํ”„๋กœ๊ทธ๋žจ์ด ์—ฌ์ „ํžˆ ์ •์ƒ ๋™์ž‘ํ• ์ง€๋ฅผ ๋”ฐ์ ธ๋ณด์ž. ์ •์ƒ ๋™์ž‘ํ•˜์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™๋‹ค๋ฉด ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ง๋ผ๋Š” ์‹ ํ˜ธ์ด๋‹ค. ์˜ˆ์™ธ ๋Œ€์‹  ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์ถœํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ •์ƒ..