db(8)
-
DB 설계 Q&A
정규화를 하면 성능이 떨어진다던데요 ?✅ 정규화를 하면 성능이 떨어진다던데요 ?특정 회사의 데이터베이스를 까보면 정규화가 안 되어 있는 설계를 종종 만난다. 그래서 DB 설계를 하신 분한테 왜 정규화를 적용시키지 않았냐고 물어보면 대부분 아래와 같이 답변한다.정규화를 지키면 테이블 개수가 많아져서 관리가 불편해요.→ 데이터 중복으로 인해 발생하는 단점들이 훨씬 크고 관리하기가 더 어렵다.정규화로 테이블을 나누면 조회할 때 JOIN을 해야 해서 쿼리가 복잡해져요.→ 이렇게 얘기하는 사람 치고 SQL문 잘 작성하는 사람 못봤다. 자신이 JOIN 문이 어려우니까 쿼리가 복잡하다고 얘기하는 것이다. SQL문에서 JOIN문은 기본적인 문법 중 하나다.JOIN을 많이 하면 할수록 성능이 안 좋아져서 정규화를 안 했..
2025.08.27 -
설계한 모델을 실제 DB에 반영하기
설계한 모델을 실제 DB에는 어떻게 반영하나요?1. SQL문(DDL) 활용하기- 코테로 먼저 연습해보기- 프로그래머스로 연습해보았다.2. DB 관리 툴(MySQL Workbench, DBeaver 등) 활용하기- 지금 내가 연습해야될 부분이다. 2학년 때 배웠고 실습도 해봤지만 다 까먹었다... 전공생 맞냐...3. ORM활용하기- 최근에는 JPA(spring), TypeORM(node), Sequelize (node) 와 같은 라이브러리를 활용해서 데이터베이스를 많이 다룬다. 이 라이브러리를 활용하면 DB에서 테이블을 일일이 만들 필요 없이, 코드 내부에 라이브러리를 활용해 DB에 대한 정보를 입력해서 실행시키면 알아서 테이블을 만들어준다.- 최근에 ORM을 활용해서 데이터베이스 테이블을 만드는 경우가..
2025.08.26 -
[실습] 화면 UI 디자인을 보고 DB 설계해보기
* 이 글은 개발 공부를 위한 블로그글로 지식전달보다는 개발 공부 일지에 초점이 맞춰져 있으니 유의하시길 바랍니다.UI 하나하나보고 데이터 파악하기- 프론테엔드 개발자에게 하나하나 어떤 데이터를 뜻하는 지 물어봐야 함.- 보통 피그마 많이 사용함.- 프론트에서 고정적으로 데이터를 저장할 수도 있고, 자주 바뀌는 데이터라면 백엔드에 데이터를 저장하고 프론트로 가지고 가게 할 수도 있다. 이 부분은 그때그때마다(서비스마다) 다르다.- 프론트와의 소통이 아주 중요해보인다. 자주자주 물어보고 확인하는 과정이 꼭 필요하다.*역정규화개념이 있을 수 있다. 테이블을 나눠주지 않고 데이터를 사용하는 경우인데, 이는 나중에 데이터베이스를 숙달한 후에, 다시 공부하는 것을 추천한다.데이터를 파악하고 나서부터는 6가지 규칙..
2025.08.21 -
[실습] 요구사항을 보고 DB 설계해보기 - JSCODE 커뮤니티
* 이 글은 개발 공부를 위한 블로그글로 지식전달보다는 개발 공부 일지에 초점이 맞춰져 있으니 유의하시길 바랍니다. 이전에 배웠던 것을 적용해보자!✅ 요구 사항회원가입 기능회원가입을 할 때 이메일, 비밀번호, 이름, 나이의 정보를 받는다.로그인 기능로그인할 때 이메일, 비밀번호를 활용해서 로그인한다.게시글 작성 기능로그인한 사용자만 게시글을 작성할 수 있다.게시글에는 제목과 내용을 작성할 수 있고, 해시태그를 달 수 있고, 게시글의 카테고리(정보 게시글, 홍보 게시글 등)를 고를 수 있다.게시글 조회 기능작성자, 게시글 제목, 게시글 내용, 게시글 작성 시간, 좋아요 수, 조회 수를 조회할 수 있어야 한다.해시태그로 게시글 조회 기능특정 해시태그를 가진 모든 게시글을 조회할 수 있어야 한다.좋아요 기능로..
2025.08.21 -
[실습] 요구사항을 보고 DB 설계해보기 - JSCODE 쇼핑몰
* 이 글은 개발 공부를 위한 블로그글로 지식전달보다는 개발 공부 일지에 초점이 맞춰져 있으니 유의하시길 바랍니다.✅ 요구 사항(현업에서는 UI를 보고 요구사항을 파악하는 경우가 많으니, 지금하는 실습은 연습용이라는 것을 기억해두자)회원가입 기능회원가입 시 이메일, 비밀번호, 이름, 주소, 전화번호의 정보를 받는다.로그인 기능로그인할 때 이메일과 비밀번호를 활용해서 로그인한다.상품 등록 기능로그인한 사용자만 상품을 등록할 수 있다.상품에는 상품명, 설명, 가격, 재고량, 카테고리(의류, 신발, 가전제품 등)의 정보가 포함된다.상품 조회 기능상품명, 설명, 가격, 재고량, 등록 시간을 조회할 수 있다.특정 카테고리의 상품만 조회할 수 있다.주문 기능한 번 주문할 때 여러 개의 상품을 주문할 수 있다.각 상..
2025.08.21 -
⭐️복잡한 개념을 몰라도 누구나 따라할 수 있는, 마법의 DB 설계 규칙 5가지⭐️
* 이 글은 개발 공부를 위한 블로그글로 지식전달보다는 개발 공부 일지에 초점이 맞춰져 있으니 유의하시길 바랍니다.[규칙 1] 한 칸에는 한 가지 정보만 들어가도록 만들어라왜 2가지 이상의 정보가 들어가면 안되는 걸까?- ,를 신경써서 작업해야 되기 때문이다.- 한 개의 데이터에 여러가지 데이터가 들어가게 되면 중복이 발생할 수도 있다. 한 칸에 2개 이상의 정보가 들어가있을 때?- 테이블을 분리하면 된다.- 분리해서 한 칸에 한 가지 정보만 들어가야 한다.- 이를 제1정규형이라고 한다. - 특정 테이블에 FK를 도입했을 때 규칙 1 이 안 지켜진다면, 다른 테이블로 FK를 옮겨보자. - 정처기 필기에서는 제 1정규형을 만들기 위해서는 원자성을 제거하라고 했었다. 관점, 서비스에 따라서 한 가지 정보라는..
2025.08.20