📺 공부 중인 강의: 스프링 입문 강의 (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