반응형
스프링 인 액션
part 1. 스프링 기초
chaper 1 스프링 시작하기
1.1 스프링이란?
스프링은 스프링 애플리케이션 컨텍스트라는 컨테이너를 제공, 이것은 빈/컴포넌트를 생성하고 관리한다.
빈끼리의 상호 연결은 의존성 주입(DI) 패턴을 기반으로 수행, 특정 빈이 의존하는 다른 빈의 생성과 관리를 컨테이너가 대신 해준다.
빈 등록의 역사?
xml 빈 선언, 의존성 주입
- annotation 빈 선언 + xml component-scan
- 스프링 부트에선 annotation 빈 선언 + 자동 component-scan
1.2 스프링 애플리케이션 초기 설정
스프링 부트 프로잭트 생성법
https://start.spring.io Initializer 사용
- IDE에서 생성
(Intellij 추천)- 여러가지 방법이 존재하긴 함
생성시 프로젝트명, 언어 버전, 빌드방식, 패키징방법, 의존성 등을 설정할 수 있다.
프로젝트 구조(생략)
눈여겨 볼 부분
- spring-boot-starter-parent에서 일반적으로 사용하는 의존성들을 기본적으로 의존하고 있다.
- @SpringBootApplication은 3가지 어노테이션을 합친것이다.
- @SpringBootConfiguration : @Configration의 특화된 형태
@EnableAutoConfiguration : 필요로 하는 빈들을 자동으로 구성
@ComponentScan : 하위 패키지의 빈들을 컨테이너로 등록할 수 있도록
테스트는 별도의 책에서 다루는게 좋다
1.3 스프링 애플리케이션 작성하기
MVC, 테스트 기본적인 실습 코드는 생략
DevTools 기능 (개발을 도와주는 도구)
- 자바 코드 변경시 자동 재실행
- 리소스 코드 변경시 자동 새로고침
- 템플릿 캐시 자동 비활성화
H2 사용 중이라면 H2 콘솔 자동 활성화
1.4 스프링부트 살펴보기
- 핵심 스프링 프레임워크
- Spring MVC, Spring WebFlux 등
- 스프링 부트
- Actuator, 환경 속성, 테스트, CLI(그루비 스크립트) 등
- 스프링 데이터
- JPA, Mongo, Neo4j 등
- 스프링 시큐리티
- 스프링 배치
- 스프링 클라우드
chapter 2 웹 애플리케이션 개발하기
기본 MVC 실습 코드 생략
유효성 검사(파라미터 객체의 각 속성에 대해)
- @NotNull : null확인
@Size : 사이즈 검사- @NotBlank : 공백 검사
- @Pattern : 정규식 검사
- @Digits : 자리수 검사
// 파라미터 객체에 @Valid 추가하면, Errors를 인자로 받을 수 있다. @PostMapping public String processDesign(@Valid Taco design, Errors errors) { ... }
뷰 컨트롤러 선언하는 다른 방법 (별도의 로직 없이 정적뷰를 뿌려줄 경우) -> WebMvcConfigurer.addViewControllers() 구현
@Configuration
public class CustomWebConfig impliments WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("home");
}
}
chapter 3 데이터로 작업하기
- JDBC : DB connection/statement/열고닫기/try-catch문 복잡
- JdbcTemplate : 위 복잡한 코드 없이 쿼리만으로 쉽게 사용가능
- Spinrg Dadta JPA : 캐시와 Repository로 쿼리 수를 줄일 수 있다.
JdbcTemplate으로 데이터를 다루는 내용 생략
JPA 실습 (자세한 내용은 다른 책에서 다루자)
Entity와 Dto 분리가 안됐다
- @ManyToMany는 비추 -> @ManyToOne 으로 풀어서 해결해야 함
728x90
반응형
'개발서적' 카테고리의 다른 글
스프링 인 액션 - (3) (0) | 2022.08.10 |
---|---|
스프링 인 액션 - (2) (0) | 2022.08.10 |
카프카, 데이터 플랫폼의 최강자 : 실시간 비동기 스트리밍 솔루션 Kafka의 기본부터 확장 응용까지 (3) (0) | 2022.05.01 |
카프카, 데이터 플랫폼의 최강자 : 실시간 비동기 스트리밍 솔루션 Kafka의 기본부터 확장 응용까지 (2) (0) | 2022.04.29 |
카프카, 데이터 플랫폼의 최강자 : 실시간 비동기 스트리밍 솔루션 Kafka의 기본부터 확장 응용까지 (1) (0) | 2022.04.11 |
댓글