wookcode

MSA 환경에서의 분산트랜잭션 관리하기위한 패턴들

서론 마이크로서비스 아키텍처(MSA)는 독립적인 서비스로 분할하여 개발과 관리의 복잡성을 줄여주는 동시에 더 나은 확장성과 장애 격리를 가능하는 장점이 있습니다. 그러나 이러한 장점에도 불구하고, MSA는 분산 시스템에서 발생하는 복잡한 트랜잭션과 데이터 일관성 문제를 해결해야 합니다. 그래서, MSA 환경에서 분산 트랜잭션을 해결하기 위한 패...

item 24. 멤버 클래스는 되도록 static으로 만들어라

중첩클래스 다른 클래스 안에 정의된 클래스를 말한다. 자신을 감싼 바깥 클래스에서만 사용되어야 한다. 중첩 클래스를 사용함으로써 불필요한 노출을 줄여 캡슐화를 할 수 있고 유지보수하기 좋은 코드를 작성할 수 있다. 중첩 클래스 종류 정적 멤버 클래스 비정적 멤버 클래스 익명 클래스 지역 클래스 정적 멤버 클래스 정적 멤...

item 16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라

개발을 하다보면 인스턴스 필드들만 모아놓는 목적만 가진 아래와 같은 클래스를 구성하는 경우가 있다. class Point { public double x; public double y; } 이러한 클래스 형태로 구현하였을 때는 클라이언트에서 필드에 직접 접근할 수 있으므로 캡슐화의 이점을 제공하지 못한다. 그리고 또 다른 단점들은 ...

item 10. equals는 일반 규약을 지켜 재정의 하라

equals는 재정의하기 쉬워보이지만 곳곳에 함정이 있다. 문제를 회피하는 가장 쉬운 길은 아예 재정의하지 않는 것이다. 그러니 다음에 해당된다면 재정의하지 않는것이 좋다. equals를 재정의 하면 안되는 경우 각 인스턴스가 본질적으로 고유할 때 값 클래스(Integer, String)가 아닌 동작하는 개체를 표현하는 클래스 ex) Thread...