📺 공부 중인 강의: 스프링 입문 강의 (YouTube 재생목록)

오늘 초압축

스프링 = 웹 서버 만드는 기술
스프링부트 = 스프링을 바로 쓸 수 있게 세팅해 둔 키트
Gradle = 필요한 라이브러리 받아 오고 실행 준비해 주는 도우미
build.gradle = 장보기 목록
MVC = Controller(요청 받기) / Model(데이터) / View(화면) 역할 나누기

0. 개발환경 구축

순서: IntelliJ 설치 → 프로젝트 만들기 (start.spring.io) → IntelliJ로 열기 → JDK 21 연결 → 실행

① IntelliJ 설치

  • jetbrains.com/idea 에서 다운로드
  • 맥 M칩이면 Apple Silicon 버전 (.dmg) 선택
  • 다운받은 dmg 열고 → IntelliJ 아이콘을 Applications 폴더로 드래그

② 프로젝트 만들기 (start.spring.io)

start.spring.io 에서 이렇게 선택

Project      : Gradle - Groovy
Language     : Java
Spring Boot  : 4.1.1
Group        : study
Artifact     : HelloSpring
Packaging    : Jar
Java         : 21
Dependencies : Spring Web, Thymeleaf
  • GENERATE 누르면 zip 다운로드 → 원하는 폴더에 압축 풀기

③ IntelliJ로 열기

  • IntelliJ 실행 → Open → 압축 푼 폴더(build.gradle 있는 폴더) 선택
  • 처음 열면 Gradle이 라이브러리 받느라 시간 좀 걸림 (오른쪽 아래 진행바 끝날 때까지 기다리기)

④ JDK 21 연결

  • 스프링부트 4는 자바 17 이상 필요 (내 맥엔 자바 8만 있었음)
  • File → Project Structure → Project → SDK → Download JDK...
    • Version: 21, Vendor: 아무거나 (나는 Eclipse Temurin)
  • Settings(⌘ ,) → Build, Execution, Deployment → Build Tools → Gradle
    • Gradle JVM: 21로 맞추기
    • Build and run using / Run tests using: IntelliJ IDEA로 바꾸면 실행이 더 빠름

⑤ 실행해 보기

  • src/main/java/study/HelloSpring/HelloSpringApplication.java 열고 main 옆 ▶ 클릭
  • 콘솔에 Tomcat started on port 8080 뜨면 성공
  • 브라우저에서 localhost:8080 접속 → Whitelabel Error Page 나오면 정상 (아직 페이지를 안 만들어서)

1. 스프링 vs 스프링부트

  • start.spring.io에서 만들면 스프링부트 프로젝트
  • 스프링부트 안에 스프링이 들어 있음 → 둘 다 깔린 것
  • 스프링 = 엔진, 스프링부트 = 엔진 얹어서 바로 탈 수 있게 조립한 차

내 프로젝트 (HelloSpring)

스프링부트 4.1.1
자바 21
Gradle
Spring Web MVC + Thymeleaf

2. JDK 설치

  • 스프링부트 4는 자바 17 이상 필요
  • 맥에 자바 8만 있어서 → IntelliJ에서 JDK 21 설치
  • Project Structure → SDK → Download JDK → 21
  • 새로 깔아도 기존 자바는 안 지워짐 (여러 버전 같이 있어도 OK)

3. 폴더 구성

src/main/java/...                    → 자바 코드
  HelloSpringApplication.java        → 시작점 (main 실행하면 서버 켜짐)
src/main/resources/templates/        → 화면 html (JSP 역할)
src/main/resources/static/           → css, js, 이미지
src/main/resources/application.properties → 설정
build.gradle                         → 장보기 목록
  • 실제로 손댈 곳은 거의 src/main뿐
  • 새 클래스는 HelloSpringApplication과 같은 패키지 안에 만들기

4. MVC 패턴

  • Controller = 주문 받는 웨이터 (요청 받음)
  • Model = 요리 (화면에 줄 데이터)
  • View = 접시에 담긴 모습 (html 화면)

JSP랑 비교

서블릿 ≈ Controller
JSP ≈ View
request.setAttribute ≈ Model

5. Gradle

  • build.gradle에 필요한 거 적어 두면 Gradle이 알아서 다운받아 옴
  • 추가하면 IntelliJ의 🐘 새로고침 버튼 누르기
  • IntelliJ 설정에서 실행을 Gradle 대신 IntelliJ IDEA로 바꾸면 더 빠름
    • Settings → Build Tools → Gradle → Build and run using: IntelliJ IDEA

6. 오늘 만난 에러

Web server failed to start. Port 8080 was already in use.
  • 다른 프로그램(포트폴리오 Quartz 미리보기)이 8080을 쓰고 있었음
  • 포트 하나는 프로그램 하나만 쓸 수 있음
  • 해결: Quartz 끄기
  • Quartz 미리보기는 내 컴퓨터용이라 꺼도 배포된 사이트는 안 사라짐
  • 다음부터 Quartz는 다른 포트로 켜기: npx quartz build --serve --port 8090