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

멀티 채팅 프로그램_5주차(01/23~01/29)

by 루팽 2023. 1. 30.

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

이번주는 스레드작업을 마무리하고 잘 작동하는지 테스트하는 것을 목표로 작업했다.
저번주에 적어둔 해야 할 일들은 모두 끝냈고 JTextArea를 JTextPane으로 바꾼 후 채팅기능을 다시 점검했다.
거의 마무리가 된 만큼 토요일 오후 회의에서 테스트팀과 PPT팀으로 나눠서 최대한 빠르게 완성하기로 했고, 난 테스트팀으로 가서 계속해서 테스트를 진행하며 부족하거나 이상한 부분을 고치는데 집중했다.

 

2) 구현 시작 - 채팅방 수정과 전체적인 수정작업

일단 채팅방은 JTextPane으로 바꾸고 상대와 자신이 친 채팅, 날짜의 색상이 다르게 표시되도록 했다.
메시지 정렬도 상대는 왼쪽, 내가 쓴 메시지는 오른쪽으로 하고 싶었으나 생각만큼 잘 되지 않아서 일단 해당 기능은 빼놓고 작업을 진행했다.

JTextPane으로 바꾸고 나니 문제가 하나 있었는데, 스페이스 없이 연속에서 문자를 길게 쓴 다음 전송하기를 누르면 그대로 화면 밖으로 넘어가는 것이었다.
그래서 한참동안 구글링하며 여러 코드들을 적용해 봤는데 우리는 채팅프로그램이라 계속해서 insertString을 할 수밖에 없어서인지 제대로 작동되지 않았다.
결국엔 메소드를 하나 만들어서 채팅 범위만 넘어가지 않게 해 놨다.
스페이스가 포함되어 있으면 자동으로 줄 바꿈 되는 JTextPane의 특성을 이용해, 글자수를 카운트하고 몇 글자 이상이면 그 사이에 공백을 끼워넣는 형식으로 만들었다.
하다 보니 영어와 한글의 크기가 달라서 정규식을 이용한 if문으로 각 다르게 조건을 걸어서 처리했다.
깔끔하게 나오는 건 아니지만 그래도 원래 목적이던 채팅방 범위를 넘어가지 않게 줄 바꿈 하는 것은 달성했으니까 그냥 넘어가기로 했다.

저번주에 고민하던 채팅을 상대에게 전달하는 방법은 더 좋은 방법이 생각나지 않아서 그냥 그때 써놨던 대로 클라이언트 스레드에 채팅방번호를 저장해 놨다가, 메시지의 채팅방번호가 클라이언트 스레드의 채팅방번호와 같고 유저 닉네임은 다를 때만 출력되게 했다.

그리고 각 화면 이미지 중 마이페이지만 아직 만들지 않아서 작업을 진행했는데 팀명이나 컨셉이 바나나로 확실해서 작업이 비교적 쉬웠던 것 같다.
버튼에 이미지를 넣는 형식으로 이미지를 삽입을 했는데, 어떤 이미지는 버튼 눌리는 효과가 보이고 어떤 건 안 보여서 차이점을 찾아보니, 배경이 투명이냐 아니면 색을 꽉 채웠냐 차이였다.
그래서 전부 배경색을 넣어주니 버튼 액션이 안 보여서 더 깔끔해졌다.

그 외에는 메인화면에 삭제하기 기능을 추가한다든가 채팅방 이름을 더블클릭하면 채팅방으로 이어진다든가 아니면 if문 조건을 더 확실하게 짠다든가 하는, 여기에 다 적기엔 사소하기도 하고 구구절절 써야 하기도 하는 것들을 수정하는 작업을 했다.
일단 모든 기능이 다 작동은 하니까 아마 다음 주도 그렇게 거슬리는 것들을 수정해 나갈 것 같다.

 

3) 느낀 점

어떻게 하루하루를 지내다 보니 끝이 다가오고 있다.
확실히 처음의 마음가짐이나 협업에 대한 자세와 지금의 생각이 조금 다른 것 같다.
처음엔 빨리 완성하고 싶고 코드를 짜고 싶어서 조금 안달나있는 상태였는데 지금은 비교적 차분해진 것 같다.
물론 코드를 계속 짜고 싶은 건 똑같지만 자바를 조금 더 공부하고 프레임워크도 쓰면서 프로젝트를 해보고 싶어졌다.
파이널 전에 자바공부를 마치고 한 달 동안 개인 프로젝트로 뭔가 만들어보고 싶은 욕심이 조금 생겼다.
아마 그렇게 되면 주말이 더 없어질 것 같지만 그래도 그렇게 집중해서 시간을 쏟을 만큼 재밌기도 하고 오롯이 나 혼자 무언가를 만들 기회가 그렇게 많지 않을 수도 있으니 학원을 수료하기 전에 한번 시도해보고 싶다.
그리고 다음 주 금요일에 발표일정이 있어서 그전에 테스트와 PPT 작업을 마무리하고 팀원분들과 코드리뷰 겸 발표 예행연습을 해보기로했다.
공부 목적의 프로젝트이고 국비학원에서의 첫 프로젝트이기에 그동안의 시간투자가 헛되지 않도록 확실하게 마무리지으며 유종의 미를 거뒀으면 좋겠다.

 

4) 6주 차에 해야 할 것

  1. 테스트 반복하며 수정작업
  2. PPT 작업 완료
  3. 발표하기

 

5) 5주 차 구현 코드

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

댓글