Query Parameter는 URL의 일부로 포함되어서 서버에 전달되는 key-value 쌍을 말합니다.@GetMapping("/search")public List searchProducts(@RequestParam(name = "q") String query, @RequestParam(name = "page", defaultValue = "1") int page) { // 검색 쿼리와 페이지 번호를 사용하여 상품 목록 조회 return productService.searchProducts(query, page);} 위 코드에서 @RequestParam을 사용하여 q 쿼리 파라미터와 page 쿼리 파라미터를 받고 있습니다.클라이언트..
invalidate() invalidate() 메서드는 Java의 "HttpSession 클래스"에서 제공되는 메서드입니다. 이 메서드는 현재 세션을 무효화하고, 세션과 관련된 모든 데이터를 삭제합니다.일반적으로 사용자가 로그아웃할 때 세션을 무효화하는 데 사용됩니다. 이를 통해 사용자의 정보가 더 이상 서버에 저장되지 않도록 하여 보안을 강화할 수 있습니다.@Controllerpublic class LogoutController { @GetMapping("/logout") public String logout(HttpServletRequest request) { // 현재 세션 객체 가져오기 HttpSession session = request.getSession(f..
Optional 클래스는 null을 안전하게 처리할 수 있도록 다양한 메서드를 제공합니다. ( NullPointerException을 방지) 1.Get()Optional optionalString = Optional.of("Hello");String value = optionalString.get(); // "Hello" get(): Optional 객체에 저장된 값을 반환합니다. 값이 없는 경우 NoSuchElementException이 발생합니다.2.IsPresent()Optional optionalString = Optional.of("Hello");if (optionalString.isPresent()) { System.out.println(optionalString.get()); // "H..

httpSession 객체를 이용하여 로그인을 한 뒤에 로그아웃을 해야할 때,세션의 정보를 제거하기 위해 취하는 방법으로 HttpSession의 removeAttribute()와 invalidate() 메서드가 존재한다.invalidate() 메서드는 사전적 의미로는 무효화한다라는 의미를 지녔고, 기능은 세션 자체를 무효화 하고 제거를 한다.removeAttribute는 세션에 등록된 자바 세션 저장형태인 Map형태의 저장형태를 가지게 되는데, 이때 가지고 온 session의 특정 정보인 key-value만 제거한다.따라서 removeAttribute로 키만 제거하게 되면 HttpSession 인스턴스는 Was의 세션 저장소에 남아 있기 때문에 invalidate()를 사용하는 것이 좋다.

Spring FrameworkSpring Framework는 Java 애플리케이션 개발을 위한 포괄적인 프레임워크입니다.특징의존성 관리, 웹 개발, 데이터 액세스, 보안 등 다양한 기능을 제공합니다.개발자가 직접 구성 및 설정해야 하는 부분이 많습니다.애플리케이션 개발 시 필요한 의존성을 직접 관리해야 합니다.사용 이유복잡한 애플리케이션 개발에 적합합니다.개발자가 직접 프레임워크 구성을 제어할 수 있고,다양한 기능과 확장성을 필요로 하는 경우에 사용됩니다.Sprign BootSpring Boot는 Spring Framework 기반의 빠른 애플리케이션 개발을 지원하는 프레임워크입니다.특징자동 구성 기능으로 개발 시간을 단축할 수 있고,내장 웹 서버(Tomcat, Jetty 등)를 제공하여 별도의 서버 설..

Connection poolConnection Pool은 데이터베이스 연결을 미리 생성하고 관리하는 기술입니다.why성능 향상: 데이터베이스 연결을 생성하는 것은 비용이 많이 드는 작업입니다. Connection Pool을 사용하면 미리 연결을 생성해두고 재사용할 수 있기 때문에 응답 시간이 빨라집니다.리소스 관리: 데이터베이스 연결은 제한된 리소스입니다. Connection Pool을 사용하면 연결을 효율적으로 관리하여 리소스 고갈을 방지할 수 있습니다.연결 지속성: Connection Pool은 연결을 유지하여 연결 수명 주기를 관리합니다. 이를 통해 연결이 자주 끊기는 것을 방지할 수 있습니다.import com.zaxxer.hikari.HikariConfig;import com.zaxxer.hik..

DML/DDL/DCLDML, DDL, DCL은 SQL에서 사용되는 주요 명령어 집합입니다. DML (Data Manipulation Language)은 데이터 조작 언어로, 데이터베이스 내의 데이터를 생성, 읽기, 수정, 삭제하는 데 사용됩니다.대표적인 DML 명령어:SELECT: 데이터를 조회하는 명령어INSERT: 새로운 데이터를 추가하는 명령어UPDATE: 기존 데이터를 수정하는 명령어DELETE: 데이터를 삭제하는 명령어DDL (Data Definition Language)은 데이터 정의 언어로, 데이터베이스 객체(테이블, 뷰, 인덱스 등)를 생성, 수정, 삭제하는 데 사용됩니다.대표적인 DDL 명령어:CREATE: 새로운 데이터베이스 객체를 생성하는 명령어ALTER: 기존 데이터베이스 객체를 수..

HashCodeHashCode는 객체의 고유한 정수 값을 나타내는 메서드입니다. 이 값은 객체를 식별하는 데 사용되며, 특히 해시 테이블과 같은 자료 구조에서 중요한 역할을 합니다.why빠른 검색: HashCode를 사용하면 해시 테이블에서 객체를 빠르게 찾을 수 있습니다. 해시 테이블은 HashCode 값을 사용하여 객체를 저장하고 검색합니다.중복 확인: HashCode를 사용하면 두 객체가 같은지 빠르게 확인할 수 있습니다. 두 객체의 HashCode 값이 같다면, 두 객체가 같을 가능성이 높습니다.데이터 구조 활용: HashCode는 Set, HashMap, Hashtable 등의 자료 구조에서 객체를 식별하는 데 사용됩니다.public class Person { // 이 클래스는 사람 객체를..