-
I/O Multiplexing이 가능한 채팅 프로그램 - 개요Side Project 2022. 7. 5. 17:27
6월 15일에 6개월간의 빅데이터 분석 국비지원 교육을 마치고 어제인 7월 4일 엔진팀으로 입사했다. 비전공자이지만 취뽀했다는 사실만으로 정말 뿌듯하다. 사실 역량을 더 키우는 시간을 가지고 싶었지만 일하면서 부딪혀보는 것도 나쁘지 않다고 생각했다.
빅데이터 분석과정을 수료했지만 수업을 들으면서 엔지니어쪽으로 더 관심이 생겨서 서버 엔진 개발쪽으로 문을 두드렸다. 앞으로 수많은 어려움이 있겠지만 나를 믿고 차근차근 해결해나가보자!
이 블로그를 만든게 엊그제 같은데 벌써 6개월이 지나서 7월이 됐다. 교육받으면서 학습한 내용, 삽질한 내용들을 정리하려고 했는데 업로드한 포스팅이 1개밖에 없다. 정리가 덜 된 임시저장 파일들만 잔뜩이다. 😹
이젠 열심히 써야지 ㅎㅎ 꾸준히 정리해나가면 피가 되고 살이 될 거라 믿는다.
어제 입사 후 처음 과제로 받은 프로젝트는 파이썬 '채팅 프로그램' 개발이다.
💡 프로젝트 개요는 다음과 같다.
[기본 기능]
1. 채팅
: 클라이언트는 서버에 접속하여 접속한 클라이언트 간의 메시지를 공유할 수 있어야 한다.
2. 아이디, 채팅방 정보 관리
: 클라이언트는 아이디와 접속할 채팅방을 입력 받아 접속할 수 있어야 한다. 입력한 아이디가 중복되었다면 접속할 수 없다.
3. 메시지 출력 시 작성자, 작성시간 포함
: 채팅은 '[아이디(시간)]: 메시지 내용'의 포맷으로 출력한다.
[추가 기능]
1. rdb 연동
: 모든 채팅내용은 rdb에 기록해야 한다. 단, rdb가 다운되었다면 기록하지 않아도 된다. table schema 설계할 것.
2. 귓속말
: 클라이언트는 특정 command를 통해 같은 채팅방 안의 유저에게 귓속말을 할 수 있어야 한다.
3. 아이디 변경
: 클라이언트는 자신의 아이디를 바꿀 수 있어야 한다.
4. 채팅 log 불러오기
: 클라이언트가 처음 접속할 때 접속 날짜에 해당하는 채팅 내용을 모두 불러올 수 있어야 한다.
➕ 조금 더 욕심을 부려 CLI가 아닌 GUI로 구현해보고자 한다!
[개발환경]
- OS: Linux
- Language: Python 3.7.7
- DB: MariaDB
[형상관리]
- GitLab
참고할 예제들:
1) threading 모듈 사용, socket 통신: https://hyobn.tistory.com/15?category=906079
2) threading 모듈 사용, twisted, socket 통신: https://www.youtube.com/watch?v=Ly6IN2fOu5s
3) GUI 구현: https://blog.naver.com/pjt3591oo/222027725523
'Side Project' 카테고리의 다른 글
점심 메뉴 추천 프로그램 (0) 2023.04.09 I/O multiplexing이 가능한 채팅 프로그램 (0) 2023.03.26