💡 프로그래밍 언어
구현 단계에서는 단순히 프로그래밍 언어와 코딩 규칙에 대해 다룬다.
1. Fortran: 항공, 무기 분야
2. Cobol: 은행 시스템
3. C/C++/C#: 자율주행, 홈 오퍼레이션(Iot 사물인터넷), 임베디드 시스템(컴퓨터 시스템이 들어가 있지 않은 곳에 시스템을 넣는 것)
⚬ .NET Framework(닷넷 프레임워크)
.NET은 모든 운영 체제에서 실행할 수 있는 데스크톱, 웹, 모바일 애플리케이션 빌드를 위한 오픈 소스 플랫폼이다.
.NET은 CLS를 따르는 언어라면 모두 실행 및 빌드가 가능하다.
4. Java: 웹 개발, 모바일 애플리케이션, 데스크톱 애플리케이션, 게임 개발, 데이터베이스
⚬ 자바 가상 머신(JVM: Java Virtual Machine)
JVM은 JRE(Java Runtime Environment)에 포함되어있는 소프트웨어로, 자바 프로그램 실행 환경을 만드는 역할을 한다.
소스 코드를 한 번만 짜면 모든 플랫폼에서 가동되도록 하자는 게 Java로, 이를 JVM이 가능하게 한다.
⚬ 웹 개발
JAVA는 서버 측 웹 개발에 널리 사용된다. Java Servlet, JavaServer Pages(JSP), JavaServer Faces(JSF)와 같은 웹 기술을 사용하여 동적인 웹 애플리케이션을 개발할 수 있다. 또한 Spring Framework와 같은 프레임워크를 사용하여 웹 애플리케이션의 개발과 관리를 용이하게 할 수 있다.
⚬ 모바일 애플리케이션
안드로이드 애플리케이션 개발을 위해 JAVA를 사용할 수 있다. 안드로이드는 JAVA 기반의 언어인 Kotlin을 주로 사용하지만, JAVA로도 안드로이드 애플리케이션을 개발할 수 있다.
⚬ 데스크톱 애플리케이션
JAVA는 크로스 플랫폼 데스크톱 애플리케이션 개발에 적합한 언어이다. JavaFX 또는 Swing과 같은 라이브러리를 사용하여 다양한 운영 체제에서 실행될 수 있는 데스크톱 애플리케이션을 개발할 수 있다.
⚬ 게임 개발
JAVA는 게임 개발에도 사용될 수 있다. JavaFX를 활용하여 2D 게임을 개발할 수 있고, LibGDX와 같은 라이브러리를 사용하여 2D 및 3D 게임을 개발할 수도 있다.
⚬ 데이터베이스 연동
JAVA는 데이터베이스와의 연동을 위한 다양한 라이브러리와 API를 제공한다. JDBC(Java Database Connectivity)를 사용하여 관계형 데이터베이스와 연동하거나, JPA(Java Persistence API)를 사용하여 객체와 관계형 데이터베이스 간의 매핑을 처리할 수 있다.
5. Python
⚬ 웹 개발
Python은 웹 개발을 위한 강력한 도구와 프레임워크를 제공한다. Django와 Flask 같은 프레임워크를 사용하여 웹 애플리케이션을 개발할 수 있으며, 웹 크롤링 및 스크래핑 작업에도 널리 사용된다.
⚬ 데이터 과학
Python은 NumPy, Pandas, Matplotlib 및 SciPy 같은 라이브러리를 활용하여 데이터 분석, 시각화, 통계 분석 및 머신 러닝 모델 개발 등을 수행할 수 있다. 또한 TensorFlow와 PyTorch 같은 라이브러리를 사용하여 딥러닝 모델을 구축하고 학습시킬 수 있다.
⚬ 자동화 및 스크립팅
Python은 파일 처리, 시스템 관리, 네트워크 프로그래밍, 데이터 처리 등 다양한 작업을 자동화할 수 있다. 또한 파이썬 스크립트를 사용하여 반복적인 작업을 자동화하고 생산성을 향상시킬 수 있다.
⚬ 게임 개발
Python은 Pygame이라는 라이브러리를 사용하여 2D 게임을 개발할 수 있으며, Panda3D와 같은 프레임워크를 사용하여 3D 게임을 개발할 수도 있다.
⚬ 네트워크 프로그래밍
Python은 소켓 프로그래밍, 웹 서버 및 클라이언트, API 개발 등 다양한 네트워크 관련 작업을 수행할 수 있다. Requests 라이브러리를 사용하여 HTTP 요청을 처리하고, Flask를 사용하여 웹 API를 개발하는 등의 작업을 수행할 수 있다.
⚬ 과학 및 공학 계산
Python은 SymPy와 SciPy와 같은 라이브러리를 사용하여 수식 처리, 수치 계산, 최적화, 신호 처리 등을 수행할 수 있다.
6. Rust: 병렬처리에 특화된 언어
7. JavaScript
⚬ 웹 개발
JavaScript는 웹 프론트엔드 및 백엔드 개발에 널리 사용된다. 웹 페이지의 동적인 부분을 만들고, 사용자와의 상호작용을 구현하며, 데이터를 서버와 주고받을 수 있도록 도와준다. JavaScript를 사용하여 HTML 요소를 조작하고 스타일을 변경하며, 이벤트를 처리하고 웹 애플리케이션의 동작을 제어할 수 있다.
⚬ 웹 애플리케이션 개발
JavaScript는 단일 페이지 애플리케이션(SPA) 개발에 특히 적합하며, React, Angular, Vue.js 등의 프레임워크와 함께 사용될 때 효과적인 결과를 얻을 수 있다. JavaScript를 사용하여 데이터를 동적으로 로드하고 표시하며, 사용자와의 상호작용을 처리할 수 있다.
⚬모바일 애플리케이션 개발
JavaScript는 React Native와 같은 프레임워크를 사용하면 JavaScript를 사용하여 iOS 및 Android용 네이티브 애플리케이션을 만들 수 있다.
⚬ 게임 개발
JavaScript는 HTML5의 캔버스 및 WebGL과 같은 기술을 사용하여 그래픽을 렌더링하고, 애니메이션을 만들고, 사용자 입력을 처리할 수 있다. 또한 JavaScript 기반 게임 엔진인 Phaser와 같은 도구를 사용하여 게임 개발을 간편하게 할 수 있다.
⚬ 서버 개발
JavaScript는 Node.js는 JavaScript를 사용하여 서버 측 코드를 실행하는 런타임 환경을 제공한다. 이를 통해 웹 서버, API 서버, 실시간 통신 서버 등을 구축할 수 있다.
⚬ 데이터 시각화
JavaScript는 데이터 시각화를 위한 다양한 라이브러리와 도구를 제공한다. D3.js와 Chart.js는 데이터를 시각적으로 표현할 수 있다.
8. Go: web
9. Kotlin: web
💡 표준화된 규칙
⚬ 명칭에 관한 규칙
1. 소스 파일의 크기 제한
소스 파일은 일반적으로 한 파일에 모든 코드를 작성하는 것보다 모듈화되고 재사용 가능한 작은 단위로 분할하는 것이 좋다. 하나의 소스 파일은 관련된 코드의 기능을 담당하며, 200줄 이내로 작성하는 것은 코드의 가독성과 유지보수를 용이하게 만든다.
2. 줄 길이 제한
코드 한 줄은 보통 80자 이내로 작성하는 것이 권장된다. 이는 가독성을 향상시키고 코드를 한 줄에 모두 표시할 수 있는 적절한 너비를 유지하기 위한 규칙이다. 80자를 넘어가면 줄의 끝에서 쉼표(,)가 나오면 다음 문자부터 새 줄로 시작하는 것이 일반적이다.
3. 함수 크기 제한
함수는 한 가지 기능을 수행하고, 읽기 쉽고 이해하기 쉬운 작은 단위로 유지하는 것이 좋다. 함수의 크기는 일반적으로 30줄 이내로 제한다. 특히 파이썬에서는 함수 하나가 10줄 이내로 작성되도록 권장되는 경우도 있다.
4. 중괄호 위치
중괄호의 위치는 언어에 따라 다를 수 있다. 자바에서는 여는 중괄호({)를 문장의 끝에, 닫는 중괄호(})를 문장의 시작에 둔다. 이는 코드의 일관성을 유지하고 가독성을 향상시키기 위한 규칙이다. 그러나 C나 C++과 같은 다른 언어에서는 다른 규칙을 따를 수 있다.
5. 문장의 수준 정렬
코드의 가독성을 높이기 위해 수준이 동일한 문장은 시작 위치를 맞추는 것이 권장된다. 예를 들어, 반복문 내부의 문장은 동일한 수준으로 들여쓰기가 되어야 한다. 이렇게 하면 코드의 구조를 쉽게 파악할 수 있으며, 버그 발생 가능성을 줄일 수 있다.
⚬ 주석에 관한 규칙
1. 코드의 첫 주석에는 다음의 내용을 담는다.
• 최초 작성자: 코드를 최초로 작성한 개발자의 이름을 기록한다. 이는 코드의 저작권과 코드를 작성한 사람에 대한 정보를 제공한다.
• 최초 작성일: 코드를 최초로 작성한 날짜를 기록한다. 이는 코드의 버전 이력과 코드의 개발 주기를 파악하는 데 도움이 된다.
• 최초 변경일: 코드에 최초로 변경이 가해진 날짜를 기록한다. 이는 코드의 버전 이력과 변경 사항을 추적하는 데 사용된다.
• 목적: 코드가 어떤 목적을 가지고 작성되었는지를 간략하게 설명한다. 이는 코드를 이해하는 데 도움을 주고, 코드를 재사용하거나 수정할 때 코드의 목적을 파악하는 데 도움이 된다.
• 개정 이력(변경자, 변경 일자, 변경 내용): 코드에 대한 개정 이력을 기록한다. 변경이 발생할 때마다 변경한 개발자의 이름과 변경 날짜, 버전 정보 등을 포함한다. 이는 코드의 버전 관리와 변경 사항을 추적하는 데 사용된다.
• 저작권: 코드의 저작권 정보를 기록한다. 특히 상업적인 소프트웨어 개발에서는 저작권 정보를 명시하는 것이 중요하다. 주로 회사명이나 저작권 소유자의 이름을 기록한다.
/*
• 최초 작성자: Isaac
• 최초 작성일: 20XX.XX.XX.
• 최초 변경일: 20XX.XX.XX.
• 목적: 성적 프로그램
• 개정 이력: Isaac, 20XX.XX.XX.(ver. 01)
Isaac, 20XX.XX.XX.(ver. 02)
• 저작권: Isaaccompany
*/
2. 메서드 정의 앞에 다음 내용을 주석으로 추가한다.
• 목적 : 함수의 용도(목적)
• 매개변수 : 함수의 인자로 사용되는 변수에 대한 설명
• 반환 값 : 함수의 결과 값에 대한 설명
• 변경 이력 : 함수를 변경한 변경자, 변경 일자, 변경 내용