# Keycloak 다운로드 및 요구사항

Keycloak을 설치하기 위해서는 먼저 공식 배포판을 다운로드하고, 실행 환경에 필요한 요구사항을 충족해야 한다. 일반적으로 Keycloak은 Java 기반 애플리케이션 서버로 동작하며, 최소한 다음과 같은 요소를 사전에 준비해야 원활한 설치 및 운영이 가능하다.

### 다운로드 경로

* **공식 홈페이지** [Keycloak 공식 사이트](https://www.keycloak.org/)에서 최신 버전을 확인하고, ZIP 또는 TAR.GZ 형식의 설치 파일을 다운로드할 수 있다.
* **GitHub 리포지토리** [Keycloak GitHub 리포지토리](https://github.com/keycloak/keycloak)에서 소스 코드 또는 릴리스 바이너리를 직접 받을 수 있다.
* **Docker 이미지** 컨테이너 환경을 선호하는 경우, Docker Hub에 등록된 [Keycloak 공식 이미지](https://hub.docker.com/r/keycloak)를 이용하여 빠르게 배포할 수 있다.

### 시스템 요구사항

* **운영 체제** Linux, macOS, Windows 등 주요 운영 체제를 지원한다. 프로덕션 환경에서는 보안 업데이트와 패키지 관리를 용이하게 할 수 있는 서버용 Linux OS 사용이 권장된다.
* **Java 버전** Keycloak 최신 버전은 Java 17 이상(일부 이전 버전은 Java 11 이상)을 요구한다. JDK 17 이상을 사전에 설치하여 `JAVA_HOME` 환경 변수를 설정해야 한다.
* **메모리 및 CPU** 최소 512MB\~1GB 정도의 메모리가 권장되나, 실제 서비스 규모에 따라 더 많은 메모리가 필요할 수 있다. 프로덕션 환경에서는 충분한 CPU 코어와 메모리를 준비해야 한다.
* **디스크 용량** 로그 파일, 내부 DB(H2) 사용 시 데이터가 쌓이므로, 여유 디스크 용량을 확보해야 한다. 운영 환경에 따라 외부 DB를 사용하게 되면 애플리케이션 서버가 차지하는 용량 외에 DB 서버가 별도의 용량을 필요로 한다.

### 데이터베이스 호환성

* Keycloak은 기본적으로 테스트 및 임시 사용 목적으로 H2 내장 데이터베이스를 제공한다.
* 프로덕션 환경에서는 PostgreSQL, MySQL, MariaDB, Oracle DB 등 외부 데이터베이스와 연동하는 것이 권장된다. (공식 문서에서 지원 여부 및 호환 버전을 반드시 확인해야 한다.)

### 기타 고려 사항

* **네트워크 및 포트** Keycloak은 기본적으로 8080(또는 8443) 포트를 사용한다. 다른 애플리케이션과의 충돌을 피하기 위해 포트 매핑을 조정하거나 프록시 설정을 고려해야 한다.
* **브라우저 호환성** 관리 콘솔은 최신 Chrome, Firefox, Safari 등 주요 웹 브라우저를 지원한다. 브라우저 버전별로 콘솔 UI나 기능상 차이가 없는지 확인한다.
* **보안 구성** 운영 환경에서 Keycloak을 사용할 때에는 HTTPS 설정, 방화벽 규칙, 리버스 프록시 등을 통해 보안을 강화하는 것이 필수적이다.

이상의 요구사항과 다운로드 경로를 확인한 뒤, 적절한 방법으로 설치 파일 또는 Docker 이미지를 준비하면 Keycloak 설치를 위한 사전 준비가 마무리된다. 이후 설치 과정에서는 선택한 실행 환경(Standalone 모드, Docker, Kubernetes 등)에 따라 추가 설정이 필요할 수 있으므로, 공식 문서 또는 다음 장의 설치 절차를 참고해야 한다.
