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 |