[Java 풀스택 과정 강의] 1월 9일차

부트캠프 일지/Java 풀스택 과정 강의
2026.01.11
※ TIL와는 별개로 적는 개인 개발 일지라서 말은 좀 편하게하는 페이지입니다.
일지이기 때문에 일기의 성격이 더 강합니다.

 

 

이 날은 function, 즉 함수에 대해서 배웠다. 나를 괴롭게 했던 내용은 TIL 특별편과 함께하겠다. function은 js의 대부분을 담당하고 있다고해도 무방할 정도로 중요한 부분이다.

 

함수란?

독립적인 모듈이며, 자체 블록을 가진다. 특정 기능을 수행하고 결과를 돌려주는 독립적인 코드 집합이다. 함수는 다음처럼 구성되어 있다.

 

 

함수를 실행하기 위해서는 함수를 호출해야 한다. 호출하기 위해서는 함수명(매개변수); 형태로 호출한다.

보통의 경우 function 이름(){ 내용 }으로 전개되나, 따로 호출 없이 바로 실행하기 위한 즉시 실행 함수가 있다. 그 중 하나가 다음과 같다.

 

자주 사용되지는 않지만 대표적인 즉시 실행함수의 예제다.

 

매개변수

매개변수란, 함수 호출 시에 전달된 값을 받기 위해 사용되는 변수로 지역 변수이다. function(여기에 매개변수가 들어간다.){} 형태가 된다. 매개 변수가 있어야 하는 이유는, 변수의 스코프 때문이다. 이전 포스트(링크)에서 스코프를 다루었을 때도 이야기했지만, var가 함수 스코프라 변수 오염이나 라이브러리 호환 등의 문제가 있듯이, 전역변수 또한 가급적 사용하지 않는 것이 좋다. 그러므로 대부분은 지역변수-특히 블록 스코프-가 되는데, 이 때문에 함수끼리의 소통을 위해 매개 변수가 필요하다.

 

function fnA() {
  const a = prompt('사과라고 입력하세요');
  fnB(a);
 }

function fnB(x) {
  alert(x);
}

 

위의 블록처럼 사용하면, prompt에 입력된 a의 값이 alert로 출력된다.

 

매개변수에서 디폴트 값이 정해져 있는 매개변수는 뒤에 둬야 한다. 디폴트 값이 정해져있다는 것은, function fnA(x = 1){} 과 같이 아무것도 입력하지 않을 경우 해당 값으로 변수를 지정한다는 것이다. 안정성을 갖고 싶을때, 그러나 생략이 가능한 옵션일 때 주로 사용한다.

 

 

호이스팅

기본적으로 함수는 즉시 실행함수가 아니면 호이스팅이 가능하다. 이것이 함수가 매개 변수가 있는 이유이기도 하며, 이 덕분에 유지 및 보수가 조금 더 편해진다(함수를 추가하거나 하는 등). 호이스팅의 개념에 대해서는 이전 포스트(링크)에서 다룬 적이 있다.

 

 

익명 함수

변수명 = function() {}; 로 이루어진 것을 익명함수라 한다. 변수에는 var, const, let 같은 키워드를 붙여도 된다. 이는 함수 코드를 변수에 저장하는 것으로, 함수 그 자체를 변수로 사용해야할 때 만든다. 바로 사용이 가능하며, 스코프가 분리되어 호이스팅이 없다. 그리고 후에 다룰 콜백함수로 많이 사용한다.

 

 

콜백 함수

이것은 이론적으로 이해하는 것에 어려움이 있어 별도 포스팅(링크)으로 하겠다.

 

 

화살표 함수

변수 = (매개변수) => 출력

형태의 함수다. 마찬가지로 var, const, let 같은 키워드를 붙여도 된다. 이쪽도 즉시 실행 함수이기 때문에, 호이스팅은 불가능하다. 이 또한 익명 함수의 일부이기 때문에 콜백에서 자주 사용된다.

 

다음부터는 객체(Object)에 대해서 다루는 듯하다. 일지의 내용이 짧은데 콜백에 많은 시간이 들어가서 그렇다. 그럼 12일부터 다시 일지를 기록하도록 하겠다.