728x90

황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다!

https://search.shopping.naver.com/book/catalog/32436115747

 

C++ Programming : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

 

1. 프로그래밍과 언어

컴퓨터가 처리할 일련의 작업을 묘사하는 것을 프로그래밍이라 하며, 이 때 사용하는 언어를 프로그래밍 언어라고 하며 아래와 같은 종류가 있다..

  • 0과 1만 사용하는 가장 원시적 언어 기계어 => 사람이 작성하기 매우 불편
  • ADD, SUB 등 사람이 표현하기 쉬운 니모닉 기호로 일대일 대응 => 어셈블리어
  • 사람이 이해하고 표현하기 쉬우면서 다양한 프로그램 구조 및 자료 효율적 표현 => 고급 언어(high level programming language)
    • Fortran, c/c++, python ..

기계어와 어셈블리어를 변환하는 프로그램은 어셈블러, 어셈블리어를 고급 언어로 변경하는 프로그램은 컴파일러이다.

즉, 사람이 작성한 언어를 컴파일과정을 통하여 어셈블리어로, 어셈블러를 통해 기계어로 번역하여 cpu로 전달된다.

 


2. C++ 역사

UNIX를 작성하기 위해 개선된 C언어는 큰 소프트웨어를 개발할 때 프로그램 코드 관리에 어려움이 있었음. 따라서 객체 지향 특성 및 기능을 추가한 C++을 개발하게 되었다.

  • C언어의 모든 기능을 가지고 있기 때문에 C 소스 프로그램 조금만 수정하면 C++ 프로그램으로 재사용 가능
  • 표준 C++ 규칙에 맞게 작성된 C++ 프로그램은 하드웨어, 운영체제 플랫폼에 상관없이 표준 C++ 컴파일러에 의해 컴파일되고 동일한 실행 결과 보장
  • ex) __cedc1이라는 비주얼 c++ 만의 전용 키워드는 다른 컴파일러에 의해서는 컴파일 xxxxx => 비주얼 c++ 도구를 이용하되 표준에 준한다면 다른 컴파일러에도 사용 가능

 


3. 개발 과정

c++ 소스 프로그램 작성, 컴파일, 링킹 과정을 통해 하나의 실행 파일을 만드는 과정으로 세분화된다.

 

c++ 소스 프로그램 작성
  • 표준 확장자가 cpp인 텍스트 파일
  • 대부분의 컴파일러 회사들이 c++ 소스프로그램의 작성 및 편집, 컴파일, 링킹, 실행, 디버깅 등 c++ 프로그램 개발의 모든 단계를 지원하는 통합 개발 환경(Integrated Development Environment = IDE) 제공
컴파일
  • 소스 프로그램 작성 완료되었으면 컴파일러로 컴파일한다.
  • 문법에 맞게 작성되었는지 검사하고, 기계어 코드로 변환하여 object file을 생성
  • 만약, 문법 틀리면 오류 발생

 

링킹
  • object file이 생성되었더라도 바로 실행 불가
  • 개발자가 작성한 c++ 프로그램이 표준 c++ 라이브러리나 다른 c++ 프로그램에 있는 함수, 객체, 데이터를 이용하는 경우 => 목적 파일에는 참조 표시만 있고 코드를 포함하지 않음
  • 링킹은 어떤 목적 파일이 참조하는 c++ 표준 라이브러리나 다른 목적 파일 속에 있는 함수, 객체, 데이터를 포함하여 실행ㅎ에 필요한 모든 기계어 코드를 확보하여 하나의 실행 파일로 만드는 과정

DLL(Dynamic Linking Library)란 링킹 단계에서 결합하지 않고, 실행 중 필요한 순간에 결합하도록 만들어진 라이브러리이다.

  • 실행 파일의 크기를 줄이는 역할
  • 여러 응용 프로그램이 실행 중에 공유하는 특징

 

프로그램 실행과 디버깅
  • 링킹의 과정에 의해 생성된 실행파일(exe 파일)은 바로 실행 가능
  • 만약 논리적 오류 발생 => 오류 위치 발견 or 원인 찾아 수정하는 과정을 디버깅(debugging)이라 부른다.
  • 일반적으로 컴파일러를 공급하는 회사에서 함께 공급

우리는 마이크로소프트의 Visual Studio를 이용하여 프로그램을 개발할 것이다. IDE로서 모두 갖춘 tool이기에 다른 도구 필요 xx 아래 사이트에서 다운로드 하면 된다.

https://visualstudio.microsoft.com/ko/downloads/

 

Visual Studio: 소프트웨어 개발자 및 Teams용 IDE 및 코드 편집기

Visual Studio 개발 도구 및 서비스를 사용하면 모든 개발자가 모든 플랫폼 및 언어로 앱을 쉽게 개발할 수 있습니다. 무료로 어디서나 코드 편집기 또는 IDE를 사용하여 개발하세요.

visualstudio.microsoft.com

 

728x90