TIL
(2024-05-02) 팀 프로젝트 템플릿코드 분석및 구현
o_coding
2024. 5. 2. 19:52
// 데이터 저장소
private static List<Student> studentStore;
private static List<Subject> subjectStore;
private static List<Score> scoreStore;
// 과목 타입
private static String SUBJECT_TYPE_MANDATORY = "MANDATORY";
private static String SUBJECT_TYPE_CHOICE = "CHOICE";
// index 관리 필드
private static int studentIndex;
private static final String INDEX_TYPE_STUDENT = "ST";
private static int subjectIndex;
private static final String INDEX_TYPE_SUBJECT = "SU";
private static int scoreIndex;
private static final String INDEX_TYPE_SCORE = "SC";
private static List<Student> studentStore;
private static List<Subject> subjectStore;
private static List<Score> scoreStore;
// 과목 타입
private static String SUBJECT_TYPE_MANDATORY = "MANDATORY";
private static String SUBJECT_TYPE_CHOICE = "CHOICE";
// index 관리 필드
private static int studentIndex;
private static final String INDEX_TYPE_STUDENT = "ST";
private static int subjectIndex;
private static final String INDEX_TYPE_SUBJECT = "SU";
private static int scoreIndex;
private static final String INDEX_TYPE_SCORE = "SC";
전체적으로 사용할 저장소를 만드는대 사용할 필드들
public static void setInitData() {
studentStore = new ArrayList<>();
subjectStore = List.of(
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"Java",
SUBJECT_TYPE_MANDATORY
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"객체지향",
SUBJECT_TYPE_MANDATORY
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"Spring",
SUBJECT_TYPE_MANDATORY
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"JPA",
SUBJECT_TYPE_MANDATORY
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"MySQL",
SUBJECT_TYPE_MANDATORY
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"디자인 패턴",
SUBJECT_TYPE_CHOICE
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"Spring Security",
SUBJECT_TYPE_CHOICE
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"Redis",
SUBJECT_TYPE_CHOICE
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"MongoDB",
SUBJECT_TYPE_CHOICE
)
);
scoreStore = new ArrayList<>();
}
studentStore = new ArrayList<>();
subjectStore = List.of(
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"Java",
SUBJECT_TYPE_MANDATORY
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"객체지향",
SUBJECT_TYPE_MANDATORY
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"Spring",
SUBJECT_TYPE_MANDATORY
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"JPA",
SUBJECT_TYPE_MANDATORY
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"MySQL",
SUBJECT_TYPE_MANDATORY
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"디자인 패턴",
SUBJECT_TYPE_CHOICE
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"Spring Security",
SUBJECT_TYPE_CHOICE
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"Redis",
SUBJECT_TYPE_CHOICE
),
new Subject(
sequence(INDEX_TYPE_SUBJECT),
"MongoDB",
SUBJECT_TYPE_CHOICE
)
);
scoreStore = new ArrayList<>();
}
저장소 생성 코드 우선 필수과목과 선택과목을 임의로 지정
public static String sequence(String type) {
switch (type) {
case INDEX_TYPE_STUDENT -> {
studentIndex++;
return INDEX_TYPE_STUDENT + studentIndex;
}
case INDEX_TYPE_SUBJECT -> {
subjectIndex++;
return INDEX_TYPE_SUBJECT + subjectIndex;
}
default -> {
scoreIndex++;
return INDEX_TYPE_SCORE + scoreIndex;
}
}
}
switch (type) {
case INDEX_TYPE_STUDENT -> {
studentIndex++;
return INDEX_TYPE_STUDENT + studentIndex;
}
case INDEX_TYPE_SUBJECT -> {
subjectIndex++;
return INDEX_TYPE_SUBJECT + subjectIndex;
}
default -> {
scoreIndex++;
return INDEX_TYPE_SCORE + scoreIndex;
}
}
}
중복되는 id값이 없도록 id값을 생성하는 메서드
public void createStudent(String studentName) {
// 기능 구현 (필수 과목, 선택 과목) 미구현
Student student = new Student(InitData.sequence(InitData.getIndexTypeStudent()), studentName,InitData.getSubjectStore()); // 수강생 인스턴스 생성 예시 코드
// 기능 구현
InitData.getStudentStore().add(student);
System.out.println("수강생 등록 성공!\n");
}
public void inquireStudent() {
System.out.println("\n수강생 목록을 조회합니다...");
// 기능 구현
InitData.getStudentStore().forEach(student -> System.out.println("학생번호 : "+student.getStudentId() +
" 이름 : "+ student.getStudentName()));
System.out.println("\n수강생 목록 조회 성공!");
}
// 기능 구현 (필수 과목, 선택 과목) 미구현
Student student = new Student(InitData.sequence(InitData.getIndexTypeStudent()), studentName,InitData.getSubjectStore()); // 수강생 인스턴스 생성 예시 코드
// 기능 구현
InitData.getStudentStore().add(student);
System.out.println("수강생 등록 성공!\n");
}
public void inquireStudent() {
System.out.println("\n수강생 목록을 조회합니다...");
// 기능 구현
InitData.getStudentStore().forEach(student -> System.out.println("학생번호 : "+student.getStudentId() +
" 이름 : "+ student.getStudentName()));
System.out.println("\n수강생 목록 조회 성공!");
}
구현 해본 기능(수강생 등록,조회)