728x90
반응형

ALL 632

Protocol Buffer 사용2

required : 반드시 값이 입력 되어야 하는 필드. 입력되지 않을 경우 객체는uninitialized 로 판단되며 build 하려 할 경우RuntimeException 을 던지며, Parsing 하려 할 경우IOException 을 던진다. 이것을 제외하면 optional과 동일하다. 더보기 Required 키워드는 “매우” 조심스럽게 사용해야 한다. 어떤 시점에서 Required 키워드로 정의된 필드를optional 로 변경해야 할 경우가 생기는데, 이 경우 상당한 문제를 야기 할 수 있다. 바로, 해당message 의 필드가optional 로 변경된 상태에서 값이 정의되지 않고 전송될 경우, 예전 버전의reader 는 이 값이 없기 때문에 message 가 초기화되지 않았다고 판단, messag..

개인 공부 2022.12.22

Java) InputStream

InputStream - 바이트 기반 입력 스트림의 최상위 클래스로 추상클래스입니다. 모든 바이트 기반 입력 스트림은 InputStream을 상속받아 만들어 집니다 java.io.InputStream에 있는 모든 메서드입니다. int available() - 현재 읽을수 있는 바이트수를 반환한다. void close() - 현재 열려있는 InputStream을 닫는다. void mark(int readlimit) - InputStream에서 현재의 위치를 표시해준다. boolean markSupported() - 해당 InputStream에서 mark()로 지정된 지점이 있는지에 대한 여부를 확인한다. abstract int read() - InputStream에서 한 바이트를 읽어서 int값으로 반환한..

JAVA 2022.12.22

Protocol Buffer 사용

앞서 프로토 파일을 만드는것은 아래의 링크에 있다. https://machine-woong.tistory.com/639 Android Protocl Buffers ver.3 사용하기 proto3 1. build.gradle(모듈) plugins { id 'com.android.application' id ('com.google.protobuf') version "0.8.17" } 추가 id ('com.google.protobuf') version "0.8.17" dependencies { ..... // Proto Buffer implementation 'androidx.datastore:datastore:1.0.0' impleme machine-woong.tistory.com Setter Person...

개인 공부 2022.12.22

네트워크 - 버퍼, 버퍼링, 캡슐화 ,큐

버퍼(buffer, 문화어: 완충기억기) 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역이다. 버퍼링(buffering) 버퍼를 활용하는 방식 또는 버퍼를 채우는 동작을 말한다. 다른 말로 '큐(Queue)'라고도 표현한다. 버퍼링 종류 완전버퍼링(fully buffered) : 버퍼가 가득차면 전송. 파일 입출력에 사용 라인버퍼링(line buffered) : 개행 문자가 나타날때마다 전송. 키보드 입력에서 사용 캡슐화 송신 측에서는 애플리케이션 계층에서 순서대로 각 계층에서 페이로드에 헤더를 붙여 PDU로 만들어 한단뎨 아래 계츠응로 전달합니다. 여기서 헤더를 추가하는 과정, 필요한 데이터를 추가해 나가는 과정을 캡슐화 ( encapsulation )이..

개인 공부 2022.12.20

네트워크 - 채널, 터널링

1. 용어 정리 - 데이터 스트림을 인터넷 상에서 가상의 파이프를 통해 전달시키는 기술[1] - 컴퓨터 네트워크에서 터널링 프로토콜을 사용하면 네트워크 사용자는 기본 네트워크가 직접 제공하지 않는 네트워크 서비스에 접근하거나 제공할 수 있다[2] 2. 터널링의 특징 - 호스트와 호스트 사이에 통신이 어떤 프로토콜을 사용하던 간에 일단 터널이 구성되면, 그 안에 원래 내용물(패킷)은 감싸지기(캡슐화) 때문에 내용물이 무엇인지는 중요하지 않게 됨[3] - 특정 프로토콜을 지원하지 않는 네트워크를 통해 외부 프로토콜을 실행 할 수 있다[2] - 기본 네트워크 서비스만을 사용하여 제공하기에는 비실용적이거나 안전하지 않은 서비스를 제공할 수 있다. 예를 들면 실제 네트워크 주소가 회사 네트워크의 일부가 아닌 원격..

개인 공부 2022.12.20

네트워크 - PDU , MTU

PDU PDU는 Protocol Data Unit의 약자입니다. => 컴퓨터데이터를 세는단위를 PDU라고 보면 될거 같다. 그림에 왼쪽에 있는게 세는 단위입니다. (각 계층의 데이터 단위) 보통 비트, 프레임, 패킷, 세그먼트 까지는 알고있어야 한다. 세그먼트 (전송 계층(4)) 예를 들면, 상위 계층에서 데이터를 전달받은 전송계층에서는 아래의 정보들를 추가해 그룹화 한다. 이때부터 데이터는 데이터가 아니라, 세그먼트라고 불리는 것이다. 발신지 포트 : 발신하는 application의 포트 목적지 포트 : 수신해야 할 application의 포트 순서 번호 : 순차적 전송할 경우 순서를 붙이며, 순서가 어긋나면 목적지 프로토콜이 이를 바로 잡는다. 오류검출코드 : 발신지와 목적지 프로토콜은 세그먼트를 연..

개인 공부 2022.12.20

Socket, Web Socket 란?

정의 소켓(Socket) : 네트워크상에서 동작하는 프로그램 간 통신의 종착점. 1대1 통신의 경우 양 측다 소켓이 존재해야 통신이 가능하다. 현재 대부분의 통신은 인터넷 프로토콜(TCP, UDP)에 기반하고 있으므로 대부분의 네트워크 소켓은 인터넷 소켓이다. 웹 소켓(Web Socket) : 웹소켓은 하나의 TCP 접속에 전이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜이다. 그리고 HTTP나 HTTPS 위에서 동작하도록 설계되었으며, 따라서 포트는 80번 혹은 443번이다. HTTP 프로토콜과 구별은 되지만 호환이 된다. 기본적으로 HTTP의 통신 포트는 80번, HTTPS는 443번이다. 차이점 동작 계층 : OSI 7계층 기준으로 소켓은 인터넷 프로토콜에 기반하므로 TCP, UDP가 속한 4계층에..

개인 공부 2022.12.16

SSL / TLS

HTTPS HTTPS와 HTTP HTTP(Hypertext Transfer Protocol)은 HyperText인 html을 전송하기 위한 통신규약을 의미한다. 마지막에 S를 붙인다면 Secure라는 뜻으로 보안이 강화된 통신규약을 의미한다. HTTP는 암호화가 되어있지 않은 방법으로 서버에 데이터를 전송하기 때문에 서버와 클라이언트가 서로 주고받는 메시지를 알아내기가 쉽다. 그러므로 서버로 비밀번호나 계좌번호 등 중요한 데이터를 서버로 전송할 경우에는 HTTPS 프로토콜을 사용하여 통신하는 것이 중요하다. HTTPS와 SSL HTTPS는 SSL 프로토콜을 기반으로 돌아가는 프로토콜 중 하나다. SSL SSL 정의 Secure Sockets Layer은 암호규약이다.( 과거 명칭: 보안 소켓 레이어/Se..

개인 공부 2022.12.15
728x90
반응형