학습목표
- 키워드: 엔터프라이즈 애플리케이션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 |