Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feat-34] : Category 분류 로직 생성 #39

Closed
wants to merge 1 commit into from
Closed

Conversation

d11210920
Copy link
Contributor

입력받은 code들에 대한 Category를 분류해주는 로직 생성했습니다.

Resolves: #34

#️⃣ 요약 설명

영역 분류가 필요한 Code List를 받아, code - Category의 key value 맵으로 반환합니다.
유틸성 static으로 선언했습니다.

📝 작업 내용

핵심교양 -> 창의영역 -> SWAI영역 -> 전공필수 -> 전공선택 -> 교양필수 순으로 판별해줍니다.

for (String code : codes) {
            Category category = judgeCore(code, curriculum);  // 핵심교양 판단
            if (isCoreCode(category)) {
                judgeCodes.put(code, category);
            } else { // 핵심교양이 아닌 과목들의 다른영역 확인
                if (!creativityCodes.isEmpty() && creativityCodes.contains(code)) {
                    judgeCodes.put(code, Category.창의);
                } else if (((!swAiCodes.isEmpty() && swAiCodes.contains(code)) || (swAialternativeCodes != null && swAialternativeCodes.contains(code)))) {
                    judgeCodes.put(code, Category.SW_AI);
                } else if (eMajor.contains(code)) {
                    judgeCodes.put(code, Category.전공필수);
                } else if (cMajor.contains(code)) {
                    judgeCodes.put(code, Category.전공선택);
                } else if (eGyo.contains(code)) {
                    judgeCodes.put(code, Category.교양필수);
                } else {
                    Set<String> alternativeCodeSet = alternativeCourse.getAlternativeCodeSet(code);
                    if (!alternativeCodeSet.isEmpty()) {
                        judgeCodes.put(code, judgeAlternative(alternativeCodeSet, curriculum));
                    } else {
                        judgeCodes.put(code, 교양선택);
                    }
                }
            }

        }
        return judgeCodes;
    }

코드에 대한 간단한 설명 부탁드립니다.

동작 확인

기능을 실행했을 때 정상 동작하는지 여부를 확인하고 사진을 올려주세요

💬 리뷰 요구사항(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요

입력받은 code들에 대한 Category를 분류해주는 로직 생성했습니다.

Resolves: #34
Copy link
Contributor

@genius00hwan genius00hwan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

통합테스트 하고 수정하면서 컨벤션에 맞게 수정해주세요

* @params codes : 해당과목의 대체가능한 과목들
*/

Set<String> eMajor = curriculum.getMajorRequired().getCodeSet();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

변수명 좀더 명확하게 수정해주세요 길어도 좋으니 명확해야합니다

} else { // 핵심교양이 아닌 과목들의 다른영역 확인
if (creativityCodes != null && creativityCodes.contains(code)) {
return Category.창의;
} else if (((swAiCodes != null && swAiCodes.contains(code)) || (swAialternativeCodes != null && swAialternativeCodes.contains(code)))) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if - return 이면 굳이 else if 쓸 필요 없지 않나요
저희 컨벤션에 맞게 elif, else 지양해주세요

@d11210920 d11210920 closed this Nov 13, 2024
@d11210920 d11210920 deleted the feature/34 branch November 13, 2024 11:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Fix] 영역판별로직 수정
2 participants