Languages | Frameworks

    How To List Docker Images

    List Docker Images The easiest way to list Docker images is to use the “docker images” with no arguments. When using this command, you will be presented with the complete list of Docker images on your system. $ docker images Alternatively, you can use the “docker image” command with the “ls” argument. $ docker image ls Note that you will have to make sure that you have written “image” and not “i..

    [Spring] 세션 타임아웃

    session은 생성할때마다 메모리를 사용하는데, session.invalidate()를 호출해서 삭제하지 않으면 계속 메모리가 쌓이게 되어 나중엔 메모리 초과를 유래한다.(보통 로그아웃 누르지 않고 브라우저 종료할때) 세션은 기본적으로 메모리에 생성되는데, 메모리의 크기가 무한하지 않기 때문에 꼭 필요한 경우만 생성해서 사용해야 한다. (10만명의 사용자가 로그인하면 10만개의 세션이 생성되는 것임) 그러기 위해선 종료 시점을 정해야 하는데, 어떻게 정하면 좋을까? 가장 단순하게 생각해보면, 세션 생성 시점으로부터 30분 정도로 잡으면 될 것 같다. 그런데 문제는 30분이 지나면 세션이 삭제되기 때문에, 가령 게임을 하다가 30분이 지나면 게임이 꺼지게 될 것이다. 그래서 더 나은 대안은 세션 생성 시..

    [Spring] jsessionid를 url에 노출안시키기(쿠키를 통해서만 세션 유지)

    application.properties에 server.servlet.session.tracking-modes=cookie 추가!

    Cookie를 사용한 로그인/로그아웃(세션쿠키) + 보안

    세션쿠키를 사용하면 브라우저가 종료되기 전까지 웹브라우저에 쿠키정보가 남아있어서 한번 로그인 한 후에는 로그아웃 후에 추가적인 정보입력없이 바로 로그인 할 수 있다. @GetMapping("/login") public String loginForm(@ModelAttribute("loginForm") LoginForm form) { return "login/loginForm"; } @PostMapping("/login") public String login(@Valid @ModelAttribute LoginForm form, BindingResult bindingResult, HttpServletResponse response) { if (bindingResult.hasErrors()) { return "..

    [Java] 추상 클래스와 인터페이스

    추상 클래스(Abstract class)와 인터페이스(Interface)의 차이 및 존재 이유를 설명해주세요. 클래스는 크게 일반 클래스와 추상 클래스로 나뉘는데 추상 클래스는 클래스 내 '추상 메소드'가 하나 이상 포함되거나 abstract로 정의된 경우를 말합니다. 반면 인터페이스는 모든 메소드가 추상 메소드인 경우입니다. (자바 8에서는 default키워드를 이용해서 일반 메소드의 구현도 가능합니다.) 두 개념의 차이는 너무 명확하지만, 하는 일은 비슷합니다 추상 클래스와 인터페이스는 상속받는 클래스 혹은 구현하는 인터페이스 안에 있는 추상 메소드를 구현하도록 강제한다. 이 '하는 일'을 한번 생각해보면 결국 추상 메소드를 구현하는 건데, 그렇다면 추상 클래스 하나만 존재하되, 추상 클래스 안에 추..