직접 만든 소프트웨어, 두 가지 개발 기록 구현 구조와 적용 범위, 확인한 기능과 남은 한계를 함께 기록합니다. MediaMTX 스트리밍 제어 서버Docker Compose 구성과 파일·라이브·멀티캐스트 송출 RTSP CCTV 관제·분석 프로그램관제 그룹, 영역·출입선, 이벤트 이력을 연결하는 구조 전체 글207 rsync 복사 경로가 한 단계 달라질 때: 소스 끝 슬래시와 dry-run 확인 rsync의 소스 디렉터리 끝에 슬래시가 있으면 보통 그 안의 내용을 복사하고, 없으면 디렉터리 이름을 포함하는 차이가 생깁니다. 목적지 상태와 파일 수에 따른 다른 규칙도 있으므로 실행 전 dry-run 결과에서 실제 상대 경로를 확인하세요.원인: 복사하려는 범위와 입력 경로가 다르다같은 파일이 들어 있는 폴더라도 “폴더 자체”와 “그 안의 내용”은 목적지 구조가 다릅니다. 소스 끝의 /를 장식처럼 취급하면 배포 파일이 예상보다 한 단계 아래에 놓일 수 있습니다. 반대로 경로 차이를 고친다며 운영 목적지를 삭제하면 별개의 손실을 만들 수 있습니다.소스 입력빈 목적지의 예읽을 범위sourcewhole/source/demo.txt디렉터리 이름 포함source/contents/demo.txt안의 내용1. 버.. 2026. 10. 22. gitignore가 적용되지 않을 때: 추적 파일과 규칙 일치를 따로 확인 이미 Git이 추적하는 파일에는 .gitignore를 추가해도 추적이 자동 해제되지 않습니다. 먼저 git ls-files로 추적 상태를 보고, git check-ignore로 규칙을 확인하세요. 두 질문을 섞으면 정상 동작을 캐시 오류로 오해하기 쉽습니다.원인: 추적 상태와 무시 규칙은 다른 문제다무시 규칙은 의도적으로 추적하지 않을 파일에 사용합니다. 이미 인덱스에 있는 파일을 계속 수정하고 있다면 규칙을 추가해도 변경이 보일 수 있습니다. 먼저 저장소 루트와 대상 경로를 확인하고, 파일 내용에 비밀값이 있으면 출력이나 화면 공유에 포함하지 마세요.관찰확인할 질문다음 단계ls-files에 파일 표시이미 추적 중인가추적 유지 필요성 검토미추적인데 규칙 불일치패턴·위치가 맞나check-ignore 진단규.. 2026. 10. 22. AWS 관리형 키와 고객 관리형 KMS 키 선택: 정책·수명주기·복호화 확인 서비스가 지원하는 키 종류를 먼저 확인한 뒤, 정책과 키 수명주기를 직접 통제해야 하는지로 선택하세요. 고객 관리형 키는 통제 범위가 넓어지는 만큼 비용과 운영 책임도 생깁니다. 암호화를 켰다는 사실만으로 복구 가능한지까지 확인된 것은 아닙니다.원인: 키의 소유와 운영 책임을 구분하지 않는다AWS 문서는 고객 관리형, AWS 관리형, AWS 소유 키를 구분합니다. 고객 관리형은 계정에서 만들고 관리하는 키입니다. AWS 관리형은 연동 서비스가 계정에서 생성·관리하며, AWS 소유 키는 계정의 키 목록에서 직접 관리하는 유형이 아닙니다. 선택 가능한 조합은 사용하는 서비스에서 다시 확인해야 합니다.검토 질문관리형부터 검토고객 관리형 검토서비스 기본 운영으로 충분한가지원 옵션 확인추가 통제 필요성 확인키 정.. 2026. 10. 22. SNS와 EventBridge 선택: 구독 알림과 이벤트 라우팅을 구분하는 순서 같은 메시지를 여러 구독자에게 알리는 것이 중심이면 SNS를, 여러 이벤트의 내용과 출처에 따라 처리 대상을 나누는 것이 중심이면 EventBridge를 먼저 검토하세요. 단, SNS도 본문 필터를 지원하므로 “본문을 검사하면 무조건 EventBridge”라는 기준은 맞지 않습니다.원인: 알림 대상과 처리 규칙을 한 질문으로 섞는다“메시지를 전달한다”만으로 제품을 정하면 수신 방식과 운영 책임을 놓칩니다. SNS는 토픽을 구독한 엔드포인트에 알림을 전달하는 모델이고, EventBridge는 이벤트를 받아 조건에 맞는 대상으로 연결하는 이벤트 버스 모델입니다. 기존 큐의 Standard/FIFO 선택과는 다른 설계 단계입니다.먼저 적을 요구검토 출발점추가 확인여러 구독자로 알림 전달SNS구독 프로토콜·실패.. 2026. 10. 22. Git unrelated histories 해결: 원격 주소와 공통 조상부터 확인 refusing to merge unrelated histories는 두 이력의 공통 조상을 찾지 못한 상황에서 나타날 수 있습니다. 먼저 저장소·원격 주소·비교 대상이 맞는지 확인하세요. 의도적으로 독립된 이력을 합치는 경우에만 --allow-unrelated-histories를 검토하고, 원본 보존과 충돌 검토를 먼저 준비합니다.원인: 같은 파일이 있어도 같은 커밋 이력은 아니다로컬과 원격에서 각각 새 저장소를 초기화했거나 다른 저장소를 연결하면 파일 이름이 비슷해도 이력이 독립적일 수 있습니다. 오류를 없애기 위해 곧바로 강제 푸시하거나 .git을 삭제하면 보존해야 할 기록을 잃을 수 있습니다.상태우선 확인피할 조치원격 주소 불일치저장소 선택무조건 병합이력 제한 가능clone 범위독립 이력 단정독립.. 2026. 10. 21. Docker Compose 달러 기호가 사라질 때: 보간과 컨테이너 셸 구분 Compose의 변수 경고나 빈 문자열이 보이면 먼저 값을 바꾸는 주체가 Compose인지 컨테이너 안의 셸인지 구분하세요. Compose 단계에서 문자 그대로의 달러 기호를 넘기려면 $$를 사용할 수 있지만, 이후 셸이 그 문자를 다시 해석하는지는 별도 문제입니다.원인: YAML을 읽는 단계와 명령 실행 단계를 혼동한다Compose는 설정의 달러 변수 표현을 해석할 수 있습니다. 정의되지 않은 변수에 기본값도 없으면 경고 후 빈 문자열로 바뀔 수 있습니다. 애플리케이션이 실행되기도 전에 값이 달라지는 상황입니다. 컨테이너 환경변수에 같은 이름이 있다는 이유만으로 Compose가 그 값을 알 것이라고 가정하지 마세요.관찰확인 위치다음 판단변수 미정의 경고Compose 입력출처·기본값달러 그대로 전달 필요.. 2026. 10. 21. 이전 1 2 3 4 ··· 35 다음