본문 바로가기
IT/C#

[C#] 토이 프로젝트 : Winform으로 채팅 프로그램 개발 - 1

by 뉴비 출근러 2025. 8. 1.
728x90
반응형

최근 새로운 회사에 이직했다.

그런데 이 회사는 c#코딩이 전무하고 자체 프레임워크를 사용하여 쿼리만 작성하면 되는 회사다.

c# 언어에 대해 까먹을 것 같아서(이미 많이 까먹었지만..) 간단한 프로그램들을 만들어 볼까 한다.

(두서 없이 일기장처럼 쓸 예정이니 이해 부탁드림..)

 

 

1. 주요 기능 : Only 단순 채팅

2. 개발 조건 : Visual Studio 2022, .netFramework 4.7.2, c# Winform

3. 사용 기능 : Socket, Thread, Timer 등

4. 개발 이유 : 회사pc에서 카카오톡이 안돼서..지금은 다행이 사용 가능함.. 누가 일부러 막아놨나..

 

어떤 기능을 넣어야 할까?

1. 하나의 프로그램으로 여러 사용자가 동시에 사용할 수 있을까?

 

2. 접속방식은 어떻게 할까?

 

3. 서버의 보안관련 조치는 뭘 할 수 있을까?

 

 

어떻게 해야할까?

1. 회사 pc에서 사용될건데 내가 서버가 되면 뭔가 뭔가..보안에 안좋지 않을까? 회사 컴퓨터와 네트워크를 사용했는데 문제가 생기면 큰일이잖아..? 안되겠다 서버용 프로그램과 클라이언트 프로그램을 분리해보자..

서버를 집에있는 pc에 해두면 문제 없지 않을까?

 

2. 다른 방식은 잘 모르니 무지성 소켓 방식!

 

3. 웹 프로그램 만들때 했던 경험을 살려 최대 로그인 시도 횟수 라던가 추방 또는 차단 방식을 넣어볼까?

 

 

 

결과

매우 허접한 서버 프로그램(포트는 귀찮아서 9999넣음)

추가한 기능

1. 서버니까 접속 로그는 남아야겠지..? 로그 기능 추가해!!

 

2. 프로그램을 키고 끌때 자동으로 켜지고 꺼지지만 수동도 필요할 것 같아(진짜로 켜지고 꺼졌는지 사용자는 모르잖아?) 당장 추가해!!

 

3. 디스코드같은데 보면 참여자들 리스트가 보이고 방을 만든 사람이 다른 사람들을 추방할 수 있잖아? 그럼 나도 해볼까?

 

4. 메세지 길이가 너무 길면 서버에 부담될 것 같으니 제한 땅땅땅!! 규제!!!

 

5. 특정 단어를 보낼 수 없게 필터링 해볼까? 일단 넣어봐!!

 

 

 

추가하면 좋을 것 같은 기능

1. 모든게 로그가 남도록 했는데 적어도 메세지는 프라이버시니까 암호화를 해야할까..?

 

2. 정말 프라이빗하게 서버에서 저장한 ip만 접속이 가능하게 할까..?

 

3. port를 지금은 그냥 박아놨는데 서버에서 그때마다 수정할 수 있게 해야하나..? 2번과 엮어서 하면 완전 프라이빗 하겠잖아?!

 

 

사실 너무 오랜만에 c#을 사용해봐서 모르는 대부분은 GPT가 도와줬다..

내 일자리를 위협하는군..

728x90
반응형