JAVA
기본 정보
- 이름: Java
- 분류: 객체지향 프로그래밍 언어
- 최초 공개: 1995년
- 개발사: Sun Microsystems (현재 Oracle)
- 최신 LTS: Java 21
- 주요 용도: 백엔드 개발, 웹 애플리케이션, Android(과거), 금융 시스템, 엔터프라이즈 시스템
- 관련 주제: #Java #백엔드 #객체지향 #JVM
개요
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」