본문 바로가기

Study/Java & Spring

(3)
해시(Hash)란? 해시(Hash)란? Hash는 데이터를 다루는 과정에서 빠르게 데이터에 접근하기 위해 사용되는 기술이다. Hash는 어떤 값을 고정된 크기의 값(해시 값)으로 변환된 결과를 말한다. 이 과정에서 사용되는 함수를 Hash Function라고 한다. 해시 함수(Hash Function) 해시 함수(Hash function)는 입력받은 데이터를 고정된 크기의 값으로 변환해 주는 함수를 말한다. 자바에서는 Object 클래스에 hashCode() 메서드를 통해 해시 코드를 제공하며 객체의 메모리 주소를 기반으로 한 정수 값을 반환한다. 해시 충돌(Hash Collision) 해시 함수를 보면 고정된 크기의 값으로 변환해 준다는 내용이 있다. 만약 입력값이 크든 작든 고정된 값을 변환해 주기 때문에 같은 해시 값..
체크 예외 & 언체크(런타임 예외) 1. 예외와 에러 에러(Error)란 메모리 부족, 시스템 오류와 같이 복구 불가능한 예외이다. 예측하기 어렵고 대응 방안도 없기 때문에 처리가 불가능하다. 반면 예외(Exception)는 발생하더라도 수습될 수 있는 비교적 덜 심각한 것이며 이를 예측하여 예외처리가 가능하다. 예외(Exception)는 체크 예외와 언체크 예외로 두 가지로 구분된다. 2. 체크 예외 애플리케이션 로직에서의 최상위 예외이며 RuntimeException을 상속받지 않는 예외들이다. 컴파일 시점에서 체크가 가능하며 개발자의 실수에도 IDE에서 확인이 가능하다. 예외는 try-catch로 예외를 처리하거나 throws로 던지지 않으면 컴파일 오류가 발생한다. 예를 들어 Controller-Service-Repository에서..
필터(Filter), 인터셉터(Interceptor) Spring은 공통 관심사를 처리해 중복 코드를 줄이는 여러 기능을 제공한다. 그중 필터, 인터셉터에 대해서 알아보려고 한다. 1. 필터(Filter) 필터는 클라이언트의 요청이 서블릿에 도달하기 전, 그리고 서블릿에서 응답이 클라이언트에게 돌아가기 전에 실행되며 미리 정의한 url 패턴에 맞는 모든 요청에 대한 부가작업을 처리하는 기능을 제공한다. 스프링이 아닌 서블릿에서 제공하는 기술이다. public interface Filter { public default void init(FilterConfig filterConfig) throws ServletException {} public void doFilter(ServletRequest request, ServletResponse response, ..