분류 전체보기135 [Spring Boot] 인증과 인가 0. 개요 서비스 운영에 있어서의 보안과 관련된 개념을 알아본다. 스프링에 보안을 적용할 때 사용하는 Spring Security에 대해 알아본다. 무상태(stateless) REST 애플리케이션 환경에 맞게 토큰값을 활용하는 보안 기법을 기본적으로 가정한다. * stateless: 클라이언트와 서버 관계에서 서버가 클라이언트의 상태를 보존하지 않음 1. 인증과 인가는 무엇인가? 인증과 인가. 한국어로든 영어로든 서로 비슷해서 헷갈린다. 하지만 찬찬히 생각해보면 어감의 차이를 느낄 수 있다. 먼저 인가를 보면 '허락'의 뉘앙스가 풍긴다. 이를 중심으로 생각해보면 좀더 구분이 수월해지기도 한다. 놀이공원에 간 상황을 예로 들면, 놀이공원 입구에서 신분을 확인하여 입장하는 것이 인증이다. 그리고 입장 과정에.. 2023. 4. 29. [Spring Boot] 서버 간 통신: RestTemplate과 WebClient 1. 서버 간 통신의 필요성 MSA(MicroService Architecture)의 등장 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어 있는 Monolithic Architecture는 서비스의 규모가 커질 수록 유지 보수 측면에서의 한계를 보인다. 이러한 문제를 보완하기 위해 하나의 애플리케이션이 하나의 기능만을 가지도록 구성한 형태인 MicroService Architecture가 등장하였다. 애플리케이션은 자신이 가진 기능을 API로 외부에 노출하고, 다른 서버(애플리케이션)가 그 API를 호출하여 사용한다. 이 과정에서 다른 서버로 웹 요청을 보내고 응답을 받을 수 있게 도와주는 기술이 RestTemplate과 WebClient이다. 2. RestTemplate 개요 RestTemplat.. 2023. 4. 22. [Spring Boot] 액추에이터 1. 액추에이터(Actuator)란? 스프링 공식 문서에서는 위와 같이 설명하고 있다. 즉, 스프링 부트 액추에이터는 HTTP 엔드포인트나 JMX를 사용해 애플리케이션을 관리하고 모니터링할 수 있는 기능을 제공한다. * JMX(Java Management Extensions) : 실행 중인 애플리케이션의 상태를 모니터링하고 설정을 변경할 수 있게 해주는 API 2. 액추에이터 사용을 위한 의존성 액추에이터 기능을 사용하려면 spring-boot-starter-actuator 모듈의 의존성을 추가해야 한다. 다음은 build.gradle 예시이다. implementation group: 'org.springframework.boot', name: 'spring-boot-starter-actuator' 3... 2023. 4. 21. [Spring Boot] 유효성 검사와 예외처리 1. 유효성 검사 1.1. 스프링 부트에서의 유효성 검사 먼저 유효성 검사를 위한 프레임워크가 없던 시절의 유효성 검사에 대해 살펴보면 몇가지 문제점이 있다. 계층별로 진행하는 유효성 검사는 검증 로직이 각 클래스별로 분산돼 있어 관리하기가 어렵고, 검증 로직에 중복이 많아 코드의 효율성이 떨어진다. 이 같은 문제를 해결하기 위해 자바 진영에서는 Bean Validation이라는 데이터 유효성 검사 프레임워크를 제공하기 시작했다. 이는 어노테이션을 통해 검증을 진행하여 개발자가 직접 검증 로직을 구현할 필요가 없게 되었다. 유효성 검사는 아래 이미지와 같이 각 계층으로 데이터가 넘어오는 시점에 해당 데이터에 대한 검사를 진행한다. 계층 간 데이터 전송에 대체로 DTO를 사용하고 있기 때문에 DTO를 대상.. 2023. 4. 14. 이전 1 ··· 11 12 13 14 15 16 17 ··· 34 다음