전체 글(219)
-
CRC
1. CRC란CRC는 데이터 전송/저장 중 우연한 오류를 빠르게 검출하기 위한 체크값으로 단순한 합계나 XOR 체크섬보다 오류 검출 성능이 훨씬 좋아 시리얼 통신, 산업용 프로토콜, 네트워크, 파일 포멧 등에서 널리 사용된다. 2. CRC의 개념CRC는 데이터를 이진 다항식(Polynomial)으로 보고, 약속된 생성다항식(generator polynomial)으로 나눗셈을 수행했을때 나머지를 체크값으로 사용하는 방식이다. 단순 합계나 XOR 체크섬은 특정 패턴의 오류에 취약하고 바이트가 서로 바뀌거나 일부가 상쇄되면 못잡는 경우가 생긴다.더보기1. 단순 체크섬데이터를 바이트 단위로 보고 모든 바이트 값을 더한 뒤, 정해진 비트 폭(보통 8비트 또는 16비트)에 맞게 잘라서(mod) 체크값으로 쓰는 방식..
2025.12.10 -
통신관련 용어
1. 보더레이트시리얼 통신은 보통 서로 같은 시계(클럭)을 공유하지 않고 서로 약속한 속도로 0과 1로 데이터를 보내는 방식이다.여기서 서로 약속한 속도가 baudrate가 된다. 보더레이트가 필요한 이유는 결국 A가 B로 데이터를 보낼때는 0과 1을 특정한 속도로 고정되어 전송시킬 텐데 서로 같은 속도를 지정하고 데이터를 읽기로 했을때는 A가 B로 데이터를 보낼 때 문제 없이 원하는 데이터를 정확하게 읽어 기록할 수 있을 것이다. 그런데 만약 B가 속도가 더 빠르다면 A가 1을 B로 보낸 후에 최초는 B가 정상적으로 1을 보냈구나 라고 인식할텐데 A가 다음 데이터를 보내기도 전에 B가 다시 그 1을 읽어서 A가 보내는 원하는 값을 B가 정확하게 읽지 못해서 이상하게 깨진 데이터가 모여서 보이게 될것이다..
2025.12.08 -
Github Actions(CI/CD 구축) - 확장성을 고려한 컨테이너 기반의 프로젝트에서 많이 쓰는 CI/CD 구축법(Docker+CodeDeploy)
이번에는 기존의 GitHub Actions - ECR - EC2를 사용하던 CI/CD에서 CodeDeploy와 S3를 붙여보려고 한다.이때 CodeDeploy를 쓰는 경우 EC2로 하여금 ECR에서 작업하기 위해 사용자가 작성하던 내용을 실행 하도록 지시할 수 있으며 이를 위해서는 S3에 이를 위한 스크립트 파일등을 저장해두고 EC2가 내려받아 실행하게끔 해야하기에 S3가 같이 사용되게 된다. 기존의 workflow를 보면name: Spring workflowon: push: branches: - masterjobs: Deploy: runs-on: ubuntu-latest steps: # github에서 소스를 runner로 checkout - name: C..
2025.11.05 -
Github Actions(CI/CD 구축) - 확장성을 신경 쓴 프로젝트에서 많이 쓰는 CI/CD: CodeDeploy 및 사전준비
이번에는 아래와 같은 구조의 CI/CD를 만들어보도록 할 것이다GitHub ───────────▶ GitHub Actions ├─(app.zip 업로드)──────────────▶ S3 └─(배포 트리거)───────────────▶ CodeDeploy │ └─(배포 지시)──▶ EC2(Agent)먼저 GitHub Actions로 빌드한 파일을 S3에 업로드 하고 빌드가 완료되면 CodeDeploy에게 배포하라고 지..
2025.10.23 -
Github Actions(CI/CD 구축) - 일반 프로젝트에서 많이 쓰는 CI/CD
이전에는 서버를 실행하는 EC2에서 직접 git pull을 받고 빌드과정을 진행한 후에 서버를 실행했었다.이번에는 빌드작업은 Github Actions의 runner 내부에서 진행하고 이 빌드된 파일만 서버로 전달하여 서버 내에서 실행만 진행하는 과정으로 CI/CD를 구축해보도록 하자.초기 서비스는 단순하게 시작하고 실제 사용량과 문제가 드러날 때 필요한 만큼만 확장한다. 처음부터 대규모 아키텍처를 꾸리면 개발·운영이 복잡해져 속도와 비용이 증가하므로 확장 필요성이 확인될 때 고도화하는 것이 효율적이다그렇기에 해당 방식은 초기 서비스에 적절한 방법이라고 할 수 있겠다. 1. 기존 서비스 제거먼저 EC2에 돌아가고 있는 서비스와 프로젝트는 제거해주자.lsof -i :8080 => 서비스 구동 확인만약 실행..
2025.10.15 -
Github Actions - 환경변수
Github Actions의 환경변수는 실행중인 셀, 프로세스가 참조하고 있는 key-value 쌍의 데이터이다.이 환경변수는 runner의 OS 환경변수, Actions가 제공하는 컨텍스트 기반의 값, 워크플로에서 선언하는 env, 런타임에 파일로 주입하는 env 등이 존재한다. 각각 범위의 순서대로 Workflow → Job → Step → 셀 런타입에 동적으로 주입 하는 순서로 우선순위는 반대로 좁은 우선순위가 우선되고 이는 Step → Job → Workflow → runner OS → 셀 런타입 주입값 순서대로 가진다. 여기서 우리가 볼 건 Workflow, Job, Step, 런타임 주입 이다. 환경 변수는 내부적으로 env라는 명령어를 통해서 할당해서 사용되는데 보다보면 그러면 왜 outpu..
2025.10.14