김찬진의 개발 블로그

3주차 미션 중에 사용자가 올바른 값을 입력하지 않았다면 예외를 터트리고 잡은 이후에 올바른 값을 입력할 때까지 입력을 강제하는 로직이 있었다. 이 로직을 구현하기 위해 boolean valid = true 변수를 세우고 만약 사용자가 올바른 값을 입력하지 않는다면 valid 를 그대로 냅두고 만약 사용자가 올바른 값을 입력한다면 valid 를 false 로 바꿔서 while 문을 탈출하도록 구현했다. 하지만 사용자로부터 입력값을 받는 메서드마다 while try catch 를 반복해야 했다. 다른 지원자 분들의 코드를 둘러보다 Supplier 를 사용한 것을 봤다. 코드를 적용하는 건 쉬웠지만, 그게 왜 작동하는건지는 이해하지 못했다. 이해하지 못하는 이유는 지네릭, 함수형 인터페이스 때문이었다...!..
우테코 6기 지원자 단톡방에서 레코드를 사용했다는 이야기를 들었습니다. 저도 써보고 싶어서 공부할 것에 추가했습니다. 이번 3주차 로또 미션에서 enum 사용이 요구사항이었습니다. 예전부터 공부해야지 생각만 하다 그냥 상수를 선언하는 걸로 미뤘었는데, 드디어 공부하게 되었습니다. 우선 record, enum 에 대해 공부하고 오겠습니다! 레코드 (record) 레코드의 사용 목적 1. 보일러 플레이트를 줄이기 위해 - equals, hashcode, toString, getter 등을 컴파일러가 알아서 생성해줌 - 보일러 플레이트란? equals(), hashcode(), getter() 등의 꼭 필요하지만 반복적인 노동을 요구하는 상용구 코드 2. 명시적으로 데이터 클래스임을 알리기 위해 - 값 객체(..
1주차 때 우테코 6기 단톡방의 한 분께서 코드리뷰를 해주셨습니다. https://github.com/woowacourse-precourse/java-baseball-6/pull/212/files [숫자 야구] 김찬진 미션 제출합니다. by KimChanJin97 · Pull Request #212 · woowacourse-precourse/java-baseball-6 github.com 코드 리뷰의 내용은 다음과 같습니다. 1. 중복되는 상수를 클래스에 일일이 선언하는 것 대신 상수를 가진 인터페이스를 상속하도록 했는데, 과연 올바른 방법일까? 2. 개행문자, 주석 등 코드 가독성을 떨어뜨리는 것들은 푸쉬하기 전에 지우자 3. 메서드가 너무 크면 추출하자 코드 리뷰의 내용을 바탕으로 이번 2주차 미션을..
[10/21 13:25] 착석 후 시작 남의 코드로 내 생각을 지우지 말자 쓰레기 코드를 쓰더라도 내 생각을 녹여 만들자 그래야 최종코테에 가서 내 생각을 피력할 수 있다 [10/21 13:28] 클론 완료 후 기능 요구사항 읽기 도메인 MyNumbers 일급컬렉션 그럼 컴퓨터가 만든 무작위 수도 일급컬렉션로 만들어야겠다 exception 클래스 빼고 validation 걸리면 해당 예외 throw 후순위로 미룰까 5시간 신경쓰지말고 일단 해보자 도메인 ComputerNumbers 일급컬렉션 한번 객체 만들고 불변하도록 final 필드 equals, hashcode 재정의 필요? equals, hashcode 오버라이딩은 왜 하는거지? MyNumbers 와 ComputerNumbers 를 비교하는 기능은..