전체 글 131

ProjectEuler 풀이 - Problem 6. Sum square difference

Project Euler에 있는 재미있는 문제를 하나 풀었습니다.6번째 문제로 제목은 Sum square difference 입니다. The sum of the squares of the first ten natural numbers is, 12 + 22 + ... + 102 = 385The square of the sum of the first ten natural numbers is, (1 + 2 + ... + 10)2 = 552 = 3025Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 385 = 2640. Find the differe..

[Android] 현재 폴더에 있는 APK 파일 한꺼번에 설치하기

테스트 하려는 APK를 일일이 설치하는 것도 일이다. batch파일로 만들어서 한 방에 설치하자. dir/d/b/a:-d > list.txt FOR /F %%i IN (list.txt) DO (adb install %%i) dir/d/b/a:-d > list.txt ==> 현재 폴더에 있는 파일 목록을 만든다. FOR /F %%i IN (list.txt) DO (adb install %%i) ==> 목록을 읽어서 설치한다. list.txt를 만들지 않고 설치하려면, FOR %%f IN (*.apk) do adb install -rf %%f

Tips/Android 2013.06.10

테스트와 품질

SW 개발 과정에는 수많은 테스트 절차가 있다. 회사마다 실시하는 종류는 다르겠지만 위키피디아에 기록된 것만 해도 무려 16가지나 된다. 요즘 읽고 있는 책에 테스트에 관한 흥미로운 견해가 있어 본문을 옮겨 본다. 테스트를 많이 할수록 품질이 좋아진다고 생각하는 사람도 있다. 정말 그랬으면 좋겠지만, 안타깝게도 그렇지가 않다. 테스트하면 결함을 찾는 데 도움이 되긴 하지만 코드 여기저기 숨어있는 결함을 테스트만으로 찾아내는 건 불가능하다. 아무리 열심히 테스트해도 상당수의 결함이 잡히지 않고 남아있을 것이고, 여기서부터 불편한 진실이 나타나기 시작한다. 테스트에서 기존 결함 중 특정 비율(예를 들어 65%)만큼을 찾아낸다고 해 보자. 그러면 테스트를 통해 찾아낸 결함이 많아질수록 찾아내지 못한 결함도 많..

커뮤니케이션2 - 말 줄이기

자신이 이야기할 때 주위가 갑자기 조용해지는 것을 경험해 본 적이 있는가? 주위 사람들이 입을 닫은 이유가 이야기에 집중해서 들으려고 한 것이라면 다행이지만, 어서 이야기가 빨리 끝나기만을 기다리려고 한 것이라면 슬픈 일이다. 더군다나 당신이 그걸 못 느낄 정도로 무디거나 그걸 알고 있음에도 계속 자기만의 이야기를 이끌어 간다면, 고위 간부인데다 같은 말을 반복해서 이야기 하는 스타일이라면 그것은 슬프다 못해 듣는 사람에게는 지옥이다. 사사건건 남의 의견에 토를 다는 사람이 있다. 상대가 한 마디 하면 자기도 꼭 한 마디 덧붙여야 직성이 풀린다. 말허리를 자르고 들어와서 "아니, 그게 아니고"로 말을 시작한다. 서로의 의견을 주고받는 토론 자리가 아니라, 일상의 대화에서, 어제 있었던 연예인의 가십거리를..

개발자 Life 2013.05.28

프로그래머를 위한 자기 계발서

서점에는 한 쪽 벽면을 당당하게 차지하고 있는, 일명 '자기 계발서'라고 불리는 책들이 있다. 언젠가 부터 이런 류의 "성공하기 방정식 A to Z"식 서적들이 넘쳐나기 시작했다. 나도 몇 권 사서 보고 따라해 보았다. 학창 시절에 "성공하는 사람들의 7가지 습관(김영사)"을 읽고 원문 제목 대로 effective한 사람이 되려고 한 적도 있었다. 그나마 사회생활 하면서 도움이 되었던 자기 계발서는 이 책 뿐이고, 그 외에 책들은 제목조차 기억에 남아 있지도 않다. 이런 자기 계발서들의 문제는 독자의 대상을 일반 대중에 맞추다 보니, 성공하기 위한 디테일한 실천법이 오히려 모든 사람들에게 끼워 맞춰지지 않는다는 것이다. 사람들은 너무나 다양한 삶의 스펙트럼을 가지고 있는데 한 권의 책으로 모든 사람을 만..

무엇을 배워야 할까

신입사원이 처음 팀에 투입되면 방치되는 경우가 종종 있다. 맡게 되는 업무라고 해 봐야 팀내 자산조사와 같이 그다지 가치를 느끼지 못하는 일이 대부분이다. 당장 급한 업무를 신입에게 맡기기에는 못 미더울 뿐더러 업무를 일일이 가르치면서 진행하기에는 시간이 너무 오래 걸린다. 하지만 당신은 이 시기를 허비해 버리면 안된다. 당신은 앞으로 회사생활을 하면서 이 시기만큼 마음대로 공부할 시간을 얻지 못할 수도 있다. 평소 항상 좋은 책들을 찾아 읽어라. 무슨 책을 읽어야 할 지 모른다면 선배에게 자문을 구해보라. 필요한 지식을 얻기 위해 노력하는 후배를 위해 기꺼이 시간을 내 줄 것이다. 사내에 멘토링 제도가 있다면 멘토를 적극 이용해라. 멘토는 멘티의 실력을 키워서 한 명의 어엿한 팀원으로 키워내야 할 의무..

청소하기

신입사원일 때 한 선배에게 빌드할 때 Warning 메시지가 많이 뜨는데 고쳐야 되지 않냐고 물은 적이 있다. 돌아온 대답은 그럼 네가 한 번 고쳐봐라는 말이었다. 문맥상으로는 본인은 다른 일도 많고 동작하는 데에 별 문제도 없으니 시간이 많은 신입 너가 한 번 고쳐봐란 뜻이었다. 그런데 그는 과연 컴파일러가 친절히 시간을 들여가며 화면에 뱉어 준 경고를 무시할 정도로 바빴는지, 과연 그 경고 메시지들은 무시할 정도로 사소했는 지는 지금까지도 의문이다. 당신이 훌륭한 SW엔지니어가 되고 싶다면 "청소하는 습관"을 몸에 익혀라. 여기서 말하는 청소는 단순히 책상 위를 깨끗이 정돈하고 먼지를 닦아내라는 뜻이 아니다. 실력 있는 개발자도 책상 위가 지저분한 사람들이 많다. 어제 야근 중에 먹고 반쯤 남겨놓은 ..

개발자(SW 엔지니어)라는 직업의 매력

흔히 '개발자'라고 하는 SW엔지니어가 직업으로서 어느 정도 매력이 있는 지 생각해 보자. 사람들이 생각하는 좋은 직업이 갖추어야 할 조건을 나열하면 다음과 같은 것들이 있다. 1. 고액의 연봉2. 전문 지식이 필요함 (진입장벽이 높음)3. 근무시간이 규칙적이거나 자기 마음대로 조절이 가능함4. 업무 진행을 주관적으로 할 수 있음5. 적은 스트레스6. (무언가 더 나은 세상을 만들기 위해 노력한다는) 주위의 인정 개발자라는 직업이 위에서 열거한 것들에 몇 가지나 만족할 지 생각해 보면 2번외에 없는 것 같다. 그나마 2번 역시 닷컴 버블을 거치면서 직업훈련원과 학원에서 대량 양산된 인력들로 인해 장벽이 많이 낮아진 상태다. 개발자는 과연 좋은 직업일까. 어떤 아기의 돌잔치에서 돌잡이 쟁반 위의 마우스를 ..

[Android] 가로 세로 회전 시 상태유지 - EditText의 내용이 지워지는 경우

가로 세로 회전 시 Activity의 상태를 유지하는 방법은 아래 블로그를 참고http://theeye.pe.kr/entry/how-to-prevent-widgets-value-loss-on-rotating-android-devices?commentId=34217 위 방법대로 했음에도 불구하고, IME (Soft Keyboard)를 띄운 상태에서 가로 세로로 전환했을 때 입력한 내용이 표시가 되지 않는다면, AndoidMenifest.xml 파일을 확인해 보라. 만약 아래 처럼 android:minSdkVersion를 정의해서 쓰고 있다면 이를 삭제해서 테스트를 해 보자. android:minSdkVersion은 안드로이드 OS버전이 얼마 이상 되야 이 앱이 설치될 수 있다는 것을 기술하는 부분인데, 왜..

Tips/Android 2013.03.22