2023-02-04-TIL

Today I Learned

Go 1.20 Release Notes

  • https://go.dev/doc/go1.20

Hibernate Reactive

기본적으로 JPA는 동기방식으로 동작한다. 따라서 스프링 환경에서 멀티스레딩의 비동기 방식으로 ORM을 사용하고 싶다면 Hibernate Reactive같은 ORM을 R2DBC와 조합해서 사용해야한다.

  • https://hibernate.org/reactive/
  • https://jiwhunkim.github.io/develop/2020/02/01/spring-using-together-jpa-and-r2dbc.html
  • https://www.baeldung.com/spring-data-r2dbc

HikariCP Deadlock

  • https://techblog.woowahan.com/2664/

OLTP vs OLAP

  • https://www.stitchdata.com/resources/oltp-vs-olap/

@Builder and Builder Pattern

  • https://junha.tistory.com/25
  • https://www.baeldung.com/lombok-builder
  • https://www.youtube.com/watch?v=FPeOxVtpHDA
  • https://www.tutorialspoint.com/design_pattern/builder_pattern.htm
  • https://refactoring.guru/design-patterns/builder/java/example#example-0–Demo-java
  • https://www.digitalocean.com/community/tutorials/builder-design-pattern-in-java
  • https://betterprogramming.pub/understanding-the-builder-design-pattern-f4f56fa18c9
  • https://medium.com/javarevisited/design-patterns-101-factory-vs-builder-vs-fluent-builder-da2babf42113
  • https://www.geeksforgeeks.org/builder-design-pattern/
  • https://stackoverflow.com/questions/757743/what-is-the-difference-between-builder-design-pattern-and-factory-design-pattern
  • https://stackoverflow.com/questions/31885326/best-practice-and-implementation-of-a-builder-pattern-when-using-jpa

Java Lonbok Best Practices

  • https://zhenye-na.github.io/blog/2022/04/23/java-best-practices-lombok-junit5-and-mockito.html

Redis

  • https://build-your-own.org/

Transaction ID

  • https://support.okta.com/help/s/article/How-to-find-the-transaction-ID-in-an-event-log-what-is-it-used-for-when-and-how-to-use-it?language=en_US
  • https://www.baeldung.com/spring-transaction-active

Zipkin and Sleuth

  • https://twofootdog.tistory.com/65
  • https://velog.io/@dnjscksdn98/Spring-Boot-MSA-Sleuth-and-Zipkin-Distributed-tracing
  • https://docs.spring.io/spring-cloud-sleuth/docs/current-SNAPSHOT/reference/html/integrations.html
  • https://stackoverflow.com/questions/48211360/how-to-implement-sleuth-tracing-with-feign-builder
  • https://sarc.io/index.php/cloud/2190-sleuth-zipkin#:~:text=Sleuth%EB%9E%80%3F,%EC%9D%B4%EB%A5%BC%20Zipkin%EC%97%90%20%EC%A0%84%EB%8B%AC%ED%95%9C%EB%8B%A4.
  • https://www.baeldung.com/spring-cloud-sleuth-get-trace-id

Circuit Breaker Pattern

  • https://learn.microsoft.com/en-us/azure/architecture/patterns/circuit-breaker

Aspect Weaving

위빙이란 Aspect 클래스에 정의 한 Advice 로직을 타깃에 적용하는 것을 의미한다. 쉽게 말해서 공통코드(advice)를 핵심 로직 코드에 삽입하는 것이 위빙이다.

  • https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=tmondev&logNo=220564638014

Spring Transaction

선언적 트랜잭션이란,

  • https://sigridjin.medium.com/spring-transaction-%EA%B4%80%EB%A6%AC%EC%97%90-%EB%8C%80%ED%95%9C-%EB%A9%94%EB%AA%A8-f391fd2885b4
  • https://shxrecord.tistory.com/213
  • https://devmg.tistory.com/m/250

Spring @Transactional and Snapshot

  • https://www.baeldung.com/spring-transactional-propagation-isolation

Multi Module vs MSA

  • https://velog.io/@vpdls1511/Multi-Module-VS-MSA
  • https://hyeon9mak.github.io/woowahan-multi-module/
  • https://letsmakemyselfprogrammer.tistory.com/60
  • https://angryfullstack.tistory.com/entry/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C-%EC%86%8C%ED%94%84%ED%8A%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98MSA-3%ED%8E%B8-%EB%A9%80%ED%8B%B0-%EB%AA%A8%EB%93%88Multi-Module
  • https://jojoldu.tistory.com/444
  • https://github.com/always0ne/springboot-multimodule-msa
  • https://www.daddyprogrammer.org/post/13156/spring-boot-change-multi-module/
  • https://anaog.tistory.com/m/25
  • https://techblog.woowahan.com/2637/