본문 바로가기
GD's IT Lectures : 기초부터 시리즈/C, C++ 기초부터 ~

[C/C++ 프로그래밍] 1. 개발 환경 설정

by GDNGY 2023. 5. 15.

Chapter 1. C/C++ 개발 환경 설정

이 장에서는 C/C++ 개발에 필요한 기본적인 환경 설정에 대해 알아볼 것입니다. 프로그래밍 언어 선택의 이유와 컴파일러, 인터프리터에 대한 이해, 컴파일러 및 IDE의 설치와 설정 방법, 디버깅 환경 설정, 그리고 첫 번째 C/C++ 프로그램 작성에 이르기까지의 과정을 단계별로 배워봅시다.

 


 

반응형

 

 


[Chapter 1. C/C++ 개발 환경 설정]

 

1.1. 프로그래밍 언어 선택의 이유
1.1.1. C/C++의 특징
1.1.2. C/C++의 사용 분야
1.2. 컴파일러와 인터프리터의 이해
1.2.1. 컴파일러의 정의와 작동 원리
1.2.2. 인터프리터의 정의와 작동 원리
1.3. 컴파일러 설치
1.3.1. Windows에서의 컴파일러 설치 방법
1.3.2. MacOS에서의 컴파일러 설치 방법
1.3.3. Linux에서의 컴파일러 설치 방법
1.4. 개발환경(IDE) 설정
1.4.1. 인기 있는 IDE 소개
1.4.2. IDE 설치 및 설정 방법
1.5. 디버깅 환경 설정
1.5.1. 디버깅의 필요성 이해
1.5.2. 디버거의 기능 및 사용법
1.5.3. IDE에서의 디버깅 환경 설정 방법
1.6. 첫 번째 C/C++ 프로그램 작성
1.6.1. 소스코드의 구조 이해
1.6.2. "Hello, World!" 프로그램 작성해보기
1.6.3. 프로그램의 컴파일과 실행

 


1.1. 프로그래밍 언어 선택의 이유

프로그래밍을 처음 시작하는 사람들은 어떤 언어로 시작해야 할지 고민하는 경우가 많습니다. 왜 C/C++ 언어를 선택해야 하는지에 대해 알아봅시다.

 

C/C++은 세계에서 가장 많이 사용되는 프로그래밍 언어 중 하나입니다. 그 이유는 그 성능과 유연성 때문입니다. C/C++는 절차 지향 및 객체 지향 프로그래밍 언어로, 운영체제, 게임, 그래픽, 임베디드 시스템 등 다양한 분야에서 사용되고 있습니다.

 

또한, C/C++을 배우면 다른 프로그래밍 언어를 배우는 데에도 도움이 됩니다. C/C++ 문법은 다른 많은 언어들의 기반이 되기 때문입니다. 예를 들어, Java, C#, Python 등의 언어는 C/C++에 영향을 받았습니다.

 

1.1.1. C/C++의 특징

C 언어는 절차 지향 언어로 구조화된 프로그래밍을 지원합니다. 이를 통해 프로그램을 기능별로 분리하여 코드의 재사용성과 유지 보수성을 높일 수 있습니다.

 

C++는 C 언어의 확장 버전으로, 객체 지향 프로그래밍을 지원합니다. 객체 지향 프로그래밍은 프로그램을 객체들의 모임으로 보고, 객체 간의 상호작용으로 프로그램을 구현합니다. 이를 통해 코드의 재사용성을 더욱 높이고, 복잡한 프로그램을 쉽게 관리할 수 있습니다.

 

1.1.2. C/C++의 사용 분야

C/C++는 다양한 분야에서 활용됩니다.

  • 운영체제: 대표적인 예로는 Microsoft의 Windows, Apple의 macOS 등이 있습니다. 이들 운영체제의 핵심 부분은 C/C++로 작성되어 있습니다.
  • 게임 개발: C++는 효율성과 성능 때문에 게임 개발에 널리 사용됩니다. Unreal Engine과 같은 주요 게임 엔진들은 C++로 작성되어 있습니다.
  • 임베디드 시스템: C는 하드웨어에 가까운 프로그래밍을 가능하게 하므로, 임베디드 시스템에서 많이 사용됩니다.

 

1.2. 컴파일러와 인터프리터의 이해

프로그래밍 언어를 배우기 시작하면 컴파일러와 인터프리터라는 용어를 자주 만나게 됩니다. 이 둘은 프로그램 코드를 컴퓨터가 이해할 수 있는 머신 코드로 변환하는 방식이 다른 도구입니다.

 

1.2.1. 컴파일러의 정의와 작동 원리

컴파일러는 프로그래머가 작성한 소스 코드를 한 번에 읽어 전체를 머신 코드로 변환하는 도구입니다. 이 변환된 결과를 '실행 파일'이라고 하며, 이 파일을 실행하면 프로그램이 작동합니다. C/C++은 대표적인 컴파일러 방식의 언어입니다.

 

컴파일러는 아래와 같이 작동합니다.

  • 전처리(Preprocessing): #include, #define 등의 전처리 지시자를 처리합니다.
  • 컴파일(Compiling): 전처리를 거친 소스 코드를 어셈블리 언어로 변환합니다.
  • 어셈블(Assembling): 어셈블리 언어를 머신 코드로 변환합니다.
  • 링크(Linking): 외부 라이브러리와 함께 머신 코드를 하나로 합쳐 실행 파일을 생성합니다.

 

예를 들어, C 언어에서 "Hello, World!"를 출력하는 코드는 아래와 같습니다.

 

[예제]

#include <stdio.h>

int main() {
    printf("Hello, World!");
    return 0;
}

 

위 코드를 컴파일하면 실행 가능한 파일이 생성되며, 이 파일을 실행하면 "Hello, World!"가 출력됩니다.

 

1.2.2. 인터프리터의 정의와 작동 원리

인터프리터는 프로그래머가 작성한 소스 코드를 한 줄씩 읽어 바로 머신 코드로 변환하고 실행하는 도구입니다. 인터프리터 방식의 언어로는 Python, JavaScript 등이 있습니다.

 

인터프리터는 컴파일러와 달리 전체 코드를 머신 코드로 미리 변환하지 않습니다. 대신 코드를 한 줄씩 읽으면서 바로 실행합니다. 이 때문에 개발 과정에서 변경 사항을 빠르게 확인할 수 있지만, 실행 속도는 일반적으로 컴파일러 방식보다 느립니다.

 

위에서 작성한 C 언어의 "Hello, World!" 출력 코드와 동일한 기능을 하는 Python 코드는 아래와 같습니다.

 

[예제]

print("Hello, World!")

 

이 코드는 Python 인터프리터에 의해 한 줄씩 읽히고 바로 실행되어 "Hello, World!"를 출력합니다.

 

 

1.3. 컴파일러 설치

C/C++ 프로그래밍을 위해 컴파일러를 설치하는 방법을 알아봅시다. 여기서는 Windows, MacOS, 그리고 Linux 운영체제에서의 컴파일러 설치 방법을 소개합니다. 

 

1.3.1. Windows에서의 컴파일러 설치 방법

Windows에서 C/C++을 컴파일하기 위해서는 MinGW라는 컴파일러를 설치하는 것이 일반적입니다. MinGW는 Minimalist GNU for Windows의 약자로, GNU 컴파일러 도구를 Windows에서 사용할 수 있게 해주는 소프트웨어입니다. 

 

다음은 MinGW 설치 방법입니다:

  • MinGW 공식 웹사이트(https://mingw-w64.org/)에서 다운로드 페이지로 이동합니다.
  • 'mingw-get-setup.exe' 파일을 다운로드합니다.
  • 다운로드한 파일을 실행하고, 설치 과정을 따라 진행합니다.

1.3.2. MacOS에서의 컴파일러 설치 방법

MacOS에서는 Xcode라는 IDE를 설치하면 자동으로 Apple의 컴파일러인 clang이 설치됩니다. Xcode는 애플 앱 스토어에서 무료로 다운로드 받을 수 있습니다.

 

설치가 완료되면 커맨드 프롬프트에서 gcc --version과 g++ --version 명령을 통해 설치가 잘 되었는지 확인할 수 있습니다.

 

1.3.3. Linux에서의 컴파일러 설치 방법

Linux에서는 GCC(GNU Compiler Collection)를 사용하여 C/C++ 프로그램을 컴파일합니다. 대부분의 Linux 배포판은 기본적으로 GCC를 설치해 두었지만, 만약 설치되어 있지 않다면 다음 명령을 통해 설치할 수 있습니다.

Debian 기반 시스템(Ubuntu 등) :

sudo apt-get install build-essential

 

Red Hat 기반 시스템(CentOS 등):

sudo yum groupinstall 'Development Tools'

 

설치 후 gcc --version과 g++ --version 명령을 통해 설치가 잘 되었는지 확인할 수 있습니다.

 

1.4. 개발환경(IDE) 설정

프로그래밍을 위한 편집기는 여러가지가 있지만, 여기서는 Integrated Development Environment(IDE)를 사용하는 방법을 소개합니다. IDE는 코드 편집, 빌드, 디버깅 등 프로그래밍에 필요한 모든 기능을 한 곳에서 제공하는 소프트웨어입니다.

 

1.4.1. 인기 있는 IDE 소개

  • Visual Studio: 마이크로소프트에서 제공하는 강력한 IDE로, C/C++ 뿐만 아니라 다양한 언어를 지원합니다. 유료버전과 무료버전(Community Edition)이 있습니다.
  • CLion: JetBrains에서 제작한 C/C++ 전용 IDE로, 매우 편리한 코드 편집과 디버깅 기능을 제공합니다. 학생인 경우 무료로 사용할 수 있습니다.
  • Eclipse: 다양한 언어를 지원하는 오픈소스 IDE로, C/C++ 개발도 지원합니다.
  • Code::Blocks: 무료로 사용할 수 있는 간편한 C/C++ IDE입니다.

 

1.4.2. IDE 설치 및 설정 방법

각 IDE는 공식 홈페이지에서 다운로드 받을 수 있습니다. 설치 과정은 대부분 간단하며, 설치 완료 후에는 컴파일러 설정을 해야 합니다. 아래는 Visual Studio에서의 컴파일러 설정 방법입니다:

  1. Visual Studio를 실행하고, 'Create a new project'를 선택합니다.
  2. 'C++' 카테고리에서 'Empty Project'를 선택하고, 프로젝트 이름과 위치를 설정한 후 'Create'를 클릭합니다.
  3. 'Solution Explorer' 창에서 프로젝트를 우클릭하고, 'Add' > 'New Item'을 선택합니다.
  4. 'C++ File(.cpp)'를 선택하고, 파일 이름을 입력한 후 'Add'를 클릭합니다.

이제 새로운 C++ 파일이 생성되어 코드를 작성할 준비가 되었습니다. 간단한 코드를 작성해봅시다:

#include <iostream>

int main() {
    std::cout << "Hello, World!";
    return 0;
}

 

'Build' > 'Build Solution'을 선택하여 코드를 빌드하고, 'Debug' > 'Start Debugging'을 선택하여 프로그램을 실행합니다. "Hello, World!"가 출력되면 성공적으로 개발환경이 설정된 것입니다.

 

1.5. 디버깅 환경 설정

프로그램 개발 시 중요한 점 중 하나는 바로 오류를 찾고 수정하는 것입니다. 이러한 과정을 '디버깅'이라고 합니다. 이번 섹션에서는 디버깅의 중요성과 디버거의 기능, 그리고 IDE에서 디버깅 환경을 어떻게 설정하는지에 대해 알아보겠습니다.

 

1.5.1. 디버깅의 필요성 이해

디버깅은 개발자가 코드에 존재하는 오류를 찾아내고 수정하는 과정입니다. 모든 프로그래밍 언어에는 오류가 발생할 수 있으며, 이 오류는 의도치 않은 동작을 유발하거나, 프로그램이 예상대로 동작하지 않게 할 수 있습니다. 따라서 오류를 효과적으로 찾아내고 수정하는 기술은 매우 중요합니다.

 

1.5.2. 디버거의 기능 및 사용법

디버거는 디버깅을 돕는 도구입니다. 기본적인 디버거의 기능으로는 코드의 실행 흐름을 단계별로 살펴보기, 변수의 값 확인하기, 특정 조건에서 프로그램의 실행을 일시 중지하기(breakpoint 설정) 등이 있습니다. 이러한 기능들을 활용하면 오류를 더 빠르고 정확하게 찾아낼 수 있습니다.

 

1.5.3. IDE에서의 디버깅 환경 설정 방법

대부분의 IDE는 디버거를 내장하고 있으며, 사용 방법은 IDE에 따라 약간씩 다릅니다. 다음은 Visual Studio에서 디버깅을 하는 방법입니다:

 

  • 디버깅을 원하는 코드에 커서를 두고 F9 키를 눌러 breakpoint를 설정합니다.
  • 'Debug' > 'Start Debugging'을 선택하여 디버깅을 시작합니다.
  • 프로그램이 breakpoint에서 멈추면, 현재 상태의 변수 값을 확인할 수 있습니다. F10 키를 눌러 다음 줄로 넘어갈 수 있습니다.

이렇게 디버깅을 통해 오류를 찾아내고 수정하는 과정은 프로그래밍 학습에서 매우 중요합니다. 디버깅을 통해 자신의 코드를 더 깊이 이해하게 되고, 오류에 대한 해결 능력을 키울 수 있습니다.

 

1.6. 첫 번째 C/C++ 프로그램 작성

본격적인 C/C++ 프로그래밍에 앞서, 기본적인 소스코드의 구조를 이해하고, 간단한 "Hello, World!" 프로그램을 작성해보겠습니다. 그 후, 작성한 프로그램을 어떻게 컴파일하고 실행하는지 알아보겠습니다.

 

1.6.1. 소스코드의 구조 이해

C/C++ 프로그램은 일반적으로 하나 이상의 함수로 구성됩니다. 이 중 'main' 함수는 프로그램의 시작점을 나타내며, 컴파일러는 이 함수부터 실행을 시작합니다.

 

1.6.2. "Hello, World!" 프로그램 작성해보기

다음은 C++로 "Hello, World!"를 출력하는 프로그램의 예제입니다.

#include <iostream>

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

 

이 코드의 각 줄은 다음을 의미합니다

  • #include : 'iostream' 라이브러리를 포함합니다. 이 라이브러리는 입출력 기능을 제공합니다.
  • int main() {: 'main' 함수를 선언합니다. 이 함수는 프로그램 실행 시 최초로 호출되는 함수입니다.
  • std::cout << "Hello, World!" << std::endl;: 표준 출력 스트림(std::cout)을 이용해 "Hello, World!"와 줄바꿈을 출력합니다.
  • return 0;: 'main' 함수의 실행을 종료하고, 0을 반환합니다.

 

1.6.3. 프로그램의 컴파일과 실행

위에서 작성한 코드를 컴파일하려면 터미널에서 다음 명령을 실행합니다.

g++ HelloWorld.cpp -o HelloWorld

 

이 명령은 'g++' 컴파일러를 사용해 'HelloWorld.cpp' 파일을 컴파일하고, 결과물을 'HelloWorld'라는 이름의 실행 파일로 만듭니다.

이후, 프로그램을 실행하려면 다음 명령을 실행합니다.

./HelloWorld

 

이 명령은 방금 생성한 'HelloWorld' 실행 파일을 실행하며, "Hello, World!"를 출력합니다.

 

 

 

2023.05.15 - [GD's IT Lectures : 기초부터 시리즈/C, C++ 기초부터 ~] - [C/C++ 프로그래밍] C/C++ 초급과정 소개

 

[C/C++ 프로그래밍] C/C++ 초급과정 소개

C/C++ 초급과정 소개 C/C++ 초급 과정에서는 개발 환경 설정부터 시작하여, 출력문, 입력문, 변수, 상수, 자료형, 연산자를 배우며 C/C++의 기본 구조에 대해 이해하게 됩니다. 그 후, 프로그램의 흐름

gdngy.tistory.com

 

반응형

댓글