전체 글(411)
-
Spring Transaction - 프로그램에서 처리
- 프로그램에서 트랜잭션 처리 import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.support.DefaultTransactionDefinition; public class PragrammaticBoardService implements BoardService { private PlatformTransactionManager transactionManager..
2010.08.22 -
Spring Transaction
Transaction은 ACID의 4가지 속성을 가진다. Atomicity (원자성) 트랜잭션 내에 있는 모든 작업이 완료되거나 모든 작업이 완료되지 않아야 한다. 즉, 트랜잭션 내의 작업 중 하나라도 에러가 발생하면 트랜잭션 내의 모든 작업이 Rollback되어야 한다. Consistency (일관성) 트랜잭션 중에 오류 없이 유효한 데이터만 데이터베이스에 저장되어야 한다. Isolation (격리성) 트랜잭션 중에 변경된 내용이 트랜잭션이 완료되기 전까지 다른 트랜잭션에 영향을 미쳐서는 안된다. Durability (지속성) 트랜잭션이 완료된 경우 시스템 고장이나 네트워크 에러 등으로 데이터가 유실되지 않고 정상적으로 기록되어야 한다. Spring 프레임워크는 PlatformTransactionMan..
2010.08.22 -
Spring - 빈 설정 파일 관리
1. 수평적 분리 방법 각 컴포넌트마다 하나의 설정 파일을 가지며, 해당 컴포넌트에 관련한 모든 정보(UI, 비즈니스, 퍼시스턴스)를 가지는 구조 applicationContext-user.xml : User컴포넌트의 UI게층, 비즈니스 계층, 퍼시스턴스 계층의 모든 정보 applicationContext-board.xml : Board컴포넌트의 UI게층, 비즈니스 계층, 퍼시스턴스 계층의 모든 정보 각 컴포넌트마다 설정 파일을 관리할 수 있고 명확한 분리가 가능하므로 효율적으로 관리가 가능. 그러나, 각 계층에서 공통적인 정보를 각 컴포넌트마다 중복해서 설정해야 한다는 단점이 있다. 2. 수직적 분리 방법 각 계층마다 하나씩의 빈 설정 파일을 가지는 방법 applicationContext-ui.xml ..
2010.08.22 -
그동안도 너무나 귀엽고 사랑스러운 이시영
이달초 파리에서 열린 가방패션쇼에서 다녀오셨단다... 부태희 이후 두문불출하더니...파리까지 점령(!)하러 갔구낭...ㅋㅋ
2010.08.20 -
Spring AOP - Logging, Exception 구현
1. Target Logging, Exception등을 제외한 단지 비즈니스 로직만을 포함하고 있어야 한다. ※ AOP를 적용한다고 해서 일정한 패턴이 없는 모든 Logging을 제거할 수는 없다. 해당 메써드내에서만 추가되는 Logging 메시지 같은 경우에는 과거와 같은 방식으로 구현할 수 밖에 없다. 애플리케이션을 개발할 때 애플리케이션 개발을 위하여 세운 정책(이것이 Aspect이다.)은 일정한 패턴이 있기 때문에 이를 Advice로 구현하는 것이 가능하지만 일정한 패턴없이 구현되는 부분에 대해서는 과거와 같은 방식으로 개발할 수 없다는 것을 의미한다. 2. Advice Target 클래스에 추가적인 기능을 지원하기 위한 목적으로 사용되는 것. - Logging 처리를 담당할 Advice = Sp..
2010.08.19 -
Spring AOP (Aspect Oriented Programming)
객체 지향 프로그래밍(OOP: Object Oriented Programming)이 비즈니스 업무에 대한 확장성과 독립성을 가능하게 함으로서 유지보수성을 좋게한 것은 사실이지만, OOP 이전의 절차적 프로그램에서 나타나던 Logging, Exception처럼 비즈니스 로직과는 관계없는 코드들이 핵심적인 비즈니스 로직을 담당하는 소스코드와 함께 애플리케이션 전체 영역에 걸쳐서 중복된 소스코드가 존재하고 있기 때문에 Logging, Exception 정책이 바뀔 경우 개발자들이 소스를 일일이 찾아서 수정해줘야하는 번거로움을 감수할 수 밖에 없었던 한계점을 극복하기 위한 대안으로 등장한 것. AOP는 OOP와 경쟁관계에 있는 것이 아니라 상호 보완적인 관계로 새롭게 등장한 패러다임이다. 그러므로 AOP는 지금..
2010.08.19