본문 바로가기

Spring14

Spring - JUnit+Mock 기반 스프링 단위테스트 이번 포스트에서는 JUnit과 Mock을 기반으로 스프링에서 단위 테스트를 하는 방법에 대해 정리해보겠습니다. Mock 가장 먼저 Mock에 대해 알아보겠습니다. Mock은 테스트를 위한 가짜 객체를 말합니다. 테스트를 할 때 객체가 필요하면 객체를 만들어야하는데 실제 객체를 만들기 위해서는 비용/시간/의존성문제가 걸쳐져 있습니다. 때문에 실제 객체를 구현하기 어려울 경우 Mock이라는 가짜 객체를 이용하여 테스트를 진행합니다. Mokito Mokito는 개발자가 동작을 직접 제어할 수 있는 가짜 객체를 지원하는 테스트 프레임워크입니다. [스프링 객체 의존도 그림] [Mock 객체를 이용한 단위 테스트] 보통 스프링으로 웹 어플리케이션을 개발하면 여러 객체들의 의존성이 생기는데, 이러한 의존성은 단위 테.. 2022. 11. 21.
Spring - ResponseEntity, RequestEntity 지난 포스트에 @RestController는 객체 데이터를 JSON 또는 XML형태로 HTTP응답에 담아 전달하며 주로 ResponseEntity에 감싸서 반환한다는 내용이 있었습니다. 이번 포스트에서는 ResponseEntity가 무엇인지, RequestEntity까지 함께 정리해보도록 하겠습니다. ResponseEntity ResponseEntity는 스프링 프레임워크에서 제공하는 클래스인 HttpEntity클래스를 상속받으며 응답 자체의 독립된 값이나 표현을 사용자 요청에 대한 응답 데이터와 함께 포함하는 클래스로, 해당 클래스를 이용하여 HTTP 메시지를 상세하게 보낼 때 주로 사용합니다. ResponseEntity에는 HttpHeaders, HttpBody, HttpStatus가 포함되며 각 요.. 2022. 11. 21.
Spring - @RestController 스프링에서 컨트롤러를 지정해주기 위한 어노테이션으로는 @Controller와 @RestController가 있습니다. RestController는 RestAPI 또는 Web API를 개발하기 위해 등장한 어노테이션인데, 이번 포스트에서는 이 둘은 어떤 차이가 있는지 @RestController를 중심으로 정리해보도록 하겠습니다. Controller Controller와 RestController의 차이를 알기 위해서는 이 둘이 어떻게 동작하는지에 대해 알 필요가 있습니다. 우선 @Controller의 경우입니다. 뷰를 반환하기 위해 @Controller를 사용하는 경우 (일반적인 경우) 전달과정 클라이언트는 URI 형식으로 웹 서비스에 요청을 보냄 DispatcherServlet이 요청을 위임할 Hand.. 2022. 11. 21.
Spring - IoC, DI IoC ( Inversion of Control )란? 말 그대로 해석하면 제어의 역전이다. 스프링에서만 존재하는 개념이 아닌 소프트웨어 세계에서 자주 발견할 수 있는 개념이다. 메소드나 객체의 호출을 개발자가 결정하는 것이 아닌 외부 컨테이너에 의해 결정되는 것을 의미한다. public Class A { private B b; public A() { b = new B(); } } 위 코드는 개발자가 직접 B객체를 호출하여 의존 관계를 나타내는 코드이다. public class A { @Autowired private B b; } 위 코드는 B 객체가 스프링 컨테이너에 등록되어 관리되고 있는 Bean이라면 Autowired 어노테이션을 통해 개발자가 직접 객체를 관리하지 않고 스프링 컨테이너가 객체를 생.. 2022. 11. 21.