본문 바로가기
Final Project

Devops Day 67 (6.12) Final Project_Day 1

by Jackykim 2023. 6. 12.

프로젝트 개요

Achievement Goals

- 실무와 가까운 클라우드 아키텍처를 구현할 수 있다. (팀)

- 실무의 커뮤니케이션과 흡사하게 롤플레잉을 통해 의뢰인으로부터 자세한 요구사항을 이끌어낼 수 있다. (팀/개인)

- 낯선 기술스택과 요구사항에 대해서 스스로 학습하여 적용할 수 있다. (개인)

- 클라우드 아키텍처에 대한 그림을 그리고 설명할 수 있다. (팀)

- 구현의 디테일에 대한 질문을 받을 때 답변할 수 있다. (개인)

 

칸반과 WIP
작업 항목 표현을 위해 카드들을 사용하고 각 프로세스 단계를 표현하기 위해 열을 사용하여 시각적으로 다양한 단계의 프로세스의 일을 시각적으로 표현하는 방식입니다. 카드는 왼쪽에서 오른쪽으로 움직여 진행 상황을 표현하고 작업을 수행하는 팀의 조율을 돕습니다. 스크럼 팀에서 현재 팀의 업무 양과 진행 정도, 목표 달성을 파악하기 위해 칸반 보드를 많이 사용합니다.

 

WIP(Work In Progress)

WIP란 한 번에 팀에서 수행하는 업무의 개수의 제한을 두는 것으로 제품 팀이 지속적으로 제품을 만들기 위해 활용하는 개념입니다. 칸반 보드로 태스크를 관리하면서 한 번에 동시에 진행되는 업무의 개수를 제한을 두면서 왼쪽에서 오른쪽으로 움직이는 업무의 양을 조절합니다.

 

백로그와 우선순위 선정

백로그는 이해관계자로 부터 요구받은 유저 스토리의 목록을 의미합니다.

 

오전 칸반 내용:
1. 팀 규칙 정하기
1.1 [Commit Message Convention] 영문으로 작성

FEAT : 새로운 기능에 대한 커밋

FIX : 버그 수정에 대한 커밋

BUILD : 빌드 관련 파일 수정에 대한 커밋

CHORE : 그 외 자잘한 수정에 대한 커밋

CI : CI관련 설정 수정에 대한 커밋

DOCS : 문서 수정에 대한 커밋

STYLE : 코드 스타일 혹은 포맷 등에 관한 커밋

REFACTOR : 코드 리팩토링에 대한 커밋

TEST : 테스트 코드 수정에 대한 커밋

1.2 각 Branch 담당자가 PR 보내면 merge 하는 방식 (Fork는 아님)

1.3 일일 업무 보고의 내용은 다음과 같습니다.

오늘의 주요 업무, 쉬는 시간

1.4 일정 불참 시 최소 3일 전 공유

2. 시나리오 선정 논의 (시나리오 1~3 선택) + 시나리오 3 선택시 어떤 주제로 할지 논의
시나리오 3 아이디어들 :
- 어린이집 입소대기 시스템을 구현하는건 어떨까요? 위에서 말씀하신 대규모 트래픽도 연관지을 수 있을 것으로 판단됩니다 -> 선택
-
티켓팅 시스템 구현으로 대규모 트래픽 관리
- 식당에서 사용할 테이블 & 손님 예약 관리 시스템도 한번 생각해 보았습니다.

- 개인용 업무 관리자 (Personal task manager) : 사용자가 업무를 조직하고 진행 상황을 추적할 수 있는 애플리케이션 

3. 어린이집 입소 대기 시스템 논의
1)
학부모가 가입을 한다
2)
학부모는 학부모 인터페이스로 로그인을 한다
3)
학부모가 아동 정보를 입력한다
4)
학부모가 어린이집 입소 신청 시스템에 등록한다. (입소 대기)
5)
학부모는 어린이집 입소 신청 정보를 확인할 있다. (신청 조희)
6)
등록된 입소 신청 정보는 어린이집 인터페이스로 전달한다
7)
어린이집은 어린이집 인터페이스에 로그인한다.
8)
어린이집은 신청 정보 입소 시킬 아동을 등록한다. (입소 확정)
9)
입소 아동의 학부모에게 입소 정보에 대한 메시지를 전송합니다.

필요 요소
-
학부모 입력 인터페이스
-
어린이집 입소 신청 시스템
-
어린이집 입력 인터페이스
-
아동 입소 확정 시스템

데이터베이스
-
학부모 정보
-
아동 정보
- 어린이집 정보
- 어린이집 신청 정보
- 어린이집 확정 아동 정보  

ERD 초안

ERD 간단한 설명

아동과 사용자:

아동 테이블은 사용자 테이블을 참조하는 외래 키인 user_id를 가지고 있습니다. 이 관계는 아동이 부모 또는 사용자와 관련되어 있는 것을 나타냅니다. 아동과 사용자 간의 연결은 필요할 때 아동의 부모 또는 보호자에 대한 정보를 검색할 수 있게 합니다.


아동과 어린이집:

아동 테이블은 외래 키로 사용되는 기본 키인 child_id를 어린이집 아동 테이블에서 사용합니다.

이 관계는 여러 어린이집 아동이 단일 아동과 연관되어 있을 수 있도록 합니다. 이는 아동이 여러 어린이집에 등록되거나 어린이집 입소를 위한 여러 신청을 할 수 있음을 나타냅니다.


사용자와 어린이집 신청:

사용자 테이블은 어린이집 신청 테이블에서 외래 키로 사용되는 기본 키인 user_id를 가지고 있습니다. 이 관계는 사용자(부모 또는 보호자)가 여러 어린이집 신청을 제출할 수 있음을 나타냅니다.


어린이집:

아동 테이블은 어린이집 테이블에서 외래 키로 사용되는 기본 키인 child_id를 가지고 있습니다. 어린이집 테이블은 nur_child 테이블 외래 키로 사용되는 기본 키인 nursery_id를 가지고 있습니다. 이 관계는 아동이 어린이집 아동을 통해 특정 어린이집과 연관될 수 있음을 나타냅니다.


아동, 어린이집, 어린이집 신청:

아동 테이블은 어린이집 신청 테이블에서 외래 키로 사용되는 기본 키인 child_id를 가지고 있습니다. 어린이집 테이블은 어린이집 신청 테이블에서 외래 키로 사용되는 기본 키인 nursery_id를 가지고 있습니다. 이 관계는 어린이집 신청 테이블이 특정 어린이집에 대한 아동의 입소 신청 정
보를 저장할 수 있도록 합니다.

 

클라우드 아키텍처 초안 방향성 : (아키텍처 설정 후 변경 예정)

프론트엔드 인터페이스:

- 학부모가 가입하고 로그인하며 아동 정보를 제출할 수 있는 웹 기반 인터페이스

- 학부모가 어린이집 입소 신청을 보고 관리할 수 있는 인터페이스

- 어린이집이 로그인하여 관련 정보에 액세스할 수 있는 인터페이스


백엔드/API 레이어:

- 학부모와 어린이집의 사용자 인증 및 권한 관리

- 프론트엔드 인터페이스가 데이터베이스와 상호작용할 수 있는 API 제공


데이터베이스 레이어:

- 클라우드 기반의 MySQL 데이터베이스를 활용하여 애플리케이션 데이터 저장 및 관리

- 위에서 설명한 데이터베이스 구조 구현

- Amazon RDS, MySQL 등 클라우드 서비스에 호스팅 가능


클라우드 호스팅:

- 프론트엔드 인터페이스, 백엔드/API 레이어, 데이터베이스를 AWS 같은 클라우드 플랫폼에 호스팅

- 로드 밸런서와 자동 확장 그룹을 사용하여 확장성과 고가용성 보장


메시징 시스템:

- 어린이 입소가 확정되면 학부모에게 알림을 전송하는 메시징 시스템(예: 이메일 서비스) 구현


모니터링 및 로깅:

- 성능 모니터링 및 문제 식별을 위해 모니터링 및 로깅 도구 활용

- 시스템 운영을 원활하게 유지하기 위함