이 포스팅은 Object Oriented Programming 시리즈 23 편 중 1 번째 글 입니다.

  • Part 1 - This Post
  • Part 2 - 02: Identifier, Variable, constant, Std IO, Operator
  • Part 3 - 03: Functions #1 - Calling (호출)
  • Part 4 - 04: Functions #2 - Local, Global Variable
  • Part 5 - 05: Functions #3 - Recursion Function, Reference Variable (재귀함수)
  • Part 6 - 06: Functions #4 - Reference Variable vs. Pointer
  • Part 7 - 07: Functions #5 - CallbyValue, CallbyReference
  • Part 8 - 08: Selection and Repetition
  • Part 9 - 09: File Input & Output (파일입출력)
  • Part 10 - 10: String library, rand(), srand()
  • Part 11 - 11: Pointer, Function Pointer
  • Part 12 - 12: Array, Vector (정적배열, 동적배열)
  • Part 13 - 13: class, object
  • Part 14 - 14: this, operator overloading
  • Part 15 - 15: friend, static, destructor
  • Part 16 - 16: Inherence (상속)
  • Part 17 - 17: Static Binding, Dynamic Binding, Header File
  • Part 18 - 18: Generic Programming, Template
  • Part 19 - 19: List Container
  • Part 20 - 20: Iterator (반복자)
  • Part 21 - 21: algorithm Library
  • Part 22 - 21: functional, lambda function
  • Part 23 - 22: Exception handling
▼ 목록 보기

C++

  • 발표년도 : 1983
  • 설계자 : Bjarne Stroustrup, 덴마크
  • 패러다임 : 절차적 프로그래밍, 함수형 프로그래밍, 객체 지향 프로그래밍
  • 절차지향, 객체지향의 성격을 동시에 띄기 깨문에, 굉장히 유연하고 강력하다. 만능설계가 가능
  • 하지만 복잡하다는 단점이 있다.

Software Build Process & Tools

Build Process

Editor

  • 대부분의 에디터는 신택스에러를 막기위해 색을 칠한 단어로 표기되는 경향이 있다.
  • 에디터는 사용자가 프로그램의 소스코드에 들어갈 수 있게 허용한다.
  • 신택스 에러가 뜬다면 컴파일이 되지 않는다.

Pre-Processor

  • 전처리기는 코드를 처리하기 전에 소스코드의 요소들을 수정하고 더한다.
  • 보통 #include 를 사용해서 우리 프로그램이 사용하는 라이브러리 정보를 가져온다.

Compiler

  • 컴파일러는 소스 코드를 타겟 코드로 변환한다.
  • 타겟 코드는 장치나 특정 플랫폼을 위한 기계 언어일지 모른다.
  • 일지 모른다고 한 이유는, 특정 프로그래밍 언어를 컴파일 할 경우, 다른 언어의 소스 언어가 될지 모르기 때문이다.
  • 예를 들어, 초기 C++ 컴파일러는 C로 변환했다.
  • 즉 컴파일 한 타겟 코드가 다른 소스 언어로 변환 된 것이다.
  • 요즘의 C++ 컴파일러는 바로 기계언어로 변환한다.

Linker

  • 링커는 컴파일러에 의해 만들어진 기계 코드와, 사전에 처리된 라이브러리 코드 또는 다른 소스로 부터 만들어진 소스들을 하나의 실행가능한 프로그램으로 만들기 위해 묶는다.
  • 대부분의 컴파일 된 C++ 코드는 혼자서 작동할 수 없다.
  • 실행가능한 하나의 프로그램을 만들기 위해서는 추가적인 기계 코드가 필요하다.
  • 이 없는 기계 코드는 이미 컴파일 되어 있고, 라이브러리 라는 저장소에 저장되어 있다.
  • 이 링커라고 불리는 프로그램은 프로그래머가 한 컴파일 된 코드와 라이브러리 코드를 묶어 완성된 프로그램을 만든다.

Debugger

  • 디버거는 프로그래머가 프로그램 구현시 오류를 찾아서 수정하기 위해 프로그램의 실행을보다 쉽게 추적 할 수있게 한다.
  • 디버거를 사용하면 개발자는 프로그램을 구동하면서 동시에 프로그램의 동작에 있어 어떤 소스코드 라인이 책임이 있는지 알 수 있다.

Profiler

  • 성능분석을 한다.
  • 프로그램의 시간 복잡도를 분석한다.
  • 함수 호출 주기, 빈도등도 분석할 수 있다.