[인프런][김영한] 스프링 입문 강의 정리 #1

김하밍·2023년 7월 27일
0

Spring

목록 보기
11/13


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

스프링을 배우는 이유

  • 실무에서 제대로 동작하는 애플리케이션을 만들기 위해서
  • 스프링은 방대하기 때문에 필요한 것에만 초점을 맞춰서 찾아 사용하자

커리큘럼
1. 프로젝트 생성
2. 웹 서버 실행
3. 회원 도메인 개발
4. 웹 MVC 개발
5. DB 연동 JDBC, JPA, 스프링 데이터 JPA
6. 테스트 케이스 작성

사용 기술

  • SpringBoot
  • JPA
  • Gradle
  • Hibernate

Hibernate

  • JPA의 구현체. 우리가 사용할 수 있는 API
  • 자바 기반의 ORM 기술 인터페이스
  • SQL을 직접 사용하지 않고, 메서드 호출만으로 쿼리 수행
    (다만, SQL 작성하는 것보다 성능이 좋지 않다는 점)

Thymeleaf

  • 컨트롤러가 전달하는 데이터를 이용하여 동적으로 화면을 구성할 수 있게 해준다.
  • html 태그를 기반으로 th:속성을 이용하여 동적인 View를 제공한다.
  • Web에서 가장 기본이 되는 HTML로 진입장벽이 낮고 쉽게 배울 수 있다는 장점

1. 프로젝트 환경설정


  1. https://start.spring.io/
  2. IntelliJ IDEA 2023.1.3 (Ultimate Edition) 내부에서 생성 가능

과거에는 Maven Project를 주로 사용했지만 요즘에는 Gradle Project를 더 선호합니다. (프로젝트가 커질수록 Gradle이 좋다고 합니다.)

  • IntelliJ
  • Gradle-Groovy
  • JDK11
  • Java 11
  • Spring Boot 버전: 2.7.14(SNAPSHOT ❌)
  • Dpendencies: 웹개발을 위한 Web > Spring Web 동적인 HTML을 제공하기 위한 view template인Template Engines > Thymeleaf 추가하여 스프링 기본 프로젝트 생성

-> 생성 완료 !

빌드 시, 오류가 뜨면 확인해보기

  • Settings > Gradle > 빌드 및 실행 & 테스트 실행 두 경우 모두 Gradle -> IntelliJ IDEA 으로 변경하기

@SpringBootApplication이 붙어있는 이미 만들어져 있는 클래스?
main 메서드 로부터 모든 프로그램이 시작됩니다.
main 메서드 run(실행)하면 버전을 확인할 수 있고, 중요한 부분은 Tomcat started on port(s) :8080 연결된 것을 확인할 수 있습니다. 이때, localhost:8080 사이트를 접속하면 error 페이지가 뜹니다.
완전히 끄는 버튼을 누르면, 다시 error 페이지는 '사이트에 연결할 수 없음' 이 뜹니다.

Tips
빌드 및 실행 시 주의할 점
: 8080포트가 이미 실행중이라면 중단해야합니다.

terminal
// port를 사용하고 있는 PID 확인
$ lsof -i :8080
// 해당 프로세스 종료하기
$ kill <PID>

빌드 잘못했을 때
: 인텔리제이 우측 Gradle > build > clean (더블클릭) 실행하여 생성된 build 파일 삭제됩니다.


라이브러리 살펴보기

Gradle에서 확인할 수 있습니다.

Spring Web & thymeleaf 만 사용했습니다.
Spring-boot-starter-web

  • spring-boot-starter-tomcat: 톰캣(웹서버)
  • spring-sebmvc: 스프링 웹 MVC

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

템플릿이란? ViewResolver 역할

View 환경설정

profile
나만의 언어로 기록하며 성장하기 !

0개의 댓글