본문 바로가기

전체 글97

쿠키(cookie) 저장 및 삭제 쿠키(cookie)란? 쿠키는 서버를 대신해 웹 브라우저에서 요청할때 그 정보를 서버에 보내 사용자를 식별 할수 있게 도와줍니다. 쿠키는 사용자의 웹 브라우저에 저장되고 데이터 형태는 Key, Value 형태로 방문자의 물리적인 저장소(HDD, SSD)와 브라우저에 저장됩니다. 쿠키를 사용하는 곳 쿠키는 주로 최근에 본 페이지나, 아이디 저장등을 저장할 수 있도록 합니다. 인증 관련된 정보, 세션에 저장된 토큰 값 등 보안에 필요한 정보를 저장할 수도 있습니다. 쿠키 자바스크립트 사용 예제 쿠키 설정 function setCookie(name, value, expiredays) { var today = new Date(); today.setDate(today.getDate() + expiredays); .. 2022. 12. 29.
Spring @Aspect를 사용하여 어드바이저 생성 기능 사용 스프링 애플리케이션에 프록시를 적용하려면 포인트컷과 어드바이스로 구성되어 있는 어드바이저 ( Advisor )를 만들어서 스프링 빈으로 등록하면 된다. 그러면 나머지는 앞서 배운 자동 프록시 생성기가 모두 자동으로 처리해준다. 자동 프록시 생성기는 스프링 빈으로 등록된 어드바이저들을 찾고, 스프링 빈들에 자동으로 프록시를 적용해준다. (물론 포인트컷이 매칭되는 경우에 프록시를 생성한다.) 스프링은 @Aspect 애노테이션으로 매우 편리하게 포인트컷과 어드바이스로 구성되어 있는 어드바이저 생성 기능을 지원한다. 지금까지 어드바이저를 직접 만들었던 부분을 @Aspect 애노테이션을 사용해서 만들어보자. LogTrace.java public interface LogTrace { TraceStatus begin.. 2022. 12. 24.
스프링이 지원하는 프록시 스프링이 지원하는 프록시를 사용하는 이유 1. 스프링은 유사한 구체적인 기술들이 있을 때, 그것들을 통합해서 일관성 있게 접근할 수 있고, 더욱 편리하게 사용할 수 있는 추상화된 기술을 제공한다. 스프링은 동적 프록시를 통합해서 편리하게 만들어주는 프록시 팩토리 (ProxyFactory)라는 기능을 제공한다. 이전에는 상황에 따라서 JDK 동적 프록시를 사용하거나 CGLIB를 사용해야 했다면, 이제는 이 프록시 팩토리 하나로 편리하게 동적 프록시를 생성할 수 있다. 2. 두 기술을 함께 사용할 때 부가 기능을 적용하기 위해 JDK 동적 프록시가 제공하는 InvocationHandler와 CGLIB가 제공하는 MethodInterceptor를 각각 중복으로 만들어야 되는 문제가 있는데 스프링은 Advice.. 2022. 12. 11.
[JAVA] Multi Thread 환경에서 Singleton 패턴을 Thread Safe 하게 만들기 public class DBConnectionInfo { private String url = ""; private String encoding = ""; private String maxActive = ""; private String maxIdle = ""; private String minIdle = ""; // getter/setter 생략 } DB정보를 가지고 있는 클래스 위 클래스를 다양한 방법의 Singleton Pattern으로 설계해보자. 1. Eager Initialization private static DBConnectionInfo DBConnectionInfoInstance = new DBConnectionInfo(); private DBConnectionInfo() {} publ.. 2022. 11. 19.
[Spring]스프링 시큐리티 퍼옴 xml 사용안하는 버젼 1. 스프링 시큐리티란 무엇인가? 스프링 시큐리티 레퍼런스에서는 자바 EE 기반의 엔터프라이즈 소프트웨어 애플리케이션을 위한 포괄적인 보안 서비스들을 제공하고 오픈 플랫폼이면서 자신만의 인증 매커니즘을 간단하게 만들 수 있다고 합니다. 스프링 시큐리티를 이해하기 위해서는 스프링 시큐리티가 애플리케이션 보안을 구성하는 두가지 영역에 대해서 알아야 합니다. 바로 인증(Authentication)과 권한(Authorization)이라는 것입니다. 이 두 영역은 스프링 시큐리티의 목표이기 때문에 반드시 이해하고 넘어가야 합니다. 인증은 애플리케이션의 작업을 수행할 수 있는 주체(사용자)라고 주장할 수 있는 것을 말하며 권한은 인증된 주체가 애플리케이션의 동작을 수행할 수 있도록 허락되있는지를 결정하는 것을 말합.. 2022. 11. 13.
[Spring] 프록시, 프록시 패턴, 데코레이터 패턴 클라이언트와 서버 클라이언트는 서버에 필요한 것을 요청하고, 서버는 클라이언트의 요청을 처리하는 것이다. 그런데 클라이언트가 요청한 결과를 서버에 직접 요청하는 것이 아니라 어떤 대리자를 통해서 대신 간접적으로 서버에 요청할 수 있다. 예를 들어서 내가 직접 마트에서 장을 볼 수도 있지만, 누군가에게 대신 장을 봐달라고 부탁할 수도 있다. 여기서 대신 장을 보는 대리자를 영어로 프록시(Proxy)라 한다. 예시 엄마에게 라면을 사달라고 부탁 했는데, 엄마는 그 라면은 이미 집에 있다고 할 수도 있다. 그러면 기대한 것 보다 더 빨리 라면을 먹을 수 있다. (접근 제어, 캐싱) 아버지께 자동차 주유를 부탁했는데, 아버지가 주유 뿐만 아니라 세차까지 하고 왔다. 클라이언트가 기대한 것 외에 세차라는 부가 기.. 2022. 11. 12.