기타

    CI / CD 에 대해서..

    오늘은 CI / CD가 무엇을 의미하고 tool은 어떤 것들이 있는지 알아보고자 한다!! 일단 CI / CD란 일련의 소스 코드 빌드부터 배포까지의 자동화 과정을 통틀어서 말한다. CI(Continuos Integration)은 지속적 통합을 의미하며 build의 자동화, 유닛 및 통합 테스트의 과정을 말하고 CD(Continuos Delivery)는 지속적 배포를 의미하며 build된 코드를 release하고 production으로 deploy하는 과정을 말한다. 현재 CNCF에 등록된 CI/CD를 위한 tool들이 jenkins, github actions, argoCD등 여러 종류의 도구들이 존재한다. 그 중에서 오늘은 github action이랑 aws의 code series에 대해 알아보고자 한..

    QUIC HTTP/3 내용 정리

    QUIC 새로운 transport layer udp위에 동작하지만 tcp에 상응하는 transport layer 운영체제 밖에서 동작 현대 통신 프로토콜 패러다임 리눅스 커널 바깥으로 유연하게 프로그래밍할 수 있게 PowerShift from Standard to Opensource Out of TCP QUIC은 TCP를 대체하는 범용 목적의 전송 계층 통신 프로토콜로서 당초 처음에 이름을 낼때 Quick UDP Internet Connections로 제안 → IETF에서 QUIC으로 지정. QUIC 은 UDP 베이스로 tls로 반드시 보안을 제공하도록 했고 에러 검출 및 복구, 흐름 제어에 대한 내용이 들어감. 하지만 기존 tcp와 관련해서만 기술이 발전 하다보니 tls와 친화력이 없어서 성능적으로 문..

    WebRTC 내용 정리

    기존의 p2p방식은 Dirty P2P -> 너무 무거움 클라이언트들이 서버 없이, 클라이언트들끼리 연결되어 통신 -> 다른 클라이언트에 대한 정보 다 가지고 있어야 한다. Client-Server : 중앙집중화된 역할 하는 서버 존재. 내가 채팅 친 것을 다른 애들한테 전달하는 걸 서버에 위임 p2p의 다른 형태를 가져가서 만든 것이 블록체인 p2p방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장 환경에 저장하여 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 원장 관리 기술임 지속적으로 변경되는 데이터를 모든 참여 노드에 기록한 변경 리스트. 분산 노드의 운영자에 의한 임의 조작이 불가능하도록 고안됨 누군가가 결제를 만들고 블록체인은 이 ..

    HTTP2 정리 내용

    HTTP1.1 의 문제점 Http는 처음에 text, html만 실어나를 것 생각하고 만들어졌다. 하지만 방향 바뀌면서 오리지널 설계가 담지 못하는 부분 생겼다. 3.5세대 이동통신과 스마트폰이 전세계 인터넷의 폭발적 성장을 이끌었다. HoL(Head of Line) 줄의 머리가 통과하지 못하면 뒤에서도 통과하지 못한다. 첫번째에 대한 응답 만들지 못하면 뒤의 응답들이 다 만들어져도 못나가고 기다리고 있어야 한다. Fat Message Header http 1.1은 사람이 읽을 수 있게 되어있어서 헤더에 많은 메타 정보를 저장햇는데 앞에 있는 정보와 뒤에 있는 정보가 독립적이라 앞에 많은 것 보냈으면 뒤에도 많은 것 보내야 한다. ⇒ 중복된 Header 값 전송 (domain sharding이란 여러 개..

    gRPC 공부 내용 정리

    들어가기 앞서 gRPC를 spring boot를 이용해서 4가지 방식에 대한 실습 git repo https://github.com/Eeap/Springboot-with-gRPC gRPC 기존 함수 호출 방법 종류 정적 링킹 - 실행 파일 생성시 필요한 라이브러리를 포함하여 생성하는 링킹 방식 동적 링킹 실행 파일 안에 라이브러리 코드 X, 하나의 메모리 공간에 매핑 후 여러 프로그램에서 공유하여 사용 필요한 함수 호출하면 필요한 모듈을 메모리 상으로 불러와서 실행 원격 함수 호출(RPC) 함수 호출했을 때 호출된 함수의 실행이 통신을 타고 원격지에 있는 컴퓨터에서 실행(분산 네트워크 환경) 컴퓨터를 연결하는 RPC 프로토콜이 필요 필요한것 - IDL : 원격지와의 연결 지원. 서로 다른 컴퓨터의 정보를..

    HTTP2 특징 정리 및 springboot로 테스트하기

    HTTP 1.1 의 전형적인 문제들 RTT 시간 증가 → http1.1의 하나의 커넥션당 하나의 요청을 처리하므로 tcp 3-way handshaking이 매번 커넥션 요청을 할때마다 일어남 이건 불필요한 RTT 시간을 증가시킴(syn를 보내고 syn ack를 받는 왕복 시간) Client-driven transmission → 클라이언트가 요청하지 않으면 서버는 클라이언트로 쪽으로 정보를 전달하지 못함 Fat message headers → 헤더에는 수많은 메타 정보가 들어감. 매 요청 시마다 엄청난 양의 헤더를 전송해야하며 중복된 정보가 전송될 수도 있음 Head of line blocking → 하나의 커넥션당 하나의 요청을 극복하기 위해 pipelining 기법을 도입해서 순차적으로 여러 개의 요..

    git rebase 사용해서 커밋 병합하기

    커밋을 병합할 일이 있어서 예전에 배웠던 git rebase를 사용해서 커밋을 합쳐봤습니다! git rebase -i HEAD~2 뒤에 숫자는 병합할 커밋의 개수만큼 입력하는 것이고 rebase 은 i옵션은 -interactive의 약어입니다! 병합할 커밋을 squash옵션을 넣어주고 병합될 대상을 pick해주면 됩니다 pick b test1 squash c test2 # Rebase a..c onto a # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but me..