[LMS7 10/28주차] 0714 C언어와 MySQL을 활용한, 채팅 구현 프로젝트, 5팀 + 개발 계획서

2025. 8. 24. 14:27·C/Project

1. 개발 계획서

프로젝트 개발 계획서
팀원
나윤성(팀장), 이재은, 임혜린, 양승준, 이명진
활동일시
7월 14일 ~ 7월 21일
장소
공학 1관 드론융합실
프로젝트명
C 언어와 TCP/IP 프로토콜, DB(MySQL)를 사용한 채팅 프로그램 구현
개발 환경
Language : C / gcc
OS : Ubuntu linux
구현예정기능
회원가입, 로그인, 사용자 정보 변경, 나가기
로그인 시 전체 채팅방 이동
로그아웃 및 서버 나가기
귓속말 기능을 이용하여 전체 클라이언트 중 특정 클라이언트에 메시지 전달
채팅방 개설 및 채팅방에 입장한 클라이언트끼리 채팅
개설된 채팅방 입장 및 나가기
회원가입, 로그인, 채팅로그(전체 채팅, 그룹 채팅 구분) DB에 저장
예상문제점
각 파트별 기능이 구현 되어도 DB연동 및 기능 적용, 중복체크에 많은 로직이 예상되므로 꼼꼼한 확인이 필요함
개발파트
나윤성
개발 채팅방 개설, 입장, /Q 명령어 구현(참가자 확인, 채팅방 확인, 나가기)
이재은
회원가입(ID(중복체크), PW, 닉네임), 사용자 정보 변경, 로그아웃
임혜린
채팅기능(ID(닉네임):message 시간), 귓속말(/w ID : message)
양승준
전체 채팅방 입장, /Q 명령어 구현(접속자 확인, 채팅방 확인, 생성, 나가기)
이명진
전체 DB 테이블 설계, 전체 연동 테스트 지원

2. 유스케이스


3. 요구사항 명세서

유형
요구분석 내용
분류
세부내용
USECASE
시작화면
화면
회원가입, 로그인, 사용자 정보 변경, 나가기 선택지 제시
uc1
회원가입
ID, PW, 닉네임 (중복체크)
uc2
로그인
ID, PW 입력 기능 구현
uc3
전체 채팅방
채팅 기능
로그인 후 처음 들어온 모든 사용자가 채팅할 수 있는 기능 구현
uc6
개별 채팅방
채팅 기능
생성된 채팅방에 채팅방 목록을 통해 들어온 사용자만 채팅이 가능한 기능 구현
uc7, uc8
채팅
채팅 기능
멀티 채팅 구현(채팅 텍스트마다 user의 ID 표시)
uc6
귓속말 기능 구현(채팅 명령어 사용 →” /w userID 텍스트”)
uc10
채팅 시간 구현(메시지를 보낼 때마다 해당 메시지의 보낸 시간 표시)
uc6
채팅 외의 기능
기능 선택
/Q를 누르면, 1, 2, 3, 4번이 제시
각각의 1, 2, 3, 4 중에서 원하는 기능의 번호를 입력
​
기능 상세
접속자 확인 기능 구현
uc4
채팅방 리스트 검색하는 기능 구현
uc5
채팅방 생성 기능 구현(생성된 채팅방은 채팅방 목록에 추가)
uc8, uc9
뒤로가기
uc7
나가기(로그인 환경으로 돌아가기)
​
데이터베이스 테이블
User
로그인 및 회원관리, 가입 일시(ID, PW, 회원가입한 시간 저장)
uc12, uc13
chat_message
채팅 로그 저장 및 누가, 언제, 어떤 메시지를 어디서 보냈는지 기록
(메시지 고유번호, 메시지 보낸 사용자의 ID, 메시지가 속한 채팅방 이름, 채팅 내용, 메시지 보낸 시간, user의 ID)
uc14
chatroom
오픈 채팅방과 그룹(전체)채팅방을 구분하여 저장,
오픈 채팅방은 서버 시작 시 미리 만들어 둘 수 있고 채팅 외의 기능을 통해 번호 입력 후 생성 가능
(채팅방 ID, 채팅방 이름, 전체 채팅방과 그룹 채팅방 구분, 채팅방 생성자 ID, 시간)
uc8, uc9
chatroom_user
참가자 관리
(채팅방 ID, 사용자 ID, 채팅방 참여한 시간)
uc15

4. 순서도


6. 일정표

7. 테이블 명세서

회원 정보
Table
user
컬럼명
데이터 타입
제약 조건
설명
id
VARCHAR(20)
NOT NULL / UQ
로그인 ID
password
VARCHAR(64)
NOT NULL
비밀번호
nickname
VARCHAR(50)
NOT NULL
표시용 닉네임
created_at
INT
NOT NULL
가입일시
pk_id
INT
PRIMARY KEY / NOT NULL / AI
식별용 ID
​
​
​
​
채팅방 정보
Table
chatroom
컬럼명
데이터 타입
제약 조건
설명
room_id
INT
PRIMARY KEY / AUTO_INCREMENT
채팅방 고유번호
room_name
VARCHAR(50)
NOT NULL
채팅방 이름
room_type
ENUM('open','group')
NOT NULL
채팅방 유형(오픈/그룹)
creator_id
INT
FOREIGN KEY REFERENCES user(pk_id)
생성자 ID
created_at
INT
NOT NULL
생성일시
​
​
​
​
방 참가자
Table
chatroom_user
컬럼명
데이터 타입
제약 조건
설명
room_id
INT
NOT NULL, FK REFERENCES chatroom(room_id)
참여한 채팅방 ID
user_id
INT
NOT NULL, FK REFERENCES user(pk_id)
참여한 사용자 ID
joined_at
INT
NOT NULL
입장 시각
​
​
​
​
채팅 메시지
Table
chat_message
컬럼명
데이터 타입
제약 조건
설명
message_id
INT
PRIMARY KEY / AUTO_INCREMENT
메시지 고유번호
room_id
INT
NOT NULL, FK REFERENCES chatroom(room_id)
방 ID
sender_id
INT
NOT NULL, FK REFERENCES user(pk_id)
보낸 사용자 ID
message
TEXT
NOT NULL
메시지 내용
send_at
INT
NOT NULL
전송 시각

8. ERD

'C > Project' 카테고리의 다른 글

[LMS7 10/28주차] 0714 C언어와 MySQL을 활용한, 채팅 구현 프로젝트, 5팀 + 완료 보고서  (0) 2025.08.24
[LMS7 07/28주차] 0628 C언어 콘솔 게임 프로젝트, 3팀 + 완료 보고서  (7) 2025.08.11
[LMS7 07/28주차] 0623 C언어 콘솔 게임 프로젝트, 3팀 + 개발 계획서  (1) 2025.08.11
'C/Project' 카테고리의 다른 글
  • [LMS7 10/28주차] 0714 C언어와 MySQL을 활용한, 채팅 구현 프로젝트, 5팀 + 완료 보고서
  • [LMS7 07/28주차] 0628 C언어 콘솔 게임 프로젝트, 3팀 + 완료 보고서
  • [LMS7 07/28주차] 0623 C언어 콘솔 게임 프로젝트, 3팀 + 개발 계획서
m_Dev
m_Dev
  • m_Dev
    m_Dev
    m_Dev
  • 전체
    오늘
    어제
    • 분류 전체보기
      • MAIN STUDY
        • 정보보안
        • 빅데이터
        • 정보처리
        • 컴퓨터 구조
        • 기타
      • JOB
        • Study
        • Project
      • LMS 7
        • 개발일지
      • FRAMEWORK
        • Qt
        • MFC
        • Winform
        • WPF
        • MAUI
      • NETWORK
        • Study
        • Assignment
      • PYTHON
        • Set
        • Study
        • Assignment
        • Project
      • C
        • Set
        • Study
        • Assignment
        • Project
      • C++
        • Set
        • Study
        • Assignment
        • Project
      • C#
        • Set
        • Study
        • Assignment
        • Project
      • DATABASE
        • MySQL
        • SQLite
      • IDE
        • VisualStudioCode
        • VisualStudio
        • Pycharm
        • Colab
      • 기타
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
m_Dev
[LMS7 10/28주차] 0714 C언어와 MySQL을 활용한, 채팅 구현 프로젝트, 5팀 + 개발 계획서
상단으로

티스토리툴바