집단지성 프로그래밍
이 책을 산 건 거의 10년 전이었다. 앞부분을 좀 보다가 ‘통계 같은게 좀 나오는군~’하는 느낌 정도로 알고 덮어놨다가 작년에 다시 훑어봤는데, 제목의 느낌과는 달리 그냥 인공지능 책이었다. 요즘은 거의 ‘인공지능 = 머신러닝’이지만 이 책에서는 머신러닝 외에도 고전적인(?) 인공지능 알고리즘을 두루 다루고 있다. 당시에는 ‘웹 2.0’이 더 핫한 단어였지만, 한 5년 정도 늦게 나왔다면 ‘빅데이터 프로그래밍’ […]
이 책을 산 건 거의 10년 전이었다. 앞부분을 좀 보다가 ‘통계 같은게 좀 나오는군~’하는 느낌 정도로 알고 덮어놨다가 작년에 다시 훑어봤는데, 제목의 느낌과는 달리 그냥 인공지능 책이었다. 요즘은 거의 ‘인공지능 = 머신러닝’이지만 이 책에서는 머신러닝 외에도 고전적인(?) 인공지능 알고리즘을 두루 다루고 있다. 당시에는 ‘웹 2.0’이 더 핫한 단어였지만, 한 5년 정도 늦게 나왔다면 ‘빅데이터 프로그래밍’ […]
모 커뮤니티에 초보 개발자가 실력을 확 늘리려면 무엇을 해야하는지에 대한 질문과 함께 아래 항목 중 어느 것이 좋을지 추천을 해달라는 글이 올라왔다. 내가 만들고 싶은 앱을 기획, 개발, 디자인까지 혼자 다 해본다 기존에 있는 앱을 카피해본다 릿코드를 많이 풀어본다 인턴으로 취직해본다 수업만 열심히 듣는다. (방학 포함) 의외로 첫 번째 항목을 추천하는 사람이 가장 많았다. 내가
A new power management feature called App Standby Bucket has beed added in Android 9(Pie).(https://developer.android.com/about/versions/pie/power) App Standby Bucket allows Android system to categorize priorities of apps in 5 buckets as follows; Active Working set Frequent Rare Never Apps go into one of those buckets according to how actively they are used. An important thing to
Check App Standby Bucket using ADB command Read More »
더 이상 필요 없게된 코드를 주석으로 남겨두는 경우가 있다. 나중에 급하게 필요하게 되면 참고하기 위해서 남겨두곤 했었다. 그런데 그 때의 코드를 다시 보게 되면 사고의 한계도 그 때의 자신에 맞춰지게 되는 듯한 느낌이 들 때가 있다. 과거의 나보다 지금의 내가 더 코딩을 잘 한다면, 같은 기능을 하는 코드를 훨씬 쉽고 단순하게 구현할 수 있을 것이다. 구체적인 사례로 검증을 해보진
주석 처리된 오래된 코드를 어떻게 할 것인가 Read More »
안드로이드 9부터는 App Standby Bucket이라는 전원 관리 기능이 추가되었다.(https://developer.android.com/about/versions/pie/power) App Standby Bucket이란 안드로이드 시스템이 앱을 처리하는 우선순위를 아래와 같이 크게 다섯 가지로 분류하는 기능이다. Active Working set Frequent Rare Never 사용자가 앱을 얼마나 자주 사용하는지에 따라 각 버킷으로 이동하게 되며 정확한 기준은 (어뷰징을 생각한다면 당연히) 알려져있지 않다. 한 가지 주의할 부분은 앱이 어느 버킷에 있느냐에
ADB로 App Standby Bucket 확인하기 Read More »
한창 머신러닝 붐이 일어나던 2년 전쯤 텐서플로우와 케라스를 활용해서 기본적인 선형회귀 정도를 해본 이후로는 딱히 공부라 할 만한 것을 하지 않고 있다가, 작년 연말에 다시 공부를 시작했었다. GAN 샘플 돌려보는 수준까지를 목표로 했었지만 회사 일이 바빠지면서 RNN을 조금 살펴보던 상태에서 또다시 멈추게 되었다. GAN까지는 아니더라도 RNN 정도는 이해를 해야 가변길이의 데이터로 어떻게 머신러닝을 하는지 이해할
Sequence Model 수강 후기 Read More »
맥에서 별도의 툴을 설치하지 않고도 간단한 변환 작업을 할 수 있다. afconvert라는 툴이 기본적으로 설치되어있는데 문서가 제대로 되어있지 않아서 활용이 편하지는 않다. 아래 링크의 내용으로 대략적인 사용법을 유추할 수 있다. https://www.raywenderlich.com/2432-audio-tutorial-for-ios-converting-and-recording-2014-edition 머신러닝 과제를 위해서 m4a 파일을 wav 형태로 바꾸기 위해서 방법을 찾아보다가 발견한 것.
어떤 이벤트에 대해, 그 이벤트가 최초로 발생했을 때와 그 이후에 발생했을 때를 다르게 처리해야하는 경우가 있다. 보통은 이럴 때 isFirst 같은 변수를 하나 만들어두고 이벤트 핸들러에서 분기처리하는 식으로 구현하는데, 이벤트에 대한 처리를 객체로 캡슐화하면 조건문을 제거할 수 있다. 변수를 사용하는 방식 객체로 캡슐화한 방식 아래는 메서드에 대한 참조 변수를 사용하여 구현한 것이다. 이렇게 하면 최초에
동일한 이벤트에 대해 최초와 그 이후를 다르게 처리하기 Read More »
대략 3년 전쯤, 잠시 내 손을 떠났던 프로젝트의 코드를 수정하는 동료가 기존에 (아마도) RadioButton으로 구현했던 Tab 버튼영역 UI를 TabLayout을 사용해 구현하는 방식으로 바꾸면서 각 탭 버튼들의 폭이 디바이스에 따라 다르게 그려지는 현상이 나타난다며 도움을 요청해왔다. 화면 디자인상 Tab은 통짜 이미지를 슬라이스해서 버튼을 만들고, 항상 가로를 가득 채우도록 확대/축소 되는 식이어서 정확히 지정된 폭으로 그려지지 않으면
안드로이드 스튜디오에서도 Kotlin을 쓸 수 있지만, 단순히 몇가지 문법과 기능들만 테스트해보고 싶을 때는 프로젝트를 따로 만드는 것이 편리하다. 현재 작업 중인 프로젝트에서 잠깐 코드를 작성했다가 지우는 방법도 있겠지만, 빌드가 가능한 상태가 되기까지 해야할 작업이 많이 남아있거나 하는 경우도 있으므로 인텔리제이에서 프로젝트를 따로 만들어두는 것이 좋다. 인텔리제이에서 Kotlin 프로젝트를 생성해서 사용하고 있었는데, 코루틴 최신 라이브러리를 추가하고
IntelliJ에서 Kotlin 버전 지정하기 Read More »