모델링 2

도메인과 유스케이스, 유지보수하기 쉽고 유연한 객체지향 시스템

* 이 글은 책을 읽고 주관적인 생각과 함께 요약 정리한 글입니다. 제목 : 객체지향의 사실과 오해 저자 : 조영호 범위 : 06 객체지도 요약 정리 설계 객체지향은 자주 변경되는 '기능'이 아니라 안정적인 '구조'를 기반으로 시스템을 구조화한다. (구조 중심 설계) 기능 측면 설계는 사용자를 위해 무엇을 할 수 있는지에 초점을 맞춘다. (충분조건) 구조 측면 설계는 서비스의 형태가 어떠해야 하는지에 초점을 맞춘다. (필요조건) 기능과 구조는 조화를 이루어야 한다. 소프트웨어는 요구사항이 항상 변경된다. 이 '변경' 때문에 설계가 필요한 것이다. 예측 불가능한 변경에 유연하게 대처할 수 있는 안정적인 구조를 설계해야한다. 좋은 설계는 나중에라도 변경할 수 있는 여지를 남겨 놓는 설계다. 즉, 설계의 목표..

#2_모델링 이렇게 해도 되나?

혼돈의 모델링 기존 커머스는 유저가 있고, 카테고리가 있고, 상품이 있고, 장바구니, 주문, 등등으로 나누면 되었는데 매칭 서비스의 경우 기존 커머스 DB 구조와는 맞지 않았다.(테이블은 적지만 더 복잡해진 느낌?) 가장 큰 차이점은 두 가지였다. 하나는 유저와 관련된 정보가 매우 많다는 것이고(사용자의 취향을 모두 저장하므로) 다른 하나는 유저가 곧 상품이라는 것이다. (사람을 '상품'취급하는 것이 이상해 보일 수도 있지만 사람과 사람을 이어주는 것이므로 그런 의미로 서로 받아주시면 감사하겠다) 우리는 우선 유저의 회원가입정보와 함께 가입 시 유저가 작성한 취향 정보도 모두 하나의 테이블에 넣었다.(이때의 결정이 이후 디비를 갈아엎는 원흉이 되었다.) 그리고 중복선택이 가능한 항목들은 모두 다대다 테이..