Apple is Apple
내일배움캠프 7기 Android TIL 72일차 (2023.11.08)
내일배움캠프 7기/TIL 2023. 11. 8. 19:30

일일 회고 벌써 수요일! 시간이 빠르다 다음 주 금요일이면 마무리이다. 최종 발표 준비, 버그 수정 등 해야할 일이 많다.. 차근차근히 해보자 오늘의 키워드 기술 면접 질답 작성 예외란 무엇일까요? try - catch - finally 는 각각 어떤 구문일까요? 프로그래밍을 하다 보면 코드가 제대로 작동하지 못하고 중단되는 현상이 발생할 수 있다. 이것 을 예외라고 한다. 여기서 잘 구분을 해야 하는 것이 Error(오류)와 Exception(예외)의 차이이다. 언뜻 보면 둘 다 프로그램을 중지 시키는 측면에서 비슷하다고 볼 수 있겠지만 의미를 들여다보면 각각이 가지고 있는 의미가 다르다. Error는 시스템이 종료되어야 할 수준의 상황과 같이 수습할 수 없는 심각한 문제를 의미한다. 개발자가 미리 예..

내일배움캠프 7기 Android TIL 71일차 (2023.11.06)
내일배움캠프 7기/TIL 2023. 11. 6. 21:07

일일 회고 프로젝트를 마무리 해야 할 때가 왔다.. 배포 준비, 최종 발표 준비, 버그 수정 등 해야할 일이 많다.. 차근차근히 해보자 오늘의 키워드 기술 면접 질답 작성 안드로이드 앱에서 데이터 저장 방법에 대해 설명하시오 다양한 저장방법이 있는데 그 중 몇 가지를 서술해본다 sharedPreference 설정 정보나 사용자 기본 설정과 같이 작은 양의 데이터를 저장하는 데 적합하다. 앱 내부 저장소에 저장 되기 때문에, 앱이 삭제 될 때, 데이터가 함께 삭제된다. 키-값 쌍을 갖는 데이터로 복잡하지 않은 간단한 데이터를 저장할 때 사용한다. 내부 저장소 조금 더 복잡한 데이터를 보관할 때 쓸 수 있다. 이 역시 앱 내부 저장소이기 때문에, 앱이 삭제 될 때, 데이터가 함께 삭제된다. 안드로이드 파일 ..

내일배움캠프 7기 Android TIL 70일차 (2023.11.03)
내일배움캠프 7기/TIL 2023. 11. 3. 19:09

일일 회고 배포 준비를 위해 구글 개발자 계정을 등록해보았다! 살펴보면서 준비해보자 오늘의 키워드 기술 면접 자답 디폴트 파라미터 코틀린은 함수(메소드)의 파라미터에 기본값을 지정하여 호출 할 수 있다. 이것이 디폴트 파라미터이다. fun getName(id: Int = 123): String { // 구현 부.. } 다음과 같은 장점이 있다. 코드 간결성 - 함수 호출 시 모든 파라미터를 제공하지 않아도 되기 때문에 함수 호출 코드가 간단해 진다. 가독성 향상 - 특정 파라미터에만 값을 전달하면 되므로 함수 호출 부분의 의도를 더 잘 드러낼 수 있다. 오버로딩 감소 - 다양한 버전의 함수를 오버로딩하여 제공할 필요가 줄어든다. 여러 버전의 오버로딩된 함수를 유지보수하고 관리하는 것보다 디폴트 파라미터를..

내일배움캠프 7기 Android TIL 69일차 (2023.11.01)
내일배움캠프 7기/TIL 2023. 11. 1. 20:38

일일회고 ?? 벌써 11월이다 끝나는 날이 2주 밖에 남지 않았다.. 열심히 달려보자.. 오늘의 키워드 기술면접 문답 1. 비동기 프로그래밍이 무엇인지, 왜 사용해야하는지 설명해주세요 작업을 하나씩 순서대로 수행하는 행위인 동기적 프로그래밍의 반대 개념으로 여러 작업을 동시에 실행하는 것을 뜻한다. 이러한 작업은 일반적으로 시간이 많이 걸리는 작업(파일 읽기/쓰기, 네트워크 통신, 데이터베이스 쿼리 등)일 때 유용하다. 특히 안드로이드는 메인 쓰레드에서 앱의 사용성과 직결되는 UI를 조작하기 떄문에, 메인쓰레드에서 위와 같이 시간이 많이 걸리는 작업을 실행하면 앱은 ANR(Application Not Responding) 에러가 발생 할 것이다. (동기 처리 하는 중에는 화면에 아무 반응이 없음)이를 통..

내일배움캠프 7기 Android TIL 68일차 (2023.10.31)
내일배움캠프 7기/TIL 2023. 10. 31. 23:12

일일 회고 힘들다 ㅎㅎ.. 오늘의 키워드 트러블 슈팅 트러블 슈팅 원인 스크롤 뷰에 kakaoMap을 두기 위해 FrameLayout를 두었는데 스크롤 뷰에 의해 kakao 의 포커스가 가지않아 맵 스크롤을 통해 맵을 제어 할 수 없는 현상을 발견함 → 스크롤 뷰 하위에 스크롤 가능한 객체가 또 있어 상위 스크롤 뷰에만 포커스가 가있어서 그랬다고 생각 해결 과정 티맵 뷰 위에서 스크롤 뷰 터치 시 스크롤을 막기 위해 FrameLayout을 커스텀하여 구현해서 FrameLayout에 TouchEvent시 FrameLayout위에서 터치 시에는 touchListener를 달아서 상위 스크롤 뷰의 스크롤을 반응을 막아서 해결함 package com.nbcamp.tripgo.util import android...

article thumbnail
내일배움캠프 7기 Android TIL 67일차 (2023.10.30)
내일배움캠프 7기/TIL 2023. 10. 31. 00:30

일일 회고 폭풍 피드백을 받았다... 이걸 토대로 프로젝트를 탄탄하게 해보고 최종 발표 떄 남김없이 발표해보자! 오늘의 키워드 firestore transaction firestore transaction 오늘은 파이어베이스 트랜잭션에 대해서 알아보자 먼저 파이어 스토어 트랜잭션이란 1개 이상의 문서에 대한 읽기 및 쓰기 작업의 집합이라고 파이어베이스 문서에 나타나있다. 파이어스토어에서 정의하는 트랜잭션의 정의 였고, 데이터베이스에서 다루는 트랜잭션의 개념을 함께 보면 이해가 더 쉬울 것이다. 트랜잭션 - 트랜잭션(Transaction)은 데이터베이스의 상태를 변환 시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다. 한꺼번에 모두 수행되어야..

내일배움캠프 7기 Android TIL 66일차 (2023.10.27)
내일배움캠프 7기/TIL 2023. 10. 27. 21:25

오늘의 키워드 이전에 수행 했던 토글 그룹 트러블 슈팅 원인 Single Selection 속성이 되어있는 Toggle Button을 클릭 시, 클릭 이전의 상태가 같이 넘어오는 현상을 발견하였다. 버튼 클릭 상태가 바뀔 떄 이전 버튼이 꺼지는 상황과 클릭한 버튼이 켜지는 상황이 생겨 리스너가 2번 불리는 것 같았다. 해결 과정 addButtonClickListener 안에 isChecked라는 속성이 있다. reviewWritingGenderButtonGroup.addOnButtonCheckedListener { group, checkedId, isChecked -> } isChecked는 현재 버튼이 체크 되어있는 지 여부를 반환해준다. 그룹화된 토글 그룹을 작업 할때는 다음과 같이 수행 해주어야 한..

내일배움캠프 7기 Android TIL 65일차 (2023.10.26)
내일배움캠프 7기/TIL 2023. 10. 27. 03:35

일일 회고 점점 더 못쓰고 있다.... 시간 짬내서 해보자... 오늘의 키워드 기술면접 자문자답 enum 은 무엇인가요? 열거형(enum)은 서로 관련 된 상수들의 집합을 정의하는 데이터 타입이다. 예를 들면, 요일, 색 등 고유 값을 나타낼 수 있는 것들에 적용해 볼 수 있다.여러 개의 상수를 선언하고 열거된 값을 조건에 따라 선택할 수 있는 특수한 클래스이고, 자료형이 동일한 상수를 나열할 수 있다 .enum class 이므로 각 열거형 상수에 값을 할당할 수 있고, 메소드를 정의할 수도 있다.이렇게 열거형(enum class)을 사용함으로써, 코드의 가독성과 유지보수성을 향상시킬 수 있다. enum class의 강점은 when을 사용 할 때 나오는데, 모든 형식을 처리할 수 있기 때문에 각 상수에 ..

내일배움캠프 7기 Android TIL 64일차 (2023.10.25)
내일배움캠프 7기/TIL 2023. 10. 25. 20:43

일일 회고 오늘의 키워드 기술면접 자문자답 자문자답 1. Kotlin이 정적 타입 언어라고 하는데 이유가 무엇일까요? 정적 타입 언어라는 것을 알기 위해서는 정적 타입 언어에 대한 개변과 동적 타입 언어의 개념도 함께 알아야 한다. 정적 타입 언어란 컴파일 타임(빌드)에서 타입 검증하는 언어이다. 반면에 동적 타입 언어는 컴파일 타임에 타입 검증을 하지 않고 런타임, 즉 프로그램 실행 중에 타입 검증을 한다. var a = 1 // int 형 선언 a = "123" // String 값 대입 위는 간단한 예제인데, 코틀린에서 작성해보면 바로 에러 표시(Type Mismatch)가 뜰 것 이다. 이런 간단한 예제로 코틀린이 정적 타입 언어라는 것을 알 수 있다. 근데 한 가지 의문점이 있다. 따로 타입을 ..

내일배움캠프 7기 Android TIL 63일차 (2023.10.24)
내일배움캠프 7기/TIL 2023. 10. 24. 20:24

일일 회고 차분히... 천천히...하자.. 오늘의 키워드 SingleLiveEvent 트러블 슈팅 SingleLiveEvent LiveData - View와 ViewModel사이 통신을 편리하게 하기 위해 사용하는 Observable한 객체 View는 ViewModel 의LiveData의 변화를 감지하고 이를 Observing하여 View의 상태를 업데이트 한다. 즉, 화면에 연속적으로 표시 되는 데이터에 적합하다. 여기서, 사용자의 이벤트 같은 것을 생각해보자 버튼 클릭, Snackbar, toast, dialog 등 이벤트에 의해서 발생하는 행위들을 봐보자 이들은 사용자의 행위에 의해 1번씩 클릭 되거나, 발생하는 컴포넌트들이다. 여기서 이것들을 LiveData를 사용하서 observing하면 연속적..