분류 전체보기 썸네일형 리스트형 gRPC 기초 + 실습 예제 GRPC 목차 RPC란? gRPC란? start gRPC with java + python java gRPC server java gRPC client python gRPC client with docker 1. RPC란? Remote Procedure Call의 약자. 원격에 있는 함수를 호출하는 것을 말한다. 과거엔 프로세스간 통신을 위해 많이 사용되었으나 현재는 웹 기술의 발달로 SOAP, REST에 많이 밀려난 상태. 분산컴퓨팅 환경에서 많이 사용하며 MSA에서도 사용하기 적절하다. Skeleton, Stub이라고 부르는 IDL 코드로 request params, response params를 파악해야 함 (작성중) 2. gRPC란? 구글에서 사용하던 'Stubby' 라는 RPC 스택을 강화하여 .. 더보기 Protocol buffers 목차 개요 장단점 사용법 개요 구글에서 개발하고 사용중인 직렬화 데이터 구조. 파일 하나에 64M까지 지원. 기타 특징들은 아래 장단점에 서술. 장단점 장점 이름있는 언어는 대부분 지원 직렬화 속도가 빠름 직렬화된 파일의 크기가 작음 = 통신 효율 증대 데이터를 바이트형태로 직렬화하여 전송하기에 별도의 파싱 과정이 필요 없다. proto 파일 json 전환 유틸 지원 protobuf 공식 홈페이지 曰 : xml에 비해 3~10배 작고 20~100배 빠르고 더 간결하고 덜 모호하고 더 쉬운 데이터 액세스 클래스를 제공합니다. 단점 Protocol buffer에 쓰는 스키마 파일인 proto 파일에 대한 사전 지식이 필요하다. 바이트 형태이기에 사람이 읽기엔 적합하지 않다. proto 파일을 보면 이해할 수.. 더보기 Javascript HashSet Javascript의 자료형 중 'Set' 이라는 자료형이 있다. Set 자료형은 간단히 설명하자면 순서가 없고 중복이 없는 배열 이라고 생각하면 쉽다. (물론 배열과는 근본이 다르다.) 사용법은 아래와 같다. const set1 = new Set([1, 2, 3, 4, 5]); console.log(set1.has(1)); // expected output: true console.log(set1.has(6)); // expected output: false console.log(set1.length); // expected output: 5 //출처 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Set S.. 더보기 MAC 특정 포트를 사용중인 프로세스 강제로 종료하기 업무를 하다보면 intelliJ가 말을 듣지 않을 때가 (매일)있다. 기다림 끝에 강제종료 후 재실행하여 디버그 버튼을 누르면.. Port 8080 is already in use 위와 같은 에러가 뜬다. 강제 종료 간에 프로세스를 정상적으로 종료시키지 못해서 해당 포트를 계속 사용중인 경우이다. 해결법은 아래와 같다. sudo lsof -i :${PORT_NUMBER} //특정 포트를 사용하는 PID(프로세스 ID) 확인 sudo kill -9 ${PID} //특정 PID 사용중인 프로세스 강제 종료 lsof 는 list open files의 약자이며 OS 범용성이 상당히 높은 명령어이다. -i 옵션과 프로토콜(생략가능):포트로 원하는 프로세스의 정보를 알아낼 수 있다. kill 명령어는 프로세스를 종.. 더보기 Circuit breaker 패턴 api 호출 등의 통신 시 어떠한 이유에서든 오류가 나거나 통신이 지연되는 경우가 생길 수 있습니다. 오류를 적절히 처리하기 위해 timeout을 활용하고 try-catch를 활용하면 되지만 오류가 장시간, 여러번 발생하면 리소스 문제가 발생하여 장애가 확대될 수도 있습니다. 문제가 발생하는지 실시간으로 감시하고 해결하면 좋겠지만 결국 인력 리소스가 많이 들어가게 되므로 현실적인 대안들 중 circuit breaker 패턴을 알아보고자 합니다. circuit breaker 패턴은 전기 회로차단기에서 영감을 얻은 패턴으로 전기 회로차단기의 원리는 평소에는 전기가 흐르며 작동하다가 문제 발생 시 회로를 열어 전기가 통하지 않게 하여 작동을 정지시키는 것입니다. 작동을 정지시키면 리소스 문제에 개선이 있을테고.. 더보기 json 객체 와일드카드 비스무리하게 사용하기 iot에 관한 프로젝트 진행 중 json 객체 내 다수의 timestamp 중 가장 높은 값을 찾을 일이 생겼다. 해당 json 객체의 형태는 { "metadata": { "desired": { "welcome": { "timestamp": 1613530483 }, "welcome2": { "timestamp": 1613530483 }, "welcome3": { "timestamp": 1613530483 } }, "reported": { "welcome": { "timestamp": 1613530483 }, "welcome3": { "timestamp": 1613530483 }, "welcome2": { "timestamp": 1613530483 } } }, "version": 11, "timestamp.. 더보기 document.ready와 window.load 브라우저가 페이지를 읽어오는 순서를 간략하게 나열해보자면 사용자가 페이지 방문 브라우저에 의한 파싱을 거쳐 DOM 생성 이미지 등 부가 요소 로딩 페이지 로딩 완료 정도로 볼 수 있다. $(document).ready 메소드는 2번 타이밍에 실행되며 $(window).load 메소드는 4번 타이밍에 실행된다. 간단한 예시로 순서를 보자면 다음과 같다. 더보기 jQuery selector id에 콜론 사용하기 Jquery에서 자주 사용하는 selector 사용 시 id 값에 콜론(:)이 들어가있는 경우 Uncaught Error: Syntax error, unrecognized expression: #result-_: (예시의 경우 id는 result-_:) 위와 같은 에러가 발생한다. 몇 가지 해결 방법이 있으며 첫 번째 $("[id='result-_:']") 와 같이 사용하는 방법 두 번째 $(document.getElementById("result-_:")) 와 같이 사용하는 방법 세 번째 str = str.replace(/:/gi, "\\:"); 콜론(:) 앞에 역슬래시(\)를 2개 붙여주는 것이다. 위와 같이 replace를 활용하면 잘 동작한다. 콜론은 jQuery 확장에 사용되기 때문에 보통 방법.. 더보기 이전 1 2 3 4 5 6 다음