우당탕탕 개발일지

[스프링 입문] 프로젝트 환경설정 본문

웹개발

[스프링 입문] 프로젝트 환경설정

민아당긴아 2023. 9. 28. 00:07

섹션 1-1. 프로젝트 생성

  1. IDE: IntelliJ를 추천
  2. 스프링부트 기반으로 프로젝트를 만들어주는 사이트 이용(start.spring.io)
    • 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)
  3. 프로젝트 구조 파악

4. 설정에서 compact middle package 선호

main 메서드 실행하면 HelloSpringApplication 클래스가 바로 실행된다

섹션 1-2. 라이브러리 살펴보기

maven같은 빌드툴은 의존관계를 관리해줌

Gradle 눌러보면 Dependencies: 라이브러리 사이의 의존관계

[스프링 부트 라이브러리]

  1. spring-boot-starter-web
    1. spring-boot-starter-tomcat: 톰캣(웹서버)
    2. spring-webmvc: 스프링 웹 MVC
  2. spring-boot-starter-themeleaf: 타임리프 템플릿 엔진(View)
  3. spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅
    1. spring-boot
      1. spring-core
    2. spring-boot-starter-logging
      1. logback, slf4j

[테스트 라이브러리]

  1. spring-boot-starter-test
    1. junit: 테스트 프레임워크
    2. mockito: 목 라이브러리
    3. assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
    4. spring-test: 스프링 통합 테스트 지

섹션 1-3. View 환경설정

  1. Welcome Page 만들기: src/main/resources/static/index.html을 올려두면 Welcome page 기능을 한다
  2. 광범위한 스프링, 필요한 내용을 찾는 능력이 중요
    1. srping.io>projects>spring boot>spring boot features
  3. Thymeleaf
    "return hello"하면 viewResolver가 hello.html을 찾아서 실행
  4. {data}는 모델에 들어있던 attributeName에 해당하고, attributeValue를 반
  5. resources:templates/hello.html이 열리게 된다

 

 

섹션 1-4. 빌드업 설정하기

콘솔로 이동

  1. ./gradlew build
  2. cd build/libs
  3. 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](<https://prod-files-secure.s3.us-west-2.amazonaws.com/cde84515-c58a-432e-96ba-fc090f132756/7ded13ae-1513-4663-b2ac-7d06b5401df6/Untitled.png>)
      
      Spring MVC
    
  • Thymeleaf 라이브러리
    • java 템플릿 엔진, html 생성 위해 사용
    • java 코드 삽입, 표현식을 통해 데이터를 동적으로 렌더링
  • IntelliJ
    • 젯브레인스(JetBrains) 사에서 제작한 Java 개발을 위한 툴
    • IntelliJ 혹은 IDEA 로도 불린다.
  • 로깅(logging)로그데이터에서 그 “로그”