프로필사진
DevOps 부트캠프 기록일지
DevOps_04_김재환
2023.06.13 ~14
2023.06.13 ~14

2023. 6. 27. 22:47부트캠프/Final

1. 12일에 이은 요구사항 분석

 

[기능 요구사항] 요구사항 분석

  1. 개인 사용자와 대회 주최자는 로그인 기능을 통해 토큰을 발급 받을 수 있습니다.
  • 로그인할 때 관리자임을 지정
  • db에서 확인
  • 일반 유저가 관리자의 역할을 수행하려고 할 때 권한 없음 표시
  • 토큰을 사용하는 로직은 구현하기로 함
  • JWT로 시도하기로 함
  1. 인증된 개인 사용자는 자신의 비공식 기록을 입력 및 조회할 수 있습니다.
    -비공식 기록 입력, 조회는 유저 데이터베이스에 넣기 정함
    ,
  2. 인증된 개인 사용자는 특정 대회에 참가 신청을 할 수 있습니다.
  • 대회 기록 데이터베이스에 저장
  • 대회 생성 페이지 기능이 필요
  • 대회 정보 :
    [1] type 10km, half, full 고정
    [2] 대회명
    [3] 참여가능 인원 : 참여 가능 인원 도달하면 더 이상 신청 안됨
    [4] 진행 날짜 : 중복 안되게 진행 날짜로 구분
  1. 대회 주최자는 대회 참가자를 조회할 수 있습니다.
  2. 대회 데이터베이스에 저장된 참가 신청 조회
  3. 대회 주최자는 대회 참가자들에 대한 공식 기록을 입력 및 조회할 수 있습니다.
    주최자가 가지고 있는 권한으로 입력 및 조회 가능
  4. 대회 주최자에 의해 입력된 공식 기록에 따라 해당 참가자의 point 데이터에 점수가 추가됩니다.
    설정 :미완주 0점 10km 완주는 10점, half 완주는 20점, full 완주는 42점 추가
  5. 개인 사용자는 점수를 확인할 수 있습니다.
    설정 : 개인 사용자의 total 점수 확인

[인프라 요구사항]

  1. 시스템 전반에 가용성, 내결함성, 확장성, 보안성이 고려된 서비스들이 포함되어야 합니다.
    EC2, Lambda, ECR, ECS, http 통신, 보안그룹 규칙
  2. 하나 이상의 컴퓨팅 유닛에 대한 CI/CD 파이프라인이 구성되어야합니다.
    코드파이프라인으로 정함
  3. 유저 데이터를 저장하고 있는 유저 데이터베이스는 다른 데이터베이스와 분리되어있어야 합니다.
    유저 데이터 베이스 : AWS RDS,
    대회 기록 데이터 베이스 : mongodb (데이터량 많아진다, 상대적 비용 저렴, 읽고 쓰기가 빠르다.)
  4. 기록 데이터를 기반으로 사용자별 점수를 기록하는 시스템은 데이터 유실을 막기 위해 느슨하게 결합되어야 합니다.
    주최가가 완주 기록 입력 -> SNS -> SQS -> Lambda -> DB 순으로 진행될 것으로 생각
  5. 시스템 메트릭 또는 저장된 데이터에 대한 하나 이상의 시각화된 모니터링 시스템이 구축되어야합니다.
    참가 신청날에 트래픽이 몰릴 것으로 생각해, 인스턴스 cpu 모니터링을 프로메테우스 툴 사용해 모니터링, 일정 임계점 도달 시 경고알람 설정

2. 우리팀은 특이하게 기능 요구분석을 하면서 이벤트 스토밍으로 기능별로 어떤 이벤트 발생하는지에 대해 먼저 의논을 하고 만들게 되었다

3. 14일 오전에 준비한 요구사항 분석과 event storming 한 것을 바탕으로 CTO와 미팅

 

기본에 충실했고 준비할것 대부분 잘했다고 해주셔서 안도의 한숨을 내쉬었다. 하지만 실제로 구현을 하려고하니 막막한 느낌이 들었다.

 

- 피드백 부분

  1. 대회 생성 테이블만 생성하고, 대회 정보는 데이터베이스에 넣어 놓고 사용
  2. 토큰을 aws cognito도 고려해보기로함
  3. 시점(데이터 언제 넘길지), ex) 자정 12시에 넘기는 방법
  4. 파이프라인 (AWS 코드파이프라인) 대회기록 관리 서버쪽
  5. 대회 기록 데이터 베이스 다이나모 db 사용

'부트캠프 > Final' 카테고리의 다른 글

2023.06.23~25  (0) 2023.06.27
2023.06.15~16, 19~20(주말동안은 아키텍처 구현을 위한 개인 공부)  (0) 2023.06.27
2023.06.12(프로젝트 시작)  (0) 2023.06.27
2023.06.26  (0) 2023.06.26
2023.06.22  (0) 2023.06.23