작성일 : 2024.01.30
1. 통합 개발 환경 (Integrated Development Environment, IDE)
출처 : https://aws.amazon.com/ko/what-is/ide/
통합 개발 환경(IDE)이란,
프로그래머가 소프트웨어 코드를 효율적으로 개발하도록 돕는 소프트웨어 애플리케이션이다.
소프트웨어 편집, 빌드, 테스트, 패키징과 같은 기능을 사용하기 쉬운 하나의 애플리케이션에 통합하여 개발자 생산성을 높인다. 작가가 텍스트 편집기를 사용하고 회계사가 스프레드시트를 사용하는 것처럼 소프트웨어 개발자는 IDE를 사용해 작업을 쉽게 처리한다.
IDE가 중요한 이유
코드는 아무 텍스트 편집기로도 작성 가능하다. 그러나 IDE에는 텍스트 편집 이상의 기능이 포함되어 있다.
공통 개발자 도구를 위한 중앙 인터페이스는 소프트웨어 개발 프로세스를 훨씬 효율적으로 만든다.
- 코드 편집 자동화 : 프로그래밍 언어에는 명령문을 구조화하는 규칙이 있는데, IDE는 이를 알고 소스 코드를 자동으로 작성한다.
- 구문 강조 표시 : IDE는 자동으로 일부 단어를 볼드체, 이탤릭체로 표시하거나, 색상을 사용한다. 이런 시각적 신호는 소스 코드를 더 읽기 쉽게 만들고 우발적인 구문 오류에 대한 즉각적인 피드백을 제공한다.
- 지능형 코드 완성 : 검색 엔진에 단어를 입력할 때 다양한 검색어가 나타나듯, IDE는 코드문 완성을 위한 제안을 한다.
- 리팩터링 지원 : 코드 리팩터링은 핵심 기능을 변경하지 않고도 소스 코드를 보다 효율적이고 가독성 있게 재구성하는 프로세스이다. IDE는 어느 정도 자동 리팩터링할 수 있으므로 코드 개선과 팀 내 협업에 도움을 준다.
- 로컬 빌드 자동화 : IDE는 일반적으로 모든 코드 변경의 일부인 반복 가능한 개발 태스크를 수행하여 프로그래머 생산성을 높인다.
- 컴파일 : IDE는 운영 체제가 이해할 수 있는 단순화된 언어로 코드를 컴파일하거나 변환한다.
- 테스트 : 소프트웨어가 다른 개발자의 코드와 통합되기 전에 로컬에서 단위 테스트를 자동화할 수 있다.
- 디버깅 : 디버깅은 테스트에서 밝혀진 오류나 버그를 수정하는 프로세스이다. IDE는 코드를 한 줄씩 순서대로 실행하여 코드 동작을 검사할 수 있다. 또한, 개발자가 입력하는 동안에도 실시간으로 인적 오류로 인한 버그를 강조 표시하는 여러 디버깅 도구를 통합한다.
IDE 유형
- 로컬 IDE
- 장점 : 인터넷 연결이 필요하지 않음.
- 단점 : 시간이 많이 걸리고 설정하기 어려움. 로컬 시스템 리소스를 소비하고 시스템 성능을 크게 저하시킬 수 있음. 로컬 시스템과 프로덕션 환경 간의 구성 차이로 인해 소프트웨어 오류가 발생할 수 있음.
- 클라우드 IDE
- 브라우저에서 코드를 작성, 편집 및 컴파일함.
- 표준화된 개발 환경 : 클라우드 기반 IDE를 중앙에서 구성하여 표준 개발 환경을 만들 수 있음. -> 로컬 시스템 구성 차이로 인해 발생할 수 있는 오류를 방지함.
- 플랫폼 독립성 : 클라우드 공급업체의 플랫폼에 직접 연결하며, 개발자는 모든 시스템에서 클라우드 IDE를 사용할 수 있음.
- 성능 개선 : 함수를 빌드하고 컴파일하려면 많은 메모리가 필요한데, 클라우드 IDE는 클라우드의 컴퓨팅 리소스를 사용하고 로컬 시스템의 리소스를 확보함.
IDE 종류 (예시)
(from ChatGPT)
1. Visual Studio (Visual Studio IDE):
- Language Support: C#, VB.NET, C++, F#, Python, and more.
- Features: Robust debugging tools, IntelliSense code completion, built-in Git integration.
2. IntelliJ IDEA:
- Language Support: Java, Kotlin, Scala, Groovy, and more.
- Features: Smart code completion, built-in version control, advanced refactoring tools.
3. PyCharm:
- Language Support: Python.
- Features: Intelligent code completion, debugging, testing, and support for web development.
4. Visual Studio Code:
- Language Support: Various through extensions (JavaScript, TypeScript, Python, Java, etc.).
- Features: Lightweight, extensible, built-in Git integration, IntelliSense, debugging.
5. Xcode:
- Language Support: Swift, Objective-C.
- Features: iOS/macOS development, Interface Builder for designing interfaces, debugging tools.
2. 컨벤션
(from ChatGPT)
코딩 컨벤션(Coding Convention)이란,
개발자들이 코드를 작성할 때 준수하는 일련의 합의된 규칙이다.
코드의 일관성, 가독성 및 유지 가능성을 촉진하기 위해 프로그래밍 커뮤니티에 의해 수립된다.
변수, 함수, 클래스에 대한 명명 규칙, 들여쓰기 및 포맷 표준, 주석 작성 관행 및 전체 코딩 스타일이 포함될 수 있다.
일부 프로그래밍 언어나 프레임워크는 각자의 커뮤니티 내에서 널리 채택되는 특정 규칙을 가지고 있다.
그 예로, 변수나 함수를 명명할 때 파이썬은 PEP 8을 따라 소문자와 언더바(_)를 사용하지만, 자바는 camelCase를 사용한다. (파이썬 : 'my_variable' / 자바 : 'myVariable')
또, 포맷팅 시에 파이썬은 들여쓰기로 코드 블록을 나타내지만, C 또는 Java는 들여쓰기와 더불어 괄호 '{}'를 사용하여 코드 블록을 명시적으로 정의한다.
다음은 Swift의 코딩 컨벤션 예이다.
Swift 코딩 컨벤션
- 명명 규칙 (naming conventions)
- UpperCamelCase (e.g., 'MyClass', 'MyEnum')
- 들여쓰기, 포맷팅 (Indentation and Formatting)
- 들여쓰기는 공백 4개.
- 괄호 {}는 코드 블록을 나타내는 데 사용되며, 여는 괄호는 문과 같은 줄에 둠.
- 옵션 (Optionals)
- 없을 수도 있는 값에 대한 옵션을 사용하도록 권장. 보통 변수에 대한 명확한 이름을 사용한 후에 선택 유형을 나타내는 물음표(?)를 사용.
- 문서 (Documentation)
- 코멘트와 인라인 문서를 사용하여 문서화 됨.
- 유형 추론 (Type Inference)
- 유형의 안정성을 강조하고 유형 추론은 광범위하게 사용됨. 개발자들은 종종 스위프트 컴파일러에 유형을 명시적으로 지정하기보다는 유형을 추론하는 데 의존.
Swift 공식 가이드라인 : https://www.swift.org/documentation/api-design-guidelines/
'Swift > 문법' 카테고리의 다른 글
[Swift] 고차함수 - map, filter, reduce (2) | 2024.02.07 |
---|---|
[Swift] if...else 구문 대신 사용 가능한 Ternary Conditional Operator (삼항 연산자) (0) | 2024.02.07 |
[Swift] 함수 - 매개변수 앞 언더바('_') (외부 매개변수, 내부 매개변수) (2) | 2024.02.07 |
앱개발 용어 정리(3) - 구조체와 클래스, 메서드 (0) | 2024.02.07 |
앱개발 용어 정리(2) - 자료형, 변수와 상수 (0) | 2024.02.07 |