2015년 5월 24일 일요일

C/C++ 프로그램 개발 과정 개요

 프로그램을 개발하는 데 있어서 일반적으로 다음과 같은 도구들이 필요하다.
❶ 텍스트 에디터 (text editor)
  • 프로그램을 입력, 편집, 수정할 수 있는 도구.
❷ 컴파일러 (compiler)
  • ‘컴파일(compile)’은 프로그래밍 언어로 작성된 코드를 컴퓨터가 이해하고 실행할 수 있도록 기계어(machine language)로 번역하는 것을 의미한다.
  • ‘컴파일러’는 이러한 일을 수행하는 실행 프로그램이다.
  • 특별히 C++프로그램 코드를 기계어로 번역해 주는 것을 ‘C++ 컴파일러’라고 한다.
❸ 디버거 (debugger)
  • 디버거는 프로그램의 실행시키면서 프로그램의 동작을 확인하고 오동작을 수정할 수 있는 도구이다.
개발 편의성을 높이기 위해서 이 세 가지를 하나로 통합한 도구를 IDE (intergrate development environment)라고 한다. 본 교재에서 사용하는 ‘CodeLite’도 C/C++프로그램을 개발하기 위한 무료 IDE 중 하나이며 이것을 이용하면 프로그램 작성, 컴파일, 디버깅을 하나의 환경에서 편리하게 수행할 수 있다.

 C/C++언어로 프로그램 개발 과정은 다음과 같이 요약할 수 있겠다.

  1. 사용자(프로그래머)는 C/C++언어 문법에 맞추어 프로그램을 작성한다.
  2. 이것을 컴파일하여 오브젝트(object)파일을 생성한다.
  3. 문법상 오류가 발생하였다면 소스코드를 수정한 후 2단계로 돌아간다.
  4. 오브젝트 파일을 링크(link)하여 실행프로그램(exe파일)을 생성한다.
  5. 프로그램을 실행하여 오동작이 일어난다면 수정한 후 다시 2단계로 돌아간다.

보통 ❷,❹번 과정은 IDE상에서 빌드(build)명령을 내리면 소스코드에 문법상 오류가 없다면 저절로 진행되어 실행파일이 생성된다. 따라서 오브젝트파일은 자동적으로 생성되어 링크하는 과정이 진행되므로 사용자 입장에서는 이 오브젝트 파일에 신경 쓸 필요가 없다.

[그림 1] C/C++ 프로그램 개발 과정 개념도
 프로그램을 작성하다 보면 거의 필연적으로 오류가 발생한다. 문법적인 오류(syntex error)는 명령이 문법에 맞지 않다거나 혹은 단순히 타이핑을 실수했다든가 함수명이나 변수명을 잘 못 작성한 경우로서 컴파일러에서 체크하여 메시지를 발생하므로 수정하는 것은 그다지 어렵지 않다. 하지만 프로그램의 실행이 의도와는 다르게 되는 것을 논리적인 오류라고 하며 보통 버그(bug)라고 칭한다. 이러한 논리적인 오류를 수정하는 과정은 디버깅(debugging)이라고 하며 앞의 경우보다 그 작업이 복잡하고 어려우므로 디버거라는 도구를 사용하게 된다.

댓글 없음:

댓글 쓰기