개발일지

2024.04.04 TIL

과일바구니♡ 2024. 4. 4. 21:00

1. 스프링)기술면접질문

1)제네릭이란 무엇인가요?

제네릭은 프로그래밍에서 타입(type)을 파라미터로 받아서 사용하는 기법을 말해요. 이를 통해 클래스, 인터페이스, 메소드를 정의할 때 구체적인 타입을 명시하지 않고, 실제 사용되는 시점에 타입을 지정할 수 있어요. 제네릭을 사용함으로써 코드의 재사용성을 높이고, 타입 안정성을 확보할 수 있습니다.

제네릭의 기본 개념

정의: 타입을 일반화하여, 클래스 내부에서 개별적으로 타입을 지정하는 것이 아니라 외부에서 타입을 지정할 수 있게 하는 기법입니다.

사용 이유: 타입 안정성을 확보하고, 코드의 재사용성을 높이기 위해서입니다. 또한, 컴파일 시점에 타입 체크를 할 수 있어 런타임 에러의 가능성을 줄일 수 있어요.

제네릭의 장점

타입 안정성: 제네릭을 사용하면 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지할 수 있습니다.

코드 재사용성 향상: 비슷한 기능을 지원하는 경우, 하나하나의 타입에 따라 클래스를 생성하는 것보다 제네릭을 사용하는 것이 더 효율적입니다.

타입 체크와 변환의 간소화: 클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환해줄 필요가 없어 관리가 편해집니다.

 

제네릭은 프로그래밍에서 매우 유용한 기능이에요. 타입의 안정성을 보장하면서도 코드의 재사용성을 높일 수 있습니다.

 

2)오버로딩과 오버라이딩의 차이점을 설명해주세요.

오버로딩(Overloading)과 오버라이딩(Overriding)은 자바 프로그래밍에서 중요한 개념으로, 둘 다 메소드의 다형성을 지원하는 방법이지만, 그 방식과 목적에 있어서 차이가 있습니다.

 

오버로딩(Overloading)

정의: 같은 이름의 메소드를 여러 개 가지면서 매개변수의 유형과 개수를 다르게 하는 기법입니다.

목적: 하나의 메소드 이름으로 다양한 유형의 매개변수를 받아 처리할 수 있도록 하여 메소드의 재사용성을 높입니다.

조건: 메소드 이름은 같지만, 매개변수의 개수나 타입이 달라야 합니다. 리턴 타입은 오버로딩을 구분하는 데 사용되지 않습니다.

 

오버라이딩(Overriding)

정의: 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의하여 사용하는 기법입니다.

목적: 상속 관계에 있는 클래스 간의 다형성을 확보하기 위해 사용됩니다. 하위 클래스에서 상위 클래스의 메소드를 재정의하여 특정 기능을 변경하거나 확장합니다.

조건: 메소드 이름, 매개변수의 개수 및 타입, 리턴 타입이 모두 같아야 합니다. 접근 제어자는 상위 클래스의 메소드보다 더 제한적이어서는 안 됩니다.

 

오버로딩은 메소드의 입력 매개변수를 다양화하여 같은 이름의 메소드를 여러 개 정의하는 것이고, 오버라이딩은 상속받은 메소드의 기능을 하위 클래스에서 변경하거나 확장하는 것입니다. 이 두 기법은 자바 프로그래밍에서 코드의 재사용성과 유연성을 높이는 데 큰 역할을 합니다.

 

 

'개발일지' 카테고리의 다른 글

2024.04.08 TIL  (0) 2024.04.08
2024.04.05 TIL  (0) 2024.04.05
2024.04.03TIL  (0) 2024.04.03
2024.04.02 TIL  (0) 2024.04.02
2024.04.01 TIL  (0) 2024.04.01