[DI,DIP] 의존성 주입에 대하여
·
Spring
오늘은, DI와 DIP 의존성 주입에 대해 알아보고 정리하고자 한다. 해당 글은 인프런:객체지향 프로그래밍 기초 강의와 검색 및 기존 알고있던 지식을 기반으로 작성하였다. 두 가지 전부 의존성 주입에 관련된 이야기지만 이 내용의 핵심은 어떻게 의존성을 주입하는가? 가 포인트인것 같았다. DI ( Dependency - injection ) 의존성 주입(Dependency Injection, DI)으로서, 외부에서 의존 객체를 주입함을 의미한다. 의존성 주입(DI)의 의도는 객체의 생성과 사용의 관심을 분리하는 것 이는 가독성과 코드 재사용성을 높여준다. 의존성 주입은 다음과 같은 문제를 해결한다고 한다. 어떻게 애플리케이션이나 클래스가 객체의 생성 방식과 독립적일 수 있는가? 어떻게 객체의 생성 방식을 ..
[SpringBoot - 인프런] Batch Meta Data
·
Spring
스프링 배치 메타 데이터 스프링 배치의 실행 및 관리를 위한 목적으로 여러 도메인들 ( Job, Step , JobParameters .. ) 의 정보들을 저장 업데이트, 조회할 수 있는 스키마 제공 과거, 현재의 실행에 대한 세세한 정보, 실행에 대한 성공과 실패 여부 등을 일목요연하게 관리 함으로서 배치 운용에 있어 리스크 발생시 빠른 대처 가능 DB와 연동할 경우 필수적으로 메타 테이블이 생성되어야한다. DB 스키마 제공 파일위치 : org/springframework/batch/core/*** DB 유형별로 제공 스키마 생성 설정 수동생성 : 스크립트를 가져와 쿼리 복사 후 직접 실행 자동생성 : spring.batch.jdbc.initialize-schema 설정 ALWAYS 스크립트 항상 실행..
[SpringBoot - 인프런] EnableBatchProcessing
·
Spring
@EnableBatchProcessing 스프링 배치가 작동하기 위해 선언해야 하는 어노테이션 총 4개의 설정 클래스를 실행시키며 스프링 배치의 모든 초기화 및 실행 구성이 이뤄진다. 스프링 부트 배치의 자동 설정 클래스가 실행됨으로 빈으로 등록된 모든 Job을 검색해서 초기화와 동시에 Job을 실행하도록 구성된다. 스프링 배치 초기화 설정 클래스 BatchAutoConfiguration 스프링 배치가 초기화 될때, 자동으로 실행되는 설정 클래스 Job을 수행하는 JobLauncherApplicationRunner 빈을 실행 SimpleBatchConfiguration JobBuilderFactory와 StepBuilderFactory 생성 스프링 배치의 주요 구성 요소 생성 - 프록시 객체로 생성 Ba..
[인프런/개념] 스프링 배치 : 아키텍처
·
Spring
최근, 인프런 스프링 배치 강의를 들으며 해당 내용에 대해 복기 할겸 내용을 작성해 보고자 한다. * 개념위주로 올릴 계획이며, 해당 부분에 대한 실습은 추후에 작성하거나 나중에 작성할 계획이다 Application 스프링 배치 프레임워크를 통해 개발자가 만든 모든 배치 Job과 커스텀 코드 포함 개발자는 업무로직의 구현에만 집중하고 공통적인 기반기술은 프레임웍이 담당한다. Batch core Job을 실행, 모니터링, 관리하는 API로 구성되어 있다. JobLauncher, Job, Step, Flow등이 속한다. Batch Infrastructure Application, Core 모두 공통 Infrastructure 위에서 빌드한다. Job 실행의 흐름과 처리를 위한 틀을 제공한다. Reader, ..
[SpringBoot - 인프런] 스프링 배치의 개요
·
Spring
스프링 배치 탄생 배경 자바 기반 표준 배치 기술 부재 배치 처리에서 요구하는 재사용 가능한 자바 기반 배치 아키텍처 표준의 필요성이 대두 스프링 배치는 SpringSource(지금은 Pivotal)와 Accenture(경영 컨설팅 기업)의 합작품 Accenture 배치 아키텍처를 구현하면서 쌓은 기술적인 경험과 노하우 SpringSource 깊이 있는 기술적 기반과 스프링의 프로그래밍 모델 Accenture은 이전에, 소유했던 배치 처리 아키텍처 프레임워크를 Spring Batch 프로젝트에 기증 배치 핵심 패턴 Read ( E ) 데이터베이스, 파일 , 큐에서 다량의 데이터 조회 Process ( T ) 특정 방법으로 데이터를 가공한다. Write ( L ) 데이터를 수정된 양식으로 다시 저장한다. ..
[Spring] Swagger vs RestDocs
·
Spring
서론 REST docs 와 Swagger의 장점과 단점 Spring REST docs 프로덕션 코드에 별다른 영향을주지 않는다. 테스트 기반으로 작성되며, Snippet이 올바르지 않을경우 테스트가 실패한다. 테스트를 강제하며, 테스트가 검증되면 작성되는 문서 또한 신뢰할 수 있다는 장점 존재 [ Spring Rest Docs vs Swagger ] Spring Rest Docs Swagger 장점 서비스 코드에 영향을 주지않는다. 간편하게 적용이 가능하다. 테스트가 성공해야 문서를 만들어준다. API 테스트가 가능하다. 단점 적용하기 어렵다. 서비스 코드에서 어노테이션을 추가해야한다. 테스트 코드 작성을 필수로 요구한다. 문서만으로 연동 시스템을 만들기 어렵다. 이전 회의때 언급되었던 TDD 기반으로 ..
객체 지향 설계와 스프링
·
Spring
스프링의 역사 2002년 로드 존슨이 책을 출간하며 시작 EJB의 문제점을 지적하며 없이도 고품질의 확장 가능한 어플리케이션을 개발할 수 있음을 보여주며 30000라인 이상의 기반 기술을 예제 코드로 선보였다. 스프링의 이름은 전통적인 J2EE(EJB)라는 겨울을 넘어 새로운 시작이라는 뜻으로 지었다. 스프링이란? 스프링 생태계 필수 스프링 프레임 워크 (핵심) 스프링 부트 (보조) 선택 스프링 데이터 스프링 세션 스프링 시큐리티 스프링 Rest Docs : API 문서화를 편리하게 해준다. 스프링 배치 데이터를 배치처리하는데 특화된 기술 ex) 1000건씩 데이터 처리 저장 , 반복 스프링 클라우드 스프링 프레임워크 핵심기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타 웹 기술 : 스프링 MVC,..