Skip to content

Fox Transactions

NeoDEEX 의 Fox Transactions 는 COM+ 와 유사한 선언적 트랜잭션 처리와 AOP(Aspect Oriented Programming) 기반의 수행 환경(execution context)을 제공합니다. 어플리케이션은 NeoDEEX.Transactions 패키지를 통해 FoxBizBase 혹은 FoxDacBase 클래스에서 파생된 클래스를 정의할 수 있습니다.이 클래스에서 데이터베이스에 접근하는 코드를 작성하면 트랜잭션이 자동으로 시작되고 예외 발생 여부에 따라 트랜잭션은 커밋되거나 롤백됩니다.

Note

Fox Transactions 의 선언적 자동 트랜잭션은 COM+ 와 매우 유사하지만 COM+ 를 전혀 사용하지 않습니다. Fox Transactions 은 .Net Core 의 크로스 플랫폼 능력 덕택에 일부 기능을 제외하고 Linux 환경에서도 사용이 가능합니다!

Getting Started

Fox Transactions 가 어떻게 선언적으로 자동 트랜잭션을 사용할 수 있는지 간단한 예제를 통해 배울 수 있습니다.

Why Fox Transactions?

트랜잭션 처리는 개발자에게 상당한 주의와 비용을 요구합니다. 데이터베이스 접근 도중 오류가 발행하면 트랜잭션 롤백을 해야 하며 성공적인 처리를 커밋을 수행해야 합니다. 하나의 트랜잭션에서 여러 데이터베이스 호출이 수행된다면, 개발자는 Connection 객체를 여러 메서드 호출 사이에서 유지해야 하며 이러한 메서드 호출 사이에서 발생할 수 있는 다양한 오류에 대해 롤백 처리도 수행해야 합니다. 코드의 재사용성을 고려한다면 더욱 코드는 복잡해 질 수 있습니다.

Fox Transactions 는 복잡한 트랜잭션 처리를 단순화 시켜줍니다. 트랜잭션은 메서드 시작과 동시에 자동으로 시작되며 메서드 내에서 접근하는 데이터베이스 연결은 트랜잭션에 자동으로 참여(enlist)하게 됩니다. 개발자는 트랜잭션에 참여한 연결을 유지할 필요가 없으며 데이터베이스 접근이 완료되면 연결을 닫을 수 있습니다. 메서드가 종료되지 않는한 연결이 닫히더라도 트랜잭션은 여전히 유효한 채로 남아 있습니다. 트랜잭션의 커밋/롤백 여부는 메서드 종료시 예외 발생 여부로 결정됩니다. 메서드가 예외 발생에 의해 종료되는 경우 트랜잭션은 롤백되며 그렇지 않은 경우 트랜잭션은 커밋됩니다.

Fox Transactions 의 선언적 자동 트랜잭션 처리 기능은 개발자가 트랜잭션 처리보다 어플리케이션의 로직에 집중할 수 있도록 도와주며, 트랜잭션 처리에 경험과 지식이 부족한 개발자도 손쉽고 빠르게 트랜잭션 처리 어플리케이션을 작성할 수 있도록 해줍니다.