SlideShare a Scribd company logo
1 of 17
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회차

More Related Content

What's hot

Git 분산버전관리 시스템(1)
Git 분산버전관리 시스템(1)Git 분산버전관리 시스템(1)
Git 분산버전관리 시스템(1)Hyunjun Roh
 
minSW_Java
minSW_JavaminSW_Java
minSW_JavaSW Min
 
GIT_GETCHA_HANJUNG
GIT_GETCHA_HANJUNGGIT_GETCHA_HANJUNG
GIT_GETCHA_HANJUNGJung Han
 
140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴은아 정
 
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Park JoongSoo
 

What's hot (6)

Git 분산버전관리 시스템(1)
Git 분산버전관리 시스템(1)Git 분산버전관리 시스템(1)
Git 분산버전관리 시스템(1)
 
minSW_Java
minSW_JavaminSW_Java
minSW_Java
 
Trello
TrelloTrello
Trello
 
GIT_GETCHA_HANJUNG
GIT_GETCHA_HANJUNGGIT_GETCHA_HANJUNG
GIT_GETCHA_HANJUNG
 
140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴
 
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
 

Similar to Basic study 1회차

Basic study 4회차
Basic study 4회차Basic study 4회차
Basic study 4회차Seonmun Choi
 
Configuration management best practices
Configuration management best practicesConfiguration management best practices
Configuration management best practicesHyunil Shin
 
Git란 무엇인가?
Git란 무엇인가?Git란 무엇인가?
Git란 무엇인가?Kim Byoungsu
 
오픈소스가이드 win,c++
오픈소스가이드 win,c++오픈소스가이드 win,c++
오픈소스가이드 win,c++jdo
 
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함Ji-Woong Choi
 
ALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsTaeyoung Kim
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST_NHNent
 
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴Ian Choi
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재Hankyo
 
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)Ubuntu Korea Community
 
Component configurator
Component configuratorComponent configurator
Component configuratorscor7910
 
[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)Ildoo Kim
 
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규ChangKyu Song
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기SeungYong Baek
 
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법복연 이
 
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014NDOORS
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료BJ Jang
 
Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)승용 윤
 
Build Team Foundation Architecture
Build Team Foundation ArchitectureBuild Team Foundation Architecture
Build Team Foundation Architecture준일 엄
 
Intro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sIntro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sSeong-Bok Lee
 

Similar to Basic study 1회차 (20)

Basic study 4회차
Basic study 4회차Basic study 4회차
Basic study 4회차
 
Configuration management best practices
Configuration management best practicesConfiguration management best practices
Configuration management best practices
 
Git란 무엇인가?
Git란 무엇인가?Git란 무엇인가?
Git란 무엇인가?
 
오픈소스가이드 win,c++
오픈소스가이드 win,c++오픈소스가이드 win,c++
오픈소스가이드 win,c++
 
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
 
ALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOps
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
 
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
 
Component configurator
Component configuratorComponent configurator
Component configurator
 
[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)
 
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
 
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
 
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료
 
Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)
 
Build Team Foundation Architecture
Build Team Foundation ArchitectureBuild Team Foundation Architecture
Build Team Foundation Architecture
 
Intro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sIntro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_s
 

More from Seonmun Choi

Android Study Summary 2-2
Android Study Summary 2-2Android Study Summary 2-2
Android Study Summary 2-2Seonmun Choi
 
Item1 c++을 언어들의 연합체로 바라보는 안목은 필수
Item1 c++을 언어들의 연합체로 바라보는 안목은 필수Item1 c++을 언어들의 연합체로 바라보는 안목은 필수
Item1 c++을 언어들의 연합체로 바라보는 안목은 필수Seonmun Choi
 
핵심 API로 배우는 윈도우 프로그래밍 Chapter01 요약
핵심 API로 배우는 윈도우 프로그래밍 Chapter01 요약핵심 API로 배우는 윈도우 프로그래밍 Chapter01 요약
핵심 API로 배우는 윈도우 프로그래밍 Chapter01 요약Seonmun Choi
 
Android Study Summary 2-1
Android Study Summary 2-1Android Study Summary 2-1
Android Study Summary 2-1Seonmun Choi
 
Basic study 3회차
Basic study 3회차Basic study 3회차
Basic study 3회차Seonmun Choi
 
Basic study 2회차
Basic study 2회차Basic study 2회차
Basic study 2회차Seonmun Choi
 

More from Seonmun Choi (7)

Android Study Summary 2-2
Android Study Summary 2-2Android Study Summary 2-2
Android Study Summary 2-2
 
Item1 c++을 언어들의 연합체로 바라보는 안목은 필수
Item1 c++을 언어들의 연합체로 바라보는 안목은 필수Item1 c++을 언어들의 연합체로 바라보는 안목은 필수
Item1 c++을 언어들의 연합체로 바라보는 안목은 필수
 
Initializer list
Initializer listInitializer list
Initializer list
 
핵심 API로 배우는 윈도우 프로그래밍 Chapter01 요약
핵심 API로 배우는 윈도우 프로그래밍 Chapter01 요약핵심 API로 배우는 윈도우 프로그래밍 Chapter01 요약
핵심 API로 배우는 윈도우 프로그래밍 Chapter01 요약
 
Android Study Summary 2-1
Android Study Summary 2-1Android Study Summary 2-1
Android Study Summary 2-1
 
Basic study 3회차
Basic study 3회차Basic study 3회차
Basic study 3회차
 
Basic study 2회차
Basic study 2회차Basic study 2회차
Basic study 2회차
 

Basic study 1회차

  • 1.
  • 3.
  • 4. 5. 간단한 출력을 할 수 있다. 2. VS 2010을 통해 디버깅, 컴파일을 할 수 있다 3. 버전 관리 시스템을 이해하고 사용할 수 있다 4. 컴파일 과정과 함수 구조를 파악한다 1. C/C++ 발전 과정을 이해한다
  • 5.
  • 6. 컴퓨터(Compute + er) 고속 계산을 위한 기계
  • 9. 버전 관리 시스템(Version Control System) 파일의 변경 사항을 기록하는 시스템
  • 10. 버전 관리 시스템(Version Control System) • 무언가 잘못되었을 때 복구를 돕기 위하여 • 프로젝트 진행 중 과거의 어떤 시점으로 돌아갈 수 있게 하기 위하여 • 여러사람이 같은 프로젝트에 참여할 경우, 각자가 수정한 부분을 팀원 전체가 동기화하는 과정을 자동화하기 위하여 • 소스 코드의 변경 사항을 추적하기 위하여 • 소스 코드에서 누가 수정했는지 추적하기 위하여 • 대규모 수정 작업을 더욱 안전하게 진행하기 위하여 • 가지내기(Branch)로 프로젝트에 영향을 최소화 하면서 새로운 부분을 개발하기 위하여 • 접붙이기(Merge)로 검증이 끝난 후 새로이 개발된 부분을 본류(trunk)에 합치기 위하여 • 많은 오픈 소스 프로젝트에서 어떠한 형태로든 버전 관리를 사용하고 있으므로 • 코드의 특정 부분이 왜 그렇게 쓰여 졌는지 의미를 추적하기 위하여
  • 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

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