Sealed Class

sooj·2023년 12월 27일
0

기술면접

목록 보기
1/1

요약

1. kotlin 에서 sealed class 는 Enum 클래스의 한계 극복 위해 도입
2. Enum클래스는 각 하위 타입이 상수이며, 상태를 가질 수 없어 동적 오류 표현에 한계 있음
3. sealed클래스는 클래스 계층을 제한하면서도, 객체가 제한된 타입 중 하나를 가질 수 있게 해줌
4. 그래서 더 유연하고 확장 가능한 코드 구조 만들 수 있음
5. sealed클래스의 생성자는 기본적으로 private
6. 모든 하위 클래스는 sealed클래스와 같은 파일 내에 선언 되어야 함

Q1) Kotlin의 sealed 클래스를 사용하여 Android 앱 개발에서 어떤 구체적인 문제를 해결할 수 있나요?

타입 안전성 강화:
Sealed 클래스를 사용하면 더 엄격한 타입 체크를 할 수 있어, 런타임 오류의 가능성을 줄일 수 있습니다. 예를 들어, UI 상태 관리나 네트워크 응답 처리에서 오류 상태와 성공 상태를 명확히 구분할 수 있습니다.

유연한 상속 구조:
Sealed 클래스는 다양한 하위 클래스를 가질 수 있어, 복잡한 상속 구조를 보다 효율적으로 관리할 수 있습니다. 이는 다양한 UI 이벤트나 비즈니스 로직 처리에 유용하게 활용될 수 있습니다.

코드 가독성 향상:
Sealed 클래스는 코드의 명확성과 가독성을 향상시키는 데 도움이 됩니다. 각각의 하위 클래스가 명확한 역할과 책임을 가지므로, 코드의 의도를 이해하기 쉬워집니다.


Q2) sealed 클래스와 Enum 클래스를 비교할 때, 어떤 상황에서 sealed 클래스를 선호하는 것이 더 나은 선택일까요?

상태를 가진 하위 타입 필요:
Enum은 상태를 가질 수 없는 반면, sealed 클래스의 하위 클래스는 상태와 행동을 가질 수 있습니다. 따라서 동적 데이터를 다루는 경우 sealed 클래스가 더 적합합니다.

확장성: Sealed
클래스는 새로운 하위 클래스를 추가하기 쉬워 확장성이 뛰어납니다. Enum은 새로운 타입을 추가할 때 전체 Enum을 수정해야 하지만, sealed 클래스는 기존 코드에 영향을 주지 않고 새로운 하위 클래스를 추가할 수 있습니다.

복잡한 로직 처리:
복잡한 비즈니스 로직이나 다양한 상태를 처리해야 하는 경우, sealed 클래스를 사용하면 각 상태에 대한 로직을 보다 명확하게 구현할 수 있습니다.


Q3) Kotlin의 sealed 클래스를 학습하는 데 있어서 주의해야 할 점이나 흔히 발생하는 실수는 무엇인가요?

파일 내 선언:
Sealed 클래스의 모든 하위 클래스는 같은 파일 내에 선언되어야 합니다. 이 규칙을 무시하면 컴파일 오류가 발생할 수 있습니다.

하위 클래스의 다양성 이해:
Sealed 클래스의 하위 클래스는 다양한 형태(data class, object, regular class)를 가질 수 있습니다. 각각의 특성과 사용 방법을 정확히 이해하는 것이 중요합니다.

코드의 명확성 유지: Sealed
클래스를 사용할 때는 코드의 명확성을 유지하는 것이 중요합니다. 너무 많은 하위 클래스를 만들거나 복잡한 계층 구조를 만들면 코드의 가독성과 관리가 어려워질 수 있습니다.

profile
하루하루는 성실하게 인생 전체는 되는대로

0개의 댓글

관련 채용 정보