본문 바로가기
Team Project (국비)/Team Project

6월 19일 프로젝트 View 파트

by Hwanii_ 2023. 6. 24.
728x90

 

메뉴가 있는 함수들은 사용자에게 메뉴 넘버를 입력받을 때

그 범위를 벗어나면 안되서,

유효성 검사를 위해서 선언해 놓은 클래스 변수 들 이다.

 

스캐너도 자주 사용하니, static 키워드를 붙혀서 상단 배치를 한 모습 이다.

 

 

위와 같이 메뉴가 있는 함수들은,

return 값으로 해당 메뉴의 개수를 숫자로 주는 모습이다.

 

 

회원가입 시, 사용자에게 비밀번호를 입력 받았을 때,

입력한 비밀번호가 정말 맞는지 재확인을 받는 모습이다.

 

mpw가 checkMpw 와 다르면 while문을 무한히 도는 로직 이다.

 

둘이 같다면, if문이 거짓이라 실행을 하지않고, return 값으로 mpw을 뱉어낸다.

 

 

회원가입이 끝나고, 추천인을 등록시

 

추천인 등록을 안할시, 2번이고,

return 값으로 String 타입을 뱉는 상황이라, 그냥 직관성을 위해

C에게 "추천인등록안함"을 주는 모습 이다.

 

추천인 등록을 한다면, 1번이고,

 

이때, signUpSelfCheck(mid) 라는 함수를 호출 시킨다.

 

해당 함수는 mid를 인자로 받고 있는 모습이다.

이 mid는 회원가입에 성공해서, 그 mid에 대한 정보를 받아서 인자로 넣는 모습을 볼 수 있다.

 

151번째의 해당 함수를 보면,

추천인을 입력할 때, 자기 자신 mid를 입력하면,

if문이 참이되서 while문을 무한히 돌게 된다.

 

자기 자신 추천이 아니라면, return 값으로 추천인 mid를 토해낸다.

 

그 추천인 mid 값을 138번째 라인의 함수 내부를 보면

144번째 라인에서 추천인 mid 값을 return 하는 모습을 확인할 수 있다.

 

 

마찬가지로 메뉴가 있기 때문에, maxClientMenu (6)를 return 값으로 주는 모습 이다.

 

 

만약에 6이 int num으로 넘어왔으면,

사용자가 입력한 번호가 num보다 클 경우 번호가 일치하지 않는다고 하고

재 입력을 받게 되는 로직 이다.

 

 

책 목록을 전체 출력할 때

C에게 BookVO 타입의 배열리스트 데이터를 통으로 받게 된다.

bdatas가 isEmpty 야? 그러면 목록 출력 X 이고,

 

그게 아니라면,

for문을 통해, 배열리스트 내부의 책 (객체) 정보를 하나하나 println 하게 된다.

 

사용자 편의성을 위해, V에서 201번째 라인과 같이 작성한것을 확인.

 

이런 느낌

 

for문은 일반적인 for문 사용 하던지,

이미지 처럼 for each문을 사용 하던지,

원하는대로..

 

참고로 이때, for문을 사용하지 않고, 배열리스트 참조변수 자체를 println 하게 되면,

배열리스트 자체가 toString이 되어 있긴 해서, 책 (객체)의 정보들이 

[ ㅁㅇㅁ, ㅁㄴㅇㅁㅇ, ㅁㅇㅁㄴㅇ, ㅁㄴㅇㅁㅇ, ... ] 식으로 나오게 되긴 한다.

 

toString이 아예 안되있으면 참조변수 그 자체를 println 하면 알 수 없는 주소값이 나온다.

 

 

책 검색 메뉴 이다.

 

 

 

 

검색 키워드를 C에서 일일이 주지 않고,

V에서 각 경우때마다 키워드 값을 set 하고,

이러한 정보들이 담긴 객체 자체를 return 해주는 모습.

 

이름으로 검색 메뉴는

새 키워드용 변수를 만들어서 title 값을 보낼 필요가 없을 수도 있었지만,

 

VO에서 이름을 changeTitle 이라 만들어 줘서 저렇게 보낸 모습.

변수명이 사실 어감상 맞진 않아서 다음에 이런 부분들을 잘 생각해야할듯 하다.

 

애초에 이름 검색인데, title이 왜 change 되는건지,,

차라리 searchTitle 라던지 식으로 변수명을 지었으면,,

 

필터 검색은 최저가 최고가 값이 필요하므로

키워드용 임시변수로 보내는 모습이다.

setMinPrice

setMaxPrice

 

 

회원탈퇴시, 1번 눌렀을 때, 바로 회원 탈퇴 되게끔 하면 너무 사용자편의성 고려가 안되기에

 

"회원탈퇴" 를 정확히 입력해달라는식으로 구현했는데,

 

자바로 View 파트를 구성했기에 이렇게 했고, 나중에는 어떤 해당 버튼을 누른다던지 식으로

회원탈퇴 부분을 짜면 좋을듯 하다.

 

정확히 입력했을 경우, "회원탈퇴" 라는 값이 담긴 변수 check를 return 한다.

C는 그것을 받고, 만약에 check가 회원탈퇴야 ? 그러면 

로그인 되어있는 회원의 객체 정보를 사용해서 delete() 를 하면 된다.

 

MemberDAO의 sql 문이

DELETE FROM MEMBER WHERE MID = ? 식으로 되어있을 것이다.

 

 

장바구니 메뉴

 

 

책 한권 삭제 할 경우, 책의 번호를 사용자에게 입력 받기.

 

 

유효성 검사를 위해 tryCatch를 하면서 사용자에게 번호를 입력 받기.

 

AdminView 파트도 특별하게 다른것은 없다.

 

 

이런식으로 ClientView와 동일하게 구성되어 있다.

 

 

 

반응형