• 참고사이트

증상

오랜만에 안드로이드 개발환경을 재설치하고 기본형식으로 완성된 안드로이드 애플리케이션을 실행하려고 하는데,

Description Resource Path Location Type Error generating final archive: Debug Certificate expired on 12. 9. 26 오후 11:36 MagpieAlarm Unknown Android Packaging Problem

라는 로그를 찍으며 애플리케이션이 실행되지 않는 문제가 발생했다.


원인

개발 시스템에 있는 debug.keystore 의 증명파일의 기한이 만료되면서 나타나는 증상이다. 시스템에 ~/.android 디렉토리에 있는 debug.keystore 파일을 삭제하면 된다.


처리방법

1. 폴더이동

~/.android

2. debug.keystore 파일 삭제

rm debug.keystore



내 시스템에서는

/home/ihoneymon/.android 디렉토리 내에 debug.keystore 파일이 존재한다.



우분투 64bit, ADT-Bundle 실행시 libncurses.so.5 cannot open... 메시지 뜰때



결론부터 이야기하자면, Eclipse Android Plugin이 실행되는데 필요한 32bit 라이브러리가 없어서 뜨는 것이다. 32bit 라이브러리를 설치해주자!!

$ sudo apt-get install ia32-libs


ADT bundle 을 설치한 후에 Eclipse for Android를 실행하는데, 실행할 때마다

'adb-version' failed!!

라는 메시지가 지속적으로 팝업으로 노출되었다. 팝업을 닫고 나면 console 창에 아래의 로그가 주르르륵 찍히는 것을 목격할 수가 있다. 로그의 내용만으로는 딱히 어떤 증상인지 확인할 수가 없다. 그저 'error while loading shared libraries: libncurses.so.5: cannot open shared object file' 라는 문구를 통해서 libncurses.so.5 관련 문제겠구나 추측해볼 수 있다. 

그래서 인터넷 검색을 실시했고, 위에서 언급했던 참고사이트의 정보를 확인했다.

  • 검색 키워드 : linux adt-bundle libncurses.so.5 cannot open

[2012-12-30 15:47:57 - adb] /development/adt-bundle-linux/sdk/platform-tools/adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory [2012-12-30 15:47:57 - adb] 'adb version' failed! /development/adt-bundle-linux/sdk/platform-tools/adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory [2012-12-30 15:47:57 - adb] Failed to parse the output of 'adb version': Standard Output was:

Error Output was: /development/adt-bundle-linux/sdk/platform-tools/adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

[2012-12-30 15:47:57 - adb] /development/adt-bundle-linux/sdk/platform-tools/adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory [2012-12-30 15:47:57 - adb] 'adb version' failed! /development/adt-bundle-linux/sdk/platform-tools/adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory [2012-12-30 15:47:57 - adb] Failed to parse the output of 'adb version': Standard Output was:

Error Output was: /development/adt-bundle-linux/sdk/platform-tools/adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

우분투에서 실행되는 android sdk 는 32bit application이기 때문에 32bit 공용 라이브러리들이 필요한 것이다. 실행에 필요한 32bit 공용 라이브러리를 추가하는 것으로 간단하게 문제를 해결할 수 있게 된다. 

http://developer.android.com/sdk/index.html

Download the SDK를 누르면, 이클립스와 android SDK tools 가 함께 묶인 녀석을 다운로드 받을 수 있다.

어렵게 이클립스 다운로드 받아 설치하고, android SDK Tools 다운로드 받는 번거로움이 사라지는구먼.



쉽게 따라하는 자바웹개발

저자
백기선 지음
출판사
인사이트 | 2012-11-30 출간
카테고리
컴퓨터/IT
책소개
자바 웹 개발을 처음 접할 때 각종 프레임워크와 툴을 사용하는 ...
가격비교 글쓴이 평점  


스프링과 친해지기 마지막에 '전문가의 조언'에서 toby님이 하신 '스프링 학습법'을 간단하게 정리해봤다.

1. 스프링의 DI를 익히는 깃

2. 자바 언어를 잘 익혀야 함.

     * 언어의 문법과 기본 코딩을 익히고 나면 표준 라이브러리의 주요 API를 능숙하게 사용할 수 있도록 학습

3. java.util 패키지의 API믐 꼼꼼하그 공부

4. 객체지향 디자인패턴 공부

5. 애플리케이션의 업무 로직을 자바 클래스로 설계하고 코드로 만드는 연습

6. 이렇게 설계된 클래스를 스프링 DI를 적용해서 만들어지고 관리되도록 관리

7. 서버없이 스프링 DI컨테이너만 만들어도 충분히 스프링 DI사용

8. 스프링에서 DB와 관련된 부분 학습

     * JDBC를 익히고 DB와 SQL을 제대로 사용하도록 공부

     * JDBC -> Spring JDBC

     * iBatis를 이용한 매핑 기술

     * 하이버네이트, JPA와 같은 ORM을 이용해서 DB 프로그래밍을 하는 것이 대부분

          * ORM은 해당 기술의 개념과 코드 작성 방법을 익히는데 충분한 시간을 할애해야 한다.

9. 서버에서 동작하는 엔터프라이즈 애플리케이션을 스프링을 이용해서 작성하고, 서버에 배치하는 방법을 익히면서 웹 프로그래밍에 스프링을 적용해볼 차례

결국은 기초부터 차근차근 배우고 익히면서 내 것으로 만들어가는 과정부터 시작해야한다.

이 바닥에 뛰어들고, 3년쯤 지나서야 무슨 말인지 깨닫게 되었다.

기초가 든든하지 않으면, 쉬이 흔들리게 된다.

기초튼튼!!


프로그래머로 사는 법

저자
샘 라이트스톤 지음
출판사
한빛미디어 | 2012-10-04 출간
카테고리
컴퓨터/IT
책소개
성공하는 소프트웨어 프로그래머를 위한 경력 관리 비결!『프로그래...
가격비교 글쓴이 평점  

  어제 정기적으로 모이는 스터디가 있었다. 그 스터디에는 다양한 분야, 다양한 회사의 사림들이 모여들었다. 그들은 저마다의 목표를 가지고 늦은 밤, 희의실에 모여 스터디를 시작했다.


  개발자가 자신의 몫을 할 수 있는 위치로 성장하기 위해서는 배워야 하는 것이 많다. 

  학교나 학원에서 프로그래밍에 필요한 것들을 가르쳐줄 수 있다. 개발 환경을 잡고 개발툴을 설치하는 방법을 알려줄 수는 있다. 그러나 어떻게 코딩하고 요구사힝을 어떻게 구현할 지는 순수히 개발자 자신의 능력에 달려있다고 할 수 있다. 처음 프로그래밍을 시작하는 개발자가 능숙하게 알고리듬을 이해하고 문제를 해결할 수 있을리는 없다. 이 프로그래밍 능력은 학습과 경험에 의해 지속적으로 성장할 수 있다. 개인에 따라서 진척도의 차이는 있겠지만, 꾸준히 노력하면 성장되는 것은 분명하다.


  어제 스터디를 하면서 느꼈던 안타까운 점이 하나 있었다.

  발표 내용이, 내가 처음 이 바닥에 들어와 고민했던 내용들이라는 점들이라는 것이다. 왜 안타까웠느냐 하면, 저런 시행착오나 설정에 대해서 잘 알고 있는 사람이 곁에 있었다면 겪지 않았을 시행착오인 것들이라 누군가가 곁에 있었다면, 손쉽게 해결하고 다음단계로 진행힐 수 있는 것인데 그러지 못하고 많은 시간을 지체하면서 손해를 본 것이 안타까웠다. 시간은 그들에게나 회사에게나 소중한데.

  스터디에 참여하려는 노력을 하는 사람들은 그 안에서 다른 사람의 경험을 공유받을 수 있겠지만, 스터디 등의 활동을 하지 않는 사람들은 그런 경험을 공유받을 기회 조차 가지지 못한다.


  아직 우리나라 개발자들은 자신의 경험을 공유하는 것에 인색하거나 낯설어 하는 이들이 많다. 상당한 회사들에서 선임개발자가 후임개발자들에게 많은 것을 전해주고 싶지만, 그 방법을 체계적으로 익히지 못했기에 대부분 주먹구구식으로 전달해줄 수밖에 없다. 이렇게 될 경우 종종 중요한 포인트들을 빠뜨리고 예시들에 대해서만 설명하거나 말로 두리뭉실하게 설명하는 것에 그치게 될 가능성이 높다. 

  

faith
faith by jenny downing 저작자 표시

  이 바닥에 뛰어들었을 때는 모든게 낯설었다. 어떤 일을 하면서 일어나는 것들에 화들짝 놀라는 경우도 있었다. 


  '내가 잘못 건드려서 시스템 전체에 영향을 미치는 경우가 생기면 어쩌지??'

  라는 불안감을 안고서 한동안은 조심히 시스템을 살폈다.  딱히 나에게 어떻게 하라고 가이드 해주는 사람들도 없었다. (방치되고 있었다고나 할까?) 그러다가 주변의 것이 익숙해지기 시작하자 나름의 시도들을 해봤다. 구버전의 이클립스를 최신버전(이때는 헬리오스가 최신버전이었다!)으로 바꾸고 로컬개발환경을 조금더 깔끔하게 만들고, 별도의 버전관리도구(SVN)를 도입하고 새로운 것들을 계속 배우려고 했다. 

  그 때 그런 경험을 가진 사람들이 곁에 있었다면, 시행착오를 줄이고 조금 더 많은 것을 배우고 익혔을텐데 라는 아쉬움이 아직도 남아있다. '이 회사에서는 배울게 없겠다'는 생각이 들면서 그것을 이유로 그 회사를 나오기를 결심했다. 나는 여전히 배움에 목적이 있다. 

  그 회사에 들어갈 때 개발(SI)쪽으로 넣어주길 바란다고 했지만, 회사에서는 나를 유지보수(SM)으로 꽂아넣었다. 회사의 사정과 내 사정이 서로 다르다. 서로 다른 사정에 대해서 이해하고 넘어갈 수도 있겠지만, 그렇지 못할 경우도 있다. 그럴 경우에는 자연스럽게 회사를 떠나게 되는 것이다.

  대부분의 개발자가 처음에 겪는 시행착오는 선배개발자들이 겪은 것들이 대부분이다. 조금만 관심을 기울여주면 그런 시행착오를 겪고 해결하기 위해 들이는 시간과 노력을 줄여줄 수 있고, 빠르게 성장할 수 있는 계기를 만들어줄 수가 있다. 그런데 그렇지 못하는 경우가 너무나 많다.


days of yore
days of yore by brainware3000 저작자 표시

  '나도 겪었으니까 너도 겪어봐!'

  라는 못된 심보를 가지게 되는 것이랄까?

  내가 가진 경험을 다른 사람에게 전달해줄 수 있다면, 다른 사람은 조금 더 빠르게 성장할 수 있다고 생각한다. 나 역시 아직은 이런 경험을 전달하는 것에 익숙치 않은 탓에 많은 부분에서 헛점들이 존재한다. 


  이런 시행착오를 줄여줄 수 있도록 도와줄 수 있는 노력들을 해보려고 한다. 당장은 구체적인 것들을 보여주기는 어렵겠지만, 블로그에 기록들을 남기고 필요하다면 세미나장에서 발표도 하고 공유할 수 있는 흐름을 만들어보고 싶다.

+ Recent posts