자바 팀 프로젝트 계획

기획단계

	● 주제 선정 이유
    ● 로직 프로세스
    ● 테이블 설계 후 보고
    ● ERD
    

로직 프로세스

- 대분류 -

회원가입, 로그인은 View - class Index내부에서 구성
Index를 통해서 회원가입과 로그인할 수 있음
java day15, 16때 배웠던 방법 사용
사용 문법 : while(true), if, swtich
while문으로 돌려주고 if문으로는 나가기 역할
swtich는 회원가입과 로그인 구성

  1. 회원가입
    ① 아이디 중복 검색
        ● 중복검사할 도구가 필요한데 데이터와 통신할 클래스를
          별도로 만드는데 DAO로 관리하면 된다.
       ● DAO에는 데이터베이스와 직접 통신할 DBConnection class와
         직접 UserDAO에서 만든 메소드를 이용해 사용자 중복 검사
    ② 비밀번호
    ③ 주소
    ④ 휴대폰 번호

JoinView 클래스에서 작성
내부에서 '생성자'를 만들고 내부 작성
→ 호출하면 내부로 와서 내부에 있는 내용 실행이 된다.
→ JoinView 생성자에 코드를 작성하고 Index에서 메소드처럼 불러오기
내부에 있는 코드들은 View에서 구현하는 것이 아니라 UserDAO에서 구현해서
메소드로 호출하는 식으로 사용한다. UserDAO에 넘겨줘야할 데이터들을 UserDTO타입의
객체 하나로 포장해서 그 객체를 매개변수로 넘겨준다.

dao - DBConnection 클래스 구성
여기서 정의된 insert, update, delete, select를 통해 데이터베이스를 다룬다.

dao - UserDAO 클래스
내부에 DBConnection과 소통하기 위해 기본 생성자에 정의해둠
ex) DBConnection conn = null;
UserDAO는 User에 관한 데이터만 관리하는 클래스이므로
접근할 파일은 "database/UserTable.txt" 이다.
//객체가 생성되자 마자 conn을 그 파일로 잡아준다.
conn = new DBConnection("database/UserTable.txt");

dao - Session클래스 구성
로그인이 완료된 값들(userid)를 받아서 datas에 저장하고 관리한다는 거임.

dto - UserDTO 클래스
회원가입을 하고 나면 많은 정보들을 처리할 곳이 필요하다. 회원가입 클래스에서 데이터를 받고
이 데이터를 저장하거나 관리하려면 DAO로 전달해주어야 한다. 물론 여기서 바로 처리되지 않고 JoinView 클래스에서 객체화되고 그 객체가 데이터를 가지면 DAO에 전달해주게 된다. 전달 받은 데이터는 메소드를 통해 받고 이 메소드는 다시 DBConnection을 통해 데이터베이스에 저장되게 된다.

  1. 로그인
    ① 아이디 입력
    ② 비밀번호 입력
    ③ 해당 아이디 있으면 로그인 성공

view - LoginView 클래스 생성
마찬가지로 여기서도 UserDAO를 객체화 하여 사용한다. 사용자로부터 받은 데이터를 dao가 가지는 메소드를 통해 전달하게 되고 데이터를 전달받은 dao는 DBConnection을 통해 저장된 데이터베이스에 접근하여 값을 가져오고 userid를 비교하여 성공여부를 판단, 성공 시 Session에 로그인 정보를 전달한다. session에는 영구적으로 userid가 저장된것은 아니다. 프로그램이 실행 될때마다
데이터베이스에서 select메소드를 통해 가져오도록 설계되어 있는 것이다.
session에 저장된 userid를 가져와서 사용자 정보를 보여주고 있다.
→ 여기서 로그인 성공시 메인창으로 가지는 코드 작성 ex) new MainView();
→ 실패하면 로그인 실패 문구 뜨기


view - MainView 클래스
여기 클래스에서 '회원정보', '차량 검색', '커뮤니티', '상세검색', '로그아웃'
으로 가지는 코드 구현
우리가 만든 프로젝트는 무조건 main()부터 시작하는 프로그램이다.

  • 로그인한 정보를 담아주는 Session에서 login_id라는 KEY 와 쌍을 이루고 있는 값은
    로그아웃을 했다면 없애주어야 한다. 따라서 null로 초기화 해주어야 한다.
  • new ProductInfoView(); 로 받아서 출력
    해당 클래스의 기능은 사용자로부터 자세히 볼 상품의 번호를 받아서 그 번호에 해당하는 상품의 상세 설명을 출력하는 것이다. 따라서 상세 설명을 출력하는 기능을 넣어보자.
  1. 회원정보
    ① 내정보 관리
    → 1) 비밀번호 바꾸기
    2) 주소 바꾸기
    3) 휴대폰 바꾸기② 회원탈퇴

MainView에서 가질 수 있는 곳
내정보 수정으로 갈 수 있게 코드 작성
ex) MyInfoView 클래스 생성

  1. 커뮤니티

    ● 쪽지기능
    ● 좋아요 기능
    ● 구매 후기

-중분류-
5. 일반검색

  • ProductInfoView 클래스 생성
  • 상세검색할 수 있는 곳
	● MainView에서 상품검색하면 가지는 곳
	● 예시
MainView 클래스
		case 5:
		//상품 검색
		System.out.println("검색어를 입력하세요 : ");
		sc = new Scanner(System.in);
		String keyword = sc.nextLine();
		System.out.println(pdao.search(keyword));
	//아래와 같이 새로운 클래스를 정의해보자.
		new ProductInfoView();
▼ ProductInfoView 클래스 내부    
		ProductDAO pdao = new ProductDAO();
     // 자세히 볼 상품번호를 입력 받는다. 
		System.out.println("자세히 볼 상품차량 : ");
      //변수로 이름를 입력받는다. 
     	String carname = sc.next();
//		번호를 입력하면 해당되는 product를 자세히 보여주는 메소드를 실행한다.
		pdao.search(carname);

ProductDAO에서 search메소드 정의
pdao.search메소드를 구현해보자.

  1. 구매할 차량 상세정보 보기
    볼 수 있는 정보:

        ● 기본 정렬 최신순
        ● 정렬 기준 변경 가능
  2. 로그아웃

MySQL 테이블

● 회원정보 테이블
● 홈페이지 테이블
● 차량 테이블

개발 단계

● 각자 역할 분담
● 개발

정리 단계

● 나눠서 개발했던거 코드 합치기
● 오류수정

좋은 웹페이지 즐겨찾기