프로그래밍

[자바 기초] MVC 패턴 : 영화 크롤링해서 예매하기 본문

프로젝트

[자바 기초] MVC 패턴 : 영화 크롤링해서 예매하기

시케 2023. 6. 2. 17:44
728x90
반응형

MVC 패턴 : 영화 크롤링해서 예매하기

영화 정보를 크롤링하여 MVC 패턴으로 예매하는 기능을 가진 프로그램 구현하기

 

이전 MVC 패턴 게시글

2023.05.23 - [자바 기초] - [자바 기초] day15 : MVC(Model, View, Controller)

 

[자바 기초] day15 : MVC(Model, View, Controller)

2023.05.23.화 MVC 스프링 프레임워크는 MVC 템플릿을 제공한다 M model 모델 데이터(DB)와 관련된 로직을 담당하는 파트이다 DB에서 데이터를 다루는 방법에 대한 코딩한다 (SQL) DAO (Data access Object) DB의

dev-9rm.tistory.com

 

기본 설계서

MemberVO
	아이디(PK)
	비밀번호
	이름
FilmVO(영화)
	번호(PK)
	이름
	개봉일,가격,가수,댓글수 등...
	예매수,조회수,구매횟수 등...
	회원가입시 PK 중복체크 필수 -> id
	크롤링으로 샘플데이터 확보

프로그램 - View
- 로그인
- 회원가입
- 비회원 예매
- 프로그램 종료

사용자모드 - View
- 목차
- 영화 목록 출력
- 인기순위 목록 출력
- 예매하기
- 검색하기(이름으로 검색)
- 프로그램 종료

주의 사항
- 유효성 검사 - View
- 예외 처리 - View
- 기능 검사 - DAO
- 로그 - DAO
- 사용자편의성 - 전체 다 고려

변수,메서드 명
DAO는 고정이고
View쪽 출력 형식:  기능+주제+성공실패

[ Model ] Member 설계서

MemberVO
   private String mid 	// 아이디(PK)
   private String mpw	// 비밀번호
   private String name	// 이름

// 생성자 ---> 모든 값 입력 받아야 생성
public MemberVO(String mid,String mpw,String name) {
	this.mid=mid;
	this.mpw=mpw;
	this.name=name;
}

getter setter
toString 오버라이딩
equals 오버라이딩 	// 아이디(PK)가 같다면 같은 객체

//////////////////////////////////////////////////////////////////////////////////////////////////////////
MemberDAO
실패 혹은 null 일시 ---> 로그 출력합니다
//*******************************************************************************//
private ArrayList<MemberVO> datas;
생성자 MemberDAO() {
	datas = new ArrayList<MemberVO>(); //객체 생성
	datas.add(new MemberVO("admin", "1234", "관리자"));
	datas.add(new MemberVO("coding_helper", "timo", "작은 티모"));
}
//*******************************************************************************//

public boolean insert(MemberVO mVO)
회원가입		// 아이디 중복 검사 후 가입 > flag 사용 예정
				// 가입 성공 ---> return true; 가입 실패 ---> return false;

getMid(), getMpw(), getName()
아이디, 비밀번호, 이름 각 인자로 받음

//*******************************************************************************//

public MemberVO selectOne(MemberVO mVO)
로그인		// 해당 아이디 있는지 확인
			// 비밀번호 일치하는지 확인
			// 존재확인 성공 ---> return 해당 객체; 존재확인 실패 ---> return null;

getMid()로 해당 아이디 존재하는지 확인 후에 있다면 getMpw()로 비밀번호 확인
로그인 성공--->해당 객체 반환
로그인 실패--->return null;



//*******************************************************************************//

public ArrayList<MemberVO> selectAll(MemberVO mVO)
return null;		//회원 목록 출력 기능
			// 해당 사항 없으므로 return null
해당 사항 없음	

//*******************************************************************************//

public boolean update(MemberVO mVO)
return true;		// 해당 회원의 비밀 번호 변경
return false;


//*******************************************************************************//

public boolean delete(MemberVO mVO)
회원탈퇴		// 해당 아이디 있는지 확인 후 삭제
				// 삭제 성공 ---> return true; 삭제 실패 ---> return false;

getMid()로 해당 아이디 존재하는지 확인 후에 있다면 삭제 후 성공/실패 반환

//*******************************************************************************//

[ 우선순위 ]
객체 생성
회원가입
로그인
회원탈퇴
회원 비밀번호 변경

[ Model ] Film 설계서

FilmVO
   private int num 		// 아이디(PK)
   private String name	// 이름
   private String odate	// 개봉일
   private int cnt		// 예매수

// 생성자 ---> 모든 값 입력 받아야 생성
public FilmVO(int num,String name,String odate) {
	this.num=num;		// Pk
	this.name=name;		// 영화이름
	this.odate=odate; 	// 개봉일
	this.cnt=0;			// 예매수
	System.out.println(" 로그: FilmVO(): 영화 생성");
}
getter setter
toString 오버라이딩

//////////////////////////////////////////////////////////////////////////////////////////////////////////
FilmDAO
실패 혹은 null 일시 ---> 로그 출력
//*******************************************************************************//

private ArrayList<FilmVO> datas;

// 생성자 ---> 크롤링 통하여 데이터 생성
public FilmDAO() {				
	this.datas=Crawling.sample();	
	
}

//*******************************************************************************//

public ArrayList<FilmVO> selectAll(FilmVO fVO){
	fVO가 널일 경우: 전체 목록 출력
	fVO.getNum()이 1일 경우: 인기순 영화 출력(예매수 높은 순)
	두 경우 모두 해당 안될 경우: 이름 검색

}

//*******************************************************************************//

public FilmVO selectOne(FilmVO fVO) {
	// 영화의 존재유무 확인
	// 입력한 fVO 값의 Num과 
	// datas의 Num과 일치하는지 확인
존재 ---> return fVO
존재하지 않으면 ---> return null
}

//*******************************************************************************//

public boolean insert(FilmVO fVO) {
	return false;
	// 해당 사항 없음
}

//*******************************************************************************//

public boolean update(FilmVO fVO) {	//예매할 영화 Pk,티켓 수 입력
	//예매할 영화 Pk,티켓 수 입력받음
	// 해당 영화 존재시 예매

예매 성공 ---> return true
예매 실패 ---> return false 로그 출력
}

//*******************************************************************************//

public boolean delete(FilmVO fVO) {
	return false;
	// 해당 사항 없음
}

//*******************************************************************************//

[ 우선순위 ]
객체 생성
전체 목록 출력
이름 검색
존재 유무 확인
예매
인기순 목록 출력

 

 

https://github.com/jihyean/Java/tree/main/HW04

 

GitHub - jihyean/Java

Contribute to jihyean/Java development by creating an account on GitHub.

github.com

 

728x90
반응형
Comments