TDD 코드를 작성하는데, Private 메소드는 아주 귀찮은 존재입니다.잠시 public 으로 바꿔서 테스트 하거나 또는 리플렉션을 사용하여 실행 시키는 방법등이 있는데, 여러가지로 피곤함을 가중시켜요. 그러나 이런 문제를 해결하기 위한 PowerMock 과 같은 도구가 있습니다!! https://code.google.com/p/powermock/ 하지만, Android 테스트에서 Robolectric 과 Mockito 를 사용하는데, 여기다가 PowerMock 까지 붙이면 Exception 을 뿜으며 문제가 생기네요.(혹시 문제 해결책을 아시는 분 있으면 알려주십쇼..ㅠㅠ) 어쨌든 위와 같은 문제를 해결 하느라 약간의 삽질을 하다가, 허접하게 나마 아래와 같이 좀 더 편하게 private 메소드를 실..
이 슬라이드를 보고 암이 치료되었습니다... 위 슬라이드 내용을 아래와 같이 정리해 봤다. Base :: Objects.equal(), Objects.hashCode(), MoreObjectes.toStringHelper(), ComparisonChain.compare() public class Employee implements Comparable{ public String name; public Integer age; public Job job; @Override public boolean equals(Object o) { if(!(o instanceof Employee)) return false; Employee that = (Employee)o; return Objects.equal(name, t..
Application 클래스 내부 메소드인 registerActivityLifecycleCallbacks(ActivityLifecycleCallbacks) 를 이용해야 한다. 이 메소드의 인자값으로 ActivityLifecycleCallbacks 를 상속받아 구현한 클래스의 인스턴스를 넣어준다. 또는 다른 Activity 나 Service 내부에서 getApplication(). registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks { ... }) 와 같이 호출해 주는 방법도 있다. registerActivityLifecycleCallbacks 을 더이상 사용하지 않을때는 unregisterActivityLifecycleCallbacks(A..
사실 앱 위변조 방지는 프로가드만 잘 적용하면 어느정도 방지할 수 있다. 하지만, 클라이언트 앱을 역컴파일 한다면 서버 API 가 노출되는 것을 쉽게 막을수도 없는일이다. 사실 이 문제에 대하여 당장 떠오르는 해결책은 NDK 를 사용하여 서버와 통신하는 것이다. 하지만 서버의 모든 API 호출을 C/C++ 로 구현하기에는 시간적 인적 비용이 부족한 많은 프로젝트에서는 거의 불가능에 가깝지 않을까 생각한다. 그래서 시간이 없는 상황에서는 다음과 같이 간단한 방법을 이용할 것을 권장한다. 코드상에서 서명 값을 가져와서 서버와 첫 접속시 이 값을 보내준다. 서버에는 앱의 서명 값이 이미 저장되어 있으며 이 것을 클라이언트로부터 받은 서명값과 비교하여 위변조된 앱인지 검출하는 것이다. 즉, 앱 빌드시 다른 인증..
앱의 위변조를 방지하기 위하여 서명 값을 가져와서 서버에 미리 등록된 값과 비교하는 과정이 필요하다.하지만, 안드로이드 Java 코드상으로 제공되는 API 를 활용하는 것은 안전하지 못하다.(안드로이드 자바 코드상에서 서명 값 가져오기 : http://www.dev.re.kr/70) 그렇기 때문에 JNI 를 활용해야 한다. context 를 인자값으로 받아서 jni 에서 제공되는 리플렉션을 사용하여 SHA1 으로 변환된 서명 값을 가져오는 코드를 첨부한다. 주의할 점은 아래 코드는 C++ 로 작성되었기 때문에 C 에서 사용하려면 약간의 수정이 필요하다. 이를테면 env->GetObjectClass(context); 를 C로 표현 하려면 (*env)->GetObjectClass(env, context); ..
- Total
- Today
- Yesterday
- NeoPixel
- oled
- 알리익스프레스
- 개발
- 안드로이드 개발
- WS2812B
- ENC28J60
- Iot
- HC-06
- 아두이노
- 칩두이노
- bluetooth
- ATtiny85
- ESP8266
- ndk
- noidemcu
- Cheapduino
- 침블락
- 스마트 무드등
- 병렬 프로그래밍
- 부트로더
- arduino
- json
- 이더넷
- 안드로이드
- 블루투스
- Android
- Java
- activity
- 가습기
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |