Java Get Started
Getting Started with Java: 자바 시작 가이드
Java는 전 세계적으로 널리 사용되는 객체 지향 프로그래밍 언어로, 웹 애플리케이션, 모바일 앱, 데스크톱 소프트웨어, 게임 개발 등 다양한 분야에서 활용되고 있습니다. 이 가이드는 Java 개발 환경을 설정하고, 첫 번째 프로그램을 작성하는 과정을 단계별로 설명합니다.
1. Java 개발 환경 설정
Java 프로그램을 작성하고 실행하려면 **Java Development Kit(JDK)**가 필요합니다. JDK는 Java 컴파일러, 실행기, 그리고 표준 라이브러리를 포함한 Java 개발 도구입니다.
1.1. JDK 설치
- Oracle 공식 웹사이트 또는 OpenJDK에서 JDK를 다운로드합니다.
- 설치 프로그램을 실행하여 JDK를 설치합니다.
- 설치 후, 명령줄(Windows) 또는 **터미널(Mac/Linux)**에서 Java가 제대로 설치되었는지 확인하려면 다음 명령어를 입력합니다:
-version
JDK 버전 정보가 출력되면, Java가 정상적으로 설치된 것입니다.
1.2. 통합 개발 환경(IDE) 선택
- *통합 개발 환경(IDE)**는 코드를 작성하고, 실행 및 디버깅을 쉽게 할 수 있는 도구입니다. 대표적인 Java IDE는 다음과 같습니다:
- Eclipse: 오픈 소스 Java IDE로, 대규모 프로젝트에 적합.
- IntelliJ IDEA: 강력한 기능과 플러그인을 제공하는 인텔리J는 많은 개발자들이 선호하는 IDE입니다.
- NetBeans: Java 개발을 위한 기본 IDE로, 다양한 프로젝트 템플릿을 제공합니다.
IDE 설치 후, Java 프로젝트를 쉽게 관리하고 코드를 작성할 수 있습니다.
2. 첫 번째 Java 프로그램 작성하기
Java에서 프로그램을 작성하려면 기본적으로 클래스와 main
메소드가 필요합니다. Java 애플리케이션의 **진입점(entry point)**은 main
메소드입니다.
2.1. Hello World 프로그램 작성
// HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
코드 설명:
public class HelloWorld
:HelloWorld
라는 이름의 클래스를 정의합니다. 모든 Java 코드는 클래스 내부에 있어야 합니다.public static void main(String[] args)
: Java 애플리케이션은main
메소드에서 실행을 시작합니다. 이 메소드가 프로그램의 시작점입니다.System.out.println("Hello, World!");
: 콘솔에 "Hello, World!" 메시지를 출력하는 코드입니다.
3. 컴파일 및 실행
3.1. 명령줄에서 Java 컴파일 및 실행
Java 프로그램을 텍스트 편집기에서 작성하고, **명령줄(터미널)**에서 실행할 수 있습니다.
- 파일 저장: 위의 프로그램을 HelloWorld.java로 저장합니다.
- 컴파일: 명령줄(터미널)에서 프로그램을 컴파일합니다. 자바 컴파일러(
c
)를 사용하여.java
파일을 **바이트코드(.class)**로 변환합니다.
c HelloWorld.java
- 실행: 컴파일이 성공적으로 완료되면 HelloWorld.class 파일이 생성됩니다. 이제 Java 실행기(
)로 프로그램을 실행합니다:
HelloWorld
- 결과: 콘솔에 **
Hello, World!
*가 출력됩니다.
4. 기본 Java 문법
4.1. 데이터 타입
Java는 기본 데이터 타입과 참조 데이터 타입을 구분합니다.
- 기본 데이터 타입:
int
,double
,boolean
,char
,float
,long
등 - 참조 데이터 타입: 객체, 배열, 문자열 등
int number = 10;
double price = 19.99;
boolean isActive = true;
char letter = 'A';
4.2. 변수 선언 및 사용
변수는 데이터를 저장하는 공간으로, 선언할 때 데이터 타입을 명시해야 합니다.
int age = 25;
String name = "John";
4.3. 연산자
Java는 산술 연산자, 비교 연산자, 논리 연산자를 제공합니다.
int a = 5, b = 10;
int sum = a + b; // 산술 연산자
boolean isEqual = (a == b); // 비교 연산자
boolean isTrue = (a > 0 && b > 0); // 논리 연산자
4.4. 조건문 (if-else)
조건문을 사용하여 프로그램의 흐름을 제어할 수 있습니다.
int score = 85;
if (score >= 90) {
System.out.println("A grade");
} else if (score >= 80) {
System.out.println("B grade");
} else {
System.out.println("C grade");
}
4.5. 반복문 (for, while)
반복문은 특정 작업을 반복해서 수행할 때 사용됩니다.
- for 문:
for (int i = 0; i < 5; i++) {
System.out.println("i = " + i);
}
- while 문:
int i = 0;
while (i < 5) {
System.out.println("i = " + i);
i++;
}
4.6. 함수 (메소드)
Java에서 함수는 클래스 내부에 정의되며, 메소드라고 불립니다. 메소드는 코드의 재사용성을 높이고, 모듈화된 코드를 작성할 수 있게 합니다.
public class MathOperations {
// 더하기 메소드
public int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
MathOperations math = new MathOperations();
int result = math.add(5, 3);
System.out.println("Result: " + result); // 결과 출력: 8
}
}
5. 객체 지향 프로그래밍 (OOP) 기본
Java는 객체 지향 프로그래밍(OOP) 개념을 바탕으로 설계되었습니다. Java에서 OOP의 기본 요소는 다음과 같습니다:
5.1. 클래스와 객체
- 클래스: 객체를 생성하기 위한 템플릿 또는 청사진.
- 객체: 클래스를 기반으로 만들어진 인스턴스.
// 클래스 정의
public class Car {
// 필드
String model;
int year;
// 메소드
public void drive() {
System.out.println("Driving " + model);
}
public static void main(String[] args) {
// 객체 생성
Car myCar = new Car();
myCar.model = "Tesla";
myCar.year = 2023;
myCar.drive(); // 결과: Driving Tesla
}
}
5.2. 상속
상속을 사용하면 기존 클래스를 확장하여 새로운 클래스를 만들 수 있습니다.
// 부모 클래스
class Animal {
public void eat() {
System.out.println("Animal is eating");
}
}
// 자식 클래스
class Dog extends Animal {
public void bark() {
System.out.println("Dog is barking");
}
}
public class Main {
public static void main(String[] args) {
Dog myDog = new Dog();
myDog.eat(); // 부모 클래스의 메소드 사용
myDog.bark(); // 자식 클래스의 메소드 사용
}
}
6. Java의 주요 라이브러리
Java는 풍부한 표준 라이브러리를 제공하여 개발자가 기본적인 작업을 쉽게 처리할 수 있도록 합니다.
요약
Java는 플랫폼 독립적, 객체 지향적이며, 다양한 라이브러리를 제공하는 프로그래밍 언어로, 웹 개발, 모바일 개발(Android), 데스크톱 애플리케이션 등 다양한 분야에서 널리 사용됩니다. 이 가이드를 통해 Java 개발 환경을 설정하고, 기본 문법을 익힌 후, Java의 강력한 기능을 활용한 애플리케이션 개발을 시작할 수 있습니다.