Spring

[Spring] 스프링 웹 개발의 기본 동작 원리, 개발방법 (정적, MVC, API)

권락현 2022. 1. 16. 22:57

 

스프링으로 웹을 개발하는 세 가지 방법

  • 정적 컨텐츠
  • MVC, template
  • API

1. 정적 컨텐츠 방식

  • html 파일을 그대로 웹브라우저로 내려주는 방식

  • static 경로에 저장하여 사용 => 예) resource/static/파일이름.html
  • 실행 시 파일 이름을 그대로 붙여서 실행 => 예) http://localhost:8080/파일이름.html
웹브라우저 주소 호출 -> 내장 톰캣 서버(스프링 부트) -> 스프링 컨테이너(어? 관련 컨트롤러가 없네?라고 인식) -> static 폴더로 가서 해당하는 파일을 찾음 -> 그대로 실행

 

 

2. MVC, template(템플릿)

  • 가장 많이 쓰는 방식
  • html을 동적으로 바꿔서 주는 방식
  • 동적으로 바꾸는 방식을 model, view, controller로 나누어 컨트롤

  • template 경로에 저장하여 사용 => 예) resource/template/파일이름.html
  • 실행 시 매핑한 이름으로 실행 => 예) http://localhost:8080/매핑시킨이름
웹브라우저 주소 호출 -> 내장 톰캣 서버(스프링 부트) -> 스프링 컨테이너(매핑된 컨트롤러 발견 -> model에 있는 키, 밸류들을 전달 -> viewResolver가 받아서 template에서 파일을 찾아서 처리) -> html로 변환 후 전달

 

 

3. API

  • 가장 대표적으로 JSON을 전달할 때 사용 
  • html 파일이 아닌 있는 문자 그대로 전달
  • @ResponseBody을 통해 문자를 변환

  • 태그를 반환하는 것이 아님(별개의 html 파일을 필요로 하지 않음)
  • http://localhost:8080/매핑이름?파라미터=문자열
웹브라우저 주소 호출 -> 내장 톰캣 서버(스프링 부트) -> 스프링 컨테이너(매핑된 컨트롤러 발견 -> @ResponseBody를 통해 그대로 넘김 -> 객체라면 JSON, 문자라면 문자열 형태로 변환) -> 변환된 문자열을 전달

 

 


이곳에 작성한 내용은 인프런에서 서비스하는 강의 중 김영한님의 스프링 강의를 정리하고 저의 언어로 기억하고 싶은 것을 정리한 내용입니다. 아래에 출처를 남겨두겠습니다.

 

https://www.inflearn.com/roadmaps/373

 

[초급~중급] 우아한형제들 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵

대세를 따르세요! 자바 스프링 베스트셀러 우형 최연소 기술이사에게 배우는 스프링 완전 정복 🚩 [사진] 오픈 3개월 만에 수강생 7000+명의 극찬 릴레이 ✨원리와 실무를 한방에, 김영한의 스프

www.inflearn.com