BE/Java

· BE/Java
스트림 스트림은 어떤 소스로부터 어떤 스트림을 얻고, 하나 이상의 중간 작업을 수행한 후, 마지막으로 하나의 최종 작업을 수행한다. 중간 작업 : filter, map, flatMap, peel, distinct, sorted, limit, substream 최종 종료 작업 : forEach, toArray, reduce, collect, min, max, count, anyMatch, allMatch, noneMatch, findFirst, findArray 를 포함한다. Java8 부터 추가된 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 처리해주는 반복자이다. Reduction 대량의 데이터를 가공해 축소하는 것 데이터의 합계, 평균값, 카운팅, 최댓값, 최소값 필터링, 매핑, ..
· BE/Java
Java 8의 특징 Interface에 default 메서드, static 메서드 사용 가능 자바 8 이전까지 Interface의 abstract 메서드는 반드시 클래스에서 구현했어야 함. 인터페이스에 absrtact 메서드를 추가했다면, 그 인터페이스를 사용한 모든 클래스에서 그 메서드를 구현했어야 함 (바이너리 호환성 이슈) 자바 8이후로 default, static 메서드 사용이 가능 람다식 사용 가능, 람다를 이용해서 스트림API 사용 가능(람다는 Java8 기능 중 큰 변화) Time, Date 관련한 API 추가 함수형 프로그래밍(Functional Programming) 계산을 수학적 함수의 평가로 취급하고, 변경 불가능한 값을 이용 함수형 프로그래밍은 순수 함수들로만 작성된다. 순수함수 :..
· BE/Java
Reflection(리플렉션) 클래스의 실체가 아닌 반사된 모습을 이용한 기능. Class 를 이용 리플렉션 기능을 지원하지 않는 언어 : C, C++. Pascal 사용되는 기술 : JPA, Jackson, Mockito, Junit ... 장점 외부, 사용자 정의 클래스들을 사용할 수 있게 함 접근제어자에 관계없이 접근이 가능하도록 함 단점 컴파일 시점이 아닌, 런타임 시점에 클래스를 분석 JVM을 최적화할 수 없어 성능저하 마찬가지로, 컴파일 에러 확인 불가 코드 가독성 저하 내부가 노출되어 추상화 파괴 Class 실행중인 자바 어플리케이션의 클래스와 인터페이스의 정보를 가진 클래스 클래스와 인터페이스의 정보를 가지고 있기 때문에, Class는 클래스의 내용을 모두 확인 가능 (ex, 어노테이션, ..
· BE/Java
MapStruct는 객체끼리 매핑을 해주는 유용한 기능이다. 간단하게 아래의 예로 사용법을 알아보자. 준비사항 MapStruct는 Getter, Setter or builder 를 사용하기 때문에 lombok이 있으면 더욱 편리하게 사용할 수 있다. dependency 설정 시, Lombok 뒤에 MapStruct를 넣어줘야 정상적으로 실행 가능하다. 매핑에 진행하기 앞서, 반드시 매핑을 진행하는 두 객체는 아래와 같은 설정을 해야 한다. 반환 타입의 객체: Builder or Setter 필요 (반환 타입의 객체에 데이터를 설정해야 하기 때문) 파라미터 타입의 객체: Getter 필요(파라미터 객체의 데이터를 읽어야 하기 때문) Category.java (Entity) import jakarta.per..
· BE/Java
Jacoco Java로 작성한 코드에 대해 code coverage 를 진단해주는 툴 쉽게 말해서, Java로 작성한 개발 코드에 대해서 테스트 코드가 얼마나 잘 확인하는 지 알려주는 툴 Junit 테스트로 함께 동작할 수 있고, 테스트 후에 테스트 코드가 개발 코드를 얼마나 커버했는가(잘 테스트했는가)에 대한 결과를 다양한 방법으로 알려줄 수 있다. (html, xml, csv 등) 특정 수치의 Code Coverage 를 검사해서, 만약 조건을 만족하지 못한다면 빌드를 못하게 막을 수도 있다. Code Coverage 테스트 코드가 개발 코드에 대해서 얼마나 잘 확인했는 지에 대해서 알려주는 지표 개발 코드에 대해서 어느정도의 코드가 테스트됐는 지 프로젝트 환경 Java 17 Maven Build J..
· BE/Java
단위테스트 도중 특정 메소드의 인자 값을 중간에 검증하고 싶을 때가 있다. 그럴 때, ArgumentCaptor 를 이용하면 된다. ArgumentCaptor 특정 메소드가 실행될 때, 인자를 가로채서 저장하는 기능 가로챈 인자를 검증해서 테스트가 가능 사용 방법 ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(T.class); 가로챌 인자의 타입을 T라고 할 때의 선언 방법은 위와 같다. Collection 프레임워크(List, Array)도 가능하다. 2개 이상의 인자를 가로채고 싶다면, ArgumentCaptor를 그만큼 정의해서 사용하면 된다. ... @Test void test() { // given int number = 7; // acti..
· BE/Java
이 포스팅에서 작성하는 내용은 더 자바, Java 8 에서 발췌하였습니다. https://www.inflearn.com/course/the-java-java8 더 자바, Java 8 - 인프런 | 강의 자바 8에 추가된 기능들은 자바가 제공하는 API는 물론이고 스프링 같은 제 3의 라이브러리 및 프레임워크에서도 널리 사용되고 있습니다. 이 시대의 자바 개발자라면 반드시 알아야 합니다. 이 www.inflearn.com Annotation 타입 선언부에서도 사용이 가능 (제네릭, 변수, 매개변수, 예외 타입 등) 중복해서 사용 가능 TYPE TYPE_PARAMETER : 타입 변수에만 사용 가능 TYPE_USE : 타입 변수를 포함해서 모든 타입 선언부에 사용 가능 중복 사용 @Repatable(clas..
· BE/Java
이 포스팅에서 작성하는 내용은 더 자바, Java 8 에서 발췌하였습니다. https://www.inflearn.com/course/the-java-java8 더 자바, Java 8 - 인프런 | 강의 자바 8에 추가된 기능들은 자바가 제공하는 API는 물론이고 스프링 같은 제 3의 라이브러리 및 프레임워크에서도 널리 사용되고 있습니다. 이 시대의 자바 개발자라면 반드시 알아야 합니다. 이 www.inflearn.com Concurrent Programming 동시에 여러 작업을 할 수 있는 소프트웨어 프로그램 ex) chrome, Intellij, youtube, word 등 여러 프로그램을 동시에 실행 Java의 Concurrent Programming Multi Processing Multi Thr..
멍목
'BE/Java' 카테고리의 글 목록