튜터님과의 모의면접 #1 안드로이드 4대 컴포넌트는 무엇인가요?액티비티는 사용자와의 상호작용을 담당하는 유저 인터페이스에 해당하며,앱 실행 시에는 설정해둔 메인 액티비티가 호출이 되며 앱이 시작됩니다.생명 주기 메소드를 재정의하여 리소스를 효율적으로 관리하고,앱 상태나 데이터를 적절하게 유지할 수 있습니다. 서비스는 백그라운드에서 실행되는 컴포넌트로 UI 없이오랜 시간 동안 처리해야되는 작업이나, 애플리케이션이 종료되어도계속 실행되어야 하는 작업을 처리하는 데 사용됩니다. 리시버는 안드로이드 시스템이나 다른 앱으로부터 전송되는브로드캐스트 메시지를 수신하고 이를 처리하는 역할을 하는 컴포넌트 입니다.디바이스의 변경사항을 감지해 알리거나 SMS를 수신하는 등의 기능을 합니다. 프로바이더는 앱 사이에서 파일 ..
20일차 Java의 가비지 컬렉션 방식과 Android에서의 구현 방식을 설명해 주세요. Java의 가비지 컬렉션은 메모리 관리 자동화를 위한 기법으로,필요하지 않은 객체를 자동으로 제거하는 방식입니다. 현재 도입된 런타임 방식인 ART에서는 GC가 앱의 메인 스레드와독립적으로 동작하는 CMS(Concurrent Mark-and-Sweep) 방식을 사용합니다. 해당 방식은 Dalvik의 STW(Stop-The-World)현상을 완화하여GC 도중에 애플리케이션이 계속 실행될 수 있도록 합니다. GC에 의해 관리되는 메모리는 Young Generation과 Old Genenration으로 나뉩니다.Young Generation에는 짧은 생명 주기의 객체가 모이며여기서 살아남은 객체들은 Old Generati..
15일차 전역 변수와 정적 변수의 차이는?전역 변수는 클래스 외부에서 선언되며 모든 함수나 클래스에서 접근이 가능합니다.정적 변수는 클래스 내부에서 선언되며 클래스의 인스턴스를생성하지 않고도 클래스 이름을 통해 접근하는 것이 가능합니다. Android에서 Parcelable과 Serializable의 차이점과 각각의 사용 시기는 언제인가요?Parcelable은 개발자가 직접 직렬화/역직렬화 하는 로직을 작성해야합니다.Serializable은 객체의 상태를 자동으로 직렬화 할 수 있지만 Parceable보다 느릴 수 있습니다. Parcelable은 Android에 최적화 되어있기에 Android 앱에서 성능이 중요하고객체의 직렬화/역직렬화가 빈번하게 일어날 땐 Parcelable을 사용하며,간단한 구현을..
10일차 블로킹과 논블로킹의 차이에 대해 설명해주세요.블로킹 방식은 특정 작업이 완료될 때까지 현재 스레드나 프로세스가 멈추지만,논블로킹 방식은 특정 작업이 완료되지 않더라도 스레드가 계속해서 다른 작업을 할 수 있습니다. String 객체가 불변인 이유는 무엇인가요?Java에서 동일한 문자열 리터럴에 대해 동일한 String 객체를 재사용할 수 있도록 하는String Pool을 구현하기 위해 String 객체를 불변으로 설계하였으며,이는 성능 최적화, 스레드 안전성, 보안, 캐싱과 같은 다른 이점들을 제공합니다. 11일차 객체지향이란 무엇인지 설명해주세요.객체지향이란 프로그램을 객체라는 단위로 나누어 설계하고객체 간의 상호작용을 통해 로직을 구현하는 프로그래밍 방식입니다. 객체는 프로그래밍에서 필요..
5일차 메모리의 힙 영역을 너무 크게 잡으면 어떤 일이 생길까요?힙 영역이 커질수록 스택 영역의 메모리가 상대적으로 줄어들어 스택 오버플로우등의 문제가 발생할 확률이 증가하고, 운영 체제에서 프로그램이 필요로 하는다른 메모리 영역에도 영향을 줄 수 있습니다. Set과 Map의 차이는 무엇일까요?Set은 중복된 요소를 허용하지 않는 컬렉션으로 같은 요소를 여러 번 추가해도 한 번만 저장됩니다.Map은 키-값(key-value) 쌍의 모음으로 동일한 키에 새 값을 추가하면 기존 값을 덮어씌웁니다. 6일차 프로세스와 스레드에 대해 설명하고, 사용 영역의 관점에서 차이를 설명해주세요.프로세스란 실행 중인 프로그램을 의미하며,스레드는 프로세스 내에서 실행되는 작업의 단위에 해당합니다. 프로세스는 독립적으로 실..
1일차 OS(운영체제)란 무엇인가요?운영체제란 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어로하드웨어와 응용 프로그램 간의 상호작용을 관리하고 제어하는 역할을 합니다. 운영체제는 사용자와 하드웨어 사이에서 인터페이스를 제공하고,시스템 자원을 효율적으로 관리하여 응용 프로그램이 원활하게 동작하도록 합니다. Android 4대 컴포넌트는 무엇인가요?Activity, Service, BroadCast Receiver, Content Provider입니다. 2일차 커널이란 무엇인가요?운영체제의 코어에 해당하며 컴퓨터 자원들을 관리하는 역할을 수행하는 곳입니다.커널은 컴퓨터 자원들만을 바라보고 있기에 사용자와 직접적인 상호작용은 하지 않습니다. Activity 생명주기는 어떻게 구성되어 있나요?액티비티 ..
Android 내배캠 후기 캠프 이전의 삶 소프트웨어마이스터고 졸업하고 취업준비를 하게 되었는데 그 과정에서 부트캠프를 추천받았고 앱 개발이 하고 싶어관련 부트 캠프를 찾아다니다 이 캠프를 발견하게 되었다. 내일배움캠프를 선택한 계기짧은 기간 내에 수료할 수 있고, 학습과 취업에 관해서 여러가지로지원을 받을 수 있겠다 싶어서 해당 캠프를 선택하게 되었다. 내일배움캠프의 장점첫번째로는 해당 캠프는 전부 온라인으로 진행된다는 점이다.요새 버스비 올라서 교통비가 참 부담스러운데 매일같이 왔다갔다 할 필요없이캠프 들으려면 집에서 컴퓨터만 키면 되니까 아주 편하다. 두번째로는 정말 많은 강의자료를 제공해준다는 점이다.진행한 특강은 녹화본을 노션에 따로 올려주기 때문에 행여나 특강을 놓치거나 따라가지 못하더라도..
앱개발 심화 과제 선택 과제 구현 구현사항- 공통 - MainActivity의 하단 메뉴를 Bottom Navigation 또는 ViewPager+tablayout으로 변경 - MVVM 패턴을 적용합니다. (ViewModel, LiveData) - 검색 결과 화면은 보관함을 다녀와도 유지됩니다. - 보관한 이미지 리스트는 앱 재시작 후 다시 보여야 합니다. - 첫 번째 fragment : 검색 결과 - 검색은 키워드 하나에 이미지 검색과 동영상 검색을 동시에 사용, 두 검색 결과를 합친 리스트를 사용합니다. - 두 검색 결과를 datetime 필드를 이용해 정렬하여 출력합니다. (최신부터 나타나도록) - 검색 결과 아이템에 [이미지] 또는 [동영상]를 표시합니다..