[Spring Boot] 프레임워크, 라이브러리, Spring Boot란?

seulki·2022년 11월 21일
0

[springboot]

목록 보기
1/27
post-thumbnail

🎈 Framework 란?

  • '뼈대나 근간'을 이루는 코드들의 묶음
  • 프로그램의 기본 흐름이나 구조를 정하고, 이 구조에 자신의 코드를 추가하는 방식으로 개발할 수 있도록 하는 프로그래밍의 기본 틀을 의미
  • 개발에 필요한 구조가 제공되고, 여기에 필요한 부분을 조립하는 형태로 개발이 진행된다.
  • 소형차를 만들기 위해 뼈대를 사용하는데, 이 뼈대로 SUV를 만들수는 없다 (Framework)

🎈라이브러리란?

  • 라이브러리란 자주 사용되는 로직을 재사용하기 편리하도록 잘 정리한 일련의 코드들의 집합
  • 바퀴나, 선루프, 헤드라이트 등은 비교적 다른 종류로 쉽게 바꿀 수 있다.

🎈 STS(Spring Tool Suite)


🎈 Spring boot 특징

  1. Embed Tomcat

    • 스프링 부트는 내장형 톰캣을 가지고 있기 때문에 별도의 톰캣을 설정할 필요가 없어졌으며,
      그렇기 대문에 독립적으로 실행 가능한 jar로 손쉽게 배포가 가능해졌다.
  2. AutoConfigurator

    • 설정을 어노테이션을 이용하여 대신한다.

🎈 스프링부트 프로젝트 세팅

  1. project : 사용할 빌드 툴 선택 (Maven/Gradle)

    • Maven, Gradle은 프로젝트에 필요한 의존성을 관리하는 빌드 라이프사이클을 관리해주는 툴이다.
      과거에는 Maven을, 최근에는 Gradle을 사용하는 추세이다.
  2. Spring boot : 버전선택

    • SNAPSHOT(개발 중인 버전), M(Minor, 정식 릴리즈 되지 않은 버전), RC2
      아무것도 붙어있지 않은 것이 정식 릴리즈된 버전이다.
  3. Group : 기업의 도메인명

  4. Artifact : 빌드 결과물 (프로젝트 명)

  1. Spring

    • @Controller : Controller에 붙여준다. 해당mapping url을 찾는다.
    • @GetMapping : get 방식의 요청
    • 스프링부트 템플릿엔진 기본 viewName 매핑방식
      resources : templates/ + {viewName}(return String) + .html
  2. DispatcherServlet

    • 스프링 MVC도 프론트 컨트롤러 패턴으로 구현되어 있다.
    • 스프링 MVC의 프론트 컨트롤러가 바로 디스패처 서블릿이다.
    • DispatcherServlet -> FrameworkServlet
      -> HttpServletBean -> HttpServlet
  3. ViewResolver란?

    • 실행할 뷰를 찾는 일을 한다.
    • 페이지 컨트롤러가 리턴한 뷰 이름에 해당하는 뷰 객체를 매핑하는 역할
  4. Model이란?(데이터)

    • controller에서의 데이터를 Model에 담는다. view는 Model에 담겨있는 데이터만 골라서 화면에 바인딩해준다.
    • HashmMap형태를 갖고 있고, key, value값을 저장한다.
    • request.setAttribute()과 비슷한 역할을 한다.
  5. ModelAndView (데이터 + 페이지)

    • Model에서 view 영역이 좀 더 확장
    • Model과 view를 동시에 설정 가능하며, 컨트롤러는 ModelAndView 객체만 리턴하지만,
      Model과 view가 모두 리턴 가능하다.
  6. 일반적인 웹 어플리케이션 계층 구조

    • 컨트롤러 : 웹 MVC의 컨트롤러 역할
    • 서비스 : 핵심 비즈니스 로직 구현
    • 레파지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리
    • 도메인 : 비즈니스 도메인 객체
      예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리

✨ Spring Tool Suite 설치하러가기!

profile
웹 개발자 공부 중

0개의 댓글