refactoring database

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    refactoring database - Presentation Transcript

    1. UnitTest++ 을 이용한 리팩토링 데이터베이스 남기룡 (birdkr@gmail.com)
    2. 목차
      • 왜 리팩토링 데이터베이스 ?
      • 데이터베이스 리팩토링
      • 데이터베이스 리팩토링 프로세스
      • 단위 테스트 작성하기
    3. 왜 리팩토링 데이터베이스 ?
    4. 전통적인 데이터베이스
      • 지속적인 변화가 허용되지 않는다 .
      • 완제품의 변경이 드물다 .
      • 잘못된 설계에 대한 이슈를 고치기 두렵다 .
      • 마이그레이션은 거의 프로젝트 수준
      • 변경 관리가 없다 .
      • 데이터베이스 마이그레이션 테스트가 없다 .
    5. 진화적인 데이터베이스
      • 천천히 안전하게 데이터베이스를 변경한다 .
      • 변경이 관리된다 .
      • 기획 , 기능은 계속해서 변경되고 추가된다 .
      • 자동화된 테스트 만들기가 쉽다 .
      • 기능별로 개발자마다 지식이 쌓인다 .
      • 팀 상호작용의 중요성 인식
      • DBA = Role != Person
    6. DBA 와 협력하기
      • DBA 가 어플리케이션을 이해할 수 있도록 돕는다 .
      • DBA 가 스크립트 바꾸는 것을 도와줄 것이다 .
      • 당신이 데이터베이스 테스트 작성하는 것을 도와줄 것이다 .
      • 데이터의 마이그레이션 코드처럼 위험한 것은 DBA 가 대신 만들어 줄 것이다 .
      • SQL 튜닝등에 대한 지식을 얻을 수 있다 .
    7. Everyone gets a Database
      • 데이터베이스 인스턴스 = 어플리케이션 인스턴스
      • 개발자는 다른 개발자들과 독립적으로 작업할 수 있다 .
      • 데이터베이스 건드리는 것에 자유를 얻는다 .
      • 데이터베이스 작업에 CI 툴을 사용한다 .
      • 데이터베이스는 단지 스키마일 수 있다 .
    8. Why
    9. Liberation
    10. 진화적 데이터베이스 개발기술
      • 데이터베이스 리팩토링
      • 진화적 데이터 모델링
      • 데이터베이스 회귀 테스트
      • 데이터베이스 형상 관리
      • 개발자 샌드박스
    11. 진화적 데이터베이스 개발기술
      • 데이터베이스 리팩토링
      • 진화적 데이터 모델링
      • 데이터베이스 회귀 테스트
      • 데이터베이스 형상 관리
      • 개발자 샌드박스
    12. 데이터베이스 리팩토링
    13. 데이터베이스 리팩토링이란 ?
    14. 데이터베이스 냄새
      • 다목적 컬럼
      • 다목적 테이블
      • 여분의 데이터
      • 너무 많은 컬럼을 가진 테이블
      • 너무 많은 행을 가진 테이블
      • 스마트 컬럼
      • 변경에 대한 두려움
    15. 데이터베이스 리팩토링 프로세스
    16.  
    17. 스키마 (Move Column 예제 )
    18. 테스트 , 테스트
      • 리팩토링 전 , 후는 물론 리팩토링 도중에도 계속 테스트를 한다 .
      • 종류
        • 데이터베이스 스키마 테스트
        • 애플리케이션이 데이터베이스 스키마를 사용하는 방법을 테스트
        • 데이터 마이그레이션 검증
        • 외부 프로그램 코드 테스트
    19. 테스트 , 테스트
    20. 스키마 변경
    21. 데이터 마이그레이션
    22. 외부 액세스 프로그램 수정
    23. 정리
      • 작업한 내용 버전 관리
      • 리팩토링이 끝났음을 알린다 .
    24. 단위 테스트 작성하기
    25. 샌드 박스 준비
    26. SeedData
    27. 스키마 테스트
    28. 테스트 코드 샘플
    29. 테스트 항목
      • Find All - 예상한 만큼의 row 개수
      • Find one - 가져온 레코드의 모든 값 ( 컬럼 )
      • Insert multiple records – 추가된 레코드
      • Insert duplicates – 제약 사항 어기는 것 시도
      • Delete, Delete multiple – 진짜로 제거되었는지 확인
      • Update – 수정된 내용 확인
      • Violate constraints – 모든 가능한 가상 제약들을 테스트했는지 확인
      • Optimistic locking - 낙관적인 락킹 예외가 제대로 동작했는지 확인
    30. 자동화
    31. 참고
      • Refactoring Databases : Evolutionary Database Design – Pramod Sadalage, ThoughtWorks Inc.
    32. 질문 / 답변

    + birdkrbirdkr, 2 years ago

    custom

    783 views, 0 favs, 5 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 783
      • 593 on SlideShare
      • 190 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 0
    Most viewed embeds
    • 173 views on http://mypage.sarang.net
    • 12 views on http://www.hanrss.com
    • 3 views on http://fs
    • 1 views on http://neochen.tistory.com
    • 1 views on file://

    more

    All embeds
    • 173 views on http://mypage.sarang.net
    • 12 views on http://www.hanrss.com
    • 3 views on http://fs
    • 1 views on http://neochen.tistory.com
    • 1 views on file://

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories