본문 바로가기
15일차 오전~오후2: 계산기 프로젝트에 인터페이스 추가를 통해 검색 기능 확장https://roqkfchqh.tistory.com/59" data-og-description="어제 리팩토링을 하고, 자기 전에 고민을 했다.과연 내 계산기에서 인터페이스나 추상 클래스를 사용할 곳이 한 군데도 없을까? 진짜로?사용할 수 있을 것 같은데? 해서, 인터페이스와 추상 클" data-og-host="roqkfchqh.tistory.com" data-og-source-url="https://roqkfchqh.tistory.com/59" data-og-url="https://roqkfchqh.tistory.com/59" data-og-image="https://scrap.kakaocdn.net/dn/seJ2D/hyXzLYe1.. 2024. 11. 18.
트러블슈팅 : 검색 결과..아아... <9> 검색 결과를 제대로 불러오지 않는 오류가 있다. 하나만 오류가 난다면 쉽게 고칠텐데, 모든 기록에 대해 검색이 안 되어서 원인을 찾아봐야한다. 우선, "조건에 맞는 결과가 없습니다" 는 모든 검색을 다 실행한 후 검색결과가 비어있다면 출력되는 문장이다. result를 반환하는 부분의 콘솔을 찍어봤다. 음.. historyData는 비어있고, condition은 잘 모르겠지만 정상적으로 들어간 것 같다.(제발요)historyData가 빈 것이 문제니 그부분을 더 찾아보자. 클래스의 생성자부터 차근차근 하나씩 로그를 찍다 보면 원인이 나오지 않을까? !!! 생성자에 전달된 list가 컴파일 시점부터 비어있다. 정말 모르겠어서 튜터님께 찾아가니 HistoryDataSearch에서 생성자가 생성되는 시간이랑Hi.. 2024. 11. 18.
인터페이스, 추상클래스.. 사용 가능할 것 같은데? <8> 어제 리팩토링을 하고, 자기 전에 고민을 했다.과연 내 계산기에서 인터페이스나 추상 클래스를 사용할 곳이 한 군데도 없을까? 진짜로?사용할 수 있을 것 같은데? 해서, 인터페이스와 추상 클래스의 개념을 간단하게 다시 잡고, 방향성을 정했다.추상 클래스는 "공통적인 로직" 을 기반으로 하고, 인터페이스는 "확장성" 에 초점을 맞춘다.특징추상 클래스인터페이스목적코드 재사용, 공통 기능 제공설계 강제, 다양한 구현체 허용공통 로직 포함 여부가능 (메서드 구현, 필드 포함)불가능 (Java 8부터 default 메서드 허용)다중 상속불가능가능유연성제한적 (계층 구조를 강제)매우 유연 (다양한 구현 가능) 이보다 더 간단히 비유를 해 보자면,인터페이스는 "레고 블록은 이렇게 생겨야 한다" 라는 규정만 하고, 조립.. 2024. 11. 18.
<finish> 가 아니라 리팩토링.. 작업을 마무리하며,,, 리팩토링을 정말 열심히 했다.  CalculatorApp 클래스에서, 유저의 Input을 받는 요소들을 UserInput 클래스로 따로 분류하였다.History 클래스도 마찬가지로 좀 다듬어줬다.  코드가 엄청 짧아졌다. 뿌듯 ㅎㅎ  그리고 이제 봤는데..  계산기에 이런 조건이 있었다.하핫;;그나마 다행인 건 고유id를 부여해 id조회가 가능하다는 거다.그것도 lambda & stream을 적용해서 만든 거라 얻어걸렸다 핳;; 구조는 똑같으니 괜찮지 않을까?  여기서 마무리 하고 다른 공부 해야겠다~!(근데 github 실수로 main branch에 commits가 26개나 생겼다.........아아......) https://github.com/roqkfchqh/Calculat.. 2024. 11. 17.
나의 첫 README 이 이상 내용을 못 쥐어짜내겠당;;  메인 브랜치에 올리긴 했는데 수정할 게 넘 많다. 내일 하루종일 코딩 해야지 2024. 11. 16.
트러블슈팅: 왜 저장이 두번 되니? <7> 저장 기능을 만들고 테스트 하던 중에 치명적인 버그를 발견했다.로그를 찍어보니 저장 횟수가 연속계산 횟수에 비례한다는 걸 알 수 있었다. ㅋㅋ 반복할 때 마다 늘어나는 값이 있다는건데.. 제일 수상한 건 역시 calculate 메서드니까 콘솔을 군데군데 찍어보자.//Calculator App 의 number List 를 calculationFormula 로 명명 public double calculate(List calculationFormula) { //numbers List 에 있는 짝수번째 값 -> 숫자 List numbers = IntStream.range(0, calculationFormula.size()) .filter(i -> i % .. 2024. 11. 15.