분류 전체보기205 Spring - 스프링 인터셉터(3) 스프링 인터셉터 개념과 로그 남기기 스프링 인터셉터란? 스프링 인터셉터는 사실상 서블릿 필터와 동일한 기능을 제공한다. 다만 서블릿 필터가 서블릿이 제공하는 기술이라면, 스프링 인터셉터는 스프링MVC 가 제공하는 기술로 적용되는 순서와 범위, 사용방법이 다르다. 스프링 인터셉터를 위해서는 HandlerInterceptor 인터페이스를 구현한다. 또한!! 스프링에서 제공하는 만큼 서블릿 필터보다 더 강력하고 좋다 스프링 인터셉터의 동작 HTTP 요청 → WAS → 필터 → 서블릿 → 스프링 인터셉터 → 컨트롤러 스프링 인터셉터는 디스패쳐 서블릿과 컨트롤러 사이에서 컨트롤러 직전에 호출된다 ⇒ 따라서 서블릿 필터 뒤에 실행된다 스프링 인터셉터는 결국 MVC 에서 제공하는 기능이기 때문에 결국 디스패쳐 서블릿 이후에 등작하게 된다. 이는 스프링.. Java - Spring &&n SpringBoot 2022. 8. 13. Spring - 서블릿 필터 다루기(2) : 로그인 여부 체크, 로그인 여부에 따른 페이지 접근 서블릿 로그인 필터 만들기 로그인을 했을 경우에만 특정한 페이지 접근을 허용하도록 하는 서블릿 필터 whiteList 배열은 로그인 없이 접근 가능한 페이지들를 모아놓은 배열이다. doFilter 에서는 getRequestURI 를 통해서 서버로 요청된 uri 를 확인한다. 확인한 uri 에 대해서 isLoginCheckPath 메서드가 실행되는데 이 메서드를 통해서 해당 uri 가 whiteList - 접근 가능한 uri - 에 해당하는지 여부를 판단한다. 만약 isLoginCheckPath 가 true 를 출력한다면 해당 uri 는 로그인해야만 접근 가능한 uri 로 판정되고 다시 session 을 통해 세션의 null 여부와 session 안에 담긴 값을 조사한다. 즉 whiteList 배열에 속한.. Java - Spring &&n SpringBoot 2022. 8. 12. Spring - 서블릿 필터와 스프링 인터셉터(1) 서블릿필터, 서블릿 필터를 사용한 로그 찍기 스프링 시큐리티와 서블릿 필터 && 스프링 인터셉터 최근 학원에서 파이널 프로젝트를 끝내면서 스프링 시큐리티를 다뤄서 소셜 로그인을 구현한 경험이 있다. 사실 그 당시에는 서블릿 필터도 스프링 인터셉터도 모르고 그저 '구현' 하는데 급급해서 동작 원리나 방법 등을 모르고 그냥 지나쳤다. 웃기게도 그렇게 허겁지겁 만들었던 것도 도움이 되었던건지 이번에 서블릿 필터와 스프링 인터셉터를 공부하면서 오히려 스프링 시큐리티가 어떻게 구현되는지 알 수 있었던 것 같다. 결국 스프링 시큐리티에서 동작하는 여러 기능들 - 로그인 중간에서 인터셉터해서 DB 와 비교하고, 패스워드를 확인하고, 권한을 확인하거나 로그인 여부에 따라서 페이지 이동, 권한 수준에 따른 페이지 접근 등 - 서블릿 필터와 스프링 인터셉터의 기능들.. Java - Spring &&n SpringBoot 2022. 8. 11. Spring Session 다루기 : 세션 정보, 세션 타임 아웃 설정 Session 에 담긴 정보 가져오기 Session 에는 해당 세션의 id, 세션이 살아있을 수 있는 최대 시간, 세션 생성 시간, 마지막 세션 접근 시간 이 있다. 각각 아래와 같이 get 메서드로 해당 내용을 가져올 수 있다. @GetMapping("/session-info") public String sessionInfo(HttpServletRequest req) { HttpSession session = req.getSession(false); if (session == null) { return "세션이 없습니다"; } log.info("sessionId = {}", session.getId()); log.info("getMaxInactiveInterval={}", session.getMaxIn.. Java - Spring &&n SpringBoot 2022. 8. 11. 백준 1679 - 숨바꼭질 BFS https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의.. Java - 알고리즘 2022. 8. 9. 백준 16953 - A - > B https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 문제 정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다. 2를 곱한다. 1을 수의 가장 오른쪽에 추가한다. A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자. 입력 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. 출력 A를 B로 바꾸는데 필요한 연산의 최솟값에 1을 더한 값을 출력한다. 만들 수 없는 경우에는 -1을 출력한다. 예제 2 162 예제 출력 5 풀이방법 이 문제는 문제 풀이 방법은 쉽게 떠오르지만, 코드를 짜기는 어려운...그런 문제 중 하나였다. 특히 다른 부분보다 값.. Java - 알고리즘 2022. 8. 9. Spring Boot - 회원가입 시 인증 메일 발송(feat.네이버 이메일 연결) 오늘은 학원에서 파이널 프로젝트때 사용했던 사이트 회원 가입 시 인증 메일을 발송하는 부분을 정리해볼까 한다. 당연히 SpringBoot 를 사용하였고, Gradle 을 사용해서 라이브러를 import 하였다. 본 포스티에 사용된 모든 코드는 아래 git 에서 확인 가능합니다 https://github.com/SeJonJ/GoodJob GitHub - SeJonJ/GoodJob: 취업정보 제공 GoobJob 사이트 취업정보 제공 GoobJob 사이트. Contribute to SeJonJ/GoodJob development by creating an account on GitHub. github.com 1. Spring 라이브러리 다운받기 Spring 에서 메일 서버와 연결해서 메일을 보내는 작업을 하는.. Java - Spring &&n SpringBoot 2022. 8. 8. SpringBoot 를 사용한 실시간 아이디 중복 검사(feat.ajax, jsp) https://terianp.tistory.com/95 데이터 전달의 꽃 AJAX 다루기 - JS, JQuery, jsp(feat. 실시간 아이디 중복검사) 사실 ajax 를 몇번인가 사용했는데 이에 대한 정리가 하나도 없다는걸 깨달아서 마음먹고 정리해봤습니다. 순서상 JQuery 를 먼저 정리하고 정리해야하는데 jquery 는 다음 글부터 정리해야할듯ㅠㅠ terianp.tistory.com 이전에 AJAX 를 다루면서 실시간 아이디 실시간 중복 검사 코드를 짜 보았다. 그런데 이전의 코드에서는 살짝 아쉬운? 부족한 점이 보인다. 바로 spring 을 사용하지도 않았고, 오직 JSP 로만 구현했었다는 점이다. 물론 이렇게 구현해도 크게 상관은 없다. 왜냐? 어쨌든 코드는 잘 동작하니까ㅎㅎ 다만 당연히도 .. Java - Spring &&n SpringBoot 2022. 8. 4. Spring MVC 패턴 && dispatcher MVC 패턴이란? MVC 패턴은 모델 2 방식이라고도 불림 Controller : 요청 request 가 들어온 후 Model 에서 만들어진 데이터를 다음에 어디로 넘길지 지정해주는 역할 View : Controller 를 통해 전달받아온 데이터를 클라이언트 화면에 보여주는 역할 Model : 데이터를 만들거나 데이터를 비교하거나 DB 에서 데이터를 가져오는 등 의 작업을 하는 역할 MVC 에 대해서 기억해야하는 것들 Model 과 controller 에서 페이지를 이동할때는 파라미터를 달아서 넘길 수 없음? 따라서 파라미터 대신 setAttr 을 이용해서 내용을 담아서 값을 넘김 Model 은 execute 를 사용함. 이때 execute 는 HttpServletRequest, HttpServletRe.. Java - Spring &&n SpringBoot 2022. 7. 18. 백준 1303 : 전투 DFS BFS 풀이 https://www.acmicpc.net/problem/1303 1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net 문제 전쟁은 어느덧 전면전이 시작되었다. 결국 전투는 난전이 되었고, 우리 병사와 적국 병사가 섞여 싸우게 되었다. 그러나 당신의 병사들은 흰색 옷을 입고, 적국의 병사들은 파란색 옷을 입었기 때문에 서로가 적인지 아군인지는 구분할 수 있다. 문제는 같은 팀의 병사들은 모이면 모일수록 강해진다는 사실이다. N명이 뭉쳐있을 때는 N2의 위력을 낼 수 있다. 과연 지금 난전의.. Java - 알고리즘 2022. 7. 17. 백준 : 2468 안전 영역 https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 문제 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역이 최대로 몇 개가 만들어 지는 지를 조사하려고 한다. 이때, 문제를 간단하게 하기 위하여, 장마철에 내리는 비의 양에 따라 일정한 높이 이하의 모든 지점은 물에 잠긴다고 가정한다. 어떤 지역의 높이 정.. Java - 알고리즘 2022. 7. 14. Spring Boot && MyBatis without xml : 스프링 부트와 마이 바티스 연동(xml 설정 빼고!) 공부하면서 꼭 조심해야하는 부분! SPRING BOOT 의 경우 CONTROLLER 을 포함한 모든 어노테이션이 달린 패키지들은 @SpringBootApplication 가 달린 클래스가 있는 패키지의 밑에, 즉 기본적으로 가장 먼저 생성되는 클래스 패키지의 밑에 위치해야한다! ⇒ 이거 땜시오류가 잡는데 오래걸렸습니다ㅠ MY BATIS 에서 LIKE 문을 사용하는 경우 DB 종류에 따라서 서로 다른 문법을 사용한다. MySQL SELECT * FROM DEPT WHERE dname like LIKE CONCAT(‘%’, #{dname}, ‘%’) ORACLE SELECT * FROM DEPT WHERE dname like '%'||#{dname}||'%' MS-SQL SELECT * FROM DEPT W.. Java - Spring &&n SpringBoot 2022. 7. 12. 이전 1 ··· 5 6 7 8 9 10 11 ··· 18 다음 728x90 반응형