24일차 서버와 클라이언트에 대해 설명해보세요.서버는 데이터나 리소스를 제공하는 시스템으로 클라이언트의 요청을 처리하고그에 대한 응답을 반환하는 시스템이고, 클라이언트는 사용자를 대표하여 서버에 요청을 보내고그에 대한 응답을 받는 장치 및 프로그램입니다. Android의 ConstraintLayout이 다른 레이아웃들에 비해 가지는 장점과 단점은 무엇인가요?ConstraintLayout은 View간의 제약조건을 설정하는 방식으로 UI를 배치하기에복잡한 UI를 구성하기에 좋고 다양한 화면 크기에 대응할 수 있습니다. 또한 Visual Editor를 지원하여 디자인 작업을 직관적으로 할 수 있습니다.다만 간단한 레이아웃을 구현하는데는 비효율적이라는 단점이 있습니다. 25일차 정렬 알고리즘이란 무엇이며, ..
튜터님과의 모의면접 #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 내배캠 후기 캠프 이전의 삶 소프트웨어마이스터고 졸업하고 취업준비를 하게 되었는데 그 과정에서 부트캠프를 추천받았고 앱 개발이 하고 싶어관련 부트 캠프를 찾아다니다 이 캠프를 발견하게 되었다. 내일배움캠프를 선택한 계기짧은 기간 내에 수료할 수 있고, 학습과 취업에 관해서 여러가지로지원을 받을 수 있겠다 싶어서 해당 캠프를 선택하게 되었다. 내일배움캠프의 장점첫번째로는 해당 캠프는 전부 온라인으로 진행된다는 점이다.요새 버스비 올라서 교통비가 참 부담스러운데 매일같이 왔다갔다 할 필요없이캠프 들으려면 집에서 컴퓨터만 키면 되니까 아주 편하다. 두번째로는 정말 많은 강의자료를 제공해준다는 점이다.진행한 특강은 녹화본을 노션에 따로 올려주기 때문에 행여나 특강을 놓치거나 따라가지 못하더라도..