AI/컴퓨터C프로그래밍

컴퓨터C프로그래밍 02 C 프로그래밍 첫걸음

Ayel 2025. 10. 6. 07:06

 

 

프로그래밍 절차

 

 

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)는 흔하게 발생