분류 전체보기
[우아한테크코스] 프리코스 3주차 회고 코드 리뷰 피드백 요약public void run() { int purchaseCount = setPurchaseCount(); output.printLottoCount(purchaseCount); Lottos lottos = lottoService.generateLottos(purchaseCount); output.printLottoNumbers(lottos); WinningLotto winningLotto = setWinningLotto(); Console.close(); ResultCalculator resultCalculator = lottoService.calculateResult(lottos, winningLotto)..
요구 사항요구사항은 과제 진행 요구 사항, 기능 요구 사항, 프로그래밍 요구 사항 세 가지로 구성되어 있었다.과제 진행 요구 사항기능을 구현하기 전 README.md에 구현할 기능 목록을 정리해 추가한다.Git의 커밋 단위는 앞 단계에서 README.md에 정리한 기능 목록 단위로 추가한다.Angular JS Git Commit Message Conventons를 참고해 커밋 메시지를 작성한다.기능 요구 사항간단한 로또 발매기를 구현한다.로또 번호의 숫자 범위는 1~45까지이다.1개의 로또를 발행할 때 중복되지 않는 6개의 숫자를 뽑는다.당첨 번호 추첨 시 중복되지 않는 숫자 6개와 보너스 번호 1개를 뽑는다.당첨은 1등부터 5등까지 있다. 당첨 기준과 금액은 아래와 같다.1등: 6개 번호 일치 / 2,..
·Java
Java Enum은 Java 5에서 처음 도입된 특별한 클래스 타입으로, `java.lang.Enum` 클래스를 확장한다. Enum은 코드 가독성을 높이고, 컴파일 타임에 값이 검증되도록 해준다. 문서 기본 Enum 사용법Java Enum은 관련된 상수들을 집합으로 표현하는 방식이다. 예를 들어 피자 주문 상태를 나타내는 Enum을 정의할 수 있다.public enum PizzaStatus { ORDERED, READY, DELIVERED; }열거 시에는 콤마(`,`), 끝날 시에는 세미콜론(`;`) 이와 같이 Enum으로 정의된 상수는 코드 가독성을 높이고, 잘못된 값이 전달되는 예외 사항을 방지할 수 있다. 또한 유용한 메서드들이 많이 제공된다. 커스텀 Enum 메서드기본 Enum에..
·Java
커스텀 예외가 필요한 이유일반적으로 자바 예외는 대부분의 상황을 다룰 수 있지만, 비즈니스 로직에 특화된 예외나 세분화된 예외 처리가 필요할 때가 있다. 이 경우는 커스텀 예외를 통해 문제를 보다 명확하게 전달할 수 있다. 주요 사용 이유비즈니스 로직에 따른 예외 처리: 특정 비즈니스 로직에서 발생할 수 있는 오류를 명확하게 표현기존 자바 예외를 세분화하여 특정 상황에 맞게 처리하기자바의 예외는 크게 체크 예외와 언체크 예외로 나눌 수 있다. 다음 섹션에서는 두 경우 모두에 대해 사용자 정의 예외를 구현해본다.사용자 정의 체크 예외(Custom Checked Exception)체크 예외는 코드에서 명시적으로 처리해야 하는 예외이다. 예를 들어, 파일을 읽는 코드에서 파일이 존재하지 않는 경우 예외를 던진..
·Java
AssertJ 없이 테스트하는 경우예외가 발생했는지 테스트하려면, 예외를 직접 catch 후 assertion을 수행해야 한다:try { // ...} catch (Exception e) { // assertions}하지만, 예외가 발생하지 않으면 테스트가 통과해 버리므로, 테스트가 실패하도록 명시적으로 설정하는 것이 필요하다. 이는 코드가 불필요하게 복잡해질 수 있음을 의미한다. AssertJ로 테스트하기Java 8 이상 버전부터는 AssertJ와 람다 표현식을 이용해 예외를 더 간단하게 검증할 수 있다. `assertThatThrownBy()` 사용리스트에서 인덱스가 범위를 벗어나는 경우, IndexOutOfBoundsException`이 발생하는 지 확인해보자.assertThatThrow..