공부하고 기록하는, 경제학과 출신 개발자의 노트

네트워크 10

gRPC (4) - Client Streaming 개념 및 예제코드

Client Streaming 클라이언트가 여러 번 서버에 데이터 전송, 클라이언트가 응답을 언제 받을 수 있는지는 전적으로 서버에게 달려있다. 실습환경은 아래와 같은 디렉토리에서 이루어졌다. go를 설치하고 환경변수로 GOPATH를 등록한 상태로, 모든 명령어는 ~/go/src/ch4 에서 이루어졌다. 1. proto 파일 생성 greetpb 디렉토리에 greetpb.proto 파일을 생성하고 아래와 같이 입력해준다. syntax = "proto3"; package greet; option go_package="greet/greetpb"; message Greeting { string first_name = 1; string last_name = 2; } message LongGreetRequest {..

gRPC (3) - Server Streaming 개념 및 예제코드

Server Streaming cf. 예제코드는 go 개발환경과 protoc-gen-go 디펜던시가 갖추어졌다는 전제로 작성되었다. Http2의 특징을 활용한, 새로운 형태의 RPC API. 클라이언트의 요청 한 번으로, 서버가 데이터를 여러 번 전송할 수 있는 형태. 실습환경은 아래와 같은 디렉토리에서 이루어졌다. go를 설치하고 환경변수로 GOPATH를 등록한 상태로, 모든 명령어는 ~/go/src/ch4 에서 이루어졌다. 1. proto 파일 생성 greetpb 디렉토리에 greetpb.proto 파일을 생성하고 아래와 같이 입력해준다. syntax = "proto3"; package greet; option go_package="greet/greetpb"; message Greeting { str..

gRPC (2) - Unary 개념 및 예제코드

cf. 예제코드는 go 개발환경과 protoc-gen-go 디펜던시가 갖추어졌다는 전제로 작성되었다. Unary 일반적으로 생각하는 Client - Server간 일대일 메시지 통신. Hands on 실습환경은 아래와 같은 디렉토리에서 이루어졌다. go를 설치하고 환경변수로 GOPATH를 등록한 상태로, 모든 명령어는 ~/go/src/ch4 에서 이루어졌다. 1. proto 파일 생성 greetpb 디렉토리에 greetpb.proto 파일을 생성하고 아래와 같이 입력해준다. syntax = "proto3"; package greet; option go_package="greet/greetpb"; message Greeting { string first_name = 1; string last_name = ..

gRPC (1) - gRPC의 특징 및 성능확인

Problem statement 논리적으로는 분리되어 있지만 Monolitic하게 설계된 애플리케이션이 있다고 가정하자. 내부 모듈 간 통신 속도가 빠르다는 장점 하나의 모듈에 문제가 생길 경우 애플리케이션 전체가 영향을 받음 (특정 모듈이 메모리를 과도하게 점유할 경우 시스템 전체가 죽는다던가) 그렇다보니 애플리케이션의 구조를 MicroService로 변경하려는 추세. 따라서 각각의 business / subdomain별로 별도의 시스템을 생성한 뒤 Http, Json으로 통신하는 형태의 아키텍처. Http + Json 기반 MicroService의 단점으로 생각할 수 있는 점 요청 / 응답에 걸리는 시간. 오른쪽 그림처럼, TCP 커넥션을 맺은 후에야 Request / Response를 받아올 수 있..

WebRTC - 개념과 통신방식, 프로토콜

WebRTC Real time Communication on Web Browsers / Mobile App을 가능하게 하는 Framework. 즉 text 형태로도, video 형태로도 가능하다는 뜻. P2P만을 말하는 건 아니다. 단순한 P2P보다 훨씬 복잡함. 크게 네 가지 step을 거쳐 동작한다. Signalling Connecting Securing Communicationing. 보통 WebRTC를 사용한 통신의 대부분이 P2P인 것뿐이다. 왜 등장했는가? WebRTC 이전에는 Server가 MiddleMan 역할을 했다. 즉, 사용자 간 통신의 모든 부하를 서버가 떠맡는 구조였다. Scalable에 한계가 있는 구조 / 유지하기 비싸다. 그럼 아예 이렇게 통신하게 하면 어떨까? 중간에 서버가..

[Edwith] 통신의 기초 5. 통신보안

https://www.edwith.org/tel-ewha-course/joinLectures/13274 통신의 기초 강좌소개 : edwith - 도인실 www.edwith.org 5. 통신보안 정보통신보안 정보를 수집 및 가공하고 저장한 후 송수신하는 과정에서 발생하는 정보의 불법훼손 / 변조 / 유출 등을 방지하기 위한 관리적, 기술적 방법 랜섬웨어: 정보를 납치한 뒤 풀어주는 대가로 돈을 요구하는 형태 보안의 목표 기밀성(confidentiality): 소유자가 원하는 대로 정보의 비밀이 유지되어야 함 (아무나 볼 수 없도록) 무결성(integrity): 비인가된 자에 의해 정보가 변경, 삭제, 생성되지 않도록 -> 정보의 정확성, 완전성이 보장되어야 함 가용성(availability): 정보 시스템..

[Edwith] 통신의 기초 4. 이동통신

4. 이동통신 유선통신 vs 무선통신 유선전화 = 전화교환원이 존재. 통화하려는 두 사람을 직접 연결하는 식. 교환원은 당연히 이제 없지만, 유선 전화를 교환하는 교환대는 여전히 존재 기본적으로는 ‘국가 - 도시 - 지역 - 구내’ 개념으로 번호가 분리되어 있다. 82 - 02(서울) - 0000 - 0000 같은 구내 연결 = 짧은 교환과정, 거리가 멀어질수록 긴 회선을 사용해서 연결을 시도하는 것. 따라서 이 당시만 해도 거리가 멀어질수록 요금이 비쌌다. 무선 통신의 등장 송신탑에서 최대한 멀리 쏘아보내서 전화보내는 사람 / 받는 사람을 연결하는 게 초기 방식. 이 방식은 먼 거리일수록 통신 전력이 많이 필요하다는 단점이 있었음. 그래서 ‘굳이 최대한 멀리 쏘는 대신, 지역별로 나누어서 해당 지역 중..

[Edwith] 통신의 기초 3강. 인터넷

https://www.edwith.org/tel-ewha-course/joinLectures/13274 통신의 기초 강좌소개 : edwith - 도인실 www.edwith.org 3. 인터넷 IP주소 IP = Internet Protocol. TCP/IP 5계층 중 Internet Layer가 IP계층. -> 네트워크가 서로 달라도 통신이 가능하도록 지원하는 것. 전송하고자 하는 최종 목적지가 바로 IP주소. 이 데이터를 누구에게 전달할지를 IP주소 보고 판단. IP계층에서 헤더값으로 붙는 게 IP. IP vs DNS(도메인 네임 서버) 인터넷 사용할 때 ‘이름’을 IP주소로 변경하는 게 DNS. 사용자의 domain 이름을 IP주소로 변환한다. IPv4 주소: 32bit. 이론적으로 42억개 정도의 주..

[Edwith] 통신의 기초 2강. 통신 프로토콜

https://www.edwith.org/tel-ewha-course/joinLectures/13274 통신의 기초 강좌소개 : edwith - 도인실 www.edwith.org 2. 통신프로토콜 프로토콜이란? 통신회선을 이용해 컴퓨터 - 컴퓨터, 컴퓨터 - 단말기끼리 데이터를 주고받는 경우 “상호약속” 무엇을, 어떻게, 언제 통신할 것인지 약속하여 통신오류를 피하기 위한 규약. 프로토콜의 3요소 구문(syntax): 데이터블록의 format(형식). 의미(Semantics): 상호작용, 오류제어 등을 위한 제어정보. 동기(Timing): 속도 / 순서를 상호간에 맞추는 것. 실제 프로토콜의 기능… 많은 기능을 수행하며, 통신에서 매우 중요하다고. 동기 제어 (synchronization) 패킷의 분리 ..

[Edwith] 통신의 기초 1강. 통신의 기본 개념

https://www.edwith.org/tel-ewha-course/joinLectures/13274 통신의 기초 강좌소개 : edwith - 도인실 www.edwith.org 1. 통신의 기본 개념 통신이란? 사람 / 기계들 간에 여러 종류의 매체를 이용해 정보를 전달하는 과정을 말함. 상대방에게 자신의 의사를 정확히 전달한다. 3요소 송신자 (보내는 자) + 수신자 (받는 자) 통신 매체 (채널, 링크, 회신) 프로토콜 (통신을 위한 적절한 절차를 말함. 통신규약) 정보 통신 정보: 데이터를 수집, 가공해 목적에 따라 정돈해놓은 유용한 상태. 통신: 멀리 떨어져 있는 사람 / 기계들 간에 여러 종류 매체를 이용해 정보를 전달하는 과정. 형태 단방향: 방송, 이메일 등 한쪽으로만 신호가 전달 양방향:..