인프런 김영한 강사님 강의 참고 및 공부한 내용 정리
- spring 이란?
springboot, springframwork를 모두 포함한 스프링 생태계
java 기반의 웹어플리케이션 개발시 사용하는 프레임워크- spriongboot란 ? 스프링을 더 쉽게 사용하기 위한 도구
- spring을 chatGPT로 검색해 보았다.
역시 나보다 낫구나 똑똑해
스프링을 이용할때 STS / 이클립스 / 인텔리J 어떤것으로 사용해도 상관없음
환경 구축을 위해서 http://start.spring.io (springboot) 에 들어가서 스프링 프로젝트를 생성해준다. (회원가입,로그인 X)
강의교재에서 나온 프로젝트 조건은
project : gradle
spring boot: 2.3.x
Language : Java
packaging : Jar
java : 11
prject Metadata
groupId: hello
artifacti=Id0: hello-spring
dependencies: Spring Web/ Thymeleaf 두가지 중 선택
로 그대로 설정해주면 된다. 경로를 지정하고 압축을 풀어줌 -> hello-spring -> import 열기
여러종류의 라이브러리를 따라 목적에 맞게 사용할 수 있음
gradle에서 의존관계를 관리해줌
웹에서 스프링 개발방법론 = MVC : Model / View / Controller
VC에서는 key값, Map에 담아주는 개념, return 을 이해해야한다.
controller 매핑 (리턴)
viewResolver - view에서 엔진에다가 넘겨서
html에 변환을 해서 웹브라우저에 넘김
좋은 예를 티스토리에서 찾아왔다.
참고 : https://jdh5202.tistory.com/771
이게 현재 우리회사에 쓰이고 있는 mvc 모델 같다
사실 mvc 모델을 하나씩 따져가면서 쓰고있지 않고, service / controller 이부분이 어떻게 호출되는지가 매우 중요하다 (dao,dto도 데이터가 방대한 회사면 꼭 하나씩 뜯어봐야한다)
실무에서 자세하게 사용하고 있는 컨트롤러 dao dto 용어는 이 동영상을 보면 너무 잘 설명해주고 있다. 아래 동영상에서 언급된 내용 정리
DAO / DTO / VO 개념정리는
https://melonicedlatte.com/2021/07/24/231500.html
여기를 참고
★ controller : service 는 1:1
스프링 객체 지향
DI(Dependency Injection) : 의존관계, 의존성 주입 => 클라이언트에 교체 없잉 교체
DI 컨테이너 제공
-> 의존성이란 필요한 값을 외부에서 의존성을 넣어주는 것 ( build.gradle )
-> 파라미터 주입
-> 필드 주입
-> 생성자 주입 등