일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- BOJ1655
- 합성곱연산
- 확인문제
- 백준10828
- 이것이자바다
- 카카오코테
- 코드트리
- KT포트포워딩
- 백준온라인저지
- 윤곽선검출
- 2019카카오코테
- 냅색알고리즘
- 딥러닝
- 백준괄호
- 스파르타코딩클럽
- 백준가운데를말해요
- 코딩테스트실력진단
- 운영체제
- 이것이자바다확인문제
- java
- 백준평범한배낭
- 백준스택
- 백준9012
- 가운데를말해요
- 백준
- 이것이자바다9장
- 코테
- 웹개발기초
- BOJ
- 컴퓨터비전
- Today
- Total
목록🍃 Spring/🌱 Spring Boot를 이용한 RESTful Web Service (20)
코딩하는 락커

Spring Security를 이용한 인증 처리 지금까지 작성한 사용자 관리 등의 REST API는 웹 브라우저나 Postman과 같은 클라이언트 테스트 프로그램을 이용하면 바로 결과를 확인할 수 있었음 일반적으로 공개되어도 좋은 정보가 아니라 중요한 테스트 혹은 일부 인증을 거친 사용자만 사용해야 하는 리소스의 경우 보안에 문제가 생길 수 있음 REST API 어플리케이션의 인증을 처리하기 위한 다양한 방법이 있음 (JWT, ID/Password, Spring Security 등) Spring Security란 스프링 프레임워크에서도 어렵고 복잡한 구조로 되어 있지만, ID와 Password만을 사용하기 위해 간단한 구조로 만들 수 있음 Pom.xml 파일에 의존성 추가 (버전 정보 꼭 작성해줘야 함)..

HAL Browser를 이용한 HATEOAS 기능 구현 HAL Browser란? 1. Hypertext Application Language의 약자 2. 하이퍼텍스트로 어플리케이션에 부가적인 기능을 부여하는 것 3. HAL은 API 리소스들 사이에서 쉽게 일반적인 하이퍼링크를 제공하는 방식 API 설계시 HAL을 도입하면 쉽게 API 검색이 가능함 API를 사용하는 개발자들에게 더 나은 개발 환경 제공 가능 HAL을 API Response 메시지에 적용하면 메시지가 JSON 포맷이든 XML 포맷이든 API를 쉽게 사용할 수 있는 부가적인 정보, 즉 메타 정보를 하이퍼링크로 간단하게 포함할 수 있음 제공하고자 하는 리소스의 정보를 링크로 추가해서 제공할 수 있음 리소스랑 컴퓨터가 가지고 있는 자원을 의미하..

REST API Monitoring을 위한 Actuator 설정 스프링 부트 프로젝트에 모니터를 하는 기능 제공 Spring boot starter Component의 Acutator 라이브러리 추가 (이것만으로도 간단하게 어플리케이션의 상태를 쉽게 파악할 수 있음) pom.xml에 의존성 추가 org.springframework.boot spring-boot-starter-actuator 2.6.2 application.yml에 내용 추가 더 많은 정보를 확인할 수 있음 management: endpoints: web: exposure: include: "*" SwaggerConfig 클래스에 추가 (이 내용을 추가하지 않으면 에러남. 링크 참고) @Bean public WebMvcEndpointHan..

Swagger 설명 설계, 빌드, 문서화, 사용에 관련된 작업을 지원해주는 오픈소스 프레임워크 사용자, 개발자에 관련된 Documentation 페이지를 만들 수 있음 REST API Documentation을 위한 Swagger 사용 pom.xml 파일에 의존성 추가 원래는 주석 내용으로 추가해야하나 Spring boot 2.6버전 이후에 spring.mvc.pathmatch.matching-strategy 값이 ant_apth_matcher에서 path_pattern_parser로 변경되면서 몇몇 라이브러리(swagger포함)에 오류가 발생하는 문제로 수정. (링크 참고) io.springfox springfox-boot-starter 3.0.0 io.springfox springfox-swagger..

HATEOAS 설명 HATEOAS : Hypermedia As the Engine Of Application State의 약자로 현재 사용하고 있는 RESTful의 리소스와 연관된, 또는 호출 가능한 추가적인 자원의 상태 정보를 함께 제공해주는 기능 하나의 Resource에서 파생하는 여러가지 추가 data 전달 작업 가능 리처드슨의 REST 성숙도 모델 (https://jinson.tistory.com/190

REST API Version 관리 사용자 API의 Version 관리하는 기능 페이스북 API와 카카오 API 모두 URI에 버전을 명시하고 있음 API를 사용하는 개발자나 사용자에게 올바른 사용 가이드를 알려주기 위한 목적 URI Versioning, Request Parameter Versioning 방법은 일반 브라우저에서 실행 가능함 MIME type Versioning, Headers Versioning 방법은 일반 브라우저에서 실행 불가함 URI를 이용한 REST API Version 관리 retrieveUser 메소드를 복사하여 retrieveUserV1과 retrieveUserV2를 생성 각 URI 앞에 v1, v2를 넣어서 버전 명시 V1과 V2의 차이를 두기 위해서 V2에서는 User..

Response 데이터 제어를 위한 Filtering 개별 사용자 조회 사용자 정보 관리 REST API 데이터 중 클라이언트에게 전달해주고자 하는 값 제어하기 domain 클래스가 가지고 있었던 정보 중 외부에 노출시키고 싶지 않을 경우 사용 스프링 부트에서 Filtering이라는 기능 사용 User 클래스에서 비밀번호, 주민번호 등 중요한 정보 추가 package com.example.restfulwebservice.user; import lombok.AllArgsConstructor; import lombok.Data; import javax.validation.constraints.Past; import javax.validation.constraints.Size; import java.util...

다국어 처리를 위한 Internationalization 구현 방법 다국어 처리 : 하나의 출력값을 여러가지 언어로 표시해주는 기능 자동 번역은 아니고 제공하고자 하는 문자값을 미리 준비해놓고 지역코드 또는 언어설정에 따라 적절한 언어를 표시해 줌 프로젝트 전반에 걸쳐 적용할 것이므로 다국어 처리에 필요한 Bean을 스프링 부트 어플리케이션 클래스에 등록해서 스프링 부트가 초기화 될 때 메모리에 등록되도록 설정 @SpringBootApplication 어노테이션을 갖고 있는 main 클래스에 코드 작성 // Bean 등록 @Bean public LocaleResolver localeResolver(){ //SessionLocaleResolver 클래스는 세션을 통해서 로케일 값을 얻어옴 SessionLo..