최종 팀프로젝트 TIL(28)

jxxn_a·2023년 11월 16일
1

팀프로젝트

목록 보기
32/33

🐱 With All My Animal 🐶

💡 [ 28일차 11/16일 ] 💡

📌 오늘의 기술면접 질문 Q&A

1) 오버로딩과 오버라이딩의 차이

🍒 오버로딩

  • 같은 이름의 메소드를 사용하지만, 메소드마다 다른 용도로 사용되며 그 결과물도 다르게 구현할 수 있게 만드는 것이다.
fun add(a: Int, b: Int) : Int {
    return a + b
}

fun add(a: Int, b: Int, c: Int) : Int {
    return a + b + c
}

🍒 오버라이딩

  • 부모클래스에서 상속받은 자식클래스가 부모클래스에서 만들어진 메소드를 자신의 입맛에 맞게 다시 재정의해서 사용하는 것이다.
// 모든 클래스와 메소드가 final로 선언되어있어서 상속이나 오버라이딩이 불가능하기 때문에
// 클래스나 메소드를 상속 또는 오버라이딩 하려면 'open' 키워드가 있어야한다.

open class Parent {
   open fun hello() {
      println("Hello from Parent")
   }
}

class Child : Parent() {
    override fun hello() {
         println("Hello from Child")
    }
}

2) Deep Links와 App Links의 차이점을 설명해주세요

  • 앱의 특정 페이지나 컨텐츠를 직접 가르키는 URL이다.

  • 사용자가 앱의 특정 부분에 바로 접근 할 수 있다.

  • 다른 앱 또는 웹 브라우저에서 링크를 클릭 했을 때 앱을 실행하며 해당 링크를 처리하는 앱이 2개 이상이 있다면 다이얼로그로 사용자에게 선택하여 실행할 수있게 보여준다.

  • 하지만, Deep Links는 앱이 설치되어 있지 않으면 웹 페이지로 리디렉션된다.

  • URL 형식 : (예시) "myapp://section/page" 처럼 형식이 자유롭다.
    - http 스킴 뿐만 아니라, 앱 고유의 스킴을 사용할 수있다.

  • 앱 마케팅에서 많이 활용된다.

  • 연결 할 수 있는 앱이 없을 경우에는 폴백 URL을 설정하여 사용자에게 해당 앱을 설치하라는 안내페이지나 관련 콘텐츠가 담긴 웹페이지를 보여준다.

// android Manifest
<activity android:name=".ViewProductActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="http" 
            android:host="www.mystore.com" 
            android:pathPrefix="/product" />
    </intent-filter>
</activity>

  • Android 6.0(API 23)에서 도입된 기능이다.

  • 인증된 웹사이트 URL 을 기반으로 하는 DeepLink이다.

  • 앱과 웹 사이트를 보다 더 강하게 연결해준다.

  • 링크 클릭 시 앱이 설치되어 있다면 즉시 열어서 보여주고 없다면 웹으로 이동한다. (다이얼로그는 나타나지 않는다)

  • 앱 링크를 통해 사용자의 경험을 더욱 원활하게 만드는 것이 가능하다.

  • URL 형식 : (예시) "http://www.mysite.com/page" 와 같은 형식이다.
    - 반드시 https 스킴을 사용해야하며, 이는 App Link의 보안 강화를 위한 조치이기 때문이다.

// android Manifest
<activity android:name=".ViewProductActivity">

// App Links를 사용하려면 intent-filter에 android:autoVerify="true"가 들어가야한다.
    <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="https" 
            android:host="www.mystore.com" 
            android:pathPrefix="/product" />
    </intent-filter>
</activity>

🍊 DeepLink와 AppLink의 차이점

1) Intent URL scheme

  • Deep Link : http, https 또는 custom cheme
  • App Link : http 또는 https가 필요

2) Intent action

  • Deep Link : 아무 액션이나 가능함
  • App Link : android.intent.action.VIEW가 필요

3) Intent category

  • Deep Link : 아무 카테고리나 가능함
  • App Link : android.intent.category.BROWSABLE과 android.intent.category.DEFAULT가 필요함

4) 링크 인증

  • Deep Link : 없음
  • App Link : HTTP 웹사이트 내에 제공된 Digital Asset Link가 필요함

5) 사용자 경험

  • Deep Link : 링크를 눌렀을 때 사용자가 어떤 앱을 실행할 지 다이얼로그가 나타남
  • App Link : 다이얼로그가 없으며, 웹사이트 링크를 통해 앱을 구동함

6) 호환성

  • Deep Link : 모든 버전에서 가능함
  • App Link : android 6.0 이상

0개의 댓글