카카오 테크 캠퍼스💛도 끝났고! 어떤 걸 공부할까 하다가 자바를 더 공부하기로 했다.
람다와 함수형..? 인터페이스에 대해서는 들어봤지만, 늘 어리버리하게 공부한 것 같은 아쉬움이 있다!
그래서 유명한 책인 모던 자바 인 액션을 기반으로 자바를 더 공부해보려 한다!
이 책을 통해서 자바 8과 9,10까지 변화된 내용과 새롭게 추가된 기능(스트림 API, 인터페이스의 디폴트 메서드) 등을 정리하게 될 것이다.
그런데 저는 자바 21을 쓰고 있는뎁쇼?
안정성에 초점을 맞춘 LTS의 출시 기록들... Java 8 (2014) Java 11 (2018) Java 17 (2021) Java 21 (2023)
그러면 2024인 현재! 2014년도에 출시된 자바 8을 이렇게 열심히 공부해야하는 이유는 무엇일까?
몇번 코드를 쓰다보면 스트림 API, Optional을 자주 쓰게 된다. 그리고 이 코드를 통해 훨씬 이해하기 쉽고, 짧고 간결한 코드를 만들 수 있다.
for 문을 사용해서 정렬하는 예시
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = new ArrayList<>();
for (Integer num : numbers) {
if (num % 2 == 0) {
evenNumbers.add(num * 2);
}
}
for 문을 사용하지 않고 정렬하는 예시
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream()
.filter(num -> num % 2 == 0)
.map(num -> num * 2)
.collect(Collectors.toList());
흠... 왠지 코드 줄도 비슷하고, 읽기도 친숙한 1번이 낫다고 생각되면 아닌 이유를 이번 글 마지막에서 알려주도록 하겠다!
자바 21에는 Virtual Threads개념이 등장한다고 한다. 그러나 자바 8에서 등장한 람다를 모르면 이를 이해하기 쉽지 않다. 자바 21이 이전 버전을 모두 밀어내고 만들어진 게 아니기 때문이다!
물론 내가 아직 회사를 다녀본 것은 아니지만.. 그렇다고 한다! 개발자의 역할에는 새로운 기능 개발도 있지만, 레거시 코드를 이해하고 유지보수하는 것도 아주 중요한 역할이다!
1장에서 등장한 간략한 개념을 정리하고 싶었지만?! 해당 내용이 나올때 정리하는게 나을 것 같아서 여기까지 해보겠다!