Java
-
RestTemplate 란?Spring 에서 간편하게 Rest 방식 API 를 호출할 수 있는 내장 클래스이다.Spring 3.0 부터 지원되며 응답은 Json, xml 모두 받을 수 있다.Rest API 요청 시 응답 받을 수 있도록 설계되어 있으며, HTTP 메소드(GET, POST, PUT, DELETE)들에적합한 여러 메소드들을 제공한다. RestTemplate 특징Rest API 를 간편하게 호출 후 응답 받을 수 있는 Spring 내장 클래스Spring 3.0 부터 지원하는 HTTP 통신 템플릿HTTP 요청 후 Json, XML, String 등 여러 형태로 응답 받을 수 있는 템플릿HTTP HEADER, Content-Type 등을 설정하여 외부 API 호출Server to Server 통신..
Spring RestTemplate 사용하기RestTemplate 란?Spring 에서 간편하게 Rest 방식 API 를 호출할 수 있는 내장 클래스이다.Spring 3.0 부터 지원되며 응답은 Json, xml 모두 받을 수 있다.Rest API 요청 시 응답 받을 수 있도록 설계되어 있으며, HTTP 메소드(GET, POST, PUT, DELETE)들에적합한 여러 메소드들을 제공한다. RestTemplate 특징Rest API 를 간편하게 호출 후 응답 받을 수 있는 Spring 내장 클래스Spring 3.0 부터 지원하는 HTTP 통신 템플릿HTTP 요청 후 Json, XML, String 등 여러 형태로 응답 받을 수 있는 템플릿HTTP HEADER, Content-Type 등을 설정하여 외부 API 호출Server to Server 통신..
2023.08.10 -
기존 Spring Boot 2.7 이하버전, Spring Security 5.6 이전버전에서는 아래와 같이 설정했다. .authorizeRequests() 메서드를 통해 허용할 URL, formLogin() 메서드를 통해 로그인 설정 등 많이 바뀐건 아니지만 불필요한 소스를 삭제하고 간단하게 설정하는방법으로 바꼈다고 한다. Spring Security 5.6 이전버전 기존소스 @Configuration @EnableWebSecurity public class SecurityConfig{ @Autowired private AuthenticationUserDetailsService authenticationUserManager; @Bean public WebSecurityCustomizer configure..
Spring Boot 2.7 이상, Spring Security 5.6 이상버전 설정하기기존 Spring Boot 2.7 이하버전, Spring Security 5.6 이전버전에서는 아래와 같이 설정했다. .authorizeRequests() 메서드를 통해 허용할 URL, formLogin() 메서드를 통해 로그인 설정 등 많이 바뀐건 아니지만 불필요한 소스를 삭제하고 간단하게 설정하는방법으로 바꼈다고 한다. Spring Security 5.6 이전버전 기존소스 @Configuration @EnableWebSecurity public class SecurityConfig{ @Autowired private AuthenticationUserDetailsService authenticationUserManager; @Bean public WebSecurityCustomizer configure..
2023.07.11 -
개발환경 : Spring Boot, Thymeleaf, javascript, html ajax 를 이용해 csv 파일 다운로드를 구현하는 과정에서 데이터가 많아질수록 느려지고 실패하는 경우도 있었다. 이러한 이유는 csv 데이터는 String 형태로 "," 콤마로 구분해 데이터를 만들어 넘기는데 반복문이 많아질수록 서버가 죽을 위험이 있다. 그래서 더 좋은 방법을 구현하는 과정에서 Html 파일을 사용하여 다운받는 방법을 사용했다. Html 위와 같이 Controller 에서 받아 처리할 데이터를 Form 태그를 통해 Submit 을 한다. 넘길 파라미터가 존재하지 않을 경우 Form 태그만 사용하여 action 으로 던져도 가능하다. Javascript ... $("#downloadForm").subm..
html 을 이용한 대용량 파일 다운로드개발환경 : Spring Boot, Thymeleaf, javascript, html ajax 를 이용해 csv 파일 다운로드를 구현하는 과정에서 데이터가 많아질수록 느려지고 실패하는 경우도 있었다. 이러한 이유는 csv 데이터는 String 형태로 "," 콤마로 구분해 데이터를 만들어 넘기는데 반복문이 많아질수록 서버가 죽을 위험이 있다. 그래서 더 좋은 방법을 구현하는 과정에서 Html 파일을 사용하여 다운받는 방법을 사용했다. Html 위와 같이 Controller 에서 받아 처리할 데이터를 Form 태그를 통해 Submit 을 한다. 넘길 파라미터가 존재하지 않을 경우 Form 태그만 사용하여 action 으로 던져도 가능하다. Javascript ... $("#downloadForm").subm..
2023.07.03 -
제네릭(Generic)이란? List list1 = new ArrayList(); Map map = new HashMap(); 위의 List 과 같이 "" 꺽쇠 안의 클래스 타입이 명시되어 있는 것을 확인할 수 있다. 이러한 "" 꺽쇠 안에 데이터 타입을 컴파일 시에 미리 지정하는것을 제네릭이라고 한다. 제네릭은 클래스나 메서드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하여 타입검사를 할 수 있다. 클래스나 메서드 내부에서 사용되는 객체 타입의 유연성과 안정성을 확보한다. 런타임 시 발생할 수 있는 타입 에러를 컴파일 전에 검출하여 안정성을 확보한다. 아래 예시를 확인해보자 List list = new ArrayList(); list.add("obo"); // type error Integer..
Java Generic(제네릭)제네릭(Generic)이란? List list1 = new ArrayList(); Map map = new HashMap(); 위의 List 과 같이 "" 꺽쇠 안의 클래스 타입이 명시되어 있는 것을 확인할 수 있다. 이러한 "" 꺽쇠 안에 데이터 타입을 컴파일 시에 미리 지정하는것을 제네릭이라고 한다. 제네릭은 클래스나 메서드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하여 타입검사를 할 수 있다. 클래스나 메서드 내부에서 사용되는 객체 타입의 유연성과 안정성을 확보한다. 런타임 시 발생할 수 있는 타입 에러를 컴파일 전에 검출하여 안정성을 확보한다. 아래 예시를 확인해보자 List list = new ArrayList(); list.add("obo"); // type error Integer..
2023.06.26 -
DispatcherServlet DispatcherServlet 의 Dispatcher 는 "보내다" 라는 뜻을 가지고 있다. 이러한 뜻에 따라 DispatcherServlet 은 HTTP 프로토콜로 들어오는 모든 요청을 맨 앞쪽에서 받아 요청에 맞는 적절한 Controller 를 찾아 전달하는 Front Controller 라고 정의할 수 있다. 여기서 Front Controller 는 서블릿 컨테이너의 제일 앞쪽에서 모든 요청을 받아 처리하는 Controller 로써 MVC 구조에서 사용되는 디자인 패턴입니다. 위 이미지를 보면서 자세하게 설명을 하게 되면 클라이언트로부터 요청이 들어오게 되면 Tomcat 과 같은 서블릿 컨테이너가 요청을 받게 됩니다. 서블릿 컨테이너에서 Filter 를 통해 인증 ..
DispatcherServlet(디스패처 서블릿, Front Controller)DispatcherServlet DispatcherServlet 의 Dispatcher 는 "보내다" 라는 뜻을 가지고 있다. 이러한 뜻에 따라 DispatcherServlet 은 HTTP 프로토콜로 들어오는 모든 요청을 맨 앞쪽에서 받아 요청에 맞는 적절한 Controller 를 찾아 전달하는 Front Controller 라고 정의할 수 있다. 여기서 Front Controller 는 서블릿 컨테이너의 제일 앞쪽에서 모든 요청을 받아 처리하는 Controller 로써 MVC 구조에서 사용되는 디자인 패턴입니다. 위 이미지를 보면서 자세하게 설명을 하게 되면 클라이언트로부터 요청이 들어오게 되면 Tomcat 과 같은 서블릿 컨테이너가 요청을 받게 됩니다. 서블릿 컨테이너에서 Filter 를 통해 인증 ..
2023.06.13 -
HttpMessageConverter 란? 클라이언트(웹브라우저) 측에서 데이터를 HTTP Request Body 로 넘길때 서버측에서 DTO 같은 객체에 변환하기 위해 사용한다. 또한 반대로 서버측에서 HTTP Response Body 로 응답 데이터를 클라이언트로 전달할 때 사용한다. 보통 서버측에서 받을때 주로 사용하는 건 @RequestBody 어노테이션과 클라이언트로 응답 데이터를 넘길때 @ResponstBody 를 사용한다. Spring MVC 요청/응답 과정 1. 클라이언트로부터 HTTP 요청이 들어오면 Front Controller 라고 불리우는 Dispatcher Servlet 이 받는다. * 클라이언트의 요청은 Front Controller 라고 하는 Dispatcher Servlet ..
HttpMessageConverter, DispatcherServlet 동작원리HttpMessageConverter 란? 클라이언트(웹브라우저) 측에서 데이터를 HTTP Request Body 로 넘길때 서버측에서 DTO 같은 객체에 변환하기 위해 사용한다. 또한 반대로 서버측에서 HTTP Response Body 로 응답 데이터를 클라이언트로 전달할 때 사용한다. 보통 서버측에서 받을때 주로 사용하는 건 @RequestBody 어노테이션과 클라이언트로 응답 데이터를 넘길때 @ResponstBody 를 사용한다. Spring MVC 요청/응답 과정 1. 클라이언트로부터 HTTP 요청이 들어오면 Front Controller 라고 불리우는 Dispatcher Servlet 이 받는다. * 클라이언트의 요청은 Front Controller 라고 하는 Dispatcher Servlet ..
2023.06.07