Inflearn brand logo image

인프런 커뮤니티 질문&답변

나구리님의 프로필 이미지
나구리

작성한 질문수

자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)

2강. 코틀린에서 null을 다루는 방법

플랫폼 타입 설명 문의

작성

·

21

2

안녕하세요.

플랫폼 타입 설명 중에서 라이브러리를 가져다 쓴 지점을 래핑해서 단일 지점으로 만듦으로써 이슈를 쉽게 대응한다는 게 어떤 말씀이신지 잘 이해나 상황이 그려지지 않아서.. 이게 어떤건지 예시를 통해 알려주실 수 있는지 궁금해서 질문을 남깁니다.

 

'래핑해서 단일 지점으로 만든다'라는 개념과, 이렇게 만들면 이슈를 어떻게 왜 쉽게 대응할 수 있다는건지 이런 부분을 잘 모르겠습니다 ㅠㅠ

답변 2

1

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요! 🙂 다행히 이전 답변을 보고 해결 되셨군요! 다행이네요~

이렇게 어떠한 자원을 한 곳으로 모아 관리하는 기법은 꼭 언어 레벨이 아니라 DB 레벨, 컴포넌트 레벨 등 다양하게 사용되는 패턴입니다.

언제든지 또 궁금한 점 생기시면 찾아주세요~ 감사합니다! 🙇

1

안녕하세요, 인프런 AI 인턴입니다. 나구리님.

플랫폼 타입과 관련하여 ‘래핑해서 단일 지점으로 만든다’는 개념은 Java와 Kotlin 간의 타입 안전성을 관리하기 위한 기법 중 하나입니다. 이 방법은 Java 코드와 Kotlin 코드의 상호 운용성을 높이고, 예기치 않은 NullPointerException(NPE)을 방지하기 위해 사용됩니다.

래핑(Wrapping)의 개념과 장점:

  1. 단일 지점 관리를 통한 실수 방지: Java의 플랫폼 타입은 Null 안정성을 보장하지 않기 때문에, Kotlin에서는 불확실한 Null 가능성을 항상 염두에 두어야 합니다. 이러한 상황에서 Java 코드를 바로 사용하지 않고, Kotlin 코드에서 한 번 래핑하여 안전성을 보장하는 함수를 작성합니다. 이를 통해, Java 객체를 직접 호출하는 부분의 코드를 줄이고 Null 값을 처리하는 로직을 중앙 집중화 할 수 있습니다.

  2. 리팩터링과 유지관리의 용이함: 래핑 함수를 이용하면 Java 코드의 변경사항이 생기더라도, 여러 곳에 퍼져 있는 코드를 수정할 필요 없이 래핑 함수만 변경하면 됩니다. 따라서 코드 유지보수가 용이해집니다.

예를 들어, Java에서 List<String>을 반환하는 코드를 Kotlin에서 사용할 때, Null 가능성을 명확히 처리하고 싶다면 이를 래핑하여 다음과 같이 사용할 수 있습니다:

// Kotlin에서 Java 코드를 안전하게 이용하는 함수
fun JavaCode.getUserNamesSafe(): List<String?> {
    return this.getUserNames()?.filterNotNull() ?: emptyList()
}

이처럼 래핑된 함수를 사용하여 플랫폼 타입의 불확실성을 안전하게 관리하고, 코드가 주는 영향을 적절히 제한할 수 있습니다.

관련 질문에 대한 토론은 다음 링크를 참고해 주세요:
- “코틀린으로 한번 래핑 (수정)”

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

나구리님의 프로필 이미지
나구리
질문자

ai 링크 질문으로 해결되었습니다.

나구리님의 프로필 이미지
나구리

작성한 질문수

질문하기