드디어 10강에 안착했다.
이제부터 함수에 대해 자세하게 공부하겠다. 그전에 함수가 왜 필요한지, 즉 언제 함수가 필요한지에 대해 알아보고 시작하겠다.
큰 프로그램을 만들때는 두가지 관점을 관철해야 한다.
단순히 효율과 결과에만 집중하지 말고, 위의 두가지 관점을 계속 생각하며 코딩하라.
다음의 두 예제코드를 보자.
1번
int main() {
printf("********************");
printf(" Jo_Hyeon_Jin\\n");
printf(" Kimje, Korea\\n");
printf("********************");
return 0;
}
2번
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#define WIDTH 20
#define NAME "Jo_Hyeon_Jin"
#define ADDRESS "Kimje, Korea"
void print_bar(int n_stars)
{
for (int i = 0; i <= n_stars; i++) {
printf("*");
}
printf("\\n");
}
int main()
{
print_bar(WIDTH);
printf(" %s\\n", NAME);
printf(" %s\\n", ADDRESS);
print_bar(WIDTH);
return 0;
}
1번과 2번은 동일한 결과를 내놓지만 구성은 아예 다르다. 2번은 별의 개수와 명함에 들어갈 내용을 수정가능. 즉 명함을 만든다는 핵심적인 기능만 유지한 채, 그 안에 들어갈 구성요소는 언제든지 수정가능하게 만든 더 General한 코드인 것.
1번 코드를 2번코드와 같이 만드는것을 Refactoring이라고 함. 코드를 작성할때 1번처럼 만든 후, 기능을 하나하나 Refactoring하면서 동시에 실행결과가 계속 같다는걸 확인하면서 만드는 기법이 있음.