본문 바로가기

분류 전체보기56

HATEOAS 간단 소개, 과연 이게 정답인가? 외부 칼럼들을 읽다가 HATEOAS라는 것을 알게 되었다.안그래도 회사에서 신규 프로젝트를 진행하게 되었는데, endpoint를 명확하게 정하지 못해 FrontEnd개발자분께 해당 내용을 전달드리지 못하고 있었다.이유는 Restful하게 API를 구성하고 싶었고, 초기에 어느정도 Fix된 상태로 줘야 FrontEnd개발자분들이 편하게 작업이 가능하다고 말씀하셔서 정의에 대해 계속 생각하다보니 미뤄지고 그랬다.그러던 와중 HATEOAS를 적용하면 이러한 문제를 해결할 수도 있다고 생각했다.HATEOAS?이부분은 그냥 밑의 구조를 보면 이해하기 편하다{ "data": { "id": 1000, "name": "게시글 1", "content": "내용 1" }, "_links": { .. 2025. 2. 26.
WbFlux에서 404Status를 반환하는방법(How to Return 404 with Spring WebFlux) 원본 글: https://www.baeldung.com/spring-webflux-404Netty 서버는 Servlet API를 지원하지 않으므로, 이 환경에서 404 HTTP 상태 코드를 반환하는 방법을 알아봅니다.1. Semantic Response Status표준 RESTful 방식에 따르면, API의 의미를 정확하게 표현하기 위해 다양한 HTTP 상태 코드를 적절히 활용해야 합니다.1.1 Default Return Status모든 요청에 대해 잘 처리되면 보통 200(OK)응답을 리턴합니다.@GetMapping(value = "/ok", produces = MediaType.APPLICATION_JSON_VALUE)public Flux ok() { return Flux.just("ok");}.. 2025. 2. 25.
Webflux에서 Error를 다루는방법(Handling Errors in Spring WebFlux) 원본 글: https://www.baeldung.com/spring-webflux-errorsSpring WebFlux에서 에러를 다루는 여러 전략들에 대해 장점을 파악하고 소개합니다. 1. Setting Up the Example글에서는 Maven을 썼지만 저는 gradle로 초기셋팅을 진행하겠습니다.implementation 'org.springframework.boot:spring-boot-starter-webflux'해당 의존성을 추가해줍니다.이 글에서 예제는 ${username} 파라미터를 쿼리형태로 받아서 "Hello ${username}"을 반환할 겁니다.먼저 /hello 요청에 대한 router function을 생성합니다.@Configurationpublic class UserRouter.. 2025. 2. 24.
JPA, Spring MVC를 이용한 동적 스키마 변경 개요회사에서 신규 프로젝트에 대한 환경셋팅중에 선임님이 이런 질문을 하셨다."JPA를 쓸건데, 동적으로 스키마 변경이 불가능한걸로 알고 있어요. JPA를 빼야할까요?"우리는 보안적인 이유로 고객사마다 스키마를 다르게 쓰고 있다.기존 프로젝트에서는 JPA를쓰지않다보니 요청마다 동적으로 스키마를 교체하여 쿼리를 보냈었다.JPA를 쓰면 동적으로 스키마를 교체 못하는가? 라는 의문을 나한테 주시고 휴가를 가셨다.먼저, 2가지 방법을 찾아서 진행했었다.첫 번째 방법은 요청 들어올때 Filter부에서 고객사에 대한 정보를 파싱해서 해당 정보를 가지고 connection 정보를 생성하여 연결하고 끊는 방식이다. Spring MVC의 Thread Per Request 방식을 이용해 동시성 문제를 해결하기도 하였다.두 .. 2025. 2. 21.
anagrams을 검증하는 방법(Check if Two Strings Are Anagrams in Java) 원본 글: https://www.baeldung.com/java-strings-anagramsanagram은 주어진 단어나 문장에서 글자들을 재배열해서 다른 단어나 문장을 만드는 것을 말합니다.예를 들어, "listen"이라는 단어는 "silent"라는 단어의 아나그램입니다. 글자의 순서만 바뀌었고, 사용된 글자들의 개수는 똑같죠.각 문자의 개수와 종류가 정확히 같으면 아나그램이라고 할 수 있습니다.이러한 단어를 검증하는 방법을 학습합니다.1. Solution두 문자열이 anagram인지 확인하는 몇 가지 방법을 비교해봅니다.먼저 두 문자열의 길이가 같은지 확인합니다. 문자열의 길이가 서로 다르면 angram이 될 수 없기 때문입니다.2. Check by Sorting문자를 정렬하고 정렬된 문자를 비교하.. 2025. 2. 19.
Spring WebFlux - 정적 컨텐츠들 원본 글: https://www.baeldung.com/spring-webflux-static-content이미지, HTML, CSS, Javascript 파일과 같은 정적 컨텐츠들을 웹 애플리케이션에서 제공해야할 때가 있습니다.이 글에서는 Spring WebFlux에서 어떻게 정적 컨텐츠들을 제공하는지 학습합니다.1. Overriding the Default ConfigurationSpring Boot에서는 정적 컨텐츠들을 다음과 같은 경로에서 제공하고 있습니다./public/static/resoucre/META-INF/resources만약 Spring WebFlux에서 위의 경로들을 바꾸고 싶으면 appliction.properties에서 수정해줍니다.spring.webflux.static-path-.. 2025. 2. 18.