본문 바로가기

전체 글83

Spring - Test(2) 요번시간에는 Junit과 Hamcrest, Spring MVC-Test를 이용한 단위 테스트 및 Mock 객체 활용과 Builder패턴의 활용한 테스트를 살펴보려고 한다. @BeforeClass : 테스트 클래스의 테스트 수행을 위한 초기화 로직 구성 및 최초 1회 Call Back @AfterClass : 테스트 클래스의 테스트 종료를 위한 자원 반납 로직 구성 및 최초 1회 Call Back @Before : 개별 테스트 메서드의 테스트 수행 전 반복 @After : 개별 테스트 메서드의 테스트 수행 후 반복 @Test : Timeout = 시간 // 수행시간제한 expected=Exception.class // 발생 가능한 예외 타입(예외 발생시 테스트 성공) assertEquals(기대값과 실제값.. 2020. 3. 12.
Spring - Test(1) 아직까지 내가 진행한 스프링 프로젝트는 손으로 셀 수 있을 정도다. 하지만 나는 이 스프링 프로젝트에서 가장 중요한 것을 항상 안 하고 지나간 것 같다. 바로 스프링 테스트 코드에 대한 작성이다. 여러개발자들이 TDD에 대한 것에 호불호가 갈린다. 하지만 나역시도 처음에는 그냥 만들면 되지!라는 생각에 작성은 안 했지만, 서서히 나의 코드를 보고, 나의 코드에 대한 추가사항이 있을 때 바꿔주기란 참으로 어려웠다. 그래서 나는 지금부터라도. 그 후에 내가 내 코드를 볼 때 그리고 타인이 내 코드를 볼 때 더욱더 가독성과 진행사항에 대해 좋게 만들기 위해 TDD에 대한 연습을 하려고 한다. 일단 테스트란 무엇일까? 개발된 애플리케이션이나 시스템이 사용자가 요구하는 기능의 동작과 성능, 사용성, 안정성 등을 .. 2020. 3. 12.
Spring - 트랜잭션관리 오늘은 Spring 트랜잭션에 대해서 쓰려고 한다. 일단 트랜잭션에 대해서 간단하게 정의하자. 트랜잭션이란? 트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다. ACID 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)의 원칙을 따라야 한다. 을 말한다. 스프링을 사용하면 트랜잭션 관리를 할 수 있고, 간단한 설정만으로 단일 자원과 다중 자원에 대한 트랜잭션을 처리할 수 있다. 스프링은 데이터베이스 연동 기술에 상관없이 동일한 방식으로 트랜잭션 처리를 할 수 있다. 2020. 3. 11.
Spring MVC - Field Injection & Constructor Injection @Component public class FieldInjection { @Autowired private BService AService; @Autowired private AService BService; } 잘보면 Autowired를 필드에 해주는 경우가 많다. 하지만 Spring에서는 필드에다가 injection을 해주는 것을 그렇게 썩... 좋게 생각하지 않는다고 한다. 그러면 어떻게 의존성을 주입할까? 바로 Constructor Injection을 하면 된다. @Component public class ConstructorInjection { private final AService AService; private final BService BService; @Autowired public C.. 2020. 3. 9.