Tech

[서평] 실용주의 프로그래머

이 책을 처음 읽은지 어느 새 20년이 넘었다. 다른 말 필요 없이, 이 책은 개발자라면 일찍 읽어두면 무조건 이득이다.몇 년마다 한 번씩 가끔 생각이 나서 다시 읽어보면 항상 새로운 깨달음이 있었던 것같다.아는 만큼 보이는 것이다. 몇 년마다 읽게 되는 이유는 사실 대부분은 이사를 하거나 방 정리를 할 때 ‘이제는 이 책을 보내줘도 될까?’ 하는 생각에서였던 […]

[서평] 실용주의 프로그래머 Read More »

안드로이드 스튜디오 플라밍고 업데이트 후 gradle 에러

아주 가지가지 한다. 정확히는 플라밍고 문제라기보단 AGP 8.0.0의 문제다. Electric Eel을 쓰다가 Flamingo로 업데이트하고 AGP를 8.0.0으로 업데이트한 후 gradle build를 실행했더니 아래와 같은 에러가 발생했다. 문서 내용을 보면 AGP 7.4.0부터 android compileOptions의 targetCompatibility 값을 제대로 세팅을 해주지 않아서 발생하는 문제라고 한다. AGP 8.1.0-alpha09에서 수정되었다는데 이걸 쓰려면 Flamingo보다 상위 버전, 즉 아직 stable release가 되지 않은

안드로이드 스튜디오 플라밍고 업데이트 후 gradle 에러 Read More »

Fragment에서 권한 요청하기 (2021)

Activity Result를 받아오는 API가 변경되면서 Fragment.requestPermissions도 deprecated 되었다. registerForActivityResult를 호출하고 ActivityResultContracts.RequestPermission을 인자로 전달해야한다. 복수의 권한이 필요한 경우는 Contract를 RequestMultiplePermissions로 바꿔서 사용한다. 하지만 사진/동영상 촬영, 연락처 선택 등 일반적인 케이스는 기본적으로 제공하는 Contract를 활용하는 것으로 커버할 수 있다.

Fragment에서 권한 요청하기 (2021) Read More »

트레이드 오프

트레이드 오프라는 개념을 처음 배울 때는 서로 양립할 수 없다는 사실을 너무 명백히 알 수 있는 케이스들로 배웠던 것 같다. 예를 들면 시간복잡도와 공간복잡도, 또는 일정과 품질과 비용. 시간을 줄이려면 공간을 많이 써야하고, 공간을 아끼려면 시간을 더 써야한다. 일정을 줄이려면 품질이나 비용을 양보해야하고, 품질을 높이려면 일정과 비용을 더 들여야하고, 비용을 줄이려면 품질과 일정을 희생해야한다는 것은

트레이드 오프 Read More »