개요 최근 좋은 기회로 새로운 팀에 합류하게 되었다🚀 사이드 프로젝트를 진행하기 위해 백엔드 개발 방식을 논의하던 중, 아래와 같은 제안을 마주했다. Facade 컴포넌트..? Facade 패턴을 책에서 읽긴 했지만, 스프링 부트 프로젝트를 하면서 직접 사용해 본 적은 없어서 감이 쫌 안잡혔다. Interface와 Implementation으로 나누는 거랑 크게 다른건가? 🤔 그래서 오늘은 퍼사드 패턴에 대해 다시 한 번 복기하고, SRP 원칙과 연관하여 살펴보려고 한다 🚀 퍼사드 패턴 (Facade Pattern) 일단 스프링에 퍼사드를 적용하기 전에 퍼사드 패턴이 뭔지부터 알아보자. 퍼사드 패턴의 정의는 아래와 같다. 서브 시스템에 있는 일련의 인터페이스를 통합 인터페이스로 묶는 것. 고수준 인터페이..
개요 코틀린을 쌈싸먹자고 다짐한지 벌써 1달.. 놀랍게도 앞서 올렸던 포스트 이후로 단 한 번도 코틀린을 공부하지 않았다 😇 프레임워크는 공부하는게 마냥 재밌는데, 프로그래밍 언어 (코틀린)는 왜 손이 잘 안갈까 고민을 하다가, 공식 문서를 보고 목차 하나하나씩 따라가는 공부법이 좀 루즈해서 관심이 가지 않는다는 결론을 내렸다. 아예 내가 개발을 처음 해보고, 사용할 수 있는 프로그래밍 언어가 하나도 없다면 물론 공식 문서를 보며 차근차근 이해하는게 좋다. 하지만 내가 이미 몇 가지 프로그래밍 언어를 다룰 줄 안다면, 그리고 새로운 언어로 당장 개발을 시작해야 한다면 꼭 고급 문법들을 알아야 할 필요는 없을 것 같다. (Ex. Java로 간단한 계산기 프로그램을 만든다고 가정했을 때, synchroniz..
개요 평화로운 사이드 프로젝트 개발 중 팀원이 요런 코멘트를 남겨주셨다. /api/v1/users/1 < 같은 느낌으로 특정 데이터의 PK가 path variable 등 외부에 노출되는 것이 권장되지 않는다는 요지의 코멘트였다. 이때 당시에는 JWT를 이용하는 방식으로 바꿀 예정 & PK ID외에 데이터를 특정할 수 있는 방법이 마땅찮음 & 정확히 보안상의 어떤 원인이 있는지 파악 불가 등의 이유로 나중에 고민해보자! 하고 넘어갔었다. 나중에 다시 의논해보자고 했던 것이 어언 3월.. 잊고 있었던 요 코멘트가 불현득 떠올라 이번 포스팅에서 파헤쳐 보려 한다. 외부에 노출되는 PK 우리는 위와 같이 생긴 REST API를 숱하게 만들고, 사용하고, 주변에서 찾아볼 수 있다. REST의 개념 자체가 URI로..
개요 스마트폰 어플에서 우다다다 버튼을 누르다보면 가끔 아래와 같은 메세지를 마주할 수 있다. 이런 기능들은 대부분의 사이트에서 만나볼 수 있는데, 보통 서버 안정을 위해 필수적으로 탑재하는 기능이다. 전문 용어로 처리율 제한 장치 (= Rate limiter = API Throttling)라고 부르는 이 친구, 내가 만들어 볼 순 없을까? 처리율 제한 장치와 더불어 Spring Boot에서 처리율 제한 기능을 구현할 수 있는 다양한 Java 라이브러리도 알아보자! ⚡️ 본 포스팅은 구현보다는 방법의 종류에 대해 전반적으로 알아보는 것을 목적으로 합니다 :) 실습은 Java11 / Spring Boot 2.7.6 / Gradle 8 환경에서 진행합니다. 처리율 제한 장치 (Rate Limiter = AP..