Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Elasticsearch
- 월미도
- springboot
- Apache Kafka
- 백준
- 오일러프로젝트
- JPA
- 자료구조
- Docker
- 클라우드 컴퓨팅
- 스프링 부트
- 프로그래밍문제
- VPC
- 백트래킹
- aws
- Kafka
- 클라우드
- Spring
- 로드밸런서
- Spring Boot
- 인천여행
- 스프링부트
- 알고리즘
- 코드업
- 카프카
- gcp
- Spring Data JPA
- DFS
- 쿠버네티스
- 스프링
Archives
- Today
- Total
GW LABS
스프링 부트 핵심가이드 (1) - 스프링 부트란? 본문
1.1 스프링 프레임워크
- 오픈소스 경량급 애플리케이션 프레임워크
- 핵심가치: “애플리케이션 개발에 필요한 기반을 제공해서 개발자가 비즈니스 로직 구현에만 집중할 수 있게끔 하는 것”
1.1.1 제어 역전(IoC)
- 사용할 객체를 직접 제어하지 않고 객체의 생명주기를 외부(스프링 컨테이너)에 위임
- 클린코드 11장 시스템에서는 이를 시스템 제작(객체 생성과 의존성 연결)과 시스템 사용(런타임 로직)을 분리하라는 원칙으로 설명하고 있다.
- 이렇게해서 얻는 이점은 개발자가 관심사를 분리시킬 수 있으므로 비즈니스 로직에 더 집중할 수 있다는 점이다.
1.1.2 의존성 주입(DI)
- 사용할 객체를 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식
- 생성자를 통한 의존성 주입
- 필드 객체 선언을 통한 의존성 주입
- setter 메서드를 통한 의존성 주입
- 스프링 공식 문서에서 권장하는 방식은 생성자를 통한 방식
1.1.3 관점 지향 프로그래밍(AOP)
- 핵심 기능과 부가 기능을 구분하여 각각을 하나의 관점으로 보는 개발 방식
- AOP 구현방법
- 컴파일 과정에 삽입하는 방식
- 바이트코드를 메모리에 로드하는 과정에 삽입하는 방식
- 프락시 패턴을 이용한 방식
- 스프링은 프락시 패턴을 통해 AOP 기능을 제공하고 있다.
1.2.1 의존성 관리
- spring-boot-starter라는 의존성을 제공하여 스프링 프레임워크와 다른 라이브러리 버전의 호환성을 맞춰준다.
- 주요 spring-boot-starter 라이브러리
- spring-boot-starter-web: MVC, RESTful 애플리케이션을 위한 의존성. 내장 톰캣이 포함되어 jar로 실행가능
- spring-boot-starter-test: JUnit, Jupiter, Mockito 등의 테스트용 라이브러리 포함.
- spring-boot-starter-jdbc: HikariCP를 활용한 JDBC 기능 제공
- spring-boot-starter-security: 스프링 시큐리티 기능 제공
- spring-boot-starter-data-jpa: 하이버네이트를 활용한 JPA기능 제공
- spring-boot-starter-cache: 스프링 프레임워크의 캐시 기능을 지원
1.2.2 자동 설정
- 애플리케이션에 추가된 라이브러릴 실행하는 데 필요한 환경설정을 자동으로 탐색
'Book-Review > Programing' 카테고리의 다른 글
스프링 부트 핵심 가이드 (4) - 데이터베이스 연동 (0) | 2022.08.13 |
---|---|
스프링 부트 핵심 가이드 (3) - API를 작성하는 다양한 방법 (0) | 2022.08.12 |
스프링 부트 핵심 가이드 (2) - 개발에 앞서 알면 좋은 기초 지식 (0) | 2022.08.11 |
스프링으로 하는 마이크로서비스 구축 리뷰 (2) - 스프링 부트 소개 (1) | 2022.04.29 |
스프링으로 하는 마이크로서비스 구축 리뷰 (1) - 마이크로서비스 소개 (0) | 2022.04.27 |
Comments