일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 오일러프로젝트
- Elasticsearch
- Apache Kafka
- 백트래킹
- Docker
- gcp
- 로드밸런서
- 인천여행
- 백준
- 클라우드
- DFS
- 스프링 부트
- 월미도
- springboot
- 스프링부트
- 클라우드 컴퓨팅
- 스프링
- Kafka
- Spring
- 자료구조
- 쿠버네티스
- JPA
- aws
- Spring Data JPA
- 카프카
- 알고리즘
- 프로그래밍문제
- 코드업
- VPC
- Spring Boot
- Today
- Total
목록스프링 (5)
GW LABS
2.2 스프링 부트의 동작 방식 서블릿: 클라이언트의 요청을 처리하고 결과를 반환하는 자바 웹 프로그래밍 기술 서블릿 컨테이너: 서블릿 인스턴스를 생성하고 관리 서블릿 객체를 생성, 초기화, 호출, 종료하는 생명주기 관리 서블릿 객체는 싱글톤 패턴으로 관리 멀티 스레딩을 지원 스프링에서는 DispatcherServlet이 서블릿의 역할 수행 요청 FLOW DispatcherServlet으로 요청(HttpServletRequest)가 들어옴 DispatcherServlet이 핸들러 매핑을 통해 URI에 매핑된 핸들러(Controller)를 탐색 핸들러 어댑터로 컨트롤러 호출 핸들러 어댑터에 컨트롤러 응답이 돌아오면 ModelAndView 응답을 가공해 반환 뷰 형식으로 리턴하는 컨트롤러를 사용할 때에는 뷰..
1.1 스프링 프레임워크 오픈소스 경량급 애플리케이션 프레임워크 핵심가치: “애플리케이션 개발에 필요한 기반을 제공해서 개발자가 비즈니스 로직 구현에만 집중할 수 있게끔 하는 것” 1.1.1 제어 역전(IoC) 사용할 객체를 직접 제어하지 않고 객체의 생명주기를 외부(스프링 컨테이너)에 위임 클린코드 11장 시스템에서는 이를 시스템 제작(객체 생성과 의존성 연결)과 시스템 사용(런타임 로직)을 분리하라는 원칙으로 설명하고 있다. 이렇게해서 얻는 이점은 개발자가 관심사를 분리시킬 수 있으므로 비즈니스 로직에 더 집중할 수 있다는 점이다. 1.1.2 의존성 주입(DI) 사용할 객체를 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식 생성자를 통한 의존성 주입 필드 객체 선언을 통한 의..
스프링 부트 스프링은 J2EE를 대체하고자 출시되었다. DI 개념을 통해 가벼운 개발 모델을 제공하며, XML 구성 파일을 사용한다. 그러나 복잡한 XML 구성 파일을 사용하는게 부담이 되어 스프링 부트가 출시되었다. 스프링 부트는 스프링 프레임워크와 서드파티 제품으로 구성된 핵심 모듈의 설정 방식을 개선해 상용 스프링 애플리케이션을 빠르게 개발 하기 위한 프레임워크다. 설정보다 관례 패턴을 이용하여 필요한 경우에만 구성을 작성하도록 되어있다. 또한 fat JAR 파일로 알려진 독립형 JAR 파일 기반의 런타임 모델도 지원한다. 스프링 웹플럭스 프로젝트 리액터를 기본 구현으로 논블로킹 HTTP 클라이언트와 서비스의 개발을 지원하는 스프링의 리액티브 애플리케이션이다. 애노테이션 기반 명령형 방식과 함수 지..
Single Thread로 처리하기에는 너무 많은 양의 데이터를 처리해야 할 경우가 있다. 특히 마이그레이션 작업 시에 이런 일이 자주 발생한다. 신속하게 대용량 데이터를 DB에 저장 및 업데이트하기 위해서 Spring Boot와 Spring Boot JDBC를 Multi-Thread와 함께 사용해보았다. DB 작업에 Multithread를 적용하기 위해서 어떤 부분을 주의해야 하는지 함께 살펴보자. DB 배치작업 소요시간을 줄이기 위해 선택한 Multithread DB 배치작업 소요시간을 줄이기 위해서 멀티쓰레드 방식으로 구현을 진행하기로 결정했다면 아래와 같은 사항들을 고려해야 할 것이다. Thread 단위로 데이터를 나눌 수 있는가? 데이터를 Key 기준으로만 제어하는 작업이라면 Multithrea..
이번 포스팅에서는 스프링 부트에서 여러 DataSource를 구성하는 방법을 소개한다. 보통의 경우 스프링 부트에서 DataSource는 하나로 유지해도 충분할 것이다. MSA 아키텍처가 유행하고 있고, 이에 따라 각각의 작은 API 프로젝트들이 하나의 DB만 바라보면 충분하기 때문이다. 그러나 특별한 상황에서 한 프로젝트에서 여러 DataSource가 필요한 경우가 있다. 이러한 Multi Datasource 같은 경우에도 구성방법은 어렵지 않다. 실수하기 쉬운 부분을 여기에 정리하려고 한다. 여러 개의 DataSource가 필요한 상황 마이그레이션 마이그레이션 작업을 스프링 부트를 이용해서 진행해야 할 때 여러 DataSource를 설정하여 작업이 필요하다. API없이 하나 이상의 DB처리 별도 AP..