24.12.06(금)부터 프로젝트를 진행하는 중이다.
프로젝트 구상안은 아래와 같다. 일부만 업로드하겠다!
: Go 언어 기반 HTTP/HTTPS 통신 시스템
: 이 프로젝트는 Go 언어를 사용하여 HTTP/HTTPS 통신을 구현하며, 두 개의 클라이언트(Provider
/Viewer
)와 한 개의 서버(Tx
/Rx
)가 상호작용한다.
본 프로젝트의 목적은 HTTP 서버와 HTTPS 서버 간 데이터 복제가 잘 이루어짐을 확인하기 위함이다.
명령행 인자로 작업(method
)을 입력 받아 서버에게 해당 작업 요청
POST 작업에 요구되는 명령행 인자로 데이터의 개수(n
)를 입력 받음
PUT 작업에 요구되는 명령행 인자로 아이디(id
), 이름(name
) 입력 받음
DELETE 작업에 요구되는 명령행 인자로 아이디(id
) 입력 받음
→ 작업별로 필수적으로 요구되는 명령행 인자가 상이
이후 프로그램이 사용자에게 수행할 작업 입력 요청
생성된 데이터는 id, name, address, sex 필드를 포함한 구조체 형식
→ 예시: n=3인 경우
- id는 1, 2, 3 형태로 데이터 생성
- name=Alex → Alex1, Alex2, Alex3 형태로 데이터 생성
- address와 sex는 n과 무관하게 초기 데이터와 동일하게 사용
전송 데이터 형식: JSON 형식으로 Tx 서버에 전송
하나의 코드에서 HTTP와 HTTPS를 함께 다루는 방식을 사용
기능:
cert.pem
) 및 키 파일(key.pem
)을 사용mode
) 지정: Tx 서버(tx
), Rx 서버(rx
)protocol
) 지정: HTTP(http
), HTTPS(https
)Go의 http 클라이언트는 자체 서명된 인증서를 신뢰하지 않기에,
InsecureSkipVerify: true
설정
POST/PUT/DELETE
요청 처리Protobuf
를 통해 Rx 서버로 전송Protobuf
사용)기능:
경우 1. HTTP가 Tx, HTTPS가 Rx
경우 2. HTTPS가 Tx, HTTP가 Rx