스프링 팀 과제 PSA란?

딩딩당당·2022년 12월 3일
0

PSA란?

PSA을 알고자 하려면 먼저 Service Abstaction을 알아야 한다.

try {
	dbConnection.setAutoCommit(false);

	doSomething()...

	dbConnection.commit();

	System.out.println("Done!");

} catch(SQLException e) {
	dbConnection.rollback();
}
finally {
	...
    	dbConnection.close();
}

위는 트랜잭션 처리(커밋, 롤백, 커넥션 열고 닫음)에 대한 코드이다. 하지만 우리는 @Transactional이라는 어노테이션을 붙여 트랜잭션을 손쉽게 보장받는다.이처럼 내부적으로 작동하는 기능을 숨기고 추상화하여 개발자에게 편의성을 주는 것을 서비스 추상화(Service Abstaction)이다

위 코드처럼 JDBC 기반으로 DB에 접근하거나, JPA의 ORM 접근을 할 수도 있다. 하지만 어떤 것을 사용하더라도 개발자는 Transcational의 내부 코드를 수정하지 않는다.

하나의 추상화로 여러 서비스를 묶어둔 것을 PSA(Portable Service Abstarction)이라고 한다.

*@Controller, @GET(url) 등의 어노테이션도 마찬가지이다.

profile
자바공부해요흑흑

0개의 댓글

관련 채용 정보