Project: Grandle-Groovy Project(라이브러리 및 라이프사이클 관리, 요즘 이거로 씀)
Language: Java
Spring Boot: 버전 선택, SNAPSHOT(아직 만들고있는 버전), M()(아직 release 안함)
Project Metadata: 보통 Group에 기업 도메인이름 넣음, Artifact: 빌드된 결과물(프로젝트명에 해당)
Dependencies: 어떤 라이브러리를 땡겨서 쓸 건지, Spring Web과 Thymeleaf(HTML을 만들어주는 템플릿 엔진)을 선택
Generate 버튼을 누르면 다운로드!
압축 풀고 IntelliJ IDEA에서 Open or Import 클릭해서 해당파일 열기
build.gradle 파일 열기(Open as Project)
프로젝트 구조 파악
버전 설정하고, 라이브러리 땡겨오는 gradle
4. main 메서드 실행하면 HelloSpringApplication 클래스가 바로 실행된다
SpringBootApplication이 작동되면서 톰캣 내장서버도 같이 동작한다.
5. localhost:8080 들어가면 된다
섹션 1-2. 라이브러리 살펴보기
maven같은 빌드툴은 의존관계를 관리해줌
Gradle 눌러보면 Dependencies: 라이브러리 사이의 의존관계
[스프링 부트 라이브러리]
spring-boot-starter-web
spring-boot-starter-tomcat: 톰캣(웹서버)
spring-webmvc: 스프링 웹 MVC
spring-boot-starter-themeleaf: 타임리프 템플릿 엔진(View)
spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅
spring-boot
spring-core
spring-boot-starter-logging
logback, slf4j
[테스트 라이브러리]
spring-boot-starter-test
junit: 테스트 프레임워크
mockito: 목 라이브러리
assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
spring-test: 스프링 통합 테스트 지
섹션 1-3. View 환경설정
Welcome Page 만들기(도메인만 누르고 들어왔을 때의 페이지): src/main/resources/static/index.html을 올려두면 Welcome page 기능을 한다
<a href="/hello">를 통해 경로 엔드포인트가 hello임을 알 수 있
**광범위한 스프링, 필요한 내용을 찾는 능력이 중요
srping.io>projects>spring boot>reference docs>spring boot features를 살펴보면서 필요한 내용 찾기!
3. Thymeleaf
return hello하면 viewResolver가 hello.html을 찾아서 실행 {data}는 모델에 들어있던 attributeName에 해당하고, attributeValue를 반환함 resources:templates/hello.html이 열리게 된다
섹션 1-4. 빌드업 설정하기
콘솔로 이동
./gradlew build
cd build/libs
java -jar hello-spring-0.0.1-SNAPSHOT.jar
느낀 점
아직 모르는 게 많다는 걸 느꼈다. 추가 활동을 꼭 해야겠다고 다짐!
추가 활동
웹 MVC란?
개발할 때 사용하는 디자인 패턴
개발의 영역을 Model, View, Controller로 구분하여 각 역할에 맞게 코드를 작성하는 개발 방식
UI 영역과 도메인 영역이 구분되어 서로 영향을 주지 않고 개발 및 유지보수 가능
Model: Spring MVC 기반 웹 어플리케이션이 클라이언트로부터 요청을 받으면, 요청을 처리한 결과를 클라이언트에게 돌려주는데, 이 때 돌려주는 작업의 처리 결과 데이터
Service Layer: 클라이언트의 요청사항을 구체적으로 처리
Business Logic: 요청 사항 처리하기 위해 java 코드로 구현한 것
View: Model을 이용하여 화면에 보이는 리소스 제공(HTML 페이지 출력, pdf나 excel 등의 문서 형태로 출력, xml이나 json 등 특정 형식의 포맷으로 변환)
Controller: 클라이언트의 요청을 직접적으로 전달받는 endpoint, model과 view 사이에서 상호작용

Spring MVC
Thymeleaf 라이브러리
java 템플릿 엔진, html 생성 위해 사용
java 코드 삽입, 표현식을 통해 데이터를 동적으로 렌더링
IntelliJ
젯브레인스(JetBrains) 사에서 제작한 Java 개발을 위한 툴
IntelliJ 혹은 IDEA 로도 불린다.
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
강의 오픈
스프링 부트 최신 버전 선택 설명 추가
General error: "The write format 1 is smaller than the supported format 2 [2.0.206/5]" [50000-202] HY000/50000
만약 이미 설치하고 실행까지 했다면 다시 설치한 이후에 ~/test.mv.db 파일을 꼭 삭제해주세요.
Project: Grandle-Groovy Project(라이브러리 및 라이프사이클 관리, 요즘 이거로 씀)
Language: Java
Spring Boot: 버전 선택, SNAPSHOT(아직 만들고있는 버전), M()(아직 release 안함)
Project Metadata: 보통 Group에 기업 도메인이름 넣음, Artifact: 빌드된 결과물(프로젝트명에 해당)
Dependencies: 어떤 라이브러리를 땡겨서 쓸 건지, Spring Web과 Thymeleaf(HTML을 만들어주는 템플릿 엔진)을 선택
Generate 버튼을 누르면 다운로드!
압축 풀고 IntelliJ IDEA에서 Open or Import 클릭해서 해당파일 열기
build.grandle 파일 열기(Open as Project)
프로젝트 구조 파악
설정에서 compact middle package 선호
maven같은 빌드툴은 의존관계를 관리해줌[스프링 부트 라이브러리]
spring-boot-starter-web
spring-boot-starter-tomcat: 톰캣(웹서버)
spring-webmvc: 스프링 웹 MVC
spring-boot-starter-themeleaf: 타임리프 템플릿 엔진(View)
spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅
spring-boot
spring-core
spring-boot-starter-logging
logback, slf4j
[테스트 라이브러리]
spring-boot-starter-test
junit: 테스트 프레임워크
mockito: 목 라이브러리
assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
spring-test: 스프링 통합 테스트 지
섹션 1-3. View 환경설정
Welcome Page 만들기: src/main/resources/static/index.html을 올려두면 Welcome page 기능을 한다
광범위한 스프링, 필요한 내용을 찾는 능력이 중요
srping.io>projects>spring boot>spring boot features
Thymeleafreturn hello하면 viewResolver가 hello.html을 찾아서 실행
{data}는 모델에 들어있던 attributeName에 해당하고, attributeValue를 반환함
resources:templates/hello.html이 열리게 된다
섹션 1-4. 빌드업 설정하기
./gradlew build
cd build/libs
java -jar hello-spring-0.0.1-SNAPSHOT.jar
추가 활동
웹 MVC란?
개발할 때 사용하는 디자인 패턴
개발의 영역을 Model, View, Controller로 구분하여 각 역할에 맞게 코드를 작성하는 개발 방식
UI 영역과 도메인 영역이 구분되어 서로 영향을 주지 않고 개발 및 유지보수 가능
Model: Spring MVC 기반 웹 어플리케이션이 클라이언트로부터 요청을 받으면, 요청을 처리한 결과를 클라이언트에게 돌려주는데, 이 때 돌려주는 작업의 처리 결과 데이터
Service Layer: 클라이언트의 요청사항을 구체적으로 처리
Business Logic: 요청 사항 처리하기 위해 java 코드로 구현한 것
View: Model을 이용하여 화면에 보이는 리소스 제공(HTML 페이지 출력, pdf나 excel 등의 문서 형태로 출력, xml이나 json 등 특정 형식의 포맷으로 변환)
Controller: 클라이언트의 요청을 직접적으로 전달받는 endpoint, model과 view 사이에서 상호작용

Spring MVC