[SideProject] 멀티 유저 익명 채팅 프로그램

bong·2022년 5월 31일
0

SideProject

목록 보기
1/1

1. 시작 계기

회사에서 슬랙을 쓰고있는데 익명 기능이 있으면 좋겠다는 동료의 말을 듣고 재미삼아 시작하게 되었다. 처음엔 슬랙 봇으로 익명 채널을 만들려고 했는데 나에게 슬랙 관리자 권한이 없다는걸 깨달았다. 혼자 재미로 하는건데 관리자님에게 뭐할건지 설명하고 그러기 귀찮..아서 파이썬 프로그램으로 만들게 되었다.

2. 프로젝트 진행

2-1. 소켓 프로그래밍

  • 채팅 프로그램 만들기 검색하면 꼭 같이 나오는게 소켓 프로그래밍
  • 여기에서 자세히 알려줘서 쉽게 이해할수 있었음
  • 기본적인 에코서버부터 시작해서 멀티 클라이언트 양방향 통신 서버/클라이언트까지 단계별로 만들었다

2-2. 스레드

  • 클라이언트는 계속 대기하면서 서버로부터 메시지를 수신하고 동시에 서버로 메시지를 송신할 수 있어야 함
  • 이를 동시에 하기위해 메시지 수신 함수를 스레드에 넣고 실행
  • 채팅 프로그램 관련 예제 코드에 많이 나와서 구현은 어렵지 않았으나 나중에 좀 더 자세히 공부해보도록 하자

2-3. GUI

  • 파이썬 기본 GUI 라이브러리인 tkinter 사용
  • 사용법을 이해하는건 어렵지 않았으나 여러개의 위젯을 내가 원하는대로 배치하는게 쉽지는 않았음
  • 창 크기를 고정하여 위젯 배치를 좀 더 쉽게할 수 있도록 함
  • 참고

2-4. 서버

  • EC2 인스턴스를 하나 생성하여 서버로 이용
  • Elastic IP를 설정하여 언제나 같은 IP로 접속할 수 있도록 함

2-5. exe 파일 만들기

  • 동료들에게 나눠주기 위해 exe 파일 생성
  • pyinstaller 이용

2-6. 테스트 및 피드백

동료들에게 exe 파일을 나눠주고 같이 사용해보면서 피드백을 받았다.

먼저 모든 채팅이 흰 바탕에 검은 글씨라 누구 채팅인지 한눈에 알아보기 어렵다는 피드백이 있었다. 이를 위해 클라이언트가 입장할 때마다 서로 다른 색상을 부여하고, 폰트도 굵게 설정하였다. 아래는 피드백이 반영된 모습.

두번째로 맥북을 이용하시는 분이 mac용 앱으로 만들어달라는 요청이 있었다. 그런데 서치해보니 윈도우나 우분투에서 mac 앱을 만드는게 쉬운 일은 아닌 것 같아서 VM이나 mac 인스턴스를 쓸까 하다가 결국 다음에 맥북을 빌려서 해보는걸로 결론이 났다.

그리고 채팅을 오래해서 내용이 많이 쌓이게되면 일정량만 보관하고 오래된건 날리는게 어떨까?하는 생각도 들었지만 좀 나중에 하기로 했다. 지금 3~4명에서 쓰는데 문제없기도 하고 aws 강의부터 좀 보기로..

결론

역시 재미로 하는 코딩은 재밌다. 스레드는 나중에 더 자세히 공부해보자.

0개의 댓글