마이크로서비스패턴 – 3.프로세스간통신

IPC(Inter Process Communication) 기술 통신 HTTP 기반 REST, gRPC등 동기 요청/응답 기반 통신 AMQP, STOMP등 비동기 메시지 기반 통신 메시지포맷 텍스트포맷 :JSON, XMK 바이너리포맷:Avro, Protocol Buffer 상호 작용 스타일 일대일/ 일대다 여부 일대일 : 각 클라이언트 요청은 정확히 한 서비스가 처리 일대다 : 각 클라이언트 요청을 여러 서비스가 협동하여 처리 동기/ 비동기 여부 동기 : … Read more

몽고 디비 인 액션 9장

텍스트 검색 정규 표현식으로 패턴 일치 검색을 해도 가능은 하지만, 인덱스 없이 대형 컬렉션에서 사용한다면 매우 느리다. [단지 패턴 매칭만은 아니다.] 패턴 일치 스테밍(stemming) : stem, root 단어, 단어의 원형과 변형들을 다 참고한다 (script → scripts, scripted, scripting) 웹 페이지 검색 페이지의 대형 네트워크를 검색하고, 페이지 간 관련도에 따라 결과의 순위를 정하는 검색방법 제품 데이터베이스 … Read more

몽고 디비 인 액션 8장-2

쿼리 최적화 [느린 쿼리 탐지] 잘못된 애플리케이션 설계, 부적합한 데이터모델, 부족한 하드웨어 등으로 느려질 수 있으나 쿼리 최적화 방법으로 성능 개선가능. 대부분의 애플리케이션에서 쿼리는 100ms 이내에 실행되어야 안전한다. 느린 쿼리 경고 메시지 : stocks.values에 대한 쿼리, 정렬이 수행, 실행하는데 4초 걸림 해당 경고 로그를 grep하는 명령어 프로파일러 사용 느린 쿼리 분석 : 인덱스 추가, 인덱스 … Read more

몽고 디비 인 액션 7장-2

MongoDB 업데이트와 삭제 [업데이트 타입과 옵션] MongoDB 업데이트 방식– 타깃방식– 대치방식 다중 도큐먼트 업데이트 – 기본적으로 쿼리 셀렉터와 일치하는 첫 번째 도큐먼트만을 업데이트 함 => 여러 개를 하려면 다중 업데이트 사용 업서트– 아이템이 없을 경우 새로 추가하고 이미 있다면 업데이트 하는것 (=merge 와 같은..) 업서트는 대치 방식의 업데이트에서는 수행될 수 없다. [업데이트 연산자] 표준적인 업데이트 … Read more

몽고 디비 인 액션 7장-1

업데이트, 원자적연산, 삭제 도큐먼트 업데이트 MongoDB 업데이트 방식– 도큐먼트 전체 대치– 도큐먼트 내의 특정 필드를 수정하기 위해 업데이트 연산자 사용 대치에 의한 수정 연산자에 의한 수정 두 방법의 비교 대치 Vs 연산자– 사용자의 어떤 속성을 수정하든지 상관없이 업데이트를 수행하는 코드는 동일하다.업데이트를 일반화하는 MongoDB 객체 매퍼를 작성한다면 대치 방식이 합리적– 타킷방식은 좀 더 나은 성능을 갖는다. … Read more

몽고디비 인 액션 6장 -2

도큐먼트 재구성 MongoDB 집계 파이프라인은 도큐먼트를 변형하여 출력 도큐먼트를 생성하는 데 사용할 수 있는 많은 함수를 가지고 있다.일반적으로 $project 연산자와 사용되지만 $group 연산자에 대한 _id를 정의할 때 사용할 수도 있음.(집계 프레임워크 재형성 함수 목록 : https://docs.mongodb.com/manual/reference/operator/aggregation/group/) 문자열함수 $concat : 두 개 이상의 문자열을 단일 문자열로 연결 $strcasecmp : 대/소문자를 구분하지 않는 문자열 비교를 하며, 숫자 … Read more

몽고디비 인 액션 6장 -1

집계 MongoDB 집계 프레임워크를 사용하여 보다 복잡한 쿼리 사용을 알아본다. (예. 월별매출, 제품별 매출, 사용자별 주문합계 등, cf. GROUP BY) 집계 프레임워크 개요 집계 파이프라인 $project : 출력 도큐먼트상에 배치할 필드 지정 $match : 처리될 도큐먼트를 선택하는 것. (= find()) $limit : 다음 단계에 전달될 도큐먼트의 수 제한 $skip : 지정된 수의 도큐먼트를 건너뛴다. $unwind … Read more

몽고디비 인 액션 5장

쿼리 작성하기 다른 툴과 다른 점은 쿼리 언어에 있다. SQL과 같이 표준화된 쿼리 언어를 사용하는 것 대신에 자바스크립트 프로그래밍 언어와 간단한 API를 사용해 서버와 연결한다. 전자상거래 데이터 모델 질의 findOne Vs find 쿼리 findOne : 도큐먼트 반환 (= db.products.find({‘slug’:’wheel-barrow-9092′}).limit(1))find : 커서 객체 반환 => 여러 개의 결과 도큐먼트가 필요하다면 find 사용 skip, limit 그리고 쿼리 … Read more

몽고디비 인 액션 2장

자바스크립트 셸을 통한 MongoDB 다른 툴과 다른 점은 쿼리 언어에 있다. SQL과 같이 표준화된 쿼리 언어를 사용하는 것 대신에 자바스크립트 프로그래밍 언어와 간단한 API를 사용해 서버와 연결한다. MongoDB설치(부록A) 윈도우 설치 원도우 명령프롬프트(커맨드창)에서도 명령어로 접속이 가능하도록 Path를 설정제어판 > 환경변수 > 시스템Path > 몽고디비설치 bin경로 추가 (C:\Program Files\MongoDB\Server\5.0\bin) 데이터베이스, 컬렉션, 도큐먼트 MongoDB가 RDBMS의 테이블과 같이 도큐먼트들을 … Read more

몽고디비 인 액션 1장

최신 웹을 위한 도큐먼트 데이터베이스 MongoDB는 웹 애플리케이션과 인터텟 기반을 위해 설계된 데이터베이스 관리 시스템이다. MongoDB의 도큐먼트 형식 : JSON 방식의 데이터구조 스키마 (Hasp Map과 같은.)=> 관계형모델처럼 서로 join의 필요성 및 테이블 추가가 필요없다.=> 새로운 속성을 한 도큐먼트에 동적으로 추가할 수 있다. 애드혹 쿼리 (ad hoc query) 키-값 타입의 저장 시스템은 하나의 키-값으로만 질의할 수 … Read more