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