대규모 트래픽 게시판 구축 시리즈 #2: 프로젝트 기획 및 요구 사항

2024. 9. 5. 11:34·프레임워크/자바 스프링

카테고리 API 흐름도

설명

카테고리컨트롤러는 카테고리의 생성, 수정, 삭제 기능을 담당합니다.

  • 카테고리 생성 (POST /categories): 새로운 카테고리를 생성합니다.
  • 카테고리 수정 (PATCH /categories/{카테고리ID}): 기존 카테고리의 정보를 수정합니다.
  • 카테고리 삭제 (DELETE /categories/{카테고리ID}): 특정 카테고리를 삭제합니다.

POST API 흐름도

설명

게시글컨트롤러는 게시글의 작성, 수정, 삭제 기능을 담당합니다.

  • 게시글 작성 (POST /posts): 새로운 게시글을 작성하고, 관련된 태그도 함께 저장합니다.
  • 게시글 수정 (PATCH /posts/{게시글ID}): 기존 게시글의 내용을 수정합니다.
  • 게시글 삭제 (DELETE /posts/{게시글ID}): 게시글을 삭제하며, 관련된 태그와 댓글도 함께 삭제합니다.

유저 API 흐름도

사용자컨트롤러는 사용자 관리와 관련된 기능을 담당합니다.

  • 회원가입 (POST /users/sign-up): 새로운 사용자를 등록합니다.
  • 로그인 (POST /users/sign-in): 사용자 인증을 수행하고 세션을 생성합니다.
  • 내 정보 조회 (GET /users/my-info): 로그인한 사용자의 정보를 조회합니다.
  • 로그아웃 (PUT /users/logout): 사용자 세션을 종료합니다.

게시판 검색 API 흐름도

게시글검색컨트롤러는 게시글 검색 기능을 담당합니다.

  • 게시글 검색 (POST /search): 다양한 조건으로 게시글을 검색합니다.
  • 태그로 게시글 검색 (GET /search?tagName=태그명): 특정 태그가 포함된 게시글을 검색합니다.

SNS API 흐름도

  1. SNS 토픽 생성 (GET /sns/create-topic?name=토픽명):
    • 새로운 SNS 토픽을 생성합니다.
    • SNS 서비스를 통해 AWS SNS와 통신하여 토픽을 생성하고 토픽 ARN을 반환받습니다.
  2. SNS 구독 (POST /sns/subscribe):
    • 특정 토픽에 대한 구독을 생성합니다.
    • 프로토콜(예: HTTP, HTTPS, Email 등), 토픽 ARN, 엔드포인트를 지정하여 구독을 설정합니다.
  3. SNS 메시지 발행 (POST /sns/publish):
    • 지정된 토픽에 메시지를 발행합니다.
    • 토픽 ARN, 제목, 메시지 내용을 포함하여 AWS SNS에 메시지를 전송합니다.
  4. Slack 메시지 전송 (GET /sns/slack?message=메시지&channel=채널):
    • Slack 채널에 메시지를 전송합니다.
    • 슬랙서비스를 통해 지정된 채널에 메시지를 보냅니다.

이 컨트롤러는 SNS 서비스와 슬랙 서비스를 활용하여 알림 및 메시징 기능을 구현합니다. AWS SNS를 사용하여 다양한 구독자에게 메시지를 전달하고, Slack 통합을 통해 팀 커뮤니케이션을 지원합니다.


ERD 흐름도

 

이 ERD는 게시판 서버 프로젝트의 데이터베이스 구조를 나타냅니다. 각 엔티티와 그들 간의 관계를 설명하겠습니다:

  1. USER (사용자)
    • 주요 속성: id(PK), userId, password, nickname, isAdmin, status 등
    • 사용자 정보를 저장하는 테이블입니다.
    • 한 명의 사용자는 여러 개의 게시글을 작성할 수 있습니다 (1:N 관계).
  2. CATEGORY (카테고리)
    • 주요 속성: id(PK), name
    • 게시글 카테고리 정보를 저장합니다.
    • 하나의 카테고리는 여러 개의 게시글을 포함할 수 있습니다 (1:N 관계).
  3. POST (게시글)
    • 주요 속성: id(PK), name, contents, views, categoryId(FK), userId(FK) 등
    • 게시글 정보를 저장합니다.
    • USER와 CATEGORY 테이블과 관계가 있으며, COMMENT, FILE, POSTTAG 테이블과도 관계가 있습니다.
  4. COMMENT (댓글)
    • 주요 속성: id(PK), postId(FK), contents, subCommentId
    • 게시글에 대한 댓글 정보를 저장합니다.
    • 하나의 게시글은 여러 개의 댓글을 가질 수 있습니다 (1:N 관계).
    • subCommentId를 통해 대댓글 구조를 지원합니다.
  5. FILE (파일)
    • 주요 속성: id(PK), path, name, extension, postId(FK)
    • 게시글에 첨부된 파일 정보를 저장합니다.
    • 하나의 게시글은 여러 개의 파일을 가질 수 있습니다 (1:N 관계).
  6. TAG (태그)
    • 주요 속성: id(PK), name, url
    • 태그 정보를 저장합니다.
    • POSTTAG 테이블을 통해 POST와 다대다(N:M) 관계를 가집니다.
  7. POSTTAG (게시글-태그 연결)
    • 주요 속성: id(PK), postId(FK), tagId(FK)
    • POST와 TAG 간의 다대다 관계를 연결하는 중간 테이블입니다.

주요 관계:

  • USER - POST: 1:N (한 사용자가 여러 게시글을 작성)
  • CATEGORY - POST: 1:N (한 카테고리에 여러 게시글이 속함)
  • POST - COMMENT: 1:N (한 게시글에 여러 댓글이 달림)
  • POST - FILE: 1:N (한 게시글에 여러 파일이 첨부됨)
  • POST - TAG: N:M (게시글과 태그는 다대다 관계, POSTTAG 테이블로 연결)

이 ERD는 게시판 시스템의 핵심 기능을 지원하는 데이터 구조를 보여줍니다. 사용자, 게시글, 댓글, 카테고리, 파일 첨부, 태그 기능 등을 구현할 수 있는 구조로 설계되어 있습니다. 또한, 사용자 관리(admin 권한, 탈퇴 상태 등)와 게시글 관리(조회수, 생성/수정 시간 등)를 위한 속성들도 포함되어 있습니다.

저작자표시 (새창열림)

'프레임워크 > 자바 스프링' 카테고리의 다른 글

대규모 트래픽 게시판 구축 시리즈 #4: 프로젝트 초기 셋업  (3) 2024.09.05
대규모 트래픽 게시판 구축 시리즈 #3: 도커를 이용한 데이터베이스 구축  (5) 2024.09.05
대규모 트래픽 게시판 구축 시리즈 #1: 프로젝트 기획 및 요구 사항  (0) 2024.09.05
[spring cloud][ecommerce] 개요 & 구성  (0) 2024.08.12
콘서트 예매 서비스에서 발생할 수 있는 동시성 이슈와 처리  (0) 2024.07.20
'프레임워크/자바 스프링' 카테고리의 다른 글
  • 대규모 트래픽 게시판 구축 시리즈 #4: 프로젝트 초기 셋업
  • 대규모 트래픽 게시판 구축 시리즈 #3: 도커를 이용한 데이터베이스 구축
  • 대규모 트래픽 게시판 구축 시리즈 #1: 프로젝트 기획 및 요구 사항
  • [spring cloud][ecommerce] 개요 & 구성
hyeseong-dev
hyeseong-dev
안녕하세요. 백엔드 개발자 이혜성입니다.
  • hyeseong-dev
    어제 오늘 그리고 내일
    hyeseong-dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (283)
      • 여러가지 (108)
        • 알고리즘 & 자료구조 (73)
        • 오류 (4)
        • 이것저것 (29)
        • 일기 (1)
      • 프레임워크 (39)
        • 자바 스프링 (39)
        • React Native (0)
      • 프로그래밍 언어 (39)
        • 파이썬 (31)
        • 자바 (3)
        • 스프링부트 (5)
      • 컴퓨터 구조와 운영체제 (3)
      • DB (17)
        • SQL (0)
        • Redis (17)
      • 클라우드 컴퓨팅 (2)
        • 도커 (2)
        • AWS (0)
      • 스케쥴 (65)
        • 세미나 (0)
        • 수료 (0)
        • 스터디 (24)
        • 시험 (41)
      • 트러블슈팅 (1)
      • 자격증 (0)
        • 정보처리기사 (0)
      • 재태크 (0)
        • 암호화폐 (0)
        • 기타 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    취업리부트
    FastAPI
    AWS
    자바
    Python
    #개발자포트폴리오 #개발자이력서 #개발자취업 #개발자취준 #코딩테스트 #항해99 #취리코 #취업리부트코스
    spring
    파이썬
    Spring WebFlux
    완전탐색
    docker
    DP
    항해99
    OOP
    ecs
    mybatis
    백준
    celery
    WebFlux
    reactor
    시험
    Spring Boot
    프로그래머스
    EC2
    그리디
    SAA
    Redis
    java
    Docker-compose
    RDS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
hyeseong-dev
대규모 트래픽 게시판 구축 시리즈 #2: 프로젝트 기획 및 요구 사항
상단으로

티스토리툴바