프로그래밍 절차
1. 프로그램 구현 과정(SW 개발 5단계)
1) 요구 분석: 기능 분석
2) 설계
3) 구현: 코드 작성
4) 검증
5) 유지보수
-> SW 개발 과정 연구 분야: 소프트웨어 공학
2. C프로그램 구현 과정
1) 프로구램 구상
2) 소스 편집
3) 컴파일
4) 링크
5) 실행
: 3), 4), 5)는 IDE에서 한번에 가능
3. 소스 편집
1) 소스 파일(source file) 또는 소스코드(source code)
- 프로그래밍 언어로 일련의 명령어가 저장된 파일
- 텍스트 파일
2) 소스 파일 확장자
- C언어: *.c
- 자바: *.java
- C++: *.cpp
4. 컴파일
1) 컴파일러(compiler): 고급언어에서 기계어를 생성하는 프로그램
- 소스파일에서 기계어로 작성된 목적파일(object file)을 생성
2) 소스파일->목적파일
- 소스파일: main.c, submoudule1.c, submoudule2.c
- 목적파일: main.obj, submoudule1. obj , submoudule2. obj
-> 3개의 소스파일 생성 시 3개의 목적파일 생성
5. 링크와 실행
1) 링크(link) 또는 링킹(linking): 링커(linker)가 수행하는 과정
- 여러 개의 목적 파일을 연결하여 하나의 실행 파일(execute file)을 생성해 주는 과정
- 참조하는 여러 라이브러리를 포함시킴
- 링크의 결과인 실행 파일의 확장자는 .exe 또는 .dll, .com 등
2) 비주얼 스튜디오: 빌드(build)를 제공
- 솔루션 탐색기: 솔루션, 하부 프로젝트, 하부 소스 파일을 보여주는 창
- 컴파일과 링크 과정을 하나로 합친 메뉴
- 성공하면 파일 확장자가 .exe인 하나의 실행 파일 생성
3) 링커: 다음 파일을 연결
- 프로젝트 소스파일의 목적파일
- 사용한 라이브러리 목적파일
- 실행파일을 만들어내는 과정: 프로젝트 이름이 실행파일 이름이 된다
6. 소프트웨어의 라이브러리
1) 소프트웨어 라이브러리
- 다른 전문가가 자주 사용하는 기능의 단위 프로그램을 이미 만들어 놓은 모듈
- 개발자마다 새로 작성할 필요 없이 이미 만들어 놓은 라이브러리 사용
2) 단위 프로그램
- C: 함수 중심
- Java: 클래스 중심
7. 오류
1) 오류 또는 에러(error)
- 프로그램 개발 과정에서 나타나는 모든 문제
2) 발생 시점에 따른 구분
오류 종류 | 내용 |
컴파일(시간) 오류 | - 개발환경에서 오류 내용과 오류 발생 위치를 어느 정도 알려줌 - 오류를 찾아 수정하기가 비교적 용이 |
링크(시간) 오류 | - 컴파일 오류보다 상대적으로 희소 - main() 함수 이름이나 라이브러리 함수 이름을 잘못 기술해 발생 |
실행(시간) 오류0 | - 실행하면서 오류가 발생해 실행이 중지되는 경우 |
3) 원인과 성격에 따른 구분
구문 오류(syntax error) 또는 문법 오류 |
- 프로그래밍 언어 문법(syntax)을 잘못 기술 - 문법이 잘못된 소스로 발생하는 오류 |
논리 오류(logic error) | - 내부 알고리즘이 잘못되거나 원하는 결과가 나오지 않는 등의 오류 ex. 원의 면적을 계산하는 공식을 잘못 사용하거나 해당년도의 평균평점을 계산했는데 잘못된 결과가 나오는 등 |
8. 오류 해결
1) 디버깅(debugging)
- 다양한 오류를 찾아 소스를 수정해 다시 컴파일, 링크, 실행하는 과정
- 디버거(debugger): 디버깅을 도와주는 프로그램
2) 디버깅 과정
- 프로그램 구현 과정의 오류 발생
: 컴파일과 링크, 실행 시 오류가 발생: 대부분 소스 코드 수정 후 다시 컴파일, 링크, 실행
첫 프로그램 작성과 실행
1. 새 프로젝트 생성
: 비주얼 프로젝트에서 새 프로젝트 만들기
1) 임의로 지정된 프로젝트 이름과 위치, 그리고 솔루션
2) 솔루션: 여러 개의 프로젝트를 모아 놓은 폴더
- 단원 이름을 솔루션으로 지정 ex. ch02
프로젝트 이름 설정 시 기본적으로 솔루션 이름도 동일하게 만들어지나
이는 변경이 가능
3) 솔루션 탐색기: 주 화면 오른쪽
- 생성된 솔루션과 프로젝트: 솔루션의 프로젝트와 파일을 쉽게 관리
- 솔루션 탐색기: 프로젝트와 파일을 체계적으로 보여주며, 관련된 메뉴를 활용
- 솔루션, 하부 프로젝트, 하부 소스 파일을 보여주는 창
- 전체 솔루션의 그래픽 뷰를 제공해 응용 프로그램을 개발할 때 솔루션의 프로젝트와 파일을 쉽게 관리할 수 있도록 도움
- 프로젝트: 소스코드를 작성하기 위한 기본 환경으로 하부에 리소스파일, 소스파일, 헤더파일 등이 존재
- 속성: 솔루션 탐색기에서 선택한 프로젝트에 대한 속성 정보 표시
2. 솔루션: 단원
- 하나의 솔루션에는 하나 이상의 프로젝트를 저장
- 단원에 있는 여러 예제소스를 각각의 프로젝트로 저장해 관리
- 프로젝트: 각각의 예제
- 하나의 프로젝트는 여러 개의 프로그램 소스
- 각 프로젝트에는 main() 함수가 있는 소스가 단 하나 존재
3. 프로젝트에서 소스 작성
- 메뉴 > 프로젝트 > 새 항목 추가
- 솔루션 탐색기 > 소스 파일 > 추가 > 새 항목
- 대화상자 > 새 항목 추가 > Visual C++ / C++ 파일(.cpp)
- 이름: 소스파일 이름 입력
- 위치: 솔루션 폴더/프로젝트 폴더 내 저장
- 상단의 파일명 뒤에 *이 붙은 것은 파일이 아직 저장되지 않았다는 의미이다
- 소스는 영문자, 대소문자를 구별한다
4. 소스 작성 주의점
1) 세미콜론 ;
- 문장의 종료 표시
- 콜론 : 으로 잘못 입력하면 컴파일 오류 발생
2) 들여쓰기(indentation)
- IDE의 편집기에서 자동으로 맞추어 줌
- 소스의 가독성(readability)을 위해 반드시 필요
3) 코딩 시 주의점
#include <stdio.h>
int main()
{
printf("hello, world");
return 0;
}
- #include <stdio.h>는 일반 C 문장이 아닌 전처리 부분이고 컴파일 전에 처리된다
- 함수 main()의 구현은 들여쓰기를 하게 되며, 편집기에서 자동으로 지원한다. C 소스에서 소스를 읽기 쉽게 하기 위한 방법으로 잘못하더라도 문법적인 문제는 발생하지 않는다.
- 문자의 모임인 문자열은 반드시 큰따옴표로 묶어야 한다
- 일반 문장의 마지막은 세미콜론 ; 으로 입력한다
- return 뒤에는 반드시 공간이 필요하며 일반적으로 하나의 빈 문자를 입력한다
4) 프로젝트 실행 ctrl+F5
- 작성된 소스에 문제가 없어야 실행 성공
- [출력]에 빌드 과정 표시: 마지막 줄에 성공1, 실패0으로 표시
#include <stdio.h>
int main()
{
printf("hello, world"); // 함수가 콘솔에 출력할 문자열은 큰 따옴표로 묶어야 한다 // 문장을 종료할 때는 ; 세미콜론으로 입력
return 0; // 5줄에서 시작해 6줄을 지나 7줄 return 0로 0을 반환하고 프로그램이 종료된다.
}
오류 메세지와 오류 수정
1. 구문 오류
* 오류 내용
- 오류발생 파일의 경로를 포함한 전체 이름
- 추정되는 오류발생 줄과 열 번호
- 오류 코드 번호
- 오류 원인 메세지 등
ex.
2. 링크 오류
: 부품을 조립하는 링크 과정에서 발생하는 오류
- 대표적인 링크 오류: 라이브러리 함수인 printf() 철자를 잘못 기술하는 경우
ex. 마지막 f를 빼고 print()로 기술
3. 논리 오류(logical error)
- 문장 출력: 원하는 문장이 아닌 경우
- 교과목의 성적을 산출하는 프로그램: 잘못된 성적 결과
* 컴파일: 고급 프로그래밍 언어에서 기계어를 만들어 내는 과정을 컴파일 과정이라 하며, '컴파일한다'(compiling)라고 함
* 소스 코드와 목적 코드: 컴파일러에 의해 처리되기 전의 프로그램을 소스 코드(source code)라면 컴파일러에 의해 기계어로 번역된 프로그램을 목적 코드(object code)라 함
* 비주얼 스튜디오 프로젝트: 솔루션은 하나 이상의 프로젝트를 저장ㆍ관리하는 콘테이너 단위임, 프로젝트는 여러 소스와 관련 파일을 저장ㆍ관리하는 단위로, 프로젝트 이름으로 하나의 실행파일이나 실행모듈을 생성함
* 구문 오류: 문법에 어긋난 잘못을 말하며 소스를 편집하다 보면 ;나 " ", < >, ( ), { } 등의 구두 문자를 빠뜨리거나 printf나 puts 등의 단어를 잘못써서 발생하는 구문 오류(syntax error)는 흔하게 발생
'AI > 컴퓨터C프로그래밍' 카테고리의 다른 글
컴퓨터C프로그래밍 04 연산자와 조건 (0) | 2025.10.06 |
---|---|
컴퓨터C프로그래밍 03 C 프로그래밍 기초 (0) | 2025.10.06 |
컴퓨터C프로그래밍 01 C 언어 개요와 개발환경 설치 (0) | 2025.10.05 |
컴퓨터C프로그래밍 00 C 언어 개발환경 설치 (0) | 2025.10.05 |