Spring

    [Spring] java.lang.IllegalArgumentException: Name for argument of type [java.lang.Long] not specified, and parameter name information not available via reflection.

    jakarta.servlet.ServletException: Request processing failed: java.lang.IllegalArgumentException: Name for argument of type [java.lang.Long] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag. 테스트 코드를 돌리고 있는데 갑자기 이런 오류가 나왔다.. 갑자기 처음 보는 오류가 나와서 당황,, 해석을 해보니 파라미터를 못찾는 문제 같은데 왜 갑자기 이런 오류가 나왔는지 궁금하다. 김영한 님께서 이와 유사한 질문에 대한 글..

    [Spring] JUnit을 이용한 단위 테스트, 통합 테스트

    스프링에서는 어떻게 단위 테스트를 했는지 내가 하고 있는 프로젝트를 예시로 들면서 작성해 보겠다. 하지만 본인도 공부하면서 해보고 있는 거라 틀릴 수도 있다는 점... 적용하고 있는 거라 틀린 부분 있으면 지적해 주시면 감사하겠습니다. 인프런에서 김영한 강사님의 강의를 들을 때 배운 given/when/then 방식을 사용해서 만들었다. 여기서 말한 given/when/then을 간단하게 설명한다면 이와 같다. given: 테스트의 사전 조건 설정 when: 테스트 대상 동작 수행 then: 예상 결과 검증 나는 테스트해야 하는 클래스가 크게 controller, repository, service 3개, 그리고 각각의 클래스에 각각에 맞게 단위 테스트를 하고 모든 과정을 테스트하는 통합테스트 1개 이렇..

    단위 테스트, 통합 테스트

    이번 프로젝트를 진행하면서 테스트를 메인으로 해보자는 의견이 나와서 공부를 할 겸 궁금한 점도 있어서 정리해 본다. 테스트 코드를 수시로 작성하고 돌리면서 문제를 파악하는 것이 TDD(테스트 주도 개발)에서 얘기하는 테스트가 단위 테스트를 의미하는 것이었다... 테스트는 크게 단위 테스트(Unit Testing), 통합 테스트(Intergration Testing), 시스템 테스트(Ststem Testing), 인수 테스트(Acceptance Testing)로 나눌 수 있다. 하지만 개발자가 개발 단계에서 수행하는 테스트는 단위 테스트와 통합 테스트에 해당한다. 그럼 각각의 테스트가 어떤 역할을 하는지 간단하게 알아보고 개발자가 하는 테스트에 대해 자세히 알아보자. 단위 테스트 개별적인 코드 단위. 즉,..

    DDD(Domain Driven Desgin)

    최근에 자주 사용된다는 DDD에 대해 궁금해져서 유튜브를 보다가 정리해 두면 좋을 것 같아 정리해보려 한다. DDD Domain-Driven Design(DDD)은 소프트웨어 개발에서 복잡한 도메인(비즈니스 영역)을 이해하기 위한 접근 방법이다. 이는 소프트웨어 시스템의 핵심 영역인 도메인에 집중하여, 도메인의 복잡성을 해결하고 도메인 전문가와 개발자들 사이의 협력을 촉진하는 방법론이다. 이 방법은 Eric Evans가 "Domain-Driven Design: Tackling Complexity in the Heart of Software"라는 책에서 소개하였다. DDD의 개념은 그전에도 다양한 형태로 존재했으며, Eric Evans는 이러한 아이디어들을 정리하여 책으로 발행하였다. 이후 DDD는 소프트..