과제를 하면서 알게된 사소한 지식들
·
우테코 7기/3주차
❐ Description오늘은 3주차 과제를 하면서 구글링을 통해 알게된 부분들을 총 정리해볼 것이다.참고 문서들이 너무 잘 정리되어 있기 때문에 별도의 포스팅으로 쓰진 않고,참고한 아티클을 정리 및 요약을 통해 내 것으로 만들 것이다.     ❐ BigDecimal‣ BigDecimal A to Z: 정확한 계산을 위한 숫자 처리 클래스‣ DecimalFormat/NumberFormat 사용시 주의점  1. 부동 소수점 & 고정 소수점BigDecimal을 알기 전에  부동 소수점과 고정 소수점에 대해서 알고 넘어가야 한다. 부동 소수점(Floating-point)은 숫자를 저장할 때 지수(exponent)와 유효 숫자(significand)를사용하여 표현한다. 이 방식은 숫자의 크기에 비례하여 소수점 ..
정적 팩토리 메소드 왜 쓰는걸까?
·
우테코 7기/3주차
❐ Description요즘 대다수가 정적 팩토리 메소드 패턴을 사용한다. 나도 마찬가지로 주로 사용하는데, 거의 대부분생성자에 대해서 많이 사용하고 있다. 최근에 스터디에서 토의도 했었고, 오랜만에 리마인드 할 겸정적 팩토리를 씀으로써 얻을 수 있는 장점 그리고 꼭 써야할까에 대한 생각을 정리해보려고 한다. 과거 노션에 정리한 내용 복붙.    ❐ 정적 팩토리를 사용해서 얻을 수 있는 이점1. 이름을 가질 수 있다.정적 팩터리 메서드는 생성자와 달리 원하는 이름을 붙일 수 있어, 메서드 이름만으로 역할을 설명할 수 있다.public class User { private String name; private String role; private User(String name, String..
Map의 computeXxx 메소드를 알아보자.
·
우테코 7기/3주차
❐ Description[로또]3주차 과제를 하면서 Map의 여러 메소드 중 computeXxx 메소드를 사용하게 됐다.오늘은 해당 메소드가 어떤 역할을 하면 관련된 메소드에는 무엇이 있는지 학습할 것이다.     ❐ Map의 computeXxx 메소드위 그림과 같이 총 3개의 메소드가 있고, 모드 메서드 파라미터로 Java Functional Interface를 받는다.   1. computeIfAbsent(...)@Test@DisplayName("computeIfAbsent")void testComputeIfAbsent() { EnumMap enumMap = new EnumMap(RankCondition.class); RankCondition.valuesExceptNone() ..
EnumMap을 쓰는 이유
·
우테코 7기/3주차
❐ DescriptionEnumMap에 대해서 자세히 알아보고 넘어가보자.     ❐ Javadoc에 정의된 EnumMapJavadoc-EnumMap을 보고 정리한 내용이다.  1. A specialized Map implementation for use with enum type keys.Enum을 키로 쓸 수 있는 특수한 Map 구현체다.EnumMap rankTable = new EnumMap(RankCondition.class);   2. Enum maps are represented internally as arrays. Enum Map은 내부적으로 배열을 사용해 매우 간결하고 효율적이다.public class EnumMap, V> extends AbstractMap implements ja..
3주차 회고
·
우테코 7기/3주차
❐ Description3주차 작업 과정에서 느꼈던 점과 과제 후기를 작성한다.     ❐ Source code GitHub - Gilbert9172/java-lotto-7Contribute to Gilbert9172/java-lotto-7 development by creating an account on GitHub.github.com    ❐ Self - Review1.  [자동차 경주]에서 받은 피드백을 적용해보았는가?1주차에는 다양한 시각으로 피드백을 받았었는데, 사공이 많으면 배가 산으로 간다고, 너무 많은 의견들을 적용하는데 작업의 효율성 측면에서는 별로였던 것 같았기 때문이다. 그래서 이번에는 스터디원(4명)으로 부터만 피드백을 받아보기로 했다. #️⃣ 적절하지 않은 패키지명같이 스터디하..
로또
·
우테코 7기/3주차
❐ Description과제 기한2024.10.29(화) 15:00 ~ 2024.11.05(월) 23:59과제 진행 Branchhttps://github.com/Gilbert9172/java-lotto-7과제 제출 PR 링크TBDGit conventionhttps://gist.github.com/stephenparish/9941e89d80e2bc58a153#file-commit-md     ❐ Requirements1. User로또를 구입할 수  있다.구매한 로또가 모두 일치하지 않을 수 있다.총 세 번의 입력을 할 수 있다.(잘못 입력한 경우 댜시 입력을 할 수 있다.)금액을 입력할 수 있다.안내문구 : "구입금액을 입력해 주세요."로또 한장의 가격은 1000원이다.1000원 단위로만 구입할 수 있다...
일급 객체 ,일급 컬렉션, Value Object
·
우테코 7기/2주차
❐ Description오늘 (2024.10.29) 스터디원들과 코드리뷰를 진행했다. 코드 리뷰 과정에서 내가Position을 일급 객체로 사용하면 좋을 것 같습니다!라고 피드백을 남겼다. 다시 생각해보면 일급 객체랑 VO랑 비슷하다고 생각해서 이렇게 말한 거 같다.이번 기회에 개념을 명확히 잡고, 다음 피드백에서는 동료들에게 보다 정확한 정보를 바탕으로 피드백을해야 할 것이다.     ❐ First Class (일급 객체)다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체라고 한다. 변수에 할당할 수 있다.함수의 인자로 전달 될 수 있다.함수의 반환 값으로 사용될 수 있다.그리고 일급 객체에서 사용되는 "객체"라는 단어는 Java에서 생각하는 그런 객체가 아니다!여기서 "객체"란, 프로그래..
[Refactoring] 제어할 수 있는 코드를 작성하자!
·
우테코 7기/2주차
❐ Description 이번 과제에서는 랜덤하게 값을 출력하는 유틸성 클래스가 있다.랜덤 값을 테스트하기 위해선 어떻게 해야할까?     ❐ 랜덤 값을 제어할 수 없는 구조처음에는 랜덤 값 생성을 `getCondition()`에서 진행해주었다. 그리고 상황에 따라서 Condition을 조회하는테스트 코드를 작성할 때 문제가 발생했다. 상황에 맞게 끔 랜덤 값을 생성해줘야 하는데 이를 내가 제어할 수없는 것이다. 그래도 정말 말도 안되는 방법으로 테스트를 작성하기는 했다.`System.setProperty()` 메소드를 사용해서 테스트할 때만 프로퍼티를 셋팅해준다.프로퍼티를 셋팅할 때 테스트 값을 value로 넣어준다.그 결과 불필요한 클래스들이 생겨나기 시작했다.     ❐ 랜덤 값을 제어할 수 있는 ..
[Refactoring] 패키지가 무엇을 제공하는지 전달하자!
·
우테코 7기/2주차
❐ Description주로 Common, Util, Global과 같은 패키지 명을 많이 쓰는데, 이번에 과제하면서Util도 여러 곳에서 사용하니깐 Common 하위에 들어가야 하지 않을까? 라는 생각을 했다. 그래서 아래의 키워드로 구글링을 했는데util package goes under common?구글링 과정에서 알게 Common, Util, Global, Base 같은 패키지명 사용을 지양하라는 글을 봤고,이를 과제에 적용해보았다.     ❐ Tag_v1.0tag v1.0에서 사용한 패키지명을 다음과 같다. #️⃣ Common여기서 common의 역할은 프로젝트 전반에 사용되는 정보들을 제공한다. 하지만 네이밍만 봐서는 해당 패키지가무엇을 제공하는지 명확하게 알기가 어렵다. 하물며 common은..
2주차 회고
·
우테코 7기/2주차
❐ Description2주차 작업 과정에서 느꼈던 점과 과제 후기를 작성한다.     ❐ Source code GitHub - Gilbert9172/java-racingcar-7Contribute to Gilbert9172/java-racingcar-7 development by creating an account on GitHub.github.com     ❐ Self - Review1.  [문자열 덧셈 계산기]에서 받은 피드백을 적용해보았는가?최초 개발 과정에서는 저번 피드백을 최대한 반영하면서 개발을 해보았다.모든 상수를 하나의 클래스에서 관리패키지명에 대한 피드백 (Infra)책임이 많은 도메인[Error]를 Prefix로 설정해보기부정어를 사용한 boolean 네이밍 등등..이걸 최대한 다 ..