5단 분석법
순서 | 분석 | 단어 | 내용 |
1 | 일반 명사 | 함수 | 기능 |
2 | 고유 명사(정보통신) | 함수 | 재활용하기위해 묶어놓은 코드들의 집합 |
고유 명사(수학) | 함수 | 두 개의 변수 x, y 에서, x가 일정한 범위 내에서 값이 변하고 y의 값이 정해질 때, x에 대하여 y를 이르는 말 | |
3 | 사용 이유 | 함수 | 반복되는 코드 또는 여러 곳에서 사용하는 코드를 하나의 기능으로서 묶어 필요한 곳에서 재사용 하기 위해서 |
4 | 사용 방법 | 함수 | 특정 작업을 수행하는 코드 블록을 함수로서 정의하고, 필요할 때 해당 함수를 호출하여 사용 |
5 | 다른 기술과의 비교 | 함수 | - |
함수의 정의
일반 명사
함수 | 기능 |
함수의 일반 명사는 “기능” 이라고 합니다.
그렇다면, 고유 명사는 무엇일까요?
고유 명사
함수 | 재활용하기위해 묶어놓은 코드들의 집합 |
함수의 고유 명사는 “재활용하기위해 묶어놓은 코드들의 집합” 입니다.
빵을 만들어 보려고 합니다. 빵을 만드는 순서를 정리해보았고 3가지 단계로 나눌 수 있습니다.
1.
밀가루와 우유를 이용하여 반죽한다.
2.
빵을 굽는다.
3.
다 구워진 빵이 완성된다.
내가 직접 빵을 만드는 것은 한두 개 정도는 금방 만들 수 있습니다.
그런데, 한두 개가 아니라 100개를 만들어야 된다고 가정 해보겠습니다.
손쉽게 만들 수 있을까요?
쉽게 만들기는 매우 어려울 것입니다.
왜냐하면, 빵을 만들기 위한 3단계의 절차를 100번 반복해야 하는 상황이 발생하게 될 것이기 때문입니다.
함수는 일반적으로 수학에서 많이 사용합니다. 수학에서의 함수도 한 번 살펴볼까요?
수학에서의 함수
함수 | 두 개의 변수 x, y 에서, x가 일정한 범위 내에서 값이 변하고 y의 값이 정해질 때, x에 대하여 y를 이르는 말 |
수학에서의 함수를 정리해보면 “입력값을 받아 처리한 후 결과 값을 내놓는 일종의 과정” 입니다.
위 함수식은 어떤 숫자 x를 받아 그것을 5와 곱한 값을 결과로 줍니다.
이러한 수학적 개념은 컴퓨터 언어에서의 함수와 비슷한 의미를 가지고 있기 때문에 컴퓨터 언어의 함수를 이해하는데 있어 중요한 역할을 합니다.
함수의 정의를 알아 보았으니, 사용해야하는 이유를 알아보도록 하겠습니다.
사용해야하는 이유
함수 | 반복되는 코드 또는 여러 곳에서 사용하는 코드를 하나의 기능으로서 묶어 필요한 곳에서 재사용 하기 위해서 |
함수를 사용하는 이유는 “반복되는 코드 또는 여러 곳에서 사용하는 코드를 하나의 기능으로서 묶어 필요한 곳에서 재사용 하기 위해서” 입니다.
빵을 손수 만든다고 생각하면 반죽을 만들고, 모양을 잡고 구워서 빵이라는 결과물을 만들게 됩니다.
빵을 100개 만든다고 가정했을 때는 빵을 만드는 과정을 100번의 반복을 통해 만들어야할 것입니다.
이런 문제를 해결하기 위해 함수를 사용합니다. 마치 빵 만드는 기능을 만드는 것과 같습니다.
빵을 만드는 과정을 함수로 만들어보면, 밀가루와 우유를 섞는 동작, 반죽 하는 동작, 빵을 굽는 동작 등 각 단계를 한 개의 함수로 묶어 사용할 수 있습니다.
이렇게 빵을 만드는 ‘함수’를 한 번만 정의해 놓으면, 여러 번 빵을 만들고자 할 때마다 해당 함수를 호출하기만 하면 됩니다.
빵 만드는 기계에 빗대어 설명을 해보면, 빵을 만드는 재료를 기계에 넣고 기계가 정해진 동작을 해서 빵이 나오게 되는 것입니다.
만약, 장사가 잘되는 빵집에 빵을 만드는 기계가 없다면 모든 과정을 한 번씩 손수 반복해서 진행해야 합니다.
그러나 빵 만드는 기계를 사용하면 짧은 시간에 간편하게 많은 양의 빵을 만들 수 있습니다.
컴퓨터언어의 관점에서 함수는 코드의 재사용과 모듈화, 네이밍 중복 관리를 개선하기 위해서 사용해야 합니다.
코드의 재사용
함수를 사용할 경우 코드의 재사용성을 높이고, 프로그램의 복잡성을 효과적으로 줄일 수 있습니다. 또한, 문제가 발생하거나 변경 사항이 있을 때, 함수 내부만 수정하면 되므로 유지 보수도 훨씬 쉬워집니다.
3단계 절차를 거쳐 100개의 빵을 만드는 코드를 작성해서 빵을 만들고 있었습니다.
빵을 100개 만들어달라는 주문이 들어왔는데,
밀가루를 사용하지 않고 쌀가루를 사용한 빵 100개 주문이 들어왔습니다.
그렇다면 100개의 제작 과정 코드를 모두 수정해야 할 것입니다.
그런데, 이런 상황을 예상하고 함수를 사용했었다면 이 문제를 손쉽게 해결할 수 있습니다.
함수만 수정을 해서 가루 변경이라는 코드를 모든 빵에 한번에 적용하게 되었습니다.
이러한 장점이 함수의 가장 큰 장점 중 하나입니다.
함수를 사용해야하는 이유에 대해서 알아 보았으니, 사용 방법을 알아보도록 하겠습니다.
사용 방법
함수 | 특정 작업을 수행하는 코드 블록을 함수로서 정의하고, 필요할 때 해당 함수를 호출하여 사용 |
함수 사용 방법은 "특정 작업을 수행하는 코드 블록을 함수로서 정의하고, 필요할 때 해당 함수를 호출하여 사용” 입니다.
자바스크립트에서 함수는 2가지로 나뉘게 됩니다. 일반 함수인 ‘function’ 과 화살표 함수인 ‘⇒’ 로 나뉘게 됩니다.
우리 교재에서는 화살표 함수를 기준으로 진행합니다. 교재를 잘 따라온다면 어렵지 않게 진행할 수 있습니다.
일반 함수와 화살표 함수 간에 차이점이 분명 존재하지만,
아직은 이해하기 힘든 영역일 수 있기 때문에 문법의 형식을 설명하면서 간단하게만 비교 하도록 하겠습니다.
문법의 형식
일반 함수
Javascript
Python
Java
Dart
작성해야 하는 부분을 정리해서 알려 드리겠습니다.
이름 | 뜻 |
함수명 | 함수의 이름입니다. 이 이름을 사용하여 함수를 호출합니다. |
매개변수 | 함수가 작업을 수행하는 데 필요한 값을 전달받는 변수입니다. |
동작 코드 부분 | 함수가 호출될 때 실행되는 코드의 집합입니다. 이 부분에는 함수가 수행해야 하는 작업을 작성합니다. |
return | 함수가 처리한 결과를 반환하는 키워드입니다. 이는 선택 사항이며, 함수가 특정 값을 반환하지 않는 경우 생략할 수 있습니다. |
함수를 직접 사용해보기 전, 사용해야하는 이유에서 보았던 예시인 빵을 구워주는 기능을 함수로 정의, 호출하는 예시를 보도록 하겠습니다.
사용 예시
빵을 구워주는 기능을 가진 함수를 정의한 뒤, 호출하여 사용하는 예시 코드입니다.
일반 함수와 화살표 함수 예시를 모두 보여드리겠습니다.
일반 함수
Javascript
Python
Java
Dart
출력 결과 |
밀가루과 우유로 빵을 만드는 중입니다.
굽습니다.
빵이 완성되었습니다!
빵 |
화살표 함수
Javascript
알아두면 좋은 정보
모듈화
모듈화는 “모듈 + 화” 로 이루어진 합성어 입니다.
순서 | 분석 | 단어 | 내용 |
1 | 일반 명사 | 모듈 | 규모가 큰 것을 여러 개로 나눈 조각 |
2 | 고유 명사 | 모듈화 | 프로그램을 실제 개발할 수 있는 작은 단위로 나누는 것 |
3 | 사용 이유 | 모듈화 | 복잡한 프로그램을 작은 부분으로 나누어, 각각 따로 개발하고 테스트 하기 위해서 |
4 | 사용 방법 | 모듈화 | 프로그램의 기능을 독립적 단위인 ‘모듈’로 나누고, 필요에 따라 조합하여 전체 프로그램을 구성 |
5 | 다른 기술과의 비교 | 모듈화 | - |
모듈화의 고유 명사는 “프로그램을 실제 개발할 수 있는 작은 단위로 나누는 것” 입니다.
함수와 모듈화는 비슷한 장점이 있습니다.
다만 모듈은 하나의 특정 기능을 수행하도록 설계된 코드의 집합을 나타내며,
모듈 내부에 함수가 포함될 수 있습니다.
모듈화를 진행하게 되면 개발자 각자의 영역에 집중할 수 있게 되며 전체 시스템의 신뢰성과 속도를 향상할 수 있습니다.
모듈화는 아직 여러분에게 너무 어려운 분야이니 이해가 잘 안 되어도 괜찮습니다!
네이밍 중복 관리
이전에 변수 편에서 우리는 전역 공간과 지역 공간에 대해 배웠습니다.
(기억이 나지 않는다면 변수 편을 확인해보세요)
함수 내에서 선언된 변수는 지역적인 특징을 가지게 됩니다.
그렇기 때문에, 여러 함수 내부에서 같은 이름을 쓴다고 하더라고 충돌이 생기지 않습니다.