JAVA

초보자를 위한 Java 제네릭 가이드: 쉽게 배우는 코드 재사용

CodeCaine Explorer 2024. 12. 20. 17:28
728x90
반응형
SMALL

Java Generics: 쉽고 따뜻한 가이드 😊

Java 제네릭(Generic)은 코드 재사용성을 높이고 타입 안정성을 제공하는 중요한 개념입니다. 초보자를 위한 쉽고 따뜻한 설명과 실전 예제로 이해를 도와드릴게요. 😊


🙌 안녕하세요, 개발을 사랑하는 여러분!

Java를 배우면서 Generics(제네릭)이라는 단어, 한 번쯤 들어보셨을 거예요. 처음엔 조금 어렵게 느껴질 수 있지만, 천천히 따라오시면 "아! 이거구나!" 하실 거예요. 오늘은 제네릭의 기본 개념부터 실전 활용까지 함께 배워볼게요. 😊


📚 Java Generics란?

Generics는 Java에서 컴파일 시점에 타입을 체크할 수 있도록 도와주는 기능이에요.
주요 목표는 두 가지예요:

  1. 타입 안정성: 잘못된 타입 사용 방지
  2. 코드 재사용성: 여러 타입에 대해 동일한 코드를 작성 가능

쉽게 말해, 하나의 틀을 만들어 다양한 타입을 처리할 수 있게 해주는 도구랍니다!


🤔 왜 필요할까요?

  1. 코드의 안전성이 올라가요.
    컴파일 시점에 타입을 확인하니, 런타임 에러를 줄일 수 있답니다.
  2. 코드가 간결해져요.
    여러 타입을 처리하기 위해 동일한 코드를 반복 작성할 필요가 없어요.

✍️ 제네릭 사용법

1. 제네릭 클래스

클래스 선언 시 <T>를 사용해 타입 매개변수를 정의할 수 있어요.

// 제네릭 클래스 정의
class Box<T> {
    private T item;

    public void setItem(T item) {
        this.item = item;
    }

    public T getItem() {
        return item;
    }
}

// 제네릭 클래스 사용
public class Main {
    public static void main(String[] args) {
        Box<String> stringBox = new Box<>();
        stringBox.setItem("Hello");
        System.out.println(stringBox.getItem());

        Box<Integer> intBox = new Box<>();
        intBox.setItem(123);
        System.out.println(intBox.getItem());
    }
}

결과:

Hello
123

2. 제네릭 메서드

메서드에만 제네릭을 적용할 수도 있어요.

public class Main {
    public static <T> void printArray(T[] array) {
        for (T element : array) {
            System.out.print(element + " ");
        }
        System.out.println();
    }

    public static void main(String[] args) {
        String[] stringArray = {"A", "B", "C"};
        Integer[] intArray = {1, 2, 3};

        printArray(stringArray); // A B C
        printArray(intArray);    // 1 2 3
    }
}

3. 제네릭 와일드카드

와일드카드는 제네릭 타입의 범위를 설정할 때 사용돼요.

import java.util.List;

public class Main {
    public static void printList(List<?> list) {
        for (Object obj : list) {
            System.out.println(obj);
        }
    }

    public static void main(String[] args) {
        List<String> stringList = List.of("Apple", "Banana", "Cherry");
        List<Integer> intList = List.of(1, 2, 3);

        printList(stringList);
        printList(intList);
    }
}

💡 제네릭에서 자주 쓰는 기호

기호 의미
<T> Type (타입)
<E> Element (요소)
<K> Key (키)
<V> Value (값)
<?> 와일드카드 (모든 타입 가능)

🧠 기억하세요!

  1. 컴파일 시점에 타입 체크로 안전한 코드 작성 가능!
  2. 다양한 타입을 처리하면서도 중복 코드 제거 가능!
  3. 와일드카드로 타입의 범위를 유연하게 설정!

✨ 마무리하며...

제네릭은 처음엔 어렵게 느껴질 수 있지만, 익숙해지면 정말 유용한 도구예요. 😊
천천히 연습하다 보면 어느새 "제네릭 고수"가 되어 있을 거예요.
궁금한 점은 언제든 댓글로 물어봐 주세요! 힘내세요! 💪

반응형
SMALL