멘토에게 추천을 받은책이 코드로 보는 스프링부트인데, 정말 좋은책인거 같다.
선수지식이 약간 필요하긴하지만, 그렇게 어렵지는 않다.
-스프링 부트의 경우 자동 설정 기능을 이용하면 최소한의 설 정만으로도 원하는 기능들을 사용할 수 있는 놀라운 개발 생산성을 보여준다.
-데이터베이스 처리는 과감하게 jpA를 도입해 봅니다. jpA를 이용 해서 최소한의 개발을 추구하고 데이터베이스에 독립적으로 실행 가능한 코드를 개발할 수 있다
-조인 처리해야 했던 시간을 얼 마나 절약할수 있다
인증처리-소셜 로그인 처리와 더불어 JWT 토큰을 발행하는 방식 을 도입한다.
Intellij Ultimate사용
MariaDB,Spring Data JPA로 SQL을 대신
JSP 대신에 Thymeleaf를 이용해서 화면을 작성
Part 1 - 스프링 부트,Thymeleaf, Spring Data JPA
Part 2- 단일 엔티티를 이용하는 방명록 프로책트
Part 3 - @ManyToOne 연관관계를 이용하는 게시물과 댓글 프로젝트
Part 4 - 다대다 관계등 영화와 회원의 영화 리뷰 프로젝트
Part 5 - 스프링시큐리티를 이용하는 일반 로그인/소셜 로그인 저리
카페 주소: http://cafe.naver.com/gugucoding
소스코드 다운로드
Part1 소개
-스프링 부트를 이용해서 프로젝토를 어떻게 생성하는지 살펴봅니다. 스프링 부트는 최소 한의 설정만으로도 충분히 실행이 가능한 웹 애플리 케이션을 제작할 수 있고 기존의 스프링이 가진 모 든 기능을 활용할 수 있다는 장점이 있다.
-개발환경, 데이터베이스 이용
Intellij Community 버전에서 스프링 부트 프로젝트 생성하기
-Spring Initializer 프로젝트를 생성하고 이를 다운로드 받아서 사용할 수 있다.
dependencies
testCompileOnly org.projectlombok:lombok' testAnnotationProcessor 'org. projectlombok: lombok'
JSON 타입의 데이터를 생성하기 위해서는 databind와 같은 라이브러리가 필요한데 스프링 부트 프로젝트는 'Spring Web' 의존성 항목을 추가하는 경우에 자동으로 추가되므로 별도의 설정이 밀요하지 않습니다.
Tomcat과 같은 별도의 WAS가 반드시 필 요하고 이를 배포하는 과정이 수반되었습니다만 스프링 부트에서는 단독으로 실행 가능 한 웹 애플리케이션을 jar 파일의 형태로 제작하고 사용하는 것이 가능합니다.
Maria 데이터베이스를 설정
pring Data JPA라는 라이브러리를 이용해서 JPA 기술에 대해서 학습
Maria DB는 오픈 소스로 사용이 가능하고,MySQL과 거의 동일한 기능을 제공
• Mana DB의 설치와 스키마/계정 생성
• 스프링부트 프로전토의데이터베이스 설정
• Spring Data JPA를 이용한 CRUD와 페이징 처리 기법 배우기
• Jpa인터페이스를 활용하여 다양한 방법 익히기
-MariaDB의 최대 장점은 MySQL과 거의 동일한 기능을 제공하면서도 완전한 오픈소스이다
-MariaDB를 통해서 상용화된 서비스를 개발하고 운영하여도 라 아빈스 비용에 대한 걱정 없이 시스템을 운영
-AWS와 연동 시에도 최소한의 비용으로 운영이 가능하다는 장점이 있다.
-고 실 습에 필요한 데이터베이스와 필요한 사용자 계정을 생성해야한다.
->지난 posting 참고
'Auto Configuration'이라고 불리는 자동 설정 기능이 있습니다. '자동 설 정' 기능이란 간단히 말해 특정한 라이브러리가 있다면 이에 관련된 설정을 자동으로 추 가하는 것입니다. 좀 더 현실적으로는 현재 프로젝트의 경우 'Spring Data JPA과는 의존 성을 추가했기 때문에 이와 관련된 설정이 자동으로 추가되는 것을 의미
'Auto Configuration'-자동설정
'Spring Data JPA과는 의존 성을 추가했기 때문에 이와 관련된 설정이 자동으로 추가되는 것을 의미
-프로젝트 실행 시 에러
datasource 관련된 url 설정과 관련된 것입니다. 이는 프로젝트 내에 Spring Data JPA 라이브러리가 추가되었기 때문에 자동으로 이에 관련된 설정은 추가되 었으나 구체적인 값이 지정되지 않아서 발생하는 문제
문제해결
• MariaDB 를위한 JDBC 드라이버
• 스프링 부트 프로젝트 내 MariaDB 설정
MariaDB 드라이버 검색
-메이븐 저장소에서 MariaDB관련 드라이버를 선택하고 Gradle관련 설정을 복사
구글검색 -marinaDB Java Client
-설정과 관련된 내용을 복사해서 현재 프로젝트의 build.gradle 파일의 dependencies 항목 에 추가합니다.
dependencies {
implementation *org.springframework.boot:spring-boot-starter-data-jpa* implementation ,org.springframework.boot:spring-boot-starter-web. compileOnly 'org.projectlombok:lombok'
developmentOnly •org.springframework.boot:spring-boot-devtools, annotationprocessor 'org.projectlombok:lombok'
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' testlmplementation('org. springframework, boot :spring-boot-starter-test*)
{
exclude group: ' org. j unit .vintage', module: ' j unit-vintage-engine' }
application.properties 파일의 설정은 기존의 XML이나 Java 설정에 비해서 단순하다. 스프링 부트는 어지간한 설정은 파일을 수정하는 것만으로 가능하다. 설정 파일은 properties 파일로 만들거나 yml 파일로 만들어서 사용한다.
spring, datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/bootex
spring.datasource.username=bootuser
spring.datasource.password=bootuser