함수(function)란 첫 번째 집합의 임의의 한 원소가 두 번째 집합의 오직 한 원소에만 대응하는 관계를 의미합니다.
x와 y 사이에서 x의 값이 정해지면 거기에 따라 y의 값이 정해지는 관계를 가질 때 y는 x의 함수라고 부릅니다.
프로그래밍에서 함수란 특정 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합으로 정의할 수 있다.
- 반복적인 프로그래밍을 피할 수 있기 때문이다.
- 프로그램을 여러 개의 함수로 나누어 작성하면, 모듈화로 인해 전체적인 코드의 가독성이 좋아진다.
- 프로그램에 문제가 발생하거나 기능의 변경이 필요할 때에도 손쉽게 유지보수를 할 수 있다.
여기서 중요한 키워드는 '특정 목적'과 '독립적'인 것 같다.
그리고 이러한 결에 잘어울리는 변수명을 지어주는게 중요한 것 같다.
예를 들어,
함수의 이름이 getDeviceList인데 실제 함수의 기능이
기기 리스트를 가져오는 것과 다른 기능이 덕지덕지 붙어있다면,
코드의 전반적인 흐름을 읽어나갈 때, 읽는 속도도 안날 뿐더러 두번다시 보는게 고역일 것이다.
다른 예로,
다른 함수와 독립적이지 못한다면 이 함수를 읽어나가다가 저 함수랑 연관되어있어서 저 함수 읽었다가 또 다른 함수 읽었다가... 이거 뭐지? 그래서 어디서 문제가 발생한건데? 싶은 순간이 많을 것으로 판단이 된다.