이번 방탈출 사용자 예약에서 아래와 같은 예제 코드가 있었는데, 무지성으로 복붙하고 나서 보니 @Bean에 대해 궁금함이 생겼다. 이 기회에 @Bean, @Component의 차이가 무엇인지에 대해 정리하고 어떤 경우에 사용하면 좋을지에 대해 이야기 해보고자 한다.Spring Bean이란스프링 부트에서 Bean은 Spring Container가 관리하는 객체들을 말한다.따라서 내가 사용하고자 하는 객체를 Spring DI를 통해 사용하기 위해서는 객체를 Bean으로 등록하는 과정이 필요하다.Spring Boot에서의 Bean 등록 방법spring boot에서는 Bean을 등록할 수 있는 방법을 두가지를 제공한다.spring은 xml 등의 방식도 제공하는 것 같으나 아직은 패스한다.1. @Component..
기존 프로젝트를 할 때, 스프링과 비슷하게 "객체지향" 에 대해서도 깊은 고민 없이 자바를 사용했었다.돌아보면 도메인 객체를 사용하지 않고 그저 영속성 entity를 가지고 개발을 했던 것 같다. 이번 9단계 요구사항을 반영하기 위해 코드를 볼아보면서, 기껏 열심히 레벨 1동안 배운 내용들을 써먹지 못하고 옛 프로젝트를 할 때처럼 사용한 것 같아서 아쉬웠다. 따라서 이 프로젝트에서의 엔티티 객체들을 어떻게 바라보아야 할까 고민하다가 혼란이 와버렸다.public class Reservation { private final Long id; private final String name; private final ReservationDate reservationDate; private f..
템플릿 엔진스프링 부트는 정적 페이지와 템플릿 시작 페이지를 모두 지원한다.먼저, static 아래의 index.html 파일을 찾고 없다면 index 템플릿을 찾는다. 아래와 같은 위치로 파일이 존재한다면, /static/index.html을 찾고, (/static/index.html)이 없다면, /templates/index.html를 찾아 응용 프로그램 시작 페이지로 띄운다.static에는 보통 정적 파일인 js나 css 같은 파일들이 위치하고, templates에는 서버가 실행되면서 동적으로 렌더링되는 Thymeleaf 템플릿 파일들이 위치한다.템플릿 엔진 반환하기@Controllerpublic class MemberController { @GetMapping("/hello") publ..
미션 예제 코드에 @DirtiesContext라는 어노테이션을 사용하던 중 정확하게 어떤 어노테이션인지 알고자 정리한다. 기본적으로, 스프링 테스트에서는 ApplicationContext를 캐싱하여, 기존의 Context를 재활용한다.따라서 DB 작업이 수행된 테스트가 존재할 때, 테스트 간에 격리가 되지 않고 테스트 간에 영향을 받게 될 수도 있는 것이다.이럴 때 사용할 수 있는 것이 바로 @DirtiesContext 어노테이션이다. @DirtiesContext 너는 누구냐@DirtiesContext는 테스트 실행 중, Spring ApplicationContext가 Dirty 상태가 된다면 컨텍스트를 닫아버리는 것을 말한다.즉, 애플리케이션 컨텍스트가 더티로 표시되면 테스트 프레임워크의 캐시에서 제거..
1단계 방탈출 예약 관리 미션의 제공된 테스트 코드를 보면,클래스단에 @SpringBootTest가 붙여져 있고 RestAssured 라이브러리를 통해 테스트 코드를 작성하고 있습니다. 오늘은 테스트 포트를 변경하려다 삽질을 해본 이야기에 대해 작성해보겠습니다.👀 @SpringBootTest란Spring Boot에서 Spring Boot 기능이 필요할 때 표준 스프링 테스트 @ContextConfiguration 어노테이션의 대안으로 사용할 수 있는 어노테이션입니다.이 어노테이션은 Spring을 통해 테스트에 사용되는 ApplicationContext를 생성하는 방식으로 작동합니다.다시 말해 스프링 테스트를 위해 ApplicationContext를 생성합니다.🤔 webEnvironment 속성값@Sp..