JAVA
목차 보기
개요
Java는 Sun Microsystems에서 개발한 객체지향 프로그래밍 언어로, 현재는 Oracle에서 관리하고 있다.
"Write Once, Run Anywhere(WORA)"라는 철학을 기반으로, JVM(Java Virtual Machine)이 설치된 환경이라면 운영체제에 관계없이 동일한 프로그램을 실행할 수 있다.
현재는 대규모 기업 시스템, 금융권, 공공기관, 웹 서비스, 클라우드 환경 등에서 널리 사용되고 있다.
주요 특징
- 객체지향 프로그래밍(OOP)
- 플랫폼 독립성
- JVM 기반 실행
- 자동 메모리 관리(Garbage Collection)
- 강력한 타입 검사
- 높은 안정성과 확장성
- 풍부한 라이브러리 지원
실행 구조
Java Source (.java)
↓
Compiler (javac)
↓
ByteCode (.class)
↓
JVM
↓
운영체제 (Windows / Linux / macOS)
Hello World
public class Main {
public static void main(String[] args){
System.out.println("Hello Java");
}
}
변수
String name = "구름";
int age = 30;
double score = 99.5;
boolean admin = true;
데이터 타입
기본형(Primitive)
- byte
- short
- int
- long
- float
- double
- char
- boolean
참조형(Reference)
- String
- Array
- Class
- Object
- List
- Map
조건문
if(age >= 20){
System.out.println("성인");
}else{
System.out.println("미성년자");
}
반복문
for(int i=0;i<5;i++){
System.out.println(i);
}
메서드
public static int add(int a,int b){
return a+b;
}
클래스
public class User{
String name;
int age;
}
Java는 클래스를 중심으로 프로그램을 구성한다.
객체 생성
User user = new User();
user.name = "구름";
생성자
public User(String name){
this.name = name;
}
객체 생성 시 초기값을 설정할 수 있다.
상속
class Animal{
}
class Dog extends Animal{
}
코드 재사용과 확장을 위한 객체지향 핵심 기능이다.
인터페이스
interface Move{
void run();
}
다형성을 구현하는 데 널리 사용된다.
컬렉션
List
List<String> list = new ArrayList<>();
list.add("PHP");
Map
Map<String,Integer> map = new HashMap<>();
map.put("age",30);
예외 처리
try{
int a = 10/0;
}catch(Exception e){
e.printStackTrace();
}
예외(Exception)를 처리하여 프로그램의 비정상 종료를 방지한다.
파일 읽기
Files.readString(Path.of("test.txt"));
JDBC
Java에서 데이터베이스 연결 시 사용하는 표준 API이다.
Connection conn =
DriverManager.getConnection(url,user,password);
Spring Framework
Java에서 가장 많이 사용되는 프레임워크이다.
주요 기능
- DI(의존성 주입)
- IoC
- MVC
- REST API
- Security
- JPA
Spring Boot
Spring 기반의 웹 개발을 간편하게 지원하는 프레임워크이다.
특징
- 내장 Tomcat
- 자동 설정
- REST API 개발
- Gradle/Maven 지원
- Microservice 개발
빌드 도구
- Maven
- Gradle
- Ant
현재는 Gradle 사용 비중이 증가하고 있다.
Java와 함께 사용하는 기술
주요 활용 분야
- 웹 서비스
- 금융 시스템
- ERP
- 공공기관 시스템
- 전자정부 프레임워크
- REST API
- Microservice
- Android 앱 개발(과거)
장점
- 높은 안정성
- 객체지향 설계
- 운영체제 독립성
- 풍부한 라이브러리
- 대규모 프로젝트에 적합
- 기업 환경에서 활용도가 높음
단점
- 문법이 비교적 길다
- 메모리 사용량이 많은 편
- 초기 학습 난이도가 다소 높음
- 간단한 프로그램도 코드량이 많을 수 있음
실무 메모
실무에서는 다음과 같은 방식이 권장된다.
- Java LTS 버전 사용
- Spring Boot 기반 개발
- Gradle 사용
- Lombok 활용
- JPA 또는 MyBatis 사용
- REST API 중심 설계
- DTO와 Entity 분리
- Exception Handler 공통 처리
- 로그는 SLF4J + Logback 사용
- 단위 테스트(JUnit) 작성
관련 문서
- JVM
- Spring
- Spring Boot
- JPA
- Hibernate
- MyBatis
- Gradle
- Maven
- REST API
- Docker
- Kubernetes
- MySQL
- 객체지향 프로그래밍
출처
- Oracle Java 공식 홈페이지
- Oracle Java Documentation
- 위키백과 「Java」