개발 공부 기록

개발 공부 기록

  • 분류 전체보기 (199)
    • spring (41)
      • JPA (19)
      • TEST (4)
      • 비동기 처리 (4)
      • SECURITY (1)
      • BATCH (0)
      • WebFlux (0)
    • 문제풀이 (2)
      • 백준 (2)
      • 프로그래머스 (0)
    • java (43)
      • java (39)
      • servlet_jsp (3)
      • jdbc (1)
    • 프론트 (7)
      • html (6)
      • css (1)
    • DB (12)
      • Oracle-기초 (8)
      • Mysql-기초 (4)
      • Redis (0)
    • CS (4)
      • Network (4)
      • 디자인 패턴 (0)
    • Project (0)
      • e-commerce (0)
    • Book (70)
      • 이펙티브 자바 (55)
      • 클린코드 (0)
      • 모던 자바 인 액션 (15)
  • 홈
  • 태그
  • 방명록
RSS 피드
로그인
로그아웃 글쓰기 관리

개발 공부 기록

컨텐츠 검색

태그

영속성 이펙티브 자바 JPA 람다식 스트림 Collector 메서드 참조 DSL 리액티브 프로그래밍 Future 가변인수 제네릭 리액티브 Flow 람다 통합 테스트 단위 테스트 CompletableFuture Reactive 비동기

최근글

댓글

공지사항

아카이브

Book(70)

  • CHAPTER6 - 스트림으로 데이터 수집(1)

    목차.1. Collectors 클래스로 컬렉션을 만들고 사용2. 하나의 값으로 데이터 스트림 리듀스하기3. 특별한 리듀싱 요약 연산  컬렉터를 어떻게 활용할 수 있을까? 예제를 먼저 살펴보자. 어떤 트랜잭션 리스트가 있고 이들을 액면 통화로 그룹화한다고 가정하자.Map> transactionsByCurrency = new HashMap();for (Transaction transaction : TransactionExample.transactions) { Currency currency = transaction.getCurrency(); List transactionsForCurrency = transactionsByCurrency.get(currency); if (transactions..

    2025.02.21
  • CHAPTER5 - 스트림 활용(2)

    목차.1. 특정 범위의 숫자와 같은 숫자 스트림 사용하기2. 다중 소스로부터 스트림 만들기3. 무한 스트림  1. 숫자형 스트림앞서 reduce 메서드로 스트림 요소으 ㅣ합을 구하는 예제를 살펴봤다.int calories = DishExample.menu.stream() .map(Dish::getCalories) .reduce(0, Integer::sum); 사실 위 코드에는 박싱 비용이 숨어있다. 내부적으로 합계를 계산하기 전에 Integer를 기본형으로 언박싱해야 한다. 위와 같은 상황에서는 효율적으로 처리할 수 있도록 기본형 특화 스트림을 사용할 수 있다. 1.1 기본형 특화 스트림자바 8에서는 세 가지 기본형 특화 스트림을 제공한다. 스트림 API는 박싱 비용을 피할 수 ..

    2025.02.17
  • CHAPTER5 - 스트림 활용(1)

    목차.1. 필터링, 슬라이싱, 매칭2. 검색, 매칭, 리듀싱 1. 필터링1.1 프리디케이트 필터링스트림 인터페이스는 filter 메서드를 지원한다. filter 메서드는 프레디케이트(불리언을 반환하는 함수)를 인수로 받아서 프레디케이트와 일치하는 모든 요소를 포함하는 스트림을 반환한다.List vegetarianMenu = DishExample.menu.stream() .filter(Dish::isVegetarian) .toList();  1.2 고유 요소 필터링스트림은 공유 요소로 이루어진 스트림을 반환하는 distinct 메서드도 지원한다.(고유 여부는 스트림에서 만든 객체의 hashCode, equals로 결정된다) 예를 들어 다음 코드는 리스트의 모든 짝수를 선택하고 중복..

    2025.02.14
  • CHAPTER4 - 스트림

    목차. 1. 스트림이란 무엇인가?2. 컬렉션과 스트림3. 내부 반복과 외부 반복4. 중간 연산과 최종 연산   1. 스트림이란 무엇인가?스트림은 자바 8 API에 새로 추가된 기능이다. 스트림을 이용하면 선언형(데이터 처리를 질의로 표현)으로 컬렉션 데이터를 처리할 수 있다.또한 스트림을 이용하면 멀티스레드 코드를 구현하지 않아도 데이터를 투명하게 병렬로 처리할 수 있다.  스트림을 사용하지 않는 코드List lowCaloricDishes = new ArrayList();//누적자로 요소 필터링for (Dish dish : DishExample.menu) { if (dish.getCalories() () { @Override public int compare(Dish o1, Dish o2..

    2025.02.12
  • CHAPTER3 - 람다 표현식

    목차. 1. 람다란 무엇인가?2. 실행 어라운드 패턴3. 함수형 인터페이스, 형식 추론4. 메서드 참조5. 람다 만들기   1. 람다란 무엇인가?람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이라고 할 수 있다. 람다 표현식에는 이름은 없지만, 파라미터 리스트, 바디, 반환 형식, 반생할 수 있는 예외 리스트는 가질 수 있다. 람다의 특징을 살펴보자 * 익명- 보통의 메서드와 달리 이름이 없어 익명이라고 표현한다. 구현해야 할 코드에 대한 걱정거리가 줄어든다. * 함수- 람다는 메서드처럼 특정 클래스에 종속되지 않으므로 함수라고 부른다. 메서드처럼 파라미터 리스트, 바디, 반환 형식 가능한 예외 리스트를 포함한다. * 전달- 람다 표현식을 메서드 인수로 전달하거나 변수로 저장할 수 있다...

    2025.01.16
  • CHAPTER2 - 동작 파라미터화 코드 전달

    목차. 1. 변화하는 요구사항에 대응2. 동작 파라미터화3. 익명 클래스4. 람다 표현식 미리보기  동작 파라미터화를 이용하면 자주 바뀌는 요구사항에 효과적으로 대응할 수 있다.동작 파라미터화란 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록을 의미한다. 이 코드 블록은 나중에 실행될 메서드의 인수로 코드 블록을 전달할 수 있다.  1. 변화하는 요구사항에 대응하기예제를 보면서 변화에 대응하는 코드를 구현해보자. 기존의 농장 재고목록 애플리케이션에 리스트에 녹색 사과만 필터링하는 기능을 추가한다고 가정하자.  1.1 첫 번째 시도 : 녹색 사과 필터링public static List filterGreenApples(List inventory) { List result = new ArrayLis..

    2025.01.07
  • Item59 - 예외는 진짜 예외 상황에만 사용하라

    예외를 잘못 사용한 예를 보자 public static void main(String[] args) { Mountain [] range = new Mountain[3]; range[0] = new Mountain(); range[1] = new Mountain(); range[2] = new Mountain(); try { int i = 0; while (true) { range[i++].climb(); } } catch (ArrayIndexOutOfBoundsException e) { e.printStackTrace(); } } => 등산! 등산! 등산! java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3 at eff..

    2024.01.11
  • Item55 - 옵셔널 반환은 신중히 하라

    자바 8 전에는 메서드가 특정 조건에서 값을 반환할 수 없을 때 1. 예외를 던지거나 2. 객체 참조라면 null 값을 반환한다. 예외는 진짜 예외적인 상황에서만 사용해야 하며 null을 반환할 때는 null 처리 코드를 추가해야 한다. 자바 8 이후에는 다른 선택지가 생겼다. Optinal는 null이 아닌 T타입 참조를 하나 담거나, 혹은 아무것도 담지 않을 수 있는 불변 컬렉션이다. => (컬렉션을 구현한 건 아니다.) public static E max(Collection c) { if (c.isEmpty()) throw new IllegalArgumentException("빈 컬렉션"); E result = null; for (E e : c) if (result == null || e.compa..

    2024.01.03
  • 가변인수는 신중히 사용하라

    가변인수 메서드는 명시한 타입의 인수를 0개 이상 받을 수 있다. 가변인수 메서드를 호출하면 먼저 인수의 개수와 길이가 같은 배열을 만들고 인수들을 이 배열에 저장하여 가변인수 메서드에 건네준다. 다음은 입력받은 int 인수들의 합을 계산해주는 가변인수 메서드다. static int sum(int... args) { int sum = 0; for (int arg : args) sum += arg; return sum; } 인수가 1개 이상이어야 할 때도 있다. 최솟값을 찾는 메서드에 인수 0개를 받을 수 있도록 설계하는 건 좋지 못하다. static int min(int... args) { if (args.length == 0) throw new IllegalArgumentException("인수가 1개..

    2023.12.31
이전
1 2 3 4 5 ··· 8
다음
티스토리
© 2018 TISTORY. All rights reserved.

티스토리툴바