Framework/Spring

Framework/Spring

MockMVC를 이용한 BoardService 단위 테스트 (JUnit5)

참고하는 자료마다 단위 테스트를 진행하는 방법이 조금씩 달랐다. 직접 테스트를 진행해보고, Mock 객체를 이용한 단위테스트를 하는 방법을 터득해보려 한다. https://itmore.tistory.com/entry/MockMvc-%EC%83%81%EC%84%B8%EC%84%A4%EB%AA%85 MockMvc 상세설명 스프링 MVC 테스트 스프링 MVC 컨트롤러의 테스트 컨트롤러의 주요역할은 다양 컨트롤러의 주요역할 요청 경로 처리내용의 매핑 입력값 검사 요청한 데이터의 취득 비즈니스 로직 호출 다음 이동 itmore.tistory.com MockMVC란? 실제 객체와 비슷하지만, 테스트에 필요한 기능만가지는 가짜 객체를 만들어서 애플리케이션 서버에 배포하지 않고도 스프링 MVC 동작을 재현할 수 있는 ..

Framework/Spring

인프런 스프링 핵심 원리-기본편 #6 빈 스코프

싱글톤 빈 요청과 다르게, 프로토타입 빈 요청은 요청마다 새로운 프로토타입 빈을 생성하고 필요한 의존관계를 주입한다. 클라이언트에 전달 후 반환 및 관리는 하지 않는다. 스프링 컨테이너는 프로토타입 빈을 생성, 의존관계 주입, 초기화까지만 처리한다. 프로토타입 빈을 관리할 책임은 클라이언트에 있기 때문에 @PreDestroy 등의 종료 메서드가 호출되지 않는다. package hello.core.scope; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org...

Framework/Spring

인프런 스프링 핵심 원리-기본편 #5 싱글톤 컨테이너 / 의존관계 자동 주입

스프링 컨테이너에서 싱글톤은 기본적으로 동작한다. @Test @DisplayName("스프링 컨테이너와 싱글톤") void springContainer(){ // 1. 조회 : 호출할 떄마다 객체 생성 ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); // 2. 조회 : 호출할 때마다 객체 생성 MemberService memberService1 = ac.getBean("memberService", MemberService.class); MemberService memberService2 = ac.getBean("memberService", MemberService.class); // 참조 값이 다른 것을 확인..

Framework/Spring

인프런 스프링 핵심 원리-기본편 #4 스프링 컨테이너와 스프링 빈

2. Bean 조회하기 package hello.core.binfined; import hello.core.AppConfig; import hello.core.discount.DiscountPolicy; import hello.core.member.MemberRepository; import hello.core.member.MemoryMemberRepository; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.NoUniqueBeanDefinitionException; import org.springframework.context.annota..

Framework/Spring

인프런 스프링 핵심 원리-기본편 #3 스프링 핵심원리 2 - 객체 지향 원리 적용

AppConfig 클래스를 hello.core 디렉터리의 하위에 넣는다. public class AppConfig { public MemberService memberService(){ return new MemberServiceImpl(new MemoryMemberRepository()); } } 이렇게 MemberService() 함수를 정의해를 해주고, MemoryMemberRepository()를 매개변수로 한 MemberServiceImpl 객체를 반환한다. 이는 다음과 같은 코딩 방식을, 이렇게 바꿔주는 것이 가능하도록 한다. 이 코드는 인터페이스만 확인할 수 있으며 구현체에 전혀 의존하지 않는 코드가 되는 것이다. 즉 AppConfig는 생성한 객체 인스턴스의 참조를, 생성자를 통해서 주입 ..

Framework/Spring

인프런 스프링 핵심 원리-기본편 #2 스프링 핵심원리 1 - 예제 만들기

회원 도메인 개발 Member 도메인 package hello.core.member; public class Member { private Long id; private String name; private Grade grade; public Member(Long id, String name, Grade grade) { this.id = id; this.name = name; this.grade = grade; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.nam..

Framework/Spring

인프런 스프링 핵심 원리-기본편 #1 객체지향 설계와 스프링

EJB (Enterprise JavaBeans) : 기업 환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델 POJ 의 개념의 도래 (순수 자바로 돌아감) ↓ EJB 컨테이너를 대체할 Spring EJB 엔티티빈 기술을 대체할 Hibernate, JPA의 새로운 표준을 정의하였다. '스프링' 이라는 이름은 전통적인 EJB라는 겨울을 넘어 새로운 시작이라는 뜻을 가짐. + Entity Bean ORM 기술, 쿼리를 쓰지 않고 객체를 기준으로 데이터를 다루는 것 스프링 부트 별도의 웹 서버를 설치하지 않아도 됨 스프링과 외부 라이브러리 자동 구성 단독으로 실행할 수 있는 스프링 Application을 쉽게 생성 핵심 컨셉 : 스프링은 자바 언어 기반의 프레임워크 - 객체 지향 언어 스프링은 좋은 객체 지향 ..

Framework/Spring

Spring Boot Swagger 연동 에러 해결하기

Item 클래스의 도메인부터 서비스, Test 코드까지 작성 후 Swagger와 연동하여 Request를 요청해보았다. 처음으로 뜬 에러는 ItemPhoto에 대한 flushing문제 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - ..

Framework/Spring

스프링 부트 MySQL 네이버 클라우드 원격 서버 DB 연결하기

로컬에서 작업하다 팀원 간의 DB 공유가 필요할 것 같아, 네이버 클라우드에서 원격 서버를 파서 DB를 옮기기로 하였다. 윈도우 서버로 구매하였고, 공인IP도 옵션으로 추가하였다 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://공인IP주소:원격서버 MySQL포트/DB이름?serverTimezone=UTC&characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=DB비밀번호 spring.jpa.database=mysql spring.jpa.hibernate.ddl-auto=update sprin..

MINGYUM
'Framework/Spring' 카테고리의 글 목록 (3 Page)