목록Java/Spring (33)
재 현
Test 케이스 main 메소드와 웹 어플리케이션 컨트롤러를 통해 실행하는 것은 시간이 많이 걸리고 반복실행의 어려움이 있다. 또한 여러 테스트를 한번에 하기 어렵다 때문에 JUnit이라는 프레임워크를 사용한다. @Test // 어노테이션 Test시 true와 false를 확인하는 방식은 3가지 방식이 있다. System.out으로 출력해보는 것 junit의 Assertions을 사용하는 것 assertji의 Assertions을 사용하는 것 ( 이걸 추천 ) assertThat(결과값).isEqualTo(기댓값); 테스트는 순서와 상관없이 동작하므로, 메스드 별로 따로 동작하게끔 설정해주어야 한다. 또한 테스트나 끝나면 데이터를 clear해주어야 한다. -> @AfterEach 를 사용하여 각 테스트가..
@GetMapping 1. 정적 : 컨트롤러가 없으면 -> resources/static/에서 html 파일 찾아 그대로 반환 2. MVC : 컨트롤러가 존재하고 templates이면 viewResolver에게 전달 *) viewResolver : 컨트롤러에서 리턴 값으로 문자열을 반환하면 화면을 찾아처리하는 역할 3. API : 컨트롤러가 존재하고, @ResponseBody가 붙어 있으면 http에게 데이터 채로 넘겨줘야 겠다고 생각 -> HttpMessageConverter가 동작 1) 문자열이다 : 그냥 http에게 전달 // StringConverter가 동작 2) 객체 : (디폴트) json방식으로 데이터를 만들어서 http 응답에 전달하겠다 // JsonConverter가 동작
1. 정적 컨텐츠 ( 파일 그대로 웹페이지 내려줌) // 스프링 부트 정적 컨텐츠 자동 제공 resources -> static -> hello-static.html 생성 접근 : 8080/hello-static.html [ 100% 파일 내용이랑 같다 ] 2. MVC와 템플릿 엔진 ( 가장 많이 사용 ) html + (Programming) => 동적 컨텐츠 3. API
MVC : Model View Controller @RequestParam() : 파라미터 받기 8080/hello-mvc에 ?name=spring이란 값을 주면 hello-templates.html로 넘어가 정상적으로 실행 required=true가 default값으로 설정되어 있고 false로 주면 값을 넘기지 않아도 된다. 8080/hello-mvc?name=spring -> name = spring이란 값을 주면 "name"이란 키, value값(name)에 spring이 저장된다. 이를 모델로 넘기고 hello-templates에 도달하면, 모델에서 값을 꺼내와 ${name}를 변환하여 보여준다.