[Spring] AOP
Spring Framework을 사용하여 개발을 시작할 때 MVC에 대한 이해와 사용을 먼저 시작했다.
내부적으로 어떻게 돌아가는지는 일단 넘어가고 클라이언트의 요청을 어떻게 Controller가 받아내는지, Controller는 무엇을 해야하는지, Services는 어떻게 구현하면되는지 등등 구현에 목적을 두었던 것 같다.
SpringBoot Service/Repository 단위 테스트
SpringBoot Service와 Repository의 단위 테스트 방법
SpringBoot API 단위테스트
SpringBoot 테스트 방법
Async Event & Caching
Caching의 목적
A서비스에서 B서비스로 데이터를 조회하는경우 A서비스는 B서비스에 연결된 Database에 Access해야 하며 이는 결국 비용이다.
만약 B서비스의 데이터가 한번 저장되면 자주 변경되지 않는 데이터라면?
한번 가져온 데이터를 어딘가에 Caching 한다면 Database에 Access하는 비용을 감소시킬 수 있으므로 응답시간 향상에 도움이 된다.
Service-Gateway
서비스 게이트웨이
횡단 관심사들을 추상화하고 독립적인 위치에서 애플리케이션의 모든 마이크로서비스 호울에 대한 필터와 라우터 역할 수행
서비스 클라이언트가 서비스(마이크로 서비스)를 직접 호출하지 않고 단일한 정책 시행지점 역할을 하는 서비스 게이트웨이로 모든 호출을 경유시켜 목적지로 라우팅한다.
- 핵심 관심사: 비지니스 로직과 같은 제품의 주요 기능
- 횡단 관심사: 보안, 로깅, 추적과 같이 전체 애플리케이션에 영향을 미치는 관심사
Kafka 개발환경 구축중 이슈 (버전)
KAFKA Message 이슈
사전작업
- 카프카 설치
- brew install kafka, zookeeper 했으나 구동안되서 패스
- apache 공식에서 다시 다운로드
- /usr/local/kafka/kafka_2.12…
- 카프카 실행
- property enable
vi config/server.properties
listeners=PLAINTEXT://localhost:9092 - zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties - kafka
bin/kafka-server-start.sh config/server.properties
- property enable
- 카프카 기본 제공되는 스크립트를 통해 테스트 진행
// create topic bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test // topic list bin/kafka-topics.sh --list --bootstrap-server localhost:9092 // publish bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test
Application Recovery
애플리케이션 회복
클라이언트 부하 분산
- 리본을 사용해서 분산처리
Service-Discovery
서비스 디스커버리
Service discovery : 분산 아키텍처에서 시스템의 물리적 위치 주소를 찾는 과정