코드로 보는 스프링부트 -도전하기

jadive study·2022년 11월 16일
0
post-thumbnail

멘토에게 추천을 받은책이 코드로 보는 스프링부트인데, 정말 좋은책인거 같다.
선수지식이 약간 필요하긴하지만, 그렇게 어렵지는 않다.

스프링 프레임워크를 간단하게 사용할 수 있는 방법

-스프링 부트의 경우 자동 설정 기능을 이용하면 최소한의 설 정만으로도 원하는 기능들을 사용할 수 있는 놀라운 개발 생산성을 보여준다.
-데이터베이스 처리는 과감하게 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 프로젝트를 생성하고 이를 다운로드 받아서 사용할 수 있다.

  • ExlApplicationTests 파일에서 @Test가 있는 메서드를 선택해서 실행해 볼 수 있습니다.

테스트환경에서 Lombok 활용하기

dependencies 
testCompileOnly org.projectlombok:lombok' testAnnotationProcessor 'org.    projectlombok: lombok'

간단한 컨트롤러 실습

JSON 타입의 데이터를 생성하기 위해서는 databind와 같은 라이브러리가 필요한데 스프링 부트 프로젝트는 'Spring Web' 의존성 항목을 추가하는 경우에 자동으로 추가되므로 별도의 설정이 밀요하지 않습니다.

스프링 부트를 단독으로 실행 가능한 파일로 만들기

Tomcat과 같은 별도의 WAS가 반드시 필 요하고 이를 배포하는 과정이 수반되었습니다만 스프링 부트에서는 단독으로 실행 가능 한 웹 애플리케이션을 jar 파일의 형태로 제작하고 사용하는 것이 가능합니다.

Maria 데이터베이스와 Spring Data JPA

Maria 데이터베이스를 설정
pring Data JPA라는 라이브러리를 이용해서 JPA 기술에 대해서 학습
Maria DB는 오픈 소스로 사용이 가능하고,MySQL과 거의 동일한 기능을 제공

• Mana DB의 설치와 스키마/계정 생성
• 스프링부트 프로전토의데이터베이스 설정
• Spring Data JPA를 이용한 CRUD와 페이징 처리 기법 배우기
• Jpa인터페이스를 활용하여 다양한 방법 익히기

MariaDB의 설치와 데이터베이스 생성

-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
profile
개발 메모창고

0개의 댓글