본문 바로가기

분류 전체보기59

트러블슈팅: 왜 저장이 두번 되니? <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.
Interface? or Method? <6> import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class CalculatorApp { Calculator calc = new Calculator(); Parser parser = new Parser(); //Calculator class 에 사용되는 List 생성 List numbers = new ArrayList(); public void start(){ Scanner calculation = new Scanner(System.in); while(true){ try{ System.out.println("첫 번.. 2024. 11. 15.
Generic을 도대체 왜 쓸까? <5> 이번 프로젝트를 하면서 제일 힘든 순간이다.일단 자바를 공부하기 이전엔 한번도 들어본 적 없는 기능인데다가, 왜 쓰는지는 알겠는데 내 코드에 적용하기 가장 힘들었다.어설프게 대충 끼워넣다가는 유지보수할때 힘들 게 뻔했다. https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EC%A0%9C%EB%84%A4%EB%A6%ADGenerics-%EA%B0%9C%EB%85%90-%EB%AC%B8%EB%B2%95-%EC%A0%95%EB%B3%B5%ED%95%98%EA%B8%B0 ☕ 자바 제네릭(Generics) 개념 & 문법 정복하기제네릭 (Generics) 이란 자바에서 제네릭(Generics)은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 의미한다. 객체별로 다른.. 2024. 11. 15.
12일차 https://roqkfchqh.tistory.com/51" data-og-description="연속으로 계산할 경우 이전 연산의 계산결과와 더해져야 하는데, 이전에 입력했던 값과 연산을 수행하는 버그가 있다.문제가 될만한 부분은 .reduce 메소드의 람다식 부분이다.reduce의 사용법을 " data-og-host="roqkfchqh.tistory.com" data-og-source-url="https://roqkfchqh.tistory.com/51" data-og-url="https://roqkfchqh.tistory.com/51" data-og-image="https://scrap.kakaocdn.net/dn/bib0G4/hyXzMot5T6/8qkK6M9tR7zterk2lxgmkK/img.png.. 2024. 11. 15.
Parser.java의 중요성을 깨달음 <4> 계산기에 parser.java를 다시 추가했다. 초반에는 정말 필요없을 줄 알았는데 머쓱해진다.. 하하하그 이유는,지금 내 계산기는 값을 list에 저장된 값들을 짝수와 홀수로 구별해서 각각 number와 operator에 넣는다.문제는, 사용자가 값을 잘못 입력하면이런식으로 홀수번째 인덱스에 숫자가 들어가게 된다.list의 값을 초기화 할 수도 있지만 좀 번거롭기도 하고 잘못된 타입을 걸러내는 것이 꼭 필요한 기능인 것 같아서 원래 있던 코드인 parser.java를 재사용하기로 했다.삭제했었기 때문에 깃허브에서 주섬주섬..복사해왔다.처음에는 단순하게 calaulator에서 parser로 보내고, parser에서 에러가 발생하면 calculator의 numbers를 초기화하도록 했는데이게 그 유명한 스.. 2024. 11. 15.
트러블슈팅: Reducing a Stream <3> 연속으로 계산할 경우 이전 연산의 계산결과와 더해져야 하는데, 이전에 입력했던 값과 연산을 수행하는 버그가 있다.문제가 될만한 부분은 .reduce 메소드의 람다식 부분이다.reduce의 사용법을 내가 잘못 알고 사용했다. 1, a,b - > b로 사용하면 다음 첫번째 요소에 이전 연산 결과가 들어가는 줄 알았는데,이전 연산에서의 b값이 첫번째 요소에 들어가는 것 같다.구글링을 여러 번 했는데 이해도 잘 안되고 정확한 정보를 알 수 없어서 공식 문서로 찾아갔다.https://docs.oracle.com/en/java/javase/23/docs/api/java.base/java/util/stream/Stream.html#reduce(java.lang.Object,java.util.function.Binar.. 2024. 11. 15.