토비의 스프링 부트 - 자동 구성 기반 애플리케이션_1
·
공부/Spring
메타 애노테이션과 합성 애노테이션 @UnitTest 애노테이션 생성 @Test 메서드가 붙어있는 simpleHelloService()의 애노테이션을 @UnitTest 애노테이션으로 변경해보자. 물론 새로 생성해줘야한다. @UnitTest void simpleHelloService() { SimpleHelloService helloService = new SimpleHelloService(); String ret = helloService.sayHello("Test"); Assertions.assertThat(ret).isEqualTo("Hello Test"); } @Test void helloDecorator() { HelloDecorator decorator = new HelloDecorator(nam..
토비의 스프링 부트 - DI와 테스트, 디자인 패턴
·
공부/Spring
테스트 코드를 이용한 테스트 여태 코드를 작성하면 서버를 재실행하고 인텔리제이 터미널에서 HTTPie로 테스트를 진행했다. 이렇게 사람이 수동으로 테스트를 하는 것보다 테스트 코드를 작성해서 사람보다는 기계?가 테스트하는 게 훨씬 시간도 절약되고 정확성이 높다. HelloApiTest.java public class HelloApiTest { @Test void helloApi() { } } 내용이 빈 메서드를 만들고 실행해보면 테스트가 통과되었다는 표시가 뜬다. 검증할 내용이 없어 테스트가 통과되지 않는 상황이 없기에 몇 번을 돌려도 테스트는 통과된다. TestRestTemplate.java @Test void helloApi() { // http localhost:8080/hello?name=Spri..
토비의 스프링 부트 - 독립 실행형 스프링 애플리케이션-2
·
공부/Spring
스프링 컨테이너로 통합 현재 코드는 스프링 컨테이너를 만들고 서블릿을 초기화하는 작업을 스프링 컨테이너가 초기화되는 과정 중에 일어나도록 코드를 변경해보자. 이유는 스프링부트가 그렇게 사용하고 있다. 스프링 컨테이너의 초기화 작업은 refresh()에서 일어난다. applicationContext.refresh(); refresh() 전에 호출되는 onRefresh()를 사용하려면 GenericWebApplicationContext를 상속받아서 오버라이딩 해야한다. 클래스를 따로 만들기보다는 익명 클래스를 사용하여 오버라이딩 한다. public class HellobootApplication { public static void main(String[] args) { GenericWebApplicatio..
토비의 스프링 부트 - 독립 실행형 스프링 애플리케이션-1
·
공부/Spring
스프링 컨테이너 사용 기존 소스 코드 정리 FrontController의 로직 중 'else if~' 구문 삭제 HTTP Status Code 세팅 코드 삭제 (에러가 나지 않는 한 알아서 200 OK 코드가 붙어 나간다.) 즉, 생략가능 HTTP Header에 세팅한 Content-Type 부분 setContentType() 메서드로 변경. 이러면 header ID를 생략하고 값만 넣으면 됨 public class HellobootApplication { public static void main(String[] args) { TomcatServletWebServerFactory serverFactory = new TomcatServletWebServerFactory(); // 다양한 서버 프로그램을 ..
토비의 스프링 부트 - 독립 실행형 서블릿 애플리케이션
·
공부/Spring
Containerless 개발 준비 내장형 톰캣을 실행하지 않도록 HellobootApplication.java에서 일부 코드를 삭제한다. package tobyspring.helloboot; public class HellobootApplication { public static void main(String[] args) { } } 서블릿 컨테이너 띄우기 톰캣은 설치를 해서 사용할 수도 있지만 내장형 톰캣도 따로 있어 설치하지 않고 임베디드 형식으로 사용할 수 있게 개발되었다. 스프링 부트는 https://start.spring.io/ 에서 프로젝트를 생성하면 프로젝트에 자동으로 임베디드 톰캣 라이브러리가 포함된다. 그럼 프로젝트에서 내장형 톰캣을 불러와 사용해보자. 톰캣 라이브러리를 직접 가져오는게..
토비의 스프링 부트 - 스프링 부트 시작하기
·
공부/Spring
프로젝트 생성 Spring Boot 버전은 2.7.10을 선택, Dependency는 Spring Web 선택, Java 버전은 11을 선택했다. Hello 컨트롤러 HelloController 생성 hello() 작성 @GetMapping("/hello") public String hello(String name) { return "hello " + name; } 서버 실행 후 확인 Hello API 테스트 HTTP 요청을 만들고 응답을 확인하는데 사용되는 도구 웹 브라우저 개발자 도구 curl HTTPie - https://httpie.io/ Homebrew 설치가 되어 있으면 'brew install httpie' 커맨드로 설치 가능Intellij IDEA Ultimate- http request ..
토비의 스프링 부트 - 스프링 부트 살펴보기
·
공부/Spring
스프링 부트 소개 스프링 부트는 스프링을 기반으로 실무 환경에 사용 가능한 수준의 독립실행형 애플리케이션을 복잡한 고민 없이 빠르게 작성할 수 있게 도와주는 여러가지 도구의 모음이다. 즉, 스프링 부트는 스프링을 기반으로 한 프레임워크이자 라이브러리이다. 프레임 워크 소프트웨어 개발자가 응용 소프트웨어의 표준 구조를 구현하기 위해 사용하는 소프트웨어 프레임워크로 구성된다. 즉, 프로그래밍에서 특정 운영체제를 위한 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리의 모임이다. 재사용할 수 있는 수많은 코드를 프레임워크로 통합함으로써 개발자가 새로운 애플리케이션을 위한 표준 코드를 다시 작성하지 않아도 된다. - 출처 : 위키백과 라이브러리 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발..