개발 - Java (2) 썸네일형 리스트형 JPA에서 분산 Transaction (ChainedTransactionManager) 최근에 작업하는 것이 최소 2대의 DB에 JPA를 통해서 INSERT를 해야해서 어렴풋이만 알고 있던 분산 Transaction에 대해서 정리해 보았다. 테스트 케이스 - (1) MySQL DB 1 -> (2) MySQL DB 2 -> (3) MySQL DB 1 -> (4) MySQL DB 2 순서대로 INSERT 정상인 경우MySQL DB 1 MySQL DB 2 Transaction이 깨지는 경우테스트 케이스에서 (4) 케이스에서 DB에러가 발생하고 (3) 케이스까지 실행하고 Break를 통해 멈췄다. 2개의 DB 모두가 전체적으로 Transaction이 되어야 하므로 ChainedTransactionManager로 설정하였다.(분산 Transaction이 되어야 한다는 의미) Transaction 중.. Jackson을 통한 JSON API 이용시 Local 기준 시간 표시 보통 C#은 Json.NET을 Java는 Jackson을 통해서 Object를 JSON으로 Serialize하는데 두 라이브러리 모두 사용법은 비슷비슷하다. 하지만 날짜 처리에 관련해서는 두 라이브러리가 조금 다르게 동작한다. (국제화도 있다보니 동작의 기준이 어떤것이 좋다 나쁘다로 구분할 사항은 아닌듯 싶다) C#이 더 익숙해서 Json.NET와 동일하게 Java의 Jackson도 Date 타입을 변환할때 기본적으로 로컬 타임 기준으로 표시를 해줄줄 알았는데 실제로는 다르게 동작한다. Java의 Jackson은 timezone을 지정하지 않으면 UTC +0을 기준으로 포맷팅을 해버린다. 그래서 화면에서 우리나라 시간인 UTC +9로 표시하려면 아래와 같이 2개의 방법이 있다. 1. Jackson Ann.. 이전 1 다음