Java는 1995년 썬 마이크로시스템즈(Sun Microsystems)의 제임스 고슬링(James Gosling)이 개발한 객체지향 프로그래밍 언어입니다. "Write Once, Run Anywhere" (한 번 작성하면 어디서든 실행) 철학으로 플랫폼 독립성을 추구합니다.
- JVM (Java Virtual Machine) 위에서 실행
- 바이트코드로 컴파일되어 어떤 플랫폼에서도 실행 가능
- 운영체제에 독립적
- 순수 객체지향 언어
- 클래스, 상속, 다형성, 캡슐화 지원
- 인터페이스와 추상 클래스
- 가비지 컬렉션 (Garbage Collection)
- 메모리 누수 걱정 없이 개발 가능
- 개발 생산성 향상
- 정적 타입 검사
- 컴파일 타임에 오류 발견
- 타입 안전성 보장
- Java API (Application Programming Interface)
- 네트워킹, 파일 처리, 데이터베이스 연동 등
- 방대한 오픈소스 생태계
- 내장 스레드 지원
- 동시성 프로그래밍 용이
- 병렬 처리 가능
- 대규모 백엔드 시스템
- 금융 시스템
- 전자상거래 플랫폼
- Spring Framework 기반 웹 애플리케이션
- RESTful API 서버
- 마이크로서비스 아키텍처
- 안드로이드 앱 개발
- 안드로이드 SDK의 기본 언어
- 크로스 플랫폼 모바일 프레임워크
- Hadoop, Spark 등 빅데이터 프레임워크
- 데이터 처리 및 분석
- 안드로이드 게임
- LibGDX 등 게임 프레임워크
- 람다 표현식 도입
- Stream API
- Optional 클래스
- 가장 널리 사용되는 버전
- 모듈 시스템 개선
- HTTP 클라이언트 API
- var 키워드 (로컬 변수 타입 추론)
- Sealed 클래스
- Pattern Matching
- Records
- 현재 권장 LTS 버전
- Virtual Threads
- Pattern Matching for switch
- Record Patterns
- 최신 LTS 버전
- 변수와 자료형
- 연산자와 제어문
- 배열과 문자열
- 메서드
- 클래스와 객체
- 상속과 다형성
- 인터페이스와 추상 클래스
- 예외 처리
- 컬렉션 프레임워크
- 제네릭
- 람다와 Stream API
- 멀티스레딩
- 네트워크 프로그래밍
- 데이터베이스 연동 (JDBC)
- 디자인 패턴
- Oracle JDK: Oracle에서 제공
- OpenJDK: 오픈소스 JDK
- Adoptium (Eclipse Temurin): 인기 있는 OpenJDK 배포판
- IntelliJ IDEA: 가장 인기 있는 Java IDE
- Eclipse: 오픈소스 IDE
- NetBeans: Oracle에서 개발
- VS Code: 확장 기능으로 Java 개발 지원
- Maven: 의존성 관리 및 빌드
- Gradle: 유연한 빌드 시스템
- Ant: 전통적인 빌드 도구
- 클래스와 객체
- 상속, 다형성, 캡슐화
- 인터페이스와 추상 클래스
- List, Set, Map 인터페이스
- ArrayList, HashSet, HashMap 등 구현체
- 제네릭을 통한 타입 안전성
- try-catch-finally
- checked exception과 unchecked exception
- 예외 계층 구조
- 타입 안전성 향상
- 코드 재사용성 증가
- 컴파일 타임 타입 검사
- 플랫폼 독립성: 한 번 작성하면 어디서든 실행
- 안정성: 강력한 타입 시스템과 예외 처리
- 생산성: 가비지 컬렉션으로 메모리 관리 자동화
- 풍부한 생태계: 방대한 라이브러리와 프레임워크
- 엔터프라이즈 지원: 대규모 시스템 개발에 적합
- 성능: JVM 위에서 실행되어 네이티브 언어보다 느림
- 메모리 사용: 가비지 컬렉션으로 인한 메모리 오버헤드
- 복잡성: 엔터프라이즈 개발 시 복잡한 설정
- 버전 호환성: 버전 간 호환성 문제 가능
- 보일러플레이트 코드: 반복적인 코드 작성 필요
- Java는 C/C++ 문법을 참고
- Java는 포인터를 제거하고 가비지 컬렉션 추가
- 더 안전하고 간단한 문법
- 둘 다 객체지향 언어
- Java는 정적 타입, Python은 동적 타입
- Java는 컴파일 언어, Python은 인터프리터 언어
- 비슷한 문법 구조
- Java는 서버 사이드, JavaScript는 클라이언트 사이드 (과거)
- 현재는 둘 다 서버 사이드에서 사용
Java는 엔터프라이즈 애플리케이션 개발의 표준 언어입니다. 플랫폼 독립성, 안정성, 풍부한 생태계를 통해 대규모 시스템 개발에 널리 사용됩니다. 안드로이드 앱 개발과 백엔드 서버 개발에서도 핵심 언어로 자리잡고 있으며, 지속적인 업데이트로 현대적인 기능들을 제공하고 있습니다.