프로그래밍 언어/JAVA 2

Java 직렬화와 NotSerializableException 문제

1. 들어가며Java 개발을 하다 보면 직렬화(Serialization)는 네트워크 통신, 파일 저장, 캐시 관리와 같은 작업에서 중요한 역할을 합니다. 그러나 직렬화 과정에서 **NotSerializableException**과 같은 예외를 만날 수 있습니다. 특히, HttpSession 또는 세션에서 가져온 데이터를 사용하는 객체를 직렬화할 때 문제가 자주 발생합니다.이 글에서는 세션에서 데이터를 가져와 사용하는 객체에서 발생한 직렬화 이슈를 중심으로 원인과 해결 방법을 소개합니다. 2. 문제 상황아래는 세션에서 데이터를 가져와 사용하는 객체를 직렬화하려다 발생한 예외 상황입니다.Object obj = this.request.getSession().getAttribute("vis"); 위 코드에서 v..

Java로 TCP 프록시 서버 구현하기 - 라운드 로빈 로드밸런싱을 활용한 백엔드 서버 연결

소개멀티스레드 환경에서 다수의 TCP 요청을 처리하고, 이를 백엔드 서버로 효율적으로 분배하는 TCP 프록시 서버를 구축하는 방법을 소개합니다. 이 프로젝트는 Java의 강력한 네트워크 라이브러리와 라운드 로빈 로드밸런싱 알고리즘을 활용해 간단하고 효율적인 로드밸런싱을 구현합니다. 1. 프로젝트 개요목표TCP 요청을 처리하는 프록시 서버를 구축.백엔드 서버 그룹으로 요청을 분배.라운드 로빈 알고리즘을 통해 요청을 균등하게 분배.멀티스레드를 활용해 여러 클라이언트 요청을 동시에 처리.구성클라이언트: TCP 요청을 보냄.프록시 서버: TCP 요청을 수신하고 백엔드 서버로 전달.백엔드 서버 그룹: 요청을 처리하고 결과를 반환.2. 라운드 로빈 로드밸런싱로드밸런싱이란?로드밸런싱은 다수의 서버에 작업을 균등하게 ..