본문 바로가기 메뉴 바로가기

나의 구름낀 조각들

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

나의 구름낀 조각들

검색하기 폼
  • 분류 전체보기 (16)
    • Java (13)
    • Git (1)
    • Spring (2)
    • 일상생활 정보 (0)
  • 방명록

Java (13)
[Java/자바] 자바 제네릭(Generics) 완벽 가이드: 타입 안정성과 와일드카드(PECS) 활용법

자바(Java)를 사용하여 애플리케이션을 개발하다 보면 컬렉션 프레임워크(Collection Framework)를 다룰 일이 매우 많습니다. 이때 NullPointerException만큼이나 개발자를 괴롭히는 것이 바로 런타임에 발생하는 ClassCastException입니다.자바 5 버전에 도입된 자바 제너릭(Java Generics)은 이러한 타입 변환 에러를 컴파일 타임에 완벽하게 잡아주는 아주 강력하고 필수적인 문법입니다. 오늘 이 포스팅에서는 자바 제네릭의 기초적인 개념부터 시작하여 제네릭 사용법, 제한된 타입 파라미터, 그리고 많은 개발자들이 헷갈려하는 와일드카드(Wildcard)와 PECS 공식까지 상세히 알아보겠습니다.1. 자바 제네릭(Java Generics)이란?제네릭(Generics)..

Java 2026. 7. 5. 17:41
Java8 Optional API

Optional이란? Optional Class는 Integer나 Double Class처럼 'T'타입의 객체를 포장해 주는 Wrapper Class이자 컨테이너 객체입니다. 컨테이너 안에 값이 들어 있을 수도 있고, 값이 없어 비어있는 컨테이너 일수도 있습니다. 해당 Optional은 Java 11 기준으로 설명하겠습니다. Optional 특징 값이 비어있을 수도 있다는 가정하에 사용하므로 직관성이 좋습니다. Null 값을 직접 사용하지 않아 NullPointerException 예외에 대하여 유연해집니다. Null 체크 기능을 직접 구현 안 해도 됩니다. Optional 생성 1. static Optional of(T value) 명시된 값을 가지는 Optional 객체를 반환합니다. 명시된 값이 아..

Java 2022. 5. 6. 09:00
Java8 Stream API

Stream이란? 다량의 데이터를 읽어온 다음, 사용자가 원하는 데이터로 가공하여 보여주는 객체입니다. 원본 데이터는 수정하지 않으며, Terminal Operation이 끝날 경우 소실됩니다. Stream 구조 0 또는 다수의 Intermediate Operation(중개 연산)과 1개의 Terminal Operation(최종 연산)으로 구성되어 있습니다. Intermediate Operation은 새로운 Stream을 반환하고 항상 Lazy(게을러)하여 Terminal Operation이 실행될 때까지 시작되지 않습니다. Stream의 특징 원본 데이터를 수정하지 않습니다. 손쉽게 병렬 처리를 할 수 있습니다. 함수형 인터페이스를 지원합니다. Stream은 일회성입니다. Stream 작업은 내부 반복..

Java 2022. 5. 4. 09:00
자바 함수형 인터페이스(Functional Interface)와 람다 표현식(Lambda Expressions)

함수형 인터페이스(Functional Interface)란? 추상 메소드를 단 하나만 가지고 있는 SAM (Single Abstract Method) 인터페이스입니다. @FuncationInterface 애노테이션을 가지고 있습니다. 함수형 인터페이스를 더 알아보기 전에 우선 람다 표현식 및 메소드 레퍼런스부터 알아보겠습니다. 람다 표현식(Lambda Expressions)이란? 함수형 인터페이스의 인스턴스를 만드는 방법으로 쓰일 수 있습니다. 메소드 매개변수, 리턴 타입, 변수로 만들어 사용할 수도 있습니다. 그리고 코드를 확연히 줄일 수 있습니다. RunSomething runSomething = new RunSomething() { @Override public int doIt(int number)..

Java 2022. 4. 14. 09:00
자바 인터페이스(Interface)

인터페이스란? 클래스들이 구현해야 하는 동작들을 추상적으로 선언하는 추상 자료형입니다. Interface라는 키워드를 사용하여 선언합니다. 강제적으로 구현해야 하는 추상 메소드가 있으며, static과 final이 둘 다 선언되는 상수가 있습니다. 자바 8버전부터, default 메소드와 static 메소드를 인터페이스에 구현할 수 있습니다. 기존 자바 7버전 이하에서는 추상화 클래스에서 공통코드를 구현체 메소드로 구현하여 상속 할 경우 추상화 클래스만 상속 받을 수 있기 때문에 더 이상 상속이 불가능하였습니다. 하지만, 자바 8버전부터는 인터페이스에서 default 메소드와 static 메소드가 추가되어 상속에 대하여 자유가 생겼습니다. 기본 메소드(Default Method) 인터페이스에 메소드를 구..

Java 2022. 4. 13. 09:00
애노테이션 프로세서(Annotation processor)

Annotation Processor란? Annotation Processor는 컴파일 단계에서 Annotation에 정의된 일렬의 프로세스를 동작하게 하는 것을 의미합니다. 컴파일 단계에서 실행되기 때문에, 빌드 단계에서 에러를 출력하게 할 수 있고, 소스코드 및 바이트 코드를 생성할 수도 있습니다. 사용하는 예로 자바의 @Override가 있으며, Lombok(롬북)이라는 라이브러리도 있습니다. Lombok은 자주 사용하는 라이브러리로 한번 살펴보겠습니다. Lombok이란? @Getter, @Seteer, @Builder 등의 Annotation과 Annotation Processor를 제공하여 표준적으로 작성해야 할 코드를 개발자 대신 생성해주는 라이브러리 입니다. 컴파일 시점에 Annnotatio..

Java 2022. 4. 6. 09:00
이전 1 2 3 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • 애노테이션
  • javassist
  • 애노테이션 프로세서
  • java proxy pattern
  • java11 optional
  • Reflection
  • optional api
  • bytebuddy
  • jvm
  • 람다표현식
  • 자바 프록시 패턴
  • JVM 구조
  • 자바 리플렉션
  • 자바
  • 실행 엔진
  • JRE와 JDK의 차이점
  • Java Reflection
  • 깃 기초
  • 리플렉션
  • 클래스로더
  • classloder
  • javaagent
  • 바이트 코드
  • java
  • Annotation Processor
  • Functional Interface
  • dromos
  • 코드 커버리지
  • java optional
  • java abstractprocessor
more
«   2026/08   »
일 월 화 수 목 금 토
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바