본문 바로가기

Development

(89)
가로, 세로로 화면 변경될때 설정 유지하기. manifest 파일을 수정한다. android:configChanges="orientation"
안드로이드 또는 아이폰에서 서버로 파일을 올릴때 리턴값(스트링)을 받아오기. 안드로이드, 아이폰에서 서버로 httpClient 를 이용해서 그림파일을 보내고 그 결과값을 받아와야 할 일이 생겼다. 스트링으로 받아오려면 프레임웤에 REST 를 올려서 json 으로 받는게 가장 심플하고 좋겠지만 낼모레 테스트하는 마당에 그러기엔 너무 귀찮고.. 해서 약간 꼼수를 썼다. 서버의 컨트롤러 메소드에서 ModelAndView 를 리턴할때 jsp 페이지를 하나 만들어 두고 그 jsp 페이지에 리턴할 내용만 넘겨주면 된다. 아주 심플하다. 대신 jsp 페이지의 내용엔 오로지 리턴받기 원하는 string 만 들어가야 한다. 예를 들면, 안드로이드에서 ByteArrayOutputStream bos = new ByteArrayOutputStream(); signature.compress(Bitmap..
로컬 레파지토리 설정하기. pom.xml 파일에 라이브러리를 정의해서 사용할때 maven 중앙 레파지토리에 미처 등록되어 있지 않아서 로컬에 정의해 놓고 사용할때가 있다. 물론 라이브러리 파일만 해당 디렉토리에 넣어두고 사용할 수도 있지만 그렇게 사용할려면 뭐하러 maven 을 사용하나.. 라고 생각하는 나같은 사람이 있기 때문에 로컬 레파지토리를 설정해서 사용하는 방법이 맘 편할때도 있다. 예를 들어서 오라클 11G 의 jdbc 최신 드라이버인 ojdbc6.jar 라이브러리는 아직 maven 중앙 레파지토리에 등록되어 있지 않아서 pom.xml 에 정의를 해도 다운로드 받아서 사용할 수가 없다. 이럴때는 오라클 사이트에서 먼서 ojdbc6.jar 파일을 특정 디렉토리에 다운로드 받은 다음에 ojdbc6.jar 파일이 있는 디렉토..
Error generating final archive: Debug Certificate expired 오랜만에 mac 에서 안드로이드 앱을 개발하려던 도중에 오류가 발생한다. 분명 소스상에는 아무런 오류가 없는데 빨간 딱지가 뜨는데 별다른 오류내용을 출력하지는 않는다. 출력창에 나오는 오류메시지는 딱 한줄. Error generating final archive: Debug Certificate expired.. 어쩌고 저쩌고. 처음 안드로이드 SDK 를 설치하면 생성되는 debug.keystore 의 유효기간이 1년이다. mac 에서 한달만에 이클립스를 띄우니 마침 그기간 사이에 key 유효기간이 expire 되어 버린것이 원인이었다. 해당 파일을 찾아서 삭제한다. (/Usr/xxxx/.android/debug.keystore 의 파일을 삭제하고 난 뒤 다시 갱신한다.) 파일을 삭제한 뒤 다시 프로젝트..
SLF4J 사용하기. System.out.println() 으로 로그를 찍는 방법과 로깅툴을 사용하는 방법의 성능은 천지차이이다. System.out.println() 을 사용할때와 SLF4J 를 사용할때는 성능과 속도면에서 수십배의 차이가 생긴다. 간단한 시스템이라면 몰라도 조금만 규모가 커지면 서버가 감당해야 할 스트레스가 굉장히 커진다. (로깅의 가독율이나 효율은 둘째 치고서라도.) 사용방법은 먼저 라이브러리를 추가한뒤 소스상에서, import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class GatheringResource { // SLF4J Logging private Logger logger = LoggerFactory.getLogger(Gatherin..
Saas 와 ASP 의 차이점. 거의 같은 뜻으로 사용했는데 과연 내가 정확하게 뜻을 구별하면서 사용하는지 궁금했다. 한번 정확하게 의미를 파악하고 구별하고 싶었음. Software as a Service (Saas) vs the ASP Model By Christopher Souza Software as a service, or Saas, means different things to different people. For a business it means purchasing an Internet based application service from a third party vendor. A consumer views Saas as the ability to buy and download desktop software from t..
파티톡 1.0.1 업그레이드. 지난주에 출시한 파티톡을 1.0.1 버전으로 업그레이드 했다. 기존 버전에 비해서 네트워크 부하를 좀 줄이고 초대전화번호의 예외처리 로직을 좀 더 추가했다. 생각하지 못한 여러가지 변수가 발견되었다. 기존에 로그를 남기는 로직을 쓰레드로 돌렸다. 다음 로직을 실시간으로 따로 돌릴수 있어서 속도가 조금 향상되었다. 1.0.1 버전으로 업그레이드 한 뒤의 소감은.. 실제 체감 속도가 조금 빨라졌다. 앱이 좀 더 안정감있게 실행된다. 아직은 홍보부족으로 회원수가 얼마 없지만, 조만간에 많이 불어날거라 생각한다..
목록에서 링크걸기. 안드로이드에서 링크처리는 의외로 간단하다. 예를 들어서 텍스트뷰에서의 링크처리는 XML attribute 에서 autoLink="all" 정의만 해주면 웹사이트, 이메일, 전화 등등을 자동으로 처리해준다. 하지만 일반 액티비티가 아닌 어댑터를 확장한 클래스의 경우는 얘기가 달라진다. 우선, 02-09 14:40:26.263: ERROR/AndroidRuntime(8515): Uncaught handler: thread main exiting due to uncaught exception 02-09 14:40:26.302: ERROR/AndroidRuntime(8515): android.util.AndroidRuntimeException: Calling startActivity() from outside ..