본문 바로가기
임시 글/Backend(Java)

[BE(Java)] Spring/SpringBoot 기본

by cogito21_cpp 2024. 12. 28.
반응형

학습목표

- 키워드: 엔터프라이즈 애플리케이션Spring, IoC, DI, AOP, PSA, 프리젠테이션 계층, 비즈니스 계층, 퍼시스턴스 계층

 

이론: Spring

더보기

- 엔터프라이즈 애플리케이션: 대규모의 복잡한 데이터를 관리하는 애플리케이션

- Spring: 엔터프라이즈 애플리케이션을 쉽게 개발할 수 있게 도와주는 프레임워크

- Spring Boot: Spring을 더 쉽고 빠르게 이용할 수 있는 도구

 

(Spring Concept)

- IoC(제어의 역전): 외부에서 관리하는 객체를 가져와 사용하는 것

- DI(의존성 주입): 어떤 클래스가 다른 클래스에 의존하는 것. @Autowired

- AOP(관점 지향 프로그래밍): 프로그램에 대한 관심을 핵심 관전, 부가 관점으로 나누어 관심 기준으로 모듈화하는 것을 의미

- PSA(이식 가능한 서비스 추상화): 스프링에서 제공하는 다양한 기술들을 추상화해 개발자가 쉽게 사용하는 인터페이스. ex) JPA, MyBatis, JDBC

- Spring Container: 객체를 관리하고 제공하는 역할. Bean을 생성하고 Bean의 생명주기를 관리

- Bean: Spring Container가 생성하고 관리하는 객체. Bean의 이름은 클래스의 이름의 첫글자를 소문자로 바꾸어 관리

+) Spring은 Bean을 Spring Container에 등록하기 위해 XML 파일 설정, 어노테이션 추가 사용

 

(Annotation)

- 어노테이션: 주로 메타데이터 목적으로 사용. @를 사용하여 표기

- @Autowired: 스프링 컨테이너에 있는 Bean을 주입하는 역할

- @SpringBootApplication: @SpringBootConfiguration(스프링부트 관련 설정), @ComponentScan(사용자가 등록한 빈을 읽고 등록), @EnableAutoConfiguration(자동설정으로 등록되는 빈을 읽고 등록)

- @Component: 빈으로 등록. @Controller, @RestController, @Configuration, @Repository, @Service

 

(SpringBoot 특징)

- Tomcat, Jetty 같은 WAS가 내장

- 자동구성으로 빌드 구성 단수화

- XML 설정 불필요

- JAR로 자바 옵션만으로 배포 가능

- 애플리케이션의 모니터링 및 관리도구인 Spring Actuator 제공

- 인메모리 데이터베이스 자동설정 지원

 

(SpringBoot 3 구조)

- 각 계층이 다른 계층과 통신하는 구조. 계층은 각자의 역할과 책임이 있는 소프트웨어의 구성요소를 의미

- Persentation 계층: HTTP 요청을 받아 비즈니스 계층에 전달. Controller로 구현

- Business 계층: 모든 비즈니스(서비스) 로직을 처리. 유효성 검사, 권한 부여 기능. Service로 구현

- Persistance 계층: 모든 데이터베이스 관련 로직 처리. DAO 객체 사용. Repository로 구현

 

(SpringBoot 디렉터리 구조)

- main: 프로젝트 실행에 필요한 소스 코드 및 리소스 파일이 포함된 디렉터리

- test: 테스트할 소스 코드 및 리소스 파일이 포함된 디렉터리

- build.gradle: 빌드 설정 파일

- setting.gradle: 빌드할 프로젝트 정보 설정

 

실습: 예제

 

 

 

 

반응형

'임시 글 > Backend(Java)' 카테고리의 다른 글

[BE(Java)] 백엔드 기본 지식  (0) 2024.12.28
[BE(Java)] 환경설정  (0) 2024.12.28