프로그래밍에서 함수는 특정 작업을 수행하는 코드의 집합이다.
함수는 입력(매개변수)을 받아 처리하고 결과(반환값)를 출력할 수 있다.
함수를 정의할 때는 함수의 이름, 매개변수, 반환 타입, 그리고 수행할 작업을 명시한다.
함수를 호출하면 무슨 일이 생길까?
함수를 호출하면, 프로그램은 함수에 정의된 코드를 실행한다. 호출 시 지정된 매개변수가 함수에 전달되며, 함수는 이들을 사용해 정의된 작업을 수행한다. 작업이 완료되면, 함수는 결과를 반환하고 호출된 지점으로 제어를 되돌려 준다.
함수를 왜 쓰나?
내가 제일 좋아하는 거...
1. 코드 재사용: 같은 코드를 반복해서 작성하지 않고, 필요할 때마다 함수를 호출하여 사용할 수 있어서.
2. 모듈화: 큰 문제를 작은 부분으로 나누어 각각을 함수로 처리함으로써 코드 관리가 쉬워지니까.
3. 유지보수: 함수를 사용하면 코드의 수정이 필요할 때 해당 함수만 수정하면 되므로 유지보수가 편리하니까.
4. 가독성: 함수를 사용하면 코드가 더 읽기 쉽고 이해하기 쉬워지니까.
개발을 하면 할수록 코드 재사용, 모듈화, 유지보수의 용이성, 높은 가독성의 중요성과 소중함을 얼마나 많이 알게 되던지...
재귀 호출
재귀 호출은 함수형 프로그래밍, 알고리즘 등에서 숱하고 숱하게 나오는 개념이라 이 책에서도 언급되는 것 같다.
재귀 호출은 쉽게 말해 함수 자기가 자기를 호출하는 것이다.
재귀를 잘 쓰는 사람은 이게 얼마나 복잡한 문제를 간단하고 우아하게 해결하는데 유용한지 찬양하곤 하는데 나는 이걸 잘 못 쓰는 편이라 아직 뭐라 할 말이 없다...
나는 재귀 호출이 마치 종이를 반으로 접은 뒤 접었다 폈다 하는 것과 같다 정도로 알고 있는 수준.
쨌든 재귀 호출 코드에 대해서는 앞으로 더 소개할 일이 있을 것 같아서
여기서는 이 정도만 소개한다.
마치기 전에 2가지 이야기.
1. 재귀 호출에는 종료 조건이 필요하다. 이거 없으면 무한 재귀에 빠질 수 있다.
2. 재귀는 특히 분할 정복 알고리즘과 같은 알고리즘에서 많이 사용된다.
Tucker의 Go 언어 프로그래밍 7장 함수 편이 끝났습니다.
이제 8장 갑시다!!!