직렬화란? Java 직렬화는 객체 또는 데이터를 바이트(byte), 이진 형태로 변환하고, 이를 파일 또는 네트워크를 통해 전송하거나 저장하는 기술입니다. 역직렬화는 바이트로 변환된 데이터를 다시 객체로 변환하는 기술입니다. 이를 통해 다음과 같이 다양한 용도로 사용될수 있습니다. 객체, 데이터의 저장 및 전송: 객체를 파일 시스템에 저장하거나, 네트워크에 전송하기 위해 직렬화를 통해 객체를 바이트 스트림으로 변환하여 저장하거나 전송할 수 있습니다. 이를 통해 객체 및 데이터를 `영속화`할 수 있습니다. 캐시: 객체를 직렬화하여 메모리에 `캐싱`하고 필요할때 역직렬화하여 사용할 수 있습니다. 클러스터링 및 분산시스템: 다른 노드 간에 데이터를 공유하기 위해 직렬화를 사용할 수 있습니다. 직렬화를 통해 데..
Tomcat Clustering (톰캣 클러스터링) Tomcat 클러스터링은 여러 대의 Tomcat 서버를 함께 동작시켜 고가용성과 확장성을 제공하는 기술입니다. 클러스터링을 구성하면 트래픽 분산과 장애 대응을 위해 여러 서버가 협력하여 웹 애플리케이션을 처리할 수 있습니다. `server.xml`에서 기본적인 클러스터 설정: 로드 밸런서 구성: 클러스터링을 위해 로드 밸런서를 설정합니다. 로드 밸런서는 들어오는 요청을 여러 대의 Tomcat 서버로 분산하는 역할을 수행합니다. 일반적으로 Apache HTTP Server나 Nginx와 같은 웹 서버를 로드 밸런서로 사용합니다. 세션 복제 설정과 캐시 설정은 클러스터 내의 Tomcat 서버에서도 동일하게 구성해주어야 합니다. 이 부분은 아래 세션복제 설정..