리팩토링
기능을 유지한 채 내용을 유지보수하기 편하기 수정하는 것이다. 프로그래밍 언어란 말그대로 언어의 특징을 가지고 있다. 리팩토링에 대해 예를 들자면 똑같은 수학문제도 이해하기 쉽게 설명하는 사람이 있고 어렵게 설명하는 사람이 있다. 프로그래밍 언어 역시 어떤 문제를 어떻게 풀어야 하는지 글로 설명해 주는 것이라고 할 수 있다. 프로그래밍하는 사람 중이 이 설명은 복잡하게 하는 사람이 있기 마련인데 이를 간단한 설명으로 바꿔주는 것이라고 할 수 있다.
프랙탈 이미지 By Kh627 (Own work) [CC BY-SA 3.0], via Wikimedia Commons
디자인 패턴
디자인 패턴이란 반복적으로 나타나는 문제를 해결하기 위한 가장 보편적인 방법이라고 할 수 있다. 예를 들어 돼지갈비를 태어나서 처음 만든다고 하자. 그러면 시행착오가 있을 수 밖에 없는데 이런 시행착오를 주변에서 알려주는 사람이 없다면 돼지갈비를 처음 만드는 사람 모두다 이런 시행착오를 겪을 수밖에 없게 된다. 그래서 어떤 사람이 돼지갈비를 만들 때 주의해야할 점들이라는 책을 만들면 돼지갈비를 만들면서 문제가 생길 때 이 책을 보면 해결책을 쉽게 찾을 수 있을 것이다. 프로그래밍에서 디자인 패턴 역시 이와 같다. 특정 상황에서 빈번하게 발생하는 문제에 대한 해결책을 담고 있는 것이 디자인 패턴이다.
프로시저와 함수의 차이
함수는 리턴값을 가지며 프로시저는 리턴값이 없는 루틴에 해당한다. 루틴이란 특정 목적을 이루기 위한 일련의 코드를 재사용할 수 있는 형태로 만든 것을 말한다. 우리가 흔히 사용하는 루틴이란 반복적인 생활습관을 말하는데 예를 들어 축구 선수가 경기 전 경기 능력 향상을 위해 항상 똑같은 루틴으로 행동한다는 말은 경기 전에 항상 동일한 식단, 동일한 훈련 방법 등을 사용하는 것을 말한다. 프로그래밍에서 루틴 역시 특정 목적을 달성하기 위해 반복적으로 사용되는 코드들을 루틴이라고 한다.