본문 바로가기
언어/C언어

[C 언어] 번외) 프로그램 개발 과정

by 천무지 2024. 4. 14.
반응형

 

 

프로그램의 개발과정은

 

요구사항 분석 -> 설계 -> 구현 -> 테스팅 -> 유지보수

 

설계: 어떤 순서로 작업을 처리할 지 설계하는 것이다.

 

구현: 가장 핵심적인 단계이다. 개발 도구(ex) visual studio)를 사용해 원하는 내용을 기술한다.

 

그 기술한 내용을 '소스코드' 라고 한다. 그리고 소스 코드가 들어있는 파일을 '소스파일' 이라고 한다.

 

C언어에서 소스파일의 확장자(.hwp 같은것)는 항상 .c 이어야 한다.

 

소스파일을 다 작성했으면 다음은 컴파일하고 링크다.

 

컴파일은 할때 필요한것은 컴파일러다. 컴파일러는 소스파일을 분석하여 특정 컴퓨터에서 실행이 가능하도록 기계어(컴퓨터가 읽을 수 있는 언어)로 바꿔준다.

 

컴파일러는 소스파일의 문장을 분석해서 문법에 맞는지 체크한다. 오류가 있다면 사용자에게 보고하고 컴파일이 종료된다.

 

이럴땐 사용자는 소스 작성 단계로 돌아가 수정해야 한다.

 

만약 오류가 없이 잘 컴파일이 되었다면 소스파일의 문장들은 기계어로 된 파일이 되었을 것이다.

 

이 기계어로 된 파일을 '오브적트 파일'이라고 한다. 확장자는 .obj이다.

 

만약 abc.c 라는 소스파일이 오류없이 컴파일 되었다면, abc.obj가 되는 것이다.

 

링크는 오브젝트 파일들을 라이브러리와 연결해서 실행 프로그램을 만든다.

 

여기서 라이브러리란 프로그래머들이 많이 사용하는 기능을 미리 작성해 놓은 것으로 컴파일러 안에 내장되어 있다.

 

링크를 수행하는 프로그램을 링커라고 한다.

 

예를 들어서 abc.obj 파일에 라이브러리를 붙여서 링크하면 abc.exe 가 생성된다.

 

보통 컴파일과 링크 과정을 '빌드' 라고 부른다.

 

그래서 개발도구에서 소스코드를 작성하고 빌드를 누르면 바로 실행파일이 된다.

 

가끔 컴파일 오류는 없지만 알고리즘을 잘못 생각해서 원하는 대로 실행이 되지 않는 경우가 있다.

 

이런오류를 '논리적 오류'라고한다.

 

예를 들어서 이런 프로그램이 있다고 치자.

 

1. 접시1 과 접시2 가 있다.

2. 접시1 에 딸기를 담는다.

3. 접시2 를 가져가서 딸기를 먹는다.

 

이런 프로그램을 실행하면 딸기는 먹지 못할 것이다.

 

딸기는 접시1에 있는데 접시2를 가져갔기 때문이다.

 

그래서 프로그램을 실행 했을때 원하는 결과가 나오지 않았다면 논리적인 오류가 어딘가에 있다는 뜻이다.

 

의도했던 대로 프로그램이 동작하지 않으면 컴파일 링크 실행 단계를 다시 해야한다.

 

이런 오류수정 작업을 '디버깅'이라고 한다.

 

유지보수: 디버깅 후에도 버그가 남아 있을 수 있기 때문에 필요하다. 잠복하고 있던 버그가 오작동을 일으킬 수 있기 때문이다.

 

유지보수가 중요한 이유는 사용자의 요규가 추가될 수 있기 때문이다. 이 작업은 돈이 잘 벌린다.

 

 

 

 


 

 

 

 

 

 

 

 

반응형