전체 글 682

[SpringMVC] HTTP 메시지 컨버터 동작원리

JSON 데이터를 JAVA 환경에서 사용하는 방법이다. HTTP Body 영역의 데이터를 InputStream 객체로 이진데이터를 가지고 온 후, 인코딩하고 문자열로 변환하면 JAVA 환경에서 사용가능한 데이터 타입이 된다. 이제 ObjectMapper 객체로 문자열로 표현된 JSON 데이터를 JAVA 객체로 생성하면 된다. 이처럼 HTTP Body 영역의 있는 데이터를 가져오려면 복잡한 과정을 거친다. 반면, GET이나 POST 같은 방식은 Request 객체에서 getParameter 메소드를 제공하기 때문에 JAVA환경에서 바로 사용 가능하지만 그 외 데이터는 HTTP Body 영역에서 직접 가져와야 한다. 응답 또한 마찬가지이다. 응답에 필요한 데이터를 Body 영역에 직접 넣어주어야 한다. 이런..

Dev/SPRING 2023.08.15

[SpringMVC] HTTP 응답 - Controller 반환타입

[SpringMVC] 응답(Response)의 종류 ( Text, Html, Json ) [SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹서비스에서 Request(요청)가 처리되는 원리 ( + Servlet ) JAVA Runtime Enviroment(JRE)는 하나의 프로세스, 다수의 스레드 환경이다. JVM은 하나의 프로 lordofkangs.tistory.com 지난 포스팅에서 서버에서 클라이언트로 보내는 응답(Response)의 종류에 대해서 다루어 보았다. 응답의 종류는 크게 2가지로 나뉜다. 웹브라우저(Client)는 HTML로 화면을 그린다. HTML을 어디서 동적으로 렌더링하느냐에 따라, 서버의 응답이 달라진다. 1) 서버에서 ..

Dev/SPRING 2023.08.14

[PS] BOJ2212 센서 ( Greedy ) with JAVA

2212번: 센서 첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있 www.acmicpc.net ◎ 문제풀이 집중국에서 고속도로 위 센서를 관리할 때, 집중국이 관리할 수 있는 센서간 거리의 합의 최소값을 구하는 문제이다. 센서간 거리의 합이 최소가 되려면 두 개의 센서 사이의 거리가 가장 큰 곳을 기준으로 나누면 된다. 7개의 센서를 2개의 집중국으로 나눈다고 한다면, 센서3과 센서6 사이가 최대이므로 두 세선 사이를 기준으로 영역을 나눈다. 그러면 두개의 집중국이 관리하는 수신 가능한 영역의 거리의 합이 최소가 된다. ◎ 코드 ..

문제풀이 2023.08.14

[SpringMVC] HTTP 요청 메시지 - TEXT, JSON

[SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹서비스에서 Request(요청)가 처리되는 원리 ( + Servlet ) JAVA Runtime Enviroment(JRE)는 하나의 프로세스, 다수의 스레드 환경이다. JVM은 하나의 프로세스로 동작하고 다수의 스레드로 병렬처리 lordofkangs.tistory.com 지난 포스팅에서 요청데이터가 전달되는 종류를 알아 보았다. GET 방식은 Header에 담기고 POST, JSON, TEXT는 BODY에 담겨 전달된다. GET과 POST 방식은 담기는 위치만 다를뿐, 전달되는 데이터 형식이 같다. 그리고 HttpServletRequest의 getParameter 메소드로 요청 데이터가 추출되는..

Dev/SPRING 2023.08.12

[SpringMVC] HTTP 요청 파라미터 - @ModelAttribute

[SpringMVC] HTTP 요청 파라미터 - @RequestParam [SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹서비스에서 Request(요청)가 처리되는 원리 ( + Servlet ) JAVA Runtime Enviroment(JRE)는 하나의 프로세스, 다수의 스레드 환경이다. JVM은 하나의 프로 lordofkangs.tistory.com 지난 포스팅에서 GET, POST 같은 방식으로 요청이 들어오는 경우, @RequestParam 어노테이션으로 요청 데이터를 가져오는 과정을 다루어 보았다. Handler, 즉 Controller는 Request 객체에 직접 의존하지 않고 HandlerAdapter에게 파라미터로 필요한 데이터를..

Dev/SPRING 2023.08.11

[SpringMVC] HTTP 요청 파라미터 - @RequestParam

[SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹서비스에서 Request(요청)가 처리되는 원리 ( + Servlet ) JAVA Runtime Enviroment(JRE)는 하나의 프로세스, 다수의 스레드 환경이다. JVM은 하나의 프로세스로 동작하고 다수의 스레드로 병렬처리 lordofkangs.tistory.com 지난 포스팅에서 GET, POST 방식의 경우, 요청 데이터를 HttpServletRequest 객체의 getParameter 메소드로 가져온다고 말했다. @RequestMapping("/request-param-v1") // HttpServlet 사용하기 public void requestParamV1(HttpServletRe..

Dev/SPRING 2023.08.11

[SpringMVC] HTTP 요청 파라미터 - @RequestHeader

[SpringMVC] @RequestMapping, @Controller [SpringMVC] HandlerAdapter [SpringMVC] MVC 패턴 구현하기(4) - Adapter [SpringMVC] MVC 패턴 구현하기(1) - View [SpringMVC] 응답(Response)의 종류 ( Text, Html, Json ) [SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹 lordofkangs.tistory.com 지난 포스팅에서 현재 가장 많이 사용되고 있는 어노테이션 기반 컨트롤러에 대해서 다루어 보았다. 어노테이션 기반 컨트롤러는 다양한 파라미터를 제공하고 있다. 이번 포스팅에서는 요청의 헤더정보를 가져오는 방법에 대해서 다루..

Dev/SPRING 2023.08.11

[PS] BOJ9663 N-Queen ( BackTracking ) with JAVA

9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net ◎ 문제풀이 NxN의 체스판에 서로를 잡지 않을 위치에 N개의 퀸을 배치할 수 있는 경우의 수를 구하는 문제이다. 퀸은 행, 열, 대각선 방향으로 이동한다. 그러므로 행을 기준으로 하나의 행에는 하나의 퀸만 위치할 수 있다. ( ROW1, COL1 )에 퀸이 위치한다면 ROW2에는 COL3, COL4, COL5에 퀸이 위치할 수 있다. 모든 경우의 수를 완전탐색하는 방법에는 대표적으로 반복문과 재귀호출이 있다. 재귀호출의 장점은 메소드가 반복 호출되면서 이전의 데이터를 간직한다..

문제풀이 2023.08.11

[SpringMVC] @RequestMapping의 다양한 속성

[SpringMVC] @RequestMapping, @Controller [SpringMVC] HandlerAdapter [SpringMVC] MVC 패턴 구현하기(4) - Adapter [SpringMVC] MVC 패턴 구현하기(1) - View [SpringMVC] 응답(Response)의 종류 ( Text, Html, Json ) [SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹 lordofkangs.tistory.com 지난 포스팅에서 @RequestMapping을 다루어 보았다. @RequestMapping은 Handler(Controller)임을 명시하는 어노테이션으로, 하나의 Handler(Controller)에 여러 개의 메소드를..

Dev/SPRING 2023.08.10

[SpringMVC] @RequestMapping, @Controller

[SpringMVC] HandlerAdapter [SpringMVC] MVC 패턴 구현하기(4) - Adapter [SpringMVC] MVC 패턴 구현하기(1) - View [SpringMVC] 응답(Response)의 종류 ( Text, Html, Json ) [SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹서비스에서 Request(요 lordofkangs.tistory.com 지난 포스팅에서 HandlerAdapter를 다루면서 @RequestMapping으로 선언된 Handler를 알아보았다. DispatcherServlet은 4가지 HandlerAdapter에 접근 가능하다. 그중 우선순위가 가장 높은 HandlerAdapter는 Re..

Dev/SPRING 2023.08.10