본문 바로가기

프로그래밍/Spring5

Spring AOP 간단 개념정리 Spring은 Spring Triangle이라고 부르는 세 가지 개념을 제공해준다. 각각 IoC, AOP, PSA를 일컫는다. 이 중 AOP에 대해 정리해보려고 한다. AOP(Aspect Oriented Programing)는 관점 지향 프로그램이라고도 한다. 즉, 관점이 같은 코드가 반복되지 않도록 모듈화하는 프로그래밍 패러다임이다. 이러한 Spring AOP는 프록시 패턴이라는 디자인 패턴을 사용해서 AOP효과를 낸다. 프록시 패턴은 실제 기능을 수행하는 객체 대신에 가상의 객체를 사용해 로직의 흐름을 제어하는 디자인 패턴이다. A클래스가 Spring AOP의 대상이라면 A클래스의 빈이 만들어질 때 Spring AOP가 프록시를 자동으로 만들고 원본인 A클래스 대신 프록시에 빈을 등록한다. 그리고 원.. 2021. 1. 26.
web.xml 설정 시 ApplicationContext web.xml에 몇 가지 태그의 설정을 공부하다 ApplicationContext까지 오게되었다. 추후 혼자 web Application 설정 부분 개발을 맡게 되었을 때는 지금보다 더 깊은 이해가 필요할 것 같지만 지금은 어느정도 개념파악 후 정리 정도로 마무리했다. 우선 ApplicationContext는 오브젝트를 생성하거나 관계설정, 만들어지는 방식, 자동생성, 후처리 등을 담당하는 Spring의 대표적인 인터페이스이다. Spring에서는 IoC컨테이너라 하기도하고, Spring컨테이너라고 부르기도 한다. 또는 BeanFactory라고 하기도 한다. 이러한 ApplicationContext의 하위인터페이스 중 WebApplicationContext가 있다. 이 WebApplicationContex.. 2021. 1. 19.
스프링 배치. 그리고 스케줄러, Quartz 스프링 배치 스프링 배치는 대용량데이터를 자동화하여 일괄처리 할 때 사용한다. 주기적으로 실행을 위해서는 스프링 스케줄러, Quartz 를 이용하면 된다. 배치 작업의 단위는 Job이라고 부른다. 이 Job 을 스케줄러나 Quartz를 이용해서 주기적으로 실행해준다. Job은 최소 하나의 step을 가져야 한다. step은 읽기 > 가공하기 > 쓰기의 묶음이다. ItemReader ( 읽기 ) > ItemProcessor ( 가공하기 ) > ItemWriter ( 쓰기 ) 그냥 하나의 트랜잭션으로 이해하면 된다. ( 데이터를 읽고 로직을 수행하여 가공하고 DB에 입력이나 업데이트 ) 스프링 배치의 장점 - 대용량 데이터 처리에 최적화되어 고성능을 발휘한다. - 효과적인 로깅, 통계처리, 트랜잭션 관리 등.. 2020. 3. 26.
@Transactional / 트랜잭션 트랜잭션 정의 트랜잭션(Transaction)은 데이터베이스(DB)의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다. 트랜잭션 사용 이유 DB에 insert, update 등 작업을 여러번 하게되는 로직이 있을 경우 중간에 실패하게되면 잘못된 값이나 필요없는 값이 저장될 수 있다. 이 경우 트랜잭션을 사용하여 모든 로직이 정상적으로 완료되지 않는다면 Rollback 하거나 모두 완료되야만 Commit 하여 데이터의 잘못된 저장을 막을 수 있다. 스프링에서 사용방법 어노테이션 @Transactional 을 이용할거면 손쉽게 설정 후 사용가능하다. xml에 아래 내용만 추가해주면 된다. 주요 속성 isolation -> Trans.. 2020. 3. 16.