Difference between r1.1 and the current
@@ -1 +1,57 @@
[[TableOfContents]]
= OMS =
* [정우현] 학우님 : 데이터베이스 설계를 고치는 법
* 다음 주자: [] 학우님
== 내용 ==
=== 데이터베이스 설계란? ===
* 어떤 데이터를 어떤 형식으로 저장할지, 데이터 사이의 관계를 어떻게 표현할지 설계하는 것
=== 설계를 잘해야하는 이유 ===
* 되돌이키기 어려움
* 원하는 데이터를 빠르게 찾기 위해
=== 데이터베이스 설계를 고치는 법 ===
* 배포전
* 수정하는게 당연
* DDL, Migration 파일 기록
* 어떻게 설계를 변경했는지 기록 (코드 or GitHub commit)
* 배포 직후, 재배포 및 수정가능시기
* 해당 기능을 숨길 수 있으면 잠시 서비스를 숨겨두고 수정
* 상용화된지 오래됨 (무중단)
* 수정하는데 며칠, 몇주가 걸릴 수도 있음
* copy본에 기존, 새로운 데이터 옮겨줌
* 수정과 삭제에 대한 로그를 읽어서 copy에 적용
* 복사, 수정, 삭제 실시간으로 구현
* rename, 서비스가 바라보는 테이블 이동
=== 결론 ===
* 한 번 설계를 잘못하면 고치기 어려움
* 고칠 수 있을 때 빠르게 고치자
= Q&A =
Q. 숨길 수 있는 단계에서 왜 상용화 도중에 수정하는 방법을 안쓰나요?
A. 많은 사람이 쓰고 있는 기능일 경우 숨길 수 없음
Q. 새로운 column 추가가 어렵나요?
A. MySql 기준으로 새로운 column 추가 기능을 지원함
Q. migration 고려해주나요?
A. 고려해줘서 설계해야함
= 스터디 진행상황 보고 =
[안자구뭐해]
[데중어설]
[발불]
[너두노드]
[코하자]
[DevOps]
= 참여자 =
[임지민], [최민준], [정우현], [이민욱], [김도엽], [김혜성], [김동영]
= 댓글 =
1.1.3. 데이터베이스 설계를 고치는 법 ¶
- 배포전
- 수정하는게 당연
- DDL, Migration 파일 기록
- 어떻게 설계를 변경했는지 기록 (코드 or GitHub commit)
- 수정하는게 당연
- 배포 직후, 재배포 및 수정가능시기
- 해당 기능을 숨길 수 있으면 잠시 서비스를 숨겨두고 수정
- 해당 기능을 숨길 수 있으면 잠시 서비스를 숨겨두고 수정
- 상용화된지 오래됨 (무중단)
- 수정하는데 며칠, 몇주가 걸릴 수도 있음
- copy본에 기존, 새로운 데이터 옮겨줌
- 수정과 삭제에 대한 로그를 읽어서 copy에 적용
- 복사, 수정, 삭제 실시간으로 구현
- rename, 서비스가 바라보는 테이블 이동
- 수정하는데 며칠, 몇주가 걸릴 수도 있음