자바로 PC방 프로그램만들기

1초식. 검술준비! 현실->프로그래밍 기획

로그인을 위한 member객체와 GETTER, SETTER 만들기
테스트용 프로그램의 특징은 DB환경에 종속되지 않는 것입니다. 추후 이 부분 내장DB로 전환할 예정입니다. 

 

기획은 모든 것의 시작이고 시작은 곧 절반이라 하였습니다.

잘못된 기획은 프로그래머의 개발초식을 늘리며 검술 구현시간을 늘리고는 합니다.
따라서 개발을 앞서  기획을 하는 데있어서 규모가 커질 수록
많은 시간을 할애하는 것은 지나치다고 생각하지 않습니다.

기획이 완성되면 기획에 맞추어 디자인을 하고 디자인에 맞추어 프로그래밍을 하면 된다고 생각합니다.
애플이 디자인의 문제로 배터리 문제를 하나로 하였듯이 때로는 디자인이 기능을 우선하기도 합니다.

아무튼 일단 여기서는 그냥 몇가지 기획을 해보며 실제 현실세계의 정보들을
자바의 기본적인 설계에 맞추어서 어떻게 매핑을 하는지 생각을 해볼까 합니다.

 
영상에서 ID를 INT로 주는데 VARCHAR (20정도?) 로 주셔야 합니다.

현실세계의 생각. 생코PC방의 가정.

아라한사는 신입 풋내기 프로그래머입니다.

초난감 프로젝트소스를 만들어내고 팀에서 쫓겨난 아라한사는, 치킨집 대신에 PC방을 차려보려고 합니다.

눈을 감고 피시방에 가봅니다. 시나리오를 그려봅니다.

돈을 벌기 위해서 성인PC방을 생각해내고, 요금은 10초당 100원씩 냅니다.

 

먼저 관리자 프로그램을 만들어 관리자 로그인을 해야겠지요.

자리는 50석 정도를 생각하고 있습니다. 네트워크로 서버를 관리서버를 두어야겠군요.

손님은 자리에 와서 클라이언트 프로그램으로 로그인을 해서 키고(비회원도 가능),  사용종료를 할 것입니다.

컴퓨터 50대가 꺼져있다가, 켜질 것입니다.  로그인을 하고 로그아웃을 하겠죠..

 

사용자가 보는 화면, 관리자가 보는 화면을 직접 만들어야겠고.. 이러한 화면을 보면서

각각의 자신의 회원정보(요금, 사용자리, 아이디, 비밀번호 등등) 을 시간경과, 이벤트에 따라 조종을 해야 겠다는 생각을 해보게 된 아라한사는 프로그래밍을 시작합니다.

 

현실을 컴퓨터로 매핑

모델 생성

이클립스 시작 - > 패키지들 생성.

가장 먼저! 회원 Member 객체부터 만들어봅시다 !!

 pc방 회원노트 (관리자 포함) 생각해보면..

회원에 들어갈 것들 순번(num), 아이디(id), 이름(name), 전화번호(tel), 비밀번호(password), 마일리지(mileage), 나이(age)를 생성.

phpmysql로 테이블 생성

DB에도 똑같이 생성합니다. 

 

Tip : 이클립스 Get/Set 자동 생성 단축키 Shift+ Alt + S

음..다음시간에는 로그인테스트를 해보고 로그인폼을 만들어보도록 하지요!

감사합니다.

 

 

사용된 소스들

자바 모델

package model;

public class Member {
    private int num;
	private String id;
	private String password;
	private int age;
	private int mileage;
	private String phone;
    
    //컨트롤+알트+ S 누르시고 GENERATE GETTERS AND SETTERS 에서
    //게터 세터 만드시면 게터세터 자동 생성!
}

 데이터베이스 테이블 생성 소스

CREATE TABLE `member_test` (
  `num` int(11) NOT NULL AUTO_INCREMENT,
  `id` varchar(20) NOT NULL,
  `password` varchar(200) NOT NULL,
  `age` int(11) NOT NULL,
  `phone` varchar(100) NOT NULL,
  `mileage` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `num` (`num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

 

댓글

댓글 본문
  1. 비누맛인삼
    안녕하세요 java 초보인데 혹시 apmsetup으로도 가능한지에 대해서 질문이 있습니다!
  2. 안형우
    java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at assets.DBConnectionMgr.getConnection(DBConnectionMgr.java:115)
    at test.LoginTest.loginTest(LoginTest.java:32)
    at test.LoginTest.main(LoginTest.java:12)
    로그인 결과 : false


    이러한 에러들이 뜹니다...아무리 생각해도 코드가 틀린건 없는 것 같고요. 동영상보고 프로젝트-패키지-클래스 순으로 잘 생성했고요. 하나가 걸리는게 있는데 DBConnectionMgr.java에서 db주소, 아이디, 비밀번호 설정부분에서 잘못된것 같은데. 아이디랑 비밀번호는 MySql에서 설정한 것으로 했고요, db주소는 phpmyadmin 접속이 가능한 주소인 //localhost로 하였습니다. 어디서 잘못된건지 알 수 있을까요...?

    참고로 "04_로그인 초식 구현" 까지 영상을 봤습니다!
  3. 아라한사
    예. 데이터베이스를 보기편하게 해주는...그런 도구입니다^^;
    대화보기
    • 나름 노하우
      php myadmin 이 무엇인가요??
    • 아라한사
      앗..제가 요즘 문서작업 막바지 작업중인지라...쉬프트알트에서 소스창에서 이제 겟셋 눌르는거 아닌가요?
      댓글 감사하구요 확인해보겠습니다. ㅎㅎ
      대화보기
      • 외국노동자
        안녕하세요. 잘봤습니다.
        getter setter 단축키가 조금 틀렸네요.
        Shift + Alt + s ^ .. ^