티스토리 뷰

쿠쉬쿠쉬 블로깅!

Blogging - 3. node.js 끝내기(1)

날따라해봐요요롷게 2020. 7. 30. 15:55

node.js를 배우기위해서는 javascript의 특성을 먼저 알아야 한다.

공부를 하면서 객체지향언어인 자바스크립트가 다른 객체지향언어와는 다른 특징을 중심으로 배웠다.

 

 

  • 함수

자바스크립트의 함수에 대해서 공부를 하였다.

함수의 특징에 대해서 공부를 해보자.

 

- 자바스크립트의 함수는 하나의 '데이터'(값)로 취급된다.

function sum (a,b) {
  var c = a + b;
  return c;
}

console.log(sum(1,2));
function cal(func, num) {
	return func(num)
}

function increase(num) {
	return num +1
}

function decrease(num) {
	return num -1
}

alert(cal(increase, 1));
alert(cal(decrease, 1));

위의 해당 코드를 보게되면 함수가 하나의 데이터(값, 인자)로 사용되는 것을 볼 수 있다.

이는 함수가 객체로 취급되기 때문이다.

 

-익명 함수(Anonymous Funtion)

 

코드를 작성하다 단순히 일회용으로 사용하거나 이름을 지어주지 않아도 되는 변수값을 사용하듯 이와 비슷한 개념이 익명함수이다. 즉, 이름을 붙여주지 않아도 되는 함수이다. 이렇게 함수를 사용할 수 있는 이유는 위에서 말했듯 자바스크립트에서는 함수가 데이터로 취급될 수 있기 때문이다.

var sum = function(a,b) {
	return a + b;
};

console.log(f());

위와 같이 'f( )' 는 익명함수로 사용이 된다.

 

-콜백함수

위에서 자바스크립트 함수의 특징 2가지를 살펴보았다.

  • 함수가 객체로 취급되어 데이터로 쓰일 수 있다.
  • 익명함수가 가능하다.

이 두가지 특징이 자바스크립트의 콜백 함수를 발생하게 했다.

콜백 함수는 '특정 이벤트가 발생하면 호출되는 함수'이다.

 

자바스크립트의 함수의 특징을 하나하나 살펴보며 콜백 함수를 알아보자

function one() {
  return 1;
}

var two = function () {
  return 2;
}
function invoke_and_add(a, b) {
  return a() + b();
}

console.log(invoke_and_add(one, two));

위는 자바스크립트의 함수가 하나의 데이터(값), 인자로 쓰이는 것을 볼 수 있다.

함수 one( ), two( ) 는 invoke_and_add( ) 함수의 인자값으로 사용이 된다는 것이다.

 

function one() { 
	return 1;
}
function invoke_and_add(a, b) {
  return a() + b();
}
invoke_and_add(one, function() { 
  return 2; 
});

위의 코드를 살펴보면 invoke_and_add의 함수의 첫 번째 인자를 one이라는 함수로 정의하여 넘겨주었지만, 두 번 째 인자는 function( ) 으로 익명 함수를 생성하여 전달하였다.

 

그렇다면 자바스크립트의 콜백 함수는 왜 사용이 되는 것일까?

 

우리는 코드를 진행 할 때 어떤 동작이 끝나면 다음 함수를 호출하도록 순차적으로 함수를 호출한다.

function minus(a,b) {
	var min = a-b;
    return min;
}

function print(result) { 
	console.log(result);
}

print(minus(3,4));

코드를 진행 할 때 우리는 위와같이 순차적으로 코드를 진행하면 된다고 생각을 하고 코드를 짠다.

하지만, 여기서는 문제점이 있을 수 있다. 해당 코드에서 print 함수는 minus 함수가 완료된 후 진행된다. 만약 minus 함수가 복잡하여 부화가 생겨 진행처리에 있어서 문제가 발생하게 되면 print 함수는 진행되지가 않는다. 이를 해결하기위해 자바스크립트는 콜백함수의 특징을 이용하여 코드를 짠다.

 

function minus(a, b, callback) {
	var min = a - b;
    callback(min);
}

위의 코드는 콜백함수를 이용한 코드이다. 해당 코드는 순차적으로 앞의 함수가 끝나고 진행하는 것이 아닌 이벤트가 발생할 때, 정말로 필요할 때만 함수를 호출한다. 이는 자바스크립트의 특징인 비동기식 처리방법을 이용한 방법이다. 따라서 자바스크립트를 이용하여 웹사이트를 구축하는데 콜백함수를 활용하는 이유는 함수 호출시 더욱 효율적인 웹사이트를 구축하기 위해서이다. 

'쿠쉬쿠쉬 블로깅!' 카테고리의 다른 글

Blogging - 2. VM(가상머신)  (0) 2020.07.24
Blogging - 1. Stack과 Queue  (0) 2020.07.15
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함