Dev/CS 32

[형상관리] GitHub에 잘못 PUSH한 폴더 및 파일 완전 삭제하기 (BFG 사용)

프로젝트를 진행하다가 Docker 설정 폴더를 GitHub에 실수로 Push하는 일이 발생했다.단순히 git rm으로 삭제하면 최신 버전에서는 사라지지만, 히스토리에는 그대로 남아있다.특히 설정 파일 안에 민감 정보(DB 계정, 내부 IP, Key 등)가 포함되어 있다면 반드시 히스토리까지 완전 삭제해야 한다.이번 글에서는 BFG Repo Cleaner를 이용해 특정 폴더를 Git 히스토리에서 완전히 제거하는 방법을 정리한다.1. 왜 git rm으로는 부족한가git rm -r Dockergit commit -m "remove docker folder"git push위 방법은 현재 브랜치에서만 삭제된다.하지만 Git의 과거 커밋 기록에는 Docker/ 폴더가 그대로 남아있다.즉, 누군가 이전 커밋을 조회하..

Dev/CS 2026.03.04

[CS] 메일 헤더를 분석해보자

메일 헤더(Header)란 무엇인가?메일 헤더는 "이 메일이 어디서, 누구에 의해, 어떤 방식으로 전달되었는지"를 기록한 메일의 이력서 같은 존재다. 본문은 사용자에게 보이는 영역이라면 헤더는 메일 서버와 보안 시스템을 위한 영역이다. 스팸 분석, 위·변조 판단, 발송 경로 추적 시 가장 먼저 확인하는 게 바로 이 메일 헤더다.메일 헤더 분석 가이드 (예시 헤더 기반 정리)/* ChatGPT를 통해 만든 샘플 메일 헤더입니다. */Received: from mail.example-sender.com (203.0.113.10) by mail.example-receiver.com with ESMTP; Tue, 04 Feb 2026 15:20:11 +0900Authentication-..

Dev/CS 2026.02.09

🐳 도커(Docker) 프록시 네트워크 설정

포트 직접 접근에서 프록시 네트워크 방식으로 전환한 이유기존에는 아래처럼 포트를 직접 열어서 접근했다.http://도메인:8080http://도메인:9000 이 방식은 간단하지만, 운영 환경에서는 여러 문제가 있다.포트 직접 노출 방식의 한계서비스가 늘어날수록 포트 관리 지옥방화벽, 보안 장비 설정 복잡서비스 구조가 외부에 그대로 노출HTTPS 적용 시 서비스마다 설정 필요“서비스가 많아질수록 관리 포인트가 기하급수적으로 늘어난다.”프록시 네트워크 방식이란?외부에서는 단 하나의 진입점(WEB) 만 바라보고 실제 서비스들은 Docker 내부 네트워크에서만 통신하게 만드는 구조다.외부 사용자 ↓ HTTPS[Nginx Reverse Proxy] ↓ Docker Network[서비스 / 배치 / 관리자]..

Dev/CS 2026.01.21

🐳 도커(Docker) 기본 개념과 용어 정리

도커 프로젝트를 진행하면서 관련된 단어 정리를 해보려 한다.이미지? 컨테이너? 볼륨? 다양한 용어들이 한꺼번에 쏟아져서 어렵게 느껴졌지만 막상 두들겨보니 일상에서 익숙한 예시를 찾게되어 알기 쉽게 정리해 보았다.도커란?도커는 ‘애플리케이션을 실행하는 데 필요한 것을 한 번에 담아 어디서든 똑같이 실행할 수 있게 해주는 기술’도커 이미지(Image) = 🍱 밀키트도커 이미지는 애플리케이션 실행에 필요한 모든 것을 담아놓은 설계도 + 재료 세트 밀키트레시피손질된 재료양념조리 순서도커 이미지OS 기반 환경라이브러리실행 파일설정 값밀키트는 아직 요리된 상태가 아니고,도커 이미지도 아직 실행된 상태가 아니다.컨테이너(Container) = 🍳 실제로 조리된 요리컨테이너(Container)는 도커 이미지를 실제..

Dev/CS 2026.01.20

[CS] 해싱과 암호화의 차이점

이번 프로젝트에서 비밀번호 저장에 대한 로직을 구현하며 해싱(Hashing)과 암호화(Encryption)에 차이점에 대해서 공부해 보았다. 두 개념 모두 데이터를 변환하여 보호하는 기술이지만, 그 목적과 방식은 매우 다르다는 것을 알게 되었다.1. 해싱(Hashing)이란?해싱은 임의의 입력값을 고정된 길이의 문자열(해시 값)로 변환하는 과정이다.대표적인 해시 함수로는 SHA-256, MD5가 있다.특징단방향한 번 해싱된 값은 원래 데이터로 복원 불가능고정된 길이 출력입력 데이터의 크기과 관계없이 항상 일정한 길이의 해시값을 생성충돌 방지서로 다른 입력값이 같은 해시 값을 갖지 않음빠른 연산 속도데이터를 빠르게 변환할 수 있도록 최적화됨 사용 사례1. 비밀번호 저장2. 데이터 무결성 검증 (파일 다운로..

Dev/CS 2025.03.17

[CS] Base62 vs Base64 비교 및 용도별 적합성

Base62와 Base64는 둘 다 데이터를 문자 기반으로 변환하는 인코딩 방식이지만, 사용 목적과 특성이 다르다. 각각의 차이점과 적합한 용도를 비교해보자.1. Base62 vs Base64 개요특징Base62Base64사용 문자0-9 (10개) + A-Z (26개) + a-z (26개) = 62개0-9 (10개) + A-Z (26개) + a-z (26개) + +, / = 64개URL 안전성✅ (특수문자 없음)❌ (+, /가 포함되어 URL에서 인코딩 필요)공백 포함 여부❌ (패딩 없음)✅ (일반적으로 = 패딩 사용)인코딩 효율성덜 효율적 (62진법 변환 필요)더 효율적 (2^6 비트 단위 변환)변환 방식숫자(ID) → 62진법 변환3바이트(24비트) → 4개 6비트 단위로 변환사용 목적짧고 안전한 U..

Dev/CS 2025.03.12

[DNS] MX 레코드 확인 방법

도메인의 MX(메일 교환기) 레코드는 메일 서버의 주소를 나타내며, 이를 확인하는 것은 메일 시스템을 설정하거나 문제를 해결할 때 중요하다.이번 글에서는 Windows 환경에서 CMD(명령 프롬프트)를 사용해 특정 도메인의 MX 레코드를 확인하는 방법을 기술한다.1. 실행 창에서 CMD 실행하기1. [Win + R] 키를 눌러 실행창을 연다.2. '열기' 입력란에 cmd를 입력한 후 [확인] 버튼 클릭2. nslookup 명령어를 사용하여 MX 레코드 조회1. 명령 프롬프트 창에서 nslookup을 입력하고 Enter2. 다음 명령어를 입력하여 MX 레코드 조회 모드로 변경한다.set q=mx 3. 원하는 도메인을 입력한다.google.com 또는 naver.com 4. 결과를 확인한다. 아래와 같은 형..

Dev/CS 2025.02.10

DKIM과 DMARC 이란?

DKIM과 DMARC는 이메일 인증 기술로 이메일의 신뢰성을 보장하고 피싱 및 스팸 메일을 방지하기 위해 사용된다.각각의 개념에 대해서 알아보고 동작 방식을 살펴보자.1. DKIM (DomainKeys Identified Mail)DKIM은 이메일이 수정되지 않았음을 보장하는 전자 서명 기술이다.- 발신자가 이메일에 디지털 서명을 추가하고, 수신자가 이 서명을 검증한다. - 이메일이 전송 중 변경되었다면 서명이 일치하지 않아 수신자가 이를 탐지할 수 있다.DKIM 동작 방식:1. 발신 도메인 관리자는 공개 키와 비밀 키를 생성2. 공개 키는 DNS 레코드에 저장되며 누구나 확인 가능3. 이메일 전송 시 발신 서버는 이메일 헤더에 DKIM 서명을 추가4. 수신 서버는 DNS에서 공개 키를 가져와 이메일의 ..

Dev/CS 2025.01.02