[스프링, 스프링 부트] Spring test - 테스트 코드의 기초(2) [MockMvc, MockBean]
·
Spring/테스트 코드
이번 포스트에서는 저번 포스트에 이어서 테스트 코드의 용어 설명을 진행하겠다. 1. MockMvc란 MockMvc는 Spring Test Library에서 제공하는 한 클래스로서, 웹 서버를 따로 구동시키지 않아도 Spring MVC의 동작을 모방(mock)하도록 도와준다. 이를 통해 Controller가 정상적으로 동작하는지 테스트할 수 있다. 1-1. MockMvc 설정하기 MockMvc 인스턴스는 @WebMvcTest나 MockMvcBuilders를 통해 생성할 수 있다. @WebMvcTest(controllers = MyController.class) public class MyControllerTest { @Autowired private MockMvc mockMvc; } 위의 코드에서 @Web..
Spring Boot 웹 개발: JSP와 JSTL 활용하기 (3편)
·
Spring/Spring 기초 지식
이번 포스트에서는 spring과 Jsp 그리고 Jstl을 함께 사용하여 개발하는 방법을 소개한다.  1. Spring + JSP + JSTL 을 사용하여 코드작성하는 방법JSP 파일 내에 직접 자바 코드를 작성하는 방식은 과거에 많이 사용되었지만, 최근에는 추천되지 않는 방식이 되었다.대신, 서비스 로직은 서블릿이나 스프링 컨트롤러와 같은 다른 서버 사이드 컴포넌트에서 처리하고, JSP 파일은 주로 뷰(View)의 역할을 담당하는 것이 일반적이다. 서비스 로직에서 필요한 데이터를 처리한 후, 해당 데이터를 컨트롤러를 통해 JSP로 전달하는 방식을 주로 사용한다.컨트롤러는 데이터를 Model 객체에 담아서 JSP로 전달하고, JSP는 JSTL(JavaServer Pages Standard Tag Libra..
Spring Boot 서블릿 연동: Spring과 서블릿의 관계 (2편)
·
Spring/Spring 기초 지식
이번 포스트에서는 Spring과 Servlet의 관계에 대해서 주로 설명한다.  1. Spring과 서블릿의 관계1-1. 예시: 회원 가입 기능 개발서블릿으로 개발한 경우요리사의 직접 요리:요리사(서블릿)가 직접 주문(회원 가입 요청)을 받고, 재료(데이터)를 준비하고, 요리(회원 저장)를 하고, 손님에게 음식(응답)을 전달한다.단계:주문을 받는다.재료를 준비한다.요리를 한다.음식을 전달한다.Spring MVC로 개발한 경우요리사와 웨이터의 협업:요리사(컨트롤러)는 요리만 전문적으로 하고, 웨이터(디스패처 서블릿)가 주문을 받고 음식을 전달한다.단계:웨이터가 주문을 받는다.요리사가 재료를 준비한다.요리사가 요리를 한다.웨이터가 음식을 전달한다.위의 두 방식의 비교 및 설명서블릿만 사용:모든 작업을 직접 ..
Spring Boot 서블릿 기초: 서블릿 이해하기 (1편)
·
Spring/Spring 기초 지식
이번 포스트에서는 Spring에서 사용되는 서블릿에 대한 기본기를 설명한다.  1. 서블릿이란서블릿(Servlet)은 웹 서버에서 실행되는 자바 프로그램으로, 클라이언트로부터의 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 역할을 한다. 이는 주로 동적인 웹 페이지를 생성하기 위한 용도로 사용된다. 즉, 사용자가 웹 페이지를 요청할 때마다 새롭게 생성되는 콘텐츠를 만드는데 사용되는 도구 중 하나이다.서블릿은 일반적인 자바 클래스와 마찬가지로 자바 코드로 작성된다. 하지만 일반적인 자바 프로그램과는 다르게 웹 서버 내에서 실행되며, HTTP 프로토콜을 이용하여 클라이언트와 통신한다. 이를 위해, 서블릿은 보통 HTTP 요청을 처리하는 메소드를 구현한다. 대표적인 예로는 doGet()과 doPost..
Spring Boot에서 REST 컨트롤러 활용하기: @RestController 어노테이션 이해하기
·
Spring/Spring 기초 지식
@RestController는 주로 API를 생성할때 작성되는데 이번 시간에 한번 알아보도록 하자 1. Spring Boot의 REST Controller 1-1. Spring Boot의 REST Controller 이해하기 웹 서비스를 구축할 때 REST(Representational State Transfer) 아키텍처 스타일을 자주 접하게 된다. REST는 웹 서비스의 핵심으로, 자원(Resource)을 중심으로 설계되며, 이 자원에 대해 CRUD(Create, Read, Update, Delete) 연산을 수행한다. Spring Boot에서는 이러한 RESTful 웹 서비스를 구현하기 위해 @RestController 어노테이션을 활용한다. 이 어노테이션은 클래스 레벨에서 사용되며, 해당 클래스의..
사용법 미숙지로 인한 controller test - 오류해결
·
Spring/Spring 오류해결
컨트롤러 관련 테스트를 진행하다 Thymeleaf와 관련된 에러를 만났다. 1. 에러 코드타임리프 관련 에러가 있다고 표시되고 있다.jakarta.servlet.ServletException: Request processing failed: org.thymeleaf.exceptions.TemplateInputException: Error resolving template [board/save], template might not exist or might not be accessible by any of the configured Template Resolvers Caused by: org.thymeleaf.exceptions.TemplateInputException: Error resolving tem..
Spring Boot 심화: 커스텀 어노테이션 만들기 (2편)
·
Spring/Spring 기초 지식
커스텀한 어노테이션(Custom Annotation)이란 무엇일까? 그리고 우리가 주로 사용하는 어노테이션을 분석해보자 1. 커스텀 어노테이션을 만드는 방법 Java에서는 사용자 정의 어노테이션을 만들 수 있다. 이를 위해선 @interface 키워드를 사용하면 된다. // @interface를 통해 어노테이션을 정의한다. public @interface MyCustomAnnotation { String value() default ""; int number() default 0; } 위의 예제 코드에서, MyCustomAnnotation은 어노테이션의 이름이다. value와 number는 이 어노테이션의 요소(또는 매개변수)이며, 기본값으로 각각 빈 문자열과 0을 가지고 있다. 어노테이션 요소의 유형은..
Spring Boot 기초: 어노테이션 활용하기 (1편)
·
Spring/Spring 기초 지식
Spring에서 자주 사용되는 @로 작성하는 어노테이션이 뭔지 알아보자 1. 어노테이션 - Annotation 어노테이션은 주로 프로그래밍 언어에서 특정 기능이나 동작을 정의하거나 설명하는데 사용되는 메타데이터를 말한다. 주로 자바, 파이썬 등에서 많이 볼 수 있다. 어노테이션의 출현 배경은 주로 두 가지 이유에서 비롯된다. 코드의 가독성 향상: 어노테이션은 코드의 특정 부분이 어떤 목적을 가지고, 어떻게 동작하는지를 명확하게 표현할 수 있게 한다. 따라서 개발자는 코드를 읽을 때 어노테이션을 통해 빠르게 이해할 수 있다. 코드의 간결성: 특정 패턴이나 템플릿 코드를 반복해서 작성하는 것은 번거로울 뿐만 아니라 실수를 유발할 수 있다. 어노테이션을 통해 이러한 반복적인 코드를 줄이고, 개발자가 실제 로직..