본문 바로가기

Spring9

[Spring]JUnit5를 통한 테스트 코드 구현 프로젝트에서 테스트 코드를 구현하며 배웠던 것들에 대해 정리해 볼 예정이다. (2023.06.15 업데이트) 먼저 Junit4와 Junit5의 차이점에 대해 알아보자. 인터넷 자료를 찾다 보면 사용하는 어노테이션이나 메서드가 다르던데 버전의 차이 때문에 그런 것이었다. Assert Junit4 Junit5 Assert class Assertions class assertThat 메서드 assertThat 메서드가 사라지고, assert* 계열의 다른 method Runner와 Extension Junit4 Junit5 @Runwith @Extendwith 또한, 추가적으로 Junit4와 Junit5의 차이점은 테스트 엔진에 있다. Junit Vintage Junit4에 대한 테스트 엔진 Junit Jup.. 2023. 6. 12.
[Spring Batch] Spring Batch 정리 프로젝트를 진행하면서 사용했던 Spring Batch에 대해 정리해 보자 스프링 배치 Job 스프링 배치의 핵심은 Job이다. Job은 배치에서 가장 큰 단위이다. Job 내부에 각 로직 처리 순서 부분에 해당하는 게 Step이다. 따라서, 하나의 Job에 여러 개의 Step이 있는 1:N 관계이다. Step 스탭은 Tasklet 또는 ItemReader, ItemWriter, ItemProcessor로 구성된다. 그런데, Tasklet보다는 Chunk 기반으로 적극 사용하라고 멘토님께 조언을 받을 수 있었다. Chunk로 하면 Chunk size 단위로 처리할 수 있어서 그런 것 같다. 프로젝트를 하며 1시간마다 배치가 돌아가야 했다. 그런데, 배포 환경에서 배치가 실패하면 절대 안 되는 일이다. 따라.. 2023. 6. 1.
[Spring] AOP AOP(Aspect-Oriented Programming) : 전체 로직을 핵심 로직과 공통 로직의 관점으로 나누어 판단하고 관점 기준으로 분리하는 것 보통 관점 지향이라고 표현하는데, 관심사 기준으로 로직을 나눈다고 생각하자 Spring AOP 특징 1. spring bean에만 AOP 적용이 가능하다. 2. 프록시 패턴 기반이 AOP 구현체 사용한다. Spring AOP 장점 1. 비즈니스 로직이 공통 로직과 독립적으로 존재한다. 따라서, 코드 관리에 용이하며, 가독성 용이하다. AOP 용어 1. Advice : 적용할 공통 관심 사항의 기능을 의미하며 공통 로직에 해당한다. 2. Target : Advice가 적용될 특정 위치를 의미하며, 핵심 로직에 해당한다. Target은 순수한 비즈니스 로직을.. 2022. 10. 27.
[Spring]Mybatis 연결 - root-context.xml 설정 mybatis와 spring 연결을 위한 root-context.xml 설정에 대해 설명드리겠습니다. 1. dataSource 설정 - dataSource는 데이터 베이스 연결 정보를 가진 객체 2. sqlSessionFactoryBean 설정 - 스프링에서는 SqlSessionFactory 객체를 생성하기 위해서 SqlSessionFactoryBean을 빈으로 등록해야 합니다. - SqlSessionFactoryBean을 빈으로 등록할 때, 사용할 dataSource와 mybatis 설정 파일 정보가 필요합니다. 3. mapper 빈 등록 - Mapper 인터페이스를 사용하기 위해서는 스캐너를 사용하여 자동으로 등록하거나, 직접 빈으로 등록해야 합니다. - 을 통해 mapper 파일로 사용될 인터페이스.. 2022. 10. 25.