Spring 웹 개발 기초
정적 컨텐츠

- 스프링 부트 정적 컨텐츠 기능
- Spring Boot는 기본적으로 내장 톰켓을 지니고 있다.
아파치(Apache) & 톰캣(Tomcat)
톰켓이 머징???
아파치 서버 : 정적 파일을 처리하는 웹 서버.
톰캣 : 동적 기능들을 가공. HTML로 변환하여 클라이언트에게 전달.
간략하게 하면 위의 내용인데... 이걸 좀더 구체적으로 일단은 알아보고 이해를 해보자

- 톰켓: 아파치 소프트웨어 재단에서 개발한 서블릿 컨테이너 (또는 웹 컨테이너) 만 있는 웹 애플리케이션 서버'
- 웹 서버는 위에서 언급했던 것처럼 클라이언트와 서버 간의 통신을 통해 동작한다. 클라이언트는 URL과 IP 주소 등을 통해 서버에 특정 자원을 요청(request) 하게 되고, 서버는 이것을 보고 이에 응답(response) 하며 작동하게 된다.
- 위의 그림을 보면 아파치는 웹 서버의 일종으로 데이터를 client가 요청한다면 이에 응답할 때 아파치가 동작하며 웹 서버의 역할을 한다.
- jsp와 같은 자바 코드를 요청한다면, 웹서버는 이해할 수 없고, 자바코드를 전송한다 한들 전송받은 내용을 나타낼 수가 없다. 그때 톰켓으로 자바코드를 보내, 내장된 Web Container는 JSP, Servelet을 구동할 수 있는 환경이 있기 때문에 동적 data를 처리할 수 있다.
- 결론 : 결론적으로 톰캣은 .jsp 와 같은 자바 코드를 컴파일해서 .html 로 번역해서 클라이언트에게 제공해주는 역할을 한다.
MVC(Model,View,Client) & 템플릿 이미지

Api(객체지향하는 우리가 주로 사용)

@ResponseBody 사용원리
- Http의 Body에 문자내용을 직접 변환
- viewResolver 대신에 HttpMessageConverter가 동작
- 기본 문자처리 : String...Converter
- 기본 객체처리 : Mapping....Converter
- 참고 : 클라이언트의 HTTP Accept 헤더와 서버의 컨트롤러 변환 타입 정보 둘을 조합해서 HttpMessageConverter가 선택된다.
추가할 내용은 Spring 기본원리 복습하면서 적어가겟당...
https://velog.io/@kjh950330/TIL-DAY-5-%ED%86%B0%EC%BA%A3%EC%9D%B4%EB%9E%80 (참고했습니다)