본문 바로가기
반응형

분류 전체보기337

[우테코] 로또 미션 2단계 학습 로그 목차 1. GitHub 저장소 2. 새로운 요구사항 3. 리팩토링 4. 생각하기 1. GitHub 저장소 step 1(리팩토링 전): https://github.com/yeon-06/java-lotto/tree/step1 step 2(리팩토링 후): https://github.com/yeon-06/java-lotto/tree/step2 Pull Request: https://github.com/woowacourse/java-lotto/pull/454 2. 새로운 요구사항 수동 로또 (e) 구입한 금액보다 많이 구매했는지 확인 수동으로 구매할 로또 개수 입력 수동 로또 번호 입력 3. 리팩토링 3-1. String.format() 사용 int MIN = 1; int MAX = 45; // AS-IS Str.. 2022. 3. 5.
[Java] Predicate란? 🤔 서론 우테코 오늘자 강의에서 BiPredicate라는 개념을 처음 들어보았다. Predicate란 무엇인지, 언제 사용하는 것인지 그리고 내 코드에 적용하는 과정까지를 담아본다. 생각보다 어렵지 않다. 설명 안읽고 예제 코드만 봐도 바로 이해할 수 있을듯 📚 Predicate란? argument를 받아 boolean 값을 반환하는 함수형 인터페이스 functional method: test() 🔻 함수형 인터페이스란? 더보기 = SAM interface; Single Abstract Method Interface : 1개의 추상 메소드를 갖고 있는 인터페이스 ➕ default나 static 메소드의 제한 X @FunctionalInterface 어노테이션 사용 ➕ 없어도 동작하지만 함수형 인터페이스 .. 2022. 3. 4.
[IntelliJ] 플러그인 직접 설치하기 IntelliJ에서 플러그인을 하나 설치하려 했는데 실패했다...😢 Settings - Plugins - Marketplace에서 검색을 해보아도 플러그인 검색 자체가 안된다. 파일을 가져와서 직접 설치하는 방법이 있다기에 도전해보았다. 1. Plugin 파일 다운받기 https://plugins.jetbrains.com/plugin 요 사이트에 들어가면 플러그인들을 검색할 수 있다. JetBrains Marketplace Welcome to the JetBrains Marketplace plugins.jetbrains.com 원하는 플러그인에 들어가서 Versions 탭에 들어가면 zip 파일을 다운받을 수 있다. 유의할 점은 자신의 IntelliJ에 맞는 버전을 찾아야한다. 최신이 좋겠지~하면서 최신.. 2022. 3. 3.
[JUnit5] 중복되는 테스트 코드 줄이기 목차 서론 @ParameterizedTest란? 예제 코드 -@ValueSource 파라미터를 여러개 받고 싶다면? - @CsvSource 사용자 정의 클래스를 파라미터로 넣고 싶다면? - @MethodSource 테스트 코드에 설명 덧붙이기 👀 서론 테스트 코드를 작성하다 보면 코드가 반복되는게 느껴질 때가 있다. 개인적으로 나는 객체가 잘 생성되는지 확인할 때도 경계값 중간값까지 최소 3번은 테스트하는 편이다. 값이 바뀔때마다 코드를 복붙하는게 불필요하게 느껴져서 테스트 코드 내부에 메소드를 따로 만들기도 했었는데... 우테코를 통해 @ParameterizedTest라는 어노테이션을 알게 되었다. 💡 @ParameterizedTest란? 다양한 인수로 테스트를 여러번 실행할 수 있도록 해주는 어노테이.. 2022. 3. 2.
[우테코] 로또 미션 1단계 학습 로그 목차 1. GitHub 저장소 2. 구현 기능 목록 3. 새로운 도전 4. 생각하기 5. 앞으로 할 일 1. GitHub 저장소 😺 Repository: https://github.com/yeon-06/java-lotto/tree/step1 Pull Request: https://github.com/woowacourse/java-lotto/pull/391 2. 구현 기능 목록 📚 로또 구입 금액 로또 가격은 1000원 (e) 1000원 단위 외의 금액 불가 (e) 문자열 입력 구매 로또 개수 구하기 구매한 로또 개수 출력 로또 목록 로또 생성 숫자는 1 ~ 45 (e) 중복된 숫자 불가 Collections.shuffle() 활용 목록 출력 로또 숫자 정렬 당첨 번호 입력 6개 숫자 입력 (ex: 1, .. 2022. 2. 28.
[Java] 인스턴스화 방지를 위해 private 생성자 이용하기 정적 메소드, 정적 필드만 담은 클래스는 때때로 유용하게 쓰일 수 있다. 사용하는 경우가 크게 세 가지가 있는데 예제를 통해 살펴보자. 📕 1. 기본 타입 값이나 배열 관련 메소드를 모은 클래스 ex: java.lang.Math, java.util.Arrays java.util.Arrays의 코드를 살펴보면 아래와 같다. public class Arrays { public static boolean isArray(Object o) { ...} public static Object[] asObjectArray(Object array) { ...} public static List asList(Object array) { ...} public static boolean isNullOrEmpty(T[] arr.. 2022. 2. 26.
[Java] EnumMap이란? 😏 개요 먼저 Enum에 대해 잘 모르면 아래 글을 먼저 읽어보길 바란다. https://yeonyeon.tistory.com/171 [Java] Enum에 대해 목차 1. Enum이란? 2. 사용 방법 3. 주요 메소드 4. Singleton과 Enum 1. Enum이란? 🤔 enumerance type = 열거형 JDK 1.5부터 생겨난 기능으로 열거체를 정의할 수 있는 클래스 비교 시 실제 값 뿐만 아니라.. yeonyeon.tistory.com Map을 선언했는데 구현체로 뭘 사용할지 고민이 들었다. 검색 중에 EnumMap이라는게 있길래 정리해본다. 🤩 EnumMap이란? Enum 타입만 key로 사용 가능한 특별한 Map Array를 이용하기 때문에 성능적으로 우수 해싱 과정이 필요 없어 Ha.. 2022. 2. 25.
[Java] ConcurrentModificationException 에러 ❗ java.util.ConcurrentModificationException 👉 객체를 동시에 수정하는 것이 불가능한데 동시 수정이 일어나는 경우를 감지 위 오류가 발생한 상황은 아래와 같다. public class Random { private static final List randomNumbers = new ArrayList(); static { for (int i = 1; i 2022. 2. 24.
[우테코] 자동차 경주 2단계 학습 로그 목차 1. step 2 목표 2. 변경 사항 3. 생각할 점 4. 개선할 점 자동차 경주 1단계 학습로그: https://yeonyeon.tistory.com/189 GitHub: https://github.com/yeon-06/java-racingcar/tree/step3 Pull Request: https://github.com/woowacourse/java-racingcar/pull/419 1. step 2 목표 MVC 패턴 기반으로 리팩토링 domain 패키지의 객체는 view 패키지 객체에 의존 X 테스트 가능/불가능 부분을 분리해 테스트 가능 부분에 대해서만 단위 테스트 사실 1단계에서부터 MVC를 도입했기 때문에 큰 변경 사항은 없었다. 이름 짓기에 좀 더 생각해보았고 toString()이나.. 2022. 2. 23.
반응형