pc방 프로젝트 보고서 - 자바 프로그래밍
DESCRIPTION
한빛교육센터에서 자바 과정 교육을 들으면서 포트폴리오로 만들어본 Pc방 프로그램 발표보고서입니다.TRANSCRIPT
![Page 1: Pc방 프로젝트 보고서 - 자바 프로그래밍](https://reader034.vdocuments.site/reader034/viewer/2022050621/5588f60fd8b42abd418b4588/html5/thumbnails/1.jpg)
PC방 프로그램 구조도
![Page 2: Pc방 프로젝트 보고서 - 자바 프로그래밍](https://reader034.vdocuments.site/reader034/viewer/2022050621/5588f60fd8b42abd418b4588/html5/thumbnails/2.jpg)
로그인화면
![Page 3: Pc방 프로젝트 보고서 - 자바 프로그래밍](https://reader034.vdocuments.site/reader034/viewer/2022050621/5588f60fd8b42abd418b4588/html5/thumbnails/3.jpg)
메인화면
![Page 4: Pc방 프로젝트 보고서 - 자바 프로그래밍](https://reader034.vdocuments.site/reader034/viewer/2022050621/5588f60fd8b42abd418b4588/html5/thumbnails/4.jpg)
개발 환경
![Page 5: Pc방 프로젝트 보고서 - 자바 프로그래밍](https://reader034.vdocuments.site/reader034/viewer/2022050621/5588f60fd8b42abd418b4588/html5/thumbnails/5.jpg)
MVC 패턴
M
V
C
![Page 6: Pc방 프로젝트 보고서 - 자바 프로그래밍](https://reader034.vdocuments.site/reader034/viewer/2022050621/5588f60fd8b42abd418b4588/html5/thumbnails/6.jpg)
클라이언트 프레임
메인 프레임
50개의 좌석패널
좌석
회원
재고
카운터 현재유저
계산 메세지
채팅창
채팅창
V컨트롤러
호스트서버
DB쿼리
디비쿼리
M V C
![Page 7: Pc방 프로젝트 보고서 - 자바 프로그래밍](https://reader034.vdocuments.site/reader034/viewer/2022050621/5588f60fd8b42abd418b4588/html5/thumbnails/7.jpg)
핵심 : 다중채팅 알고리즘
Accept() 메소드 실행 계속 생긴 socket들은 HashMap에 저장시킨다.
![Page 8: Pc방 프로젝트 보고서 - 자바 프로그래밍](https://reader034.vdocuments.site/reader034/viewer/2022050621/5588f60fd8b42abd418b4588/html5/thumbnails/8.jpg)
호스트 서버의 모든 것
VC
![Page 9: Pc방 프로젝트 보고서 - 자바 프로그래밍](https://reader034.vdocuments.site/reader034/viewer/2022050621/5588f60fd8b42abd418b4588/html5/thumbnails/9.jpg)
상황설명
경우의 수는 컴퓨터On/Off, 로그인On/Off
컴퓨터 접속상태는 이정도.
가장 기본적인 알고리즘은
다중채팅알고리즘
![Page 10: Pc방 프로젝트 보고서 - 자바 프로그래밍](https://reader034.vdocuments.site/reader034/viewer/2022050621/5588f60fd8b42abd418b4588/html5/thumbnails/10.jpg)
프로그램 시나리오
V컨트롤 (MF, MAP, SEAT)
서버
유저
메인F (PAN)
하나의 좌석F *50
좌석 모델
M
V C
![Page 11: Pc방 프로젝트 보고서 - 자바 프로그래밍](https://reader034.vdocuments.site/reader034/viewer/2022050621/5588f60fd8b42abd418b4588/html5/thumbnails/11.jpg)
여기서 문제점! 브이컨트롤러의 주소 동기화
1. 생성할때마다 생성자로 주소 전달
2. 싱글톤패턴사용
![Page 12: Pc방 프로젝트 보고서 - 자바 프로그래밍](https://reader034.vdocuments.site/reader034/viewer/2022050621/5588f60fd8b42abd418b4588/html5/thumbnails/12.jpg)
브이컨트롤러의 핵심.
![Page 13: Pc방 프로젝트 보고서 - 자바 프로그래밍](https://reader034.vdocuments.site/reader034/viewer/2022050621/5588f60fd8b42abd418b4588/html5/thumbnails/13.jpg)
가장 힘들었던 트러블슈팅!
V컨트롤
메인F (PAN)
하나의 좌석F *50
Q
New객체는 싱글톤 메소드 아무거나 접근가능
New객체 안에서 생긴 싱글톤값가지는 객체들은 싱글톤의 스태틱만 접근이 가능했다.
![Page 14: Pc방 프로젝트 보고서 - 자바 프로그래밍](https://reader034.vdocuments.site/reader034/viewer/2022050621/5588f60fd8b42abd418b4588/html5/thumbnails/14.jpg)
가장 힘들었던 트러블슈팅!
Error! 발생!
![Page 15: Pc방 프로젝트 보고서 - 자바 프로그래밍](https://reader034.vdocuments.site/reader034/viewer/2022050621/5588f60fd8b42abd418b4588/html5/thumbnails/15.jpg)
트러블 슈팅!
Q
![Page 16: Pc방 프로젝트 보고서 - 자바 프로그래밍](https://reader034.vdocuments.site/reader034/viewer/2022050621/5588f60fd8b42abd418b4588/html5/thumbnails/16.jpg)
• 서버 작업은 가능하면 쓰레드로 주자!
• 단일 프레임(매니지먼트)작업시에는 화면이 잘 나왔는데..
• 같은 main소스를 호출함에도 로그인패널에서 실행하면 매니지먼트 프레임이 실행이 제대로 안됐음. 이유를 알고보니..싱글톤문제가 아니라..서버while문제..ㅠ.ㅠ.
트러블 슈팅!
![Page 17: Pc방 프로젝트 보고서 - 자바 프로그래밍](https://reader034.vdocuments.site/reader034/viewer/2022050621/5588f60fd8b42abd418b4588/html5/thumbnails/17.jpg)
• GUI와 쓰레드, 네트워크, 파일전송등등에 대한 대략적인 감각~
• 추상적 클래스의 유지보수
• 자바 패턴 조금 맛만..
배운점
매니지
매니지 프로토
매니지 HUD