언어/JAVA8 [TIL]20230810 - parallelStream() 도입 public void saveTradeList() { List stocks = stockRepository.findAll(); List trades = jsoupCrawling.getTrades(stocks); User user = userRepository.findById(1L).orElseThrow(()-> new IllegalArgumentException("id가 1인 유저가 존재하지 않습니다.")); long start = System.currentTimeMillis(); List buys = trades.stream().map((tradeDto -> new Buy(tradeDto.getQuantity(), tradeDto.getPrice(), tradeDto.getStock(), user))).. 2023. 8. 12. [TIL]20230722 - 빌더 패턴 엔티티는 실제 테이블과 매핑되어 만일 변경되면 의도치 않은 영향을 끼칠 수 있기 때문에 DB와 View사이의 역할 분리를 위해 엔티티와 Dto를 구별하여 사용한다. 때문에 requestDto를 바디로 가지는 요청이 올때 Dto를 엔티티로 바꾸어 처리해야하고 조회 등의 api에서 DB에서 가져온 엔티티를 responseDto로 바꾸어 응답해주어야 한다. 이때 나는 생성자를 사용하여 Dto나 엔티티를 생성해주었다. public Post(String image_url, String content, User user) { this.image_url = image_url; this.content = content; this.user = user; } 하지만 이번 프로젝트의 경우 클론 프로젝트이다 보니 응답시 전달.. 2023. 7. 24. [TIL]20230622 - 예외처리 private static final String OPERATION_REG = "[+\\-*/]"; private static final String NUMBER_REG = "^[0-9]*$"; 자바 4주차 강의를 공부하고 난뒤 기존에 강의 3주차에서 과제로 풀었던 계산기 예제의 코드를 바꾸는 과제가 있었다. 예외처리를 통해 예상범위 밖의 값에 대해 예외를 던지고 기존 main함수에서 new 를 통해 연산자를 정해주었던에서 사용자입력으로 연산자를 정하는 변화에 대해 코드를 작성해야했다. 1. 예외 처리 우선 예외처리를 위한 정수와 연산자의 범위를 정규식을 통해 표현하였다. private static final String OPERATION_REG = "[+\\-*/]"; private static fin.. 2023. 6. 22. [TIL]20230620 - 상속과 다형성 자바 강의 3주차는 대부분 객체지향파트에 대한 내용들이었다. 강의를 모두 듣고 난 뒤 계산기를 구현하는 과제가 있었다. 과제는 단계 별로 이루어졌는데 1단계는 단순 Calculator내에서 calculate메소드로 연산자와 계산할 숫자 두개를 입력 받아 연산자에 따라 계산하여 결과값을 리턴한다. 2단계는 연산자별로 클래스(AddOperation, SubOperation ....)를 만든 뒤 각 클래스별로 그에 맞는 연산을 하여 값을 리턴하는calculate메소드를 작성한다. Calculate클래스는 생성자로 각각의 연산자별 클래스를 받아 필드를 초기화해주고 calculate메소드에 연산자와 계산할 두 숫자를 넣으면 연산자에 따라 그에 맞는 연산자클래스(AddOperation, SubOperation .... 2023. 6. 21. [TIL]20230615 - 스트림의 toList()가 없다 문제 발생 자바 문법 강의 중 스트림 부분에서 List를 .stream()을 통해 스트림으로 만들고 .filter()로 만든 후 .toList()를 통해 다시 List로 만들어주는데 .toList()메소드가 존재하지 않았다. 문제 해결을 위한 시도 (List) 을 작성하여 강제 형변환을 시도하였다. -> 에러 표시는 나오지 않았지만 컴파일하니 ClassCastException 예외가 발생하였다. 문제 해결 그래서 toList를 직접 타이핑 해보니 비슷해보이는 메소드를 인텔리 제이가 추천해주었다. List는 콜렉션이기도 하고 메소드가 비슷해보여서 사용해보았더니 정상적으로 실행되었고 원하던 List도 얻을 수 있었다. 새롭게 알게 된 점 toList()메소드를 사용할 수 없었던건 나의 자바 버전은 11버전이.. 2023. 6. 16. [TIL]20230613 - HashSet 의 저장방법 1. 숫자야구 게임 만들기 숫자 야구 게임 규칙 컴퓨터는 0과 9 사이의 서로 다른 숫자 3개를 무작위로 뽑습니다. (ex) 123, 759 사용자는 컴퓨터가 뽑은 숫자를 맞추기 위해 시도합니다. 컴퓨터는 사용자가 입력한 세자리 숫자에 대해서, 아래의 규칙대로 스트라이크(S)와 볼(B)를 알려줍니다. 숫자의 값과 위치가 모두 일치하면 S 숫자의 값은 일치하지만 위치가 틀렸으면 B 기회는 무제한이며, 몇번의 시도 후에 맞췄는지 기록됩니다. 숫자 3개를 모두 맞춘 경우, 게임을 종료합니다. 실행 결과 컴퓨터가 숫자를 생성하였습니다. 답을 맞춰보세요! 1번째 시도 : 134 0B0S 2번째 시도 : 238 1B1S 3번째 시도 : 820 2B1S 4번째 시도 : 028 3B 5번째 시도 : 280 3S 4번만.. 2023. 6. 14. 이전 1 2 다음