이제 현업과 최대한 비슷한 상황처럼 완성된 UI 디자인을 보고 DB 설계를 할 예정이다. 그리고 실제 현업 개발자들이 어떤 방식으로 어떤 생각을 하면서 DB 설계를 하는 지 차근차근 보여줄 예정이다. 이 실습을 통해서 DB 설계를 어떻게 해야 하는 지
✅ N:M 관계의 특징 중간 테이블이 있어야 한다. 중간 테이블에 두 테이블의 FK가 들어가야 한다. N:M 관계에서 중간 테이블을 추가해 1:N 관계로 바꿔 표현하게 된다. 예시 1) [Before] students (학생) [After] stude
✅ 심화) ‘한 가지 정보’라는 게 관점에 따라 달라질 수 있다. users (사용자) users (사용자) 누군가는 박재성이라는 전체 이름이 하나의 정보라고 생각할 수 있지만, 누군가는 박이 하나의 정보고, 재성이 하나의 정보라고 판단할 수도 있다.
✅ DB 설계 전체 과정 많은 책들에서는 데이터베이스 모델링 방법이 아주 복잡하게 설명되어 있고, 정규화의 개념 조차 이해하기가 너무 어렵다. 쉽게 데이터베이스 모델링 하는 방법을 알려줄 것이다. 이 방식대로 모델링을 하다보면 자연스럽게 정규화 과정을
✅ 숨어있는 중복을 찾아라. 숨어있는 중복이 무슨 뜻인지 설명하기 위해 예시를 바로 보자. posts (게시글) users (사용자) likes (좋아요) 위 테이블의 구성에서는 임의의 데이터를 넣어봐도 중복 데이터가 발생하는 컬럼이 있진 않다. 하지
✅ 요구 사항 현업에서 아래와 같이 글로만 된 요구 사항만 가지고 DB 설계를 하는 일은 잘 없다. UI(화면) 디자인이 나왔을 때 UI 디자인을 보면서 DB 설계에 들어가는 편이다. 하지만 지금은 연습을 하기 위함이니까 아래 요구사항만 가지고 설계를
✅ DB 설계의 핵심은 ‘중복 없애기’이다. 데이터베이스를 설계할 때 딱 1가지만 기억하면 된다. 중복 없애기 이게 무슨 말인지 아래 예시로 알아보자. users (사용자) posts(게시글) 위의 표와 같이 게시글 데이터가 DB에 많이 쌓여있다고 가
✅ 예시 1 사용자 (users), 이메일 (emails) (한 명의 사용자가 회원가입 할 때 여러 개의 이메일을 입력할 수 있는 서비스라고 가정하자.) 사용자가 이메일을 소유한다. 이메일은 사용자에 의해 소유된다. 한 명의 사용자는 여러 개의 이메일
✅ 한 칸에는 한 가지 정보만 들어가도록 만들어라. 데이터베이스 테이블을 설계할 때 ‘한 칸에는 한 가지 정보만 들어가야 한다.’라는 규칙을 지켜야 한다. 이 규칙이 뭔지 알아보기 위해 이 규칙을 안 지킨 사례 먼저 살펴보자. [사례 1] users
DB 설계를 엑셀(Excel)을 활용해서 진행했었다. 사실 DB 설계를 할 때는 어떤 툴을 쓰던 상관없다. 테이블과 컬럼을 나타낼 수 있는 툴은 어떤 것이든 상관없다. 실제 DB 설계 결과물을 구글링 해보면 아래와 같은 형태의 그림을 많이 볼 수 있다