파란하늘의 지식창고
반응형

회고

Java, Spring 변화

JDK 17 Release

JDK 11이 나온 지 3년이 지나 LTS 버전인 JDK 17이 나왔다.

현재 Spring 환경에서 쓸 수 있기 때문에 Spring Boot 3.0.0이 나오기 전에 JDK 17 전환이 되어야 하겠다.

https://docs.oracle.com/en/java/javase/17/migrate/getting-started.html

 

Oracle JDK Migration Guide

The guide highlights the significant changes and enhancements done in JDK 17.

docs.oracle.com

Spring Boot 2.5.x, 2.6.x release

Spring의 버전 명명 방식이 X.X.X.RELEASE에서 RELEASE 부분이 제거되었다.

반년 주기로 나오는 java release에 맞춰 Spring Boot도 2.5.x와 2.6.x가 나왔다.

Spring Cloud의 bootstrap.yml 라이프 사이클이 제거되었고 minor 버전이 변경되면서 deprecated 된 것들이 삭제되고 다양한 변화들이 추가되었다.

docker, kubernetes의 인기에 맞물려 관련한 지원도 활발하게 이루어지고 있다.

2022년 하반기(대략 2022년 11월 24일)에 Spring Boot 3.0.0이 나오면 완전히 Java 17로 전환이 될 예정이다.

Spring Native가 성장 중이긴 하지만 쓸만해지는 시점이 언제일지 모르겠다.

hystrix -> resilience4j 교체

더 이상 개발하지 않고 maintenance mode가 된 hystrix는 이제 더 이상 Spring에서 지원하지 않으며 이를 대체하는 resilience4j로 교체해야 한다.

2021.09.09 - [Study/Java] - Spring Boot에서 Resilience4j 사용해보기

thymeleaf-layout-dialect 3.0.0

Spring Boot 2.0.0 이후 Thymeleaf 3.0.0 이상의 버전이 사용되어 왔지만 Spring Boot 2.6.0이 되어서야 thymeleaf-layout-dialect가 3.0.0 버전이 적용되었다.

FE 트렌드

JavaScript, HTML/CSS, Node.js, TypeScript와 같은 FE 쪽 언어가 stackoverflow survey에서 가장 인기 있는 기술로 투표되었다.

stackoverflow survey에서는 FE 관련 기술들이 압도적으로 투표율이 높다.

https://insights.stackoverflow.com/survey/2021#most-popular-technologies-language

 

Stack Overflow Developer Survey 2021

In May 2021 over 80,000 developers told us how they learn and level up, which tools they’re using, and what they want.

insights.stackoverflow.com

stackoverflow의 2021 survey는 2021년 8월에 공개된 내용이라 좀 시간이 지나긴 했다.

React.js가 JQuery를 제치고 1위

여기서 React.js가 jQuery를 제치고 가장 인기 있는 FE 기술이 되었다.

관심 있게 보는 Vue.js도 소폭이긴 해도 작년보다 상승하였고 작년에 없던 Svelte의 경우 무서운 속도로 성장을 하고 있다.

관심 있는 것들

기술이 다양해지면서 참 신기한 것들이 많이 나오는 것 같다.

그중 관심 있고 기회가 되면 살펴보려고 하는 것들은 다음과 같다.

음성 검색 IOT 연동

AI 스피커가 일상에 자연스럽게 녹아들면서 음성 검색과 관련한 개발자 도구를 제공하기 시작했다.

아마존 알렉사의 경우 2018년도에 관련 툴킷을 공개했는데 Spring Boot에서 Alexa 음성 인식을 사용하여 IOT를 연동하는 자바 개발 예제가 연말에 유튜브에 떴는데 스피커가 있으면 한번 해보고 싶었다.

https://www.youtube.com/watch?v=Ff6n7KOBQt0 

TypeScript

TypeScript도 요즘 무섭게 성장세여서 한번 공부해봐야 할 거 같다.

NoSQL, GraphQL

요즘엔 이것도 관심 있게 둘러보고 있다.

특성에 따라 관계형 DB, NoSQL, GraphQL을 사용하는 것들에 대해 설명하는 책을 읽고 있는데 읽어볼 만한 것 같다.

http://www.yes24.com/Product/Goods/59566585

 

데이터 중심 애플리케이션 설계 - YES24

데이터는 오늘날 시스템을 설계할 때 마주치는 많은 도전 과제 중에서도 가장 중심에 있다. 확장성, 일관성, 신뢰성, 효율성, 유지보수성과 같은 해결하기 어려운 문제를 파악해야 할 뿐 아니라

www.yes24.com

정리

전체적으로 보면 무언가 하나를 자세히 공부하려고 하지 않고 알음알음 수박 겉핥기 식으로 한 게 아닌가 싶다.

너무 많은 새로운 것들이 나오기도 하고, 그런 걸 전부 쫓아가지도 못한다.

빅데이터, 딥러닝, AI 같은 것부터 IOT 같은 것들도 호기심은 있었지만 구경만 하고 싶게 공부하지는 못했다.

세상은 빠르게 변하는데 무얼 따라가야 할지 혼란스럽다.

개인 프로젝트 개발 방식

2018년에 한 번 적어본 적이 있는데 이후 꽤 오래간만에 다시 한번 적어본다.

2018.10.05 - [잡담] - 2018년 10월 개인 프로젝트 개발 방식 현황 정리

개발 도구

  버전  
Spring Tool Suite 4.13.0.RELEASE  
heidiSQL 11.3  
Visual Studio Code 1.63 추가됨
MySQL Workbench CE 8.0  
NoSQLBooster for MongoDB 7.0.8 추가됨

이전에 사용하던 exerd의 경우 새 버전이 2차례 나오면서 라이선스 구매 비용 부담이 커서 버리게 되었다.
mysql 한정 workbench로 대체하게 되었다.
DBeaver를 많이들 추천해주는데 나한텐 왠지 자꾸 어색하다.

Visual Studio Code는 무섭게 점유율이 상승하는 IDE이다.
이미 FE 쪽 개발 도구로는 가장 많이 사용하고 있고 가볍고 플러그인 형태로 여러 언어들과 기능들을 지원하고 웹에서도 동일하게 사용할 수 있으며 무엇보다 오픈소스이다.
이미 익숙한 자바는 STS로 개발을 하지만 그 외의 언어에 관심을 가지고 사용해보려고 할 때마다 Visual Studio Code를 사용하게 된다.
이런 추세대로라면 아마 많은 점유율을 앞으로도 가져가지 않을까 싶다.
2018년도엔 atom으로 프런트엔드 개발 쪽 공부를 했었는데 Visual Studio Code로 바뀌었다.

intellij는 여전히 잘 쓰지 않는다.
단지 개인적으로 매년 내는 비용이 STS를 교체할만하다고 느껴지지 않아서이다.

 

운영 도구

  버전  
docker 20.10.11  
nerdctl 0.15.0 추가됨
kubernetes client (1.22), server (1.19) 추가됨
nexus oss 3.37.3-02  
jenkins 2.330  
sonarqube ce 9.2.4 추가됨
mariadb 10.6.5  
Microsoft SQL Server 15.0.4043.16 (X64) 추가됨
zeppelin 0.9.0  
mongodb 5.0.5 추가됨
redis 6.2.6 추가됨
kafka    

docker desktop이 250명 이상 회사에서 유료화가 되면서 집에서는 docker desktop, 회사에선 rancher desktop을 사용하기 시작했다.
rancher desktop은 docker대신 nerdctl을 제공하는데 containerd용 Docker 호환 CLI라서 docker와 유사해서 거부감 없이 사용하게 되었다.

MS가 오픈소스 친화적인 정책으로 돌아서면서 참 많은 변화가 있었다.
github을 인수하고, vss를 공개하고 mssql도 개인 사용자들이 사용해볼 수 있게 docker hub에 올려줬다.
(어제 본 뉴스로는 ms가 액티비전 블리자드를 인수했다고 한다. 또 어떤 변화가 있을지..)

zepplin은 설치만 했다뿐이고 거의 사용을 하지 않고 있다.

mongodb, redis, kafka는 공부해볼까 하고 설치했지만 역시 그리 유용하게 써보고 있지 않다.

백엔드 라이브러리

  버전  
java 17  
spring framework 5.3.14  
spring boot 2.6.2  
spring cloud
spring-cloud-netflix-eureka-server
spring-cloud-config-server
3.1.0  
spring-cloud-admin-server 2.5.5  
resilience4j 1.7.0 boot dependency 관리에 의존
hystrix에서 교체됨
mybatis 3.5.9  
thymeleaf 3.0.14.RELEASE  
thymeleaf-layout-dialect 3.0.0  

라이브러리 언급이 좀 무색한 게 2018년 이후 새로운 라이브러리를 사용하는 걸 깊게 공부하지 않았던 거 같다.

mongodb나 redis도 연동에 대해서까지만 확인하고 깊게 공부하지 않았고 전체적인 개요만 파악하고 있었던 것 같다.

spring에서 더 이상 hystrix를 쓰지 않고 resilience4j로 바뀐 부분이 있고 많이들 사용하는 webflux 쪽도 그냥 살펴보기만 하고 실제로 사용하려고 하진 않았다.

무언가 더 깊게 파고 들어가려고 하기보단 계속 변하는 spring 라이브러리의 버전별 변경점을 따라잡는 것에 무게를 두었다.

프런트엔드 라이브러리

  버전  
bootstrap 5.1.3  
fontawsome 5,15,4  
vue 3.2.27  
electron 13.0.0  
typescript 4.1.5  

프런트엔드 쪽의 경우 jquery를 드디어 버리게 되었다.

bootstrap이 더 이상 jquery기반이 아니기도 했고 vue, react, svelte 같은 라이브러리들이 인기를 끌면서 jquery가 react에 1위를 내주게 되었다.

너무 많이 변화하는 환경이라 기존 프로젝트를 변경하는 식의 공부를 할 만큼의 여유는 없었고 그냥 새로 만들어서 다시 공부해보는 식으로만 익혔다.

시간이 되면 typescript를 공부해볼까 한다.

 

반응형

'잡담' 카테고리의 다른 글

2018년 10월 개인 프로젝트 개발 방식 현황 정리  (0) 2018.10.05
다시 블로그 시작  (0) 2018.10.04
profile

파란하늘의 지식창고

@Bluesky_

내용이 유익했다면 광고 배너를 클릭 해주세요