스프링

정해랑·2024년 3월 26일
  1. 프레임워크란?
  • '뼈대나 근간'을 이루는 코드들의 묶음
  • 프로그램의 기본 흐름이나 구조를 정하고, 이 구조에 자신의 코드를 추가하는 방식으로 개발할 수 있도록 하는 프로그래밍의 기본 틀을 의미
  • 개발에 필요한 구조가 제공되고, 여기에 필요한 부분을 조립하는 형태로 진행된다.
  1. 라이브러리란?
  • 라이브러리란 자주 사용되는 로직을 재사용하기 편리하도록 잘 정리한 일련의 코드들의 집합
  1. 프레임워크 vs 라이브러리
  • 프레임워크는 자동차의 프레임, 즉 기본적으로 구성하고 있는 뼈대를 말한다.
  • 라이브러리는 자동차의 기능을 하는 부품을 의미한다.
  • 한 번 정해진 자동차의 프레임은 바꿀 수 없다.
  • 소형차를 만들기 위해 뼈대를 사용하는데, 이 뼈대로 SUV를 만들 수는 없다.(프레임워크)
  • 그러나 바퀴나, 선루프, 헤드라이트 등은 비교적 다른 종류로 쉽게 바뀔 수 있다.(라이브러리)
  1. Spring이란?
  • 스프링 프레임워크는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 Spring(스프링)이라고 불린다.
  • 동적인웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다.
  1. @SpringBootApplication
  • @SpringBootApplication 어노테이션으로 인해 스프링부트의 자동 설정 읽기와 생성이 모두 자동으로 설정된다.
  1. @Controller
  • Controller에 꼭 붙여준다. Controller에서 해당 mapping url을 찾는다.
  1. @GetMapping
  • get방식의 요청
  1. return "hello";
  • hello란 화면을 찾아서 return 해준다
  • 스프링 부트에서 템플릿 엔진이 기본으로 viewName을 매핑한다.
  • resources:templates/+{ViewName} + .html
  • 컨트롤러에서 리턴 값으로 문자를 반환하면 뷰리졸버(viewResolver)가 화면을 찾아서 처리한다.

스프링 부트는 JSP를 가급적 피한다.
(타임리프 사용 : 디자이너와 협업이 매끄럽기 때문에 타임리프를 사용한다)

  1. DispatcherServlet
  • 스프링 MVC도 프론트 컨트롤러 패턴으로 구현되어 있다.
  • 스프링 MVC의 프론트 컨트롤러가 바로 디스패처 서블릿이다.
  • DispatcherServlet -> FrameworkServlet
    -> HttpServletBean -> HttpServlet
  1. view 반환
  • 뷰 리졸버는 뷰의 논리이름을 물리이름으로 바꾸고, 렌더링 역할을 담당하는 뷰 객체를 반환한다.
  • 내부에 forward() 로직이 있다.
  1. Model이란?
  • Controller에서의 데이터를 Model에 담는다. view에서는 알아서 Model에 담겨있는 데이터만 쏙쏙 골라서 화면에 바인딩한다.
  • HashMap 형태를 갖고 있고, 키와 벨류값을 저장한다.
  • servlet의 request.setAttribute()와 비슷한 역할을 한다. (완전하게 똑같지는 않음)
  1. ModelAndView이란?
  • model에서 view에 대한 영역이 좀 더 확장되었다.
  • Model과 view를 동시에 설정이 가능하며, 컨트롤러는 ModelAndView 객체만 리턴하지만 Model과 View가 모두 리턴이 가능하다.
    = addObject("key",value);
  1. 일반적인 웹 애플리케이션 계층 구조
  • 컨트롤러 : 웹 MVC의 컨트롤러 역할
  • 서비스 : 핵심 비지니스 로직 구현
  • 레파지토리 : 데이터 베이스에 접근, 도메인 객체를 DB에 저장하고 관리
  • 도메인 : 비지니스 도메인 객체 예) 회원, 주문, 쿠폰 등등
  1. service란?
  • 서비스 레이어단에서 세분화된 비지니스 로직을 처리하는 객체이다.
  • Controller가 Request를 받으면 적절한 Service에 전달하고 전달 받은 Service는 비지니스 로직을 처리한다.
  • DAO로 데이터베이스를 접근하고 DTO로 데이터를 전달받은 다음, 적절한 처리를 반환한다.

0개의 댓글