네트워크(3)
-
Retrofit API Test
대부분 restful API를 사용하는 안드로이드 네이티브 개발자들이라면Retrofit을 쉽게 사용할것이다. 구현 자체는 어렵지 않으나… API 개발은 프로젝트에서 독립적인 영역이고,때문에 시간이 지남에 따라 API의 변경이라든지, 구조의 변경..뭐 이런게 있을 수 있다. 변경 정도면 양반이고….API가 없는 상태에서 개발을 시작하게 되는 경우도 드물지 않다…… 이 말은 즉슨, mock test가 필수적이라는것 MockWebServer 전제 조건Retrofit 기반이므로 미리 준비되어 있어야 한다req /response 객체 있어야 한다단위 테스트의 기본을 이해해야 한다 구현 방법dependency 추가testImplementation ("com.squareup.okhttp3:mockwebserver: ..
2024.01.03 -
Android SSL Pinning
Pinningssl 인증서에 의존하는 서비스나 사이트의 보안을 향상시키기 위한 선택적 메커니즘피닝을 쓰면 암호화 id와 호스트를 연결할 수 이씀.pinning은 보안 연결을 설정할때 허용할 특정 id를 클라이언트에 알려줌 SSL Pinning호스트를 해당 인증서 또는 공개 키와 연결하는 프로세스호스트의 인증서 / 공개키를 알게되면, 이를 해당 호스트에 pin→ 사전에 정의된 공개키가 아니면 모두 거부! 이걸 왜 쓰나요?ca로 인증받는 방식에서 끝나게되면, 디바이스의 루트 ca를 해킹하게 되거나, android trust store에 등록하게 되면, 중간에서 중간자 공격이 가능해짐→ 이를 막기위함!중간자 공격으로부터 보호할 수 있고ca손상에 영향을 받지 않으며 민감 정보를 보호할 수 있다 SSL Pinni..
2023.12.15 -
Connectivity Manager
Connectivity Manager란Android 시스템 서비스네트워크 연결 상태에 대한 쿼리에 응답하는 클래스. 네트워크 연결이 변경되면 app에 알린다. 역할네트워크 연결 모니터링(WIFI, GPRS, UMTS)네트워크 연결 변경시 broadcast intent 전송네트워크 연결 끊긴 경우 페일 오버 시도앱이 사용 가능한 네트워크의 대략적 혹은 세분화된 상태를 쿼리하는 API제공App이 데이터 트래픽에 대한 네트워크를 요청하고 선택할 수 있도록 API 제공 클래스 얻기val cm = getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager 콜백voidonAvailable(Network network) 프레임워크가 연결되고 사용할 준비가 된 새 네..
2023.07.28