본문 바로가기

728x90

야미스터디/Java

(21)
[Java] 익명 클래스 vs 람다식 익명 클래스 Inner class, 이름이 없는 클래스를 말한다 클래스 정의와 동시에 객체를 생성할 수 있다 Java의 Interface와 Class 모두 익명 함수로 객체를 만들 수 있다 익명 함수를 사용하는 이유 프로그램 내에서 한 번만 객체로 만드는 데 사용되는 클래스의 경우 클래스를 정의하고 생성하는 것이 비효율적이기 때문이다 익명 함수로 클래스 정의와 구현을 동시에 하여 코드 길이를 줄일 수 있다 Runnanle이나 Event Listener 객체를 생성하는데 주로 사용된다 1) 익명 함수로 Interface 구현 및 객체 생성하기 Java의 Interface나 Abstract 클래스는 익명 함수로 구현과 동시에 객체를 생성할 수 있다 다음과 같은 방식으로 익명 클래스의 객체를 생성할 수 있다 ..
[Java] Java 8 - 함수형 인터페이스(Functional Interface) 💎 함수형 인터페이스 (Funtaional Interface) public interface FunctionalInterface { public abstract void doSomething(String text); } 함수형 인터페이스는 1개의 추상 메소드를 갖고 있는 인터페이스를 말한다 Single Abstract Method(SAM) 이라고 불리기도 한다 1) 함수형 인터페이스를 사용하는 이유 함수형 인터페이스를 사용하는 이유는 자바의 람다식은 함수형 인터페이스로만 접근이 되기 때문이다 예시를 통해 살펴보자! public interface FuntionalInterface { public abstract void doSomething(String text); } FunctionalInterface ..
[Java - Stream] 04. mapping [Reference] http://www.yes24.com/Product/Goods/17252419 자바 8 인 액션 - YES24 자바 8의 새로운 기능은 자바 1.0이 나온 이후 18년을 통틀어 가장 큰 변화다. 기존의 자바 코드 모두 그대로 사용하면서도 새로운 기능과 새로운 문법과 새로운 디자인 패턴으로 더 명확하고, 간 www.yes24.com Intro 수많은 데이터(Data) 중에 특정 조건에 해당되는 정보(Information)를 선별하는 작업은 데이터 처리 방식에서도 자주 수행되는 연산 중 하나이다. 데이터 소스에서 특정 조건의 데이터 리스트를 추출해야 하는 경우 또는 필드를 가공해야 하는 경우가 필요할 수 있다. 예를 들어, 사용자의 요청을 받아서 처리하는 부분에서는 유효성 검사를 통해 ..
[Java - Stream] 03. filtering Intro 데이터를 처리하기 위해 조건문이 있다면, 스트림에서는 동일한 기능으로 필터링을 제공한다. 필터링 스트림의 요소를 선택하는 방법으로 Predicate 필터링, 고유 요소 필터링, 스트림의 일부 요소를 무시하거나 스트림을 주어진 크기로 축소하는 방법 등이 있다. 1) Predicate로 필터링 스트림 인터페이스는 filter 메서드를 지원하고, Predicate(boolean을 반환하는 함수)를 인수로 받아서 일치하는 모든 요소를 포함하는 스트림을 반환한다. Predicate는 자바 8에 나온 함수형 인터페이스로 boolean 반환 타입의 test 메서드가 존재한다. public class ChickenFilter { private final List chickens; public ChickenF..
[Java - Stream] 02. 컬렉션과 Stream의 구현방식의 차이 [Reference] https://tecoble.techcourse.co.kr/post/2021-05-23-stream-api-basic/ StreamAPI 나도 한 번 써보자! Java 의 Stream API 사용 방법을 알아보자. 우아한테크코스 프리코스 과정에서 Stream API 를 사용해서 코드를 맛깔나게 구현하는 분들을 보면 괜스레 해야 할 것 같고, 유용해 보여서 흥미가 생긴다. tecoble.techcourse.co.kr https://tecoble.techcourse.co.kr/post/2020-05-14-foreach-vs-forloop/ Stream의 foreach 와 for-loop 는 다르다. Stream에 대한 기본적인 학습을 위해 찾아왔다면, 공식 오라클 문서를 참고하면 좋을 ..
[Java - Stream] 01. 스트림을 학습해야 하는 이유 [Reference] http://www.yes24.com/Product/Goods/77125987 모던 자바 인 액션 - YES24 자바 1.0이 나온 이후 18년을 통틀어 가장 큰 변화가 자바 8 이후 이어지고 있다. 자바 8 이후 모던 자바를 이용하면 기존의 자바 코드 모두 그대로 쓸 수 있으며, 새로운 기능과 문법, 디자인 패턴 www.yes24.com 0️⃣ Intro 대부분은 자바 애플리케이션을 작성할 때, 데이터를 처리하기 위한 방식으로 컬렉션을 만들고 이를 활용한다. 컬렉션은 데이터를 보관하기 위한 자료구조일 뿐이고, 이를 활용하기 위해서는 개발자가 반복문과 조건문을 통해 원하는 로직을 구현해야 한다. 스트림 API는 컬렉션을 사용하는 방식과는 다른 방식으로 데이터를 처리할 수 있다. 1️..
[Java] JPA 1차 캐시 📌 JPA 캐시 네트워크를 통해서 데이터베이스에 접근하는 시간 비용은 애플리케이션 서버 내부 메모리에 접근하는 시간보다 훨씬 비싸다 따라서 조회한 데이터를 메모리에 캐싱해두면 데이터베이스 접근 횟수를 줄여 성능을 개선할 수 있다 영속성 컨텍스트 애플리케이션과 데이터베이스 사이에서 객체를 보관하는 논리적 개념 EntityManager를 통해서 영속성 컨텍스트에 접근한다 EntityManager가 생성되면 논리적 개념인 영속성 컨텍스트(Persistence Context)가 1:1로 생성된다 영속성 컨텍스트에서 관리되는 엔티티의 상태를 '영속 상태'라고 한다 영속성 컨텍스트의 장점 1차 캐시 / 엔티티 동일성(identity) 보장 트랜잭션을 지원하는 쓰기 지연 (Transactional write-behind..
[Java] Checked Exception vs Unchecked Exception 📌 예외 계층 1) Error 메모리 부족이나 시스템 오류처럼 애플리케이션에서 복구 불가능한 시스템 예외를 말한다 시스템에 무엇인가 비정상적인 상황이 발생한 경우에 사용된다 주로 자바 가상 머신(JVM)에서 발생시키는 것이며, 예외와 반대로 이를 애플리케이션 코드에서 잡을 수 없다 이는 개발자가 미리 예측하여 처리할 수 없기 때문에 예외 처리에 신경 쓰지 않아도 된다 ex) OutOfMemoryError, ThreadDeath, StackOverflowError 등... 2) Exception 체크 예외 입력 값에 대한 처리가 불가능하거나 프로그램 실행 중에 참조된 값이 잘못된 경우 등 정상적인 프로그램의 흐름을 어긋나는 것을 의미한다 애플리케이션 로직에서 사용할 수 있는 실질적인 최상위 예외이다 Excep..

728x90