코딩기록

4일차(목) 업무 + TIL (DDD-도메인 주도 설계) 본문

백엔드

4일차(목) 업무 + TIL (DDD-도메인 주도 설계)

뽀짝코딩 2022. 5. 26. 10:26
728x90

오늘 신사업 DB 관련해서 추가 설명을 들을 예정이다.

DDD를 처음 접해서 굉장히 낯설었는데 하다 보니 훨씬 더 편리하다는 생각이 든다.

예를 들자면,

 

기존 DB설계

User admin post comment
userId: Integer
name: String
email: String
pass: String
adminId: Integer
name: String
pass: String
postId: Integer
title: String
content: String
writer: String
date: Date
postCnt: Integer
postLikes: String
commentId: Integer
content: String
commentDate: Date
commentCnt: Integer
commentLikes: String

이렇게 유저, 관리자, 게시판, 댓글 DB를 따로 분류했었다.

 

DDD 설계

user
( 유저,관리자 통합 )
usermeta board boardPost
userId: Integer
userSlug: String
name: String
email: String
pass: String
? 아직모름 notice: String
faq: String
updateNews: String
feedback: String
postId: Integer
boardSlug: String
title: String
content: String

카테고리로 묶어서 user, board디비를 만들고 세부내용을 boardPost에 저장한다.

이렇게 하면 중복 코드를 줄일 수 있다. 

범용으로 DB를 쓰기에 최적화이고 코드 중복을 줄일 가장 좋은 방법이 DDD 도메인 주도 설계이다.

 

여기서 Slug, meta라는 개념이 나온다. 

"meta"는 user에 사용자 기본 정보를 저장하고 그 외 사용자 추가 정보를 저장하는 것이다. 나중에 자세히 쓰겠다.

"Slug"는 일반적으로 이미 얻은 데이터를 사용하여 유효한 URL을 생성하는 방법이다. 예를 들어, Slug는 기사 제목을 사용하여 URL을 생성한다. 수동으로 설정하는 대신 제목 (혹은 다른 데이터)가 주어지면 함수를 통해 슬러그를 생성하는 게 좋다.

DB에 DB고유 ID처럼 slug를 사용한다. ( ex- 상품, 멤버십, 게시글, 테이지, 게시판 카테고리 등 ) 

 

 

 

오늘의 할 일

1. 유저 플로우 확인하기( 피그마 )

역시 보다보니 점점 파악이 되고 머리속에 그림이 또렷해진다.

 

2. DB 추가 및 리스트 상세 항목 적기

*생각보다 많다. usermeta, userLog디비 새로운 개념을 배우면서 만드는 중이라서 그렇다.

1. usermeta: 기존 user DB와 다르게 사용자를 1.user(기본정보), 2.usermeta(추가정보)  두가지 경우로 나눠서 저장한다.

2. userLog: 사용자로그 데이터로 니즈를 파악해 서비스 개선을 위해 사용한다.

    크게 1. 서비스 로그 ( 서비스가 운영되기 위해 필요한 데이터 ), 

           2. 유저 행동 로그 ( 앱이나 웹에서 유저가 어떤 행동을 하는지를 나타내는 데이터 ) 

두가지로 나뉜다.

* 내일 마저하기

3. DB 저장 정보, API 분류해서 정리하기

2번 에서 시간을 다썼다. 내일 예정

 

4. 작성 확인받고 ERD설계( 관계 설정 신경 쓸 것)

2번 에서 시간을 다썼다. 내일 예정

 

 

오늘 한 일

1. 유저 플로우 확인하기( 피그마 )

2. DB 추가 및 리스트 상세 항목 적기

 

 

오늘 배운 것

사용자 로그- 마케팅 분석

 

https://techblog.woowahan.com/2536/

**추천!! ( 개념과 용어설명, 방식등 자세히 적혀있음 )

https://zzsza.github.io/data/2021/06/13/data-event-log-definition/

 

 

 

오늘 미처리 및 추후 처리 업무

3. DB 저장 정보, API 분류해서 정리하기

4. 작성 확인받고 ERD설계( 관계 설정 신경 쓸 것)

 

 

 

참고

*DDD 설명 - 나

* slug

https://iamjjanga.tistory.com/39

 

 

반응형
Comments