목록Spring (7)
UpDown Dev Story
1. Bean 스코프 빈 스코프는 무엇인가? 말그대로 빈이 사용되어지는 범위(?)인데, 빈이 앱이 구동되는 동안 한개만 만들어서 쓸 것인지 HTTP요청마다 생성해서 쓸 것인지 등등를 결정하는 것이 스코프임. 보통의 스프링 빈은 스프링 앱이 구동 될때 한번에 ApplicationContext에서 한 번에 모두 생성해서 하나의 클래스는 한 개의 빈만 가지지만 (Singleton), 때에 따라서는 HTTP요청마다 (Request) 다른 빈을 생성해서 쓸건지, 매번 사용될 때 마다 (Prototype) 빈을 생성해서 쓸건지 설정해서 쓸 수도 있다. 빈 스코프의 종류는?? 링크 spring docs에서 가져온 건데 불친절하게 해석하자면,,,, ScopeDescription singleton (기본값) 스프링 Io..
스프링 빈이란? Spring IOC 컨테이너가 관리하는 자바 객체를 빈(Bean) 이라는 용어로 부른다. 빈 등록 방법 빈 등록 방법에는 크게 3가지 방법이 있다 XML을 이용한 빈 등록 위와 같은 방법으로 xml 설정파일에 직접 등록할 수 있다. 하지만 xml을 통한 빈 등록 방식은 2가지 정도의 문제점이 있다. 빈의 성격 구분을 하기 힘들어진다. 어플리케이션의 크기가 조금만 커져도 빈의 양이 늘어 관리하기 버거울 수 있다. 그래서 스프링에서는 클래스에 특정 애노테이션을 부여하고 부여한 클래스를 찾아 자동으로 빈등록을 해주는 빈 스캐닝 이라는 기능을 제공해준다. (@ComponentScan) Annotation을 이용한 빈 등록 빈 등록 Annotation @Component 컴포넌트를 나타내는 일반적..
정의 스프링 프레임워크는 스프링의 빈을 생성하고 관리하는 컨테이너를 가지고 있다. 이를 통해서 스프링의 주개념인 IOC 나 AOP에 대해서 관리하곤 한다. 스프링 컨테이너의 종류 먼저 스프링 컨테이너의 종류는 BeanFactory와 이를 상속한 ApplicationContext 2가지 유형이 존재한다. Bean Factory Bean Factory는 스프링 설정파일에 등록된 Bean 객체를 생성하고 관리하는 기본적인 기능만 제공한다. 컨테이너가 구동될 때 Bean 객체를 생성하는 것이 아니라 클라이언트의 요청에 의해서 Bean 객체가 사용되는 시점(Lazy Loading) 에 객체를 생성하는 방식을 사용하고 있다. 일반적으로 스프링 프로젝트에서는 사용될 일이 없지만, ApplicationContext는 ..
클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리 SRP: 단일 책임 원칙(single responsibility principle) 한 클래스는 하나의 책임만을 가져야 한다. 하나의 책임이라는 것은 모호하다. 클 수도 있고, 작을 수도 있다. 문맥과 상황에 따라 다르다. 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙 잘 따른 것이다. 예를 들어서 UI하나 변경하는데, SQL 코드부터 시작해서 애플리케이션 다 고쳐야 한다면 단일책임 원칙을 잘 지키지 못한 것 OCP: 개방-폐쇄 원칙 (Open/closed principle) 소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀있어야 한다. 어떻게? 확장을 하려면 당연히 기존 코드 변경해야하지 않나? ..
정의 스프링 프레임워크(영어: Spring Framework)는 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 한다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다. 특징 경량 컨테이너로서 자바 객체를 직접 관리한다. 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다. 스프링은 Plain Old Java Object 방식의 프레임워크이다. 일반적인 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없어 기존에 존재하는 라이브러리 등을 ..
1. Spring Boot 시작 설정 파일에 @EnableBatchProcessing 어노테이션 추가 2. 아래 경로에 jobConfiguration 파일 추가 3. job 생성하여 Bean 등록 4. 실행결과 확인