국비지원 공부 정리/SpringBoot

Spring Boot의 기본 구조

worldstroy 2025. 4. 10. 11:06

Spring initializr

Project : 생성할 프로젝트의 빌드 자동화 툴
Language : 생성할 프로젝트의 언어
Spring Boot : Spring Boot 버전 선택
Project Metadata : 프로젝트 정보
Dependencies : 프로젝트 의존성 선택

 

Spring Boot 기반으로 Spring 관련 프로젝트를 만들어주는 사이트
Spring에서 운영하고 있으며, 해당 사이트에서 원하는 라이브러리를 선택 후 프로젝트 생성 가능

 

Spring Initializr

 


 

Apache Tomcat

스프링부트는 기본적으로 8080 포트를 사용하여 내장된 Apache Tomcat 웹 서버를 통해 실행 됨.
Apache Tomcat은 아파치 소프트웨어 재단에서 개발한 서블릿 컨테이너만 있는 웹 어플리케이션 서버를 말함

 

Apach Tomcat의 내부 구성도

Apache 아파치 소프트웨어 재단에서 만든 Web Server로 정적 리소스를 응답(80 포트)
Tomcat 동적인 데이터를 처리하는 서버. Web Application Server (8080 포트)

 

내장 AP 서버 (EmbededAP Server)

AP 서버 (애플리케이션 서버) 자바 웹 애플리케이션을 구동하기 위해 필요한 프로그램 (ex. Tomcat, Jetty, Undertow 등)
내장 AP 서버 스프링 부트의 핵심 특징
애플리케이션 내부에 AP 서버를 포함하므로 별도의 서버 설치가 필요 없음
따라서, 애플리케이션 배포와 실행이 간단

 

 

참고. application.properties 파일

src/main/resources 아래에서 존재하며, Spring Boot 애플리케이션의 설정을 관리하는 파일
Node js에서 env 파일과 비슷한 역할을 담당하며, 애플리케이션의 다양한 설정을 외부에서 관리할 수 있게 도와줌
즉, 환경별로 다른 설정을 쉽게 적용할 수 있도록 도와주며, 기본적으로 key=value 형태의 택스트 기반 속성 파일임

 

 

Spring Boot 프로젝트의 구조

main/ 실제 코드를 작성하는 곳
test/ 프로젝트의 소스 코드를 테스트하는 코드 or 리소스 파일
build.gradle 빌드 설정 파일
setting.gradle 빌드할 프로젝트 정보 설정 파일

 

 

Spring Boot의 정적 파일

src/main/resources/static 에 위치하며, html 파일과 css 파일을 작성해둘 수 있음
localhost:PORT 로부터 경로를 입력하면 위치하고 있는 파일 보기 가능

 

Spring Boot의 기본 틀 설정

1. Controller 클래스 생성

 

@Controller : 해당 클래스가 Controller 클래스라는 것을 Spring Container에게 알려준다.
@GetMapping : URL을 매핑시켜 주는 것으로 HTTP의 GET 메서드의 /hi 경로에 대한 요청이 연결되며 getHi라는 함수를 실행시킨다.
Model : 스프링 MVC가 제공하는 타입으로 View에서 참조 할 수 있는 객체 지정 가능

 

 

2. Template View 생성

 

• src/main/resources 아래 templates 폴더 아래 생성
• 템플릿 파일의 저장 위치와 확장자는 스프링 부트에 자동 설정되어 있어 임의로 변경할 수 없음
  즉, view 파일은templates/ 폴더에 생성되고, .html 확장자를 사용하도록 정해져 있는 것

 


Spring Boot 동작 환경

 

1. localhost:8080/hi 요청 시, 톰캣이 스 프링한테 넘겨줌
2. 컨트롤러(HelloController.java)에서 매 칭되는 URL 을 찾음
3. 해당 메소드(getHi) 에서 반환하는 문 자열을 ViewResolver 가 화면을 찾아 서 처리(templates/hi.html)

'국비지원 공부 정리 > SpringBoot' 카테고리의 다른 글

REST API  (0) 2025.04.10
Thymeleaf 란?  (0) 2025.04.10
Spring MVC  (0) 2025.04.10
Spring Boot란?  (0) 2025.04.09
Spring이란?  (0) 2025.04.09