[Spring Boot] 자바 개발할 때 유용한 내장 기능

김현수·2024년 5월 25일
0

spring

목록 보기
8/9


🖋️ 자바 개발할 때 유용한 내장 기능

  • 자바 Stream API

    • 기능적 스타일로 객체 컬렉션을 처리하는 데 사용

    • Filter

      • 조건에 따라 요소를 선택하는데 사용
      • List<String> names = Arrays.asList("John", "Jane", "Jack");
        List<String> filteredNames = names.stream()
                                   .filter(name -> name.startsWith("J"))
                                   .collect(Collectors.toList());
    • Map

      • 요소를 변환하는 데 사용
      • List<String> names = Arrays.asList("John", "Jane", "Jack");
        List<String> upperCaseNames = names.stream()
                                    .map(String::toUpperCase)
                                    .collect(Collectors.toList());
    • Reduce

      • 요소를 단일 결과로 집계하는 데 사용
      • List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
        int sum = numbers.stream()
                  .reduce(0, Integer::sum);

  • Optional

    • 값이 존재할 수도 있고 없을 수도 있는 컨테이너 객체

    • NullPointerException을 방지하고 명시적으로
      값의 존재 여부를 처리 가능

    • Optional<String> optional = Optional.of("Hello, World!");
      optional.ifPresent(System.out::println);
      
      String value = optional.orElse("Default Value");    

  • CompletableFuture

    • 비동기 프로그래밍을 쉽게 가능하도록 도와주는 클래스

    • CompletableFuture.supplyAsync(() -> "Hello")
                       .thenApply(result -> result + ", World!")
                       .thenAccept(System.out::println); 

  • Files

    • 파일 및 디렉토리에 대한 다양한 유틸리티 메서드를 제공

    • Path path = Paths.get("example.txt");
      List<String> lines = Files.readAllLines(path);
      lines.forEach(System.out::println);
      
      Files.write(path, Arrays.asList("Line 1", "Line 2"), StandardOpenOption.APPEND);

  • Collections

    • 컬렉션 객체를 다루기 위한 다양한 유틸리티 메서드를 제공

    • List<String> list = new ArrayList<>(Arrays.asList("apple", "banana", "cherry"));
      Collections.sort(list);
      list.forEach(System.out::println);
      
      Collections.reverse(list);
      list.forEach(System.out::println);

  • Locale

    • 지역화된 정보(언어, 국가 등)를 다루는 데 사용

    • Locale locale = new Locale("en", "US");
      System.out.println(locale.getDisplayLanguage());
      System.out.println(locale.getDisplayCountry());

  • UUID

    • 고유한 식별자를 생성하는 데 사용

    • UUID uuid = UUID.randomUUID();
      System.out.println(uuid.toString());

  • Pattern

    • 정규 표현식을 다루기 위한 클래스

    • Pattern pattern = Pattern.compile("\\d+");
      Matcher matcher = pattern.matcher("12345");
      if (matcher.matches()) {
           System.out.println("Matches!");
      }

  • Lambda Expressions

    • 자바에서 함수형 프로그래밍을 지원하는 구문

    • 익명 함수를 간단하게 표현 가능

    • List<String> list = Arrays.asList("a", "b", "c");
      list.forEach(item -> System.out.println(item));
      
      list.stream()
           .filter(item -> item.equals("b"))
           .forEach(System.out::println);

  • Map Struct

    • Java Bean 간의 매핑을 자동으로 생성하는 코드 생성 라이브러리

    • @Mapper
      public interface UserMapper {
          UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);
       
          @Mapping(source = "name", target = "userName")
               UserDTO userToUserDTO(User user);
      } 
      
      User user = new User("John", "Doe");
      UserDTO userDTO = UserMapper.INSTANCE.userToUserDTO(user);

  • Lombok

    • 반복되는 코드(예: getter, setter, toString 등)를 줄여주는 라이브러리

    • @Data
      @AllArgsConstructor
      public class User {
          private String firstName;
          private String lastName;
      } 
      
      User user = new User("John", "Doe");
      System.out.println(user.getFirstName());
profile
일단 한다

0개의 댓글