Tiny Bunny [JAVA]팀 프로젝트_MVC 패턴을 이용한 쇼핑몰 프로그램_2 - 솜님의 블로그
솜님의 블로그
카테고리
작성일
2024. 7. 22. 23:22
작성자
겨울솜사탕

설계를 기반으로 한글 코딩을 하기 전, 담당을 나눴다.

  • 회원가입
  • 로그인
  • 로그아웃
  • 상품 목록 출력 : 재고가 없는 상품에 대해서 [품절] 표시하기

  • 장바구니에 상품 담기
  • 장바구니에 담긴 상품 목록 출력
  • 장바구니에 담긴 상품 목록 구매
  • 장바구니에서 상품 빼기

메뉴는 총 8개, 기능별로 4개 / 4개로 나눠서 담당을 구분했다!

나는 위에 있는 회원가입 ~ 상품 목록 출력 메뉴를 담당하게 되었다.

 

사용자에게 메뉴를 보여줄 때, 로그인, 로그아웃상태인 경우의 메뉴 출력이 다르기 때문에

사용자에게 입력 받는 값에 따라 실행되는 메뉴가 다르다.

따라서 번호를 먼저 정의해 주고 진행하였다. 

로그인 여부와 관계없는전체 메뉴 / 로그아웃 상태일 때 메뉴(A) / 로그인 상태일 때 메뉴(B)

main logout login
0. 종료
1. 상품목록 출력
1. 회원가입
2. 로그인
2. 장바구니에 상품담기
3. 장바구니에 담긴 상품 목록 출력
4. 장바구니에 담긴 상품 구매
5. 상품빼기
6. 로그아웃

 

 

담당한 메뉴에 대한 한글 코딩은 아래와 같이 작성하였다.

종료 (0)

if(메뉴선택==0이라면) {
	//0. 종료하기
	mainView.쇼핑몰 종료 안내();
	break;
}

 

 

상품 목록 출력 : 재고가 없는 상품에 대해서 [품절] 표시하기

else if(메뉴선택 == 1이라면) {//1. 상품 목록 출력
	// 1. 상품 목록 출력_재고 없는 상품에 대해 품절표시

	// DB에서 상품 전체 목록 받아오기 위해 객체 생성
	ProductDTO 상품DTO = new ProductDTO();
	// V에 출력 요청 + Model에서 selectAll로 상품 전체 자료 받가오기
	mainView.상품전체목록출력(상품DAO.selectAll(상품DTO));

}

 

 

회원가입

// 로그아웃 상태일때 메뉴

if(메뉴선택 == 2라면) { // 2. 회원가입
		
	MemberDTO 회원DTO = new MemberDTO(); 

	while(true) { // 아이디 중복검사하고, 중복이면 다시 반복하기 위한 while문

		// V에게서 회원가입을 할 ID를 받아와 저장시킨다
		회원DTO  = logOutView.회원가입ID();

		회원DTO.setCondition("selectOne_회원가입 에서 사용할 이름");

		// M에게서 입력한 아이디가 중복값인지 확인한다. 
		// null 혹은 data 
 	   // 반환값은 CUD는 boolean, selectOne==DTO All==AL
		if(회원DTO != null) { //만약 회원DTO가 null이 아니라면 (저장된 ID와 일치하는 정보가 없다면)
			// while문을 탈출
			break;
		}
		else{ // 일치하는 ID가 있다면 회원DTO가 null이라면
			// 다시 입력 요청, while문 반복
			logoutView.중복아이디있음();
		}

		// 비밀번호를 받을 임시 저장소인 회원DTO 하나 생성해주기
		MemberDTO 회원DTO_2=new Member();

		// 비밀번호 V에게 입력 요청 및 입력받기
		// 1차 2차 입력받고 유효성 검사까지 끝나서 가입 완료가 된 자료를 저장
		회원DTO_2 = logOutView.회원가입PW();

		// ID가 저장된 DTO에 PW DTO 값을 저장해준다
		회원DTO.set비밀번호(회원DTO_2.get비밀번호)

		// 합쳐진 ID와 PW를 DB로 보내준다. (insert)
		memberDAO.insert(회원DTO);

	}

}

 

 

로그인

else if(메뉴선택 == 3이라면) { // 3. 로그인

	MemberDTO 회원DTO = new MemberDTO(); 

	// V에 아이디와 비밀번호 입력받아오기
	// 받아서 저장할 DTO 생성해서 받아온 ID, PW 저장
	MemberDTO 데이터= loginView.로그인/아이디비번();

	// 회원DTO에 ID, PW 정보를 저장한다.
	// 이는 selectOne에서 검색을 위한 정보이다.
		회원DTO.set아이디(데이터.get아이디());
	회원DTO.set비밀번호(데이터.get(비밀번호());

	// selectOne 안에서 구분하기 위한 Condition
	회원DTO.setCondition("selectOne_로그인에서 사용할 이름");

	// model의 selectOne에 ID, PW 자료를 넘겨서 DB에 저장된 자료가 있는지 확인한다
	// 확인 후 자료가 있으면 자료가 반환, 없다면 null 값이 반환
	데이터=memberDAO.selectOne(회원DTO);

	if(회원정보가 있다면,데이터 !=null ) {
		// 로그인 상태로 전환한다
		user=data;
		// 로그인 되었다는 문구 출력
		loginView.로그인 되었습니다();
	}
	else { //회원 정보가 없다면, 데이터==null
		loginView.로그인 실패!();
	}

	}

} // 로그아웃 상태 메뉴 끝

 

 

로그아웃

else if(메뉴선택==6이라면) { // 6. 로그아웃

	// 로그아웃시 장바구니 초기화!
	this.basket=0;
	// 회원정보 로그아웃으로 변경
	user=null;
	continue;
}

 

 

 

이렇게 담당한 부분에 대한 한글 코딩을 각자 진행하고, 만나서 각자의 한글 코딩에 부족한 점이 있는지 서로 살펴보았다!

나는 전체 class / 생성자 / while문 / 내가 담당한 파트까지 작성했고, 같은 팀원분께서 많이 이끌어 주셨던 것 같다.

한글 코딩 한 내용을 둘이 합쳐서 Controller 내용을 전체적으로 만들고,

이 내용을 기반으로 유효성 검사가 필요한 부분과 / View 파트에 출력 혹은 입력받는 부분이 필요한 내역을 전달해서,

전체 팀 파트때 해당 내용을 전달드렸다.

 


 💭 유효성 검사

  • 메뉴 선택받기 : 메뉴사이즈 반환 (로그인,아웃 여부에 따라 다름)

// 회원가입

  • 입력받은 id가 최종적으로 맞는지 확인

// 장바구니에 상품 담기

  • 사용자에게 상품 목록 보여주고 선택 받을 때 ( 배열리스트 datas 반환)
  • 사용자에게 장바구니에 담을 수량 선택 받을 때 ( 상품DTO data 반환)

// 장바구니에서 상품 제외하기

  • 장바구니에서 제외할 상품을 선택할때 (this.장바구니 전달)
  • 장바구니에서 제외할 수량을 선택할때(this.장바구니 전달)

 💡 view 파트에서 받아와야 할 List

  • MainView
    • 로그인,로그아웃 여부와 관계없는 전체 메뉴판
    • 메뉴 번호 선택하라는 안내와 메뉴 입력받기 (*유효성)
    • 쇼핑몰 전체 종료 안내 (프로그램 종료)
    • 상품 전체 목록 출력
  • LoginView
    • 로그인시 나오는 메뉴판
    • 장바구니에 담을 상품 선택하라는 안내와, 선택받기 (*유효성)
    • 장바구니에 담을 상품 수량 선택하라는 안내와, 선택받기 (*유효성)
    • 장바구니에 추가 되었습니다. 멘트 출력
    • 장바구니 전체 목록 출력
    • 장바구니 전체 목록과 구매 갯수, 합계를 보여주기
      • 구매 의사 확인하여 반환
    • 장바구니에서 제외할 상품 선택하라는 안내와, 선택받기 (*유효성)
    • 장바구니에서 제외할 상품의 수량 입력하라는 안내와, 입력받기(*유효성)
  • LogoutView
    • 로그아웃시 나오는 메뉴판
    • 회원가입시 아이디 입력하라는 안내와, 입력받기 (*유효성)
    • 회원가입시 중복 아이디 있다는 안내
    • 회원가입시 비밀번호 입력하라는 안내와, 입력 받기(*1차, 2차 받아서 유효성)
    • 가입을 환영합니다 출력