본문 바로가기
public void static main()/Lecture

[SpringBoot] SpringBoot_01_시작하기!

by 햄리뮤 2021. 1. 11.
반응형

대표사진! [출처] https://medium.com/@tariqul.islam.rony/spring-boot-knowledgebase-part-1-970a2affac68

오늘도... 야근하고 왔지만.... 진짜 이악물고 강의 들었다....

강의 다듣고 무한도전 잠깐 보다가 다시 정신 차리고 오늘 공부한 거 복습!!!

 

오늘은 스프링 부트 강의 시작한날! 

김영한 강사님의 [스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술] 강의이다!

무료니까! 다들 같이 들으러 가시죠!!

www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8

 

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

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Java Spring MVC Spring Boot 온라인

www.inflearn.com

조아! 오늘부터 시작!! (시작 해놓고서 내일 또 안 하면 너무 창피하잖아..)

 

 

일단! 요즘은 간단하게 스프링 부트 프로젝트를 생성할 수 있게 만들어 놨다

스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성 https://start.spring.io

 

위의 사이트를 들어가면 아래와 같이 화면이 나오는데 이번 강좌에서 사용하는 설정이다!

Dependencies는 강사님이 설명해 주시겠지만 Spring Web, Thymeleaf 두 개를 사용하였다.

일단 프로젝트를 만들고

임포트를 하자!

 

build.gradle 구조에 대하서 아주 잠깐이지만 설명해주셨다! 

그래서 나도 한번 찾아봄!

build.gradle [출처] 내꺼임!

build.gradle 구조

 

1. repositories

- gradle이 필요한 라이브러리를 자동으로 다운로드하기 위해 사용하는 저장소임!

- mavenCentral()이나 jcenter()가 주로 사용된다!

- jcenter()와 mavenCetneral()은 gradle의 메서드이다 

 

2. Dependencies

- 저장소에서 필요한 라이브러리를 사용하기 위한 문장

 

Dependencies 종류

- implementation: 컴파일 시에 의존하는(사용) 라이브러리를 지정

- testImplemenation: 테스트 컴파일(단위 테스트)에 사용하는 라이브러리를 지정

- classpath: 컴파일부터 실행 시까지 의존하는 라이브러리 지정에  사용

 

Gradle을 왜 사용하는지 등은 따로 포스팅해야겠다! 할 일 추가!

 

 

library란!

- 재사용이 필요한 기능으로 반복적인 코드 작성을 없애기 위해 언제든지 필요한 곳에서 호출하여 사용할 수 있도록 Class나 Function으로 만들어진 것.

 

(또다른 블로그에서는..!)

- 라이브러리 기술이 생긴 이유는 코드의 재사용 및 부품화 실현, 소스를 제공하지 않음으로서 중요기술의 유출을 방지할 수 있고, 라이브러리는 사용하는 개발자들로서는 대형 어플리케이션 개발 시간을 단축시킬 수 있다는 장점들이 주어지기 때문!

 

❓여기서 잠깐! 그렇다면 Framework란?

- 원하는 기능 구현에만 집중하여 빠르게 개발 할 수 있도록 기본적으로 필요한 기능을 갖추고 있는 것으로 위에서 설명한 라이브러리가 포함되어있음!

프레임워크만으로는 실행되지 않으며 기능 추가를 해야 되고 프레임워크에 의존하여 개발해야 되며 프레임워크가 정의한 규칙을 준수해야함!

(일단 이정도만 하고 추후에 포스팅 할 예정! 할꺼 짱많네...)

 

 

스프링 부트 라이브러리

spring-boot-starter-web

spring-boot-starter-tomcat: 톰캣 (웹서버)

spring-webmvc: 스프링 웹 MVC

spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View)

spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅

spring-boot spring-core

spring-boot-starter-logging logback, slf4j

 

테스트 라이브러리

spring-boot-starter-test

junit: 테스트 프레임워크

mockito: 목 라이브러리

assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리

spring-test: 스프링 통합 테스트 지원

 

doc을 잘 이용하자!

docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-welcome-page

 

Spring Boot Features

Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and Servlet-based web applications. It occurs as part of closing the application context and is performed in the earliest

docs.spring.io

 

thymeleaf 템플릿 엔진 thymeleaf 공식 사이트: https://www.thymeleaf.org/

스프링 공식 튜토리얼: https://spring.io/guides/gs/serving-web-content/

스프링부트 메뉴얼: https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-template-engines

 

 

스프링 부트 동작 환경

 

스프링부트 동작환경 [출처] https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버( viewResolver )가 화면을 찾아서 처리한다.

스프링 부트 템플릿엔진 기본 viewName 매핑 resources:templates/ +{ViewName}+ .html

 

> 참고: spring-boot-devtools 라이브러리를 추가하면, html 파일을 컴파일만 해주면 서버 재시작 없이 View 파일 변경이 가능하다. > 인텔리J 컴파일 방법: 메뉴 build Recompile

(김영한 강사님 내용중...너무 이해가 쏙쏙!)

 

Model 객체

- HashMap 형태를 갖고있으며 key 값과 value값 처럼 사용할 수 있다.

- addAttribute는 Map의 put과 같은 기능과 같아서 이를 통해 해당 모델에 원하는 속성과 그것에 대한 값을 주어 전달할 뷰에 데이터를 전달 할 수 있다.

 

@Controller 클래스 안의 @RequestMapping 어노테이션이 부여된 method들은 사용자에게 응답할 view를 생성하는 역할 즉, Controller 메소드임!

ControllerModel을 이용해 데이터를 가져오고 View에 데이터를 넘겨 적절한 View를 생성하는 역할을 함!

[출처] 나요나!!

요롷게 사용한다!

그럼 html에서 밑의 사진처럼 controller에서 data로 넘겨줬기때문에 html에서 data로 받아야함!

그럼 저 ${data} 값에 "hello!!" 가 출력이 됨!!

[출처] 나나!! 나다!!

 

 

 

오늘도 공부에 도움을 주신 파워파워 파워레인저 블로거분들께 너무너무 감사하다는 말씀 드리며!

여러분이 계시기에 오늘도 공부했습니다!

모두들.. 굿밤...!! 너무졸립다!

 

[출처] 김영한 강사님 강의 www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

 

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

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Java Spring MVC Spring Boot 온라인

www.inflearn.com

[출처] galid1.tistory.com/196

 

Gradle-02) build.gradle 파일 구조와 분석

build.gradle 파일  - # gradle build 명령어로 인해 실행되는 파일 (gradle 명령으로 수행하는 처리는 "build.gradle"의 파일의 내용을 바탕으로 실행 된다) 1. repositories - gradle이 필요한 라이브러리를 자..

galid1.tistory.com

혹시 밑의 링크의 블로거님께서 보고계시다면... 제가 출처 댓글을 달려고 가입까지 해서 이메일 인증을  하려고했는데요... 이메일 인증이 자꾸 오류가 나서 인증을 못해서 출처 댓글을 못달았습니다 ㅠㅠ 증거 사진으로라도 남겨요.. ㅠ

대신 추천했지요!!!!

[출처] blog.gaerae.com/2016/11/what-is-library-and-framework-and-architecture-and-platform.html

 

[개발용어] 라이브러리, 프레임워크, 아키텍처, 플래폼이란?

개발 입문자나 혹은 현업 개발자이지만 정의를 내리기 곤란한 라이브러리, 프레임워크, 아키텍처, 플랫폼에 대한 개인적인 생각을 정리했습니다.

blog.gaerae.com

[출처] saack.tistory.com/31

 

IT 상식] 라이브러리(Library) 란?

[라이브러리의 정의] 라이브러리(library)는 다른 프로그램들과 링크되기 위하여 존재하는, 하나 이상의 서브루틴(subroutine)이나 함수(function)들의 집합 파일 말하는데 함께 링크(link)될 수 있도록

saack.tistory.com

[출처] memories95.tistory.com/109

 

[Spring Boot] Model 객체

Model 객체 - 모델은 HashMap 형태를 갖고 있으므로 key값과 value값처럼 사용할 수 있다. - addAttribute는 Map의 put과 같은 기능과 같아서 이를 통해 해당 모델에 원하는 속성과 그것에 대한 값을 주어 전

memories95.tistory.com

[출처] galid1.tistory.com/504

 

Spring - Model을 이용하여 View에 데이터 넘겨주기 - 6

Spring MVC Model을 이용한 View생성과 응답 앞선 포스팅에서 알아보았듯이 @Controller 클래스 안의 @RequestMapping 어노테이션이 부여된 method들은 사용자에게 응답할 View 를 생성하는 역할을 하는 즉, Contr.

galid1.tistory.com

** 그냥 하루하루 개인 공부한 것을 끄적 거리는 공간입니다.

이곳 저곳에서 구글링한 것과 강의들은

내용이 정리가 되었습니다.

그림들은 그림밑에 출저표시를 해놓았습니다.

문제가 될시 말씀해주시면 해당 부분은 삭제 하도록하겠습니다. **

반응형

댓글