개발환경 설정
이클립스로 하려고했지만 몊번해보고 안돼서 바로 포기 ㅠㅠ
인텔리제이 커뮤니티로 바꿔서 시도한다.


아 11버전으로 하려고했는데 11이 없다.
17로 받고 그냥 해봤는데 될 리가 없다.

17로 변경완료

바꿔서 하니깐 잘 적용된다~


기본적인 환경설정은 잘 되었다.

이것도 인텔리제이로 바꿔준다
스프링부트 라이브러리
대표적인 스타터들
라이브러리 | 설명 |
spring-boot-starter-web | 웹 앱 개발용 (Tomcat 내장, REST API 포함) |
spring-boot-starter-thymeleaf | HTML 템플릿 엔진 (타임리프) 사용 시 |
spring-boot-starter-data-jpa | JPA(Hibernate 기반) ORM 사용 |
spring-boot-starter-security | 보안/로그인/인증 기능 추가 |
spring-boot-starter-test | JUnit, Mockito 등 테스트 도구들 포함 |
라이브러리 의존도란?
: 내가 쓰는 라이브러리가 다른 라이브러리에 의존하고 있다면,
그걸 같이 가져와야 제대로 동작한다는 뜻이다.
-> 스프링부트는 spring-boot-dependencies라는 BOM(Bill Of Materials)을 통해
의존성 버전을 자동으로 관리해준다고 한다.
뷰 설정하기

루트페이지에 html로 기본 페이지를 만들었다. (정적페이지)

잘 동작한다.
당연히 '/hello'페이지를 만들지 않았으니 링크로 이동하면 오류가 난다.
스프링부트 생태계는 매우 크다. -> 20년 넘게 계속 많은 기능이 추가되어왔다.
=> 그래서 이제 중요한 능력은 나에게 필요한 기능들을 찾는 능력이다.
이제 동작페이지를 만들어보겠다.
thymeleaf란?
: HTML 템플릿 엔진으로, Spring MVC와 자연스럽게 연동되어 백엔드 데이터를 HTML 안에서 바로 표현할 수 있는 도구이다. 이것들의 장점으로는
- 동적인 웹 페이지 생성 가능
- HTML을 브라우저에서 그냥 열어도 깨지지 않음 (정적/동적 둘 다 OK)
- JSP보다 Spring 친화적이고 사용이 간편함
- 서버에서 받은 데이터를 HTML에 바인딩 가능
동적인 페이지란?
: 서버에서 전달한 데이터를 HTML에 자동으로 넣어 보여주는 페이지이다.
-> 사용자마다 다른 페이지를 보여주는것이 동적인 페이지이다. (사용자 맞춤형 웹페이지)



이렇게 thymleaf 라이브러리를활용하여 간단하게 동적인 페이지를 만들어보았다.
이게 동적인 페이지인 이유는 컨트롤러에서 data라는 이름으로 "hello!!"라는 값을 모델에 담아 hello.html로 넘겨주기에 이것이 동적인 페이지이다. (즉, 자바에서 HTML로 데이터를 넘기는 것)
동적인 웹페이지 생성과정

스프링 부트에서는 웹 브라우저로부터 들어오는 요청을 내부적으로 어떻게 처리하는지에 대한 구조가 명확하다. 예를 들어 사용자가 브라우저에서 http://localhost:8080/hello 주소로 접속하면, 이 요청은 먼저 스프링 부트의 내장 톰캣 서버로 전달된다. 내장 톰캣 서버는 이 요청을 Spring의 핵심 요소인 DispatcherServlet에게 넘기고, DispatcherServlet은 URL에 맞는 컨트롤러(여기서는 helloController)를 찾아 실행시킨다.
컨트롤러는 요청을 처리하고, 필요한 데이터를 모델 객체에 담아 리턴한다. 예를 들어 model.addAttribute("data", "hello!!") 코드처럼, "data"라는 이름으로 "hello!!" 값을 넘긴다. 그리고 return "hello"를 통해 뷰의 이름을 반환하면, 뷰 리졸버(ViewResolver)가 이 뷰 이름을 실제 템플릿 파일 경로로 매핑한다. 스프링 부트에서 기본 설정일 경우, templates/hello.html 파일을 찾아간다.
그 다음에는 Thymeleaf 템플릿 엔진이 작동한다. hello.html 템플릿 안에서 ${data}와 같이 표현된 부분은 서버에서 넘겨준 데이터로 치환된다. 예를 들어 <p th:text="'안녕하세요. ' + ${data}">안녕하세요. 손님</p> 라는 코드가 있다면, 최종적으로는 <p>안녕하세요. hello!!</p> 라는 실제 HTML로 변환된다.
이렇게 완성된 HTML은 다시 톰캣 서버를 통해 브라우저로 전달되며, 사용자는 그 결과를 화면에서 확인할 수 있다. 이 과정은 정적인 HTML 파일을 보여주는 것이 아니라, 사용자의 요청에 따라 서버에서 동적으로 데이터를 처리하고 반영한 결과를 만들어 보내주는 것이기 때문에, 동적인 웹 페이지 처리 흐름이라고 말할 수 있다.
Thymeleaf와 스프링 컨트롤러가 함께 작동하면서, 백엔드 로직과 프론트엔드 뷰가 유기적으로 연결되는 것이 스프링 MVC의 기본적인 웹 동작 구조이다.
즉, 사용자의 요청 → 컨트롤러 처리 → 템플릿 렌더링 → 최종 HTML 응답까지의 흐름이 깔끔하게 자동 처리되는 것이 스프링 부트의 웹 구조이다.
네 감사합니다.
'WINK-(Web & App) > Spring Boot 스터디' 카테고리의 다른 글
[2025 1학기 스프링 부트 스터디] 이상래 #2주차 (0) | 2025.04.04 |
---|---|
[2025 1학기 스프링 부트 스터디] 정다은 #2주차 (0) | 2025.04.04 |
[2025 1학기 스프링부트 스터디] 석준환 #2주차 (0) | 2025.04.01 |
[2025 1학기 스프링부트 스터디] 장민주 #2주차 (0) | 2025.04.01 |
[2025 1학기 스프링부트 스터디] 여민호 #2주차 (0) | 2025.04.01 |