스프링 부트와 AWS로 구현하는 웹 서비스_1

HyeBin, Park·2021년 8월 7일
0
post-thumbnail

스프링 부트와 AWS로 혼자 구현하는 웹 서비스
https://github.com/HYEBPARK/springboot-webservice

1장. Intellij로 Springboot 시작하기

1.4 gradle project로 만들어 springboot project로 변경하기

  • build.gradle에 의존성 관리 코드 추가

1.5 intellij에서 gihub 연동하기

2장. springboot에서 Test Code 작성하기

2.1 Test Code 소개하기

📍 Test code

  • TDD(Test Driven Development) : 테스트가 주도하는 개발, 테스트 코드를 먼저 작성
    1. RED : 항상 실패하는 테스트 작성
    2. GREEN : 테스트가 통과하는 프로덕션 코드를 작성
    3. REFACTOR : 테스트가 통과하면 프로덕션 코드를 리팩토링 합니다.
  • 단위테스트 : 기능 단위의 테스트 코드를 작성

📍 Test code를 작성해야하는 이유

  • 단위 테스트는 개발 단계 초기에 문제를 발견
  • 단위 테스트는 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는지 확인 가능 ex)회귀 테스트
  • 단위테스트 기능에 대한 불확실성을 감소
  • 단위테스트는 시스템에 대한 실제 문서를 제공, 단위 테스트 자체가 문서로 사용 가능

📍 Test code 작성 프레임워크 => xUnit**

  • java -> JUnit ✔
  • DB -> DBUnit
  • C++ -> CppUnit
  • .net -> NUnit

🔎 Annotation

  • @SpringBootApplication
    • 스프링 부트의 자동 설정, 스프링 Bean 읽기와 생성 모두 자동으로 설정

    • 시작 위치부터 설정을 읽어 가rl 때문에 프로젝트의 최상단에 위치

    • SpringApplication.run => 내장 WAS실행

      => '언제 어디서나 같은 환경에서 스트링 부트를 배포'

      => 서버에 톰캣을 설치할 필요가 없고 스프링 부트로 만들어진 JAR로 실행

  • @RestController
    - controller를 JSON을 반환하는 controller로 만들어 준다.
    - @ResponseBody를 각 메소드마다 선언할 필요가 없어졌다.
  • @GetMapping
    - HTTP Method인 Get의 요청을 받을 수 있는 API를 만들어 준다.
    - ex) @GetMapping("/hello") : /hello로 요청이 오면 ~ 한다.
  • @RunWith(SpringRunner.class) 변경 @ExtendsWith(SpringExtension.class)
    Junit4에서 Junit5 로 버전 변경의 이유
    - 스프링 부트 테스트와 JUnit사이에 연결자 역할
  • @WebMvcTest
    - 여러 스프링 테스트 어노테이션 중, Web(Spring MVC)에 집중할 수 있는 어노테이션
    - @Controller, @ControllerAdvice 등은 사용가능
    - @Sevice, @Component, @Repository 등은 사용 불가
  • @Autowired
    - 스프링이 관리하는 Bean 주입받음
  • private MockMvc mvc
    - 웹 API를 테스트할 때 사용, springMVC 테스트의 시작점
    - HTTP GET, POST등에 대한 API 테스트 가능
  • mvc.perform(get("/hello"))
    - MockMvc를 통해 /hello 주소로 HPPT GET 요청
  • .andExpect(statuc().isOk())
    - mvc.perform의 결과, HTTP Header의 Status, 상태 검증
    - OK는 200 인지 아닌지
  • .andExpect(content().string(hello))
    - mvc.perform의 결과, 응답 본문의 내용 검증
    - Controller에서 "hello"를 리턴하기때문에 이 값이 맞는지 검증

2.3 lombok 소개 및 설치하기

📍 Lombok

  • Lombok은 자바 개발에 자주 사용하는 코드를 Annotation 으로 자동으로 생성해준다.

📍 Lombok 설치하기

  • plugin 설치 후 프로젝트마다 build.gradle에 라이브러리 추가해야한다.

0개의 댓글