2023-02-23-TIL

Today I Learned

@Transactional and Propagation

  • https://repo.yona.io/doortts/blog/issue/12
  • https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/transaction/annotation/Propagation.html

Problem Object

  • https://github.com/zalando/problem
  • https://www.rfc-editor.org/rfc/rfc7807

API Throttling

Throttle이란 목, 파이프, 같은 어떤 관을 조르거나 조절하는 의미를 가지고 있다. 그리고 API Throttling이란, 요청에 속도와 횟수를 제한하는 것을 말한다. Rate Limit 기능이다. 보통 API Gateway에서 요청이 너무 많으면 429 Too Many Requests 응답을 발생시키도록 임계치를 조절할 수 있다.

  • https://medium.com/@jaeyeoulahn/%EC%B4%88%EB%B3%B4%EA%B0%9C%EB%B0%9C%EC%9E%90-api-gateway-throttling-%EC%84%A4%EA%B3%84-%EB%B0%8F-%EA%B5%AC%ED%98%84-68cbe774dd5
  • https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html
  • https://www.tibco.com/reference-center/what-is-api-throttling

API Versioning

  • https://www.wallarm.com/what/what-is-api-versioning-standards-strategy
  • https://blog.bitsrc.io/api-versioning-dos-and-don-ts-4bd9db073f2a
  • https://www.digitalml.com/api-versioning-best-practices/
  • https://stackoverflow.com/questions/389169/best-practices-for-api-versioning
  • https://www.akana.com/blog/api-versioning
  • https://www.xmatters.com/blog/blog-four-rest-api-versioning-strategies/

POST vs PUT vs PATCH

  • https://repo.yona.io/doortts/blog/issue/12

ERD Tools

  • https://dbdiagram.io
  • https://vertabelo.com/blog/er-diagram-tools/

Hibernate

  • https://happy-coding-day.tistory.com/entry/Hibernate-JPA-Querydsl%EB%8A%94-%EA%B3%BC%EC%97%B0-%EC%A2%8B%EC%9D%80-%EB%8F%84%EA%B5%AC%EC%9D%BC%EA%B9%8C

Complex Query with JPA and QueryDSL

  • https://www.inflearn.com/questions/40192/qdsl%EB%A1%9C-%EB%B3%B5%EC%9E%A1%ED%95%9C-%EC%BF%BC%EB%A6%AC%EB%A5%BC-%EC%96%B4%EB%8A%90%EC%A0%95%EB%8F%84-%EC%BB%A4%EB%B2%84-%EA%B0%80%EB%8A%A5%ED%95%9C%EA%B0%80%EC%9A%94
  • https://kth990303.tistory.com/378
  • https://gimquokka.github.io/spring%20data/Querydsl%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%9C-%EB%B3%B5%EC%9E%A1%ED%95%9C-%EB%8F%99%EC%A0%81%EC%BF%BC%EB%A6%AC-%EA%B5%AC%ED%98%84%EA%B8%B0/
  • https://velog.io/@peppermint100/JPA%EC%97%90%EC%84%9C-%EB%B3%B5%EC%9E%A1%ED%95%9C-%EC%BF%BC%EB%A6%AC-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0

CQRS Pattern

  • https://learn.microsoft.com/en-us/azure/architecture/patterns/cqrs
  • https://microservices.io/patterns/data/cqrs.html
  • https://martinfowler.com/bliki/CQRS.html
  • https://always-kimkim.tistory.com/entry/cqrs-pattern

Saga Pattern

  • https://microservices.io/patterns/data/saga.html
  • https://learn.microsoft.com/en-us/azure/architecture/reference-architectures/saga/saga
  • https://azderica.github.io/01-architecture-msa/
  • https://www.baeldung.com/cs/saga-pattern-microservices

Spring Batch Admin

스프링 배치에서 자체적으로 어드민 페이지를 제공하는 것 같다. 하지만 너무 옛날에 개발되었고 7~8년 전 이후로는 개발한 기록이 없어서 사용하기가 꺼려진다.

  • https://docs.spring.io/spring-batch-admin/2.x/
  • https://docs.spring.io/spring-batch-admin/trunk/getting-started.html
  • https://docs.spring.io/spring-batch-admin/2.x/reference/reference.xhtml
  • https://github.com/spring-attic/spring-batch-admin

Redis Increments

  • https://m.blog.naver.com/wideeyed/221987968760
  • http://redisgate.kr/redis/command/incr.php
  • https://redis.io/commands/incr/