리액티브 마이크로서비스 개발
7. 리액티브 마이크로서비스 개발 논블로킹 동기 API와 이벤트 기반 비동기 서비스의 선택 기준 일반적으로 견고하고 확장성 있는 마이크로서비스를 만들려먼 가능한 한 자율적으로 만드는 것이 중요 런타임 의존성을 최소화해야 함 -> 느슨한 결합(loose coupling) 따라서 동기 API 방식보다는 이벤트 기반 비동기 메시지 전달 방식을 ...
7. 리액티브 마이크로서비스 개발 논블로킹 동기 API와 이벤트 기반 비동기 서비스의 선택 기준 일반적으로 견고하고 확장성 있는 마이크로서비스를 만들려먼 가능한 한 자율적으로 만드는 것이 중요 런타임 의존성을 최소화해야 함 -> 느슨한 결합(loose coupling) 따라서 동기 API 방식보다는 이벤트 기반 비동기 메시지 전달 방식을 ...
6. 영속성 추가 진행 방향 확인 프로토콜 계층(protocol layer)은 매우 얇으며, 공통 클래스로 구성됨 각 마이크로서비스의 주요 기능은 서비스 계층에 있다 모든 핵심 마이크로서비스에는 자체 데이터베이스와 통신하는 영속성 계층(Persistence layer)이 있다. 핵심 마이크로서비스에 영속성 계층 추가 스프링 데이터 외에 자바...
5. OpenAPI/스웨거를 사용한 API 문서화 스프링 폭스 소개 스프릭 폭스를 사용하면 API를 구현하는 소스 코드와 연동해 API를 문서화 가능 자바 코드와 API문서의 수명 주기가 다르면 시간이 지나면서 쉽게 어긋나기 때문에 중요함 RESTful API의 문서화 관점에서 보면 API를 구현하는 자바 클래스가 아닌, API를 설명하는 자바...
4. 도커를 사용한 마이크로서비스 배포 도커 소개 도커는 가상머신을 대체하는 경량 컨테이너 개념을 일반화 컨테이너는 리눅스 호스트에서 실행되며, 리눅스 네임스페이스를 이용해서 사용자, 프로세스, 파일 시스템, 네트워킹 등의 전역 시스템 리소스를 컨테이너에 분배 또한 리눅스 제어 그룹을 사용해 컨테이너가 사용할 수 있는 CPU와 메모리를 제한 ...
3. 공조 마이크로서비스 집합 생성 마이크로서비스 환경 소개 마이크로서비스가 처리하는 정보 Product 서비스 제품 정보 관리 Product ID name weight Review 서비스 리뷰 정보 관리 Product ID Review ID author subject content Recommend...
2. 스프링 부트 소개 스프링 부트 설정보다 관례와 팻 JAR 파일 스프링 부트는 스프링 프레임워크와 서드파티 제품으로 구성된 핵심 모듈의 설정 방식을 개선해 상용 스프링 애플리케이션을 빠르게 개발하기 위한 프레임워크 설정보다 관례 팻 JAR은 아파치 톰캣과 같은 JAVA EE 웹서버를 별도로 설치하지 않아도 시작할 수 있도록 함 -> ...
1. 마이크로서비스 소개 저자의 마이크로 서비스 경험 독립 소프트웨어 컴포넌트의 장점 고객은 플랫폼의 일부분만을 자체 시스템 환경에 배포할 수 있으며, 명확한 API를 사용해 기존 시스템과 통합 가능 어떤 고객은 플랫폼 기능의 일부를 고객의 시스템 환경에 있는 기존 구현으로 대체하는 것을 선택할 수 있다. 이런 경우에는 기존 기능을 플랫...
5. 마이크로벤치마킹과 통계 5.1 자바 성능 측정 기초 자바 코드 실행은 JIT 컴파일러, 메모리 관리, 그 밖의 자바 런타임이 제공하는 서브 시스템과 완전히 떼어놓고 생각할 수 없다 공정한 테스트인지 확인하기 위해 100,000개 숫자를 정렬하는 벤치마크 코드 이 벤치마크의 첫 번째 문제점은, JVM 웜업을 전혀 고려하지 않은 채 그냥 코드...
4. 성능 테스트 패턴 및 안티패턴 4.1 성능 테스트 유형 좋은 성능 테스트는 정량적(quantitative) 테스트로 확인하고 싶은 정량적 질문 리스트와 그 테스트가 대상 애플리케이션 입장에서 중요한 이유 4.1.1 지연 테스트(latency test) ‘고객이 트랜잭션(또는 페이지 로딩)을 얼마나 오래 참고 기다려야 하는지’ 단순 평균...
3. 하드웨어와 운영체제 3.1 최신 하드웨어 소개 3.2 메모리 클록 속도가 처음에 비해 수백 배 증가 -> 데이터의 움직이 따라오지 못함 3.2.1 메모리 캐시 그래서 CPU 캐시가 고안됨 캐시 아키텍처를 이용해 액세스 시간을 줄이고 코어가 처리할 데이터를 계속 채워 넣음 프로세서 처리율은 현저히 개선됐지만, 메모리에 있는 데이터...