본문 바로가기

springboot

[스프링부트| 스프링부트와 JPA 활용 1 | 웹 애플리케이션 개발 | 회원 도메인 개발] 회원 기능 테스트 @RunWith(SpringRunner.class) // 스프링 부트 테스트를 위한 JUnit 러너 설정@SpringBootTest // 스프링 부트 애플리케이션 컨텍스트를 로드하는 테스트를 위한 설정@Transactional // 테스트 클래스에 트랜잭션 적용, 테스트 완료 후 롤백public class MemberServiceTest { @Autowired MemberService memberService; // 멤버 서비스 의존성 자동 주입 @Autowired MemberRepository memberRepository; // 멤버 리포지토리 의존성 자동 주입 @Autowired EntityManager em; // 엔티티 매니저 의존성 자동 주입 @Test public .. 더보기
[테스트 코드]JUnit 1. 목적 협업을 하면서 커밋을 기다리거나 구현한 기능에 대해 실행하면서 웹페이지로 테스트를 진행하는 것이 비효율적임을 느끼게 되어 테스트코드를 이용한 단위테스트를 필수적으로 진행해야겠다고 생각했다. 2. 학습내용 given-when-then given은 테스트 실행을 준비하는 단계 when은 테스트를 진행하는 단계 then은 테스트 결과를 검증하는 단계 JUnit 애너테이션 @DisplayName : 테스트 이름을 명시 @Test : 테스트 수행 메서드 @BeforeAll : 전체테스트를 시작하기 전에 처음으로 한번만 실행한다. 데이터베이스를 연결해야 하거나 테스트 환경을 초기화할 때 사용된다. 전체 테스트 실행 주기에서 한번만 호출되어야 하기 때문에 statc으로 선언해야 한다. @BeforeEac.. 더보기
[예외처리]@ExceptionHandler,@RestControllerAdvice 1.목적 팀 프로젝트를 하면서 공지사항에 접근권한이나 잘못된 요청에대한 예외처리를 하기 위해 학습하게 되었다. 2. 학습내용 @ExceptionHandler @ControllerAdvice나 @RestControllerAdvice가 있는 클래스의 메소드에 사용된다. 매우 유연하게 에러처리를 할 수 있는 방법을 제공한다. 에러 응답을 자유롭게 다룰 수 있다. @RestControllerAdvice Spring 4.3부터 제공하는 애노테이션이다. @ExceptionHandler를 전역적으로 적용할 수 있게 해준다. @ControllerAdvice 와의 차이점은 에러 응답을 JSON으로 내려준다는 것이다. 애노테이션을 적용해 전역적으로 에러를 핸들링하는 Class를 만들어 사용한다. 400 Bad Reques.. 더보기
[되기시리즈 스프링부트3| 04장 스프링부트와 테스트 ] Given-When-Then패턴 1. 학습목표 테스트코드에 대해 이해할 수 있다. 2.필요 개념 문장정리  3. 코드작성 package me.ggambo.springbootdeveloper; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; im.. 더보기
[되기시리즈 스프링부트3| 02장 스프링부트3 시작하기] IoC/DI, AOP, 1. 학습목표 의존성 주입과, 제어의 역전을 이해할 수 있다. 2.필요 개념 문장정리 의존성 주입(DI: Dependency Injection) 어떤 클래스가 다른 클래스에 의존한다는 뜻이다. @Autowired라는 애너테이션은 스프링 컨테이너에 있는 빈이라는 것을 주입하는 역할을 한다. 빈은 스프링 컨테이너에서 관리하는 객체를 말한다. 기존의 자바코드는 클래스 A에서 B객체를 직접 생성했지만 스프링의 경우 스프링 컨테이너에서 객체를 주입받아 사용한다. 제어의 역전(IoC: Inversion of Control) 다른 객체를 직접 생성하거나 제어하는 것이 아니라 외부에서 관리하는 객체를 가져와 사용하는 것을 말한다. 관점지향 프로그래밍(AOP: Aspect Oriented Programming) 프로그.. 더보기