관리 메뉴

막내의 막무가내 프로그래밍 & 일상

[면접정리] 안드로이드 인턴 면접 후기 본문

필기 및 면접정리

[면접정리] 안드로이드 인턴 면접 후기

막무가내막내 2020. 6. 9. 20:58
728x90


제가느끼기에 좀 어려웠거나 기억에 잊혀진 질문을 많이하셨는데 기억이 날때 추후 도움이 되도록 기록해보겠습니다.
(필기 형식으로 남기는거라 딱딱 + 반말 어투 죄송합니다 ㅠ)

Q. 자기소개해바라
3번 더듬은듯, 호흡딸림

Q. 플젝에 주로 쓴 레이아웃 LinearLayout, ContraintLayout, FrameLayout 특징 설명해바라
-> 리니어레이아웃은 계층적으로 쌓아내려가는 레이아웃이라했고
컨스트레인트는 제약이나 체인줄 수 있는 뷰, 뷰와 뷰 상대적 거리 및 위치로 배치하는 레이아웃, 릴레이티브레이아웃 발전시킨 형태
프레임레이아웃은 겹치는 뷰들 처리할 수 있고 프레그먼트랑 액자에 사진끼우는걸로 예시

Q. weight 써본적있냐?
-> dp하고 차이 말하면서 화면 크기에서 비율로 크기 정하고싶을떄 사용

Q. 추상클래스와 인터페이스 차이점
추상클래스는 추상클래스를 상속받아서 기능을 이용하고, 확장시키는 용도이고 반면에 인터페이스는 함수의 껍데기만 있어서 그 함수의 구현을 강제하기 위해 사용합니다. 인터페이스는 모든 메서드가 추상메소드이므로 추상클래스보다 더 추상적이라고도 말할 수 있습니다. 추가로 추상클래스는 단일상속만 가능하지만 인터페이스는 다중상속이 가능합니다.
둘의 공통점은 둘다 자기 자신을 new로 생성할 수 없다는 점과 무언가를 구현하게끔 하는 설계도의 역할을 한다는 점입니다.

Q. 뷰모델과 액티비티, 프래그먼트는 서로 데이터를 공유할 수 있냐?
-> 옵저버패턴으로 데이터 가져다쓴다. 라했는데 그게아니라하심 -> 다른걸원하심 데이터 공유 -> 모르겠습니다함 -> 답알려주심 -> 뭐라하셨는지 기억안남, 못알아들음
6개월 지난 지금 다시 질문 보니깐 SharedViewModel 말한 것 같기도함

Q. 써본 디자인패턴머있냐 --> 다써봤다. -> MVC, MVP, MVVM 특징? -> 준비한대로 대답

Q. 학교서 가장 재밌게 들은 과목 머냐 -> 실전코딩, 공개소프트웨어실습 -> 공개소프트웨어실습이머녀냐 -> 오픈소스 기여하는거다 -> 뭐해봤냐 -> 라이브러리 기여와 배포

Q. 오픈소스 한거 설명해바라
-> chocobar랑 drawview 말하고 설명

Q. drawView bitmap 변환하는거 무슨 에러(?) 날수도있는데 그거에 대해말해바라 어케처리하는지? (잘기억안남)
-> compress 로 압축했다함 , 이걸원하신거같진 않은거같음(?) 스레드 관련 대답을 원하셨을듯.

Q. Sqlite 동작 및 사용방법?

-> SQLliteOpenHelper 상속받아 사용 onCreate(), onOpen, onUpgrade
Cursor 를 사용해 데이터 조회가능

Q. Room 특징?
-> SQLlite 추상화하여 쉽게 사용하게만든 ORM 형식의 데이터베이스, Entity, Dao, Database 로 구성

Q. Room Sqlite 차이점
-> sqlite 는 쿼리문으로 직접써야하고 ?(물음표) 로 쿼리문 작성해주는게 불편하고 코드도 더러워진다. 그래서 ORM 방식에 다양한 기능을 제공해주는 Room 이 사용하기도 편리하고 좋다.

Q. 옵저버패턴 설명?
-> 콜백사용, 유튜브 구독자 구독알림 예시

Q. 형평성을 위해 공통적인 CS 질문을 해야한다. 데이터베이스 트랜잭션이 머냐
데이터베이스 변환을 하는 논리적인 작업단위, 특징으로 원자성, 일관성, 독립성, 영속성

Q. 인덱싱 아냐 해봤냐
데이터베이스 분야에 있어서 테이블에 대한 검색의 속도를 높여주는 자료 구조이다. Index는 색인이고 메모리 영역의 일종의 목차를 생성하는 개념이다. 즉 책으로 비유하면 10,000 페이지 책에서 내가 원하는 내용을 더 찾기 쉽게 색인(목차)를 만들어 검색 범위를 줄인다고 보면 된다.

Q. FCM 어떤식으로 구현하고 썼냐
-> FCM 토큰 디비 저장해서 게시판같은거 댓글달리면 해당유저 FCM 쏴줌

Q. FCM 앱 재설치 혹은 뭐할시에 토큰 바뀔수도있는데 어케 처리 했냐
-> 앱 시작시 이전 FCM 토큰과 다를 경우 디비 업데이트함

Q. 마지막으로 회사에 궁금한거있냐?
-> 회사에서 사용하시는 디자인패턴 어떤걸 사용하는지 rxjava 사용하는지 , tdd 실제로 하시는지 여쭤봄

Q. 회사에와서 원하는 안드로이드직무 못하고 서버할수도있는데 어케할거냐?
-> 이떄 정신나가서 안드로이드만 할거라함
-> 왜 안드로이드하고싶냐 -> 어렸을떄부터 꿈
-> ios 도 있는데 왜 안드로이드냐 -> 안드로이드만 써서 안드로이드에 친숙

Q. 패턴쓰면서 뭐 고민햇던점있냐?
-> MVP 프레젠터에 보일러플레이트코드 관련말함. MVVM바인딩어댑터를어떻게나눠야하나. 갑자기 생각이 안났는데 만약 다음에 같은 질문을 들으면 ViewModel 을 어떻게 효율적이고 깔끔하게 짤가에 대해 말할듯

Q. 중복되는코드어케했냐?
-> BaseActivity 같은거 사용해서 토스트메세지나 로딩바같은거 공유 -> 상속한다는거지? -> 넵

Q. 자바 코틀린 차이점
-> null safe, 함수형+객체지향, 고차함수, 코드간결

Q. 마지막 할말
-> 바보같이말함 안말하는게 날뻔

Q. Jit Aop 컴파일러 아냐
JIT 컴파일러는 바이트코드를 읽어 빠른 속도로 기계어를 생성할 수 있다. 이런 기계어 변환은 코드가 실행되는 과정에 실시간으로 일어나며(그래서 Just-In-Time이다), 전체 코드의 필요한 부분만 변환한다.


Q. left inner right join 설명좀?
a테이블 b테이블 예시들어서 설명

728x90
Comments