테스트 코드를 이용한 테스트 여태 코드를 작성하면 서버를 재실행하고 인텔리제이 터미널에서 HTTPie로 테스트를 진행했다. 이렇게 사람이 수동으로 테스트를 하는 것보다 테스트 코드를 작성해서 사람보다는 기계?가 테스트하는 게 훨씬 시간도 절약되고 정확성이 높다. HelloApiTest.java public class HelloApiTest { @Test void helloApi() { } } 내용이 빈 메서드를 만들고 실행해보면 테스트가 통과되었다는 표시가 뜬다. 검증할 내용이 없어 테스트가 통과되지 않는 상황이 없기에 몇 번을 돌려도 테스트는 통과된다. TestRestTemplate.java @Test void helloApi() { // http localhost:8080/hello?name=Spri..
스프링 컨테이너로 통합 현재 코드는 스프링 컨테이너를 만들고 서블릿을 초기화하는 작업을 스프링 컨테이너가 초기화되는 과정 중에 일어나도록 코드를 변경해보자. 이유는 스프링부트가 그렇게 사용하고 있다. 스프링 컨테이너의 초기화 작업은 refresh()에서 일어난다. applicationContext.refresh(); refresh() 전에 호출되는 onRefresh()를 사용하려면 GenericWebApplicationContext를 상속받아서 오버라이딩 해야한다. 클래스를 따로 만들기보다는 익명 클래스를 사용하여 오버라이딩 한다. public class HellobootApplication { public static void main(String[] args) { GenericWebApplicatio..
스프링 컨테이너 사용 기존 소스 코드 정리 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(); // 다양한 서버 프로그램을 ..
Containerless 개발 준비 내장형 톰캣을 실행하지 않도록 HellobootApplication.java에서 일부 코드를 삭제한다. package tobyspring.helloboot; public class HellobootApplication { public static void main(String[] args) { } } 서블릿 컨테이너 띄우기 톰캣은 설치를 해서 사용할 수도 있지만 내장형 톰캣도 따로 있어 설치하지 않고 임베디드 형식으로 사용할 수 있게 개발되었다. 스프링 부트는 https://start.spring.io/ 에서 프로젝트를 생성하면 프로젝트에 자동으로 임베디드 톰캣 라이브러리가 포함된다. 그럼 프로젝트에서 내장형 톰캣을 불러와 사용해보자. 톰캣 라이브러리를 직접 가져오는게..
프로젝트 생성 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 ..
스프링 부트 소개 스프링 부트는 스프링을 기반으로 실무 환경에 사용 가능한 수준의 독립실행형 애플리케이션을 복잡한 고민 없이 빠르게 작성할 수 있게 도와주는 여러가지 도구의 모음이다. 즉, 스프링 부트는 스프링을 기반으로 한 프레임워크이자 라이브러리이다. 프레임 워크 소프트웨어 개발자가 응용 소프트웨어의 표준 구조를 구현하기 위해 사용하는 소프트웨어 프레임워크로 구성된다. 즉, 프로그래밍에서 특정 운영체제를 위한 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리의 모임이다. 재사용할 수 있는 수많은 코드를 프레임워크로 통합함으로써 개발자가 새로운 애플리케이션을 위한 표준 코드를 다시 작성하지 않아도 된다. - 출처 : 위키백과 라이브러리 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발..