반복되는 기능을 하나의 독립된 단위로 만들면 필요할 때마다 불러 사용할 수 있다.
함수로 묶는 기준은 ‘코드가 길다’보다 ‘하나의 역할을 반복해서 수행한다’에 가깝다. 예약 가능 여부 확인, 금액 계산, 로그인 확인처럼 이름을 붙일 수 있는 일을 독립된 함수로 만들면 프로그램의 구조가 훨씬 읽기 쉬워진다.
좋은 함수는 입력으로 무엇을 받고, 안에서 무엇을 처리하며, 결과로 무엇을 돌려주는지가 분명하다. 이 세 가지를 먼저 적으면 함수 호출 문제도 자연스럽게 추적할 수 있다.
함수를 잘게 나누면 중복 제거뿐 아니라 테스트도 쉬워진다. 예약 가능 여부를 확인하는 함수가 독립되어 있다면 여러 화면을 실행하지 않고도 그 함수에 다양한 입력을 넣어 결과를 확인할 수 있다.
기능을 함수로 묶는다
두 값을 받아 더한 결과를 돌려주는 함수다.
함수를 호출하면 전달한 값이 매개변수로 들어가고, 함수가 실행된 뒤 결과가 돌아온다.
값을 복사해서 줄 것인가, 원본을 가리킬 것인가
함수에 값을 전달할 때는 복사된 값을 전달하는 방법과 실제 원본 위치를 가리키게 하는 방법을 구분해서 이해해야 한다.
원본 위치를 통해 수정 → 원본 값도 바뀔 수 있음
이 차이를 이해하면 뒤에서 만날 포인터와 참조 개념도 자연스럽게 연결된다.