푼 문제 1647번: 도시 분할 계획 첫째 줄에 집의 개수 N, 길의 개수 M이 주어진다. N은 2이상 100,000이하인 정수이고, M은 1이상 1,000,000이하인 정수이다. 그 다음 줄부터 M줄에 걸쳐 길의 정보가 A B C 세 개의 정수로 주어지는데 A번 www.acmicpc.net 문제 설명 동물원에서 막 탈출한 원숭이 한 마리가 세상구경을 하고 있다. 그러다가 평화로운 마을에 가게 되었는데, 그곳에서는 알 수 없는 일이 벌어지고 있었다. 마을은 N개의 집과 그 집들을 연결하는 M개의 길로 이루어져 있다. 길은 어느 방향으로든지 다닐 수 있는 편리한 길이다. 그리고 각 길마다 길을 유지하는데 드는 유지비가 있다. 임의의 두 집 사이에 경로가 항상 존재한다. 마을의 이장은 마을을 두 개의 분리된..
푼 문제 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 문제 설명 언제나 최고만을 지향하는 굴지의 대기업 진영 주식회사가 신규 사원 채용을 실시한다. 인재 선발 시험은 1차 서류심사와 2차 면접시험으로 이루어진다. 최고만을 지향한다는 기업의 이념에 따라 그들은 최고의 인재들만을 사원으로 선발하고 싶어 한다. 그래서 진영 주식회사는, 다른 모든 지원자와 비교했을 때 서류심사 성적과 면접시험 성적 중 적어도 하나가 다른 지원자보다 떨어지지 않는 자만 선발한다는 원칙을 세웠다. 즉, 어떤 지..
TIL - doFilter 메소드에 대해서 개발하면서 매우 궁금했던 게 바로 chain.doFilter(request, response); 메소드였다. JwtAuthorizationFilter에 존재하는 이 doFilter는 도대체 무엇을 하는 애일까? 내 첫 번째 TIL에서 공부했던 게 바로 doFilter 안의 인자로 들어가는 HttpServletRequest request와 HttpServletResponse response였는데, 얘들은 일종의 요청과 응답을 나타내는 객체라는 것을 알게되었다. 그러나 이제 궁금한 점은 그렇다면 요청과 응답을 동시에 가지고 있는 doFilter 메소드는 무엇을 하는 것 인지였다. oracle에 따르면, 필터는 리소스(서블릿 또는 정적 콘텐츠)에 대한 요청이나 리소스..
Spring Bean Life Cycle에 대해서 Spring에서 빈이 만들어지고, DI로 사용된다는 것은 알고 있었다. 그런데 전체적으로 Spring Bean Life Cycle에 대해서는 잘 모르는 것 같아서 이번에 새롭게 정리해보려고 한다. 간단하게 정리하자면, bean은 다음과 같은 라이프 사이클을 거친다. 스프링 컨테이너 시작 -> 스프링 빈 초기화 -> 의존관계 주입(DI) -> init() -> 유틸리티 -> destory() -> 스프링 종료라는 라이프 사이클을 거치는데, 더 디테일한 전체 flow는 다음과 같다. 패키지 스캐닝이 있는 어노테이션(@Bean, @Controller, @RestController, @Service, @Repository, @Component)이나 XML 등으로..
스프링 서블릿(Servlet)에 대해 Spring Boot로 코드를 짜다가 어느 날 든 생각. 도대체 HttpServletRequest request와 HttpServletResponse response가 무엇일까? 그동안 막연하게 request와 response일 것이라고 생각하고 있었지, 정작 이 중간에 있는 단어, Servlet 이 무엇인지에 대해서는 별로 관심이 없었다. 조사해 보니, Spring MVC는 중앙 Servlet인 DispatcherServlet를 중심으로 디자인되었다고 한다. DispatcherServlet는 사용자의 요청을 처리하기 위한 shared algorithm를 제공한다. DispatcherServlet은 Spring 기반 웹 애플리케이션의 Front Controller 역..