본문내용
1. 프로그램 개요 및 설계
1.1. 객체지향프로그래밍 TermProject -컴퓨터 서버 연결 후 동작 (가위바위보)
객체지향프로그래밍 TermProject -컴퓨터 서버 연결 후 동작 (가위바위보)은 경영학과 학생이 객체지향프로그래밍 수업의 과제로 구현한 프로그램이다"
이 프로그램은 평소 관심 있던 증권시장과 관련된 내용을 바탕으로 구현되었다. 증권투자동아리 회장 경험을 토대로 선물옵션 거래 시스템에 흥미를 느낀 학생은 이번 기회를 통해 상승과 하락을 예측할 수 있는 프로그램을 만들고자 하였다".
프로그램 개요는 다음과 같다. 인터넷에서 구할 수 있는 증권시장의 실시간 정보를 바탕으로 상승 또는 하락을 배팅하고 자신의 승률을 알 수 있는 프로그램을 구현하는 것이다. 이를 위해 HTS 기능을 수행할 서버와 각 증권계정 역할을 할 클라이언트 서버가 필요하다. 하지만 정보를 실시간으로 받아오고 모의 거래를 하는 것은 프로그래밍 실력이 부족하고 데이터를 가공하기 어려워 어려움이 있었다. 따라서 이번 프로젝트에서는 컴퓨터에 서버를 만들고 서버에 접속하여 가위바위보 게임을 하는 프로그램을 구현하기로 하였다".
프로그램 설계는 다음과 같다. 서버 측에서는 Vector 클래스를 이용하여 소켓을 관리하는 벡터를 선언하고, 가위바위보 게임을 위해 Random을 사용하여 0~2 사이의 난수를 발생시킨다. 포트번호 7777을 부여한 소켓을 생성하여 클라이언트가 접속을 시도하면 소켓이 만들어지면서 자동으로 스레드가 생성되어 클라이언트와 서버가 연결된다. 클라이언트 측에서는 Frame과 Actionlistener를 사용하여 가위, 바위, 보의 버튼을 만들고 실행결과를 출력해줄 창을 만든다. 사용자가 버튼을 누르면 "OK" 문자열을 서버로 전송하여 서버에 난수 값을 요청하고, 받은 값은 유저가 초기에 입력한 키 값을 이용하여 복호화한다. 그 후 클라이언트의 값과 서버의 값을 비교하여 가위바위보의 결과에 따라 승, 패, 또는 무승부를 출력한다".
프로그램 구현 및 코드는 다음과 같다. 서버 측에서는 벡터 내에 클라이언트 수를 출력하여 연결된 클라이언트 수를 확인할 수 있도록 하고, 접속에 실패하거나 예외가 발생하면 예외이벤트를 출력하는 예외처리를 하였다. 클라이언트 측에서는 소켓의 입출력 스트림을 이용하여 서버와 데이터를 주고받으며, 가위바위보 버튼을 누를 때마다 "OK" 문자열을 서버로 전송하여 게임을 진행한다. 또한 누적승률을 계산하여 출력하고, 종료 버튼 클릭 시 결과를 텍스트 파일로 저장한다"
이와 같이 객체지향프로그래밍 TermProject -컴퓨터 서버 연결 후 동작...