웹 어플리케이션은 사용자 데이터를 저장하고 관리하는데 다양한 방법을 제공합니다. 그중 클라이언트 측에서 데이터를 저장하고 관리하기 위한 방법으로 `로컬 스토리지(Local Storage)`, `세션 스토리지(Session Storage)` 그리고 `쿠키(Cookies)`가 있습니다. 로컬 스토리지 (Local Storage) 로컬 스토리지는 브라우저에서 데이터를 영구적으로 저장하는데 사용됩니다. 이 데이터는 브라우저를 종료해도 유지되며, 사용자의 로컬 환경에서 접근이 가능합니다. 주로 사용자 설정과 같은 데이터를 저장하는데 유용합니다. 데이터는 문자열로 저장됩니다. 브라우저마다 별도로 유지되며, 도메인간에 공유되지 않습니다. 저장 용량은 일반적으로 5~10MB이고, 브라우저마다 다를 수 있습니다. 세션 ..
Servlet 서블릿은 자바를 기반으로 한 웹 어플리케이션 개발 기술로, 클라이언트의 요청과 응답을 처리하고 동적인 콘텐츠를 생성하는 역할을 담당합니다. Servlet의 역할 앞서 포스팅한 웹 서버 vs 웹 어플리케이션 서버 vs CGI 프로그램: 차이 쉽게 이해하기 에서 서블릿과 서블릿 컨테이너에 관해 간단하게 설명을 했었습니다. 앞에 내용을 안다는 전제하에 설명을 하도록 하겠습니다. 원래는 클라이언트가 데이터를 전송하기 위해서는 소켓 연결, HTTP 요청 메시지 파싱, Content-Type 확인, HTTP 응답 메시지 생성 등 많은 것들을 직접해주어야 했지만 서블릿을 지원하는 WAS(엄밀히 말하면 WAS안에 포함되어 있는 서블릿 컨테이너)를 사용하면서 비즈니스 로직을 제외한 모든 처리를 서블릿이 해..
Entity는 반드시 `기본 생성자`를 가져야한다. 기본 생성자의 접근 제어자는 `public`, `protected`이어야한다. JPA를 학습할 때 위와 같은 원칙을 본적이 있을 겁니다. 무심코 넘어갔던 개념을 되짚어보기 위해 JPA Entity의 기본 생성자에 대해 포스팅 해보겠습니다. 기본 생성자가 있어야하는 이유? 리플렉션(Reflection)을 통한 객체 생성: JPA는 데이터베이스로부터 엔티티 객체를 생성하여 값을 주입할 때 `Reflection API`를 이용합니다. Reflection API를 통해 객체를 생성하려면 `기본 생성자`가 반드시 필요합니다. JPA는 Entity의 기본 생성자로 객체를 생성한후 Reflection API를 사용하여 값을 매핑합니다. 따라서 Entity에는 기본 ..