Learning Goal
5. 간단한 출력을 할 수 있다.
2. VS 2010을 통해 디버깅, 컴파일을 할 수 있다
3. 버전 관리 시스템을 이해하고 사용할 수 있다
4. 컴파일 과정과 함수 구조를 파악한다
1. C/C++ 발전 과정을 이해한다
컴퓨터(Compute + er)
고속 계산을 위한 기계
프로그래밍 언어(Programming Language)
컴퓨터와 의사소통 할 수 있는 언어
C/C++
버전 관리 시스템(Version Control System)
파일의 변경 사항을 기록하는 시스템
버전 관리 시스템(Version Control System)
• 무언가 잘못되었을 때 복구를 돕기 위하여
• 프로젝트 진행 중 과거의 어떤 시점으로 돌아갈 수 있게 하기 위하여
• 여러사람이 같은 프로젝트에 참여할 경우, 각자가 수정한 부분을 팀원 전체가
동기화하는 과정을 자동화하기 위하여
• 소스 코드의 변경 사항을 추적하기 위하여
• 소스 코드에서 누가 수정했는지 추적하기 위하여
• 대규모 수정 작업을 더욱 안전하게 진행하기 위하여
• 가지내기(Branch)로 프로젝트에 영향을 최소화 하면서 새로운 부분을 개발하기
위하여
• 접붙이기(Merge)로 검증이 끝난 후 새로이 개발된 부분을 본류(trunk)에 합치기
위하여
• 많은 오픈 소스 프로젝트에서 어떠한 형태로든 버전 관리를 사용하고 있으므로
• 코드의 특정 부분이 왜 그렇게 쓰여 졌는지 의미를 추적하기 위하여
Hello, World!
Hello, World!
반환형 함수이름(매개변수 목록) {함수 본체}
Hello, World!
컴파일 과정(Compile Procedure)
디버깅(Debugging)
프로그램 상의 버그를 잡는 행위
레퍼런스 사이트
https://msdn.microsoft.com/ko-kr/library/cscc687y.aspx
http://ko.cppreference.com/w/c
http://forum.falinux.com/zbxe/index.php?mid=C_LIB
Basic study 1회차
Basic study 1회차
Basic study 1회차

Basic study 1회차

  • 2.
  • 4.
    5. 간단한 출력을할 수 있다. 2. VS 2010을 통해 디버깅, 컴파일을 할 수 있다 3. 버전 관리 시스템을 이해하고 사용할 수 있다 4. 컴파일 과정과 함수 구조를 파악한다 1. C/C++ 발전 과정을 이해한다
  • 6.
    컴퓨터(Compute + er) 고속계산을 위한 기계
  • 7.
  • 8.
  • 9.
    버전 관리 시스템(VersionControl System) 파일의 변경 사항을 기록하는 시스템
  • 10.
    버전 관리 시스템(VersionControl System) • 무언가 잘못되었을 때 복구를 돕기 위하여 • 프로젝트 진행 중 과거의 어떤 시점으로 돌아갈 수 있게 하기 위하여 • 여러사람이 같은 프로젝트에 참여할 경우, 각자가 수정한 부분을 팀원 전체가 동기화하는 과정을 자동화하기 위하여 • 소스 코드의 변경 사항을 추적하기 위하여 • 소스 코드에서 누가 수정했는지 추적하기 위하여 • 대규모 수정 작업을 더욱 안전하게 진행하기 위하여 • 가지내기(Branch)로 프로젝트에 영향을 최소화 하면서 새로운 부분을 개발하기 위하여 • 접붙이기(Merge)로 검증이 끝난 후 새로이 개발된 부분을 본류(trunk)에 합치기 위하여 • 많은 오픈 소스 프로젝트에서 어떠한 형태로든 버전 관리를 사용하고 있으므로 • 코드의 특정 부분이 왜 그렇게 쓰여 졌는지 의미를 추적하기 위하여
  • 11.
  • 12.
  • 13.
  • 14.
    컴파일 과정(Compile Procedure) 디버깅(Debugging) 프로그램상의 버그를 잡는 행위 레퍼런스 사이트 https://msdn.microsoft.com/ko-kr/library/cscc687y.aspx http://ko.cppreference.com/w/c http://forum.falinux.com/zbxe/index.php?mid=C_LIB

Editor's Notes

  • #7 컴퓨터(compute + er)는 본래 어원에서 알 수 있다시피 고속 계산을 위한 용도로 발전되었다. 현대 컴퓨터의 개념을 최초로 제시한 이는 찰스 배비지였는데, 그는 오늘날의 컴퓨터와 개념적으로 같은 기계인 해석기관을 설계하였다. 후에 천공카드 시스템이 개발되어 프로그래밍을 이용하게 된다.
  • #8 프로그래밍 언어는 컴퓨터와 의사소통할 수 있는 언어이다. 가장 원시적인 언어는 기계어이며, 이에 대응하는 어셈블리어, 그리고 고급 수준 프로그래밍 언어인 코볼, 포트란, C 등이 나왔다.
  • #9 C는 데니스 리치가 만든 프로그래밍 언어이다. 어셈블리어로 변환되어 속도가 매우 빠르고, 오늘날 수많은 언어들의 근간이 되는 언어이다. 메모리를 직접 제어할 수 있다는 것이 가장 큰 특징인데, 이로 인해 C언어는 고수준부터 저수준까지 접근할 수 있어 아직도 많이 쓰이는 언어 중 하나이다. C++는 비야네 스트롭스트룹이 C언어에서 파생시켜 만든 언어로서, 객체지향 프로그래밍의 개념이 추가되었다.
  • #10 버전 관리 시스템이란 파일의 변화를 시간에 따라 기록하여 과거 특정 시점의 버전을 다시 불러올 수 있는 시스템이다. 즉, 어제 했던 내용으로 돌릴 수 있는 시스템이다. 중앙 집중 시스템과 분산 버전 관리 시스템으로 나뉘며, 여러가지 종류가 있다.
  • #11 버전 관리 시스템이란 파일의 변화를 시간에 따라 기록하여 과거 특정 시점의 버전을 다시 불러올 수 있는 시스템이다. 즉, 어제 했던 내용으로 돌릴 수 있는 시스템이다. 중앙 집중 시스템과 분산 버전 관리 시스템으로 나뉘며, 여러가지 종류가 있다.
  • #12 이 같은 것을 주석이라고 한다. 컴퓨터는 컴파일 시 주석을 무시한다. 주석은 프로그래머에게 코드 내면에 숨겨져 있는 것을 설명하는 데 아주 유용하게 쓰인다. 이와 같은 스타일 말고도 /* */을 이용한 주석도 있다. #include는 전처리기 지시어이며, 전처리기란, 컴파일 전에 실행되는 것들을 말한다. 단어를 보면 알 수 있듯 무언가를 포함하게 하는 것인데, 헤더 파일을 포함한다. 헤더(header) 파일은 소스 코드 파일의 일종으로 함수, 형의 선언들이 들어가 있다. <>는 라이브러리 헤더를 포함하는 것이다.
  • #13 여기서는 int가 반환형, main이 함수이름 ,void가 매개변수 목록이 될 것이다. 여기서 void는 아무것도 전달하지 않음을 뜻한다. 그리고 마침내 함수 본체가 실행이 되고 int형의 어떤 값을 돌려주게 된다. 반환형과 매개변수 목록을 묶어 그 함수의 시그너쳐(signature)라고 한다. 예를 들어 메인 함수의 시그너쳐는 int(void)가 될 것이다. 함수 어떻게 구분? ( ) 연산자
  • #14 puts는 표준 라이브러리 함수이다. 라이브러리는 누군가 만들어 놓은 함수 목록을 일컬음. 함수명에 ()연산자를 붙여주면 그 함수를 불러온다는 것이다. puts의 동작은 매개변수의 내용에 개행문자를 붙여 콘솔창에 출력한다. 함수 내에서 반환할 때 return이라는 구문을 사용한다. 여기서는 0을 돌려주게 된다. Main의 리턴 값은 운영체제가 이용한다. 정상 종료인지 판별.
  • #15 그럼 정확히 컴파일이 어떻게 일어나는지 알아보자. 컴파일러(compiler)는 우리가 작성한 소스 코드를 컴퓨터가 읽을 수 있는 형태로 번역(compile)한다. 여기서는 main.cpp이 컴파일 될 것이다. 그리고, 링커(linker)가 각 소스코드 간의 의존성을 파악하고, 결합하는 역할을 한다. 그렇게 최종적으로 실행 파일이 나오게 된다.