전체 글200 백준 - 7568 덩치 https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 문제 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p 그리고 y > q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 .. Java - 알고리즘 2022. 8. 18. 웹 네트워크 기본 공부 2) HTTP 알아보기 HTTP 란? HyperText Transfer Protocol 무상태 프로토콜이며 비연결성프로토콜이다 ⇒ Stateless && connectionless image, 음성, 영상, 파일 json, xml 등의 api 이외에도 거의 모든 형태의 데이터 전송 가능 데이터 전달에도 거의 HTTP 사용!! 아주 예외적인 경우 아니면 거의 HTTP 사용!! HTTP 는 아주 다양한 버전이 있으나 1.1 버전이 특히 많이 사용된다. 1) HTTP의 특징 : 무상태 프로토콜 - Stateless 서버가 클라이언트의 상태를 보존X 장점 : 서버 확장성이 높다 단점 : 클라이언트가 추가 데이터 전송 Stateful 과 Stateless 의 차이 Stateful : 상태유지 ⇒ 서버가 클라이언트의 상태 유지 상태가 유.. Java - Spring &&n SpringBoot 2022. 8. 17. 웹 네트워크 기본 공부 1) 네트워크와 웹 브라우저의 요청 흐름 웹 개발자에게 있어서 아마 가장 중요한 것은 자신의 개발 언어 능력일 것이다. 다만 '웹' 개발자이기 때문에 백엔드던 프론트던 결국 네트워크를 지나칠 수는 없다. 오늘은 이런 부분들에 대해서 공부해보려고 한다. 1. IP : 인터넷 프로토콜 지정한 IP 주소 IP Address 에 데이터 전달 패킷(packet) 이라는 통신 단위로 데이터 전달 2. IP 프로토콜의 한계 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 : 중간에 패킷이 사라지거나 패킷이 순서대로 오지 않는 경우도 발생 프로그램 구분 : 같은 IP 를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상인 경우 구분이 힘듦 ⇒ 인터넷으로 2가지 일을 동시에 - 게임&음악 - 하는 경우 정확히 어떤 서비스를 위한.. Java - 기본기 2022. 8. 17. Spring - ArgumentResolver (feat.커스텀 어노테이션, 세션) 1. ArgumentResolver 개념 및 동작 과정 ArgumentResolver 는 Controller 에서 들어오는 데이터(파라미터)를 가공하여 필요한 데이터만 뽑는 로직이 필요할 때 사용한다. 보통 @ModelAttribute 나 @Param 를 사용해서 이러한 처리를 하게 되는데 문제는 이렇게 받았을 때 내가 필요한 정보만 있는게 아니라 다른 정보가 함께 있어서 추가적으로 데이터를 파싱하여 필요한 정보를 뽑아내는 등 추가 작업이 필요한 경우도 있다. 이를 위해서 사용하는 것이 바로 ArgumentResolver 이다! ArgumentResolver 는 HandlerMethodArgumentResolver 를 구현한 구현 클래스를 사용해서 애플리케이션에 맞는 새로운 Resolver 를 만들고, .. Java - Spring &&n SpringBoot 2022. 8. 17. 백준 - 14226 이모티콘 https://www.acmicpc.net/problem/14226 14226번: 이모티콘 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만 www.acmicpc.net 문제 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만들어 보려고 한다. 화면에 있는 이모티콘을 모두 복사해서 클립보드에 저장한다. 클립보드에 있는 모든 이모티콘을 화면에 붙여넣기 한다. 화면에 있는 이모티콘 중 하나를 삭제한다. 모든 연산은 1초가 걸린다. .. Java - 알고리즘 2022. 8. 15. 백준 - 13549 숨바꼭질3 https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 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로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다. 수빈이와.. Java - 알고리즘 2022. 8. 13. 백준 - 12851 숨바꼭질2 https://www.acmicpc.net/problem/12851 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 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. 13. 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. 이전 1 ··· 4 5 6 7 8 9 10 ··· 17 다음