개발 일기

TIL - 1123 클래스 DB설계 본문

TIL(Today I learned)

TIL - 1123 클래스 DB설계

flow123 2021. 11. 23. 14:28

#어제 DB설계로 머리를 싸매다가, 튜터님의 피드백을 받았다. 

 

프론트 화면에서 고객이 선택지 버튼을 주면 -> flask 서버에서 세 가지 질문에 대한 답을 각각 넘겼었음. 

이때, 동시접속으로 한 간섭 문제가 생김 -> 그래서 JS 형의 List 로 넘겼다 (저장은 하지 않고, 데이터 주고받기만 해둔 상태)  그런데 RDBMS 는 리스트를 값으로 저장하지 못한다. 어떻게 처리해야 할까? 

기존에 우리가 구상했던 방식 이렇게 넣게 되면, 나중에 Korean 만 뽑아보는 것처럼, 데이터를 처리 하기가 어려워진다. 

출처: 팀 ERD Cloud 

그렇기 때문에, 테이블을 분리해야한다. 

카테고리 칼럼, 이모션 칼럼을 따로 만들기. 그리고 서로 다른 DB를 조인하기. 테이블 끼리 조인하는게 되겠지. 

Repository는 main, food db만 만들어도 됨. 

category, emotion 을 조회할 로직이 있다면, 얘는 repo 안파도 됨. 필요할 때 만들기. 

 

#프로젝트 설계 시 controller - domain - dto - repository 의 관계를 어떻게 설정할지. 잘 그려지지가 않았다. 

그래서 이전 강의 프로젝트들을 보면서, 어떻게 서로가 의존하고 있는지 시각화 해보고 있다. 

인텔리제이는 ctrl + shift + r을 누르면 전체검색이 가능하다. Dto 가 어떻게 domain, controller, repository를 여행하는지를 따라가보면, 디자인이 조금 이해가 간다. 

 

스프링 경험이 짧다보니 코드 해석에 어려움이 많다. 큰 맘 먹고 저녁시간에 서점에 가서 스프링 책을 사왔다. 

어제 튜터님이 책 고르는 법을 알려주셨는데, 목차 보고, 직접 가서 골라오기 정말 잘했다. 

구글링하다가 검색의 늪에 빠지는 걸 책이 많이 막아준다.

인강은 분량이 너무 길고, 강의 노트에는 설명이 누락되어서 다시 보기가 부담스러운데. 

개발자님들이 왜 책을 많이 사시는 지 알겠다 ㅎㅎ 목차보고 모르는 것 바로 뒤져볼 수 있어서 넘 기쁘다 ㅜ.ㅜ 

책을 사놓긴 해도 이렇게 제대로 들여다보는 건 처음인데, 새로운 접근법을 시도해서 기쁨! :D

 

 

 

Comments