TIL - 2025.03.11
오늘 배운 것 개요
- 코드카타(Code Kata) 진행: 알고리즘 문제 풀이 연습.
- 장바구니 기능 개선: 장바구니 조회, 특정 상품 제거, 전체 삭제 기능 추가.
- 예외 처리 강화: 장바구니가 비어 있을 때 특정 동작(
4, 5, 6
입력) 실행 방지. - 문자열 정렬 최적화:
Arrays.sort()
와StringBuilder
를 활용한 내림차순 정렬.
1. Kiosk 프로젝트
1. 장바구니 기능 개선
1. OOP 원칙 점검
- 개선 사항
viewCart()
를 활용하여 장바구니 상태 출력.order()
에서 사용자 유형별 할인 적용 기능 추가 예정.removeCart()
에서 Stream API를 사용하여 특정 상품을 효율적으로 제거.
1. 예외 처리 강화
기존 문제점
- 장바구니가 비어 있는데
4, 5, 6
입력 시 예외가 발생하지 않음. - 실행 방지 기능 추가 필요
public void cart(int numinput, Scanner sc){
if(cart.isEmpty() && (numinput == menus.size() + 1 || numinput == menus.size() + 2 || numinput == menus.size() + 3)){
throw new IllegalStateException("올바른 숫자를 입력해주세요");
}
if (numinput == menus.size() + 1) {//메뉴 추가 대비 하드코딩X
System.out.println("구매창으로 이동합니다.");
order(sc);
} else if (numinput == menus.size() + 2){
cart.clear();
System.out.println("장바구니를 비웠습니다.");
} else if (numinput == menus.size() + 3){
System.out.println("삭제 하실 제품을 선택해주세요");
removeCart(sc);
} else {
System.out.println("입력값을 확인해 주세요");
}
}
try {
cart(numinput, sc);
} catch (IllegalStateException e) {
System.out.println(e.getMessage());
}
- 장바구니가 비어 있을 때
4, 5, 6
입력 시IllegalStateException
발생.
2. 알고리즘 학습
1. 문자열 내림차순 정렬 최적화
1. 풀이 방법
String
을char[]
로 변환 후Arrays.sort()
적용 → 정렬 후 뒤집는 방식 사용.
오늘의 결론
- 장바구니 기능 강화 (조회, 특정 삭제, 전체 삭제).
- 예외 처리 개선 (IllegalStateException 추가).
- 문자열 정렬 최적화 (Collections.reverseOrder() 활용)
다음 학습 목표
- 사용자 유형별 할인 적용 (Enum 활용)
- 람다 & 스트림을 이용한 코드 최적화
- 추가 예외 처리 및 버그 수정
'TIL' 카테고리의 다른 글
[TIL]파일 입출력 (0) | 2025.05.14 |
---|---|
[TIL]Enum 활용 (0) | 2025.05.14 |
[TIL]객체 지향 원칙과 코드 리팩토 (0) | 2025.05.14 |
[TIL]Kiosk 프로젝트 구조 정리 (0) | 2025.05.14 |
[TIL]REST API를 활용한 GitHub 레포지토리 목록 조회 (0) | 2025.05.14 |