스프링 입문1 (코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술)(feat.김영한 강사님)

권영태·2023년 5월 1일
1

스프링

목록 보기
1/18

Project : Gradle-Groovy Project
JDK : JAVA 17
Spring Boot Version : 3.0.6
Dependencies : Spring Web, Thymeleaf, H2database
IDEA : IntelliJ IDEA

🌈스프링

  • 스프링 : 자바 기반 웹 프레임워크
  • 스프링 부트 : 스프링을 좀 더 쉽게 이용하기 위한 도구
  • Gradle : 유연한 오픈 소스 빌드 자동화 도구

💡스프링 기본 개념

  • Spring은 객체와 라이브러리들을 관리해주며, 내장 웹 서버 톰켓이 있어 자바 웹 어플리케이션을 구동할 수 있다.
  • 스프링은 컨테이너를 이용해 자바 객체의 생명 주기(생성부터 소멸까지)를 관리한다.
  • 빈은 스프링 컨테이너가 관리하는 자바 객체를 의미한다. 빈을 등록하는 방법으로는 1)@Component 또는 2)Bean 직접 등록 있다.
  • 제어 역전(IOC) : 빈 생성ㆍ의존관계 설정 등의 작업을 자바 코드로 직접 처리하는 것이 아닌, 스프링 컨테이너가 처리한다.
    -> 제어권이 개발자가 아닌 IOC 컨테이너에 있다.
  • 의존성 주입(DI) : IOC 방법 중 한 가지.
    A가 B에 의존할 때 B가 의존 대상 B가 변하면 A에 영향을 미친다.
    이를 최소화 하기 위해 외부에서 주입하는데, 스프링에서는 IOC 컨테이너가 외부가 되어 빈을 주입하는데 이를 DI라고 한다.

📖 MVC

  • MVC : 여러 디자인 패턴 중 하나로써 Model, View, Controller 3가지 영역으로 구분하여 각 역할에 맞게 개발하는 방식이다.
  • Model : 클라이언트에게 응답하는 작업 처리 결과 데이터 * Key-Value방식
  • View : Model을 사용하여 사용자에게 보여주는 인터페이스
  • Controller : Model과 View의 상호작용을 도와주는 역할

  1. @RequestParam(”name”) String name : “name”을 value로 넘김
    1. @RequestParam()의 매개변수
    1) name : 위 사진처럼 value로 넘길 파라미터
    2) defaultValue : name이 전달되지 않았 경우 전달해줄 기본
    3) required : name 값의 강제성 여부(default - True)
    4) value : name과 동일 역할 * 단 name과 value는 동시 사용 불가
  2. model.addAttribute(”name”, name) : “name’ key에 해당되는 value(name)를 가진 model 생성

⚙️ 동적 환경 그림

  1. 웹 브라우저가 내장 톰켓 서버에 hello-mvc를 요청
  2. 내장 톰켓 서버는 스프링 컨테이너 안 helloController에 전달
  3. 매핑되는 helloMvc 메서드를 동작시켜 hello-tmplate에 model(name:spring)을 viewResolver에 전달
  4. viewResolver(view를 찾아주고 템플릿 엔진 연결)가 해당 되는 templates를 찾고, 템플릿 엔진을 처리하여 웹 브라우저에 전달
profile
GitHub : https://github.com/dudxo

0개의 댓글