서비스를 보호하기 위한 요청 양을 제한하는 몇가지 방법이 있습니다.
그 중 bucket4j를 이용한 방법 몇가지를 간략히 메모해두겠습니다.
우선 참고 링크들
POC 테스트 목적의 간단히 개발한 코드
- 공식 문서
- 기본 설명
- IP기반 limit적용
- spring-cloud Gateway에 IP기반 필터 적용 예
서비스를 보호하기 위한 요청 양을 제한하는 몇가지 방법이 있습니다.
그 중 bucket4j를 이용한 방법 몇가지를 간략히 메모해두겠습니다.
우선 참고 링크들
POC 테스트 목적의 간단히 개발한 코드
주의: 러프하게 정리 중인 자료인데 마무리가 안 되어 있어서 잘못된 내용이 있을 수 있습니다.
----
개발 중에 대기열 시스템이 필요한 경우가 종종 있습니다.
관련 내용을 간략하게 메모 목적으로 정리해둡니다.
1. 만들려고 하는 대기열 시스템의 개략적인 내용
- 좀 된 자료로서 몇가지는 변경이 필요(예. vert.x대신 armeira등)
2. 기타 참고할만한 내용들 메모
- https://fr.slideshare.net/devcatpublications/ndc2019-142692683
- 내용 중 조금 수정/고려해야할 부분이 있어보임(ex. 대기번호를 매번 보내서 비교를 안해도 되는 방법 고민? 등)
- https://www.cloudflare.com/ko-kr/application-services/products/waiting-room/
Windows환경에서 Rust빌드시 아래와 같은 에러가 발생
the msvc targets depend on the msvc linker but `link.exe` was not found
아래의 명령어로 GNU방식으로 변경해준다.(실제 Windows환경이지만 리눅스 GNU개발하는 환경으로 셋팅)
rustup default stable-x86_64-pc-windows-gnu
Java에서 Optional이라는 기능이 존재합니다.
그런데 제대로, 문제없이, 읽기 좋은 소스로 작성하려면 생각보다 조금 신경 써야할 부분들이 있습니다.
- 실제 프로덕트 코드에서 개발자들이 실수하는 경우를 많이 봤음 << 중요, 실수가 잦다면 코드 퀄리티를 관리해야하는 관리자 입장에서는 프로젝트 컨벤션으로 사용 금지로 해야할 수도 있음
그리고 개인적으로는 fast-fail형태가 맞다고 생각하기에 파라미터 검사(데이터 검사)를 앞쪽에서 잘 해야한다고 생각합니다.
이후 코드는 최대한 읽기 좋게 작성하고, 성능을 생각하면 불필요하게 컴퓨팅 파워를 쓰는 코드 자체를 없애는게 맞다고 생각합니다.(임베디드 개발했던 경험을 떠올려봐도.... 컴퓨터에게 불필요한 일 자체를 시키면 안됨)
검색해서 메모 목적으로 몇가지 참고 내용을 작성해둡니다.
Java Optional의 API Note를 보면 Optional을 개발한 Brian Goetz도 의도한 형태로 사용하지 않는 경우가 많아서인지 Note까지 작성해뒀습니다.(사실 언어 설계자가 의도한데로만 사용하도록 개발/설계해뒀으면 하는 아쉬움이..)
1. Java Optional API Note
2. 기타 참고 링크들
apple in app purchase(IAP)를 API로 가져오기 (0) | 2022.09.08 |
---|---|
java 11 vs 17 performance (0) | 2022.09.02 |
간단한 월 달력 생성 프로그램 (0) | 2022.05.10 |
Java의 java.time.LocalDateTime 관련 몇가지 사용 예 (0) | 2022.04.15 |
java stream을 이용한 정렬 (0) | 2022.01.10 |
twitch drops 서비스를 개발하기 위한 내용을 간단히 정리합니다.(메모 목적이라서 생략된 부분이 많습니다.)
이미 원신(링크) 등에서 사용하고 있어서 참고하였습니다.
이미지 리사이징 관련 정리(ing) (0) | 2023.05.09 |
---|---|
headless CMS 정리 - 작성 중 (0) | 2022.08.05 |
개발 직군 Roadmaps (0) | 2022.04.27 |
채용시 나의 기준 (0) | 2021.11.05 |
이메일을 이용한 업무처리 방법(논리적인 메일 커뮤니케이션 방법 등) (0) | 2021.08.10 |
아직 Jsp를 쓰는 프로젝트에서 Maven multi module 프로젝트를 셋팅했는데, JSP를 못 찾는 문제가 발생했습니다.
IntelliJ Working directory에 $MODULE_WORKING_DIR$ 를 셋팅해주면 문제가 해결됩니다.
- 참고 링크
샘플
spring boot admin 적용시 client호출에 인증처리를 위한(actuator) 방법 (0) | 2020.08.28 |
---|---|
Spring boot 에서 JSP의 제약 (0) | 2019.05.26 |
spring boot 핫스왑 적용방법(with springloaded) (0) | 2019.04.16 |
spring boot embedded tomcat 사용시 특정 주기마다 느려지는 원인파악 디버깅 메모 - 1 (0) | 2016.07.04 |
파일업로드 Rest full 기능 샘플 소스 (0) | 2016.06.28 |
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.Period;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import java.util.Locale;
/**
* 월 달력 생성기
*
* @author
*/
public class Test {
public static void main(String[] args) {
final int addMonth = 2; //2개월 후 데이터 생성
DateTimeFormatter fmtMonth = DateTimeFormat.forPattern("yyyyMM");
DateTimeFormatter fmtDay = DateTimeFormat.forPattern("yyyyMMdd");
//대상 월
DateTime now = DateTime.now();
String strTargetMonth = now.plus(Period.months(addMonth)).toString(fmtMonth);
DateTime dt = DateTime.parse(strTargetMonth, fmtMonth);
int startDay = dt.dayOfMonth().getMinimumValue();
int endDay = dt.dayOfMonth().getMaximumValue();
String strDay;
String dayOfWeek;
//boolean isHoliDay = false;
for (int i = startDay; i <= endDay; i++) {
strDay = strTargetMonth + StringUtils.leftPad(Integer.toString(i), 2, "0");
dayOfWeek = DateTime.parse(strDay, fmtDay).dayOfWeek().getAsShortText(Locale.KOREA);
System.out.println(String.format("%s | %s", strDay, dayOfWeek));
}
}
}
java 11 vs 17 performance (0) | 2022.09.02 |
---|---|
Java Optional에 대한 생각 (0) | 2022.07.12 |
Java의 java.time.LocalDateTime 관련 몇가지 사용 예 (0) | 2022.04.15 |
java stream을 이용한 정렬 (0) | 2022.01.10 |
대용량 처리시 부하분산을 위한 데이터 분할 처리(간략) (0) | 2021.12.10 |
크롬에서 fiddler로 트래픽 캡쳐가 안될때 (0) | 2021.01.25 |
---|---|
스크린 캡쳐 프로그램 ShareX- 무료 (1) | 2020.09.12 |