주요 작업 내용
MySQL DB 초기 연동
C 서버와 MySQL 데이터베이스 간의 기본 연결 구축
서버 시작 시 DB 연결
종료 시 DB 연결 해제 로직을 구현
보안 강화 (비밀번호 해싱)
OpenSSL의 SHA256 알고리즘을 활용하여 사용자 비밀번호를 해싱하여 DB에 저장
사용자 관리 DB 연동
회원가입
새로운 사용자 등록 시 users 테이블에 사용자 ID, 해싱된 비밀번호, 닉네임, 생성 시각을 저장하도록 함
로그인
사용자가 로그인 요청 시 users 테이블을 조회하여 인증을 수행하고, 성공 시 해당 사용자의 pk_id와 닉네임을 서버 메모리에 저장
채팅방 관리 DB 연동
채팅방 생성
chatroom 테이블에 방 이름, 타입, 생성자 pk_id, 생성 시각을 저장하도록 구현
채팅방 입장/퇴장
chatroom_user 테이블을 활용하여 사용자의 채팅방 입장 및 퇴장 기록을 관리
메시지 저장 DB 연동
공개 채팅 및 개별 채팅방 메시지 전송 시 chat_message 테이블에 메시지 내용, 발신자 pk_id, 방 ID, 전송 시각을 저장하도록 구현
공개 채팅방 초기화
chat_message 테이블의 외래 키 제약 조건 문제를 해결하기 위해, 서버 시작 시 "Public Chat"이라는 기본 공개 채팅방을 MySQL DB에 생성하고 해당 room_id를 활용
사용자 및 채팅방 목록 조회
users 테이블과 chatroom 테이블을 조회하여 현재 등록된 모든 사용자 및 생성된 채팅방 목록을 클라이언트에게 제공하도록 기능을 업데이트
'LMS 7 > 개발일지' 카테고리의 다른 글
| 25.07.21 개발일지 / 채팅 프로그램 5팀 (1) | 2025.07.29 |
|---|---|
| 25.07.18 개발일지 / 채팅 프로그램 5팀 (3) | 2025.07.29 |
| 25.07.16 개발일지 / 채팅 프로그램 5팀 (0) | 2025.07.29 |
| 2025.07.15 개발일지 [채팅 프로그램 5팀 / 테이블 명세서 / ERD] (0) | 2025.07.29 |
| 25.07.14 개발일지 / 멀티스레드를 통한 채팅프로그램 구상 (2) | 2025.07.29 |