Monthly Archives: June 2013

lombok project 개선안

테클이라면 테클이고 개선안이라면 개선안인 내용.

1. lombok limiter – 겟셋기에 자동으로 값 검증 추가

대강 이런형탤 생각하고 있다.

validation인데 코드 자동생성형식…

 

다른것도 몇가지 더 생각한거 있었는데….

2. 커스텀 Annotation 지원

상속받는 구조라던가…@Custom, @ToString

 

3. …..

 

Access SQL query 샘플들

DateTime을 Date / Time으로 분리

http://webcheatsheet.com/SQL/access_functions/dateadd.php

http://www.techonthenet.com/access/functions/date/dateadd.php

DateAdd function

 

Android 개발중에 발견한 몇가지 문제들…

Android 개발은 안드로이드 초보에게는 엄청난 진입장벽을 보여준다.
기존의 자바 – 스프링 환경의 깔끔한 구현에 익숙한 개발자들이 멋도 모르고 뛰어들었다간 정말 개고생을 한다.

Activity는 왜 매번 Manifest에 기록을 해 줘야하는건가… 보안 때문인가? 성능 때문인가? 스프링에 익숙한 개발자들은 이 경우 꼭 필요하다면 어노테이션을 이용한 스캔을 하는게 좋지 않을까 하는 생각을 할 것이다. 일정 인터페이스를 구현하는 것들을 포함한다던가..
이건 그냥 그렇다고 치고…. 크게 불편하지 않으니

똑같은 구현을 하는 Fragment.. android 라이브러리와 각 버전별 v4라이브러리… 비슷하 기능과 메서드를 가지고 있다. 구글API개발을 위해서는 v4를 써야하는 것 같은데… 이걸 왜 따로 만들어놓은거야? 어디 개발자간의 알력싸움이라도 있었던건가? 상식적으로 봤을 때 필요한 게 있다면 최상단은 인터페이스로 하고 Fragment는 GoogleAPIFragment라는식으로 별도로 분리를 했어야 하는 것 아닌가

Eclipse-Android플러그인은 왜 프로젝트를 생성할 때 마다 매번 v4라이브러리를 따로 로딩해줘야하는가…

샘플 프로젝트를 실행시키는 것도 여간 힘든게 아니다. 한개를 실행시키려면 구글을 얼마나 뒤져야되는지….. sampleproject라는게 IDE에 붙어있다면… 이건 바로 실행이 되는 상태로 넣어놔야 하는게 상식 아닐까… 원래 당연히 될것처럼 생긴게 안되면 사용자들은 더욱 더 당황을 하게된다.  확실히 알아두자.. 안드로이드의 샘플 프로젝트는 바로 실행이 되지 않는게 정상이다. 고민하면서 검색을 해보자.
구글은 이 부분을 관리할 자신이 없다면 지들이 관리하지 말고 오픈소스 커뮤니티에 넘기던가…

하위호환성 문제… 이건 포기다. 그냥 안된다고 보자.. 4.0이전의 안드로이드는 버려라

로그문제… 왜 로그는 로그창에서 보고있으면 자꾸 지워지나…
Logcat에서 로그를 확인할 대는 파일로 뽑아서 확인해야한다. (이건 구글-안드로이드의 문제는 아니고..logcat-eclipse의 문제인듯)

android vdt의 속도문제.. virtualbox에서 돌리는 윈도우보다 느리면 문제가 있는게 맞지…
원활한 테스트를 위해서는 실제 디바이스를 이용해야한다.

 

그 뿐 아니라 maven, gradle 등의 환경을 제공하지 않아 라이브러리를 포함시키는것에서부터 참… 성가시다. test 프레임워크도 기본적으로 지원하지 않아 유닛테스트를 위한 프로젝트를 별도로 생성해야 하는 것 같다.

젤리빈넘어오면서 이제 좀 쓸만해진 안드로이드지만… 아직 갈 길은 먼 것 같다.

사실 젤리빈 넘어오면서 쓸만해진건 OS의 성능향상도 있지만 그보다 하드웨어 성능에 의존한 부분이 더 크니…. 아이폰 3g가 나올때의 ios와 당시의 안드로이드 os의 성능차이는 엄청났다. 비슷한 하드웨어로 그정도 차이라니…

프로젝트를 연 다음에 반복적으로 해야하는 작업들… 프로젝트 오른쪽 클릭 AndroidTools-AddSupportLibrary같은 부분들… maven을 지원해주면 해결될 부분들…

소스코드 보기.. 오픈소스 개발에 익숙한 개발자들은 개발하다가 오류가 나면 라이브러리보다는 소스코드를 본다. 소스코드를 보면 이게 내가 잘못개발한건지 라이브러리의 버그인지 더 빨리 확인이 가능하니까… 안드로이드도 어차피 오픈소슨데 좀 보기 편하게 해놓으면 덧나나… 이 부분도 참 불편하다. 이것도 maven-repo를 지원해주면 쉽게 해결될 문제…

이외에도 지금당장 기억 안나는게 몇 가지 더 있긴한데… 참 아직도 갈길이 먼 안드로이드다. user-interface도 아직 멀었고….

Postgresql Database 시간함수

http://www.postgresql.org/docs/9.1/static/functions-datetime.html

간단한 예제…

part는 hour만 가져온다. 값이 20이 된다.

date_trunc는 timestamp형태를 유지한다. 시간 밑으로는 절삭한다.

 

 

Hibernate 구현상의 문제점 정리

1. 설계상의 문제

Object구조를 갖추기 위해서인지는 모르겠지만.. Long id를 거의 강제하는 (커스터마이징이 가능하지만 조금 불편…) 도메인 구조때문에 설계에 제약이 생기고 디비의 성능을 제대로 발휘하지 못한다.

 

2. Bulk Insert 동작시

postgresql의 경우 sequence를 가져오기 위해 select nextval(‘{sequencename}’)를 연속으로 호출한다. oracle에서도 마찬가지가 아닐까 싶다. transaction처리를 위해서인것같지만… 문제가 있어보인다. 왜 이렇게 구현되어있는지 찾아봐야할 것 같다.

 

3. SaveOrUpdate 구현상의 문제점

Save And Update 형태로 동작한다.

upsert 기능을 지원하는 디비에서 굳이 저런식으로 동작하는 것은 비효율적이다.

 

JavaScript – 이벤트 발생후 화면 다시 로딩

그냥 이렇게 써놓으면 된다.

확인 후 재시작… ajax같은거 사용후에 적용해놓으면 좋다.

상황에 따라 재로딩을 하는 방식이 달라져야한다.

ajax로 추가되는 리스트인 경우는…. 다른방법인데 지금은 생각이 안난다.

웹브라우저WebBrowsing 터널링Tunneling 사용방법

설정 순서
1. 터널 오픈
2. 브라우저 셋팅

1. 터널 오픈
On Linux or Mac

 

On Windows – 안해봐서 불확실… 되겠지 뭐

Session :
Hostname : 접속할곳
Port :
Connection – SSH – Tunnels :
Source port : 로컬에 열어놓을 터널포트
Destination : 원격지 ssh 포트
Dynamic radiobox 선택

2. 파이어폭스 설정
다른 브라우저는 생략.. 비슷하겠지 안될수도있고

Preferences – Advanced tab – Network – Settings button – Manual proxy configuration radio button – SOCKS Host : localhost, Port : , SOCKS v5 radio button

Android keytool 키값 생성

2013.05 현재시점에서 동작하는 방법

예전사이트는 접속도 안되고.. 구글에서 이 주소를 찾는것도 정말 힘들다.

구글은 역시… 기술은 좋은데 기획은 엉망이다.

https://code.google.com/apis/console

http://developer.android.com/tools/publishing/app-signing.html#setup
디버그용 키 생성할 때…
Signing in Debug Mode
The Android build tools provide a debug signing mode that makes it easier for you to develop and debug your application, while still meeting the Android system requirement for signing your APK. When using debug mode to build your app, the SDK tools invoke Keytool to automatically create a debug keystore and key. This debug key is then used to automatically sign the APK, so you do not need to sign the package with your own key.

The SDK tools create the debug keystore/key with predetermined names/passwords:

Keystore name: “debug.keystore”
Keystore password: “android”
Key alias: “androiddebugkey”
Key password: “android”
CN: “CN=Android Debug,O=Android,C=US”