반응형

Programming/Spring Boot 101

MultipartFile to File 차이점과 변환 방법(Java)

Spring에서는 클라이언트가 업로드한 File을 핸들러에서 손쉽게 다룰 수 있도록 MultipartFile 인터페이스를 제공합니다. 이렇게 업로드된 파일은 저장 또는 다른 처리를 위해 MultipartFile File 서로 간의 변환이 종종 필요한데요. 이어지는 내용을 통해서 MultipartFile과 File의 차이점 및 변환 방법을 살펴보겠습니다. MultipartFile MultipartFile interface는 Spring에서 업로드된 파일을 다룰 때 사용되는 인터페이스로 파일의 이름과 실제 데이터, 파일 크기 등을 구할 수 있습니다. /* Spring에서 MultipartFile 타입을 매개변수로 사용하기 위해서는 MultipartResolver 구현체가 Bean으로 등록되어 있어야 하는데요..

Spring Boot + GraphQL 기본적인 사용법 정리

REST를 대체한다고? GraphQL(Graph Query Language)란? 시작에 앞서 GraphQL이란 무엇인지 간단하게 살펴보면, 페이스북에서 개발된 쿼리 언어인 GraphQL은 기존에 많이 사용되던 RESTful API와는 다른 형식의 인터페이스입니다. 가장 큰 차이로는 RESTful API가 URL, Method 등의 조합으로 다양한 Endpoint를 가지는 반면, GraphQL은 단 하나의 Endpoint 만으로 데이터를 요청하고 응답받을 수 있는데요. 이 방식을 통해 기존의 RESTful API의 단점인 Over-Fetching, Under-Fetching 문제를 해결할 수 있습니다. /* Over-Fetching(오버 패칭) 오버 패칭은 클라이언트에서 데이터를 요청했을 때, 실제로 사용..

Spring Boot 부트스트랩(bootstrap) 템플릿 적용하는 방법

Spring Boot MVC 패턴 프로젝트에서 부트스트랩(bootstrap) 템플릿을 적용하며 정리한 내용입니다. 해당 내용은 아래 타임리프 레이아웃(Thymeleaf layout)을 적용한 상태에서 추가된 내용이기 때문에 함께 내용 참고하시면 좋을 것 같습니다. Spring Boot 타임리프 Thymeleaf layout 적용하는 방법 타임리프(Thymeleaf)에 대해서 간단하게, 타임리프는 서버 사이드 템플릿 엔진(Template Engine)의 한 종류로, 쉽게 컨트롤러가 전달하는 데이터를 이용하여 동적으로 화면을 구성할 수 있게 해주는 역 wildeveloperetrain.tistory.com *** You don't need to put the layout:fragment/data-layout..

Spring Boot Multi Module Project 생성하기(maven)

멀티 모듈 프로젝트는 무엇인지, Spring boot에서 multi-module project를 생성하는 방법(maven)은 어떻게 되는지 정리한 내용입니다. 참고 자료 및 코드의 git 주소는 포스팅 맨 하단에 있으며, 잘못된 내용은 댓글로 남겨주시면 확인하여 수정하겠습니다. 감사합니다. 1. Multi Module Project를 적용하는 이유 작은 단위에서부터 시작된 대부분의 프로젝트들은 시간이 지날수록 기능이 추가되면서 점점 더 커지고 복잡해지는데요. 기능이 많아지고, 요청이 많아질수록 그 요청들을 하나의 프로그램에서 처리하기가 어려워지는데, 때문에 하나로 운영하던 서비스가 클라이언트 서비스와 운영 시스템으로 나뉘는 등의 분리가 일어나게 됩니다. 이렇게 프로그램이 나누어졌을 때의 가장 큰 문제점은..

SpringBoot form-data list object (객체 리스트 받는 방법)

스프링 부트에서 form-data 형식으로 데이터를 받는 과정 중, 리스트 형식의 객체를 받는 방법을 정리한 내용입니다. 해당 방법 외 다른 방법이 있는지가 궁금하여 찾아봤는데, 아직까지 발견하지 못했습니다. 혹시 해당 내용이 아닌 다른 방법을 아신다면 내용 댓글이나 링크 남겨주시면 참고하겠습니다. 미리 감사드립니다. 1. 사용자 정의 객체 리스트가 아닌 일반적인 리스트 받는 방법 @PostMapping("") public void formDataArrayListTest(@RequestParam(name = "name") List nameList) { //출력 nameList.stream().forEach(name -> System.out.println("name : " + name)); } 먼저 복잡한..

Querydsl 서브쿼리 사용하는 방법(select절, where절)

'Querydsl 서브 쿼리 사용법'에 대해 간단하게 정리한 내용입니다. Querydsl이 나오게 된 배경을 살펴보고 이어서 subquery를 적용하는 코드 예시가 있는데요. Querydsl의 경우 다른 것 보다 사용하기 위한 설정이 조금 번거로울 수 있는데, 환경설정 및 DTO 조회 방법, 페이징 처리 등의 추가적인 내용이 담긴 글 또한 해당 포스팅 맨 하단에 링크되어 있으니 필요시 참고해주시면 될 것 같습니다. Querydsl이 나오게 된 배경 Spring Data JPA에서 기본적으로 제공해주는 CRUD 쿼리 메서드로 해결하지 못하는 복잡한 쿼리나 동적 쿼리를 처리하기 위해서 JPQL을 작성하게 되는데요. /* JPQP(Java Persistence Query Language) JPQL은 테이블이 ..

FeignClient 기본적인 사용법 (Spring Cloud OpenFeign)

기존 프로젝트에서는 서비스 간 통신에서 RestTemplate을 사용했는데 FeignClient를 통해 조금 더 편리하게 사용할 수 있다고 하여 적용해보며 정리한 내용입니다. 잘못된 부분은 댓글로 남겨주시면 확인하여 다시 공부하고 수정하겠습니다. 미리 감사드립니다. Spring Cloud OpenFeign FeignClient란 Netflix에서 최초로 개발된 선언적 HTTP 클라이언트인데요. 이때는 Spring Cloud Netflix Feign 였으나, 현재는 오픈소스 프로젝트인 OpenFeign로 변경되었는데, OpenFeign가 Spring Cloud OpenFeign에 통합되면서 SpringMVC 어노테이션에 대한 지원 및 HttpMessageConverters를 사용할 수 있게 되었습니다. F..

ExceptionTranslationFilter과 SecurityInterceptor

ExceptionTranslationFilter, FilterSecurityInterceptor, MethodSecurityInterceptor 해당 포스팅은 Spring Security에서 인증(Authentication)과 인가(Authorization)에 대한 예외 처리를 담당하는 ExceptionTranslationFilter과 해당 필터에 이어서 동작하며, 권한을 검사하는 FilterSecurityInterceptor, MethodSecurityInterceptor의 동작 과정에 대해서 살펴본 내용입니다. - ExceptionTranslationFilter 먼저 ExceptionTranslationFilter의 경우 스프링 시큐리티의 filter chain에서 인증과 인가에 대한 Exceptio..

세션을 사용한 스프링 시큐리티 구현(WebSecurityConfigurerAdapter deprecated)

Session을 사용한 아주 기본적인 스프링 시큐리티 코드를 정리한 내용입니다. 최근 WebSecurityConfigurerAdapter가 deprecated 되면서 해당 부분이 적용된 코드로 구현하였으며, 세부적인 내용을 모두 담기에는 길어지기 때문에 전체적인 큰 흐름에서 참고해주시면 좋을 것 같습니다. (전체 코드는 포스팅 맨 하단 git 주소를 링크해두었고, spring security 흐름에 참고가 될만한 글도 함께 링크해 두었으니 보시면 좋을 것 같습니다.) Spring Security란? 대부분의 프로그램에서는 사용자에 대한 기능이 필수적으로 들어가는데요. 사용자 기능이 들어가면 인증(Authentication)과 인가(Authorization)에 대한 처리 역시 함께 들어가야 하는데, Spr..

스프링 시큐리티 SecurityContextHolder에 Authentication(인증) 정보가 저장되는 과정

Spring Security에서 인증이 완료된 Authentication(인증 정보)를 SecurityContextHolder에 저장하는 과정에 대해 정리한 내용입니다. Spring Security 시큐리티 동작 원리 이해하기 - 1 스프링 시큐리티 (Spring Security)는 스프링 기반 어플리케이션의 보안(인증과 권한, 인가)을 담당하는 스프링 하위 프레임워크입니다. 보안과 관련해서 체계적으로 많은 옵션들을 제공해주기 때문 wildeveloperetrain.tistory.com 인증이 진행되는 과정 및 구현 내용이 정리된 포스팅입니다. 인증을 통해 Authentication을 반환하는 과정이 담겨있기 때문에 동작 원리를 파악하기 위해서는 먼저 보고 오셔도 좋을 것 같습니다. (WebSecurit..

반응형