1. 통합 개발 환경 IDE 🖥️ (Integrated Development Environment, IDE)
쉽게 말 하면 소프트웨어 개발을 위한 툴 모음이다. 프로그래밍 언어를 작성하고 테스트하며 디버깅하는 데 사용 됨.
I. 코드 편집기
코드 작성을 위한 텍스트 편집기를 제공한다. 이 편집기는 문법강조, 자동 완성기능 코드 서식 지원 등을 제공하여 개발자가 코드를 효율적으로 작성할 수 있도록 도와준다.
II. 컴파일러/인터프리터
코드를 컴퓨터가 이해할 수 있는 형태로 바꿔주는 역할을 한다.
III. 디버거
프로그램에서 문제가 생길 때 문제를 찾고 고치는 도구이다. 개발자는 코드 실행 중에 변수의 상태를 검사하거나 코드의 흐름을 추적하여 버그를 찾고 수정할 수 있게 된다.
IV. 빌드 도구
프로그램을 만들 때 필요한 과정을 자동으로 처리해주는 도구이며 코드를 컴퓨터가 이해할 수 있는 형태로 바꾸고 실행할 수 있게 해준다.
V. 프로젝트 관리 기능
여러 파일과 폴더를 프로젝트로 구성하여 관리할 수 있도록 해주며, 프로젝트의 구조를 시각화하고 파일을 쉽게 탐색할 수 있도록 도와준다.
2. 컨벤션 📑
컨벤션은 코드 작성이나 프로젝트 구성 등에 관한 일련의 규칙을 말 한다.
ex) 코딩 스타일, 파일 및 폴더 구조, 주석 및 문서화, 사용하는 도구 및 라이브러리, 개발 프로세스 등
이는 일관성과 효율성을 향상시키고 새로운 개발자의 통합을 용이하게 하며, 컨벤션을 잘 이해하고 준수하는 것은 소프트웨어 개발 프로세스의 효율성과 품질을 높이는 데 중요한 역할을 한다.
3. 자료형 🔖
자료형은 프로그래밍 언어에서 변수나 상수에 저장될 수 있는 데이터의 종류를 뜻한다.
4. 변수와 상수
I. 변수(Variable)
변수는 프로그램 내에서 값을 저장하고 참조할 수 있는 공간을 의미한다. 변수는 이름을 가지고 있고, 해당 이름을 사용하여 값을 읽고 쓸 수 있으며 프로그램 실행 중에 값이 여러 번 변경될 수 있다.(= 변수의 값은 변할 수 있다)
변수를 사용하기 위해서는 먼저 해당 변수의 자료형을 지정해야 한다.
예를 들어, 다음은 정수형 변수를 선언하는 예시다. (C언어 기준)
#include <stdio.h>
int main(){
int age;
age = 26;
return 0;
}
위의 예시에서 'age'는 정수형 변수이며, '26'이라는 값이 저장되어 있다.
II. 상수(constant)
상수는 프로그램 내에서 변하지 않는 값을 나타낸다. 한 번 정의되면 그 값이 고정되어 있어서 변할 수 없으며 일반적으로 프로그램에서 고정된 값이 필요한 경우 사용된다.(ex 파이 π )
예를 들어, 다음은 상수를 선언하는 예시다. (Java 언어 기준)
final double PI = 3.141592; // 상수 PI를 선언하고 값 3.141592를 할당
위의 예시에서 'PI'는 상수로 선언되었으며, 한 번 할당된 값은 변경할 수 없다. ('final'키워드는 값이 변경되지 않음을 의미)
5. 메서드( Method)
메서드는 프로그래밍에서 특정 작업을 수행하기 위해 정의된 동작 블록이며, 주로 객체지향 프로그래밍에서 사용된다.
메서드는 클래스(class)나 객체(object)에 속해 있으며, 클래스 내에서 정의된다.
※ 메서드는 다음과 같은 요소로 구성된다.
1. 메서드 이름 (Method Name): 메서드를 식별하는 이름으로, 호출할 때 사용한다.
2. 매개변수 (Parameters): 메서드가 실행될 때 필요한 입력값을 전달하기 위해 사용된다. 매개변수는 선택적일 수 있고, 메서드에 따라 여러개의 매개변수를 가질 수 있다.
3. 리턴 타입 (Return Type): 메서드가 실행을 마치고 반환하는 값의 타입을 정의한다. 리턴타입이 없는 경우(void) 메서 드는 값을 반환하지 않는다.
4. 메서드 본문 (Method Body): 메서드가 실행될 때 실제로 수행되는 코드 부분이다.
아래는 Java 언어를 예시로 한 간단한 메서드 정의이다.
public class Calculator {
// 두 정수를 더하는 메서드
public int add(int a, int b) {
return a + b; // a와 b를 더한 값을 반환
}
// 원의 넓이를 계산하는 메서드
public double calculateCircleArea(double radius) {
return Math.PI * radius * radius; // 원의 넓이를 계산하여 반환
}
// 인사말을 출력하는 메서드
public void sayHello(String name) {
System.out.println("Hello, " + name + "!");
}
public static void main(String[] args) {
Calculator calc = new Calculator();
// add 메서드 호출
int sum = calc.add(5, 3); // sum = 8
// calculateCircleArea 메서드 호출
double area = calc.calculateCircleArea(2.0); // area = 12.56636 (파이 * 반지름 * 반지름)
// sayHello 메서드 호출
calc.sayHello("Daesung"); // 콘솔에 "Hello, Daesung!" 출력
}
}
위의 예시에서 'Calulator'클래스는 세 가지 메서드('add','calculateCircleArea','sayHello')를 포함하고 있다.
이처럼 메서드는 프로그램을 구조화하고 간결하게 만들어주며, 코드의 재사용성과 유지보수성을 향상시키는데 중요한 역할을 한다.
6. 클래스(Class)
클래스는 객체지향 프로그래밍(OOP)에서 중요한 개념으로, 데이터와 해당 데이터를 처리하기 위한 메서드를 함께 묶어놓은 사용자 정의 데이터 타입을 나타낸다. 쉽게 말해, 객체를 생성하기 위한 템플릿 역할을 한다.
7. 네이티브 앱(Navtive App)
네이티브 앱은 특정 플랫폼(ex: iOS, 안드로이드)에 최적화 된 애플리케이션을 의미한다. 이는 해당 플랫폼의 언어와 도구를 사용하여 개발되며, 플랫폼의 기능을 모두 활용할 수 있는 장점을 갖습니다.
네이티브 앱 장점 📌
- 스마트폰에서 기본적으로 제공되는 기능을 사용할 수 있어 해당 모바일 기기에 최적화된 기능을 구현할 수 있다.
- 각 운영체제에 최적화된 방식으로 만들어지므로 앱의 구동 속도가 빠르고 안정적이다.
- 플랫폼 업데이트나 새로운 기능이 출시될 때, 비교적 빠르게 이에 대응할 수 있다.
- 카메라, GPS, 연락처 등과 같은 기기 기능을 직접 활용할 수 있다.
네이티브 앱 단점 📌
- 개발의 난이도가 비교적 높고 개발하는데 시간이 많이 소요된다.
- 모바일 os별로 서비스를 만들어야 하며, 특정 플랫폼에 한정되어 실행된다.
- 각 플랫폼 마다 별도로 개발해야 하므로 유지보수가 복잡할 수 있다.
8. 웹 앱(Web App)
웹 앱은 웹 브라우저에서 동작하는 애플리케이션을 말 한다. 즉, 사용자가 웹 브라우저를 통해 접근하고 사용할 수 있는 앱을 말 한다. 일반적으로 웹 앱은 (HTML, CSS, JavaScript 등)을 사용하여 개발되며, 다양한 플랫폼과 디바이스에서 동작할 수 있다.
- 안드로이드 앱: 자바 및 코틀린 프로그래밍 언어를 사용해 안드로이드 스튜디오에서 만들어진 앱
- 아이폰 앱: Objective-C나 Swift 프로그래밍 언어를 사용해 엑스코드에서 만들어진 앱
웹 앱 장점 📌
- 웹 앱은 모든 플랫폼에서 동작할 수 있으며, 사용자는 웹 브라우저만 있으면 어디서든 앱에 접속이 가능하다.
- 사용자는 앱을 별도로 설치할 필요 없이 웹 브라우저를 통해 사용이 가능하다.
- 웹 앱은 서버와의 실시간 통신을 통해 항상 최신 정보를 제공할 수 있다.
- 모바일 기기부터 데스크톱까지 다양한 기기에서 호환되며, 반응형 디자인을 통해 다양한 화면 크기에 맞게 자동으로 조절될 수 있다.
- 네이티브 앱에 비해 상대적으로 낮은 개발 비용과 시간이 소요된다.
웹 앱 단점 📌
- 오프라인에서는 제한적인 기능을 가지고 있다.
- 네이티브 앱에 비해 성능이나 접근성 면에서 제한이 있을 수 있다.
'내일배움캠프' 카테고리의 다른 글
iOS 개발 용어 정리 (1) | 2024.05.08 |
---|---|
앱 개발 용어 정리 2 (0) | 2024.05.07 |
iOS 트랙을 신청한 이유 (0) | 2024.05.06 |