코드 위의 하루 (A Day on the Code)
🐬팀원이 동일한 데이터베이스를 쓸 수 있도록, 덤프 파일을 만들기까지 본문
💡 팀원이 DB를 써야 한다고?
프로젝트가 어느 정도 안정화되고, 로그인/회원가입/마이페이지 기능까지 모두 구현이 끝난 시점이었다.
프론트엔드 팀원과 연동을 위해, 그리고 새로운 팀원이 합류하거나 다른 기능을 개발해야 할 상황을 대비해 같은 데이터를 모두가 볼 수 있게 해야 했다.
그런데 문득 이런 질문이 들었다.
"지금 내가 쓰고 있는 이 MySQL DB, 다른 팀원들은 어떻게 써?"
이 질문에 답하기 위해, 나는 덤프 파일이라는 개념을 알게 되었고 직접 생성하고, 문서화하며 팀원들과 공유하는 과정을 진행하게 되었다.
🔧 덤프 파일을 만들게 된 배경
처음에는 단순히 .sql 파일 하나만 있으면 되는 줄 알았다.
하지만 실제로는 다음과 같은 일들이 필요했다:
- Docker 컨테이너로 돌아가는 MySQL에서 데이터를 추출
- bees_db라는 DB에 있는 모든 테이블, 구조, 샘플 데이터 포함
- GitHub에 올려서 모든 팀원이 동일하게 복구 가능하도록 설정
- 그 이후 사용할 수 있도록 README.md에 상세히 매뉴얼화
이 모든 작업을 처음부터 직접 했다는 점에서, DB 관리의 중요성을 다시금 느끼게 되었다.
📦 덤프 파일 생성 방법
내가 작성한 DB 구조를 bees_dump.sql로 저장하기 위해 아래 명령어를 사용했다.
docker exec django-mysql-db /usr/bin/mysqldump -u root --password=1234 bees_db > bees_dump.sql
django-mysql-db는 Docker로 띄운 MySQL 컨테이너 이름이고, 1234는 root 비밀번호.
결과로 backend/ 디렉토리에 bees_dump.sql 파일이 생성된다.
생성된 덤프 파일에는 다음 내용이 모두 포함되어 있다:
- 사용자(User), 마이페이지 관련 데이터
- 댓글(Comments), 알림(Notifications)
- 그룹(Group), 그룹멤버, 초대코드(InvitationCode)
- 아직 구현 중인 File, FileVersion 제외
🪄 팀원이 덤프 파일로 DB 복원하는 방법
나는 README.md 파일에 이 내용을 모두 문서화했고, 이 단계를 따라가면 누구나 내 DB를 동일하게 복원할 수 있다.
git clone https://github.com/SiYeon0405/bees.git
cd bees/backend
docker-compose up -d
docker exec -i django-mysql-db mysql -u root -p1234 bees_db < bees_dump.sql
그리고 http://localhost:8000/admin 에 접속하면 Django Admin 페이지에서
샘플 계정으로 로그인해 데이터를 확인할 수 있다.
✍️ 오늘 작업하면서 느낀 점
처음엔 File, FileVersion 모델이 이미 만들어진 줄 알았지만, 실제론 마이그레이션도 되어있지 않았고 모델 코드도 없었다.
이걸 확인하고 직접 구현/마이그레이션을 진행하며 진짜 내가 전체 DB 구조를 책임지고 이해하게 되었다는 느낌이 들었다.
덤프 파일을 저장하고 GitHub에 올린 뒤, 팀원들이 실수 없이 작업할 수 있도록 문서화한 것이
단순한 기술적인 작업을 넘어서 협업의 본질을 지킨 일이라고 느꼈다.
실무에서 이런 작업이 얼마나 중요한지, 오늘 진짜 크게 체감했다.
앞으로의 협업에서도, 이 경험은 내 개발 습관에 큰 기준점이 될 것 같다.
'🗂️ Docverse' 카테고리의 다른 글
🧪 Docverse 기능 테스트 로그: 회원가입 → 로그인 → 마이페이지까지 (0) | 2025.05.25 |
---|---|
마이페이지 구현기 🧑💻 | JWT 기반 사용자 정보 조회 & 수정 (0) | 2025.05.25 |
🔐 비밀번호 보안의 핵심, '솔트(Salt)' 완전 정복 가이드 (2) | 2025.05.20 |
🛠️ 로그인 기능 구현 (JWT 기반) + 멘탈 탈곡기 체험 (0) | 2025.05.17 |
📁 프로젝트 문서 정리하기 – 실무에서 바로 쓰는 정리 루틴 (0) | 2025.05.15 |