질문
1. 안드로이드 개발자는 어떤 일을 하는지 궁금합니다.
•
안드로이드 어플리케이션을 만드는 사람 (클라이언트 개발자)
•
안드로이드 SDK(채널톡 SDK), 라이브러리(retrofit2) 등등.. 도 만들 수 있다!
•
사용자들과 소통되는 기능을 제공하는것을 목표
◦
버튼이 클릭됐을 때 실행될 기능
◦
화면 그리기
•
wearOS, 안드로이드 오토, 안드로이드 tv 등등..
•
기획자, 디자이너와 소통이 많을 수 밖에 없다.
•
서버 개발자, ios개발자
2. CS 지식을 얼마나 알아야 하는지 궁금해요 + 정보처리기사로 CS 지식을 배우는데 도움이 될까요?
•
정보처리기사 도움이 되기는 하지만 면접 cs에는 큰 도움이 되진 않는다.
•
면접 CS 내용
◦
안드로이드 지식
◦
운영체제
◦
네트워크
◦
데이터베이스
◦
Java, Kotlin
◦
자료구조 (스택, 큐, 힙, 트리 …)
◦
알고리즘
•
아키텍쳐 MVVM, MVC, MVP, MVI … 클린아키텍쳐 면접때 각 아키텍쳐를 비교하면서 물어봄
•
디자인패턴 (service locator pattern, adapter pattern ..) 면접때 많이 물어보진 않음
3. 안드로이드는 변화가 빠르다고 하는데 최신 기술 동향은 어떻게 배우나요.
•
구글 IO
•
커뮤니티(앱스쿨, IT 동아리)
•
now in android
4. 코딩테스트는 어떻게 해야 잘 풀 수 있는지 궁금해요!
•
많이 풀어봐야 잘 풀 수 있다.
◦
알고리즘 유형이 정해져있다. (구현, 자료구조, 이진탐색, DFS, BFS, DP, 그리디 등등…)
◦
어떤 알고리즘이 존재하는지, 그 알고리즘 기법을 어떻게 사용하는지 공부
◦
프로그래머스, 백준(acmicpc.net), 삼성 소프트웨어 아카데미, 정올 …
◦
삼성 SDS 하/동계 알고리즘 특강, 종만북 등등..
◦
결론: 시간을 많이 투자하자..
•
N을 보고 어떤 알고리즘을 사용해야할지 유추해보자.
◦
시간 제한이 1초라면 1억번의 연산까지 가능
◦
N이 1만일 때 N제곱이면 1억
◦
N이 1만까지면 N제곱 알고리즘까지 사용 가능
•
IDE의 디버깅 기능을 잘 활용하자
•
노트에 진행되는 과정을 모두 적어가면서 문제를 해결하는 방법도 매우 좋음!
5. 도저히 못 풀 것 같은 문제를 만났을 때 어떻게 해야 하나요?
•
해결 할 수 없는 문제는 없다. (물론 있겠지만)
•
시간이 오래 걸릴 뿐, 주어진 시간 안에 해결 못할 수도 있다. 하지만 영원히 해결 할 수 없지는 않다.
•
큰 문제 하나를 직면했을 때 해결방안
◦
내가 모르는게 무엇인가를 잘게 쪼갠다.
◦
하나씩 공부하면서 다음 개념을 이해할 수 있게 만든다.
◦
그 개념들이 합쳐져서 맨 처음의 큰 문제를 해결한다.
•
중요한건 꺾이지 않는 마음(해결 할 수 있다는 의지, 용기)
화면캡쳐
위 질문에 해당하는 질문의 링크나 스크린샷을 여기에 추가해 멘토분들이 참고할 수 있도록 하세요.
프로젝트 주소
위 질문에 해당하는 질문의 링크나 스크린샷을 여기에 추가해 멘토분들이 참고할 수 있도록 하세요.
멘토 답변
•
2023-06-20 오후 10시에 디스코드 멘토링룸 3에서 만나 약 2시간 멘토링 진행하였습니다.
•
각 질문에 대해 알고 있는 것을 전달하였고, 추가적으로 설명에 필요한 자료들을 공유하기 위하여 화면 공유 후 진행하였습니다.
•
안드로이드를 공부하여 어떤 개발로 활용할 수 있는지를 설명하였습니다.
•
면접에 필요한 CS 지식 분류에 대해 설명하였습니다.
•
디자인 패턴에 대한 간단한 지식을 설명하였습니다.
•
안드로이드 최신 동향과 관련된 내용을 이야기하였습니다.
•
알고리즘 공부를 처음 시작할 때 도움이 될 정보를 공유하였습니다.
•
안드로이드 스튜디오의 디버깅 기능에 대해 설명하였습니다.
•
개발자로써 힘든 상황을 겪었을 때 마음가짐에 대해 이야기하였습니다.