스프링 프레임워크
1. 스프링 프레임워크
1) 스프링이란?
자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로써 간단히 스프링이라고도 한다.
동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공한다.
대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다.
2) 프레임워크란?
프레임워크는 소프트웨어 개발에서 사용되는 구조적인 틀이자 기반입니다. 개발자들이 애플리케이션을 개발할 때 사용할 수 있는 일련의 규칙, 라이브러리, 도구들을 포함하며, 이는 애플리케이션의 구조를 정의하고, 특정 기능을 구현하는 데 필요한 기본 코드를 제공하여 코드의 재사용성과 유지보수성을 높이는 데 기여합니다.
3) 스프링 핵심 기능
제어의 역전 (Inversion of Control)
의존 주입 (Dependency Injection)
관점 지향 프로그래밍 (AOP; Aspect-Oriented Programming)
스프링 MVC 패턴
JDBC, JPA 지원
스프링은 여러가지 모듈로 이뤄져 있어서 내가 필요한 모듈만 뽑아서 사용가능
Spring | Projects
Spring Framework Provides core support for dependency injection, transaction management, web apps, data access, messaging, and more.
spring.io
스프링 부트
2. 스프링 부트
1) 스프링 부트란?
스프링 부트는 스프링의 여러가지 프로젝트 중 하나이다.
스프링에서는 설정할 내용도 굉장히 많고, XML 파일로 설정해야 할 경우가 많다.
이러한 수많은 설정과 복잡함을 최소화하고 개발자의 생산성을 향상 시키기 위해 개발되어졌다.
2) 스프링 부트의 장점
내장 서버: WAR 파일을 배포할 필요 없이 내장된 Tomcat, Netty, Unertow 를 이용해 실행할 수 있습니다.
간단한 라이브러리 관리: 많이 사용하는 라이브러리를 모아놓은 스타터 (Starter) POM 파일로 메이븐 설정이 쉬워집니다.
자동 설정: 더 이상 XML 설정이 필요하지 않습니다.
스프링부트 프로젝트 생성
3. 스프링부트 프로젝트 생성
1) 개발환경 설정
openjdk 17
intellij ide (ultimate, community)
2) 프로젝트 생성
Spring에서 제공하고 있는 Initializer를 통해 손쉽게 의존성을 추가하여 Spring Boot프로젝트를 생성
스프링부트 프로젝트 구조
4. 스프링부트 프로젝트 구조
1) src/main/java
클래스 파일을 모아 둔 곳
2) src/main/resources
xml, properties를 저장하는 곳
(1) static
css , js , 그림 등의 파일을 저장하는 곳
(2) templates
타임리프(thymeleaf) 형식 템플릿 파일(jsp 아님)을 저장하는 곳
스프링 부트에서는 jsp 파일이 아닌 thymeleaf 템플릿 엔진 사용을 권장한다.
물론 jsp를 이용할 수는 있지만, 따로 설정을 해 주어야 한다.
(3) application.properties
application.properties 파일은 스프링 부트 전체 프로젝트의 설정을 저장하는 곳
이 파일에 설정되어져 있는 정보를 최우선적으로 따른다.
(자바 파일에 설정되어져 있어도 이 application.properties 파일에 다른 설정이 저장되어져 있으면 의미가 없다)
3) src/test/java
JUnit 등 테스트 케이스의 자바 클래스 파일들을 저장하는 곳
스프링 부트 어플리케이션 실행 구조
5. 스프링 부트 어플리케이션 실행 구조
스프링 부트는 스프링 MVC 프로젝트와 다르게 메인 클래스가 존재한다.
기본적으로 프로젝트 이름 + Application 으로 메인 클래스 하나가 생성되어져 있다.
메인을 실행하면 내장된 톰캣으로 실행된다.
'JAVA > 기타' 카테고리의 다른 글
[JAVA] 카카오페이 결제 API 포트원 연동 - kakao pay (0) | 2024.07.22 |
---|---|
[java] 카카오톡 로그인 연결하기 (2) | 2024.06.27 |
[java] MVC - Spring Boot 어노테이션 정리 (0) | 2024.06.21 |
[java] Socket & Thread를 활용하여 다중 채팅 프로그램 만들기 (0) | 2024.05.29 |
[ java] Socket & Tread를 이용하여 1대1 채팅 프로그램 만들기 (0) | 2024.05.29 |