TIL

[TIL]Enum 활용

높하늬바람 2025. 5. 14. 09:49

TIL - 2025.03.12

오늘 배운 것 개요

  • Java Enum 활용: 사용자 유형별 할인율 적용
  • Math.max() 활용: 부족한 금액 계산 시 음수 방지
  • 코드 최적화: StringBuilderMath.max()를 사용하여 불필요한 연산 제거

1. Kiosk 프로젝트 - 할인 및 장바구니 기능 개선

1. Enum을 활용한 사용자 유형별 할인율 적용

  • 기존 할인율을 상수 값이 아닌 Enum으로 관리하여 가독성을 높임
  • Discount Enum을 활용하여 각 사용자 유형별 할인율 적용

수정 코드

public enum Discount {
    PDS(0.1), MILL(0.05), STU(0.03), NON(0.0);

    private final double discountRate;

    Discount(double discountRate) {
        this.discountRate = discountRate;
    }

    public double getDiscountRate() {
        return discountRate;
    }
}

장점:

  • 코드 가독성 향상 (사용자 유형별 할인율을 직관적으로 표현)
  • 유지보수 용이 (새로운 할인 유형이 추가될 때 Enum만 수정하면 됨)

2. 프로그래머스 - 알고리즘 문제 해결

1. 부족한 금액 계산하기 (Math.max() 활용)

1. 기존 코드

  • answer = cost - money;를 그대로 반환하여 음수가 나올 가능성 존재

2. 수정 코드

class Solution {
    public long solution(int price, int money, int count) {
        long cost = price * (long) count * (count + 1) / 2;
        return Math.max(cost - money, 0); // 부족한 금액이 없으면 0 반환
    }
}

장점:

  • 안정적인 결과 보장 (음수 값 방지)
  • 코드 최적화 (불필요한 변수 제거)

오늘의 결론

  1. Enum을 활용하여 할인율을 효과적으로 관리
  2. 람다 & 스트림을 사용하여 장바구니 기능을 최적화
  3. Math.max()를 사용하여 안정적인 부족 금액 계산

다음 학습 목표

  • Enum, 람다 & 스트림을 활용한 주문 및 장바구니 관리 기능 구현
  • 코드 리팩토링을 통해 유지보수성을 높이는 작업 진행