2018/04

개발/Spring

MyBatis cannot change the ExecutorType when there is an existing transaction 오류

스프링 배치 잡을 실행할 때 MyBatis 쿼리 실행 부분에서 다음과 같은 오류가 발생하는 경우가 있었다. cannot change the ExecutorType when there is an existing transaction이 에러는 존재하는 트랜잭션이 있을 경우 MyBatis의 ExecutorType (SIMPLE, BATCH, REUSE) 을 변경할 수 없다는 의미이다. 원인 스프링 배치 잡에서만 날 수 있는 오류는 아니고 MyBatis를 사용하고 트랜잭션 설정된 부분이 있다면 발생할 수 있을 것이다. 트랜잭션으로 묶여있는 범위 내에서는 배치 잡 내에서 동일 데이터 소스에 대해서는 동일 SqlSessionTemplate을 사용하게 될 것인데, ExecutorType은 SqlSessionTempl..

개발

모바일 API 디자인 참고 사항

웹 사이트 서버와 모바일 앱 API 서버는 기술적인 부분에서 비슷한 부분이 많지만 앱 API 서버라는 특성 때문에 조금 신경 써야할 부분도 있기에 API 디자인 시 참고할 만한 내용들을 찾아보고 정리한 내용이다. API 서버는 한번 API가 클라이언트에게 나가고 나면 변경하기가 힘들다.웹 사이트는 클라이언트 코드와 서버 코드 모두 웹 서버에서 제공하기 때문에 두 부분을 동시에 변경하는 것이 가능하지만, 앱 같은 경우에는 일반적으로 앱 스토어를 통해서 배포되기 때문에 동시에 변경할 수도 없고 사용자가 업데이트 하지 않으면 계속해서 구 버전을 사용할 수도 있다. 앱을 업데이트하지 않으면 사용할 수 없도록 강제 업데이트하는 방법이 있긴 하지만 되도록이면 피해야 한다. REST를 준수하는 것은 좋지만 그것을 목..

bebeside77
'2018/04 글 목록