분류 전체보기 83

[Spring] HTTP 메시지 컨버터 (HttpMessageConverter)

HTTP 메시지 컨버터 HTTP 메시지 컨버터란 기존의 뷰 템플릿으로 HTML을 생성해서 응답하는 것이 아니라 HTTP API(REST API)처럼 JSON형식의 데이터 메시지바디를 직접 읽거나 쓰기 위해 메시지 본문을 다루는 방식을 말한다. 스프링 MVC는 다음의 경우에 HTTP 메시지 컨버터를 적용한다. HTTP 요청: @RequestBody , HttpEntity(RequestEntity) HTTP 응답: @ResponseBody , HttpEntity(ResponseEntity) 기존의 요청 URL 파라미터, HTML Form방식에서의 viewResolver대신 HttpMessageConverter이 동작하게 된다. 스프링 부트 기본 메시지 컨버터 (우선순위 순) 1. ByteArrayHttpMe..

Spring 2021.08.02

[Spring] 다양한 요청 매핑(Request Mapping)

다양한 요청 매핑 테스트 환경 1. 로그 출력은 시스템 콘솔 대신 slf4j 로깅 라이브러리 사용 2. view 템플릿 없이 매핑 결과만 테스트하기 위해 RestController사용하여 return값 그대로 화면에 출력 3. 모든 테스트는 Postman 플랫폼으로 테스트 기본 어노테이션 매핑 @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); /** * 기본 요청 * 둘다 허용 /hello-basic, /hello-basic/ * HTTP 메서드 모두 허용 GET, HEAD, POST, PUT, PATCH, DELETE */ @RequestMapping(value ..

Spring 2021.08.01

[Java] 간단한 로깅(Logging) 사용 방법

SLF4J 라이브러리를 이용한 로깅 방법 로깅 라이브러리로그 라이브러리는 Logback, Log4J, Log4J2 등등 수 많은 라이브러리가 있는데스프링 부트에서 이것들을 통합해서 인터페이스로 제공하는 것이 바로 SLF4J 라이브러리다. * SLF4J는 인터페이스이고, Logback은 구현체이다. 더 자세한 내용은 아래의 링크를 확인* SLF4J - http://www.slf4j.org * Logback - http://logback.qos.ch 로그 선언// 1번private final Logger log = LoggerFactory.getLogger(getClass());// 2번private static final Logger log = LoggerFactory.getLogger(Xxx.class)..

Java 2021.08.01

[Java] (String, char)배열, 문자열 상호 변환 방법

1. String을 String배열로 변환하는 방법 (문자열 -> 문자열배열) .split("") 2. String배열을 String으로 변환하는 방법 (문자열배열 -> 문자열) Arrays.toString( ) 3. String을 char배열로 변환하는 방법 (문자열 -> 문자배열) .toCharArray( ) 4. char배열을 String으로 변환하는 방법 (문자배열 -> 문자열) String.valueOf( ) new String( ) 테스트 입력 import java.util.Arrays; public class Main{ public static void main(String[] args) { // 테스트 문자열 String str = "ABCDEFG"; // 1. String -> Strin..

Java 2021.07.31

[Algorithm] 원더랜드_프림 알고리즘(최소스패닝트리)

스패닝 트리란 회로가 존재하지 않도록 그래프의 모든정점을 연결하는 트리이다. * 회로가 존재한다. == 사이클이 발생한다. == 출발점에서 시작해서 출발점으로 돌아온다. == 그래프 * 아래의 문제 이미지에서 왼쪽 이미지=그래프 / 오른쪽 이미지=트리 최소 스패닝 트리(MST)는 스패닝 트리를 구성하는 간선들의 가중치의 합이 최소가 되는 트리를 뜻한다. 이번 최소 스패닝 트리 문제는 프림 알고리즘, PriorityQueue을 이용하여 해결 할 것이다. 설명 원더랜드에 문제가 생겼다. 원더랜드의 각 도로를 유지보수하는 재정이 바닥난 것이다. 원더랜드는 모든 도시를 서로 연결하면서 최소의 유지비용이 들도록 도로를 선택하고 나머지 도로는 폐쇄하려고 한다. 아래의 그림은 그 한 예를 설명하는 그림이다. 위의 지..

Algorithm 2021.07.30

[Algorithm] 원더랜드_크루스칼 알고리즘(최소스패닝트리)

스패닝 트리란 회로가 존재하지 않도록 그래프의 모든정점을 연결하는 트리이다. * 회로가 존재한다. == 사이클이 발생한다. == 출발점에서 시작해서 출발점으로 돌아온다. == 그래프 * 아래의 문제 이미지에서 왼쪽 이미지=그래프 / 오른쪽 이미지=트리 최소 스패닝 트리(MST)는 스패닝 트리를 구성하는 간선들의 가중치의 합이 최소가 되는 트리를 뜻한다. 이번 최소 스패닝 트리 문제는 크루스칼 알고리즘,Union&Find DisjointSet을 이용하여 해결 할 것이다. 설명 원더랜드에 문제가 생겼다. 원더랜드의 각 도로를 유지보수하는 재정이 바닥난 것이다. 원더랜드는 모든 도시를 서로 연결하면서 최소의 유지비용이 들도록 도로를 선택하고 나머지 도로는 폐쇄하려고 한다. 아래의 그림은 그 한 예를 설명하는 ..

Algorithm 2021.07.26

[HTTP] 데이터 요청 - HTTP API(REST API)

HTTP API(REST API) HTTP message body에 데이터를 직접 담아서 요청 HTTP API에서 주로 사용, JSON, XML, TEXT 데이터 형식은 주로 JSON 사용 POST, PUT, PATCH HTTP 메시지 바디의 데이터를 InputStream을 사용해서 직접 읽을 수 있다. 먼저 1. 단순한 텍스트 메시지를 HTTP 메시지 바디에 담아서 전송하고 읽어 본 후 2. JSON 형식으로 전송하고 읽어 보자. 1. 단순 TEXT 전송 @WebServlet(name = "requestBodyStringServlet", urlPatterns = "/request-body-string") public class RequestBodyStringServlet extends HttpServl..

HTTP 2021.07.26

[HTTP] 데이터 요청 - POST

POST HTML Form POST 요청 방식은 클라이언트에서 서버로 리소스를 생성하거나 업데이트 하기위해 사용된다. 예) 회원 가입, 상품 주문 등에서 사용하는 방식이다. 특징 - 메시지 바디에 데이터가 들어가기 때문에 컨텐트 타입이 존재한다. -> content-type : application/x-www-form-urlencoded - 메시지 바디에 쿼리 파리미터 형식(GET 방식)으로 데이터를 전달한다 -> username=hello&age=20 예) 아래와 같은 웹 화면에 key(username, age)와 value를 담아서 전송을 하면 웹 브라우저는 다음 형식으로 HTTP 메시지를 만든다. - Request URL : http://localhost:8080/request-param - con..

HTTP 2021.07.25

[HTTP] 데이터 요청 - GET

GET 쿼리 파라미터 GET 요청 방식은 클라이언트에서 서버로 정보를 조회하기 위해 사용된다. GET 요청의 일부로서 메시지 바디 없이, URL의 쿼리 파라미터를 사용해서 데이터를 전달한다. 예) 검색 용어, 날짜 범위, 필터, 페이징, 쿼리를 정의하는 기타 정보 쿼리 파라미터는 URL에 다음과 같이 '?'로 시작하고, 추가 파라미터는 '&'로 구분한다. 예) http://localhost:8080/request-param?username=hello&age=20 서버에서는 'HttpServletRequest'가 제공하는 다음 메서드를 통해 쿼리 파라미터를 편리하게 조회할 수 있다. //단일 파라미터 조회 String username = request.getParameter("username"); //파라..

HTTP 2021.07.25

[HTTP] HTTP 데이터 요청 3가지

* HTTP 요청메시지를 통해 클라이언트에서 서버로 데이터를 요청하는 방법은 세가지로 정리가 된다. 1. GET - 쿼리 파라미터 /url?username=hello&age=20 메시지 바디 없이 URL의 쿼리 파라미터에 데이터를 포함해서 전달 예) 검색, 필터, 페이징등에서 많이 사용하는 방식 - GET 방식 정리 글 - https://cornarong.tistory.com/29?category=997186 [HTTP] 데이터 요청 - GET GET 쿼리 파라미터 GET 요청 방식은 클라이언트에서 서버로 정보를 조회하기 위해 사용된다. GET 요청의 일부로서 메시지 바디 없이, URL의 쿼리 파라미터를 사용해서 데이터를 전달한다. 예) 검색 cornarong.tistory.com 2. POST - HT..

HTTP 2021.07.24