핵심 정리
List<String> names = rawNames.stream()
.filter(n -> n.length() >= 3)
.map(String::toUpperCase)
.toList();왜 쓰나
Java를 볼 때 무엇을 먼저 떠올리면 되나
| 상황 | 먼저 떠올릴 선택 |
|---|---|
| 장기 운영 백엔드/엔터프라이즈 | Java + JVM 생태계 |
| 언어만이 아니라 플랫폼도 중요 | 표준 라이브러리, 빌드 도구, 서버 프레임워크 |
| 예전보다 간결한 문법이 필요 | 람다, 스트림, record, modern Java |
| 버전 선택 | Java 21 LTS 이상 기준 |
JVM과 플랫폼 생태계
Java는 단순한 언어가 아니라 JVM 위에서 돌아가는 플랫폼 생태계입니다. "Write once, run anywhere"라는 모토처럼 같은 코드가 OS에 관계없이 실행됩니다. 언어 문법을 배우는 것과 동시에 표준 라이브러리, 빌드 도구, 서버 생태계를 함께 익히는 것이 Java 학습의 핵심입니다.
어디서 Java를 보는가
백엔드 서비스, 기업용 시스템, 금융·공공 분야, 대규모 서비스 운영에서 Java가 오래 살아남은 이유는 정적 타입, 가비지 컬렉션, 풍부한 표준 라이브러리 덕분입니다. Spring 생태계는 수많은 현업 백엔드 코드의 기반이고, Android 개발도 Java/Kotlin 기반입니다.
현대 Java의 진화
예전의 장황한 이미지와 달리, 현대 Java는 람다, 스트림, record, switch expression, sealed class 같은 기능으로 코드가 훨씬 간결해졌습니다. 6개월마다 새 버전이 나오고, LTS 버전(Java 21 이상)을 기준으로 공부하면 최신 문법을 바로 활용할 수 있습니다.
// 예전 스타일 (Java 7 이하)
final List<String> names = new ArrayList<>();
for (String name : rawNames) {
if (name.length() >= 3) {
names.add(name.toUpperCase());
}
}
// 현대 스타일 (Java 8+)
List<String> names = rawNames.stream()
.filter(n -> n.length() >= 3)
.map(String::toUpperCase)
.toList();실무에서 볼 점
| 상황 | 적합한 선택 |
|---|---|
| 안정적 백엔드·엔터프라이즈 | Java (생태계·장기 운영 강점) |
| 문법 이상으로 중요한 것 | 표준 라이브러리·빌드 도구·플랫폼 감각 |
| 예전 장황함 걱정 | 현대 Java 문법(람다·record·스트림) |
| 버전 선택 | Java 21 LTS 이상 권장 |
주의할 점
Java를 문법만으로 배우면 실무에서 정작 중요한 부분을 놓칩니다.
// ❌ Hello World 이후 문법 암기에만 집중
// — Collections, 예외 처리, 빌드 도구 감각 없음
// — 실무 코드를 읽기 어려워짐
// ✅ 언어 문법 + 플랫폼 함께 익히기
// — java.util (컬렉션, Optional, Stream)
// — java.io / java.nio (파일 처리)
// — java.time (날짜/시간)
// — Maven / Gradle 기본 흐름참고 링크
2 sources