반응형 도서기록/토비의 스프링8 8장 스프링이란 무엇인가 8.1 스프링 정의자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크8.2 스프링 목적8.2.1 엔터프라이즈 개발 복잡함복잡함의 근본적 이유기술적 제약조건과 요구사항이 늘어간다.보안, 안정성, 확장성 면에서 뛰어난 성능과 서비스 요구가 늘어남엔터프라이즈 애플리케이션이 구현해야할 핵심기능인 비즈니스 로직의 복잡함이 증가한다.이전에는 복잡한 계산 혹은 빠른 분석 작업이 필요한 한정적 영역에서만 IT 시스템을 사용함.현재는 대부분의 기업의 핵심 업무를 엔터프라이즈 시스템을 이용해 처리함복잡함을 가중시키는 원인비즈니스 로직의 복잡함과 기술의 복잡함으로 인하여 이해하기 힘든 방식으로 얽혀있다.8.2.2 복잡함을 해결하려는 도전근본적인 복잡함근본적 복잡함 원인은 제거 대상이 아니다.기술적.. 2025. 6. 7. 7장 스프링 핵심 기술의 응용 - 1 7.1 SQL과 DAO의 분리SQL 변경이 생각보다 잦고, 이 때마다 DAO 코드를 수정하고 컴파일하는 것은 위험하므로 이를 분리하는 작업에 도전한다.7.1.1 XML 설정을 이용한 분리개별 SQL 프로퍼티 방식SQL 을 프로퍼티로 만들고 이를 XML에서 지정하도록 한다.매번 새로운 SQL이 필요할 때마다 프로퍼티를 추가하고 DI를 위한 변수와 수정자 메소드를 만들어야 하는 단점이 있다.SQL 맵 프로퍼티 방식Map 타입의 sqlMap 프로퍼티를 추가한다.sqlMap 프로퍼티에 넣기 위해 과 태그를 태그 내부에 넣어주어서 선언한다.7.1.2 SQL 제공 서비스SQL 서비스 인터페이스DAO 가 사용할 SQL 서비스의 기능은 SQL 에 대한 키 값을 전달하면 그에 대한 SQL을 돌려주는 것이다.스프링 설정.. 2025. 5. 24. 6장 AOP - 2 6.4 스프링의 프록시 팩토리 빈6.4.1 ProxyFactoryBean스프링은 일관된 방법으로 프록시를 만들 수 있게 도와주는 추상 레이어를 제공한다.스프링의 ProxyFactoryBean은 프록시를 생성해서 빈 오브젝트로 등록하게 해주는 팩토리 빈이다.기존 TxProxyFactoryBean 과 달리, 프록시를 생성하는 작업만 담당하고, 부가 기능은 별도 빈에 둘 수 있다.ProxyFactoryBean 이 생성하는 프록시에서 사용할 부가기능은 MethodInterceptor 인터페이스를 구현해서 만든다.MethodInterceptor의 invoke() 메소드는 ProxyFactoryBean 으로부터 타깃 오브젝트에 대한 정보까지 같이 제공받는다.따라서, 타깃이 다른 여러 프록시에서 함께 사용할 수 있고.. 2025. 4. 26. 6장 AOP - 1 6.1 트랜잭션 코드의 분리6.1.1 메소드 분리public void upgradeLevels() throws Exception { TransactionStatus status = this.transactionManager.getTransaction(new DefaultTransactionDefinition()); try { List users = userDao.getAll(); for (User user : users) { if (canUpgradeLevel(user)) { upgradeLevel(user); } } this.transactionManager.commit(sta.. 2025. 4. 19. 5장 서비스 추상화 - 2 5.2 트랜잭션 서비스 추상화5.2.3 트랜잭션 동기화Connection 파라미터 제거스프링에서 제공해주는 트랜잭션 동기화(transaction synchronization) 은 트랜잭션을 시작하기 위해 만든 Connection 오브젝트를 특별한 저장소에 보관해두고, 이후에 호출되는 DAO 의 메소드에서는 저장된 Connection 을 가져다가 사용하게 한다. 이는 DAO가 사용하는 JdbcTemplate이 트랜잭션 동기화 방식을 이용하도록 하는 것이다.트랜잭션 동기화 저장소는 작업 스레드마다 독립적으로 Connection 오브젝트를 저장하고 관리하기 때문에 다중 사용자를 처리하는 서버의 멀티스레드 환경에서도 충돌날 염려가 없다.트랜잭션 동기화 적용스프링이 제공하는 트랜잭션 동기화 클래스는 Transac.. 2025. 4. 9. 5장 서비스 추상화 - 1 5.1 사용자 레벨 관리 기능 추가아래와 같은 비즈니스 로직을 추가한다고 가정한다.사용자의 레벨은 basic, silver, gold 세가지 중 하나이다.사용자가 처음 가입하면 basic, 이후 활동에 따라 한단계씩 업그레이드 된다.가입 후 50회 이상 로그인하면 basic 에서 silver 레벨이 된다.silver 레벨이면서 30번 이상 추천을 받으면 gold 레벨이 된다.사용자 레벨의 변경 작업은 일정한 주기를 가지고 일괄적으로 진행된다. 변경 작업 전에는 조건을 추엊ㄱ하더라도 레벨의 변경이 일어나지 않는다.5.1.1. 필드 추가사용자의 레벨을 저장할 필드가 필요하다. 만약 int 값으로 레벨을 관리한다고 예를 들었을 경우 코드 관리는 깔끔할 수 있으나, 다른 종류 예를 들어 basic(1), sil.. 2025. 4. 4. 이전 1 2 다음 반응형