📘 0627 자바 학습 정리
1. 시스템 개요
- 기능: 회원 정보를 관리하는 CRUD 기반 콘솔 애플리케이션
- 정보 항목: 이메일, 비밀번호, 이름, 회원식별번호(id), 성별, 나이, 가입일
- 기능 요약:
- 회원 등록, 조회(전체/개별), 수정, 삭제, 복구
2. 주요 클래스와 역할
✅ Member 클래스
- 회원 1명의 정보를 담당
- 필드: 이메일, 비밀번호, 이름, UUID로 생성된 id, 성별, 나이, 가입일(LocalDateTime)
- 주요 메서드:
toString(): 회원 정보 문자열 반환
inform(): 사용자 친화적인 포맷으로 정보 출력
✅ Gender 열거형
✅ MemberRepository 클래스
- 회원 데이터 저장소 (배열로 관리)
- 내부 배열로 회원들을 보관하며, 동적으로 크기를 확장해 데이터를 추가
- 주요 메서드:
addMember(Member): 배열에 새 회원 추가
getMembers(): 전체 회원 반환
findMemberByEmail(email): 특정 이메일로 회원 검색
isDuplicateEmail(email): 이메일 중복 검사
✅ MemberController 클래스
- 사용자 입력과 응답을 담당 (입출력 담당)
- 주요 메서드:
start(): 메뉴 반복 실행
processMenu(String): 입력받은 메뉴 처리
signUp(): 회원 등록
showAllMembers(): 전체 회원 조회
checkDuplicateEmail(): 이메일 중복 체크
inputCorrectGender(): 성별 입력 유효성 검사
prompt(String): 사용자로부터 입력 받는 메서드
✅ Run 클래스
- 메인 메서드 포함
- 프로그램 시작점:
MemberController의 start() 호출
3. 동작 흐름 요약
Run.main() → MemberController.start() 호출
- 메뉴 출력 → 사용자 입력 대기
- 입력 값에 따라 CRUD 기능 수행
- 회원 데이터는
MemberRepository 내부 배열에 저장/조회됨
- 사용자 입력 시 유효성 검사 수행
✅ 요약
- 객체 지향 설계 원칙을 잘 활용한 회원관리 시스템
- 배열 동적 확장, 객체 간 협력, 캡슐화 개념이 잘 녹아있음
- 사용자 친화적인 입력/출력 구조 적용
UUID, LocalDateTime, enum, switch, Scanner 등 다양한 자바 요소 학습 포함