프레임워크/Spring

[인프런][스프링 입문] 1~4 강

pythaac 2022. 2. 4. 21:05
  • 강의 소개
  • 프로젝트 생성
  • 라이브러리 살펴보기
  • View 환경설정

 

https://github.com/pythaac/Spring_tutorial/tree/main/%EC%8A%A4%ED%94%84%EB%A7%81%20%EC%9E%85%EB%AC%B8%20-%20%EC%BD%94%EB%93%9C%EB%A1%9C%20%EB%B0%B0%EC%9A%B0%EB%8A%94%20%EC%8A%A4%ED%94%84%EB%A7%81%20%EB%B6%80%ED%8A%B8%2C%20%EC%9B%B9%20MVC%2C%20DB%20%EC%A0%91%EA%B7%BC%EA%B8%B0%EC%88%A0

 

GitHub - pythaac/Spring_tutorial: These are test tutorial codes between react native(android) and spring boot

These are test tutorial codes between react native(android) and spring boot - GitHub - pythaac/Spring_tutorial: These are test tutorial codes between react native(android) and spring boot

github.com

b251cdd258178ef0dac9da7b41e18e30d7ec155f

 

<스프링 입문 강의 - 1강 강의 소개>

* 스프링 학습을 포기하는 이유

- 스프링이 너무 거대하고 이론적인 학습 부분부터 학습하여 포기한다

 

* 스프링을 왜 공부해야하는가

- 실무에서 동작하는 웹 어플리케이션 개발

 

* 스프링을 공부하는 방법

- 직접 코딩하면서 배우기

 

* 학습 내용

- 스프링 프로젝트 생성

- 스프링 부트로 웹 서버 실행

- 회원 도메인 개발

- MVC 개발

- DB 연동 : JDBC, JPA, 스프링 데이터 JPA

- 테스트 케이스 작성

 

* 사용 기술

- Spring boot

- Gradle

- Tymeleaf

- JPA

- Hibernate

- Tomcat


<스프링 입문 강의 - 2강 프로젝트 생성>

* 설치

- JAVA 11 설치

- IDE IntelliJ 설치

 

* spring boot 프로젝트 생성

- start.spring.io : spring boot 기반으로 spring 프로젝트를 만들어주는 사이트

- Project(Maven/Gradle) : 필요한 라이브러리를 가져오고 빌드하는 라이프사이클을 관리해주는 툴

- Language(Java/Kotlin/Groovy)

- Spring Boot 버전 : SNAPSHOT은 만들고 있는 버전, M1은 정식 release되지 않은 버전

- Project Metadata : Group은 기업명, Artifact는 결과물 이름

- Dependencies : Spring Web는 웹 프로젝트, Thymeleaf html을 만들어주는 템플릿 엔진

 

* spring boot 프로젝트 import

- start.spring.io에서 설정한 프로젝트 다운로드

- IntelliJ에서 import (build.gradle 선택)

 

* 프로젝트 구성

- src/main : 개발에 사용되는 리소스

- src/test : 테스트에 사용되는 코드(테스트 디렉토리를 따로 둘만큼 테스트가 중요하다)

- src/main/java : java 파일

- src/main/resource : xml, 설정파일(properties), html java를 제외한 리소스 파일

- build.gradle : plugins는 버전/언어 등 설정, dependencies는 라이브러리, repositories는 라이브러리를 받는 소스

- gitignore : git에 올라가야하는 내용과 올라가면 안되는 내용을 구분해줌

 

* IntelliJ setting

- (windows) settings(ctrl+alt+s) > Appearance&Behavior > Build, Execution, Deployment > Gradle에서 Gradle(default)를 IntelliJ IDEA로 변경

- 이를 설정시 Gradle을 거치지 않고 실행하여 더 빠르다고 함


<스프링 입문 강의 - 3강 라이브러리 살펴보기>

* build.gradle 살펴보기

- 추가한 라이브러리 : thymeleaf, web, 그리고 자동으로 추가된 test

- 그러나 web이 필요로하는(의존하는) 라이브러리들(tomcat, mvc )을 자동으로 모두 가져옴

 

* IntelliJ Gradle 탭 살펴보기

- Dependencies > compileClasspath에서 의존 확인 가능

 

* tomcat library

- 요즘은 서버를 따로 설치하지 않음

- 서버가 내장(embedded)되어 실행시 알아서 서버로서 실행

 

* logging

- spring boot starter에서 의존

- slf4j는 인터페이스

- logback을 많이 사용

 

* test

- junit library가 핵심

- mockito

- assertj


<스프링 입문 강의 - 4 View 환경설정>

* wellcome page

- 처음 서버에 접속했을 때 보여주는 페이지

- /src/main/resource/statric/index.html 추가

 

* spring boot 기능 찾기

- spring boot는 기능이 방대하여 필요한 기능을 찾는 것이 중요

- spring.io > projects > spring boot > learn

- Reference Doc.에서 검색

 

* 템플릿 엔진

- 예시로 작성한 index.html은 정적 컨텐츠

- 템플릿 엔진은 동적 컨텐츠로 바꿀 수 있도록 해주는 기능