우당탕탕 개발일지
[스프링 입문] 프로젝트 환경설정 본문
섹션 1-1. 프로젝트 생성
- IDE: IntelliJ를 추천
- 스프링부트 기반으로 프로젝트를 만들어주는 사이트 이용(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)
- 프로젝트 구조 파악
4. 설정에서 compact middle package 선호
main 메서드 실행하면 HelloSpringApplication 클래스가 바로 실행된다
섹션 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
[테스트 라이브러리]
- 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
- 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 로도 불린다.
- 로깅(logging)로그데이터에서 그 “로그”
'웹개발' 카테고리의 다른 글
[스프링 입문 김영한 인프런] 섹션 3. 회원 관리 예제 - 비즈니스 요구사항 정리 (0) | 2023.10.11 |
---|---|
[스프링 입문 김영한 인프런] 섹션 2. 스프링 웹 개발 기초 - API (0) | 2023.10.11 |
[스프링 입문 김영한 인프런] 섹션 2. 스프링 웹 개발 기초 - 정적 컨텐츠 (0) | 2023.10.11 |
[스프링 입문 김영한 인프런] 섹션 1. 프로젝트 환경설정 (1) | 2023.10.11 |
[스프링 입문] MVC와 템플릿 엔진 (0) | 2023.09.29 |