자바 17을 쓰도록 설득하는 방법
Tags: java, korean, programming, productivity
Published: 2022-09-13 01:54:40

## 자바 8, 11을 이은 최신 LTS 버전!

LTS가 뭔지 알기만 해도 안심이 되는 이 약자로 충분히 설득이 가능하다. 그러나 LTS가 뭔지 모르거나 관심 없는 시니어 개발자들이 많을 것이다. 뭔지 모른다면, 자바 최신 버전이면서 공식적으로 지원하는 가장 안정적이고 최신 버전이라는 어필을 시도해 보자.

## 맥을 안정적으로 지원하는 최신 버전!

자바 17은 맥 지원에 상당한 심혈을 기울였다. 물론 표면적으로는 자바에서 웹이 아닌 GUI 앱을 돌릴 때, OpenGL 대신 Metal 을 공식 지원하게 된 첫 버전이지만, 더 중요한 사실은, 만약 M1 이상의 맥북을 들고 있는 개발자가 많을 경우, 자바 17은 M1 프로세서 이상을 가장 안정적으로 잘 지원하는 최초의 버전이라는 것이다! 따라서 맥북 들고 다니는 개발자가 많다면 반드시 어필하여 자바 17 사용을 도모하자!

## 문단을 지원하는 최초의 안정화 버전!

이 기능은 자바 14부터 지원했다. 하지만 17은 이 기능을 지원하는 최초의 안정화 버전이라는 것에 중점을 두어야 한다.

```java
String jonnaginmundan = """
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed nisi nunc, facilisis eget velit a, rutrum iaculis metus. Aliquam ornare eu elit ut venenatis. Maecenas placerat rutrum condimentum. Aenean sit amet est pulvinar, placerat sapien eget, varius diam. Nam quis nunc consequat, consectetur urna sit amet, posuere urna. Ut dictum tempor enim, sed auctor odio viverra elementum. Pellentesque rutrum tristique mollis. Nulla facilisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam porta urna sit amet massa fringilla dapibus. Duis eleifend quam at lacus laoreet finibus.

Donec sollicitudin sodales lacinia. Ut ut purus erat. Curabitur rhoncus odio felis, vel pellentesque enim faucibus ac. Morbi consectetur, est sed pretium lobortis, neque lacus consectetur lacus, non vulputate nulla metus rutrum lectus. Proin nec magna lobortis, ullamcorper dolor a, mollis nisl. Cras aliquam nibh est, auctor posuere dui aliquet et. Sed vehicula turpis et mauris eleifend convallis.

Quisque mollis mauris eget ligula iaculis congue. Aliquam quis est semper ipsum gravida facilisis. Nam vestibulum nulla a euismod ultrices. Sed suscipit viverra tincidunt. Integer quis sem vitae ligula varius ornare quis ac lectus. Integer aliquam aliquet massa nec finibus. Morbi eleifend facilisis libero eget imperdiet. Sed interdum viverra volutpat. Nunc massa est, vulputate vitae mi id, bibendum ornare metus. Phasellus placerat gravida lacus, at hendrerit turpis iaculis vel. Morbi porta leo quis nibh pulvinar, nec malesuada ipsum rutrum. Donec vehicula egestas magna et sodales. In non lectus mattis arcu maximus pulvinar.

Maecenas congue, quam eu pretium rhoncus, mauris velit lacinia felis, sed tincidunt ex risus et mi. Maecenas vel egestas justo, at porta ligula. Sed sagittis viverra scelerisque. Pellentesque ac diam enim. Etiam consectetur non diam nec mattis. Sed sit amet odio in tellus eleifend molestie. Morbi non velit consectetur, elementum dui eget, porttitor quam. Donec quam sapien, faucibus sit amet eros in, placerat pellentesque dolor. Aenean vulputate lectus in dui efficitur rhoncus. Morbi facilisis tortor et commodo malesuada. Suspendisse risus diam, accumsan et maximus non, molestie a nisl. Vivamus enim neque, cursus ut felis eget, imperdiet suscipit tellus. Nullam commodo arcu sodales metus venenatis tempor. Duis varius dolor et turpis placerat, ac congue arcu commodo. Fusce nibh nisl, suscipit et finibus eget, pulvinar id quam. Nullam vel semper ligula.

Sed malesuada urna sapien, nec blandit nisi suscipit ut. Aenean tincidunt sit amet nulla non ultricies. Duis consequat velit quis tristique eleifend. Sed quis lectus at sem consectetur mollis. Donec a posuere libero, in luctus diam. Sed tristique sit amet nisi vitae mollis. Nam feugiat sodales felis, sed pharetra eros feugiat eu. Fusce aliquam ac magna eu hendrerit. Praesent finibus turpis sodales tempor mattis. Nulla facilisi. Morbi imperdiet quam vel libero lacinia, eget tincidunt mi consectetur. Etiam posuere, nisl id varius viverra, elit nisl efficitur eros, ac iaculis ante ipsum sit amet ex. Quisque lacinia venenatis lobortis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla tincidunt lacus pulvinar ex pulvinar, sed interdum tellus bibendum. Nullam iaculis, quam eu sodales volutpat, sapien nunc cursus ante, ac condimentum nisi felis et est.
""";
```

뭐. 꼽냐? 길지? 이걸 지원한다는 건 중요하다. 특히 기본값으로 설정한 문단이나, 마크업 등에서!

### 아 자바는 그짓거리 안해도 문단 쓸 방법 많고 메모리에도 효율적이지 않아!

그래. XML같은 외부 리소스를 활용하는 등의 방법이야 있지. 근데 니네들 그거 쓰고 메모리 관리할 줄 알면 그거 써라. 몰라? 그러면 다국어처럼 문자열을 체계적으로 쓸 거 아니면 다 의미 없는 소리다.

## 아 인텔리제이도 17 쓴다고!

JBR 이라고 인텔리제이 구동 시 쓰는 자사 JVM이 있다. 이건 JDK가 공개되지 않았음에도 불구하고 오라클 TCL 인증까지 받은 참 요상한 런타임 모듈이다. 즉, 오라클이 보증하는 자바라는 것이다. 2022년 버전부터 자바 17을 기반으로 동작해서 좀 더 빠른 응답속도를 만들어냈다. (물론 확장 많으면 거기서 거기)

## 아 어자피 스프링 쓸거면서 17도 공식 지원하는데 왜 안 써?

이거마따.

## 오히려 자바 17을 권장하지 않는 경우

아마 대부분 SI/SM과 연관이 깊을 것이겠지만...

- 당연하겠지만 기존 유지보수하는 모듈과 같이 관리하는 경우는 이걸 담당한 시니어 개발자에게 어필해봐야 소 귀에 경읽기다.
- 구동해야 하는 서버가 10년 이상 오래된 경우 작동 가능성을 보장할 수 없다. 이 경우는 당시 기준으로 안정화된 버전을 시도하는 게 나을 수 있다.
- DB나 각종 연동 모듈에 대한 지원이 없는 경우는 더욱 더 조심해야 한다. 너무 구형 DB라던가 연동 모듈이 있다면, 어쩔 수 없이 거기서 지원하는 자바 버전을 쓰는 것이 베스트일 수밖에 없다.
- 제일 좆같은 전자정부표준프레임워크 써야 하는 환경일 경우는 답 없다. 11도 답 없다. 8 써야 한다. 위로를 표한다.

## 결론

구형 관련한 작동 보증 필요 없고 완전 쌔삥 환경이라면 반드시 자바 17을 사용하여 보안성, 안정성, 그리고 속도 모두를 챙기고 최신 언어 스펙을 누리도록 하자!
참고로 올 말에 출시하고 1년간 안정화되어 내년에 개나소나 쓰게될 스프링 6.0 은 최소 자바 버전이 17이다!

끗.