본문 바로가기

DB설계12

[DB] 과연 3년차 비전공 개발자도 이해할 수 있을까? 인프런 DB 설계 강의 - 9, 10 한 칸에는 한 가지 정보만 1. 한 칸에는 한 가지 정보만 들어가도록 만들어라.데이터베이스 테이블을 설계할 때 ‘한 칸에는 한 가지 정보만 들어가야 한다.’라는 규칙을 지켜야 한다. 이 규칙이 뭔지 알아보기 위해 이 규칙을 안 지킨 사례 먼저 살펴보자. “왜 한 칸에 2가지 이상 정보가 들어가면 안 되는 걸까?”외우지 말고 이해를 해보자. 판매 상품을 조회해서 사용할 때마다 중간에 있는 콤마(,)를 제거하고 배열에 집어넣는 로직을 넣어야 한다. 판매 상품을 삽입할 때든 삭제할 때든 항상 콤마(,)를 신경 써서 작업해야 한다. 그리고 한 칸에 데이터를 여러 개 집어넣다 보면 실수로 데이터를 중복해서 넣어버리기도 한다. 따라서 한 칸에는 한 가지의 정보만 넣으려고 하는 것이다.  2. 한 칸에 2개 이상의 정보가 들어가 있을 땐?한 .. 2025. 1. 5.
[DB] 과연 3년차 비전공 개발자도 이해할 수 있을까? 인프런 DB 설계 강의 - 8. 저장 데이터 파악, 그룹핑 분류 저장할 데이터 파악하기 / 그룹핑해서 분류하기 1. 요구 사항현업에서 아래와 같이 글로만 된 요구 사항만 가지고 DB 설계를 하는 일은 잘 없다. UI(화면) 디자인이 나왔을 때 UI 디자인을 보면서 DB 설계에 들어가는 편이다. 하지만 지금은 연습을 하기 위함이니까 아래 요구사항만 가지고 설계를 해보자. 1)회원가입 기능 -회원가입을 할 때 이메일, 비밀번호, 이름의 정보를 받는다. 2)로그인 기능 -로그인할 때 이메일, 비밀번호를 활용해서 로그인한다. 3)게시글 작성 기능 -로그인한 사용자만 게시글을 작성할 수 있다. -게시글에는 제목과 내용을 작성할 수 있다. 4)게시글 조회 기능 -작성자, 게시글 제목, 게시글 내용, 게시글 작성 시간을 조회할 수 있어야 한다.  2. 저장할 데이터 파악요구사항을.. 2024. 12. 28.
[DB] 과연 3년차 비전공 개발자도 이해할 수 있을까? 인프런 DB 설계 강의 - 7. DB 설계 전체 과정 DB 설계 전체 과정 1. 저장해야 하는 데이터 파악하기데이터베이스를 설계하기 전에 어떤 데이터를 저장해야 하는지 파악해야 한다. 그러려면 대략적인 UI(화면) 디자인이 나와있어야 한다. UI 디자인이 나오기 전이라면 아래와 같은 요구 사항이라도 정리되어 있어야 어떤 데이터를 저장해야 하는지 파악할 수 있다. (요즘에는 아래와 같은 ‘요구사항 정의서’는 작성하지 않는 추세이다.) 2. 그룹핑해서 분류하기저장해야 하는 데이터를 묶어서 그룹핑할 수 있는 상위개념을 찾아야 한다.[예시]아이디, 패스워드, 이름, 이메일 → 사용자 영화 이름, 영화에 출연한 배우, 영화 상영 시간 → 영화 게시글 제목, 게시글 내용, 게시글 생성 시간 → 게시글 3. 6가지 규칙 적용시키면서 테이블 분리해나가기다음 강의에... .. 2024. 12. 27.
[DB] 과연 3년차 비전공 개발자도 이해할 수 있을까? 인프런 DB 설계 강의 - 4. DB 네이밍 규칙 1. 테이블명, 컬럼명을 소문자로 작성테이블명, 컬럼명을 지을 때 소문자와 대문자를 섞어 쓰지 않고, 소문자로만 작성한다. 왜냐하면 MySQL에서는 운영체제에 따라 대소문자를 구분해서 해석하기도 하고, 대소문자를 구분하지 않고 해석하기도 한다. 따라서 운영 체제에 따라 잘못 작동되는 걸 방지하려면 대소문자를 섞어 쓰지 않아야 한다.1) 우리 회사는 테이블명은 소문자, 컬럼명은 대문자로 쓰고 있다. 2. snake_case를 사용테이블명, 컬럼명을 구성할 때 띄어쓰기가 필요한 경우 snake_case를 활용해 구성한다. 위에서 잠깐 언급했듯이 대소문자를 섞어 썼을 때의 단점이 명확하기 때문에 대소문자를 섞어 쓰지 않고 띄어쓰기를 표현할 수 있는 snake_case를 활용할 것을 추천하다.1) 다행히 스네이.. 2024. 12. 26.
[DB] 과연 3년차 비전공 개발자도 이해할 수 있을까? 인프런 DB 설계 강의 - 2&3 RDBMS, PK, FK 1. RDBMS의 기본 구성테이블(Table), 컬럼(Column), 로우(Row)MySQL, MariaDB, PostgreSQL과 같은 데이터베이스를 보고 관계형 데이터베이스(RDBMS)라고 부른다. 관계형 데이터베이스는 여러 테이블로 구성된다. 테이블은 쉽게 얘기해서 표라고 생각하면 된다. 테이블은 **열(컬럼, Column)**과 **행(로우, Row)**로 이루어져 있다. 엑셀에서 표에 데이터를 차곡차곡 정리하듯이, 관계형 데이터베이스에서도 테이블에 데이터를 차곡차곡 저장하게 된다.-인프런 JSCODE님 수업노트에서 - 1) 개발자가 되기 전 직장에서도 행과 열을 구분하는게 매우 힘들었는데, 개발을 하면서 완벽하게 숙지하게 됐다. 군대에서도 '오와 열'을 수없이 외쳤지만 지우고 싶었던 기억이라 그.. 2024. 12. 20.
[DB] 과연 3년차 비전공 개발자도 이해할 수 있을까? 인프런 DB 설계 강의 - 1. DB 모델링 1. 데이터베이스 모델링이란? (Database Modeling) 애플리케이션을 운영하면서 발생하는 데이터를 잘 분류해서 데이터를 저장해놔야 한다. 그래야 나중에 필요한 데이터가 있을 때 쉽게 찾아서 조회할 수 있고, 데이터를 수정 및 삭제하기도 쉬워진다. 데이터를 어떻게 분류해서 저장할지를 설계하는 행위를 보고 데이터베이스 모델링(Database Modeling)이라고 표현한다. 데이터 모델링, 데이터베이스 설계(DB 설계)라고도 부른다.-인프런 JSCODE님 수업자료에서-여기에 더해 내 생각을 적자면,1. 프로젝트의 기획 또는 기능에 대해 기획자의 수준에 가깝게 알고 있어야 한다. 그 프로젝트 혹은 서비스가 누구를 위한, 무엇을 위한, 무엇을 하는 서비스인지 명확히 알고 있어야 정확히 설계할 수 있다.. 2024. 12. 19.