목록분류 전체보기 (211)
And Brain said,
오늘은 크리스마스 기념 Jenkins를 들고왔다. 내가 직접 수많은 오류를 내면서 작성했던 Pipeline Script를 여러분들에게 선물로 드리겠다. 일단 Jenkins가 왜 CI/CD 파이프라인의 지휘관인지, Git - Jenkins - Docker - Kubernetes의 간략한 아키텍처에 대해 내가 아는 수준에서 설명하겠다. 먼저 Git에 소스를 푸쉬하면 Jenkins는 그 변화를 감지하고 변경된 소스를 클론하여 Docker 이미지로 빌드하고 레포지토리에 푸쉬한다. 이후, Kubernetes는 레포지토리에 푸쉬된 이미지를 yaml 파일 또는 CLI 명령어등의 방법으로 컨테이너로 실행시킨다. 여기서 또한, Jenkins 파일에 Kubernetes 명령어들을 적어서 자동으로 실행시켜줄 수 있다. 이것..
오늘은 TypeScript의 호출 시그니쳐(Call Signature), Overloading 그리고 다형성(Polymorphism)에 대해서 배워볼 것이다. Call Signature 호출 시그니쳐란 간단히 말해 함수 위에 커서를 올리면 나오는 정보를 말하며, 함수를 어떻게 호출하고 그 반환 타입은 무엇인지 알려준다. 이렇게 커스텀 타입을 선언해주고 함수 위에 커서를 올리면 이 함수의 정보가 나온다. Overloading 오버로딩(Overloading)이란 동일한 이름에 매개 변수만 다른 여러개의 함수를 만드는 것을 함수의 오버로딩이라고 한다. 함수의 다형성을 지원한다. 이렇게 파라미터가 다른 동일한 이름의 함수들을 만들 수 있다. 위의 경우는 파라미터의 개수가 같은 경우이고 만약 파라미터의 개수가 다..
오늘은 Github 소스를 Jenkins를 이용하여 Docker 컨테이너로 생성하는 CI/CD 파이프라인에 대해 간략히 알아보겠다. 일단 기본적인 Docker 네트워크를 만들고 나는 기존의 컨테이너와 이미지들을 전부 삭제했다. // Docker Network 생성하기 $ docker network create --gateway 172.18.0.1 --subnet 172.18.0.0/16 msa-network // container 전체 삭제 $ docker rm -f $(docker ps -qa) // image 전체 삭제 $ docker rmi $(docker images -q) 이제 Docker-compose.yml 파일을 만들어 docker-compose를 이용하여 Jenkins를 컨테이너로 띄워보..
오늘은 Firebase Cloud Messaging 이하, FCM에 대해 알아보고 FCM 서버와 간단한 Spring Boot Java API를 통해 통신하여 안드로이드 에뮬레이터에 Push 알림이 발송되는지까지 테스트해보도록 하자. FCM? FCM이란 무료 메시지를 보낼 수 있는 플랫폼 간 메시징 솔루션이다. 기존 메시지 전송 방식은 A가 Server를 통해 B에게 실시간으로 메시지를 전송하려면 B가 서버에 계속 접속해 있어야 했다. 이를 실제로 구현한다면, 많은 배터리와 네트워크 사용이라는 문제를 야기시켰다. 그리하여 나온것이 FCM이다. A가 Server를 통해 B에게 실시간으로 메시지를 전송한다는 방식은 같지만 중간에 Cloud Messaging Server가 끼어든다. A -> Server -> ..
TCP 헤더 TCP는 연결 지향형(Connection-Oriented) 서비스를 제공하고 신뢰성 있는 데이터 전송을 보장한다. 출발지 포트 번호(Source Port Number) 출발지 호스트의 포트 번호를 정의한 16비트 필드이며 임의 번호를 사용한다. 목적지 포트 번호(Destination Port Number) 목적지 호스트의 포트 번호를 정의한 16비트 필드이며, 대부분의 Well-Known Port Number를 사용한다. 순서 번호(Sequence Number) TCP 세그먼트들에 대한 순서 번호를 표시한다. 목적지에서 재조립할 때 사용한다. 수신 확인 응답 번호(Acknowledge Number) 수신 장치에서 발신 장치로 세그먼트의 전송 성공 여부를 알려주기 위해 사용한다. 헤더 길이(H..