간단한 표
1. 자바 8은 왜 많이 쓰는 걸까?
자바 8부터 추가된 기능들이 그만큼 중요하기 때문이다.
그럼 그 중요한 기능들은 무엇일까?
중요성을 평가함에 있어 사람들의 주관이 많이 작용하겠지만 대부분의 사람들이 말하는것은
-- 함수형 프로그래밍의 도입 (함수형 인터페이스)
-- 람다식
-- 스트림 api 의 도입
-- Optional 클래스 등장으로 nullpointExceition 방지 가능
등이 있다.
한편으로는 공공쪽 사업에서 쓰는 정부통합 프레임워크가 8버전까지만 지원이 되어서 많이 쓴다는 설도 있다.
또 자바 8버전 이후로는 유료화 되는 부분이 많아서라는 이유도 있다고 한다.
2. 자바 11의 특징
그럼 무조건 8은 좋은 것일까?
자바 8은 2014년에 나왔다. 성능면으로 보면 11이 더 좋다고 한다.
대신 11은 openJDK 를 쓰는 곳이 많다고 한다.
그럼 자바 11은 뭐가 바뀌었을까?
--새로운 String 메서드의 추가
strip(), isBlank() 와 같은 문자열 앞,뒤의 공백 제거를 해주는 메서드가 추가되었다.
trim() 과 다른점은 트림은 유니코드상에서 다양한 공백 문자에 대처하기 어렵다.
때문에 11 이전까지는 Character.isWhitespace(int) 를 사용했어야 했다고 한다.
trim() 보다 성능도 더 좋다.
isBlank() 는 문자열이 비었거나 공백만 있을경우 true를 반환한다.
-- 람다의 파라미터로 var 사용
자바10에서 사라졌었다가 11때 다시 생겨났다.
(var n1, var n2) -> n1 + n2
주의할 점은 var 는 다른 타입의 파라미터와 혼용하지 못한다. var 끼리만 사용해야한다.
(var n1, String s2) -> n1 + s2 ===이럴경우 오류난다.
-- 모듈
모듈을 통해
어플리케이션에 필요한 구성 요소만 있는 런타임 구성을 사용자가 지정할 수 있다.
사용자 지정은 메모리를 적게 쓴다.
메모리를 적게 써서 얻을 수 있는 장점을 하나 들어보면
마이크로서비스 아키텍처에 유용하다는 것이다.
내부적으로 클래스 로딩을 효율적으로 하여
런타임이 줄어들고, 더 빠르게 시작이 가능하다.
-- 엡실론 가비지 컬렉터
JVM으로 하여금 메모리 할당을 관리하지만, 사용된 메모리를 재사용하지 않도록 한다.
메모리를 다 사용하면 OutOfMemory 가 발생하고 JVM은 셧다운된다.
-- Http client
java 표준 http 코드가 기존에 사용한 코드보다 성능이 개선되었다.
websocket 과 http/2 , http/1.1 을 지원한다.
이외에도 JVM의 전체적인 성능향상으로 시간 단축, 공간 절약, 메모리 절약을 할 수 있다고 한다.
그럼에도 사람들이 많이 쓰는 것은 자바 1.8 버전이다.
3. 세계 동향
추가적인 자료로 세계 java 사용자들의 동향을 나타내는 표이다.
출처 :https://www.jrebel.com/blog/2020-java-technology-report
-- 프레임 워크와 기술 선호도
-- 데이터 베이스 선호도
-- IED 선호도
-- WAS 선호도
--런타임 어플리케이션 선호도
-- 자바 버전 선로도
참고
https://medium.com/@jyson88/2020-java-trend-9696c7321806
https://gsmesie692.tistory.com/267
https://n1tjrgns.tistory.com/262
'참고자료' 카테고리의 다른 글
포워드 프록시 와 리버스 프록시 (0) | 2022.01.26 |
---|---|
EC2 에 mysql 8.0 설치하기 (0) | 2021.10.20 |
메시지 큐 (Message Queue)란? (0) | 2021.08.28 |
FrameWork 와 SpringFrameWork (0) | 2021.08.27 |
Request 의 방식의 종류 (0) | 2021.07.06 |