IOC DI AOP > 이론 너무 어려워 포기하는 일이 많음. 스프링이 워낙 방대함.
스프링 완전 정복
- 스프링 입문 >>>>>>>> 현재 강의
- 스프링 핵심원리
- 스프링 웹MVC
- 스프링 DB 데이터 접근 기술
- 실전! 스프링 부트
섹션 1 . 강의 소개 + 강의 자료 : 오래되거나 마이너한 스프링기술 X
스프링을 왜 공부하는가?
간단한 웹 애플리케이션 개발
- 스프링 프로젝트 개발
- 스프링부트로 웹서버 실행
- 회원 도메인 개발
- 웹 MVC개발
- DB연동 - JDBC,JPA, 스프링데이터 JPA
- 테스트 케이스 작성
프로젝트 사용
스프링부트 / 그래들 / 타임리프 / 하이버네이트 / JPA / 톰캣
강의 자료 다운로드 :Desktop\MIN_DEV\인프런
# 버전 수정 이력
## v2024-01-20
* MemoryMemberRepositoryTest 코드 오류 수정(qdlsungls님 도움)
## v2023-11-27
* 스프링 부트 3.2 업데이트 관련 이슈
* start.spring.io 스프링 부트 2.x 지원 종료
* 스프링 부트 3.0 이상을 사용해주세요.
* 자바 17 이상을 사용해주세요.
* 강의 메뉴얼 분할
* 강의 메뉴얼 링크
### v2023-08-16
* 메뉴 링크 이동
## v2022-11-28
* 스프링 부트 3.0 내용 추가
* 프로젝트 선택에서 `Gradle - Groovy` 추가
## v2022-09-04
* 오타 `helloConroller` -> `helloController` (hswkd9895님 도움)
* 코드 오타 `template/` -> `templates/` (anthologia님 도움)
## v2021-12-01
*주의!*
h2 데이터베이스는 꼭 다음 링크에 들어가서 *1.4.200* 버전을 설치해주세요.
최근에 나온 2.0.206 버전을 설치하면 일부 기능이 정상 동작하지 않습니다.
https://www.h2database.com/html/download-archive.html
만약 이미 설치하고 실행까지 했다면 다시 설치한 이후에 *~/test.mv.db* 파일을 꼭 삭제해주세요.
그렇지 않으면 다음 오류가 발생하면서 접속되지 않습니다.
General error: "The write format 1 is smaller than the supported format 2 [2.0.206/5]" [50000-202] HY000/50000
## v2021-07-18
스프링 부트 최신 버전 선택 설명 추가
## v2021-03-03
* 윈도우 사용자는 h2.bat 실행 추가
## v2021-02-11
* 회원 리포지토리 테스트 케이스 작성에서 result, member 위치 변경
* 도움 주신 분 : 박동훈님
## v1.7 - 2020-11-23
* 스프링부트 2.4 에서 데이터베이스 커넥션 오류 해결방안 추가
* 스프링부트 2.4부터는 `spring.datasource.username=sa`를 꼭 추가해주어야 한다. 그렇지 않으면 `Wrong user name or password` 오류가 발생한다.
* [Databases that support embedded and non-embedded modes are always detected as embedded by somayaj · Pull Request #23693 · spring-projects/spring-boot · GitHub](https://github.com/spring-projects/spring-boot/pull/23693)
## v1.6 - 2020-10-14
* helloController -> memberController 이미지 오류 수정 (도움주신분: 최성규님)
## v1.5 - 2020-10-10
* IntelliJ JDK 설치 확인 추가
## v1.4 - 2020-09-18
* 인텔리J 커뮤니티(무료) 버전에서 `application.properties` 파일에서 키가 회색으로 인식 설명
## v1.3 - 2020-09-07
* 윈도우 gradlew.bat -> gradlew로 변경
## v1.2 - 2020-08-28
* 윈도우 사용자를 위한 IntelliJ 단축키 조회 방법 추가
## v1.1 - 2020-08-28
* 윈도우 사용자를 위한 도움 추가
윈도우에서 맥의 iTerm이 없는데 어떻게 하나요? 링크 추가
* 도움 주신 분: 루시님
## v1.0 - 2020-07-20
* 강의 오픈
섹션 2
프로젝트 생성
라이브러리 살펴보기
View 환경설정
빌드하고 실행하기
프로젝트 생성
- Java11설치
- IDE:IntelliJ 또는 Eclipse설치
라이브러리 땡겨오고 + 라이프사이클 관리
Maven Project 보다 Gradle Project 많이 씀
Java
Spring Boot 버전 중
SNAPSHOT은 만들고 있는것 M1 정식릴리즈 아님
그 중 제일 괜찮은 2.3.1 로
프로젝트 메타데이터
Group 보통 기업도메인명 hello
Artifact 빌드 되어 나올때의 결과물(프로젝트명) hello-spring
Name Description Packagename 그냥유지
Dependencies - 어떤 라이브러리를 땡겨 쓸거냐?
Spring Web (웹)
Thymeleaf (템플릿 엔진)
Generate > 누르면 다운로드 받아짐 > 압축풀기
-
인텔리제이 들어가서 open or import 들어가서 build.gradle열기
src 가 main과 test로 나눠져있음( 요새 개발 트렌드에서는 test코드가 중요하다.)
build.gradle 버전설정들과 선택했던것들 목록
sourceCompatibility = '11' 자바 버전
dependencies{타임리프 웹프로젝트 기본적으로 테트스트라이브러리}
repositories { mavenCentral() 공개된 사이트 여기서 다운로드 받으라는 뜻 . 직접추가 가능 }
gitignore
깃에는 소스코드파일만 올라가고
나머지 빌드된 결과물 올리면 안됨.
startspring io에서 알아서 다해줌
gradlew.bat 뒤에 그래들 빌드에서
설정에서 compact middle packages 체크하고 안하고 폴더스타일이 달라짐
런하면 스프링부트 버전 뜨고 / 톰캣 8080포트 (톰캣을 내장하고있어서) 뜨는 거확인
웹브라우저 localhost:8080 들어갔을때 Whitelabel Error 메시지 뜨면 성공
번외 : 인텔리J 빌드가 자바 직접실행이 아니라 그래들 통해서 실행될 때가있음
preference 에서 gradle검색해서 build and using /run test build 를 intellij로 바꿔주기
그러면 더 빨라
라이브러리 살펴보기
Dependencies는 3개 밖에 없지만
External Libraries 열어보면 엄청많음( 몇십메가 나옴... )
요새 의존관계를 다 관리를 해줘서 땡겨줌 - 필요한 관련 된것들은 다 가져와줌
나중에 스프링 코어까지