본문 바로가기
C++/따배씨 강의 정리

[몽돌] [따배씨 - 공부 노트] 0.3 프로그래밍 과정 소개

by 몽돌리스트 2021. 9. 9.
반응형

참고 링크

1 : 내가 뭘 만들고 싶은지 / 그리고 그것들을 어떻게 나누고 / 그것을 구성하는 세부 기능들은 무엇이 있는지

2 : 그래서 그것들을 어떻게 만들 것인지 계획을 세워야 한다. 꼼꼼하게 단계별로

3 : 생각한 대로 프로그램을 작성한다. ( 프로그래밍 언어가 들어가는 부분 ) / 어려운 내용을 작성하기 위해서 소프트웨어 개발 방법을 배우는 것도 중요하다. 

 

4 : 여기서 부터 중요하다.

 

3단계에서 프로그램 파일들을 작성한다. 

문서 파일이 cpp 확장자로 저장된다고 생각하면 된다. 

오른쪽에 보애는 g++ 등등은 통합개발환경(IDE)를 사용하면 사용하지 않아도 되는 것이므로 

따로 걱정하지 않아도 된다. * 리눅스 ( Linux ) 에서는 쓴다. 

 

그 확장자를 가진 파일들을 따로 따로 저장해놓고, 

( 왜 여러개로 ? -> 챕터별로 나누는 것으로 생각하자 여기서는 :) ) 

( 추후 코드 정리 방법으로 소개할 예정이다 . ) 

 

g++는 컴파일러의 이름이다. 컴파일 해주는 프로그램의 이름 ( 리눅스에서 표준으로 사용되는 가장 유명한 ! )

-c : complie 

파일들 ~

 

컴파일러가 하는 일은 각각의 파일을 컴파일해서 오브젝트 파일 (.o)을 따로따로 만드는 것이다. 

여기서 중요한 개념은 "따로따로 만든다"는 것이다.

 

왜 중요하냐면,

가령 팀프로젝트를 예로 

역할 분담처럼 따로따로 하나의 프로그램 ( 최종 ) 을 위해 분담을 하는 것이다.

각자 맡은 역할에 책임을 진다. 

 

* 윈도우 에서는 오브젝트가 .obj 파일들로 생성된다.

* 리눅스 에서는 오브덱트가 .o 파일들로 생성된다.

 

5 단계 

 

앞선 단계에서 생성된 오브젝트 파일들을 링킹 시킨다. ( 연결 시킨다. ) 

 

소스(코드)파일들을 작성한 후, 컴파일해서 여러개의 오브젝트 파일들을 만들고, 이를 링킹한다.

하나의 기능을 위해 다양한 오브젝트 파일들을 합치는 것이다. 

팀프로젝트가 끝나갈 쯤, 다같이 해오던 것을 합치는 것이라 생각하면 된다.

 

링커 가 하는 일은 오브젝트 파일들을 합치고 결과적으로 실행파일을 만드는 역할이다.

( 컴퓨터에게 기능을 실행할 수 있도록 시킬 수 있게 된다. ) 

 

이때 런타임 서포트라는 것이 추가가 되는데,

우리가 컴퓨터에게 일을 시킬 때,

우리가 모든 것을 하나부터 열까지 작성할 필요가 없다.

다른 프로그래머들이 작성한 것 ( Runtime Support ) 들을 가져다 쓰는 것을 통해 시간을 절약할 수 있다. 

 

따라서 링커가 이런 부가적인 기능까지 전부 합쳐서 

실행파일을 만들어주게 된다.

 

따라서 최근 프로그래밍 동향은,

내가 작성하는 부분은 줄이고,

다른 곳에서 지원하는 것들을 어떻게하면 잘 가져다 쓸 수 있는가

그게 또 중요한 포인트가 될 수 있다. ( 오픈 소스 ! 라는 것이 바로 그것 ! )

 

 

6 : 테스트를 해보고 문제가 있으면 고친다.

어떤 단계로 돌아가야할 지 

결정된다. 

 

디 버깅을 한다고 표현한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글