오픈채팅방 만들기 / 키워드 방장봇 설정 제작 / 광고없는 채팅방 / 가리기봇 no/ 카톡 사용안하는 채팅방만들기 (2)
이전에 자체 오픈채팅방 제작을 위해 언급했던 필수적인 기능을 넣어본다
키워드설정 기능 : 대화방 분위기를 망치는 언어를 설정할 수 있다. 욕설이나 광고 등의 문구가 될 수 있다.
방장봇 설정 : 카톡처럼 회원이 방에 입장하면 인사하도록 한다.
그 외 관리자 프로필 설정은 이름과 사진을 변경할 수 있도록 하며
오픈 채팅방 생성과 삭제도 기본으로 동작하도록 해야 한다.

설정 탭을제작하고 언급한 기능을 넣어본다. 위에는 설정 메뉴가 보이는 화면이다.
참고로 mvp (최소 기능 제품)을 목적으로 프로그램을 제작해 본다. 완벽한 프로그램보다는 개발하면서 붙여나가는 방향으로 한다는 말이다.
먼저 아래처럼 금지 키워드를 설정할 수 있도록 만든다.

광고 등이 오픈 채팅방 링크가 대부분이기 때문인데 링크인지 검사해서 url을 올리지 못하도록 한다
키워드 설정과 코드 로직은 큰 차이가 없다.
데이터 베이스까지 완료해서 입력되도록 만들었다. 이것 참 막노동이다. ^^

방장봇은 다양한 기능이 있을 수 있겠다. 만일 날씨 정보를 원한다면 날씨정보를 출력할 수 있고
주식이나 코인의 현재 가격도 출력할 수 있을 것이다.
이러한 방장 벗은 마치 디스코드처럼 다 야한 기능을 가졌으면 좋겠다고 생각한다.
방을 특정목적에 맞게 생성하면 해당 봇을 이용할 수 있으면 참 좋겠다는 생각을 해본다.
하지만 최소 동작 제품에는 입장 시 인사만 하는 것으로도 충분할 것으로 예상되기때문에 일단 누군가 사용하는 제품을 만드는게 목표다. 다시말하면 핵심기능은 꼭 가지고 있어야한다. 누군가 사용하고 싶고 필요한 제품을 만들어야한다.
아래는 방 입장 시 자동으로 익명으로 입장 가능하도록 설정하였고 테스트 화면이다.
입장 시 닉네임은 자동으로 생성된다. 익명이지만 IP 정보 등은 필요할 것으로 생각된다. 입장을 제한하거나 불량회원에 대해서 특정할필요가 있다고 생각하여 최소한의 대비책을 마련해야한다고 생각한다.
오픈채팅방은 익명이기 때문에 상대적으로 악용하기 쉬운 단점이 있다.
금지ip의 경우 입장을 제한하도록한다.
이것도 웹페이지를 오픈할경우 ip를 체크하여 미들웨어정도에서 잡아내야할것이다.

현재 db작업을 완료했다.
다음에 할것은 대화 화면이다. 일단 제작 시 보이지 않는 많은 부분에 신경 써야 하는데
언제 회원들 계정을 생성하는가? 입장 시 무조건 생성하면 되는 게 아니라 마치 슬랙 SLACT처럼
초대장이 있어야 입장 가능하다면 앞단에 별도의 관리 링크가 필요한 것이다.
방생 성과 해당 방에 입장을 위한 URL 링크가 필요하다.
이 URL을 이용하면 누구나 방에 참여할 수 있도록 설정하도록 할 것이다.

먼저 USE CASE 유즈케이스란 제대로 동작하는 프로덕트를 만들기 위해 인간으로서 고민해야 하는 부분이다.
유스 케이스를 통해서 제작방향은 매우 달라질 수 있다.
유즈케이스는 사용사례라고 할 수 있는데 서비스를 이용하는 사람(actor) 의 서비스 이용여정을 체크하는것이다.
당연히 이용자는 하나의 동작 이후 다른 선택을 하게된다.
해당하는 내용을 정의해야 화면개발과 database 구조를 만들 수 있다.
한번 정한것은 쉽게 봐꿀 수 없다. 화면과 코드 데이터베이스 모두 수정되는 내용이기때문에 개발시에 머리를 맞대고 확실하게 정해야하는 부분이다. 물론 나는 혼자 개발하기 때문에 변경사항이 좀 많다?
남한테 미안해하지않고 엎고 수정하면 되니말이다 ㅜ
대략적으로 유즈케이스를 위한 고민을 해본다면,
서비스 이용자는 관리자 와 회원이다.
관리자와 회원은 전혀 다른 루트로 프로덕트를 이용하게 된다.
또한 관리자의 경우 가입 페이지와 세션을 이용하여 일반적인 로그인 과정을 거쳐 서비스에 접속하겠지만
회원의 경우
회원이 초대 링크를 받는다
링크 클릭 ->
0 ) 입장이 허용된 링크인가?
1 ) 입장하는 경우
2) 입장 불가인 경우 (차단 IP)
다양 과정을 거치게 된다.
다양한 과정을 생각해야 하기 때문에 데이터베이스의 구조와 동작 순서가 모두 바뀌게 되는 것이다 ㅜ
그래도 chatGpt 와 프레임워크의 도움으로 과거와는 다르게 빠르게 프로그램을 만들 수 있는 시대가 된 것 같긴 하다.
