๋ณ€์ˆ˜๋ž€?

๊ฐ’์˜ ์œ„์น˜(์ฃผ์†Œ)๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ์ €์žฅ์†Œ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ๊ฐ’์˜ ์œ„์น˜๋ž€ ๊ฐ’์ด ์œ„์น˜ํ•˜๊ณ  ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ƒ์˜ ์ฃผ์†Œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

์ฆ‰, ๋ณ€์ˆ˜๋ž‘ ๊ฐ’์ด ์œ„์น˜ํ•˜๊ณ  ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ๋žŒ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๋กœ ๋ช…๋ช…ํ•œ ์‹๋ณ„์ž์ด๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ณ€์ˆ˜

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋™์ ํƒ€์ž…์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์ˆ˜์˜ ํƒ€์ž… ์ง€์ • ์—†์ด ๊ฐ’์ด ํ• ๋‹น ๋˜๋Š” ๊ณผ์ •์—์„œ ์ž๋™์œผ๋กœ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๊ฒฐ์ •๋œ๋‹ค.(Type Inference) ๋”ฐ๋ผ์„œ ๋ณ€์ˆ˜์— ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํƒ€์ž…์˜ ๊ฐ’์„ ์ž์œ ๋กญ๊ฒŒ ํ• ๋‹น ํ•  ์ˆ˜ ์žˆ๋‹ค.


๋ฐ์ดํ„ฐ ํƒ€์ž…

๋ฐ์ดํ„ฐ ํƒ€์ž…(Data Type)์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜๋ฅผ ๋งํ•œ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์›์‹œํƒ€์ž…๊ณผ ๊ฐ์ฒด ํƒ€์ž…์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ง„๋‹ค.

 

์›์‹œํƒ€์ž…( primitive data type)

- boolean

- null

- undefined

- number

- string

- symbol(ES6)

 

๊ฐ์ฒด ํƒ€์ž…(object / reference type)

- object

 

์›์‹œ ํƒ€์ž…(Primitive Data Type)

์›์‹œ ํƒ€์ž…์€ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ’(immutable value)์ด๋ฉฐ pass-by-value(๊ฐ’์— ์˜ํ•œ ์ „๋‹ฌ)์ด๋‹ค.

 

number

Java์˜ ๊ฒฝ์šฐ ์ •์ˆ˜์™€ ์‹ค์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ int, long, double ๋“ฑ๊ณผ ๊ฐ™์ด ๋‹ค์–‘ํ•œ ์ˆซ์ž ํƒ€์ž…์ด ์กด์žฌํ•˜์ง€๋งŒ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” number ํ•˜๋‚˜์˜ ์ˆซ์ž ํƒ€์ž…๋งŒ ์กด์žฌํ•œ๋‹ค.+) Infinity : ์–‘์˜ ๋ฌดํ•œ๋Œ€, -Infinity : ์Œ์˜ ๋ฌดํ•œ๋Œ€, NaN : ์‚ฐ์ˆ  ์—ฐ์‚ฐ ๋ถˆ๊ฐ€ (not-a-number)

 

string

๋ฌธ์ž์—ด ํƒ€์ž…์€ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฌธ์ž์—ด์€ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด์™€ ๊ฐ™์€ ํŠน์„ฑ์„ ๊ฐ–๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์‚ฌ๋ฐฐ์—ด์ด๋ผ ํ•œ๋‹ค.๊ทธ๋ ‡๋‹ค๊ณ ํ•ด์„œ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.  ์žฌํ• ๋‹น์€ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

boolean

๋ถˆ๋ฆฌ์–ธ ํƒ€์ž…์˜ ๊ฐ’์€ ๋…ผ๋ฆฌ์  ์ฐธ, ๊ฑฐ์ง“์„ ๋‚˜ํƒ€๋‚ด๋Š” true์™€ false ๋ฟ์ด๋‹ค.๋น„์–ด์žˆ๋Š” ๋ฌธ์ž์—ด๊ณผ null, undefined, ์ˆซ์ž 0์€ false๋กœ ๊ฐ„์ฃผ๋œ๋‹ค.

 

undefined

undefined ํƒ€์ž…์˜ ๊ฐ’์€ undefined๊ฐ€ ์œ ์ผํ•˜๋‹ค. ์„ ์–ธ ์ดํ›„ ๊ฐ’์„ ํ• ๋‹นํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜๋Š” undefined๊ฐ’์„ ๊ฐ€์ง„๋‹ค. ์ด๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ์— ์˜ํ•ด ํ™•๋ณด๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ฒ˜์Œ ํ• ๋‹น์ด ์ด๋ฃจ์–ด์งˆ ๋•Œ ๊นŒ์ง€ ๋นˆ ์ƒํƒœ๋กœ ๋‚ด๋ฒ„๋ ค๋‘์ง€ ์•Š๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด undefined๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์ด๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜๋„์ ์œผ๋กœ ๊ฐ’์„ ํ• ๋‹นํ•˜์ง€ ์•Š์„ ๋•Œ๋Š” ํ—ท๊ฐˆ๋ฆฌ์ง€ ์•Š๊ฒŒ null์„ ํ• ๋‹นํ•œ๋‹ค.

null

null ํƒ€์ž…์˜ ๊ฐ’์€ null์ด ์œ ์ผํ•˜๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ณ„ํ•˜๋ฏ€๋กœ null์€ Null, NULL๊ณผ ๋‹ค๋ฅด๋‹ค.null์€ ์˜๋„์ ์œผ๋กœ ๋ณ€์ˆ˜์— ๊ฐ’์ด ์—†๋‹ค๋Š”๊ฒƒ์„ ๋ช…์‹œ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋Š” ๋ณ€์ˆ˜๊ฐ€ ๊ธฐ์–ตํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์–ด๋“œ๋ ˆ์Šค์˜ ์ฐธ์กฐ ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋ฉฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ๋ˆ„๊ตฌ๋„ ์ฐธ์กฐํ•˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ๋Œ€ํ•ด ๊ฐ€๋น„์ง€ ์ฝœ๋ ‰์…˜์„ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ด๋‹ค.

 

ํƒ€์ž…์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” typeof ์—ฐ์‚ฐ์ž๋กœ null๊ฐ’์„ ์—ฐ์‚ฐํ•ด๋ณด๋ฉด null์ด ์•„๋‹Œ object๊ฐ€ ๋‚˜์˜จ๋‹ค ๊ทธ๋Ÿฌ๋ฏ€๋กœ nullํƒ€์ž…์„ ํ™•์ธํ•  ๋•Œ๋Š” typeof๋ง๊ณ  === ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค

var foo = null;
console.log(typeof foo === null); // false
console.log(foo === null);        // true

symbol

์‹ฌ๋ณผ(symbol)์€ ES6์—์„œ ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ 7๋ฒˆ์งธ ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ์›์‹œ ํƒ€์ž…์˜ ๊ฐ’์ด๋‹ค. ์‹ฌ๋ณผ์€ ์ฃผ๋กœ ์ด๋ฆ„์˜ ์ถฉ๋Œ ์œ„ํ—˜์ด ์—†๋Š” ์œ ์ผํ•œ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ ํ‚ค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

// ์‹ฌ๋ณผ key๋Š” ์ด๋ฆ„์˜ ์ถฉ๋Œ ์œ„ํ—˜์ด ์—†๋Š” ์œ ์ผํ•œ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ ํ‚ค
var key = Symbol('key');
console.log(typeof key); // symbol

var obj = {};
obj[key] = 'value';
console.log(obj[key]); // value

 


๊ฐ์ฒดํƒ€์ž…(Object type, Reference type)

๊ฐ์ฒด๋Š” ๋ฐ์ดํ„ฐ์™€ ๊ทธ ๋ฐ์ดํ„ฐ์— ๊ด€๋ จํ•œ ๋™์ž‘(์ ˆ์ฐจ,๋ฐฉ๋ฒ•,๊ธฐ๋Šฅ)์„ ๋ชจ๋‘ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋…์  ์กด์žฌ์ด๋‹ค.

๊ฐ์ฒด๋Š” ์›์‹œํƒ€์ž…์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๊ฐ’๋“ค์ด ๋ชจ๋‘ ๊ฐ์ฒด์ด๊ณ  ๊ฐ์ฒด๋Š” pass-by-reference(์ฐธ์กฐ์— ์˜ํ•œ ์ „๋‹ฌ) ๋ฐฉ์‹์œผ๋กœ ์ „๋‹ฌ๋œ๋‹ค.


๋ณ€์ˆ˜

๋ณ€์ˆ˜๋Š” var,let,const ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์„ ์–ธํ•˜๊ณ  ํ• ๋‹น์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹๋ณ„์ž์ธ ๋ณ€์ˆ˜๋ช…์„ ์‚ฌ์šฉํ•ด ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฐ’์„ ์ฐธ์กฐํ•œ๋‹ค.

 

๋™์  ํƒ€์ดํ•‘(Dynamic Typing)

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋™์  ํƒ€์ž…(dynamic/ weak type)์–ธ์–ด์ด๋‹ค. ์ด๊ฒƒ์€ ๋ณ€์ˆ˜์˜ ํƒ€์ž… ์ง€์ • ์—†์ด ๊ฐ’์ด ํ• ๋‹น๋˜๋Š” ๊ณผ์ •์—์„œ ๊ฐ’์˜ ํƒ€์ž…์— ์˜ํ•ด ์ž๋™์œผ๋กœ ํƒ€์ž…์ด ๊ฒฐ์ • ๋  ๊ฒƒ์ด๋ผ๋Š” ๋œป์ด๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ™์€ ๋ณ€์ˆ˜์— ์—ฌ๋Ÿฌ ํƒ€์ž…์˜ ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ฅผ ๋™์  ํƒ€์ดํ•‘(Dynamic Typing)์ด๋ผํ•œ๋‹ค.

 

 

 

์ฐธ๊ณ 

poiemaweb.com/js-data-type-variable

 

Data type & Variable | PoiemaWeb

๋ณ€์ˆ˜๋Š” ๊ฐ’์˜ ์œ„์น˜(์ฃผ์†Œ)๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ์ €์žฅ์†Œ์ด๋‹ค. ๊ฐ’์˜ ์œ„์น˜๋ž€ ๊ฐ’์ด ์œ„์น˜ํ•˜๊ณ  ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ƒ์˜ ์ฃผ์†Œ(address)๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ฆ‰, ๋ณ€์ˆ˜๋ž€ ๊ฐ’์ด ์œ„์น˜ํ•˜๊ณ  ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ(Memory address)์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด

poiemaweb.com

 

๐Ÿ’ก Destructuring Assignment (๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น)

๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์ด๋ž€ ๋ง ์˜๋ฏธ ๊ทธ๋Œ€๋กœ ๊ฐ์ฒด, ๋ฐฐ์—ด์˜ ๊ตฌ์กฐ๋ฅผ ๋ถ„ํ•ดํ•˜์—ฌ ๋ถ„ํ•ดํ•œ ๊ฐ’์„ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

(๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น ๊ตฌ๋ฌธ์€ ๋ฐฐ์—ด์˜ ๊ฐ’์ด๋‚˜ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ๋ณ„๊ฐœ์˜ ๋ณ€์ˆ˜๋กœ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๊ฒŒํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹)


๐Ÿ’ก ๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น 

let arr = ["dong","hwi"];

// ๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด 
let [firstName, surname] = arr;

console.log(firstName);
console.log(surname);

// ๋ฐฐ์—ด์œผ๋กœ ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ  ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋๋‹ค.

split(' ') ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

let [firstname, surname] = "kim dong".split(' ');

* ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์„ ํ•œ๋‹ค๊ณ  ํ•ด์„œ ๊ธฐ์กด์˜ arr๋Š” ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค.

 

1. ์‰ผํ‘œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์†Œ๋ฅผ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.

// ๋‘ ๋ฒˆ์งธ ์š”์†Œ๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์Œ
let [firstName, , title] = ["Julius", "Caesar", "Consul", "of the Roman Republic"];

alert( title ); // Consul

2. ํ• ๋‹น ์—ฐ์‚ฐ์ž ์ขŒ์ธก์—” ๋ญ๋“ ์ง€ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

ํ• ๋‹น ์—ฐ์‚ฐ์ž ์ขŒ์ธก์—” ํ• ๋‹น ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋ผ๋ฉด ์–ด๋–ค ๊ฒƒ์ด๋“ ์ง€ ์˜ฌ์ˆ˜ ์žˆ๋‹ค.(๊ฐ์ฒด ํ”„๋กœํผํ‹ฐ๋„ ๊ฐ€๋Šฅ)

let user = {};
[user.name, user.surname] = "kim hwi".split(' ');

console.log(user.name);

3. entries()๋กœ ๋ฐ˜๋ณตํ• ์ˆ˜ ์žˆ๋‹ค.

let user = {
	name : 'john',
	age:30
};

for(let[key, value] of Object.entries(user)){
	console.log(`${key} : ${value}`);
}

4.'...'๋กœ ๋‚˜๋จธ์ง€ ์š”์†Œ ๋ฐฐ์—ด๋กœ๊ฐ€์ ธ์˜ค๊ธฐ

let [name1, name2, ...rest] = ['a','b','c','d','e'];

console.log(name1);
console.log(name2);

console.log(rest[0]);	// c
console.log(rest[1]);	// d

rest๋ง๊ณ  ๋‹ค๋ฅธ ๋ณ€์ˆ˜๋ช…๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜์ง€๋งŒ ๋ณ€์ˆ˜๋ช… ์•ž์— . ์„ธ๊ฐœ๋ฅผ ๊ผญ ์ง€์ผœ์ค˜์•ผํ•œ๋‹ค.


๐Ÿ’ก ๊ฐ์ฒด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น

let options = {
	title: "menus",
    width:100,
    height:200
};

let {title, width, height} = options;

console.log(title);
console.log(width);
console.log(height);

์ฐธ๊ณ 

ko.javascript.info/destructuring-assignment

 

๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น

 

ko.javascript.info

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ฐ์ฒด ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ•๋“ค์ด ์žˆ๋Š”๋ฐ ES6์—์„œ ๊ฐ์ฒด๋ฅผ ์ดˆ๊ธฐํ™” ํ•  ๋•Œ ๊ฐ์ฒด์˜ ์†์„ฑ๊ณผ ๊ฐ’์˜ ์ด๋ฆ„์ด ๋™์ผ ํ•  ๊ฒฝ์šฐ ์ข€ ๋” ๊ฐ„ํŽธํ•˜๊ฒŒ ๊ฐ์ฒด๋ฅผ ์ดˆ๊ธฐํ™” ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ๋‚˜์™”๋‹ค.

Shorthand Properties

์˜ˆ์ œ๋ฅผ ๋ณด๋ฉด ๋” ๋น ๋ฅด๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

var animation ='๋ชจ์•„๋‚˜';
var movies = ['์‚ผ์ง„๊ทธ๋ฃน ์˜์–ดํ† ์ต๋ฐ˜','์ •์งํ•œ ํ›„๋ณด'];

// ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
var favorite ={
    animation : animation,
    movies : movies
};
// ES6
var favorite ={
    animation,
    movies
};

์ด๋ ‡๊ฒŒ ํ”„๋กœํผํ‹ฐ์˜ key์˜ ์ด๋ฆ„๊ณผ value์˜ ์ด๋ฆ„์ด ๊ฐ™๋‹ค๋ฉด ์ถ•์•ฝํ•ด์„œ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

๐Ÿ’ก ๊ธฐ์กดํ•จ์ˆ˜ vs ํ™”์‚ดํ‘œ ํ•จ์ˆ˜

๊ธฐ์กด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜

// ํ•จ์ˆ˜ํ‘œํ˜„์‹
let test = function(){console.log("์•ˆ๋…•")};	// ์•ˆ๋…•

// ํ™”์‚ดํ‘œ ํ•จ์ˆ˜
let test = () => console.log("์•ˆ๋…•");	// ์•ˆ๋…•

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ 

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ํ•ญ์ƒ ์ต๋ช… ํ•จ์ˆ˜์ด๋‹ค.

// ๋งค๊ฐœ๋ณ€์ˆ˜ X
let test = () => console.log('์•ˆ๋…•');
console.log(test);
test();

//	() => console.log('์•ˆ๋…•')
//	์•ˆ๋…•

// ๋งค๊ฐœ๋ณ€์ˆ˜ 1๊ฐœ
let test = x => x;
test(1);
// 1

// ๋งค๊ฐœ๋ณ€์ˆ˜ 2๊ฐœ
let test =(a,b) => {return a+b};
test(1,2)
// 3

// return์ด ์—†๋Š” ๊ฒฝ์šฐ
let test = (a,b) => {a+b};
test(1,2);
// undefined

// ์—ฌ๋Ÿฌ์ค„์„ ์ž‘์„ฑํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ
let test = (a,b) => {
	let c = 3;
	return a+b+c;
    }
test(1,2);
// 6


{}๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ return์„ ๊ผญ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

{}๋Š” ์ฝ”๋“œ๋ฅผ ์—ฌ๋Ÿฌ์ค„ ์ž‘์„ฑํ•ด์•ผํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.


๐Ÿ’ก ๊ธฐ๋ณธ๊ฐ’ ๋งค๊ฐœ๋ณ€์ˆ˜ (default function paramerter)

๊ธฐ์กด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

function multi(a,b)
{
    b = (typeof b != 'undefined') ? b : 1;
    return a * b
}

console.log(multi(5,2));	// 10
console.log(multi(5));		// 5

 

ES6

// ES2015(ES6)
function multi(a,b=1)
{
	return a * b;
}

console.log(multi(5,2));	// 10
console.log(multi(5));		// 5

- ๊ธฐ์กด์—๋Š” ๋””ํดํŠธ๋ฅผ ์ง€์ •ํ• ์ˆ˜ ์—†์–ด ์ฝ”๋“œ์•ˆ์—์„œ ์„ค์ •์„ ํ•ด์•ผ ํ–ˆ์ง€๋งŒ ES6์—์„œ๋Š” ๋ฐ”๋กœ ์„ค์ •ํ• ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

 

++ this ๋ถ€๋ถ„ ์ถ”๊ฐ€ํ•˜๊ธฐ

 

์ฐธ๊ณ 

velog.io/@ki_blank/JavaScript-%ED%99%94%EC%82%B4%ED%91%9C-%ED%95%A8%EC%88%98Arrow-function

 

JavaScript - ํ™”์‚ดํ‘œ ํ•จ์ˆ˜(Arrow function)

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ES6๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค. function ํ‚ค์›Œ๋“œ ์‚ฌ์šฉํ•ด์„œ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“  ๊ฒƒ๋ณด๋‹ค ๊ฐ„๋‹จํžˆ ํ•จ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ํ•ญ์ƒ ์ต๋ช…์ž…๋‹ˆ๋‹ค. 1. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธ๋ฌธ๋ฒ• ์ฝœ๋ฐฑ ํ•จ์ˆ˜์—์„œ๋„ ์‚ฌ์šฉ

velog.io

ko.javascript.info/arrow-functions-basics

 

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ๊ธฐ๋ณธ

 

ko.javascript.info

jeong-pro.tistory.com/110

 

ES6 ํ™”์‚ดํ‘œ ํ•จ์ˆ˜(arrow function) ๋ณ€๊ฒฝ์  ์š”์•ฝ (์‚ฌ์šฉ๋ฒ•, this๋“ฑ)

Arrow function 1. ์‚ฌ์šฉ๋ฒ• 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 //๊ธฐ์กด์˜ function sample var double = function(x){     return x*2; } //arrow function sample const double =..

jeong-pro.tistory.com

 

๐Ÿ’ก Template Literals

- ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์€ ๋‚ด์žฅ๋œ ํ‘œํ˜„์‹์„ ํ—ˆ์šฉํ•˜๋Š” ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์ž…๋‹ˆ๋‹ค.

- ์—ฌ๊ธฐ์„œ ๋ฆฌํ„ฐ๋Ÿด(Literal)์€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

- ๊ณ ๋กœ ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์€ ํ‘œํ˜„์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

- ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์€ ๋ฐฑํ‹ฑ(`` , ์ˆซ์ž 1 ์˜†์— ์žˆ๋‹ค)(grave accent)๊ณผ ${expression}์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. 

 

[ํŠน์ง•]

- ํ•ญ์ƒ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ์ค„๋ฐ”๊ฟˆ ํ•  ๋•Œ \n์„ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์€ ๊ทธ๋ƒฅ ์—”ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„์–ด์ฃผ๋ฉด ๋œ๋‹ค.

- ๋ฐฑํ‹ฑ(``)์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์Œ๋”ฐ์˜ดํ‘œ(''), ํฐ๋”ฐ์˜ดํ‘œ("")๋ฅผ ์ด์Šค์ผ€์ด์Šค๋ฌธ ์—†์ด ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋‹ค. 

๐Ÿ’ก ์˜ˆ์‹œ

var a = 5;
var b = 10;
console.log(`Fifteen is ${a + b} and
not ${2 * a + b}.`);
// "Fifteen is 15 and
// not 20."

 

 

 

 

 

์ฐธ๊ณ )

developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Template_literals

 

Template literals - JavaScript | MDN

ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์€ ๋‚ด์žฅ๋œ ํ‘œํ˜„์‹์„ ํ—ˆ์šฉํ•˜๋Š” ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์ค„๋กœ ์ด๋ค„์ง„ ๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž ๋ณด๊ฐ„๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์˜ ES2015์‚ฌ์–‘ ๋ช…์„ธ์—์„œ๋Š” "template strings" (ํ…œํ”Œ๋ฆฟ ๋ฌธ

developer.mozilla.org

 

 

๐Ÿ’ก ๋ณ€์ˆ˜์˜ ์ƒ์„ฑ ๋‹จ๊ณ„

1. ์„ ์–ธ๋‹จ๊ณ„(Declaration phase)

     ๋ณ€์ˆ˜ ๊ฐ์ฒด์— ๋ณ€์ˆ˜๋ฅผ ๋“ฑ๋กํ•œ๋‹ค. ์ด ๋ณ€์ˆ˜ ๊ฐ์ฒด๋Š” ์Šค์ฝ”ํ”„๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๋Œ€์ƒ์ด ๋œ๋‹ค.

2. ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„ (Initialization phase)

    ๋ณ€์ˆ˜ ๊ฐ์ฒด์— ๋“ฑ๋ก๋œ ๋ณ€์ˆ˜๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹นํ•œ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ ๋ณ€์ˆ˜๋Š” undefined๋กœ ์ดˆ๊ธฐํ™” ๋œ๋‹ค.

3. ํ• ๋‹น ๋‹จ๊ณ„( Assignment phase)

    undefined๋กœ ์ดˆ๊ธฐํ™”๋œ ๋ณ€์ˆ˜์— ์‹ค์ œ ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค.

๐Ÿ’ก var์˜ ๋ฌธ์ œ์ 

1. ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„(Function-level scope)

   - ์ „์—ญ ๋ณ€์ˆ˜ ๋‚จ๋ฐœ

   - for๋ฌธ ์ดˆ๊ธฐํ™”์‹์—์„œ ์‚ฌ์šฉํ•œ ๋ณ€์ˆ˜๋ฅผ ์™ธ๋ถ€์—์„œ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค.

2. var ํ‚ค์›Œ๋“œ ์ƒ๋žต ํ—ˆ์šฉ

    - ์˜๋„ํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜์˜ ์ „์—ญํ™”

3. ์ค‘๋ณต ์„ ์–ธ ํ—ˆ์šฉ

   - ์˜๋„ํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜๊ฐ’ ๋ณ€๊ฒฝ

4. ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ…

   - ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ธฐ ์ „์— ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค

๐Ÿ’ก ํ˜ธ์ด์ŠคํŒ…(Hoisting)์ด๋ž€?

- ํ˜ธ์ด์ŠคํŒ…์€ var , let , const, function ๋“ฑ ๋ชจ๋“  ์„ ์–ธ์„ ์œ ํšจ๋ฒ”์œ„(scope)์— ๋”ฐ๋ผ ๊ฐ€์žฅ ์œ„๋กœ ๋Œ์–ด์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์ด๋‹ค.

- ํ˜ธ์ด์ŠคํŒ…์œผ๋กœ ์ดˆ๊ธฐํ™” ๋œ ๊ฐ’์€ ์ œ์™ธํ•˜๊ณ  ์„ ์–ธ๋งŒ ๋Œ์–ด ์˜ฌ๋ฆฐ๋‹ค.

- ์„ ์–ธ๊ณผ ํ• ๋‹น์˜ ๋ถ„๋ฆฌ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๋‹ค.

- ์œ ํšจ๋ฒ”์œ„์—๋Š” 'ํ•จ์ˆ˜๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„'์™€ '๋ธ”๋Ÿญ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„'๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

- var๋Š” ํ•จ์ˆ˜๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„์ด๊ณ  let,const๋Š” ๋ธ”๋Ÿญ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„์ด๋‹ค. 

- var๋Š” ์ดˆ๊ธฐ ๊ฐ’์ด ์—†๋‹ค๋ฉด ์„ ์–ธ์™€ ๋™์‹œ์— undefined๋กœ ์ดˆ๊ธฐํ™” ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„ ์–ธ ์ „์—๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ’ก var , let , const ๋น„๊ต

  var let const
์žฌ์„ ์–ธ๊ฐ€๋Šฅ์—ฌ๋ถ€ ๊ฐ€๋Šฅ ๋ถˆ๊ฐ€๋Šฅ ๋ถˆ๊ฐ€๋Šฅ
์Šค์ฝ”ํ”„ ํ•จ์ˆ˜๋ ˆ๋ฒจ ๋ธ”๋Ÿญ๋ ˆ๋ฒจ ๋ธ”๋Ÿญ๋ ˆ๋ฒจ
์ดˆ๊ธฐ๊ฐ’ ์„ ํƒ ์„ ํƒ ํ•„์ˆ˜
๊ฐ’ ์žฌํ• ๋‹น ์—ฌ๋ถ€  ๊ฐ€๋Šฅ ๊ฐ€๋Šฅ ๋ถˆ๊ฐ€๋Šฅ
์„ ์–ธ ์ „ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ถˆ๊ฐ€๋Šฅ ๋ถˆ๊ฐ€๋Šฅ

 

๐Ÿ’™ const ์™€ let  ๊ฐ’ ๋ณ€๊ฒฝ ์—ฌ๋ถ€์—์„œ ํ—ท๊ฐˆ๋ฆด์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ์žˆ์–ด์„œ ์ฒจ์–ธํ•ด๋ณด์ž๋ฉด (๋‚˜๋„ ํ—ท๊ฐˆ๋ ธ๋‹ค.)

      ์—ฌ๊ธฐ์„œ ๋ณ€๊ฒฝ์€ ๊ฐ’์˜ ๋ณ€๊ฒฝ์ด ์•„๋‹ˆ๋ผ '๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ'์˜ ๋ณ€๊ฒฝ์ด๋‹ค.

       let ์€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅ ํ•˜๊ณ  const ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

let Arr = [];
Arr.push(1);
Arr.push(2);
Arr.push(3);

//	Arr ๋ฐฐ์—ด์•ˆ์—์„œ ๊ฐ’์ด ์ถ”๊ฐ€๋˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋Š” ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค.
//	๊ทธ๋ž˜์„œ const๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค.

const Arr = [];
Arr.push(1);
Arr.push(2);
Arr.push(3);

๐Ÿ’ก ์˜ˆ์‹œ 

console.log(num);		// undefined
var num;

 

์ฐธ๊ณ 

poiemaweb.com/es6-block-scope

 

let, const | PoiemaWeb

ES5๊นŒ์ง€ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ var ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. var ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ง•์ด ์žˆ๋‹ค. ์ด๋Š” ๋‹ค๋ฅธ ์–ธ์–ด์™€๋Š” ๋‹ค๋ฅธ ํŠน์ง•์œผ๋กœ ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ด์ง€ ์•Š์œผ๋ฉด

poiemaweb.com

 

@keyframes

- @keyframes๋Š” css ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ •์˜ํ•˜๋Š” ๋ฌธ๋ฒ•์œผ๋กœ ๊ฐ ๊ตฌ๊ฐ„์— ์–ด๋–ค ์Šคํƒ€์ผ๋กœ ์ ์šฉํ•œ์ง€ ์ง€์ •ํ•œ๋‹ค.

- ๊ตฌ์„ฑ์š”์†Œ

   1. animation name : @keyframes ์ •์˜ํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ ์šฉํ•  ๋•Œ ํ•„์š”ํ•œ ์ด๋ฆ„ (๋‚ด๊ฐ€ ์ •ํ•œ๋‹ค)

   2. ๊ตฌ๊ฐ„ : from to / 0 - 100%

   3. css ์Šคํƒ€์ผ : ๊ตฌ๊ฐ„์— ์ ์šฉ์‹œํ‚ฌ ์Šคํƒ€์ผ

 

animation

- @keyframes ์—์„œ ์ •์˜ํ•œ animation์„ css animation ์†์„ฑ์„ ํ†ตํ•ด ์‚ฌ์šฉ ํ• ์ˆ˜ ์žˆ๋‹ค.

- animation  ์†์„ฑ

  : animation-duration, animation-timing-function, animation-delay ๋“ฑ๋“ฑ์ด ์žˆ๋‹ค. 

    (๋” ๋งŽ์€ ์†์„ฑ์„ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์ฐธ๊ณ ์— MDN ์‚ฌ์ดํŠธ๋ฅผ ํ™•์ธ)

  

๐Ÿ’ก ์˜ˆ์‹œ

@keyframes ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ด๋ฆ„
{
	from {
		// ์ ์šฉ์‹œํ‚ฌ CSS
	 }
	 to {
		// ์ ์šฉ์‹œํ‚ฌ CSS
	 }
}

// ์˜ˆ์‹œ ------------------------------------------------------------------------------
@keyframes fadeIn
{
	from {
	   opacity: 0;
	 }
	 to {
	   opacity: 1;
	 }
}
.bgImage
{
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height: 100%;
	z-index: -1;
	animation: fadeIn .5s linear;
}
์ฐธ๊ณ 
webdesign.tutsplus.com/ko/tutorials/a-beginners-introduction-to-css-animation--cms-21068developer.mozilla.org/ko/docs/Web/CSS/animation

 

 

CSS ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ดˆ๋ณด์ž ์ž…๋ฌธ์„œ

์š”์ฆ˜์—๋Š” ์ ์  ๋” ๋งŽ์€ ์›น์‚ฌ์ดํŠธ๋“ค์ด GIF, SVG, WebGL, ๋ฐฐ๊ฒฝ ๋น„๋””์˜ค ๋“ฑ์˜ ํ˜•ํƒœ๋ฅผ ์ด์šฉํ•˜์—ฌ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์‚ฌ์šฉํ•˜๊ณ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์›น ์ƒ์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜๋“ค์€ ์›น์‚ฌ์ดํŠธ์˜ ํ™œ๋ ฅ์„ ๋ถˆ์–ด๋„ฃ๊ณ 

webdesign.tutsplus.com

 

'CSS > ๊ฐœ๋…' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[CSS] ๊ฐ€์ƒ์„ ํƒ์ž :after(::after)  (0) 2021.01.06

๊ฐ€์ƒ์š”์†Œ 

- css ์˜์‚ฌ์š”์†Œ(๊ฐ€์ƒ์š”์†Œ)๋Š” ์„ ํƒ์ž์— ์ถ”๊ฐ€ํ•˜๋Š” ํ‚ค์›Œ๋“œ๋กœ, ์„ ํƒํ•œ ์š”์†Œ์˜ ์ผ๋ถ€๋ถ„์—๋งŒ ์Šคํƒ€์ผ์„ ์ž…ํž ์ˆ˜ ์žˆ๋‹ค. 

๊ฐ€์ƒ์„ ํƒ์ž :after(::after)

css์—์„œ :after๋Š” ์„ ํƒํ•œ ์š”์†Œ์˜ ๋งจ๋งˆ์ง€๋ง‰ ์ž์‹์œผ๋กœ ๊ฐ€์ƒ์š”์†Œ๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•œ๋‹ค.

๋ณดํ†ต content ์†์„ฑ๊ณผ ํ•จ๊ฒŒ ์ง์ง€์–ด, ์š”์†Œ์— ์žฅ์‹์šฉ ์ฝ˜ํ…์ธ ๋ฅผ ์ถ”๊ฐ€ํ•  ๋–„ ์‚ฌ์šฉํ•œ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ ์ธ๋ผ์ธ์ด๋‹ค.

์ถ”๊ฐ€๋œ ์š”์†Œ๋Š” ์†Œ์Šค ์•ˆ์—์„œ ::after ๋ผ๋Š” ํ˜•์‹์œผ๋กœ ๋ณด์—ฌ์ง„๋‹ค.

 

 

์ฐธ๊ณ 

developer.mozilla.org/ko/docs/Web/CSS/::after

 

::after (:after) - CSS: Cascading Style Sheets | MDN

CSS์—์„œ, ::after๋Š” ์„ ํƒํ•œ ์š”์†Œ์˜ ๋งจ ๋งˆ์ง€๋ง‰ ์ž์‹์œผ๋กœ ์˜์‚ฌ ์š”์†Œ๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต content ์†์„ฑ๊ณผ ํ•จ๊ป˜ ์ง์ง€์–ด, ์š”์†Œ์— ์žฅ์‹์šฉ ์ฝ˜ํ…์ธ ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ์ธ๋ผ์ธ์ž…๋‹ˆ๋‹ค. a::aft

developer.mozilla.org

 

'CSS > ๊ฐœ๋…' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[CSS] @keyframes ๋ฅผ ์ด์šฉํ•œ animation  (0) 2021.01.07

HTTP ๊ฐœ์š”

- ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„ ํ”„๋กœํ† ์ฝœ

- HTTP ๋Š” HTML ๋ฌธ์„œ์™€ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋“ค์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค

- ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์˜ ํ”„๋กœํ† ์ฝœ

- TCP, TLS(์•”ํ˜ธํ™”๋œ TCP) ํ†ตํ•ด ์ „์†ก๋œ๋‹ค.

- HTTP์˜ ํ™•์žฅ์„ฑ ๋•๋ถ„์— HTML ๋ฌธ์„œ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด๋ฏธ์ง€์™€ ๋น„๋””์˜ค ํ˜น์€ HTML ํผ ๊ฒฐ๊ณผ์™€ ๊ฐ™์€ ๋‚ด์šฉ์„ ์„œ๋ฒ„๋กœ POSTํ•˜๊ธฐ ์œ„ํ•ด์„œ๋„ ์‚ฌ    ์šฉ๋œ๋‹ค.

- request : ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)์— ์˜ํ•ด ์ „์†ก๋˜๋Š” ๋ฉ”์„ธ์ง€

- response : ๊ทธ์— ๋Œ€ํ•ด ์„œ๋ฒ„์—์„œ ์‘๋‹ต์œผ๋กœ ์ „์†ก๋˜๋Š” ๋ฉ”์‹œ์ง€ 

 

HTTP ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์˜ ๊ตฌ์„ฑ์š”์†Œ

- ์š”์ฒญ์€ ํ•˜๋‚˜์˜ ๊ฐœ์ฒด, ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ(๋˜๋Š” ๊ทธ๊ฒƒ์„ ๋Œ€์‹ ํ•˜๋Š” ํ”„๋ก์‹œ)์—์˜ํ•ด ์ „์†ก๋œ๋‹ค.

- ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  response๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์‘๋‹ต์„ ์ œ๊ณตํ•œ๋‹ค.

- ์š”์ฒญ๊ณผ ์‘๋‹ต ์‚ฌ์ด์—๋Š” ํ”„๋ก์‹œ, ๊ฒŒ์ดํŠธ์›จ์ด ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฐœ์ฒด๋“ค์ด ์žˆ๋‹ค.

 

- ์‹ค์ œ๋กœ๋Š” ๋ธŒ๋ผ์šฐ์ €์™€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์„œ๋ฒ„ ์‚ฌ์ด์—๋Š” ์ข€๋” ๋งŽ์€ ์ปดํ“จํ„ฐ(๋ผ์šฐํ„ฐ, ๋ชจ๋Ž€)๋“ฑ์ด ์กด์žฌํ•œ๋‹ค.

- ์›น์˜ ๊ณ„์ธต์ ์ธ ์„ค๊ณ„ ๋•๋ถ„์— ๋ผ์šฐํ„ฐ, ๋ชจ๋Ž€๋“ฑ์€ ๋„คํŠธ์›Œํฌ ์ „์†ก ๊ณ„์ธต๋‚ด๋กœ ์ˆจ๊ฒจ์ง„๋‹ค.

 

๐Ÿ‘จ‍๐Ÿ’ป ํ”„๋ก์‹œ

- ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ์‚ฌ์ด์—์„œ๋Š” ์ˆ˜๋งŽ์€ ์ปดํ“จํ„ฐ์™€ ๋จธ์‹ ์ด HTTP ๋ฉ”์‹œ์ง€๋ฅผ ์ด์–ด ๋ฐ›๊ณ  ์ „๋‹ฌํ•œ๋‹ค.

- ์—ฌ๋Ÿฌ ๊ณ„์ธต์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์›น ์Šคํƒ ๊ตฌ์กฐ์—์„œ ์ด๋Ÿฌํ•œ ์ปดํ“จํ„ฐ/๋จธ์‹ ๋“ค์€ ๋Œ€๋ถ€๋ถ„ ์ „์†ก, ๋„คํŠธ์›Œํฌ ํ˜น์€ ๋ฌผ๋ฆฌ ๊ณ„์ธต์—์„œ ๋™์ž‘ํ•œ๋‹ค.

- ํ”„๋ก์‹œ : ์ด๋Ÿฌํ•œ ์ปดํ“จํ„ฐ/๋จธ์‹  ์ค‘์—์„œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์—์„œ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ๋“ค

- ๊ธฐ๋Šฅ 

   1. ์บ์‹ฑ(์บ์‹œ๋Š” ๊ณต๊ฐœ ๋˜๋Š” ๋น„๊ณต๊ฐœ๊ฐ€ ๋ ์ˆ˜ ์žˆ๋‹ค.

   2. ํ•„ํ„ฐ๋ง (๋ฐ”๋ฆฌ์–ด์Šค ๋ฐฑ์‹  ์Šค์บ”, ์œ ํ•ด ์ปจํ…์ธ  ์ฐจ๋‹จ

   3. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ (์—ฌ๋Ÿฌ ์„œ๋ฒ„๋“ค์ด ์„œ๋กœ ๋‹ค๋ฅธ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ—ˆ์šฉ)

   4. ์ธ์ฆ

   5. ๋กœ๊น…

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

์ฐธ๊ณ 

developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP

 

HTTP ๊ธฐ๋ณธ - HTTP | MDN

HTTP๋Š” ์ƒ๋‹นํžˆ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ์ž์›๊ณผ URI์˜ ๊ฐœ๋…, ๋ฉ”์‹œ์ง€์˜ ๋‹จ์ˆœํ•œ ๊ตฌ์กฐ, ํ†ต์‹  ํ๋ฆ„์„ ์œ„ํ•œ ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ตฌ์กฐ์™€ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ณธ ๊ฐœ๋…์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ํ† ๋Œ€

developer.mozilla.org

 

๋…ธ๋งˆ๋“œ ์ฝ”๋” ๋‚ ์”จ์•ฑ ๋งŒ๋“ค๊ธฐ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ ๋ฆฌ์•กํŠธ๋ฅผ ์ฒ˜์Œ ํ•ด๋ณด๋Š”๊ฑฐ๋ผ ํ™˜๊ฒฝ์„ค์ •์—์„œ๋ถ€ํ„ฐ ๋‚œํ•ญ์„ ๊ฒช์—ˆ๋‹ค.

๋‚˜์ค‘์„ ์ƒ๊ฐํ•ด์„œ ์ •๋ฆฌ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

 

1. node.js ๋‹ค์šดํ•˜๊ธฐ

nodejs.org/en/download/

 

Download | Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 ๋‹ˆ์ฝœ๋ผ์Šค๊ฐ€ 10 ๋ฒ„์ „ ์œ„๋งŒ ๋œ๋‹ค๊ณ  ํ•ด์„œ ๊ทธ๋ƒฅ LTS window 64bit ๋‹ค์šด ๋ฐ›์•˜๋‹ค.

node.js ๋‹ค์šด์ด ๋๋‚˜๊ฒŒ ๋˜๋ฉด npm๋„ ๊ฐ™์ด ๋‹ค์šด๋˜์–ด์„œ cmd ์ฐฝ์— ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ž˜ ๋‹ค์šด๋˜์—ˆ๋Š”์ง€ ๋ฒ„์ „ ํ™•์ธ๋งŒ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

- ๋ฒ„์ „ํ™•์ธ ๋ช…๋ น์–ด 

---->  node -v

---->  npm -v

 

2. expo ์„ค์น˜

์ฒ˜์Œ์— ๋‹ˆ์ฝœ๋ผ์Šค๊ฐ€ expo ์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ€์„œ ๋ญ˜ ๋‹ค์šดํ•˜๊ณ  ํ•˜๋˜๋ฐ... 

npm์ด ๋‹ค์šด๋˜์–ด ์žˆ์œผ๋ฉด ๊ทธ๋ƒฅ cmd ์ฐฝ์— npm install -g expo-cli ์ด ๋ช…๋ น์–ด๋กœ ์„ค์น˜ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํฌ์ŠคํŠธ ์ฝ”๋กœ๋‚˜, 'D.N.A(๋ฐ์ดํ„ฐ/๋„คํŠธ์›Œํฌ/AI)' ๋œฌ๋‹ค

http://www.yakup.com/news/index.html?mode=view&cat=11&nid=245544

 

[์•ฝ์—…์‹ ๋ฌธ]ํฌ์ŠคํŠธ ์ฝ”๋กœ๋‚˜, D.N.A(๋ฐ์ดํ„ฐ/๋„คํŠธ์›Œํฌ/AI) ๋œฌ๋‹ค

์ฝ”๋กœ๋‚˜19 ์ดํ›„ ์›๊ฒฉ์˜๋ฃŒ ๋“ฑ ์ฒจ๋‹จ์˜๋ฃŒ ๊ธฐ์ˆ  ์ˆ˜์š”๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฐ€์šด๋ฐ, ๋ฐ์ดํ„ฐ·๋„คํŠธ์›Œํฌ·AI ์‚ฐ์—…์˜ ๋„์•ฝ์ด ๋”์šฑ ํ™œ๋ฐœํ•  ๊ฒƒ์œผ๋กœ ์ „๋ง๋๋‹ค. ๊ณผํ•™๊ธฐ์ˆ ์ •๋ณดํ†ต์‹ ๋ถ€๊ฐ€ ์ตœ๊ทผ '๋ฐœ๊ฐ„ํ•œ ๊ณผํ•™๊ธฐ์ˆ  ICT ์ •์ฑ…๊ธฐ๏ฟฝ๏ฟฝ

www.yakup.com

 

01 ์˜คํ”ˆ์†Œ์Šค ์ฝ”๋“œ ์† ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ํ”ผํ•˜๋Š” ์‹ค๋ฌด ํŒ 4๊ฐ€์ง€

http://www.itworld.co.kr/news/161490

 

์˜คํ”ˆ์†Œ์Šค ์ฝ”๋“œ ์† ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ํ”ผํ•˜๋Š” ์‹ค๋ฌด ํŒ 4๊ฐ€์ง€

์˜ฌํ•ด ๋“ค์–ด ์˜คํ”ˆ์†Œ์Šค ์ƒํƒœ๊ณ„์˜ ๋ฌด๊ฒฐ์„ฑ๊ณผ ๋ณด์•ˆ์„ ์ง€ํ‚ค๊ธฐ๊ฐ€ ๋” ์–ด๋ ค์›Œ์กŒ๋‹ค. ์˜คํ”ˆ์†Œ์Šค๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋ˆ„๊ตฌ๋‚˜ ๊ฑฐ์˜ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์ˆ˜์ •ํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ๊ฐœ๋ฐœ์ž์˜ ๊ฐ€์žฅ ์š”

www.itworld.co.kr

๋ณด์•ˆ ์‚ฌ๊ณ ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋ณด์•ˆ ์—ฐ๊ตฌ์›์œผ๋กœ์„œ, ํ•„์ž๋Š” ์ตœ๊ทผ ์˜ค๋กœ์ง€ ๋น„ํŠธ์ฝ”์ธ ๋งˆ์ด๋‹์„ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” 700๊ฐœ๊ฐ€ ๋„˜๋Š” ํƒ€์ดํฌ์Šค์ฟผํŒ…(typo-squatting) ๋ฃจ๋น„์ ฌ(RubyGem) ํŒจํ‚ค์ง€๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ์ด ์ค‘์—๋Š” ์ตœ์†Œ 26๊ฐœ์˜ ๊นƒํ—ˆ๋ธŒ ํ”„๋กœ์ ํŠธ์— ์€๋ฐ€ํ•˜๊ฒŒ ์•…์„ฑ์ฝ”๋“œ๋ฅผ ์‹ฌ์€ ์˜ฅํ† ํผ์Šค ์Šค์บ๋„ˆ(Octopus Scanner)๋„ ์žˆ์—ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‚ฌ๊ณ ๋Š” ๊ณต๊ฐœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐฉํ˜• ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ์•…์˜์ ์ธ ์‚ฌ๋žŒ๋„ ์ ‘๊ทผํ•ด ์•…์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ž˜ ๋ณด์—ฌ์ค€๋‹ค.

์ด๋Ÿฐ ์‚ฌ๋ก€๊ฐ€ ์•…์˜์  ๊ตฌ์„ฑ์š”์†Œ์— ๊ด€ํ•œ ๊ฒƒ์ด๋ผ๋ฉด, ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์€ ์ฑ„ ์‚ฌ์šฉ๋˜๋Š” ์ •์ƒ์ ์ธ ์˜คํ”ˆ์†Œ์Šค ํŒจํ‚ค์ง€๋Š” ์–ด๋–จ๊นŒ?

์ธ๊ธฐ ์žˆ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๊ฑฐ์ณ ์ตœ์ข…์ ์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ๊ณต๊ธ‰๋ง๊นŒ์ง€ ํ˜๋Ÿฌ ๋“ค์–ด๊ฐ€๋Š” ์ทจ์•ฝ์  ๋˜๋Š” ์•…์„ฑ ํŒจํ‚ค์ง€๋Š” ๊ณ ๊ฐ์—๊ฒŒ ํฐ ํ”ผํ•ด๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹ค์ œ๋กœ npm, ํŒŒ์ดํŒŒ์ด(PyPI), ๋‰ด๊ฒŸ(NuGet), ํŽ˜๋„๋ผ(Fedora) ๊ฐ™์€ ์ธ๊ธฐ ์˜คํ”ˆ์†Œ์Šค ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ทจ์•ฝํ•œ ๊ตฌ์„ฑ์š”์†Œ์™€ ์•…์„ฑ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ๋ฐœ๊ฒฌ๋๋‹ค.

์Šค๋‹ˆํฌ(Snyk)์˜ 2020๋…„ ์˜คํ”ˆ์†Œ์Šค ๋ณด์•ˆ ํ˜„ํ™ฉ ๋ณด๊ณ ์„œ์— ๋”ฐ๋ฅด๋ฉด, ์ง€๋‚œ ๋ช‡ ๋…„ ๋™์•ˆ ์ƒํƒœ๊ณ„ ์ „๋ฐ˜์˜ ์˜คํ”ˆ์†Œ์Šค ํŒจํ‚ค์ง€์—์„œ ํ™•์ธ๋œ ์ด์ทจ์•ฝ์  ์ˆ˜๋ฅผ ๋ณด๋ฉด Node.js์™€ ์ž๋ฐ”์—์„œ ๋งค๋…„ ์ƒˆ๋กœ์šด ์ทจ์•ฝ์ ์ด ๊ฐ€์žฅ ๋งŽ์ด ๋ฐœ๊ฒฌ๋๋‹ค. ๋˜ํ•œ, 2018๋…„์— ๋น„ํ•ด 2019๋…„์— ๋ณด๊ณ ๋œ ์‹ ๊ทœ ์ทจ์•ฝ์ ์˜ ์ˆ˜๊ฐ€ ๋” ์ ์€ ๊ฒƒ์€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์˜ ์ดˆ๊ธฐ์— ๋ณด์•ˆ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ณด๊ณ ์„œ๋Š” “์ด ์ถ”์„ธ๊ฐ€ ์ง€์†๋œ๋‹ค๋ฉด ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ณด์•ˆ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋…ธ๋ ฅ์ด ๊ฒฐ์‹ค์„ ๋ณด๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค๋Š” ๊ธ์ •์ ์ธ ์‹ ํ˜ธ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค”๋ผ๊ณ  ํ‰๊ฐ€ํ–ˆ๋‹ค.

02 ํšจ์„ฑ์ธํฌ๋ฉ”์ด์…˜์‹œ์Šคํ…œ, AI ๊ธฐ๋ฐ˜ ‘๋ฐ์ดํ„ฐ ์นดํƒˆ๋กœ๊ทธ’ ๊ธฐ์ˆ  ๊ณต๊ฐœ

http://www.itworld.co.kr/t/69500/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D/160790

 

ํšจ์„ฑ์ธํฌ๋ฉ”์ด์…˜์‹œ์Šคํ…œ, AI ๊ธฐ๋ฐ˜ ‘๋ฐ์ดํ„ฐ ์นดํƒˆ๋กœ๊ทธ’ ๊ธฐ์ˆ  ๊ณต๊ฐœ

ํšจ์„ฑ์ธํฌ๋ฉ”์ด์…˜์‹œ์Šคํ…œ(www.his21.co.kr)์ด AI ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ์นดํƒˆ๋กœ๊ทธ ์†”๋ฃจ์…˜ ‘๋ฃจ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ ์นดํƒˆ๋กœ๊ทธ(Lumada Data Catalog)’๋ฅผ ์„ ๋ณด์ธ๋‹ค๊ณ  ๋ฐํ˜”๋‹ค.ํšจ์„ฑ์ธํฌ๋ฉ”์ด์…˜์‹œ์Šคํ…œ์€ ๋ฃจ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ ์นดํƒˆ๋กœ๊ทธ๋ฅผ

www.itworld.co.kr

ํšจ์„ฑ์ธํฌ๋ฉ”์ด์…˜์‹œ์Šคํ…œ(www.his21.co.kr)์ด AI ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ์นดํƒˆ๋กœ๊ทธ ์†”๋ฃจ์…˜ ‘๋ฃจ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ ์นดํƒˆ๋กœ๊ทธ(Lumada Data Catalog)’๋ฅผ ์„ ๋ณด์ธ๋‹ค๊ณ  ๋ฐํ˜”๋‹ค.

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


๋ฃจ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ ์นดํƒˆ๋กœ๊ทธ๋Š” ๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ ๊ด€๋ฆฌ, ์ค‘๋ณต/๋ณต์ œ ๋ฐ์ดํ„ฐ ์‹๋ณ„์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ๋ถ„๋ฅ˜, ์ž๋™ ๋ฐ์ดํ„ฐ ๊ณ„๋ณด๋ถ„์„(Data Lineage) ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฏผ๊ฐ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰, AI ๋ฐ ๋จธ์‹ ๋Ÿฌ๋‹(ML)์„ ํ†ตํ•œ ํƒœ๊น… ์ˆ˜ํ–‰ ๋“ฑ ์ฒด๊ณ„์  ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๋ฅผ ์ง€์›ํ•œ๋‹ค. ํŠนํžˆ, ํŠนํ—ˆ ๋ฐ›์€ ๋จธ์‹ ๋Ÿฌ๋‹ ๊ธฐ๋ฐ˜ ‘ํ•‘๊ฑฐํ”„๋ฆฐํŠธ(Finger Print)’ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์ˆ˜์ž‘์—…์œผ๋กœ ํŒŒ์•…์ด ํž˜๋“  ์ˆ˜๋งŽ์€ ์ปฌ๋Ÿผ, ๋ฉ”ํƒ€, ์†์„ฑ ๋“ฑ์„ ์ž๋™์œผ๋กœ ๋ถ„์„ํ•˜๊ณ  ๋งคํ•‘ํ•ด ์ฒด๊ณ„์ ์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ๊ด€๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค.

๋ฃจ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ ์นดํƒˆ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด ๋ฐ ๊ณผํ•™์ž, ๋น„์ฆˆ๋‹ˆ์Šค ์‚ฌ์šฉ์ž๋Š” ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์„ ๊ฐ€์†ํ™”ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„๋ฅ˜ํ•ด ๋ฐ์ดํ„ฐ์—์„œ ๊ฐ€์น˜๋ฅผ ์ฐฝ์ถœํ•˜๋Š” ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ ํ๋ ˆ์ดํ„ฐ์™€ ๊ด€๋ฆฌ์ž๋Š” ์ค‘์š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, IT ๊ด€๋ฆฌ์ž๋Š” ์˜๋„ํ•˜์ง€ ์•Š์€ ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฃจ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ ์นดํƒˆ๋กœ๊ทธ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๊ธฐ์—… ์ „์ฒด์˜ ๋ฏผ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ์ง€, ํƒœ๊ทธ ์ง€์ •, ๋ณดํ˜ธํ•˜๊ณ  ๋ฏผ๊ฐ ๋ฐ์ดํ„ฐ ์œ ๋ฌด ํ™•์ธ์ด๋‚˜ ๋ฐ์ดํ„ฐ ์œ ํ˜• ํ™•์ธ ๋“ฑ ์…€ํ”„ ์„œ๋น„์Šค ๋ถ„์„๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ถ”๊ฐ€ ์ฒ˜๋ฆฌ๊ฐ€ ์š”๊ตฌ๋˜๋Š” ๋ฏผ๊ฐ ์ •๋ณด(๊ฐœ์ธ์ •๋ณด ๋“ฑ)๋ฅผ ๋น ๋ฅด๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜์ค€์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฃจ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ ์นดํƒˆ๋กœ๊ทธ๋Š” ๋ฐ์ดํ„ฐ ๊ณ„๋ณด(๋ฐ์ดํ„ฐ ๋ฆฌ๋‹ˆ์ง€)๋ถ„์„์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ”„๋กœ์ ํŠธ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ค‘๋ณต ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ, ๋ฐ์ดํ„ฐ ๊ถŒํ•œ ๊ด€๋ฆฌ, ์ง€์†์ ์œผ๋กœ ์œ ์ž…๋˜๋Š” ๋ฏผ๊ฐ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์—‘์„ธ์Šค ์‹๋ณ„ ๋ฐ ์ œ์–ด๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

ํšจ์„ฑ์ธํฌ๋ฉ”์ด์…˜์‹œ์Šคํ…œ ๋ฐ์ดํ„ฐ์‚ฌ์—…ํŒ€ ์ด์ง„์„ ํŒ€์žฅ์€ “ํšจ์„ฑ์ธํฌ๋ฉ”์ด์…˜์‹œ์Šคํ…œ์€ ๊ณ ๊ฐ์ด ์›ํ•˜๋Š” ๊ฐ€์น˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ํ™œ์šฉ์„ ์œ„ํ•ด ์ตœ์ ์˜ ๋ฐ์ดํ„ฐ์˜ต์Šค(DataOps) ํ™˜๊ฒฝ์„ ์ง€์›ํ•œ๋‹ค”๋ฉฐ “์—ฃ์ง€ ํˆฌ ํด๋ผ์šฐ๋“œ(edge-to-cloud) ํ™˜๊ฒฝ์—์„œ ๋ถ„์‚ฐ๋œ ๋ฐ์ดํ„ฐ ์‚ฌ์ผ๋กœ๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ํ•œํŽธ, ๊ณ ๊ฐ์ด ๋ฐ์ดํ„ฐ ์ž ์žฌ๋ ฅ์„ ์ตœ๋Œ€ํ•œ ๋ฐœํœ˜ํ•˜๊ณ  ๋””์ง€ํ„ธ ํ˜์‹ ์„ ๊ฐ€์†ํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๊ฒ ๋‹ค”๊ณ  ๋ฐํ˜”๋‹ค.

ํ•œํŽธ, ํšจ์„ฑ์ธํฌ๋ฉ”์ด์…˜์‹œ์Šคํ…œ์€ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅ์„ ์œ„ํ•œ ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€(HCP)๋ถ€ํ„ฐ ์ฒด๊ณ„์  ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์นดํƒˆ๋กœ๊ทธ ์†”๋ฃจ์…˜(Lumada Data Catalog), ๋น…๋ฐ์ดํ„ฐ ๋ถ„์„ ํ”Œ๋žซํผ ํŽœํƒ€ํ˜ธ(Pentaho)๊นŒ์ง€ ๊ณ ๊ฐ ๋ฐ์ดํ„ฐ ํ˜์‹ ์„ ์ง€์›ํ•˜๋Š” ๋ฃจ๋งˆ๋‹ค ํฌํŠธํด๋ฆฌ์˜ค๋ฅผ ์ง€์†์ ์œผ๋กœ ํ™•์žฅํ•ด ๋‚˜๊ฐˆ ๊ณ„ํš์ด๋‹ค. editor@itworld.co.kr



๋ฉ”ํƒ€์ •๋ณด

๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋กœ ํ•˜์œ„๋ ˆ๋ฒจ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์„ค๋ช…/๊ธฐ์ˆ ํ•˜๋ ค๋Š”๊ฒƒ

์˜ˆ) ๋„์„œ๊ด€์˜ ๋„์„œ๋ชฉ๋ก์œผ๋กœ์„œ, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ (ํ‘œ์ œ, ์ €์ž, ์ฃผ์ œ๋ช…, ๋ถ„๋ฅ˜๊ธฐํ˜ธ ๋“ฑ๋ฆฌ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋ชฉ๋ก ๋ ˆ์ฝ”๋“œ)

 

๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ

๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ๋Š” ๋Œ€๊ทœ๋ชจ์˜ ๋‹ค์–‘ํ•œ ์›์‹œ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ๊ธฐ๋ณธ ํ˜•์‹์œผ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์œ ํ˜•์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ •์ œ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ „์ฒด์ ์ธ ๋Œ€๊ทœ๋ชจ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ์ „๋žต์œผ๋กœ ๋ณดํŽธํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด์กด๋˜๋ฉฐ, ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅํ•˜๊ธฐ ์ „์— ์ œ๊ฑฐ๋˜๊ฑฐ๋‚˜ ํ•„ํ„ฐ๋ง๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋Š” ์–ผ๋งˆ ํ›„ ๋ฐ”๋กœ ๋ถ„์„์— ์‚ฌ์šฉ๋  ์ˆ˜๋„ ์žˆ๊ณ  ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์›์‹œ ๋ฐ์ดํ„ฐ

ํŠน์ • ๋ชฉ์ ์„ ์œ„ํ•ด ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์ด๋‹ค.

 

๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ VS ๋ฐ์ดํ„ฐ ์›จ์–ด ํ•˜์šฐ์Šค

๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค๋Š” ๋ณด๊ณ ๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋œ ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ œ๊ณต

๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ๋Š” ํ˜„์žฌ ์ •์˜๋œ ๋ชฉ์ ์ด ์—†๋Š” ๋น„์ •ํ˜• ์›์‹œ ๋ฐ์ดํ„ฐ ์ €์žฅ

 

๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค์— ์ €์žฅํ•˜๊ธฐ ์ „์— ๋ฐ์ดํ„ฐ๋ฅผ ์ •์ œํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ  ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ช‡ ๊ฐœ์›” ๋˜๋Š” ๋ช‡ ๋…„์”ฉ ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋ฏ€๋กœ, ์ฆ‰์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์ฆ‰์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ํ–ฅํ›„ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋””์— ์‚ฌ์šฉํ• ์ง€ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋ฐ์ดํ„ฐ ๊ณ„๋ณด(๋ฐ์ดํ„ฐ ๋ฆฌ๋‹ˆ์ง€)

๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์„ ์‹œ๊ฐํ™”ํ•ด ๊ณ„๋ณด๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ๊ด€๋ฆฌ

 

 

 

 

 

์ฐธ๊ณ  

https://www.redhat.com/ko/topics/data-storage/what-is-a-data-lake

 

๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ(Data Lake)๋ž€? ์ •์˜, ๋ถ„์„ ๋ฐ ์†”๋ฃจ์…˜

๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ(Data lake)๋Š” ๋Œ€๊ทœ๋ชจ์˜ ์›์‹œ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ๊ธฐ๋ณธ ํ˜•์‹์œผ๋กœ ์ €์žฅํ•˜๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋œปํ•˜๋ฉฐ, ํ”Œ๋žซ ์•„ํ‚คํ…์ฒ˜๋กœ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•˜์—ฌ ๋น„์šฉ ์ ˆ๊ฐ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

www.redhat.com

 

+ Recent posts