본문 바로가기
프로젝트/1. 세미_바나나톡

멀티 채팅 프로그램_4주차(01/16~01/22)

by 루팽 2023. 1. 22.

1) 3주 차 돌아보기 및 4주 차 진행상황

저번 주에 해야 할 일로 분류해 놓은 채팅방 구현과 기능 추가, 중복검사 등의 작업을 완료하고 메인페이지는 친구를 불러와서 화면에 출력하는 것까지만 작업을 했다.
다른 팀원분들이 작업을 하는 동안 스레드 작업을 틈틈이 해놨었는데,
남은 부분인 비밀번호 찾기, 비밀번호 찾기 다이얼로그, 메인페이지, 메인 다이얼로그, 마이페이지, 채팅방 스레드를 각자 하나씩 맡아서 작업하고 일요일 오후 회의를 통해 중간점검을 하기로 했다.

 

2) 구현 시작 - 채팅방과 스레드 작업

걱정하던 채팅방 구현 작업은 팀원분께 공통 UI부분과 대략적인 위치만 어느 정도 완성해 달라고 부탁하고, 목요일에 이어받아서 UI를 다듬은 후 메인과 연결해서 새 채팅을 누르면 화면이 켜지도록 해놨다.
그리고 채팅방 작업을 하다 보니 우리가 계획한 대로 상대 글자 색을 다른 색으로 표시하거나 채팅방 배경을 설정하려면 JTextPane을 써야 한다는 걸 알게 돼서 일단 스레드작업을 마무리 짓고 제대로 작동되는 걸 확인한 다음 고쳐보기로 했다.

그리고 회원가입에 있는 중복확인 기능과 아이디 찾기, 비밀번호 찾기 일부분(재설정 로직 전까지), 메인페이지의 친구목록 불러오기 등 스레드, DB연결 작업을 했다.

그다음 스레드 업무 배분에서, 나는 채팅방 스레드를 맡았는데 작업을 하다 보니 메인에서 파라미터로 전달받는 값이라든지 해당 아이디와 매칭되는 닉네임을 가져오는 문제라든지 로직에서 값을 주는 방식 등 여러 가지로 회의해서 확정해야 되는 부분이 많아서 일단 값을 어떤 식으로 받는다는 가정을 적어두고 그에 맞춰서 메소드와 스레드를 만들었다.
중간점검 회의에서 이 부분을 상의해서 어떤 식으로 처리할지 결론이 나왔기에 다른 팀원분들이 구현해주시는 걸 기다렸다가 그걸 받아서 작업하면 될 것 같다.

그리고 멀티 채팅 프로그램이니 내가 보낸 채팅이 해당 채팅방에 있는 모든 사람에게 전달되야하기에 해당 부분 메소드를 고민해 봤는데,
채팅방 번호와 그 안에 있는 멤버들의 서버스레드 주소를 같이 담아서 보관했다가 해당 채팅방에 글이 올라오면 그 스레드 주소로 메시지를 전달할 수 있다면 쉽게 해결될 텐데 실제로 어떻게 작동될지 그리고 그 두 값을 채팅방을 생성할 때 담을 수 있는지 감이 잘 잡히지 않는다.

회의 때도 각자 조금 더 생각해 보고 다시 얘기해 보자 하면서 마무리됐다.

일단 임시방편으로 채팅방이 열릴 때 채팅방번호를 클라이언트스레드 전역변수로 저장해놨다가, 해당 채팅방에서 누군가 채팅을 치면 전체 클라이언트 스레드에게 메시지를 전송하되 해당 채팅방 번호일 때만 출력되도록 해놨다.
아무래도 다른 기능이 완성돼야 이것저것 테스트해 보면서 채팅 기능을 완성할 수 있을 것 같다.

일요일 오후 8시쯤 회의를 시작해서 9시 조금 넘어서 끝이 났는데, 마이페이지 스레드 쪽을 맡은 팀원분과 코드를 보면서 얘기하고 작업하는 걸 도와드리며 해당 스레드 작업을 끝내고 나니 어느새 12시에 가까워져서 그렇게 4주 차가 끝이 났다.

이번 주에 문제가 있었다면 집에서 갑자기 오라클 서버가 잘 작동되지 않았던 것 밖에 없었다.
이상하게도 회원가입, 아이디 찾기 같은 건 잘 되는데 로그인에서만 멈췄고, 로그를 뜯어봐도 정체불명의 3이라는 프로토콜만 나왔기에 이게 뭘까 이것저것 시도해 보다가 그냥 테이블을 삭제하고 다시 만드니까 정상적으로 작동됐다.
갑자기 왜 그렇게 된 지는 모르겠지만 어쨌든 주말 전까지 고쳐서 다행이었다.

 

3) 느낀 점

이번 휴일에 설날이 겹쳐서 빠르게 완성하고 쉬고 싶었는데 생각과는 다르게 회의하고 수정해야 할 부분이 꽤 있었다.
빨리 끝내버리고 싶은 마음에 조급했는데, 작업하다 보니 고쳐야 할 부분이 많았고 시간도 일주일 더 있으니 남은 휴일은 쉬면서 천천히 작업해야겠다는 생각이 들었다.
저번주에도 적어둔 부분이지만, 협업이고 각자의 작업이 유기적으로 이어져있기에 마음만 앞선다고 뭐가 해결될 일은 아닌 것 같다.
평일에 프로젝트 시간으로 한두 시간씩 작업할 수 있고 주말도 남아있으니까 그때 전부 완성해 버리고 서류 작업과 발표준비를 시작하자.
그렇게 해도 시간 안에 다 완성할 수 있으니까 너무 급하게 생각하지 말고 쉴 땐 그냥 생각을 비우고 쉬고 노는 것도 후회 없이 열심히 놀아야겠다.

 

4) 5주 차에 해야 할 것

  1. 채팅방 멤버정보 출력 스레드, DB작업 완료
  2. 채팅 전달 외의 모든 기능 완성
  3. 해당 채팅방의 멤버 서버스레드에만 전달하는 방법 테스트 및 완성

 

5) 4주 차 구현 코드

<바나나톡 프로젝트 깃허브 바로가기>

댓글