안드로이드 앱 개발에 있어 자바(Java)는 가장 중요한 프로그래밍 언어 중 하나입니다. 구글이 안드로이드 플랫폼을 발전시키는 동안, 자바는 그 핵심 언어로 자리잡았습니다. 자바의 장점과 기본 개념을 이해하면 안드로이드 앱 개발에 큰 도움이 됩니다. 본 강좌에서는 자바 언어의 기본 개념부터 시작해, 안드로이드 앱 개발을 위한 기초부터 심화까지 단계적으로 설명하겠습니다.
1. 자바란?
자바는 범용 프로그래밍 언어로, 1995년 썬 마이크로시스템즈(현재 오라클)에 의해 개발되었습니다. 객체 지향 프로그래밍(OOP) 언어로, 코드를 더 구조화되고 재사용 가능하게 만들어줍니다. 자바는 다음과 같은 주요 특징을 가지고 있습니다:
- 플랫폼 독립성: 한 번 작성된 코드는 JVM(Java Virtual Machine)을 통해 어떤 플랫폼에서도 실행될 수 있습니다.
- 객체 지향: 클래스 및 객체를 사용하여 데이터와 메서드를 구조적으로 관리할 수 있습니다.
- 강력한 메모리 관리: 자바는 자동 가비지 컬렉션을 통해 메모리 관리를 효율적으로 수행합니다.
- 다양한 라이브러리: 자바는 다양한 표준 라이브러리와 API를 제공하여 개발자들이 편리하게 사용할 수 있습니다.
- 멀티스레딩 지원: 여러 스레드를 쉽게 관리할 수 있어, 동시성 프로그래밍이 용이합니다.
2. 자바의 기본 문법
자바의 문법은 간단하고 직관적입니다. 예제 코드를 통해 자바의 기본적인 문법을 알아보겠습니다.
2.1 Hello World 예제
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
위 코드는 자바의 기본적인 구조를 보여줍니다. 클래스를 정의하고, main 메서드를 통해 프로그램이 시작됩니다. System.out.println() 메서드는 콘솔에 메시지를 출력하는 역할을 합니다.
2.2 변수 및 데이터 타입
자바에는 기본형 데이터 타입과 참조형 데이터 타입이 있습니다. 기본형 데이터 타입으로는 int, float, double, char, boolean 등이 있으며, 참조형 데이터 타입은 클래스나 배열과 같이 복잡한 데이터 구조를 나타냅니다.
public class VariableExample {
public static void main(String[] args) {
int age = 25;
double height = 175.5;
char initial = 'A';
boolean isStudent = true;
System.out.println("Age: " + age);
System.out.println("Height: " + height);
System.out.println("Initial: " + initial);
System.out.println("Is a student: " + isStudent);
}
}
2.3 연산자
자바에서는 다양한 연산자를 사용하여 데이터를 처리할 수 있습니다.
- 산술 연산자: +, -, *, /, %
- 비교 연산자: ==, !=, >, <, >=, <=
- 논리 연산자: &&, ||, !
public class OperatorExample {
public static void main(String[] args) {
int a = 10;
int b = 20;
boolean result;
result = (a < b) && (b > 15);
System.out.println("Result: " + result);
}
}
2.4 제어문
제어문은 프로그램의 흐름을 제어하는데 사용됩니다. 자바에는 조건문(if, switch)과 반복문(for, while, do-while)이 있습니다.
public class ControlFlowExample {
public static void main(String[] args) {
int num = 5;
if (num > 0) {
System.out.println(num + "은 양수입니다.");
} else {
System.out.println(num + "은 음수입니다.");
}
for (int i = 1; i <= 5; i++) {
System.out.println("Iteration: " + i);
}
}
}
3. 객체지향 프로그래밍(OOP)
객체지향 프로그래밍은 문제를 객체의 관점에서 해결하는 패러다임입니다. 자바는 다음과 같은 OOP의 4가지 주요 특성을 지원합니다. 캡슐화, 상속, 다형성, 추상화입니다.
3.1 클래스와 객체
클래스는 객체를 정의하는 청print입니다. 객체는 클래스를 기반으로 생성된 인스턴스입니다.
class Dog {
String name;
int age;
void bark() {
System.out.println(name + "가 멍멍합니다.");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.name = "뭉치";
dog.age = 3;
dog.bark();
}
}
3.2 상속
상속은 기존 클래스(부모 클래스)의 속성과 메서드를 자식 클래스가 물려받는 기능입니다.
class Animal {
void eat() {
System.out.println("먹고 있습니다.");
}
}
class Cat extends Animal {
void meow() {
System.out.println("야옹!");
}
}
public class Main {
public static void main(String[] args) {
Cat cat = new Cat();
cat.eat();
cat.meow();
}
}
3.3 다형성
다형성은 같은 인터페이스를 통해 서로 다른 구현을 사용할 수 있는 기능입니다.
class Bird {
void fly() {
System.out.println("새가 날고 있습니다.");
}
}
class Ostrich extends Bird {
void fly() {
System.out.println("타조는 날 수 없습니다.");
}
}
public class Main {
public static void main(String[] args) {
Bird myBird = new Ostrich();
myBird.fly();
}
}
3.4 추상 클래스와 인터페이스
추상 클래스는 완전하지 않은 클래스이며, 인터페이스는 클래스가 구현해야 하는 메서드의 모음입니다.
abstract class Shape {
abstract void draw();
}
class Circle extends Shape {
void draw() {
System.out.println("원 그리기");
}
}
public class Main {
public static void main(String[] args) {
Shape shape = new Circle();
shape.draw();
}
}
4. 안드로이드 앱 개발과 자바
이번에는 자바를 사용하여 안드로이드 앱을 개발하는 방법에 대해 알아보겠습니다. 안드로이드 스튜디오를 설치하고, 간단한 앱을 만들어보겠습니다.
4.1 안드로이드 개발 환경 설정
안드로이드 앱 개발을 위해서는 안드로이드 스튜디오를 설치해야 합니다. 안드로이드 스튜디오 설치 후, 새 프로젝트를 생성합니다.
4.2 간단한 “Hello World” 앱 만들기
우선 안드로이드 스튜디오에서 새 프로젝트를 생성한 후, 기본 제공되는 “Hello World” 앱을 살펴보세요.
package com.example.helloworld;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.text_view);
textView.setText("Hello, Android!");
}
}
위 코드는 메인 액티비티에 “Hello, Android!”라는 텍스트를 표시합니다.
4.3 레이아웃 설정
안드로이드의 UI는 주로 XML로 정의됩니다. 아래는 기본 레이아웃 파일 예시입니다.
5. 결론
본 강좌에서는 자바 언어의 기본 개념부터 객체지향 프로그래밍, 그리고 안드로이드 앱 개발에 이르기까지 다양한 내용을 다루었습니다. 자바는 안드로이드 개발에 있어 매우 중요한 언어이며, 충분한 이해와 연습이 필요합니다. 자바와 안드로이드에 대한 더 깊은 이해를 위해 계속 공부하고 실습하십시오. 다음 강좌에서는 안드로이드 앱의 다양한 기능 구현에 대해 다루도록 하겠습니다.
6. 참고 자료
- 자바 프로그램밍 언어: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
- 안드로이드 개발자 사이트: https://developer.android.com/
- 객체지향 프로그래밍 원리: https://www.tutorialspoint.com/java/java_object_oriented.htm