잡다한 것

S.A 문서 템플릿

zhelddustmq 2024. 9. 11. 20:25

S.A

0. 와이어프레임

1. 개요 (Overview)

프로젝트 이름: Sparta News

목적: IT 산업 뉴비들을 위한 뉴스 및 커뮤니티 플랫폼을 제공합니다. 사용자들은 크롤링된 IT 관련 뉴스를 확인하고, 질문 게시판과 자유 게시판에서 글을 작성하거나 소통할 수 있습니다.


2. 요구 사항 (Requirements)

기능적 요구사항:

  • 회원가입 없이 뉴스 열람 가능
  • 회원가입 후 뉴스, 질문, 자유게시판에 글 작성 및 댓글 작성 가능
  • 뉴스 크롤링&업로드 (관리자만 가능)
  • 사용자별 역할(관리자, 마스터, 뉴비)에 따른 권한 관리
  • 게시글에 '좋아요', '북마크' 기능 제공
  • 게시글 조회수에 따른 인기 게시글 표시

비기능적 요구사항:

  • 확장성: 향후 새로운 게시판 추가 가능하도록 설계
  • 보안: JWT 기반 인증 및 권한 관리
  • 성능: 대규모 트래픽을 처리할 수 있는 구조
  • 유지보수성: 코드가 쉽게 확장 및 유지보수 가능해야 함

3. 시스템 아키텍처 (System Architecture)

백엔드 구성:

  • Django REST Framework: API 설계를 위한 프레임워크
  • SQLite3: 데이터베이스
  • BeautifulSoup: 뉴스 크롤링을 위한 라이브러리
  • JWT: 사용자 인증을 위한 토큰 방식 인증 시스템

API 엔드포인트:


4. 데이터 아키텍처 (ERD)

주요 테이블:


5. 애플리케이션 아키텍처 (Application Architecture)

  • 프론트엔드: 현재 구현하지 않음. 백엔드 중심의 API 설계 및 통신에 집중.
  • 백엔드:
    • API 엔드포인트를 통한 CRUD 처리
    • 회원 등급에 따라 접근 권한이 나뉘는 구조
    • 크롤링된 뉴스는 주기적으로 데이터베이스에 저장

6. 통합 및 인터페이스 (Integration & Interfaces)

  • 크롤링 통합: BeautifulSoup을 통해 IT 관련 뉴스 데이터를 주기적으로 크롤링
  • REST API: 프론트엔드와의 통신은 JSON 형식으로 데이터를 주고받음

7. 보안 (Security)

  • 인증: JWT 토큰을 이용한 사용자 인증
  • 비밀번호 암호화: 사용자 비밀번호는 해시화하여 저장
  • 역할 기반 권한 관리: 관리자만 뉴스 크롤링 및 관리 기능 사용 가능

 

'잡다한 것' 카테고리의 다른 글

마크다운 간단 문법(Readme, Notion 등)  (1) 2024.09.05
오답노트  (0) 2024.09.02
git 협업시 메뉴얼  (4) 2024.08.27
WIL 7 주차  (0) 2024.08.09
WIL 6 주차  (0) 2024.08.02