[스프링 개발 입문] 강의 내용 정리

HJ·2022년 11월 7일
0

김영한 님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의를 보고 작성한 내용입니다.
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard


1. build tool

  • Gradle과 같은 빌드 툴이 한 라이브러리를 가져오면 그 라이브러리와 의존 관계가 있는 또 다른 라이브러리를 가져온다



2. MVC

2-1. Controller

  • Controller 내부의 메서드에 url을 mapping

  • 요청 받은 url과 일치하는 메서드가 실행

  • 화면에 띄우고자 하는 데이터를 Model에 담아서 view의 이름을 return

  • viewResolver가 return한 view 이름을 resources/templates에서 찾아서 처리


2-2. Model

  • View에 필요한 데이터를 담는 역할

  • Controller에서 parameter에 적어준다

  • model.addAttribute('이름', '데이터') 형식으로 Model에 데이터를 추가한다


2-3. View

  • Model 사용 시, Model의 이름으로 사용



3. Controller가 데이터를 받는 방법

3-1. parameter

  • @RequestParam("parameter name") 데이터타입 이름

3-2. form




4. API

  • 화면에 데이터를 띄울 때 MVC처럼 model에 데이터를 담아 view에 전달하는 것이 아니라 데이터 자체를 전달

  • Controller의 메서드에 @ResponseBody 어노테이션을 사용

  • viewResolver가 아닌 HttpMessageConverter가 동작한다

  • 기본 문자처리: StringHttpMessageConverter

  • 기본 객체처리: MappingJackson2HttpMessageConverter

  • HTTP의 Body에 데이터를 담아 직접 반환한다

  • 이 때, 반환하는 데이터가 객체라면 JSON 형식으로 반환된다




5. 웹 어플리케이션 계층 구조

  • Controller는 Service에 의존하고, Service는 Repository에 의존한다



6. DI

  • 하나의 웹 어플리케이션에서 동일한 기능을 하는 객체를 계속 생성하는 것은 좋지 않음

  • 그렇기 때문에 객체를 직접 생성하지 않고 객체를 외부에서 주입받는 DI를 사용

  • Spring이 Spring Container에 Spring Bean을 만들어 놓고, 이렇게 만들어진 Spring Bean을 주입받아서 사용한다

  • @Autowired 를 사용하면 Spring이 Spring Container에 있는 객체를 가져와 연결시켜준다

  • DI 방식에는 필드 주입, setter 주입, 생성자 주입 3가지 방법이 있다




7. Spring Bean

  • Spring은 Spring Container 에 스프링 빈을 등록할 때, 기본으로 싱글톤으로 등록한다 ( 유일하게 하나만 등록해서 공유한다 )

7-1. 자바 코드로 직접 스프링 빈 등록


7-2. 컴포넌트 스캔

  • @Component, @Container, @Controller, @Service, @Repository

  • 위 어노테이션이 있으면 Spring Container에 객체를 생성한다




8. AOP

0개의 댓글