서비스 배포할때 주의할 점
출처
주의할 점
개발 환경에서 사용되는 도메인을 배포 환경에서 그대로 사용
- 개발 환경과 배포 환경의 도메인을 명확히 구분해서 사용하기
테스트용 계정과 비밀번호도 함께 배포되는 이슈
- 위와 동일하게 명확히 구분해서 사용하기
- 데이터베이스를 나눈다거나 하는 방법이 있지 않을까?
api key가 내장된 채로 서비스 배포
- 유출되었을 경우 API 키를 즉시 폐기(폐기 후 재생성)
- API 키를 하드코딩하지 않고 안전하게 관리(Ex. .env 사용)
- 서버에 환경변수 직접 설정해서 사용하기
Truble Shooting
문제: Github에 API가 함께 올라갔을 경우
해결방법: 과거 기록 포함 기록을 삭제
1. 파일에서 API 키 삭제
git rm —cached {file name}
2. 과거 커밋 기록에서도 삭제
git filter-branch --force --index-filter \
“git rm --cached --ignore-unmatch {file name} \
--prune-empty --tag-name-filter cat -- --all
git filter-branch --force
- Git의 모든 커밋 내역에서 특정 파일을 삭제
- Git 브랜치를 수정하여 커밋 내역을 변경하는 명령어
--index-filter "git rm --cached --ignore-unmatch {file name}"
- 파일명이 포함된 모든 과거 커밋에서 해당 파일을 제거
- 스테이징 영역에서 특정 파일을 제거
--prune-empty
- 파일 삭제 후 비어 있는 커밋 자동 삭제
--tag-name-filter cat
- Git 태그가 있으면, 태그를 유지하면서 커밋 내역을 수정
-- --all
- -- 뒤에 git 브랜치 지정
- --all은 모든 브랜치와 태그에 해당 내용을 적용하는 것
3. 로컬 저장소 기록에서도 삭제
rm -rf .git/refs/original/
- 과거 백업 데이터를 지우고, 삭제된 파일 완전 삭제
git reflog expire --expire=now --all
- 삭제된 파일이 추적되지 않도록 모든 과거 작업 기록 완전 삭제
- --all로 인해 모든 브랜치가 대상이 됨
git gc --prune=now
- 삭제된 커밋 및 파일을 완전 삭제
- 불필요한 데이터 블록을 제거로 디스크 공간 확보
git gc --aggressive --prune-now
- 저장소를 최대한 압축하여, 삭제된 파일이 완전 삭제되도록 보장
4. 원격 저장소 강제 푸시
git push origin --force --all
728x90
반응형
'개발 노트 > 아티클 읽기' 카테고리의 다른 글
5. 노베이스 해킹 입문 [1] 해킹이란? (0) | 2025.05.07 |
---|---|
4. AI의 USB라는 'MCP'는 무엇일까 (0) | 2025.04.28 |
2. 파이썬 나무위키 (0) | 2025.02.18 |
1. 거대 클라우드 서비스 업체가 비틀거리는 이유 (1) | 2025.02.13 |