jpa(6)
-
gRPC VS REST 성능 테스트II
이번 성능 테스트의 목적은 실제로 DB에 값을 저장할 때 성능 차이가 있는지 확인할려는 목적이 있다. 성능테스트시 결재서버에서는 0.3초 정도 delay 를 주고 테스트를 수행한다. Delay를 주는 이유는 DB에 저장시 별다른 성능 차이가 나지 않았었다. 카드결제를 한다고 가정한다면 실제로 결재서버에서는 카드사와 승인정보를 교환할 것이다. 이러한점을 감안하여서 delay를 주었다. 성능테스트는 프로젝트설정에 보면 3가지 아키텍처에 대한 설명이 있을 것이다. 3가지 아키텍처에 대한 성능 테스트를 진행하였다. 성능테스트는 앞에서 수행한거와 마찬가지로 Apache Benchmark로 테스트 진행한다. 01. 아키텍처1 테스트 수행을 위해서 payment-rest-server, order-app 을 서버를 실..
2021.05.20 -
Spring Boot myBatis with JPA - 예제코드
myBatis와 JPA 동시에 적용하기 위한 예제코드를 작성해 보자 개발순서는 아래와 같다. MySQL과 PostgreSQL에 테이블을 생성한다. Domain 작성 Mapper 작성 JPA Respository 작성 Service 작성 Controller 작성 1. 테이블생성 PostgreSQL 테이블 생성 스크립트 DROP TABLE public.orderm; CREATE TABLE public.orderm ( order_id character varying(15) NOT NULL, orderer_id character varying(15) NOT NULL, order_dtm character varying(14) NOT NULL, total_order_amt bigint NOT NULL, order_..
2020.08.23 -
Spring Boot myBatis with JPA - 프로젝트 개요 및 설정
많은 개발자들 사이에서 MyBatis VS Hibernate에 관해서 예전부터 많은 논쟁이 있어왔다. 지금까지 몇번의 프로젝트에서 두 프레임웍을 적용해서 사용 하였지만 서로간의 장단점이 있다. 어느날 꼭 한가지 프레임워크만 사용해야 할까 라는 생각이 들었다. 그래서 두 프레임워크를 동시에 적용도 해보았다. 개인적으로는 동시에 사용할때 개발 생산성이 좋았던거 같다. 예를 들면 쇼핑몰을 예를 들어보자 관리자 사이트의 경우는 JPA로 구현하여도 크게 무리가 없을 것이다. 물론 통계나 정산관련해서는 복잡한 조회 쿼리가 존재하겠지만 70-80% 정도는 단순한 CRUD성일 것이다. 이런경우 복잡한 통계,정산관련 조회 쿼리는 myBatis로 처리하면 좀더 개발자들에게는 편할 것이다. JPA의 경우는 복잡한 집계성 쿼..
2020.08.16 -
Spring Cloud: Discovery Service with Netflix Eureka - Server
Spring Discovery Service with Netflix Eureka Eureka Server를 통하여 앞에서 만든 주문서비스를 등록하고 Eureka Client를 이용하여서 API를 호출 하는 방법에 대해 알아보도록 하겠다. 프로젝트 소스는 https://github.com/roopy1210/spring-msa-with-eureka 참고 하여 주시기바랍니다. 프로젝트준비 프로젝트는 앞에서 만든 방법으로 메이븐 모듈 프로젝트를 생성한다. 1. 부모 메이븐 프로젝트 생성 2. Eureka Server 프로젝트 생성 2. 주문서비스 프로젝트 생성 3. 결제서비스 프로젝트 생성 4. 상품서비스 프로젝트 생성 [프로젝트구조] 앞선 RestTemplate 프로젝트와 틀린점은 URL로 호출 하는 것이 아..
2019.11.12 -
RestTemplate 주문서비스 구현
주문서비스 사용자의 입장에서 보면 시스템이 주문서비스,결제서비스,상품서비스로 나누어 져서 처리 된다는 것을 알지도 못하며 알필요도 없을 것이다. 하지만 시스템의 입장에서는 모든 서비스의 정보를 입력 정보로 사용자로부터 전달 받아야 할것이다. 먼저 간단히 주문서비를 위한 시나리오를 만들어 보도록 하겠다. 시나리오 1.사용자는 800원짜리 진라면2개와 2900 짜리 참치 한개를 구매한다. 2.사용자는 결제를 카드결제 4000원 포인트결제 500원으로 해서 총 4500원 결제 처리를 한다. 3.시스템은 주문정보가 정상적으로 처리되면 결제서비스를 호출 하여 결제처리를 한 후 결제 처리를 한다. 4.시스템은 결제처리가 정상적으로 처리되면 상품서비스를 호출 하여 상품의 재고 수량을 수정 한다. 5.시스템은 사용자로..
2019.10.20 -
RestTemplate 프로젝트 설정
RestTemplate 프로젝트설정 메이븐 메인 프로젝트 설정 이클립스 프로젝트 생성에서 Maven Project 를 선택한다. 그림1.New Maven project 그림2. 프로젝트 설정정보 입력하기 프로젝트 설정 후 pom.xml 을 작성한다 4.0.0 com.roopy spring-microservices-with-resttemplate 0.0.1-SNAPSHOT pom spring microservices with resttemplate parenet project org.springframework.boot spring-boot-starter-parent 2.1.2.RELEASE org.springframework.boot spring-boot-starter order-service payme..
2019.10.11