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";

 

전체적으로 사용할 저장소를 만드는대 사용할 필드들 

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<>();
}

 

저장소 생성 코드 우선 필수과목과 선택과목을 임의로 지정 

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;
}
}
}

중복되는 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수강생 목록 조회 성공!");
}

구현 해본 기능(수강생 등록,조회)