일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준
- DFS
- 인천여행
- Apache Kafka
- 스프링 부트
- Elasticsearch
- 스프링
- Spring Boot
- 카프카
- Kafka
- 월미도
- 로드밸런서
- 자료구조
- 클라우드
- 프로그래밍문제
- JPA
- 스프링부트
- springboot
- Spring Data JPA
- Spring
- VPC
- 오일러프로젝트
- 코드업
- gcp
- 쿠버네티스
- Docker
- 백트래킹
- 클라우드 컴퓨팅
- aws
- 알고리즘
- Today
- Total
목록스프링부트 (6)
GW LABS
JPA를 통한 전체적인 작업 FLOW 엔티티 설계/작성 테스트 코드 작성 (아마도 서비스 레이어) 기능 확인 쿼리 확인 기능완성 9.1 연관관계 매핑 종류와 방향 One to One One to Many Many To One Many To Many 비즈니스 로직의 관점에서는 엔티티간 관계를 단방향으로 설정하고, 필요시 양방향으로 뚫는다 연관관계 주인: 외래키를 갖고 있는 테이블 (상대 엔티티는 읽기 작업만 수행가능) 9.3 일대일 매핑 OneToOne: 일대일 연관관계 매핑 Joincolumn: 외래키 이름 설정 name: 매핑할 외래키의 이름을 설정 referencedColumnName: 외래키가 참조할 상대 테이블의 컬럼명 지정 foreignKey: 외래키를 생성하면서 지정할 제약조건 설정(uniqu..
7.1 테스트 코드를 작성하는 이유 개발 과정에서 문제를 미리 발견할 수 있다. 리팩토링의 리스크가 줄어든다. 애플리케이션을 가동해서 직접 테스트하는 것보다 빠르게 테스트를 수행할 수 있다. 하나의 명세 문서로 활용할 수 있다. 불필요한 로직이 추가되는 것을 방지한다. 7.3 테스트 코드를 작성하는 방법 Given-When-Then Given: 테스트를 수행하기 전 테스트에 필요한 환경설정 When: 테스트의 목적을 명시 Then: 테스트의 결과를 검증 F.I.R.S.T Fast: 테스트는 빠르게 수행되어야 한다. Isolated: 하나의 테스트 코드는 하나의 대상에 대해서만 수행되어야 한다. Repeatable: 어떤 환경에서도 반복 가능해야 한다. Self-Validating: 테스트는 그 자체만으로..
스프링 부트 스프링은 J2EE를 대체하고자 출시되었다. DI 개념을 통해 가벼운 개발 모델을 제공하며, XML 구성 파일을 사용한다. 그러나 복잡한 XML 구성 파일을 사용하는게 부담이 되어 스프링 부트가 출시되었다. 스프링 부트는 스프링 프레임워크와 서드파티 제품으로 구성된 핵심 모듈의 설정 방식을 개선해 상용 스프링 애플리케이션을 빠르게 개발 하기 위한 프레임워크다. 설정보다 관례 패턴을 이용하여 필요한 경우에만 구성을 작성하도록 되어있다. 또한 fat JAR 파일로 알려진 독립형 JAR 파일 기반의 런타임 모델도 지원한다. 스프링 웹플럭스 프로젝트 리액터를 기본 구현으로 논블로킹 HTTP 클라이언트와 서비스의 개발을 지원하는 스프링의 리액티브 애플리케이션이다. 애노테이션 기반 명령형 방식과 함수 지..
마이크로서비스 정의 마이크로서비스는 아래의 두 가지 목표를 달성하고자 일체형 애플리케이션을 작은 컴포넌트로 나누는 것이다. 빠르게 개발해 지속적으로 배포할 수 있어야 한다. 수동 혹은 자동으로 쉽게 스케일링할 수 있어야 한다. 그렇다면 독자적인 작은 컴포넌트는 어떤 조건으로 나누어야 하는 것일까? 각각의 작은 컴포넌트는 독자적인 업그레이드와 스케일링이 가능해야한다. 그렇기위해선 다음과 같은 기준들을 충족해야한다. 아무것도 공유하지 않은 아키텍처를 유지해야 한다. 마이크로서비스는 데이터베이스의 데이터를 공유하지 않는다. 명확한 인터페이스를 통해서만 통신해야 한다. 동기 서비스를 사용하거나 API를 이용한 메시징 방식을 사용할 수 있는데, 이때 사용하는 메시지 형식은 버전 관리 전략에 따라 안정적으로 문서화..
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..