본문 바로가기
Web

Java Spring 기초

by nyang2 2023. 11. 15.

라이브러리

Gradle

: 의존관계가 있는 라이브러리를 모두 다운해준다.

 

스프링부트 라이브러리

  • spring-boot-starter-web
  • spring-boot-starter-tomcat : 톰캣 (웹서버)
  • spring-webmvc : 스프링 웹 MVC
  • srping-boot-starter-thymeleaf
  • : 타임리프 템플릿 엔진 (View)
  • html 을 만들어주는 엔진
  • spring-boot-starter (공통)
  • spring-boot (스프링부트)
  • spring-boot-starter-logging (로깅)
  • spring-core (스프링코어)

 

테스트 라이브러리

 

spring-boot-starter-test

junit : 테스트 프레임워크

mockito : 목 라이브러리

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

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

 

View 환경설정

스프링부트가 제공하는 Welcome Page 는 static/index.html 을 만들면 Welcome Page 기능을 제공한다. 쉽게 말해서 localhost:8080 에 들어갔을 때 맨 처음 나오는 페이지를 index.html 로 인식한다.

 

Thymeleaf 엔진을 사용 (https://www.thymeleaf.org/)

 

빌드&실행 (cmd)

  1. cd C:\Users\USER\OneDrive\바탕 화면\SpringStudy\hello-spring\hello-spring
  2. dir (gradlew.bat 있는지 확인용)
  3. set Java_HOME=c:/Program Files/Java/jdk-20
  4. gradlew.bat
  5. cd build
  6. cd libs
  7. (프로젝트명이 있는지 확인 후 8번 실행)
  8. java -jar hello-spring-0.0.1-SNAPSHOT.jar

 

정적 컨텐츠

 

src>resources>static 안에 .html 파일을 만들면

localhost:8080/hello-static.html 와 같이 정적으로 접속 가능하다.

 

 

MVC

: Model, View, Controller

사용자가 controller 을 조작하면 controller 는 model 을 통해서 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 view 를 제어해서 사용자에게 전달하게 된다.

 

Model

애플리케이션의 데이터인 데이터베이스, 상수, 변수 등을 뜻한다.

예로 사각형 모양의 박스 안에 글자가 들어 있다면 그 사각형 모양의 박스 위치 정보, 글자 내용, 글자 위치, 글자 포맷 등에 관한 정보를 모두 가지고 있어야 한다.

뷰에서 데이터를 생성하거나 수정하면 컨트롤러를 통해 모델을 생성하거나 갱신한다.

 

View

inputbox, checkbox, textarea 등 사용자 인터페이스 요소를 나타낸다.

즉, 모델을 기반으로 사용자가 볼 수 있는 화면을 뜻한다.

 

Controller

하나 이상의 모델과 하나 이상의 뷰를 잇는 다리역할을 하며 이벤트와 같은 메인 로직을 담당한다.

 

 

Test code

: 코드를 코드로 검증하는 것이다.

 

  1. 테스트코드를 작성한 Class 생성 ( src > test )
  2. 테스트 해볼 기능들을 추가
  3. 테스트 할 기능이 담긴 객체 생성
  4. 기능 테스트

기능을 테스트 할 때 함수를 선언하고 그 위에 @Test 를 적어줘야한다. 이것은 junit.jupiter.api 에 포함된 메소드며, 해당 메소드가 단위 테스트임을 명시해준다.

 

테스트는 서로 의존관계 없이 설계되기 때문에 순서가 상관이 없다. 따라서 하나의 테스트가 끝날 때마다 데이터를 clear 작업 해줘야 한다.

@AfterEachpublic

void afterEach() { repository.clearStore(); }