JAVA

[JAVA] 제네릭을 사용하는 이유

오선지♬ 2024. 10. 6. 12:39
728x90
반응형

제네릭(Generics)은 Java와 같은 프로그래밍 언어에서 제공하는 기능으로, 클래스, 인터페이스, 메서드 등에 타입 매개변수를 도입하여 다양한 데이터 타입을 처리할 수 있도록 합니다. 제네릭을 사용하는 주된 이유는 다음과 같습니다:

1. 타입 안전성(Type Safety)

제네릭을 사용하면 컴파일 타임에 타입을 검사할 수 있습니다. 이는 런타임에 발생할 수 있는 ClassCastException과 같은 오류를 미연에 방지할 수 있게 해줍니다. 예를 들어, 제네릭을 사용하지 않은 컬렉션에서는 객체를 추가할 때 타입 체크가 이루어지지 않아 잘못된 타입의 객체가 추가될 수 있습니다.

List<String> list = new ArrayList<>();
list.add("Hello");
list.add(123); // 컴파일 에러 발생

2. 코드 재사용성(Reuse Code)

제네릭은 특정 데이터 타입에 의존하지 않기 때문에, 다양한 데이터 타입을 처리할 수 있는 유연한 코드를 작성할 수 있습니다. 이를 통해 코드 중복을 줄이고, 재사용 가능한 컴포넌트를 만들 수 있습니다.

public class Box<T> {
    private T item;

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

    public T getItem() {
        return item;
    }
}

3. 가독성 향상(Readability)

제네릭을 사용하면 코드의 의도를 명확하게 표현할 수 있어 가독성이 향상됩니다. 타입 매개변수를 사용함으로써, 어떤 종류의 데이터가 사용될 것인지 쉽게 알 수 있습니다.

List<Integer> numbers = new ArrayList<>(); // 정수 목록
List<String> names = new ArrayList<>(); // 문자열 목록

4. 타입 변환 최소화(Minimal Type Casting)

제네릭을 사용하면 명시적인 타입 변환을 줄일 수 있습니다. 비제네릭 컬렉션에서는 객체를 꺼낼 때 매번 캐스팅해야 하지만, 제네릭을 사용하면 타입이 명확하므로 캐스팅이 필요하지 않습니다.

List<String> list = new ArrayList<>();
list.add("Hello");
String item = list.get(0); // 캐스팅 필요 없음

5. API 설계의 유연성(Flexibility in API Design)

제네릭을 사용하면 API가 다양한 타입의 데이터를 처리할 수 있도록 설계할 수 있습니다. 예를 들어, Java의 컬렉션 프레임워크는 제네릭을 사용하여 다양한 데이터 타입을 처리할 수 있는 API를 제공합니다.

결론

제네릭은 타입 안정성을 높이고 코드 재사용성을 증가시키며 가독성을 향상시키는 등 여러 가지 장점을 제공합니다. 이러한 이유로, 제네릭은 Java와 같은 현대 프로그래밍 언어에서 중요한 개념으로 자리 잡고 있습니다.

 
 

 

728x90
반응형

'JAVA' 카테고리의 다른 글

[JAVA]  (0) 2024.10.07
[JAVA] Desktop Class  (1) 2024.10.03
[JAVA] InputStream / InputStreamResource  (2) 2024.10.02
[JAVA] URLEncoder java.net/ apache 차이  (0) 2024.10.01
[JAVA] 문자열 날짜를 LocalDate로 날짜 차이 구하기  (0) 2024.09.22