이 글은 계약서를 작성하는 모든 사람을 위하여 작성되었다. 계약서를 작성한다는 것은 계약서를 서명 또는 날인 등이 포함된 하나의 문서로서 완성하는 행위를 의미한다. 이것은 협의된 거래구조를 언어의 형태로 옮기기 위하여 계약서의 초안을 준비하는 행위, 계약서의 개별 조항을 계약의 내용에 부합하도록 수정하기 위하여 검토하는 행위, 계약서를 주고받는 협상과정에서 전략을 수립하기 위하여 계약서의 의미를 해석하는 행위, 주어진 계약서에 서명 또는 날인 전 검토하는 행위 등 계약서와 관련된 모든 행위를 포함한다. 계약서는 자기 자신을 위하여 작성할 수도 있고, 다른 사람의 의뢰를 받아 작성할 수도 있다. 또한 계약서는 업무상 작성할 수도 있고, 업무와 무관하게 작성할 수도 있다. 어느 경우든 이 글의 독자가 될 수 있다.
그런데 계약서를 작성하려 하는 경우, 작성자에게 보장된 많은 선택지와 넓은 자유도에 비하여 참고할만한 계약서 작성 지침이 충분하지 않다는 점은 작성자를 혼란스럽게 한다. 일정한 분야에서 통용되는 계약서의 표준적인 조항의 의미를 법령과 판례에 비추어 분석하는 문헌은 찾아보기 쉽다. 그러나 그 배후에서 계약서가 지향하여야 하는 가치는 무엇인지, 그리고 올바른 계약서란 어떤 것이어야 하는지에 대한 계약서의 기본적인 원리와 철학에 대하여 다루는 문헌은 찾기 힘들다. 계약서는 법원에서 최종적으로 해석될 것이 예정되어 있는 문서이므로 입증책임을 고려하여 법에서 정한 요건사실이 누락되지 않도록 빠짐없이 다루어야 한다는 지침은 널리 알려진 중요한 지침이나, 계약서 작성을 위한 적극적인 지침이라 하기에는 다소 불충분하다.
판결서, 공소장과 불기소장, 소장과 준비서면을 작성하는 방법에 대하여는 이미 많은 자료가 축적되어 있다. 이에 비하여 계약서에 관한 논의가 부족한 이유는 계약서가 다른 법문서에 비하여 특히 비정형적인 것으로서 체계화하기 어렵다는 점이 하나의 이유가 될 것이다. 그렇다고 하더라도, 법실무적인 관점에서 볼 때 계약서 작성 작업의 중요성은 우리의 일상생활에서 계약서가 차지하는 중요성에 비하여 다소 경시되는 경향이 있다. 예를 들어, 자문의견서는 의뢰인의 의사결정에 직접적인 영향을 미칠 수 있는 것으로서 법조인의 전문성이 직접 투영된 중요한 문서로 인식되는데, 이에 반하여 계약서는 이미 당사자들이 협상을 통해 결정해 놓은 주요사항들을 법문서의 형식으로 옮겨 적는 단순반복적인 작업의 결과물로 여겨지기도 한다. 그럼에도 불구하고 계약서는 당사자 간의 법률관계를 직접 형성하는 처분문서라는 점에서 다른 어떤 법문서만큼이나 중요하다. 그렇기에 계약서의 작성에 관한 더욱 깊은 논의가 이루어졌으면 하는 바람이 이 글을 통해 계약서 작성에 관한 생각을 나누고자 하는 동기가 되었다.
이 글의 많은 부분은 경험과 직관에서 비롯한 내용이다. 이 글은 법실무에 직접 기여하기 위한 목적으로 작성된 것인 만큼, 모든 상황에서 올바른 진리를 탐구하는 과학(science)보다는 당면한 문제를 효율적으로 해결하기 위한 공학(engineering)에 가까운 글이고, 새로운 알고리즘을 제시하고 수학적으로 증명하기보다는 깨끗하고 우아한 소프트웨어를 만들 수 있는 코딩 철학을 제안하기 위한 글이다. 어떤 부분은 치밀한 법적 논증이 부족하다고 생각될 수도 있고, 어떤 부분은 단순히 개인적인 취향의 문제라 생각될 수도 있다. 그럼에도 불구하고 계약서를 주의 깊게 작성하는 방법에 대해 며칠간 고민해본 누군가가 있다면, 수많은 시도와 시행착오를 통해 얻은 교훈과 기법을 유용한 지침으로 삼을 수 있을 것이다.
이하에서는 먼저 계약과 계약서에 관해 생각해 볼만한 몇 가지 주제에 대해 논의한다. 다음으로는 앞의 논의에 기초하여 계약서 작성을 위한 구체적인 방법론을 제시한다.