본문 바로가기

분류 전체보기118

헥사고날 아키텍처 정의 헥사고날 아키텍처의 이해"여러분의 애플리케이션을 UI나 데이터베이스 없이 동작하도록 만드십시오. 그러면 애플리케이션에 대해 자동화된 회귀 테스트를 실행할 수 있고, 데이터베이스를 사용할 수 없을 때도 동작합니다. 그리고 어떤 사용자의 개입 없이도 애플리케이션을 함께 연결할 수 있습니다."- 알리스테어 코크번 ( Alistair Cokburn ) 헥사고날 아키텍처의 조된 아이디어 중 하나는 비즈니스 코드를 기술 코드로 부터 분리하는 것이다. 그뿐만 아니라 기술 측면이 비즈니스 측면에 의존하는지도 확인해 비즈니스 측면이 비즈니스 목표를 달성하는데 사용되는 기술에 대한 우려 없이도 발전할 수 있게 해야 한다.또한 비즈니스 코드에 피해를 주지 않고 기술 코드를 변경할 수 있어야 한다. 이러한 목표를 달성하려면 .. 2024. 9. 2.
테스트 대역 5가지 테스트 대역 5가지 유형유형설명Dummy아무런 동작을 하지 않습니다.Stub지정한 값만 반환합니다.Fake자체적인 로직이 있습니다.Mock아무런 동작을 하지 않습니다. 대신 어떤 행동이 호출됐는지 기록합니다.Spy실제 객체와 똑같이 행동합니다. 그리고 모든 행동 호출을 기록합니다. DummyDummy(더미)는 테스트 대역 중에서도 가장 간단하고 뚜렷한 목적을 지닌 대역입니다. Dummy의 역할은 아무런 동작을 하지 않는 것입니다. Dummy 객체는 오롯이 코드가 정상적으로 돌아가게 하기 위한 역할만 합니다. 그리고 특정 행동이 일어나지 않게 만드는데 사용됩니다.@Service@RequiredArgsConstructorpublic class UserService { private final U.. 2024. 7. 17.
테스트 소프트웨어 공학에서 말하는 테스트는 소프트웨어의 품질과 기능을 확인하고 버그를 찾아내는 과정을 말합니다. 이 과정은 시스템의 안정성과 성능 등 다양한 측면을 평가하고 문제점을 발견하기 위해 반드시 필요합니다. 그래서 오늘날 많은 프로젝트에서는 개발된 시스템을 배포하기 전 어떤 방법으로든 테스트를 거치게 하고 있습니다. 이때 테스트는 시스템을 어떻게 검증하느냐에 따라 크게 두 가지로 분류할 수 있습니다.수동 테스트 ( manual testing )자동 테스트 ( automated testing )수동 테스트는 테스트 담당자가 소프트웨어를 직접 실행해보고 각각의 기능을 평가하며 구현된 기능이 요구사항이 부합하는지 검증하는 과정을 말합니다. 테스트 담당자는 사용자 관점에서 소프트웨어를 다양한 시나리오를 토대로.. 2024. 7. 16.
자가 호출 자가 호출은 굉장히 빈번하게 일어나는 일이면서 별다른 문제가 없지만 스프링 빈 메서드에서 자가 호출이 일어나면 이야기가 다릅니다.스프링의 빈 메서드에서 발생하는 자가 호출은 개발자의 의도를 벗어나는 결과를 만들 수 있습니다. 특히 자가 호출되는 메서드에 AOP 애너테이션이 지정돼 있을 경우 문제가 됩니다. 예를 들어, 다음과 같은 스프링 컴포넌트가 있다고 해봅시다.@Controller@RequiredArgsConstructorpublic class MyController { private final MyService myService; @ResponseStatus(HttpStatus.OK) @GetMapping public Object doSomething() { myS.. 2024. 7. 16.