[포스코x코딩온] 스마트팩토리 개발자 과정 13주차 회고 | 채팅 프로젝트 (C++, TCP, MySQL)

정형진·2023년 4월 2일
1
post-thumbnail

C++, TCP, MySQL을 사용하여 채팅 프로그램을 만들어 보자!

우선 어떤 기능들을 담을지 계획을 세워보자.

https://www.notion.so/C-_Chat_Project-MySQL-TCP-de27706a7933466e8cb9cdcf9c720173?pvs=4

설계 계획은 위와 같았다.

그러나 계획처럼 기능을 구현하는 것은 쉽지 않았다..
따라서 계획을 아래와 같이 수정하게 되었다.

세부적으로 들어가보면


클라이언트 <-> 서버


서버 <-> 클라이언트


서버 <-> 데이터 베이스

이와 같은 틀을 가지고 설계하게 되었다.

클라이언트에서는

  • 로그인
  • 회원가입 (중복된 전화번호 사용 불가)
  • 비밀번호 찾기 (아이디, 전화번호 이용하여 찾기)
  • 회원 탈퇴 (아이디, 비밀번호, 전화번호 모두 맞아야 삭제)
  • 회원 정보 수정 (전화번호 or 비밀번호 변경 가능)
  • 이전 대화 호출
  • 화면 정리
  • 공지
  • 종료

등의 기능이 있다.


서버에서는

  • 대화 백업
  • 대화 내용 송/수신
  • 클라이언트 추가
  • 접속 중인 클라이언트 카운트

등의 기능이 있다.

데이터를 저장, 수정, 삭제 등은 모두 데이터 베이스인 MySQL에서 이루어지게 된다.

<시현>

실행을 하게 되면 위와 같이 클라이언트, 서버가 실행되게 된다.
최대 10명의 클라이언트가 접속할 수 있도록 해두었지만 로컬로 작동하기 때문에 모두 접속 할 일은 없을 것 같다.

<소감문>

아직 많이 어설프지만 나름 뿌듯했다. 처음 들었을 때는 하루 이틀이면 완성할거라 생각했지만, 예상과 다르게 4일의 시간이 주어져도 부족했다. 처음 목표했던 기능들을 모두 구현하고 싶었지만, 그러지 못해서 아쉬웠다.
특히 TCP를 이용해보는 것은 처음이라 더 어려웠던 것 같다.
너무나도 많은 시행작오를 겪었으며, 팀원 뿐만 아니라 다른 교육생 분들에게도 조언을 구하며 제작했다. 그래서 더 기억에 남을 것 같다.
최종 발표에서 오히려 다른 조들이 더 잘한 부분들이 많이 보였다. (글씨 색을 변경, 비밀번호를 입력시 보이지 않게 하는 기능, 중복 로그인 방지 등등)
어떻게 구현한건지 궁금해서 물어보고 배울 수 있었다.

솔직히 상은 기대도 안했는데 대상이라니 몸 둘 바를 모르겠다..
모두 감사합니다!

0개의 댓글