레이어드 아키텍처의 문제점과 해결방안
·
Spring/프로젝트 리팩토링 회고록
2024.11.30 - [Spring/프로젝트 리팩토링 회고록] - 레이어 아키텍처 구조 개선하기모든 테스트가  h2를 필요로 한다?설계가 잘못되었을 수 있다. 테스트는 외부 객체의 주입을 받지 않은 상태에서도 동작할 수 있는 유닛 테스트가 필요한 경우가 있기 때문이다.또한 작성한 테스트가 실제로 테스트가 필요한 본질적인 책임을 갖고있는 객체가 아닐 수 있다. 레이어드 아키텍처의 구조레이어드 아키텍처는 유사한 기능들을 하나의 계층으로 묶어서 각각의 책임을 지게하는 구조이다.가장 쉽고 눈으로 봤을때 한 눈에 보인다는 장점이 있어 가장 많이 쓰이기도 한다. 하지만 이 아키텍처는 여러가지 단점이 있다.아래 이유를 적어놨지만 한 마디로 말해서 절차지향적인 코드를 작성하게된다. 우리는 자바를 객체지향적인 특징이 ..
테스트 코드의 기본 이론
·
Spring
테스트 코드를 작성하게 된 계기Swagger로 테스트를 해오던 나에게 더 이상 Swagger만으로는 테스트에 한계가 있다는 것을 깨달았다.그 이유는 이것저것 여러가지가 있었지만 요약해서 세가지이다.첫 째, 모든 상황은 가정하고 코드를 작성했는지 별도의 문서가 필요했다. 어떤 상황에 어떤 예외가 발생해야하는지 상황에 대한 제어를 내가 최대한 꼼꼼하게 해야하지만 스웨거만으로는 그 부분을 체크하기 어려웠다.둘 째, 어떤 메서드가 어떤 용도로 쓰이는지 별도의 문서가 필요했다. 테스트 코드를 작성함으로써 내가 의도하고 작성한 부분들을 바로바로 찾아가기가 어려웠다.셋 째, 내 프로젝트가 유연하고 확장에 용이한 코드인지 확인하기 어려웠다. 레이어드 아키텍처의 고질적인 문제인 의존성 문제를 해결해야 테스트 코드 작업이..