분산 트랜잭션의 특징은, "한 쪽이 실패하면 나머지 참여 트랜잭션들 또한 실패처리 되어야 한다"는 점이다. 그렇지 않으면 데이터의 일관성과 원자성을 보장할 수 없다.
"통제(락) 없인, 그 어떤 방법으로도 동시접근을 효율적으로 컨트롤 할 수 없기 때문이다" 라던데 상황에 따라 예외는 존재한다(ex: read만 하는 동시접근일경우 락이 필요할까?).
싱글톤 패턴 구현 방법은 크게 두 가지로 나뉘는데, 1. 메모리가 올라올 때 생성하는 방법 2. 객체가 호출될 때 생성하는 방법
위 예시처럼 삭제될 구 클래스는 이름에 글자 하나(여기선 hello의 'l')을 빼서 뉴 클래스가 컴파일 되는데 문제 없게 한다.
그 공유된 장소에 다수의 개발자가 코드를 동시에 관리하며, 이는 곧 버전관리가 된다는 말이다. git이 대표적인 예시다.