오늘은 프로젝트에 대한 뼈대를 다 만들고, 역할을 분배했다. 나는 회원가입과 예약내역을 조회하는 부분을 맡게 되었다.
그 전에 일단 Git의 브랜치에 대해 알아보고 활용을 하기로 했었는데 나는 아직도 그게 잘 이해가 되지 않는다.. 열심히 공부해봐야겠다. 다시 프로젝트로 돌아와서, 회원가입을 하면 멤버 리스트에 멤버에 대한 정보가 ArrayList로 저장되는 형식이었는데 우리는 편의상 정보를 먼저 몇 개 넣고 시작하기로 했고 그 역할은 회원 가입을 맡은 내 몫이었다. 하지만 나는 말하는 애벌레에 불과했고.. 결국 전전긍긍하며 헤매다가 팀원분들의 도움을 받게 되었다. 처음에는 자바의 메인 클래스가 아닌, 멤버 리스트가 있는 클래스에다가 밑의 코드를 작성했는데 멤버리스트에 작성한 값이 아닌 NullPointerException 에러가 떴다. 하지만 원인을 몰랐고 허망한 마음으로 무의미하게 코드를 이리저리 굴리던 그 때, 감사하게도 팀원 한분이 튜터님에게 여쭈어보고 와서 해답을 찾을 수 있었다. 그 답은 Main클래스에서 멤버를 추가해줘야한다는 것.
// Main.java
hotel.addMemberList(new Member(1, "A", "01011113113", 100000));
hotel.addMemberList(new Member(2, "B", "01022223113", 200000));
hotel.addMemberList(new Member(3, "C", "01033333113", 300000));
hotel.addMemberList(new Member(4, "D", "01044443113", 400000));
hotel.addMemberList(new Member(5, "E", "01055553113", 500000));
System.out.println(hotel.getMemberList().get(0)); // 첫번째 멤버 조회
System.out.println(hotel.getMemberList().get(0).getMemberId()); // 첫번째 멤버의 ID 조회
// 이 방법으로 멤버 리스트에 테스트용 멤버 자료들을 넣을 수 있었다.
그리고 밑의 코드는 만약 멤버 리스트에 회원가입 때 입력한 전화번호와 동일한 번호가 있다면, false를 반환해 회원가입이 불가능하게 만드는 메서드다. 내가 만들었는데 좀 뿌듯하다 ㅎ
public boolean checkMemberPhoneNum(String phoneNumber){
for (int i = 0; i < this.hotel.getMemberList().size(); i++) {
if (this.hotel.getMemberList().get(i).getPhoneNumber().equals(phoneNumber)) {
return true;
}
}
return false;
}
하지만 미스테리한 부분도 있다. 스캐너를 통해 먼저 선택지를 받아야하는데 왜 먼저 한번 도는거지? 내일 일어나서 더 자세히 살펴볼 예정이다.
public void beforeMemberMenu(Hotel hotel, Member member, Reservation reservation, Room room){
while(true){
System.out.print(">> 메뉴화면으로 돌아가시겠습니까? (y/n): ");
String answer = sc.nextLine();
System.out.println(answer+"를 선택하셨습니다.");
//equalsIgnoreCase -> 대소문자 구분 없이 문자 비교해주는 역할을 해줌
if("y".equalsIgnoreCase(answer)){
memberMenuUI(hotel, member, reservation, room);
}else if ("n".equalsIgnoreCase(answer)) {
break;
} else {
System.out.println("잘못된 입력입니다 다시입력해주세요.");
}
}
}
// 결과
>> 메뉴화면으로 돌아가시겠습니까? (y/n): 를 선택하셨습니다.
잘못된 입력입니다 다시입력해주세요.
>> 메뉴화면으로 돌아가시겠습니까? (y/n):
일단 회원가입을 하는 부분은 어느 정도 완성된 것 같다! 이러다가도 또 내일 뭔가 크게 잘못되어서 제자리 걸음을 하게 될지도 모르지만 그래도 오늘만큼은 조금은 가벼운 마음으로 자야겠다. 내일의 사건은 내일의 나에게. 나 화이팅!
'개발일지 > 일간회고 (TIL)' 카테고리의 다른 글
발표도 끝! / TIL (22-09-14) (0) | 2022.11.29 |
---|---|
프로젝트 끝 / TIL (22-11-28) (0) | 2022.11.28 |
프로젝트 시작! / TIL (22-11-24) (0) | 2022.11.24 |
메모장 만들기 (팀 프로젝트) / TIL (22-11-23) (0) | 2022.11.23 |
Java로 카페 만들기 / TIL(22-11-22) (0) | 2022.11.22 |