개발서적

[독서] 스프링부트와 AWS로 혼자 구현하는 웹서비스 - 이동욱 지음

sian han 2022. 7. 24. 01:36

 

 

스프링부트책이어서 스프링제본인가 ? 막이래 ㅋ ~..

 

...

스프링으로 제본된 점이 좋아서 강조해서 찍어봄

 

 


 

 

책을 1회 완독했다

 

책 내용을 응용하여 실제 프로젝트에 적용할 수 있는가 => NO

애초에 이 책을 선택했을때의 목적을 달성했는가 => NO

이 책을 다른 사람에게 추천할 수 있는가 => NO

 

삼진아웃이다.

 

책의 내용을 기반으로 내가 새로 시작할 프로젝트 기반을 설계하고

기존 : 스프링프레임워크 (Spring Boot) + Mybatis 

새로운 방식으로(springboot & JPA) 을 배워 서비스를 만들어보는것이 목적이었건만

1회 완독한 지금 다른 사람들에게 책을 추천할수도없다

내용을 알아야 추천을 하던 하지 . . 

 

괜 찮 다 !!!!!

지금껏 어떤 내용도 한번에 이해한적은 없다 대수롭지않다

MVC 도 Spring Boot 도 늘어지게 공부해서 결국 프로젝트 한개씩 만들었잖악 !!!

 

꼭 스프링부트와 JPA를 조합하여 프로젝트를 만들어내겠다

 

필기하면서 2회독간다

 

 

더보기

1. 테스트코드

2. JPA

 


 

※ 테스트코드

  - 아직까지 직접 손으로 테스트하고, 눈으로 검증하는 것이 더 편할 수 있으나

     테스트 코드의 중요성을 알고 익숙해져야한다 !!!!!!!!

 

 

▶ 테스트 코드 작성 이유

 

  ▷ 피드백이 빠르다

       - 톰캣을 껐다 켰다 할 필요가 없음

   자동검증이 가능

       - system.out.println() 을 통해 눈으로 검증하지않아도 됨

   개발자가 만든 기능을 안전하게 보호해 줌

 

 

JUnit

   - JAVA 용 테스트 프레임워크 

   - 현재 JUnit5 까지 나옴

 

 

 

@RunWith(SpringRunner.class)  //스프링부트테스트와 JUnit 사이의 연결자 역할
@WebMvcTest(controllers = HelloController.class, //SpringMVC 에 집중할 수 있는 어노테이션
        excludeFilters = {
        @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = SecurityConfig.class)
        }
)

public class HelloControllerTest {

    @Autowired //스프링이 관리하는 Bean 을 주입받음
    private MockMvc mvc; //HTTP GET, POST 에 대한 API 테스트 가능

    @WithMockUser(roles="USER")
    @Test
    public void hello가_리턴된다() throws Exception {
        String hello = "hello";

        mvc.perform(get("/hello")) //hello 주소로 HTTP GET 요청을 함
                .andExpect(status().isOk()) //위의 요청에 대한 결과를 검증함(400,200..etc)
                .andExpect(content().string(hello)); //해당 컨트롤러에서 hello 를 리턴하는지 검증
    }
}

 

 = > 테스트 코드 작성 후 실행시키고 웹브라우저로 접속해보면 테스트한 내용이 올라와 있는 것을 확인 할 수 있음

 

 

 

 

▽ DTO 에 적용된 롬복이 잘 작동하는지 테스트

 @Test
    public void 롬복_기능_테스트() {
        //given
        String name = "test";
        int amount = 1000;

        //when
        HelloResponseDto dto = new HelloResponseDto(name, amount);

        //then
        assertThat(dto.getName()).isEqualTo(name);
        assertThat(dto.getAmount()).isEqualTo(amount);
    }

@assertThat

  - assertj 라는 테스트 검증 라이브러리의 검증 메소드

 

isEqualTo

  - assertThat 에 잇는 값과 isEqualTo 의 값을 비교해서 같을때만 성공임

 

 

테스트 결과 : 통과됨

 

 


※ JPA

 

처음엔 여기에 필기를 했는데용.. 포스팅이 끝없이 길어지더라구요 

 

책을 읽다가 JPA를 제대로 공부해야할것같음  => 김영한님 강의를 보게 됨 => 필기할 내용 多 => JPA 카테고리 신설

 

위와 같은 이유로 JPA 관련 내용은 새롭게 신설한 JPA 카테고리에 포스팅으로 올렸습니다.

 

https://feelfreetothink.tistory.com/105