새소식

Keycloak

v11 vs v20.0.3 Dependency 차이 조사

  • -

약 2년 전, keycloak v8로 개발할 때, 이 오픈소스의 구성요소 Dependency를 조사했었다.

그리고 지금, keycloak은 v20에 들어서면서, 많은 것이 바뀌었다.

 

차이점을 알아보자!

 

Keycloak의 Dependency는 여기에서 확인할 수 있다.

https://mvnrepository.com/artifact/org.keycloak/keycloak-dependencies-server-all/20.0.3

 

또한, v11때 로딩 과정에서 기록한 Dependency를 그대로 비교한다.

 

  v11 v20.0.3 Note
실행 엔진 Wildfly Quarkus - v17부터 Quarkus가 정식 채용되었다.
- Wildfly는 JBoss EAP의 Community Version으로, Java 컨테이너 기능을 풍부하게 지원하지만, 구동 시간이 오래 걸렸다.
- Quarkus는 구동 시간과 메모리를 줄여, 컨테이너 사용에 적합하도록 개선된 Java Framework이다.
- v20.0.0부터 Wildfly가 소스에서 제거되었다.
HTTP API 서버 JBoss Undertow JBoss Undertow - Undertow는 Wildfly의 WAS로, 가벼운 웹서버라고 불린다.
(https://undertow.io/)
- Keycloak의 API 끝점을 HTTP로 서브하고, 실제 처리는 JAX-RS로 수행한다.
- Quarkus로 엔진이 바뀌었어도 API는 유지된 것으로 보인다.
ORM Hibernate Hibernate  
AAA Framework JBoss PicketBox Wildfly Elytron - AAA란 인증(Authentication), 인가(Authorization), 감사(Audit) 처리를 이르는 용어이다.
- 11버전 이후로 Elytron으로 바뀌었다. PicketBox와 Elytron의 차이는 최근 개발되었다는 것과, Elytron이 좀 더 모듈화되었다는 점이다.
Cache (In-Memory DB) JBoss Infinispan JBoss Infinispan - JBoss Marshalling을 통해 Cache를 마샬링, 언마샬링하여 데이터 그리드를 관리한다.
- 캐시기능을 이용해 클러스터링 노드 간에 세션 데이터를 빠르게 공유할 수 있다.
Clustering Wildfly Jgroups Wildfly Jgroups - JVM의 클러스터를 관리하는 오픈소스 라이브러리이다. TCP, UDP 등 프로토콜을 이용해 인스턴스 간 메시지 기반으로 인식한다.
- 새 멤버 검색, 메시지 흐름 제어, 멤버 실패 감지, 세션 데이터 공유 등 수행 가능하다.
JAX-RS RESTful API 서버 RESTeasy RESTeasy - Undertow에 의해 실제로 작동되는 API 처리 구현을 담당한다. 
Database Management JPA JPA  

 

'Keycloak' 카테고리의 다른 글

keycloak docker inspection  (0) 2021.05.07
0. Keycloak 이란?  (0) 2021.05.03
Keycloak  (0) 2021.04.30
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.