Java/Spring

    @RunWith, @DataJpaTest, @SpringBootTest, @ExtendWith

    @RunWith, @DataJpaTest, @SpringBootTest, @ExtendWith

    1. @RunWith와 @SpringBootTest의 차이점 @SpringBootTest는 통합테스트로 이를 사용하면 모든 application context를 다 로딩한다. - 실제 운영 환경에서 사용될 클래스들을 통합하여 테스트한다. - 단위 테스트와 같이 기능 검증을 위한 것이 아니라 spring framework에서 전체적인 플로우가 제대로 동작하는지 검증하기 위해 사용한다. - 애플리케이션의 설정, 모든 Bean을 모두 로드하기 때문에 운영환경과 가장 유사한 테스트가 가능 - 전체적인 Flow를 쉽게 테스트 - 이 때문에 시간이 오래걸리고 디버깅이 어려운 단점이 있다. - 단위테스트에는 알맞지 않다. @RunWith(SpringRunner.class)를 사용한다면 @Autowire, @MockB..

    영속/비즈니스 계층의 CRUD 구현

    영속/비즈니스 계층의 CRUD 구현

    작업 순서 - 테이블의 칼럼 구조를 반영하는 VO 클래스의 생성 - MyBatis의 Mapper 인터페이스의 작성 / XML 처리 - 작성한 Mapper 인터페이스의 테스트 영속 계층의 구현 준비 VO 클래스의 작성 테이블의 구성에 따라 VO 클래스 작성하기 package org.zerock.domain; import java.util.Date; import lombok.Data; @Data public class BoardVO { private Long bno; private String title; private String content; private String writer; private Date regdate; private Date updateDate; } Mapper 인터페이스와 Mapp..

    스프링 MVC 프로젝트의 기본 구성

    스프링 MVC 프로젝트의 기본 구성

    PART3 기본적인 웹 게시물 관리 - 스프링 MVC를 이용하는 웹 프로젝트 전체 구조에 대한 이해 - 개발의 각 단계에 필요한 설정 및 테스트 환경 - 기본적인 등록, 수정, 삭제, 조회, 리스트 구현 - 목록 화면의 페이징 처리 - 검색 처리와 페이지 이동 스프링 MVC 프로젝트의 기본 구성 Presentation Tier (화면 계층) - 화면에 보여주는 기술을 사용하는 영역 - Servlet/JSP 혹은 스프링 MVC가 담당하는 영역 - 스프링MVC와 JSP이용한 화면 구성 Business Tier (비즈니스 계층) - 순수한 비즈니스 로직을 담고 있는 영역 - 고객이 원하는 요구 사항을 반영하는 계층 - 고객의 요구 사항과 정확히 일치해야 됨 - 'xxService' - 메서드 이름 = 고객들이..

    Spring ViewResolver 정리

    Spring ViewResolver 정리

    ModelAndView (결과를 출력 할 뷰와 뷰에 전달할 객체를 담고있다) 컨트롤러는 최종적으로 ModelAndView 객체를 리턴한다. DispatcherServlet은 ViewResolver를 사용하여 결과를 출력할 View 객체를 구하고, 구한 View 객체를 이용하여 내용을 생성함 스프링 MVC의 처리 흐름 1. 클라이언트 처리요청 [ 클라이언트 -> DispatcherServlet ] 2. 요청 URL과 매핑되는 Controller 검색 [ DispatcherServlet -> HandlerMapping ] 3. 처리요청 [ DispatcherServlet -> Controller ] 4. ModelAndView 리턴 [ Controller -> DispatcherServlet ] 5. Con..

    스프링의 특징과 의존성 주입

    스프링의 특징과 의존성 주입

    프레임 워크 - 뼈대나 근간을 이루는 코드들의 묶음 프레임 워크의 필요성 - 프로그램의 기본 흐름이나 구조를 정하고, 모든 팀원이 이 구조에 자신의 코드를 추가하는 방식으로 개발하기 위함. 프레임워크의 장점 - 개발에 필요한 구조를 이미 코드로 만들어 놓음 -> 실력이 부족한 개발자라도 필요한 부분을 조립하여 개발이 가능하다 - 일정한 품질이 보장되는 결과물을 얻을 수 있다 - 완성된 구조에 자신이 맡은 코드를 개발해서 넣어주는 형태이므로 개발 시간을 단축할 수 있다 *경량 프레임워크 - 특정 기능을 위주로 간단한 jar 파일 등을 이용해서 모든 개발이 가능하도록 구성된 프레임워크 스프링 프레임워크의 차별성 경량화된 프레임워크 - 일반적인 Java의 클래스와 인터페이스를 이용하는 구조이기 때문에 진입장벽..