우테코

· JAVA
자바의 Enum은 다양한 일을 할 수 있다. 예전 포스팅에서도 설명했지만 Enum은 당수 상수 모음이 아니라 고차원의 추상 개념을 완벽히 표현할 수 있을 뿐 아니라 각 상수 데이터와 연결 지어 다양한 일을 할 수 있다. 여러분은 Enum을 사용해 if문을 제거할 수 있나요? 예전에 수업에서 코치가 한 말이다. 당시에는 무슨 의미인지 정확히 몰랐지만 미션을 진행하다 아 이렇게 if 분기문을 없앨 수 있구나 깨달은 적이 있었다. 오늘은 우아한테크코스 블랙잭 미션에서 Enum을 어떻게 활용했는지 포스팅하고자 한다. 블랙잭 결과 도출 규칙 딜러와 플레이어가 대결해서 카드패의 숫자 합이 21을 넘지 않으면서 높으면 승리하는 게임 승리 조건 블랙잭 : 처음 받은 2장의 카드가 21이면 블랙잭이라고 한다. 블랙잭일 ..
로또 미션 로또 번호를 캐싱하여 불필요한 인스턴스 생성 방지 private static final Map lottoNumbers = new HashMap();; static { for (int number = MINIMUM_LOTTO_NUMBER; number LottoNumber.getInstance(source)) .isInstanceOf(IllegalArgumentException.class); } 테스트를 작성할 때 경곗값을 잘 정의하는 것이 중요하다. 로또 번호의 비즈니스 로직이 1부터 45 사이의 정수여야 하기 때문에 예외로 0과 46을 넣어서 테스트했더니 경곗값을 잘 활용했다며 리뷰어님이 칭찬해 주셨다. 객체 역할과 책임 설계 객체에게 역할과 책임을 알맞게 배분하는 일은 항상 어렵고 고민이 ..
자동차 경주 미션 하나의 객체가 많은 책임을 맡지 않도록 하자 public class InputView { // ... private static final Scanner scanner = new Scanner(System.in); public static List getCarNames() { System.out.println(CAR_NAMES_MESSAGE); return Converter.toCarList(scanner.next()); } // ... } 사용자에게 입력을 받는 InputView 클래스이다. 자동차의 이름을 입력받아 Converter 클래스를 통해 Car 객체의 리스트를 반환하는 메서드를 가지고 있다. 그리고 Converter 클래스 안에는 자동차 이름에 대한 검증 로직이 Valida..
· 방법론
OCP 개방-폐쇄 원칙 (Open/closed principle) • 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다 • 이런 거짓말 같은 말이? 확장을 하려면, 당연히 기존 코드를 변경? • 다형성을 활용해보자 • 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현 • 역할과 구현의 분리 우테코 1주 차 미션인 자동차 경주 미션을 생각해보자. public class Car { private int position; public void move(int movingValue) { if (movingValue >= STANDARD_OF_MOVING) { position++; } } 자동차가 움직이기 매개변수로 받은 정수가 기준 이상이어야 한다. 현재 이 movingVal..
우아한테크코스에 대한 설명은 다음 링크를 참고해 주시길 바랍니다. 안녕하세요 더즈입니다. 본 포스팅은 우아한테크코스 4기에 지원하고 제목에서도 알 수 있듯이 최종합격까지 할 수 있었던 저의 이야기를 풀어보고자 합니다. 최종합격을 하고 시간이 한 달 가까이 지났지만 첫 블로그 게시글을 우테코 합격 회고로 하고 싶었기에 지금에라도 회고를 작성해봅니다. 지원 동기 본전공은 문과이고 복수전공으로 프로그래밍을 전공하고 있던 저는 개발자 교육 관련으로 이리저리 찾아보고 있었고 우테코에 대해 알게 되었습니다. 마침 자바를 공부하고 있었던 저는 우테코에 관심을 가지게 되었습니다. 하지만 10월부터 12월까지 이어지는 긴 지원 프로세스도 그렇고 지원자들의 수준이 대체로 높은 것 같아 지원을 망설이기도 했습니다. (이미 ..
더즈
'우테코' 태그의 글 목록 (2 Page)