제작기간 3주
제작 인원 5명
사용 기술 : Java Swing, Oracle Database
주요 기능 : 로그인, 회원가입, 쪽지, 귓속말, Socket을 이용한 채팅, 그림 그리기.
정처기 필기 시험으로 인해 프로젝트 발표 직후 진행하지 못했던 코드리뷰를
2주가 지나서 드디어! 5명이 모여서 코드리뷰를 2시간 가량 진행했다.
코드리뷰하며 헷갈렸던 점 정리
11) 서버가 클라이언트를 낚아채서 핸들러와 짝궁 지어줄 때
list의 주소값을 주는 것이기 때문에 해당 리스트에 추가되는 값, 제거되는 값이 동일하게 적용된다.
만들어진 list 객체를 넘겨주는 게 아니라 list객체가 있는 곳(주소)을 알려주는 것이다!
2) 최초 입장 메시지 처리 시에 dto에서 닉네임 값을 꺼내서
필드에 선언해둔 nickname이 닉네임 값의 주소값을 갖도록 연결!
1과 2로 인해 같은 list객체 주소값만 가지고 있다면
그 리스트에서 특정 닉네임을 갖고 있는 핸들러를 특정할 수 있고
특정한 뒤에 귓속말, 쪽지, 채팅 기록 db저장 등의 기능으로 확장시킬 수 있다.
강사님 그림판과 다르게
본격 그림을 그리는 녀석은 Graphics2D 객체이다.
이녀석은 두께 설정이 가능하기 때문이다.
연습장인 Image타입 객체 bufferImg에다가
2D객체(bufferG)로 그림을 그린 뒤에
완성된 연습장인 bufferImg를
본 캔버스에다가 drawImage 한다.
이때 그리는 녀석은 Graphics g 이다.
얘는 완성된 Img를 옮겨 그리기만 하는 거라서 두께 설정이 필요 없다.
(생각해보니 둘다 2D여도 노상관일듯?)
bufferG로 bufferImg에다 그림 그리기 (연습장)
g로 canvas에다 그림 그리기 (본 캔버스)
Game 클래스에다 본 캔버스의 주소값 알려주기.
bufferG = Graphics 2D 객체
bufferImg = Image 자료형 객체
g = Graphics 객체
canvas = Canvas 객체
5월 5일 - 회원가입, 이메일 발송, 스레드를 이용한 유효성 검증
5월 14일 - Socket 네트워크, paint 메소드를 이용한 그림 그리기 프로토타입 완성
5월 21일 - 최종 완성
https://github.com/HJ-Rich/catchMind
'Java & Spring' 카테고리의 다른 글
Spring Async 스프링 비동기 수행 (0) | 2020.08.07 |
---|---|
2020. 08. 06 (목) 스프링 시큐리티 적용 (3) | 2020.08.07 |
2020.05.22 (금) 미니 프로젝트 발표일 : 캐치마인드 완성 CatchMind (2) | 2020.05.22 |
2020.05.14 (목) 학습 : 캐치마인드 Socket 그림판 (0) | 2020.05.15 |
2020.05.12 (화) 학습 : Oracle 시작, Thread, isFocusOwner(), JLabel (0) | 2020.05.13 |