C++ 개념 정리

DevBison·2025년 9월 4일

공부 방법

  1. 올바른 타이핑 방법을 연습한다.
  2. 간단한 개념을 이해한다.
  3. 예제를 따라 해본다.
  4. 문제가 생기면 해결한다. (문제 해결하는 과정이 핵심이다)
  5. 예제를 내 맘대로 바꿔본다.

프로그래밍을 배우는 이유는 무언가를 만들고 싶어서이다.


프로그래밍 언어란?

프로그램이란 컴퓨터가 원하는 기능을 수행해 주는 것. 이를 위해서는 계산적 사고(컴퓨팅 사고) 가 필요하다.

기계어 (Machine Language)

  • 0, 1 이진수를 사용한다.
  • 직접 사용하는 경우는 거의 없다.

어셈블리 언어

  • 기계어를 직접 쓰기 힘들어서 등장.

고수준 언어 (High-Level Languages)

  • C, C++, Pascal, Java, Javascript, Perl, Python 등
  • 사람이 이해하기 쉬운 문법을 사용한다.

컴파일러와 인터프리터

컴파일러 (Compiler)

컴파일러

  • 전체 코드를 번역해 실행 파일(exe) 생성
  • 실행 파일은 하드웨어에 보관되어 실행됨

인터프리터 (Interpreter)

인터프리터

  • 실행 파일을 생성하지 않음
  • 한 줄씩 읽고 바로 실행 → 실행 속도 느림
  • 대표적 언어: Python

이식성 (Portability)

이식성

  • OS마다 실행 파일 호환이 안 될 수 있다. (예: Windows ↔ Linux)
  • 장기적으로는 가능해지고 있음.

C/C++ 언어 소개

C/C++

  • C++은 객체 지향 언어
  • 중요한 것은 언어 기능을 다 아는 것이 아니라 쓸모있는 기능을 제대로 쓰는 것

프로그래밍 과정

  1. 문제 정의 – 무엇을 만들고 싶은지, 세부 기능을 잘게 쪼갠다.
  2. 해법 설계 – 어떻게 만들지 구상한다.
  3. 구현 – 생각한 대로 프로그램을 작성한다.
  4. 컴파일 – 코드를 기계어로 번역한다.
    컴파일 과정
  5. 링킹 – 여러 오브젝트 파일을 하나로 합친다.
    링킹 과정
    → 요즘은 직접 작성하는 코드보다 오픈소스를 잘 가져다 쓰는 능력이 중요하다.
  6. 테스트 & 디버깅 – 실행해보고 문제를 고친다.

컴퓨터 메모리 기본 구조

메모리 구조

  • 메모리에 데이터를 저장 → CPU가 연산 → 다시 메모리에 저장
  • 자주 쓰는 데이터는 캐시(Cache)에 저장해 속도를 높인다.

메모리 접근 방식

RAM

  • RAM (Random Access Memory) → 주소만 알면 바로 접근 가능
  • 순차 접근(테이프 방식)은 현대 컴퓨터에서 사용하지 않음

메모리 단위

비트

  • 비트(bit): 0 또는 1 (Binary Digit)
  • 여러 비트가 모여 바이트, 워드 등을 구성

CPU와 메모리 통신

CPU와 메모리

  • 주소 버스(address bus): 데이터가 어디 있는지
  • 데이터 버스(data bus): 실제 데이터
  • 제어 버스(control bus): 읽기/쓰기 신호
  • 이 구조 때문에 포인터(pointer) 가 존재한다.

통합개발환경(IDE) - Visual Studio

프로젝트 관리

프로젝트 관리

  • Location(저장 위치)을 잘 관리해야 한다.

프로젝트 생성

프로젝트 생성

  • Windows, Console 크게 차이 없음 (Console은 텍스트 출력용)

Precompiled Header

  • Precompiled Header → 멀티플랫폼 코드에서는 사용 X (리눅스에서 컴파일 불가)

컴파일 & 링킹 과정

컴파일
링킹

프로젝트 폴더 구조

폴더 구조

  • 상위 폴더 열면…
    상위 폴더
  • Debug → obj 폴더 확인 가능

명령어 실행

명령 실행

  • 원래는 이런 커맨드(Command) 로 실행했음

디버그 빌드 vs 릴리즈 빌드

빌드 차이

  • 디버그 빌드: 디버깅 정보 포함, 최적화 OFF → 실행 크기 큼, 속도 느림
  • 릴리즈 빌드: 불필요한 정보 제거, 최적화 ON → 용량 작음, 실행 속도 빠름

통합 개발환경의 기본적인 사용법 - 윈도우즈/리눅스 Code::Blocks

Code::Blocks 다운로드

다운로드

  • Code::Blocks는 GCC 컴파일러를 사용하므로 별도 다운로드 필요

디버거 설치

  • 디버거(Debugger)도 함께 설치해야 함

Code::Blocks 첫 실행

첫 화면

  • 처음 실행 시 어떤 컴파일러를 쓸지 설정해야 함
  • 프로젝트 단위로 시작하는 것이 편리

프로젝트 생성
경로 설정

  • 프로젝트 이름과 경로 지정

디버그 설정

  • 빌드 모드에서 Debug/Release 설정 가능

Code::Blocks 디버깅

디버깅1
디버깅2

  • 코드 실행 중 문제를 추적하고 고치는 과정 → 디버깅(Debugging)

비주얼 스튜디오 - 솔루션, 프로젝트 관리

솔루션과 프로젝트 구조

  • 솔루션
    • 프로젝트1
    • 프로젝트2
    • ... ...
  • 다양한 언어 혼합 가능
  • 계층 구조: 솔루션(.sln) > 프로젝트 > 소스파일(.cpp, .h 등)

빌드와 실행

  • 솔루션 밑에 여러 프로젝트가 있을 경우, 빌드 후 생성된 exe 및 필요한 파일들이 솔루션 디렉토리 밑으로 이동
    빌드 파일
  • 해당 위치는 속성에서 변경 가능

실행 프로젝트 선택

실행 프로젝트

  • 프로젝트가 여러 개일 경우, 볼드체로 표시된 프로젝트가 실행 대상

하위 시스템 설정

하위 시스템

  • 프로젝트 우클릭 → 속성 → 링커 → 시스템 → 하위 시스템(콘솔) 설정

관리 팁

  • 솔루션 파일은 직접 수정하지 말 것
  • IDE에서 프로젝트 제거 → Source 폴더 삭제 → 리빌드

비주얼 스튜디오 2022 기본적인 사용법

VS2022
옵션

  • 메뉴: 툴 → 옵션
  • F7: 컴파일 오류 확인용 "빌드만" 실행 (프로그램 실행은 안 됨)

profile
응애 개발자

0개의 댓글