카테고리 없음

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

뉴_민 2024. 11. 8. 10:12

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설치

- https://start.spring.io

라이브러리 땡겨오고 + 라이프사이클 관리

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 열어보면 엄청많음( 몇십메가 나옴... )

요새 의존관계를 다 관리를 해줘서 땡겨줌 - 필요한 관련 된것들은 다 가져와줌

나중에 스프링 코어까지