IT 지식/Cpython

Cpython 2

Creative Curiosity 2024. 10. 7. 11:31
728x90
반응형

2장 - 개발 환경 구성하기

 

- 코드 편집기는 언어에 상관없이 코드 파일을 수정할 수 있는 도구이다.

대부분의 코드 편집기는 문법 강조 기능이 포함된 간단한 텍스트 편집기다 

 

- 통합 개발 환경은 특정 언어와 툴체인을 위한 도구다. (**툴체인의 설명은 아래 주석에 달아놓았다.**)
대부분의 통합 개발 환경은 통합된 테스트, 문법 검사, 버전 관리, 컴파일 기능을 포함한다.


완전한 기능을 갖춘 통합 개발 환경은 더 많은 하드웨어 자원을 사용한다. 

램이 제한된 경우(8GB 미만) 코드 편집기를 권장한다. 

 

통합 개발 환경은 시작 시간이 길다. 

파일은 빠르게 수정하고 싶다면 코드 편집기가 좋은 선택이다. 

 

나는 VS code (비주얼 스튜디오 코드) 를 선택했다.

 

VS code 설치는 code.visualstudio.com 에서 다운로드할 수 있다.

VS code 는 기본 상태에서도 코드 편집이 가능하지만 확장을 설치해 유용한 기능을 추가할 수 있다.

상단 메뉴의 View => Extensions 를 클릭하면 확장을 검색하고 설치할 수 있는 탭이 나온다.

 

권장되는 확장은 다음과 같다. 

 

- C/C++ : 인텔리센스, 디버깅, 코드 강조 등의 C/C++ 지원을 제공한다

- Python : 파이썬 코드 편집, 디버깅, 탐색 등의 파이썬 지원을 제공한다. 

- reStructuredText: Cpython 문서에 사용되는 reStructuredText 에 대한 자원을 제공한다. 

- Task Explorer : make 작업을 편리하게 실행할 수 있는 Task Explorer 패넝를 Explorer 탭안에 추가한다. 

 

필요한 확장을 설치한 후 편집기를 새로 고침하자. 

 

 

<VS code의 고급 코드 탐색 및 펼치기 기능>

 

플러그인을 설치해 고급 코드 탐색을 실행할 수 있다.

예를 들어 C 파일에서 함수 호출을 우클릭하고 ' Go to References'를 선택하면 해당 함수에 대한 다른 참조들이 보인다. 

 

- 'Go to Reference' 를 사용해 해당 함수를 사용하는 적절한 방식을 찾을 수도 있다. 

- C 매크로를 클릭하거나 그 위에 마우스를 놓으면 매크로가 컴파일된 형태로 펼쳐진다. 

- 함수 정의로 이동하려면 함수 호출 위에 마우스를 놓고 macOS에서는 'Cmd+ 클릭'을, 윈도우에서는 'Ctrl + 클릭' 을 해보자.

 

<작업과 실행 파일을 설정하기 > 

VS 코드는 작업 디렉터리 내부의 .vscode 폴더를 작업 공간 설정에 사용한다. 

폴더가 없으면 새로 만들고 다음 파일들을 추가해서 작업 공간을 설정할 수 있다.

 

- 프로젝트 실행 명령에 대한 tasks.json

- 디버거를 위한 launch.json 

- 기타 플로그인을 위한 파일 

 

다음은 Cpython 을 컴파일 해 볼 것이다.

 

 

 



**툴체인이란?**


툴체인(toolchain)은 소프트웨어 개발에 사용되는 프로그래밍 도구들의 집합을 말한다. 주요 특징은 다음과 같다.



# 툴체인의 정의와 구성요소

- 소스 코드를 타겟 장치에서 실행 가능한 파일로 변환하는 도구들의 모음이다.

- 주요 구성요소로는 컴파일러, 링커, 어셈블러, 디버거, 런타임 라이브러리 등이 포함된다.

- GNU 툴체인의 경우 주요 요소로 Binutils, GCC, C 라이브러리가 있다.

# 툴체인의 용도와 특징 

- 크로스 컴파일 환경에서 주로 사용됩니다. 호스트 시스템에서 타겟 시스템용 실행 파일을 생성하는 데 활용된다.

- 임베디드 시스템 개발에 필수적입니다. 부트로더, 커널, 루트 파일시스템 등을 빌드하는 데 사용된다.

- 도구들이 연쇄적으로 사용되어 한 도구의 출력이 다른 도구의 입력이 되는 방식으로 동작햔다.

## 툴체인 선택 시 고려사항

- 프로젝트에 필요한 언어 지원 여부
- POSIX 및 시스템 인터페이스 구현 여부  
- 보안 업데이트 제공 여부
- 프로젝트 기간 동안 일관성 유지 가능 여부[6]

툴체인은 소프트웨어 개발의 기반이 되는 도구 모음으로, 특히 임베디드 및 크로스 플랫폼 개발에서 중요한 역할을 한다.
Citations:
[1] https://blog.naver.com/sees111/222356232227
[2] https://butter-shower.tistory.com/24
[3] https://kkhipp.tistory.com/176
[4] https://itchbo.tistory.com/entry/Toolchain-%EC%9D%B4%EB%9E%80
[5] https://domybestinlife.tistory.com/225
[6] https://rannnneey.tistory.com/entry/2%EC%9E%A5%ED%88%B4%EC%B2%B4%EC%9D%B8-%ED%88%B4%EC%B2%B4%EC%9D%B8toolchain%EC%9D%B4%EB%9E%80

728x90
반응형