Develop/Spring

Develop/Spring

[JPA] 영속성 전이 (CASCADE)와 고아 객체에 대하여

개요 나는 Spring을 배운 이래로 항상 JPA를 사용해서 프로젝트를 진행했다. 이력서나 자기소개에도 JPA을 쓸 줄 안다~고 쓰고 다녔고. 그런데 요즈음, 내가 JPA를 잘 이해해서 100% 활용하기보단 관습적인 코드를 죽어라 쓰고 있는 것 같다고 느꼈다 🤔 예를 들자. cascade를 들으면 제일 먼저 생각나는 건 DBMS의 on update, on delete cascade 옵션이다. 하지만 JPA의 cascade가 이들과 동일한 개념이라고 생각하면 아주 곤란해진다. 엄밀하게는 달라! 😇 고런고로 이번 기회에 JPA 영속성 전이 개념을 좀 더 확실히 정리해보려 한다. 영속성 컨텍스트 (persistence context) 이 포스트를 읽으시는 분들 중 영속성 개념이 아직 생소한 분들도 계실 것 같..

Develop/Spring

[Spring Boot] Auto Increment PK Id를 노출하지 않으면서 API에 활용하는 방법

개요 평화로운 사이드 프로젝트 개발 중 팀원이 요런 코멘트를 남겨주셨다. /api/v1/users/1 < 같은 느낌으로 특정 데이터의 PK가 path variable 등 외부에 노출되는 것이 권장되지 않는다는 요지의 코멘트였다. 이때 당시에는 JWT를 이용하는 방식으로 바꿀 예정 & PK ID외에 데이터를 특정할 수 있는 방법이 마땅찮음 & 정확히 보안상의 어떤 원인이 있는지 파악 불가 등의 이유로 나중에 고민해보자! 하고 넘어갔었다. 나중에 다시 의논해보자고 했던 것이 어언 3월.. 잊고 있었던 요 코멘트가 불현득 떠올라 이번 포스팅에서 파헤쳐 보려 한다. 외부에 노출되는 PK 우리는 위와 같이 생긴 REST API를 숱하게 만들고, 사용하고, 주변에서 찾아볼 수 있다. REST의 개념 자체가 URI로..

Develop/Spring

[Spring Boot] 자바 스프링에서 처리율 제한 기능을 구현하는 4가지 방법

개요 스마트폰 어플에서 우다다다 버튼을 누르다보면 가끔 아래와 같은 메세지를 마주할 수 있다. 이런 기능들은 대부분의 사이트에서 만나볼 수 있는데, 보통 서버 안정을 위해 필수적으로 탑재하는 기능이다. 전문 용어로 처리율 제한 장치 (= Rate limiter = API Throttling)라고 부르는 이 친구, 내가 만들어 볼 순 없을까? 처리율 제한 장치와 더불어 Spring Boot에서 처리율 제한 기능을 구현할 수 있는 다양한 Java 라이브러리도 알아보자! ⚡️ 본 포스팅은 구현보다는 방법의 종류에 대해 전반적으로 알아보는 것을 목적으로 합니다 :) 실습은 Java11 / Spring Boot 2.7.6 / Gradle 8 환경에서 진행합니다. 처리율 제한 장치 (Rate Limiter = AP..

Develop/Spring

[Spring Boot] Jsoup으로 OG태그 메타 데이터 크롤링하기

개요 살면서 한 번 쯤은 url을 보낸 경험이 있을 것 같다. 나에게 보내기든, 남에게 보내기든 카톡이나 슬랙 등에 url을 공유하면 미리보기가 뜬다. 이런 미리보기 데이터는 어떻게 출력되는 걸까? 그리고 이 데이터들을 어떻게 하면 가져다 쓸 수 있을까? 🤔 미리보기가 출력되는 방식을 관리하는 OG태그에 대해 알아보고, Jsoup 라이브러리를 이용해 데이터를 수집해보자. OG (Open Graph) 프로토콜 대부분의 콘텐츠는 URL로 Facebook에 공유되므로, Facebook에 콘텐츠가 표시되는 방식을 관리하기 위해 오픈 그래프 태그로 웹사이트를 마크업하는 것이 중요합니다. - Meta for Developers Open Graph는 페이스북(메타)에서 개발한 메타데이터 프로토콜이다. 위 인용에 기재..

스껄한우디
'Develop/Spring' 카테고리의 글 목록 (2 Page)