분류 전체보기375 MSA 데이터 베이스 분리, 트랜잭션 처리 TCC , 앤서블/테라폼 데이터베이스 분리 도메인 단위로 나눈다. - 국가코드 같은 공유 정적 데이터는 코드나 설정파일에 넣는 것도 방법이다. - 이렇게 코드에 넣으면 속도가 빨라진다. 공유 데이터 접근하기 데이터베이스 1개를 같이 쓰지 말고 서비스에 접근해서 데이터를 다룬다. 창고 서비스와 재무 서비스도 서로 다른 데이터베이스를 써야 한다. 트랜잭션 유지 문제 마이크로 서비스 분산 트랜잭션 처리 방법 msa 는 중간에 서비스에 장애가 생기면 트랜잭션을 어떻게 보장할까 TCC 라고 하는 방법으로 해결 할 수 있다. Try Confirm Cancel 의 줄임말이다. 트랜 잭션 참여자가 모두 동의하면 트랜잭션 매니저가 각각의 참여자에게 커밋하라고 지시한다. 하나라도 반대표가 나온다면 모든 참여자에게 롤백 명령을 보낸다. 지속적 통합.. 2020. 6. 7. 디자인 패턴- 퍼사드 패턴, 스트랭글러 패턴 디자인 패턴 퍼사드 패턴 - 어떤 서브 시스템의 일련의 인터페이스에 대한 통합된 인터페이스를 제공한다. 호출자 입장에서 서브 클래스를 알 필요없이 하위 시스템을 쓸 수 있다. 컨트롤러 입장에서 서비스 클래스를 이렇게 호출하면 된다. BookService.createOne() 이렇게 하고 createOne 에서 필요한 로직을 처리한다. 자주 쓰는 모듈이 있거나 필요하다면 npm 모듈로 만들고 받아서 구현한다. 메인 코드를 최소화 할 수 있다. 교살자 패턴 - 스트랭글러 패턴 특정 기능을 새로운 애플리케이션 및 서비스로 점진적으로 교체한다. 그리고 레거시 시스템을 중단한다. MSA 4장 정리 - 데이터베이스 통합은 최대한 피하라 - REST, RPC 의 장단점을 이해하고 사용하기 - 오케스트레이션(동기) 보.. 2020. 6. 7. MSA의 장점, 단점. 동작 방식, 버저닝 전략 MSA 통신 할때 보안 처리 방법 EKS 같은 쿠버네티스를 사용 할 때는 Istio 같은 솔루션이 도움이 된다. 주소를 외부에 노출하지 않고 pod끼리 http://order-api:3000 이런 식으로 통신 할 수 있다. MSA구조의 장점, 단점. 모놀리틱과 비교해서 msa 장점 msa 단점 기술 이기종성 - 분리된 서비스로 개발할 수 있기 때문에 서비스마다 가장 적합한 기술을 선택 할 수있다. 배포 용이성 - 모놀리틱의 거대한 프로젝트를 빌드하는 것보다 마이크로 서비스 1개를 배포하는것이 훨씬 쉽고 빠르다. 확장성 - 새로운 개발항목이 추가되었을때 모놀리틱은 전체 코드에 영향이 있는지를 살피고 개발, 테스트 해야한다. 마이크로 서비스는 코드베이스가 작다. 그리고 새로운 서비스를 독립적으로 만들면 된다.. 2020. 6. 7. javascript findIndex, indexOf, for 속도 비교 글 출처 : https://nikitahl.com/how-to-find-an-item-in-a-javascript-array/ How to find an item in a JavaScript array (+performance tests) Several examples of how to find an item in an array in JavaScript with performace tests nikitahl.com javascript findIndex, indexOf, for 속도를 비교한 글이 있다. 그림에서 높은게 빠른 것이고 for loop 가 제일 빠르다. for문으로 다 쓰는 것이 좋아보이지는 않는다. 다른 메소드들도 장점이 있다. indexOf 를 쓰면 -1 을 활용한 코딩도 할 수 있으니까 i.. 2020. 5. 28. redis 캐시 활용해서 express API 속도 높이기 서버 애플리케이션의 속도를 높이기 위한 방법은 여러가지가 있다. 그 중에서 redis 캐시를 활용하는 방법을 살펴본다. 아래와 같은 node js 코드가 있다. const express = require("express"); const axios = require('axios'); const app = express(); const PORT = process.env.PORT || 4000; app.get("/data", async (req, res) => { try { const result = await axios.get("https://api.spacexdata.com/v3/launches/latest") return res.status(200).json({ result: result.data }) .. 2020. 5. 28. 이전 1 ··· 8 9 10 11 12 13 14 ··· 75 다음