글쓴이 보관물: codingnuri

샤오미 홍미 노트 3 팁

얼마전까지 쓰던 옵티머스 GK가 배터리 문제로 고장 난 이후로 샤오미 홍미 노트 3 프로를 사용하고 있다. 이번에 처음으로 MIUI 7을 사용 중인데, 지금 사용 중인 휴대전화 사양이 좋아서 그런지 MIUI도 빠릿빠릿하게 동작하고 구석구석 자잘하고 유용한 기능들이 많아서 깨알 같은 재미가 있다. 다른 사용자들은 어떻게 사용하는지 궁금해서 구글에서 팁을 검색해 보니 다양한 글이 나온다. 그중에서 아래 글이 잘 정리돼 있고 공통적으로 자주 활용되는 팁인 듯해서 여기에 정리했다.

  1. 루팅하지 않고 지역 글꼴 읽기: 이건 그다지 필요한 기능이 아니라서 패스.
  2. 게스트 모드 활성화: 다른 사람에게 잠깐 휴대전화를 건넬 때 통화 목록이라든가 메시지, 사진첩 같은 것을 보여주기 싫을 때 활성화하면 된다.
  3. 비밀번호를 이용해 앱 보호: 특정 앱을 별도로 잠글 수 있다. 해당 앱을 사용하려면 설정에서 등록한 패턴을 입력해야 함.
  4. 한손모드: 5.5인치 디스플레이를 한손으로 쓰기에 불편할 때 이 모드를 적용할 수 있다. 설정에서도 적용할 수 있지만 홈 버튼에서 뒤로가기 버튼으로 스와이프해도 한손모드를 활성화할지 묻는 대화상자가 나타난다.
  5. 잠금 화면에서 카메라 실행: 잠금화면에서 손쉽게 카메라를 실행하는 방법. 지금 사용 중인 버전에서는 잠금 화면에서 카메라 아이콘을 왼쪽으로 쓸어넘기면 카메라가 실행된다.
  6. 네트워크 속도 표시
  7. 상세 알림 활성화
  8. 배터리 수명 늘리기: 배터리 프로파일을 지정해서 배터리 수명을 늘리는 방법인데, 설정을 보면 알람 빼고 모든 네트워크 기능을 비활성화한다거나 Wi-Fi와 데이터 서비스를 끄거나, 기기를 잠갔을 때 백그라운드 프로세스를 정리한다는 식의 프로파일을 선택할 수 있다. 그 밖에도 기기 배터리를 오래 쓰기 위한 옵션이 많으니 참고할 만하다.
  9. 모바일 데이터 제한: 사용 가능한 모바일 데이터가 적을 때 미리 데이터를 제한해 두면 요금 폭탄을 미연에 방지할 수 있겠다.
  10. 앱의 모바일 데이터 사용 제한: 마찬가지로 앱별로 설정 가능한 기능이다.
  11. 램 늘리기: 다른 스마트폰과 마찬가지로 홈 버튼 왼쪽에 있는 버튼(글에서는 왼쪽 홈 버튼이라고 표현)을 눌렀을 때 하단의 X 버튼을 클릭해 프로세스를 정리해서 램을 늘릴 수 있다. 글에도 써 있지만 왼쪽 홈 버튼을 길게 누르면 배경화면, 테마를 설정하는 기능이 실행된다.

참고로 지금은 MIUI 7을 사용 중인데, MIUI 8도 한창 개발 중이다. 개발자 베타까지 나왔으니 조금 더 기다리면 연내로 업그레이드할 수 있지 않을까 기대하고 있다. 그리고 사용자 참여를 통해 MIUI의 현지화를 진행하다 보니 중간중간 미흡한 부분이 보이긴 한다. 혹시 MIUI 8의 한국어판 작업에 기여하고 싶은 분이라면 공식 MIUI 8 한국어 번역 프로젝트에 참여하시길.

Debug It! 실용주의 디버깅 : 소프트웨어 개발자가 꼭 알아야 할 디버깅의 정석

대학교 졸업 후 처음으로 소프트웨어 개발 일을 했을 때 한 일은 주로 기존 솔루션(레거시)을 유지보수하는 일이었다. 그렇다 보니 문제를 해결하는 과정에서 디버깅을 해야 할 일이 많았고, 자체적으로 만들어진 테스트가 별로 없었기에 기존 코드를 디버깅하면서 코드 기반과 친해져야만 했다. 지금은 개발 중에도 테스트 우선 개발이나 단위 테스트를 경향이 점점 많아지곤 있지만 레거시 소프트웨어의 문제를 테스트라는 안전망 없이 디버깅에 의존해서 해결해야 하는 일은 그 당시 나한테는 쉽지 않은 일이었다.

지금도 그렇지만 학교에서는 디버깅 따위는 가르쳐주지 않는다. 소프트웨어 공학이나 프로그래밍 언어 수업을 들었어도 CS 이론을 배우기마저 급급한 나머지 정작 실무 현장에서 반드시 필요한 지식이나 훈련 따위는 감히 상상조차 하지 못하는 상황이었다. 그렇다 보니 디버깅 같은 것들은 직접 책이나 회사 선배들에게 배워야 하는 것이다. 그마저도 당면한 회사 업무에 초점을 맞춰 배우다 보니 좀 더 체계적인 이론적 지식이나 훈련을 하지 못했던 것이 아쉽게 느껴진다.

이 책을 읽는 내내 이런 생각이 들었다. 회사에서 일할 때 이런 책을 미리 읽어봤더라면 훨씬 더 업무를 체계적으로 처리할 수 있었겠다는 생각이 든다. 디버깅하면서 막혔던 부분이라든가 주먹구구식이 아닌 좀 더 정교한 디버깅 방법론을 배울 수 있었으리라는 생각, 그리고 이 책에서 택한 실용주의적인 디버깅 체계/접근법을 익혔다면 좋았으리라는 생각이 들었다. 요즘엔 업계에서 테스트가 강조되는 분위기라 디버깅의 중요성이 차지하는 위치가 예전만큼 못 하다곤 하지만 그럼에도 디버깅이라는 것은 프로그래머가 반드시 익혀야 할 필수 기술이 아닌가 싶다. 혹자는 디버깅이 Art에 가깝다고 했는데, 처음에는 이해하지 못했지만 지금은 이 책을 읽고 나서 조금은 이해할 수 있을 것 같다.

지금 코드의 구조도 안 좋고, 테스트나 문서화도 제대로 안 돼 있을 수 있지만 꽤 오랫동안 제품으로 시장에 나가 있었다면 대부분의 경우에는 제대로 실행될 것이다. 즉, 문제 도메인에 대한 엄청난 지식이 코드에 들어 있을 것이고, 이런 지식은 다른 식으로는 기록하기가 거의 불가능하다.
이런 지식은 미묘한 것이라 요구사항 분석으로 다시 찾아내기 어렵다. 예를 들어 ‘네, 보통은 그렇게 되는 게 맞습니다만 이런 특수한 타입을 기록하기 위해서는 다르게 동작해야 합니다’와 같이 제품에서 계속 튀어나오는 특수한 경우는 소소코드 외에는 문서를 포함한 그 어느 곳에도 기록돼 있지 않을 것이다. 소프트웨어를 다시 작성할 때 조심하지 않으면 이미 겪었던 문제들을 다시 겪으면서 계속 생기는 회귀를 고쳐야 할 것이다. (p.234)

IT 분야 기대 신간 정리, 2016-06-06

오랜만에 국내에 나온 책들 중에서 내 맘대로 흥미로워 보이는 책들을 정리했다.