From 28904c8c530f74dbc12f4e553c012abdcadf7e3a Mon Sep 17 00:00:00 2001 From: ohju96 Date: Thu, 21 Dec 2023 15:21:55 +0900 Subject: [PATCH] =?UTF-8?q?:memo:=20=EC=B9=B4=ED=85=8C=EA=B3=A0=EB=A6=AC?= =?UTF-8?q?=20=EC=86=8C=EA=B0=9C=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blog/23.12/2023-12-20-01.md | 8 + ...04\353\213\254\353\217\204\353\213\254.md" | 504 ------------------ blog/23.12/img/01.png | Bin 1271039 -> 0 bytes docs/service/introduction.md | 6 + docs/study/introduction.md | 5 + docusaurus.config.ts | 6 +- life/2019-05-28-first-blog.post.md | 12 - ...64\354\202\254\355\232\214\352\263\240.md" | 8 + life/authors.yml | 23 + 9 files changed, 55 insertions(+), 517 deletions(-) create mode 100644 blog/23.12/2023-12-20-01.md delete mode 100644 "blog/23.12/2023-12-20-\353\217\204\353\213\254\353\217\204\353\213\254.md" delete mode 100644 blog/23.12/img/01.png delete mode 100644 life/2019-05-28-first-blog.post.md create mode 100644 "life/2023-12-20-\355\207\264\354\202\254\355\232\214\352\263\240.md" create mode 100644 life/authors.yml diff --git a/blog/23.12/2023-12-20-01.md b/blog/23.12/2023-12-20-01.md new file mode 100644 index 0000000..e55e443 --- /dev/null +++ b/blog/23.12/2023-12-20-01.md @@ -0,0 +1,8 @@ +--- +slug: 나의 첫 번째 개발 글 +title: 나의 첫 번째 개발 글 +authors: me +tags: [개발] +--- +# 나의 첫 번째 개발 글 +준비중.. diff --git "a/blog/23.12/2023-12-20-\353\217\204\353\213\254\353\217\204\353\213\254.md" "b/blog/23.12/2023-12-20-\353\217\204\353\213\254\353\217\204\353\213\254.md" deleted file mode 100644 index 126fb22..0000000 --- "a/blog/23.12/2023-12-20-\353\217\204\353\213\254\353\217\204\353\213\254.md" +++ /dev/null @@ -1,504 +0,0 @@ ---- -slug: 도달도달 프로젝트 데이터베이스만 참여하기 -title: 도달도달 프로젝트 데이터베이스만 참여하기 -authors: me -tags: [도달도달, 데이터베이스] ---- -## 도달도달 -### 데이터베이스만 참여하게 된 이야기 -간단하게 정의하자면 도달도달은 1 : 1 목표 달성 챌린지이다. 내가 프로젝트에 참여한 것은 아니고 어쩌다 보니 데이터베이스 일부분만 간접적으로 참여하게 되었다. ‘숨겨진 멤버’ 이런 느낌이다. - -![](./img/01.png) -형욱님이 팀원 중 백엔드 하시는 분이 설계해온 테이블이라고 봐달라고 했다. - -“와우” - -보자마자 이건 좀 아닌 것 같다는 생각이 강하게 들었다. 일단 `유저테이블`만 봐도 그렇다. 참여프로젝트, 참여중 프로젝트를 보면 제 1 정규화부터 되어 있지 않다는 것을 알 수 있다. 이런 테이블 구조를 두고만 볼 수는 없다. - -“형욱님, 이거 요구사항 좀 주세요.” - -기가막히게는 아니더라도 적어도 이런 테이블 보다는 조금 더 나은 설계로 프로젝트를 진행할 수 있도록 도와드려야겠다. - -### 요구사항 -“잠깐만요.” - -```text -홈페이지에서는 오늘의 도달률, 탐사 중인 달(프로젝트 참가중), 탐사 완료(프로젝트 완료), 캐릭터가 나옴. - -오늘의 도달률은 유저테이블의 인증완료와 참여중 데이터를 연산하면 될 것 같고 탐사중은 탐여중프로젝트, -탐사완료는 참여-참여중 일 것 같음. - -챌린지 탭에서는 진행중인 프로젝트들, 신규 프로젝트 만들기 버튼 진행중인 프로젝트는 인증하면 색이 회색으로 바뀌는데 이건 인증하면 데이터가 추가되는 유저테이블의 인증완료 데이터를 참조하면 될 것 같고 -참여중인 프로젝트들은 그냥 데이터 나열하면 될 것 같음. - -신규프로젝트 만들기 페이지는 유저가 정해진 데이터 형식에 데이터를 꽂아넣는거니 값 그대로 테이블에 넣으면 될 것 같음. 유저가 프로젝트 내용을 작성하고, 공유하기를 누른 '순간' 프로젝트 테이블에 데이터가 추가됨. - -활성화 여부가 X이고, 참가자가 프로젝트를 생성한 유저 한 명 뿐인 프로젝트 데이터가 추가 될 것 같음.동시에 유저테이블의 참여 프로젝트, 참여중프로젝트 열에도 프로젝트 아이디가 추가가 됨. - -다만 그 프로젝트 아이디의 활성화 여부는 X이니 챌린지 보관함에 수락대기중으로 뜰 것 같음. -그 링크를 받은 유저가 (로그인하고) 수락을 누르면 프로젝트 참가자 데이터에 유저가 추가되고, 활성화여부가 O가 됨. - -동시에 그 유저의 테이블의 참여 프로젝트, 참여중 프로젝트에 방금 참여한 프로젝트의 ID가 추가될 것 같음. - -프로젝트 자세히 보기(S페이지)에서는 인증 했던 날들이 이미지적으로 구성되고, 인증할 수 있는 기능이 있음. 인증하기 버튼을 누르면 사진을 선택하고, 업로드 하면 프로젝트 인증 테이블에 데이터들이 추가됨. 여기서 상대방 인증 인정은 X로 추가됨. 이렇게 1차 인증이 완료되면, 그 인증 테이블에는 프로젝트 아이디가 포함돼 있을테니 그거 타고 가서 상대방 참가자의 아이디를 알아낸 다음 그 참가자에게 인증요청(인증 테이블의 인증ID을 보냄. - -확인을 누르면 그 인증아이디의 데이터의 상대방 인증 인정(acceptOk)가 O로 바뀌고, 동시에 인증요청을 했던 유저의 인증완료에 데이터(인증아이디)가 들어감. -``` - -형욱님의 ‘잠깐만요’ 다음으로 내가 도달도달 프로젝트의 테이블을 설계하기 위해 얻어야 할 정보 중 하나인 요구사항을 얻을 수 있었다. 어지러운 텍스트 요구사항을 슬쩍 정리해 보자면 다음과 같다. - -그전에 `프로젝트`는 사실 프로젝트가 아니라 `챌린지`로 부른단다. 때문에 `프로젝트 -> 챌린지`로 이름을 변경해서 적어나가보겠다. - -> 유저 부분 -1. 유저는 챌린지를 얼만큼 수행했는지 ‘도달률’을 알 수 있어야 한다. -2. 유저는 진행중인 챌린지를 알 수 있어야 한다. -3. 유저는 완료한 챌린지를 알 수 있어야 한다. -4. 유저는 캐릭터를 가지고 있을 수 있다. - -> 챌린지 부분 -5. 챌린지 탭에서 진행중인 챌린지를 확인할 수 있어야 한다. -6. 챌린지 탭에서 신규 챌린지를 생성할 수 있어야 한다. -7. 챌린지를 생성하고 초대를 공유할 수 있다. (참여를 위한 공유이다.) -8. 챌린지 초대는 유저가 로그인하고 수락 또는 거절을 할 수 있다. -9. 챌린지 수락을 하면 참가자 데이터에 유저가 추가되어야 한다. - -> 인증 부분 -10. 진행중인 챌린지에 대해서 수행했다는 인증을 할 수 있다. -11. 챌린지 인증은 인증 사진을 저장할 수 있어야 한다. -12. 챌린지 인증에 대해서 상대방이 확인을 해 줘야 인증 성공 및 실패를 결정해 준다. -13. 실패 이후 재인증 요청을 보낼 수 있다. - -조금 정리하고 보니까 어떻게 변경해야 할 지 좀 더 뚜렷하게 알 수 있어진 것 같다. 일단 유저 테이블부터 만들어 봐야겠다. - -> 1. 요구 사항 분석 -> 2. 개념적 설계 -> 3. 논리적 설계 -> 4. 물리적 설계 - -원래라면 이런 과정을 거쳐서 구현을 할테지만 도달도달프로젝트는 마감은 거의 7일 밖에 남지 않았고 데이터베이스 구현에 많은 시간을 쏟을 수 없다 하여 간단하게 진행하기로 했다. -## 테이블 설계 -데이터 타입이나, 조건, 코멘트 등은 이 설계를 전달 받아 구현할 백엔드 개발자분이 알아보기 쉽게 Spirng에서 많이 사용하는 데이터 타입으로 적어드렸다. *~하지만 알고 보니 노드 개발자였고, 백엔드 개발은 형욱님이 짬처리로 전부 다 개발한 건...~* -### 멤버 : member -| 컬럼명 | 데이터 타입 | 조건 | 코멘트 | -| --- | --- | --- | --- | -| id | Long | PK | 아이디 | -| nickname | String | UQ/NN | 닉네임 | -| provider | Enum | NN | GOOGLE/KAKAO | -| provider_id | String | UQ/NN | 프로바이더에서 제공하는 유저 고유 아이디 | -| character | Enum | NN | provider 참고 | -| is_deleted | boolean | NN | 소프트 딜리트(TRUE=회원탈퇴/FALSE=회원유지) | -| created_at | LocalDateTime | Default | 생성일 | -| updated_at | LocalDateTime | Default-update | 수정일 | -- user보다 member가 조금 더 서비스에 대한 소속감을 나타나는 것 같아서 member로 수정했다. -- 이메일로 로그인하는 과정이 없고 KAKAO를 통한 로그인만 구현한다고 하셨지만 추후에 GOOGLE 로그인 정도는 추가될 것 같다고 하셔서 provider 컬럼을 추가해 두었다. -- 소셜 로그인을 구현하자면 해당 소셜에서 제공하는 유저 고유 아이디가 있다. 그것을 저장하기 위해 provider_id를 추가해 주었다. 중복 방지로 UQ를 추가했다. -- character는 캐릭터(프로필)를 가질 수 있다고 해서 넣었는데 추후에 champion으로 네이밍을 변경해 주었다. - -### 챌린지 : challenge -| 컬럼명 | 데이터 타입 | 조건 | 코멘트 | -|------------|---------------|-----------------|------------------| -| id | Long | PK | 아이디 | -| name | String | NN | 챌린지명 | -| category | Enum | NN | 카테고리(1개 기준) | -| is_deleted | boolean | Default - FALSE | TRUE=삭제/FALSE=존재 | -| expired_at | LocalDateTime | NN | 종료일 | -| started_at | LocalDateTime | NN | 시작일 | -| created_at | LocalDateTime | “ | 생성일 | -| updated_at | LocalDateTime | “ | 수정일 | -- 멤버는 챌린지를 생성할 수 있다. 하지만 1대1 관계로 진행되는 챌린지라 챌린지 테이블 자체에 멤버 데이터를 넣고 참여자를 따로 관리하면 데이터 중복이 있을 것 같았다. -- 챌린지에 참여 유저까지 넣으면 되지 않나? 이런 의문이 있을 수도 있지만 각 유저마다 챌린지 성공 및 실패가 다르게 결정될 수도 있고 언제 어느 유저가 참여했는지 알기 위해서 참여자에 대한 테이블은 분리해 주었다. -- 챌린지는 카테고리를 가지고 있다. 이 카테고리는 운영자가 결정하는 것이고 그렇게 많지 않다고 해서 Enum으로 넣어주었다. -- 챌린지뿐만 아니라 모든 삭제에 대해서는 이력을 관리하기 위해 Soft Delete 방식으로 삭제 체크하는 컬럼을 따로 두어 관리하도록 했다. -- 챌린지는 시작일과 만료일이 있다고 해서 일자를 추가로 넣어주었다. - -### 챌린지 참여자 : challenge_participant -| 컬럼명 | 데이터 타입 | 조건 | 코멘트 | -|--------------|---------------|-----------------|-----------| -| id | Long | PK | 아이디 | -| challenge_id | Long | FK | 참여한 챌린지 | -| member_id | Long | FK | 챌린지 참여 멤버 | -| role | Enum | OWNER or MEMBER | 멤버 권한 | -| status | Enum | 대기/실패/성공 | 챌린지 상태 | -| created_at | LocalDateTime | " | 생성일 | -| updated_at | LocalDateTime | “ | 수정일 | -- ```메모 내용 - 설계 중 간단하게 적어두었던 메모이다. - 프로젝트 생성시 프로젝트 참여자 로우 1개를 OWNER로 무조건 생성해서 프로젝트 생성자를 구분해야 한다. OWNER가 프로젝트를 만들고 링크를 전달하고 해당 링크를 멤버가 수락하면 프로젝트 참여자(MEMBER)로 등록이 가능하다. 대기/실패/성공 - ``` -- 챌린지를 생성할 때 참여자 테이블에 로우를 쌓음으로써 프로젝트 오너와 멤버를 구분할 수 있게 해 주었다. -- 챌린지 참여자는 참여중인 챌린지가 있을 것이고, 참여하는 멤버도 가지고 있다. -- 챌린지 참여자는 챌린지 성공 및 실패를 따로 구분할 수 있어야 해서 status 컬럼을 넣어 주었다. - -### 챌린지 진행일 : challenge_progression -| 컬럼명 | 데이터 타입 | 조건 | 코멘트 | -|-----------------|---------------|----------------|---------------------| -| id | Long | PK | 아이디 | -| challenge_id | Long | FK | 챌린지 아이디 | -| day_of_the_week | Enum | NN | (월~일) | -| is_active | boolean | Default = TRUE | TRUE=활성화/FALSE=비활성화 | -| created_at | LocalDateTime | “ | 생성일 | -| updated_at | LocalDateTime | “ | 수정일 | -- 챌린지는 인증하는 요일이 정해진다. 월요일부터 일요일까지 여러개 선택이 가능하다. -- A챌린지가 월, 목에 진행된다면 진행일 테이블에 2개의 컬럼이 생성되는 것이다. -- 수정을 고려해 활성화 여부를 넣어주었다. - -### 챌린지 인증 : challenge_certification -| 컬럼명 | 데이터 타입 | 조건 | 코멘트 | -|------------------------|---------------|-------------|----------------------| -| id | Long | PK | 아이디 | -| challenge_id | Long | FK | 챌린지 아이디 | -| member_id | Long | FK | 인증한 멤버 아이디 | -| authenticate_image_url | String | NN | 인증 사진 URL(AWS URL 등) | -| is_authenticate | Boolean | Default = N | TRUE=인증됨/FALSE=거절됨 | -| create_at | LocalDateTime | “ | 생성일 | -| updated_at | LocalDateTime | “ | 수정일 | -- ```메모 내용 - 설계 중 간단하게 적어두었던 메모이다. - 여행했어요 -> 0% 초과 (1개 이상) 진행한 챌린지가 있다. - 도달했어요 -> 100% 진행한 챌린지가 있다. - ``` -- 이미지를 통해 인증하게 된다. AWS S3와 같은 곳에 업로드하고 받을 수 있는 이미지 저장 링크를 받는 컬럼을 만들어 주었다. -- 인증은 챌린지와 인증한 멤버를 가지고 있다. -- 인증은 상대방이 승인과 거절을 할 수 있기 때문에 기본을 NULL로 관리하고 인증 되거나 거절되는 것을 T/F로 관리하는 것을 생각했다. -## 공유하기 -### 피드백 -전체적으로 이전보다 괜찮아졌다. 정규화를 통해 중복되는 데이터를 없애기도 했고 여러가지 데이터를 알맞게 쌓을 수 있게 되었다. 생성한 테이블을 뽑아서 형욱님에게 데이터베이스 및 테이블 생성 쿼리와 함께 전달해 드렸다. - -“어제 저녁에 미팅을 했는데요. 아무래도 지금 기능을 전부 구현하기엔 기간 맞추기가 어려울 것 같아서 기획 수정을 했어요.” -“에?.. 뭐죠? 변경 사항 공유해 주세요. 수정해 드릴게요.” - -다음 날 형욱님과 나눈 대화이다. 허허.. 사람 사는거 다 똑같구나. 무한 반복과 무한 수정 굴레가 슬쩍 보였다. -### 수정사항 -수정 사항은 짧은 카톡을 주고 받으며 들었던 것 같다. 회사에서 들었던가. 기억이 잘 안 난다. 수정 사항에 대해서는 긴 텍스트로 된 요구사항을 받은 적이 없어서 기억나는 대로 간단하게 정리해 봤다. - -1. 뱃지에 대한 기능이 생겼다. -2. 뱃지는 간단하게 챌린지 시작한 경우 ‘첫 챌린지 달성’과 같은 소목표이다. -3. 챌린지에 기간을 삭제하고, 인증하기로 한 요일 항목을 삭제한다. 달성 목표 개수를 정하게 되고 무조건 개수를 달성한 사람은 완료가 된다. -4. 참여자 테이블에서 챌린지 상태를 알 수 있어야 할 것 같다. -5. 챌린지 인증 테이블에서 인증 상태 기본이 성공으로 수정되었으면 좋겠다. - -흠.. 당장 떠오르는 건 이렇다. - -일단 뱃지 기능은 간단하게 뱃지만 관리하는 테이블을 생성하고 멤버와 매핑시키는 테이블이 있는 게 깔끔하다. 그래야 중복 데이터가 안 생긴다. 챌린지 기간은 요일 테이블은 드랍해 버리는 게 낫겠다. 컬럼에 시작일, 종료일도 드랍한다. 대신 인증 개수를 체크할 수 있는 컬럼을 추가한다. - -글을 적다 생각났는데 챌린지 상태는 이때 추가가 된 것 같다. 처음엔 아마 멤버 두 사람 다 완료해야 챌린지 성공 이렇게 되었던거 같다. *순서를 헷갈림..* - -챌린지 인증은 T/F 중 기본으로 하는 것 보다 몇 번째 인증 데이터인지 체크하는 컬럼을 인증 테이블에도 넣어주고 T/F 등 없는 경우 로직에서 처리하는 쪽으로 빼서 처리하는 게 더 나을 것 같다는 생각이다. 왜냐하면 T를 기본으로 넣으면 기획이 이렇게 되어야 한다. - -‘상대가 수락을 하지 않으면 자동으로 인증 성공이 된다.’ - -하지만 그건 아니라고 했다. 때문에 T를 기본으로 넣기보다. 체크할 수 있는 컬럼을 하나 더 만들어주고 로직에서 처리하는 게 낫다고 생각했다. 재인증이 있는 이상 그렇게 보는 게 더 편하기도 하고 어느 정도 데이터 중복 아닌 중복이 생기지만 `이론 vs 실용`을 따져보면 이론에 크게 해가 되지 않고 실용에 편의성에 관여함이 크다고 생각하면 실용을 챙기자 주의이다. 반정규화? 조인까진 아닌데 그런 것도 있으니 괜찮다. - -## 재설계 -자, 테이블을 다시 설계해 보자. 이번엔 쿼리까지 싹 정리해서 던진다. -### 멤버 : member -| 컬럼명 | 데이터 타입 | 조건 | 코멘트 | -| --- | --- | --- | --- | -| id | Long | PK | 아이디 | -| nickname | String | UQ/NN | 닉네임 | -| provider | Enum | NN | GOOGLE/KAKAO | -| provider_id | String | UQ/NN | 프로바이더에서 제공하는 유저 고유 아이디 | -| character | Enum | NN | provider 참고 | -| is_deleted | boolean | NN | 소프트 딜리트(TRUE=회원탈퇴/FALSE=회원유지) | -| created_at | LocalDateTime | Default | 생성일 | -| updated_at | LocalDateTime | Default-update | 수정일 | -``` sql -# 멤버 테이블 생성 -# nickname, champion, provider 필요에 따라 수정 후 적용. -CREATE TABLE member ( - id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, nickname VARCHAR(20) NOT NULL UNIQUE, - provider ENUM('GOOGLE', 'KAKAO') NOT NULL, - provider_id VARCHAR(50) NOT NULL UNIQUE, - champion ENUM('CHAMP1', 'CHAMP2', 'CHAMP3', 'CHAMP4', 'CHAMP5', 'CHAMP6') NOT NULL, - is_deleted BOOLEAN DEFAULT FALSE NOT NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL -); -``` - -### 챌린지 : challenge -| 컬럼명 | 데이터 타입 | 조건 | 코멘트 | -|------------------|---------------|----------------------------------------|------------------| -| id | Long | PK | 아이디 | -| name | String | NN | 챌린지명 | -| category | Enum | NN | 카테고리(1개 기준) | -| is_deleted | boolean | Default - FALSE | TRUE=삭제/FALSE=존재 | -| target_count | int | Default -= 10 | 몇 번 하는지 | -| challenge_status | Enum | WAITING / PROGRESS / FAILURE / SUCCESS | 챌린지 상태 | -| created_at | LocalDateTime | “ | 생성일 | -| updated_at | LocalDateTime | “ | 수정일 | -``` sql -# 챌린지 테이블 생성 -# name, category 필요에 따라 수정 후 적용. -CREATE TABLE challenge ( - id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, -name VARCHAR(20) NOT NULL, - category ENUM('CT1', 'CT2', 'CT3', 'CT4', 'CT5', 'CT6') NOT NULL, - is_deleted BOOLEAN DEFAULT FALSE NOT NULL, - target_count INT DEFAULT 10 NOT NULL, - challenge_status ENUM('WAITING', 'PROGRESS', 'FAILURE', 'SUCCESS') DEFAULT 'WAITING' NOT NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL ); -``` - -### 챌린지 참여자 : challenge_participant -| 컬럼명 | 데이터 타입 | 조건 | 코멘트 | -|--------------|---------------|-----------------|-----------| -| id | Long | PK | 아이디 | -| challenge_id | Long | FK | 참여한 챌린지 | -| member_id | Long | FK | 챌린지 참여 멤버 | -| role | Enum | OWNER or MEMBER | 멤버 권한 | -| created_at | LocalDateTime | " | 생성일 | -| updated_at | LocalDateTime | “ | 수정일 | -``` sql -# 챌린지 참여자 테이블 생성 -CREATE TABLE challenge_participant ( - id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, - member_id BIGINT NOT NULL, - challenge_id BIGINT NOT NULL, - role ENUM('OWNER', 'MEMBER') NOT NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL, - FOREIGN KEY (member_id) REFERENCES member(id), - FOREIGN KEY (challenge_id) REFERENCES challenge(id) -); -``` -- 기간이 없어서 실패가 없다. 챌린지 상태 - -### 챌린지 인증 : challenge_certification -| 컬럼명 | 데이터 타입 | 조건 | 코멘트 | -|------------------------|---------------|-------------|----------------------| -| id | Long | PK | 아이디 | -| challenge_id | Long | FK | 챌린지 아이디 | -| member_id | Long | FK | 인증한 멤버 아이디 | -| authenticate_image_url | String | NN | 인증 사진 URL(AWS URL 등) | -| is_authenticate | Boolean | Default = N | TRUE=인증됨/FALSE=거절됨 | -| participation_count | INT | Default = 0 | | -| create_at | LocalDateTime | “ | 생성일 | -| updated_at | LocalDateTime | “ | 수정일 | -``` sql -# 챌린지 인증 테이블 생성 -# authenticate_image_url 필요에 따라 수정 후 적용. -CREATE TABLE challenge_certification ( - id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, - member_id BIGINT NOT NULL, - challenge_id BIGINT NOT NULL, - authenticate_image_url VARCHAR(200) NOT NULL, - is_authenticate BOOLEAN DEFAULT NULL, - participation_count INT DEFAULT 0 NOT NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL, - FOREIGN KEY (member_id) REFERENCES member(id), - FOREIGN KEY (challenge_id) REFERENCES challenge(id) -); -``` - -### 멤버_뱃지 : member_badge -| 컬럼명 | 데이터 타입 | 조건 | 코멘트 | -|------------|---------------|-----|--------| -| id | Long | PK | 아이디 | -| member_id | Long | FK | 멤버 아이디 | -| badge_id | Long | FK | 뱃지 아이디 | -| created_at | LocalDateTime | “ | 생성일 | -| updated_at | LocalDateTime | “ | 수정일 | -``` sql -CREATE TABLE member_badge ( - id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, - member_id BIGINT NOT NULL, - badge_id BIGINT NOT NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL, - FOREIGN KEY (member_id) REFERENCES member(id), - FOREIGN KEY (badge_id) REFERENCES badge(id) -); -``` - -### 뱃지 : badge -| 컬럼명 | 데이터 타입 | 조건 | 코멘트 | -|-----------------|---------------|------|-------------| -| id | Long | PK | 아이디 | -| name | String | NN | 뱃지 이름 | -| summary | String | NN | 간단한 뱃지 설명 | -| description | String | NN | 뱃지 얻는 조건 설명 | -| badge_image_url | String | NN | 뱃지 이미지 | -| seq | Long | ++30 | 시퀸스 | -| created_at | LocalDateTime | “ | 생성일 | -| updated_at | LocalDateTime | “ | 수정일 | -``` sql -CREATE TABLE badge ( - id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, - name VARCHAR(20) NOT NULL UNIQUE, - summary VARCHAR(50) NOT NULL, - description VARCHAR(200) NOT NULL, - badge_image_url VARCHAR(200) NOT NULL, - seq BIGINT NOT NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL, -); - -DELIMITER -// -CREATE TRIGGER set_seq_increment -BEFORE INSERT ON badge -FOR EACH ROW -SET NEW.seq = (SELECT IFNULL(MAX(seq), 0) + 30 FROM badge); -// -DELIMITER ; -``` -- 시퀸스 기준으로 정렬하여 조회하고 30씩 증가한다. -- 중간에 뱃지 순서를 변경하고 싶을 때는 공식에 맞게 수정한다. - -### 알람 : alarm -| 컬럼명 | 데이터 타입 | 조건 | 코멘트 | -|----------------------------|---------------|-----------|---------------------------------------------------------| -| id | Long | PK | 아이디 | -| member_id | Long | FK | 받는 멤버 | -| challenge_certification_id | Long | FK | 요청 인증 | -| alarm_type | Enum | NA | 알람내용(인증요청/재인증요청/인증성공)’REQUEST’, ‘RE-REQUEST’, ‘SUCCESS’ | -| is_read | boolean | Default=F | 읽었나? 읽었으면 트루 | -| created_at | LocalDateTime | “ | 생성일 | -| updated_at | LocalDateTime | “ | 수정일 | -```sql -CREATE TABLE alarm ( - id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, - member_id BIGINT NOT NULL, - challenge_certification_id BIGINT NOT NULL, - alarm_type ENUM('REQUEST', 'RE-REQUEST', 'SUCCESS') NOT NULL, - is_read boolean DEFAULT FALSE NOT NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL, - FOREIGN KEY (member_id) REFERENCES member(id), - FOREIGN KEY (challenge_certification_id) REFERENCES challenge_certification(id), -); -``` -## 몇 가지 쿼리도 추가해 보자 -위 설계로 픽스되었다. 처음 설계보다 조금 더 다듬어지고 날린 부분도 있다. 애초에 프로젝트가 크지 않아서 어렵지 않다. - -“쿼리 좀 도와주세요. 백엔드 개발자가 이상해요.” - -아.. 형욱님. 프론트 개발자인데 팀원 중 하나 있는 백엔드 개발자가 전혀 참여를 안 한다고 고생하십니다. 도와드리죠. 어제는 보니까 클라우드 배포도 혼자 하시고 계시고, 도메인도 혼자 구매하고 계시고 아주 참된 프로젝트 살림꾼이십니다. - -“필요한거 정리해서 알려주세요.” - -### 1. 유저 캐릭터 이미지 URL -- `m.id` 부분에 값 할당 필요 -```sql -SELECT id, champion -FROM member -WHERE id = 1; -``` - -### 2. 완주한 챌린지 개수 -> 본인 기준 100% 달성한 챌린지 개수 -- `m.id` 부분에 값 할당 필요 -```sql -SELECT COUNT(m.id) -FROM challenge cT - LEFT JOIN challenge_participant cpT ON cT.id = cpT.challenge_id - LEFT JOIN member m ON cpT.member_id = m.id - LEFT JOIN challenge_certification ccT ON cT.id = ccT.challenge_id -WHERE m.id = 1 AND cT.challenge_status = 'SUCCESS' AND ccT.participation_count = cT.target_count; -``` - -### 3. 시작한 챌린지 개수 -> 본인 + 팀원이 1회 이상 참여한 챌린지 개수 -- `m.id` 부분에 값 할당 필요 -```sql -SELECT count(m.id) -FROM challenge cT -RIGHT JOIN (SELECT cT.id - FROM challenge cT - LEFT JOIN challenge_certification ccT ON cT.id = ccT.challenge_id - LEFT JOIN member m ON ccT.member_id = m.id - WHERE m.id = 1 AND ccT.participation_count = 1 AND ccT.is_authenticate = 1 - GROUP BY cT.id) myctT ON cT.id = myctT.id -LEFT JOIN challenge_certification ccT ON cT.id = ccT.challenge_id -LEFT JOIN member m ON ccT.member_id = m.id -WHERE m.id != 1 AND ccT.participation_count = 1 AND ccT.is_authenticate = 1; -``` - -### 4. 본인이 참여한 챌린지 아이디 리스트 가져오기 -- `m.id` 부분에 값 할당 필요 -```sql -SELECT cT.id '챌린지 아이디' -FROM challenge cT -LEFT JOIN challenge_certification ccT ON cT.id = ccT.challenge_id -LEFT JOIN member m ON ccT.member_id = m.id -WHERE m.id = 1 AND ccT.participation_count = 1 AND ccT.is_authenticate = 1 -GROUP BY cT.id; -``` - -### 5. 챌린지 같이한 멤버 수 -> 본인 + 팀원이 1회 이상 참여한 챌린지 개수 (멤버 중복 제거) -- `m.id` 부분에 값 할당 필요 -```sql -SELECT count(distinct m.id) '챌린지 같이한 멤버 수', count(m.id) '시작한 챌린지 수' -FROM challenge cT - RIGHT JOIN (SELECT cT.id - FROM challenge cT - LEFT JOIN challenge_certification ccT ON cT.id = ccT.challenge_id - LEFT JOIN member m ON ccT.member_id = m.id - WHERE m.id = 1 AND ccT.participation_count = 1 AND ccT.is_authenticate = 1 - GROUP BY cT.id) myctT ON cT.id = myctT.id - LEFT JOIN challenge_certification ccT ON cT.id = ccT.challenge_id - LEFT JOIN member m ON ccT.member_id = m.id -WHERE m.id != 1 AND ccT.participation_count = 1 AND ccT.is_authenticate = 1; -``` - -### 6. `1번 쿼리` + `3번 쿼리` + `5번 쿼리` -- `m.id` 부분에 값 할당 필요 -```sql -WITH myTBL AS ( - SELECT - cT.id, - COUNT(DISTINCT m.id) AS mcount, - COUNT(m.id) AS ccount - FROM - challenge cT - RIGHT JOIN ( - SELECT - cT.id - FROM - challenge cT - LEFT JOIN challenge_certification ccT ON cT.id = ccT.challenge_id - LEFT JOIN member m ON ccT.member_id = m.id - WHERE - m.id = 1 AND ccT.participation_count = 1 AND ccT.is_authenticate = 1 - GROUP BY - cT.id - ) myctT ON cT.id = myctT.id - LEFT JOIN challenge_certification ccT ON cT.id = ccT.challenge_id - LEFT JOIN member m ON ccT.member_id = m.id - WHERE - m.id != 1 AND ccT.participation_count = 1 AND ccT.is_authenticate = 1 - GROUP BY - cT.id -) -SELECT - m.champion, - myTBL.mcount, - myTBL.ccount -FROM - member m - LEFT JOIN myTBL ON m.id = myTBL.id -WHERE - m.id = 1; -``` - -### 7. 탐사 필요 개수 : 총 진행중인 챌린지 개수 -```sql -SELECT COUNT(DISTINCT cT.id) -FROM challenge cT - LEFT JOIN challenge_certification ccT ON cT.id = ccT.challenge_id - LEFT JOIN member m ON ccT.member_id = m.id -WHERE m.id = 1 AND cT.challenge_status = 'PROGRESS'; -``` - -### 8. 탐사 완료 개수 : 오늘 인증 완료한 챌린지 개수 -```sql -SELECT COUNT(DISTINCT cT.id) -FROM challenge cT - LEFT JOIN challenge_certification ccT ON cT.id = ccT.challenge_id - LEFT JOIN member m ON ccT.member_id = m.id -WHERE m.id = 1 AND *DATE*(ccT.created_at) = *CURDATE*(); -``` - -## 마무리 - -나름 재미있었다. 회사에서 맨날 하는 데이터베이스 설계를 새로운 도메인(?) 요구사항을 받아서 같이 이야기 하면서 완성해 나가는 재미가 확실히 있다. 완성한 프로젝트는 [도달도달 - 1:1 매칭 목표 달성 서비스](https://dodaldodal-frontend.vercel.app/login) 에서 확인할 수 있다. - diff --git a/blog/23.12/img/01.png b/blog/23.12/img/01.png deleted file mode 100644 index d9af69d4fb6598e4c543194d54021503d72698c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1271039 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