여러 언어를 작성하기 위해 컴파일러와 인터프리터를 설치해야한다.
따라서 자신만의 소프트웨어 개발환경을 구축해야한다.
본 강좌에서는 VSCode를 중심으로 실습을 진행한다.
그러나 다른 툴을 사용해도 무관하다.
통합개발환경(IDE)
다양한 소프트웨어 개발 작업을 지원하는 프로그램이다.
예: VSCode, Eclipse, IntelliJ, PyCharm 등
IDE의 주요기능은 다음과 같다.
- 구문 강조(Syntax Highlight)
• 다양한 구문 위치에 있는 단어를 강조 표시
• 코드의 가독성 크게 향상되어 생산성 향상
• 코드 편집기에서 사전 컴파일 시간에 구문 오류를 확인 - 자동 완성(Auto Completion)
• 몇 글자만 입력하면 자동으로 코드를 추천하거나 완성
• IDE의 가장 뛰어난 기능 중 하나
• 개발자의 생산성에 큰 영향
• 효율적이고 효과적인 자동 완성에 대한 수많은 연구 - 빌드(Build)
• 필요한 파일을 자동으로 컴파일하여 실행 가능한 프로그램을 만든다.
• 종속성 관리, 패키징
• 복잡한 프로그램에는 많은 파일에 코드가 있고 복잡한 종속성이 있을 수 있다.
• 이러한 작업을 반복적으로 수행해야 한다면 이 모든 것을 고려하는 것이 힘들다.
• IDE를 사용하면 버튼을 클릭하여 프로그램(또는 프로젝트)을 간단히 구축 - 디버깅 지원(Debugging Support)
• 코드를 한 줄씩 실행하여 메모리의 값이 어떻게 변경되는지 확인
• 예를 들어, 라인 10에 중단점을 설정한 다음 디버그 모드에서 프로그램을 실행
• 실행은 10행에서 중지되고 명령을 대기
• 변수의 상태를 확인하고 예상한 대로인지 확인
• 또한 해당 지점부터 프로그램을 추가로 실행하여 프로그램 실행을 더 자세히 관찰 - 자동 코드 포맷팅(Automatic Code Formatting)
• 여러 사람이 함께 작업할 때는 코드 스타일 지침을 따르는 것이 매우 중요
• 일관된 코드 스타일 → 가독성 향상
• 조잡한 코드 스타일 → 잘못된 필기
• IDE는 코드를 적절한 스타일로 유지하기 위한 다양한 구성을 제공 - 리펙토링(Refactoring)
• 리팩토링은 코드의 품질을 향상시키는 작업
• 코드의 구조를 수정하면서 코드의 동일한 기능을 유지
• 가독성, 유지 관리성 및 재사용성이 향상될 것으로 기대
• IDE는 코드에 대한 리팩토링을 자동으로 수행하는 명령을 제공 - 버전 관리(Version Control)
• 코드 수정 사항을 계속 추적
• 두 명 이상이 개발에 참여하는 경우 다른 사람들과 동기화하고 충돌을 방지
• IDE는 버전 제어 시스템과 통합
• 변경 사항을 소프트웨어 리포지토리에 쉽게 커밋하고 IDE와의 충돌을 해결 - 기타
• 댓글 전환
• 파일 비교
• 고급 코드 탐색
- 정의, 선언, 파일, 라인으로 이동
• 고급 코드 검색
- 변수의 모든 참조를 찾는다.
• 멋진 글꼴
VSCode (Visual Studio Code)
Microsoft에서 개발한 무료 IDE로 다양한 OS(Windows, Mac, Linux)를 지원한다.
확장(Extensions)을 사용하여 다양한 프로그래밍 언어를 지원한다.
확장(Extensions)
- 확장을 통해 다양한 프로그래밍 언어를 지원
- 새로운 프로그래밍 언어에 대한 개발 환경을 설정
1. 해당 언어에 대한 컴파일러나 인터프리터를 설치
2. Extension을 설치하고 1에 따라 설정
작업공간(Workspace)
- 소프트웨어 개발을 위한 작업 공간
- 프로그램에 대한 모든 항목의 컬렉션
- 다양한 작업 공간에 대한 다양한 구성
- 다른 프로젝트에서 작업해야 할 때 작업 공간 간에 전환
- VS Code에서는 폴더를 여는 것부터 시작
- 작업공간에는 여러 폴더
'프로그래밍언어론' 카테고리의 다른 글
[프로그래밍언어론] 6. 컴파일러와 인터프리터 (0) | 2023.09.11 |
---|---|
[프로그래밍언어론] 5. 프로그래밍 언어 설계 (0) | 2023.09.11 |
[프로그래밍언어론] 4. 튜링 머신, 튜링 완전성 (0) | 2023.09.11 |
[프로그래밍언어론] 3. PL의 관점에서 본 컴퓨터 (0) | 2023.09.11 |
[프로그래밍언어론] 1. 개념과 패러다임 (0) | 2023.09.05 |
댓글