메이쁘

[Android] 2021.01.28. 오늘의 면접 Q&A 본문

면접 대비 CS지식/SELF CS면접 Q&A

[Android] 2021.01.28. 오늘의 면접 Q&A

메이쁘 2021. 1. 28. 02:10

안녕하세요.

 

벌써 2021년이 되었네요..

 

CS관련 질문과 면접에 맞는 답변을 작성하면서 지식도 쌓고 면접도 대비하는 시간을 가지려고 합니다.

 

 

틈틈히 게시글을 작성하며 면접 대비 데이터셋을 확보해둔 다음

 

언젠간 면접하게 될 때 모아서 쓰려고 합니다.

 

(실제로 면접에서 들었던 질문이 아니라, 제가 스스로 답을 정해놓고 짜논 질문이라 이렇게 안나올 수 있습니다!!!)

 

 

 

이번 글은 Android 카테고리 입니다.

 

 

 

 

  -- 질문 목록

 

Q1.  Activity와 Fragment의 차이가 무엇인가요?

Q2.  Android Lint 가 무엇인가요?


Q1.  Activity와 Fragment의 차이가 무엇인가요?

 

A.  Activity 란, 안드로이드의 4대 컴포넌트 중 하나로써 안드로이드의 다양한 작업을 수행하는 앱의 페이지 입니다. 앱의 화면을 출력할 뿐 아니라, 사용자의 다양한 이벤트 처리도 가능합니다. 또한, 스텍 구조로 되어있습니다.

Fragment 는 Activity의 View를 뜻합니다. 

 

보통, Activity가 변하게 되면 이에 따라 View 또한 변해야 하는데요. 만약, 전체적인 틀은 같지만, 여러 비슷한 작업들을 수행하게 된다면 각 작업별로 Activity를 만들어야 하고, 이는 메모리와 코드의 효율성이 저하됩니다.

 

즉, 하나의 액티비티 화면 내에 동시에(또는 원할 때 마다) 여러 View를 보여주고 싶을 때 Fragment를 사용합니다. 이러한 Fragment는 Activity의 모든 기능을 사용할 순 없지만, 기본적인 여러 기능들은 사용할 수 있습니다.

 

예를 들어, 전기차 Activity, 휘발유차 Activity가 있다고 합니다. 각각의 Activity는 각각에 맞는 View가 존재합니다.

갑자기 전기차와 휘발유차를 합친 하이브리드차를 만들어야 한다고 했을 때, 각각의 액티비티 내 기능을 가져와 새로운 액티비티를 만들어야 한다면, 그리고 다른 종류의 차가 나올 때마다 Activity를 만들어야한다면 메모리 효율성이 매우 저하되고 번거로운 작업을 계속해야 합니다.

 

이 때, 전체 기능을 가진 자동차 Activity를 하나 만들고, 안에 자동차 종류에 맞게 Fragment를 만들어 적절하게 View로 보여준다면 효율성이 증대될 것입니다.

 

 

이렇게, 하나의 큰 Activity를 만들고, Fragment A, B, C 3개만 만들면 됩니다. 이 때, View는 통일해도 되고, Fragment 별로 따로 만들어도 됩니다.

만약, Fragment가 없다면, A, B, C 각각 Activity를 만들고, intent를 활용해 Activity 간 이동을 해야합니다.

 

 

Q2.  Android Lint가 무엇인가요?

 

A.  Android Lint는 안드로이드 코드 스캔 도구입니다. 즉, 소스파일 검사 도구 인데요.

기존에 빌드/컴파일 할 때에도 오류를 자동으로 검사하는데, 별도로 Lint가 존재하는 이유는 이러한 빌드/컴파일 시 오류 체크하는 검사 외에도 사용자가 커스텀해서 소스코드를 검사할 때 사용하기 때문입니다.

 

그럼, 이렇게 굳이 추가 검사를 해야하는 이유는 안드로이드 개발 시 Java만 사용하는 것이 아니라, xml, image(png, jpg, svg=xml 등), ndk 등 여러가지 파일을 활용하기 때문에 이러한 것들에 대해 추가적으로 검사하여 오류를 줄이기 위함입니다.

 

대표적인 특징은 테스트 사례(단위테스트)를 작성하지 않고도 코드의 구조적인 문제를 확인할 수 있습니다. 또한, 커스텀 기능이 있어 원하는 기준의 검사를 수행할 수 있습니다.

 

Kotlin 사용 시 코틀린 정적 분석 도구인 Ktlint 를 사용합니다.

 

 

 

 

이상입니다.

 

감사합니다!

 

 

Comments