본문 바로가기

spring25

[Spring / Web] CORS CORS(Cross-Origin-Resource Sharing) 출처가 다른 자원들을 공유한다는 뜻으로, 한 출처에 있는 자원에서 다른 출처에 있는 자원에 접근하도록 하는 개념입니다. 직역하면, 교차되는 출처 자원들의 공유입니다. 다른 출처에 있는 자원을 요청한다고 하면, 이를 교차 출처 요청이라고 부릅니다. 🏷️ 출처(Origin) 위의 구성요소 중에서 Protocol + Host + Port 3가지가 같으면 동일 출처(Origin)라고 합니다. 브라우저 개발자 도구의 콘솔 창에 location.origin를 실행하면 출처를 확인할 수 있다. ✅ 동일 출처 예시 URL 설명 http://example.com:80 http://example.com HTTP 기본 Port인 80번이 생략되어있으므로 동일 .. 2023. 12. 1.
[Spring] Response Customizing Response Customizing RestAPI에서 Response로 Bean을 반환 할때, 구조는 Bean의 모든 변수를 반환하게 됩니다. 하지만 특정 상황에서 이와 같이 정확하게 모든 Bean의 모든 값을 반환하고 싶지 않은 경우 커스터마이징을 사용합니다. 🏷️ 정적 필터링 정적 필터링은 필터를 적용하면 해당 Bean에 대한 모든 응답에 동일하게 필터링이 됩니다. @JsonIgnoreProperties("field1") // 정적 필터링 방법2 -> 여러게 필터링시 {v1, v2} 형식 public class SomeBean { private String field1; @JsonIgnore // 정적 필터링 방법 1 -> 필드 이름 변경시 따로 변경하지 않아도됨 private String fiel.. 2023. 11. 20.
[Spring] HAL(Json Hypertext Application Language) HAL(Json Hypertext Application Language) HAL은 JSON 또는 XML 코드 내의 외부 리소스 에 대한 링크와 같은 일관적이고 쉬운 하이퍼미디어를 정의하기 위한 규칙입니다. HAL을 채택하면 API를 탐색할 수 있게 되며 API 자체 내에서 해당 문서를 쉽게 검색할 수 있습니다. 간단히 말해서 API를 사용하기가 더 쉬워지고 클라이언트 개발자에게 더 매력적으로 느껴질 것입니다. HAL을 채택한 API는 대부분의 주요 프로그래밍 언어에 사용 가능한 오픈 소스 라이브러리를 사용하여 쉽게 제공되고 사용될 수 있습니다. 또한 다른 JSON처럼 처리할 수 있을 정도로 간단합니다. 🏷️ HAL Explorer HAL Explorer는 HAL을 사용하는 RESTful API 라면 이것.. 2023. 11. 19.
[Spring] Actuator Actuator 실행 중인 스프링 부트 애플리케이션의 정보를 API 형식으로 확인할 수 있게 해주는 기능입니다. 애플리케이션의 실행 여부, 패키지 로깅 레벨, Bean 목록, Metric(CPU, Heap, Thread 등) 등 여러 정보들을 확인할 수 있는 기능을 제공합니다. 🏷️ 사용법 org.springframework.boot spring-boot-starter-actuator maven의 경우 위의 dependency를 추가하여 사용하고 implementation 'org.springframework.boot:spring-boot-starter-actuator' gradle의 경우 위와 같이 implementation합니다. management.endpoints.web.exposure.inclu.. 2023. 11. 16.
[Spring] HATEOAS HATEOAS (Hypermedia As The Engine Of Application State) Hateoas란 REST API를 사용하는 클라이언트가 전적으로 서버와 동적인 상호작용이 가능하도록 하는 것을 의미합니다. 이러한 방법은 클라이언트가 서버로부터 어떠한 요청을 할 때, 요청에 필요한 URI를 응답에 포함시켜 반환하는 것으로 가능하게 할 수 있습니다. 🏷️ REST 성숙도 모델 이 모델은 위 이미지와 같이 4가지 수준으로 구성됩니다. ✅ 레벨 0 API 구현은 HTTP 프로토콜을 사용하지만 전체 기능을 활용하지는 않습니다. 또한 리소스에 대한 고유 주소가 제공되지 않습니다. ex) method: POST URI: /movie ✅ 레벨 1 리소스에 대한 고유 식별자가 있지만 리소스에 대한 각 .. 2023. 11. 14.
[Spring] REST API 버전 관리 REST API 버전 관리 버전관리라는 것은 단순하게 사용자에게 보여주는 항목을 관리하는 것이 아닌 REST API 설계가 변경되거나 Application의 구조가 변경되었을 시에도 버전을 변경해야 할 수도 있습니다. 또한 사용자들이 어떤 버전을 사용해야 할지 가이드를 해야 하거나 회사, 팀마다 어떻게 Version 관리를 하는 방식은 매우 다를 수도 있습니다. REST API의 새로운 버전을 오픈, 배포해도 고객들은 기존의 주 버전을 계속 사용하기를 원할수도 있고 새로운 API Version을 사용하길 원할 수도 있습니다. 즉, 기존 사용하던 Rest API를 계속해서 사용하게 해주기 위해 버전을 관리해주어야 합니다. 🏷️ 버전 관리 방법 ✔️ Major Version 과 Minor Version Ma.. 2023. 11. 12.