2026/03/13

오늘의 이야기

SafetyNet Attenstation API


https://developer.android.com/training/safetynet/attestation



 


SafetyNet Attestation API  |  Android Developers


SafetyNet Attestation API는 앱을 실행하는 기기가 Android 호환성 테스트를 충족하는지 확인하는 서비스를 제공합니다.


developer.android.com




SafetyNet Attestation API는 앱 개발자가 앱을 실행하는 Android 기기를 평가할 수 있는 악용 방지 API입니다. 이 API는 서버가 정품 Android 기기에서 실행 중인 정품 앱과 상호작용하고 있는지 여부를 확인하는 악용 감지 시스템의 일부로 사용해야 합니다.


 


playstore에 배포되고 있는 앱의 정당성을 증명하는 기능이라고 볼 수 있습니다. 이걸 하는 이유는 앱의 안전성을 확보하여 Firebase 등의 사용 시에 불량 사용자가 접근하여 데이터를 가공하는 일을 방지할 수 있다고 볼 수 있습니다.


 


그런데, 언제 부터 인가 이 것을 Play Integrity API로 이전해야 한다는 메일을 받았습니다.  가이드의 내용으로는 2023년 6월 30일까지 이전을 해야 한다고 되어 있습니다.  아직 유예기간이 6개월가량 남아 있기는 하지만 언제까지 그대로 유지할 수는 없는 일입니다.  


 


API 이전 안내 메일



Play Integrity API


https://developer.android.com/google/play/integrity



 


Play Integrity API  |  Google Play  |  Android Developers


Play Integrity API를 사용하면 잠재적으로 위험하고 허위일 가능성이 있는 상호작용으로부터 앱과 게임을 보호하고, 적절한 조치를 취해 사기, 속임수, 무단 액세스와 같은 공격 및 악용을 줄일 수


developer.android.com




기능은 같은 내용을 말하고 있습니다.   


 


이전 방법


앱 gradle 파일을 열어서 보면 어느 순간 부터 아래 그림과 같이 빨간 줄이 나타납니다. 이제 더 사용할 수 없다는 것을 알려 주기 위해서 표시가 되는 것입니다.


앱 gradle



 


이전과 관련된 개발자 문서는 아래 링크를 참고 했습니다.


https://developer.android.com/google/play/integrity/migrate?hl=ko 



 


SafetyNet Attestation API에서 이전  |  Google Play  |  Android Developers


SafetyNet Attestation API에서 이전 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이미 신뢰할 수 있는 서버를 사용하여 응답을 확인하고 있다면 SafetyNet Attestation


developer.android.com




 


이제 이전을 시작해 보겠습니다.  먼저 playstore에 이미 등록된 프로젝트를 구현해 보겠습니다.  safetynet 을 사용하고 있다면 이미 playstore 에 게시된 앱이라고 생각하고 시작합니다.  


 


1. playstore console에서 설정의 앱 무결성을 선택해 들어갑니다. 


2. Google Cloud Project와 연결해 줍니다. 이전에 사용했던 프로젝트는 존재한다고 가정합니다. 


앱 무결성 설정



3. 다음은 앱의 gradle 파일을 수정해 보겠습니다.


이전에 사용하던 safetynet을 사용중지 하고 playintegrity을 추가합니다.


//    implementation 'com.google.firebase:firebase-appcheck-safetynet:16.1.0'
// Add the dependency for the App Check library
implementation 'com.google.firebase:firebase-appcheck-playintegrity'

mainActivity에서 앱 체크를 위해서 넣었던 부분을 수정해 봅니다.


        FirebaseApp.initializeApp(/*context=*/this)
val firebaseAppCheck = FirebaseAppCheck.getInstance()
firebaseAppCheck.installAppCheckProviderFactory(
if (BuildConfig.DEBUG_MODE) {
Log.e(TAG, "DebugAppCheckProviderFactory ...")
DebugAppCheckProviderFactory.getInstance() // AVD 에서 적용시
//SafetyNetAppCheckProviderFactory.getInstance() // 폰에서 적용시
} else {
Log.e(TAG, "SafetyNetAppCheckProviderFactory ...")
// SafetyNetAppCheckProviderFactory.getInstance() // 폰에서 적용시
PlayIntegrityAppCheckProviderFactory.getInstance()
}
)

 


그다음은 firebase의 콘솔에서 앱 check 에 Play Integrity을 추가해 줍니다.


주의할 부분은 play integrity 등록 시 앱의 인증키 을 확인할 필요가 있습니다. 아시겠지만, play store에 등록된 sha256 키는 google에서 관리되기 때문에 playstore console의 앱 인증키를 찾아서 등록해 주어야 합니다. 


 


인증키 등록해 주기



이제 작업은 마무리되었습니다.  


 


이제 playstore에 수정된 앱을 등록해 보겠습니다.


 





오늘의 이야기


#스하리1000명프로젝트,
Às vezes é difícil conversar com trabalhadores estrangeiros, certo?
Fiz um aplicativo simples que ajuda! Você escreve na sua língua e os outros veem na deles.
Ele é traduzido automaticamente com base nas configurações.
Muito útil para bate-papos fáceis. Dê uma olhada quando tiver uma chance!
https://play.google.com/store/apps/details?id=com.billcoreatech.multichat416




오늘의 이야기

3일 차


3번째 날 다녔던 곳들에 대한 이야기입니다.  남는 게 시간이었던 날들이라... 3일 차가 되었습니다.  군데군데 가보지 못했던 곳을 가 보기로 했습니다. 먼저 생각난 것은 모노레일인데요. 울릉도에서 탈 수 있는 모노레일 2곳 중 하나가 있는 남서 모노레일을 찾아보기로 했습니다.  


 


저동에서 버스를 타고 남양에서 내렸습니다. 길을 걷다 보니 우산국 박물관 표지가 보입니다.  예전 울릉도에 있었던 우산국이라는 나라를 아시나요? 그곳에 대한 이야기들이 있는 박물관입니다.  새롭기는 합니다. 역사책에서나 보았던 것들을 이곳에서 보게 되니 말입니다.  그리고 그 옆에서 모노레일을 타고 일몰 전망대에 오릅니다.  추운 날이라 입장객이 없네요. 혼자 타고 올랐습니다.  박물관 2층에 가면 무료로 탈 수 있습니다.


남서 일몰 전망대 풍경



 


이곳의 풍광은 일몰때 다시 와서 봐야 할 까 봅니다. 그럴 수 있는 날이 있을지는 모르겠지만요. 아무튼 저기 바위가 하나 보입니다. 잘 보시면 뭔 가 보입니다.


남근이 보이시나요?



 


다음 버스까지 1시간가량 간격이 생겨서 남서 고분을 찾아보기로 했습니다. 무작정이요... 2km가량 산 쪽으로 갔는 데, 찾을 수 없었습니다. 정확한 표지판도 없었고, 그래서 초록창 검색을 해 보니 민가를 지나서 가야 한다는 말이 있고 비추하는 리뷰가 있어서 그곳 근처가 고분이라는 것만 알고 왔습니다. 


남서고분을 찾아 헤매다가



 


내려서 다음 목적지를 찾아 버스를 탔습니다. 이 때까지만 해도 원로 가수가 사신다는 현포에서 무언가를 찾아볼 요량이었습니다.  현포에서 내려 점심을 먹고 앞에 있는 카페에서 차를 마시며 다음 행선지를 찾아보았는 데, 이때 울릉군청 홈페이지에서 관음도 방문이 가능하다는 것을 알게 되었습니다.


울릉도의 카페라떼 는 다를까요?



 


맛난 라떼를 주신 카페 사진입니다. 시골 스러운 울릉도에서는 특별한 카페였습니다.  다른 풍광이 좋은 카페도 있기는 하겠지만. 현포에 가신다면 한번 들러 보세요. 바다를 보면 커피 한잔을 할 수 있습니다.


현포리 카페



 


관음도에 왔습니다. 이제 저 다리를 건너 관음도를 갈 겁니다.  첫날 왔을 때는 풍랑 때문에 갈 수 없었던 곳입니다. 이날은 다행히도 날씨가 좋아 통제를 하지 않네요.  이런 정보는 울릉군청 홈페이지에 실시간으로 나오니 꼭 참고하세요.


관음도 다리



 


다리에 오르기 전에 관음도에는 무엇이 있을까요?  코스 정보를 미리 봅니다. 


관음도 안내문



 


다리를 건너다가 멀리 죽도가 보이네요. 저 섬에는 가 볼 생각을 미쳐 하지 못했네요. 다음에 가게 되면 꼭 한번 가 보고 싶습니다.  다만, 겨울에는 배편이 없을 것 같기도 합니다.


다리에 가운데서 보는 죽도



 


다리 가운데 서서 주변 풍광을 둘러보았습니다.


다리위에서 보는 풍경



 


동백나무가 많은 숲을 지나 오르니 이런 의자가 있네요, 풀꽃 형상을 하고 있어서 사진을 찍어 보기에는 좋을 듯합니다. 둘이서 말이에요.


풀꽃 밴치



 


관음도 코스 중 하나에서 주변을 둘러보았습니다. 겨울 하늘과 바다가 마치 하나가 된 것 같이 파랐게 보입니다. 햇살이 좋아 하늘이 더 예쁘게 보입니다.


관음도 A 코스 풍경



 


저기에 삼선암이 보입니다.  사진으로는 구분이 잘 안 되기는 하는데,  위치를 보니 맞는 것 같습니다.


관음도 에서 바라 보는 풍광



 


어선 2척이 길을 나섭니다. 이 추운 겨울날에도 출어를 하는 것일까요?


출어를 하는 걸까요?



 


이번에는 관음도 오른쪽에서 바라보는 풍경입니다. 저기 죽도도 보이고요. 파란 하늘이 예쁘게 비칩니다.


관음도 B 코스 풍경



 


 


가까이에서 보이는 죽도입니다.  zoom으로 당겨 보면 해변 동굴도 보이기는 합니다.  날 좋은 여름이었다면 유람선을 타고 둘러보면 그것도 나름 좋을 것 같습니다. 하지만 이 때는 그 생각을 하지 못 했습니다.  정리를 하다 보니 그런 생각이 듭니다.


죽도



 


이제 다음 버스 시간에 맞게 내려가 볼 생각입니다.  50분 동안에 둘러보기에는 여유가 없습니다.  풍광을 즐길 생각이라면 그다음 버스 시간에 맞게 여유롭게 둘러보는 걸 추천드립니다.  차편이 있다면 시간에 구애는 없을 것 같습니다. 


저기 움막에서 잠시 쉬어 가라네요



 


이제 저기 보이는 저동 숙소를 향해 가 보겠습니다. 


저기 멀리 저동이 보입니다



 


 


조금 있으면 저기 보이는 일주도로를 따라 버스가 올 겁니다. 그 버스가 오기 전에 내려가 보아야 합니다.  가는 길에 동백나무 숲에서 사진도 한 장 찍어야 할 것 같고요. 올라오는 길에 찍어 보고 싶었던 다리 위에서의 사진도 한 장 남겨야 할 듯합니다. 


이제 나가 볼까요



 


내려가는 계단에 올라올 때와 다르게 느껴집니다. 내려가는 길은 조심하게 내려가세요. 저기 동백나무 옆에서 사진도 한장 찍고 내려가세요.


집으로 가는 계단 이에요



 


어느덧 저녁을 먹고 나니 보름달이 휘영청 하게 떠 올랐습니다. (마침 이날이 보름이네요.)  저기 저동항 촛대 바위가 있고 포구에 켜져 있는 불빛 들과 잘 어우러집니다. 


저동 촛대 바위와 보름달



 


 


이제 3일간의 울릉도 여행을 마치고 집으로 가야 합니다.  며칠 동안의 휴식에서 얻은 힘으로 다시 힘을 내어 삶을 걸어 봅니다.


 


3일간의 여행에서 느낀 건 여행은 사전 준비를 해야 합니다.  주변 관광지 정보, 교통편, 날씨의 변화에 따른 일정 정보 등등


 


이 여행은 무작정 가보고 싶다는 의지 하나로 출발하는 여행이었고,  사전 정보는 하나도 없이 출발한 여행입니다. 그래서 두서없는 여행이 되기도 했지만, 나름 얻어가는 것도 있는 여행이 된 것 같습니다. 


 


겨울철 울릉도를 가신다면 


 


1. 가급적 큰 배편을 이용하세요  저처럼... 그래야 멀미를 덜 합니다.  쾌속선을 타는 건 날씨 좋은 날에만 추천해 드립니다. 풍랑에 출렁거리니까요. 


 


2. 대형 페리는 포항에서만 운행을 하는 듯 하니, 가실 때 코레일 연계 편을 찾아보시면 조금 저렴할 수 도 있습니다.  그리고 23시 50분에 출항하는 배 시간에 맞게 포항역에 내리면 셔틀이 다닙니다. 그럼 시간을 허비하지 않을 수 있습니다.


 


3. 울릉도에서는 대중교통을 이용하는 건 여유로울 때만 추천해 드립니다. 배차간격이 길어요.  버스들은 일주도로를 타고 다니기 때문에 한쪽 방향으로만 일정을 계획하세요.  그리고 중간에 있는 지선들은 봉래폭포나 나리분지를 다녀올 때, 그리고 석포를 갈 때만 중간 기착지를 찾아서 이용하시면 됩니다.


 


4. 렌터카를 이용하신다면 고바위(?) 운전에 자신이 있을 때만 추천드립니다.  아직도 일주도로에 공사 구간이 많고 주요 도로는 고도의 차이가 심하며 편도 1차로 도로 이기 때문에 승용차로 다니는 건 부담이 될 듯합니다. 그래도 편하기는 하겠지만요.  (일주도로 공사는 겨울철에만 편중되어 있을 수 도 있습니다.)


 


5. 숙소는 예약 앱에서 예약을 하셔도 그렇게 나쁠 것 같지는 않습니다. 편차는 있을 수 있지만요. 제가 묵었던 울릉 위드 U는 그렇게 나쁘지 않았습니다. 도심에 있는 모텔들과 비교해서는...(다음에 1인실도 한번 가 보면 어떨지???)


 


 





오늘의 이야기

2일 차


 


이날의 원래 목표 지역은 나리 분지 정도만 다녀오는 것으로 하였습니다.  숙소인 저동항에서 천부까지 버스로 이동하고 천부에서 나리분지를 가는 지선버스 3번을 타기로 하였습니다. 시간을 잘 맞추어 가면 대기 시간이 20분 이내로 이동이 가능합니다. 


 


나리 분지에 내려 주변을 둘러 보았습니다. 


나리분지를 바라보다



 


나리 분지에서 볼 수 있는 투막집 입니다.  안쪽에 방들과 부엌이 구성되어 있고 외부에 다시 억새를 꼬아 바람을 막을 수 있도록 구성된 옛 가옥의 형태입니다. 바람이 거세게 불어도 안애 들어가 있으면 따뜻한 겨울을 지낼 수 있을 것 같은 옛날 선조들의 지혜를 볼 수 있는 구조입니다.


투막집



표지판을 읽어 보면 예전에는 어느 개인의 소유였으나 1937년에 울릉군에서 매입해 관리하고 있다고 합니다.


투막집



 


다른 형태의 가옥 구조인데요. 이번에는 나무와 돌을 이용해서 만들어 낸 가옥 형태입니다. 구조는 투막집과 유사하더라고요. 외부에 이중창을 한 것처럼 한 번 더 집을 둘러싼 모습이 말입니다.


너와집



 


이날 처음 세웠던 목표인 나리분지 주변을 둘러보는 코스를 찾아봅니다.  안내판을 보니 한쪽으로 성인봉 가는 코스가 보입니다.  그래서 목표에 성인봉을 가 보기로 했습니다.  대강 코스는 5시간 30분 이내로 성인봉 등반을 할 수 있다고 합니다.  점심을 먹고 난 시간이니 일몰 시간까지는 내려갈 수 있을 것으로 생각하고 출발했습니다.


알봉 둘레길 가이드



 


용출소가 있다는 안내문이 있네요.  이곳에서 솟아나는 물줄기를 이용해서 식수원과 수력 발전을 할 수 있다고 합니다. 드려다 보고 싶기는 했지만, 아래 사진처럼 출입을 통제합니다. 식수원이니 들어가 보는 건 포기하고 멀리서(?) 사진이라도 남겨 둡니다.


용출수 안내문


저멀리 용출수가 있기는 하나 통제 구역이라



 


 


알봉 둘레길은 총 6km가량 되어 보입니다. 그 길을 걷다 보면 성인봉으로 가는 갈림길이 나올 겁니다. 참... 나리 분지 버스 내리는 곳에서도 성인봉 가는 길 안내 표지판을 보기는 했습니다.  그냥 걷다 보니 이렇게 된 것이니 참고하세요.


알봉 둘레길을 걸어 봅니다.



 


둘레길을 따라 걷다 보니 어느 갈림길에서 만난 출렁다리 입니다. 이 다리를 건너 가면 깃대봉으로 가서 내려가는 길로 접어 들 수 도 있습니다.  추산리 방향으로 내려 가실 요량 이라면 깃대봉을 거쳐 내려 갈 수 있습니다.  이 출렁 다리 아래에 움푹 파인 험지가 있습니다. 바람이 불어오다 하늘로 쏟아 오르는 느낌이라 바람 소리가 다르게 들립니다.


깃대봉으로 가는 갈림길에서 만난 출렁 다리



 


출렁다리 옆으로 펼쳐진 평원(?)입니다. 나리 분지와 또 다른 작은 분지입니다. 이곳에서는 어떤 작물이 자라났는지는 모르겠지만, 중간에 허수아비들이 남아 있어서 약간은 썰렁한 느낌이 들었습니다.  겨울은 찬 기운이 여기저기에 넘쳐 납니다.


분지안의 평원 이곳에는 무엇이 자랐을 까요?



 


계속해서 걸어 봅니다.


성인봉으로 가는 길



 


산길 어딘가에서 다시 투막집을 만났습니다.  나리 분지에서 봤던 것보다 큽니다.  다만 안내문의 내용은 같은 내용으로 되어 있던 라구요. 


둘레길에서 만난 투막집



 


이제부터 성인봉으로 올라 봅니다.  정상까지 2.15km라는 데, 뭐 이 정도쯤이야 라고 생각하시면 힘들지 모릅니다. 마음에 준비를 하시고 올라가세요.


성인봉으로 올라 볼꼐요



 


깊은 산(?)이라 쓰러진 고목이 여러 모양으로 보입니다.   산지에 있는 나무들 종류가 뭔지 궁금하기는 합니다.  원시림이 아직 남아 있어 보호구역이라는 표지판도 만날 수 있었고, 이런 숲이 화마로 살아진다면 마음이 정말 아플 것 같다는 생각을 많이 했습니다.  겨울만 되면 산불이 나는 강원도 지역을 생각하면서 말입니다.  


쓰러진 나무가 무엇과 닮았나요?



 


이제 1.36km가 남았다네요. 여기서부터는 데크 계단을 올라야 합니다. 산길을 걷는 건 아니기에 이 길을 만들어 주신 분들께 감사의 마음을 담아 보내면서... 걸어 봅니다. 저질 체력이 한 계단 한 계단 숨이 몰아 칩니다. 그래도 이제 돌아가기에는 너무 늦은 듯(?) 하니 목표를 향해 열심히 걸어 보겠습니다.


여기서 부터는 한동안 데크 계단을 오릅니다.



 


산을 오르는 재미(?)는 이런 데서 옵니다. 내려다 보이는 알봉은 저 멀리에 있고, 지나온 길들이 한눈에 들어 옵니다.  겨울 하늘도 맑게 보이구요. 섬나라 인지라 돌아 보면 바다가 보이니 저 멀리 보이는 수평선도 한 눈에 담아 볼 수 있습니다.


저아래가 알봉 이라고 하네요



 


중간중간 보이는 나무들이 특이합니다. 어떻게 저런 모습을 하게 되었는지 알 수는 없지만 특별한 모습을 하고 있어서 다시 어디에서 저런 나무들을 볼 수 있을 까요?


특이한 나무들



 


드디어 올랐습니다. 해발 986m 성인봉에 말입니다. 산을 오르는 마음은 해발이 중요하지는 않습니다. ㅋ~  


성인봉 해발 986.5m



 


주변 풍광을 한눈에 담아 봅니다. 겨울산이 다 그렇기는 하겠지만, 춥습니다. 산행을 생각했다면 따스하게 입고 가시길 바랄게요. 오르다 보면 땀이 나서 덥기도 하겠지만 그래도 산은 산입니다. 


성인봉 풍광



 


이제 내려가 보겠습니다.  그런데 이때까지는 몰랐습니다.  내가 오늘 오른 길이 일반적인 등산 코스와는 반대였다는 것을 요. 오르는 길에 데크 계단이 많아서 좋았는 데, 내려가는 코스를 대원사나 중계소 방향으로 삼았을 때 어떤 고난(?)이 오는지는 길을 걸어 봐야 알 수 있습니다.


내려가는 길



 


특히 겨울에는 고립되지 않도록 통제되는 코스가 있으니 꼭 알고 출발해야 합니다. 혹시나 그렇지 않았더라도 중간에 만나는 통제 안내판은 꼭 지켜야 합니다. 그래야 일몰 전에 하산을 마무리할 수 있을 테니까요. 산속에서 고립되면 험난 할 수 있습니다.  성인봉을 오르는 코스도 통제 구간이 존재합니다. 꼭 알고 가세요.


겨울산행은 통제 되는 길은 피해 가세요



 


 


저 멀리 사동항이 보입니다. 저 끝으로 25년 이후에는 공항이 들어선다고 하니, 그때는 새로운 모습이 보일 테지요. 그때도 기회가 되면 다시 가보고 싶습니다. 


사동항이 보입니다.



 


하산한 코스는 중계소 방향으로 걷다가 안평전 방향으로 내려왔습니다. 제일 빠르게 민가와 가까워질 수 있는 코스인 것은 많습니다만, 내려가는 길이 데크 계단은 볼 수 없고 전부다 험로입니다. 그리고 급한 경사 이기 때문에 그 속에서도 꼬불 꼬불 걸어야 합니다. 마치 한계령 고객을 넘어가는 꼬불 꼬불 길처럼 말입니다. 또한 불편한 것은 안평전 쪽에서는 교통편이 멀리 있다는 것입니다. 이 코스를 가고자 하는 경우는 반드시 이동할 수 있는 방법을 마련하고 가시길 권해 드립니다.  겨울철이 아니었다면 대원사 쪽으로 가는 것을 추천하기보다...


 


성인봉을 가시려면 출발하는 곳을 대원사 등으로 해서 올라가시고 내려가는 방향을 나리분지 쪽으로 선택하시는 것을 권해 드립니다.  그래야 내려오는 길이 험하지 않아서 좋을 듯합니다.  아무튼 우여곡절 끝에 숙소가 있는 저동항 약국 앞에 왔습니다.  마침 그날따라 달이 밝게 비칩니다. 저 멀리 촛대 바위와 달이 출렁거립니다.


저동항에서 보는 보름달



 


이것으로 이튿날의 일정은 끝났습니다.   꼭 하고 싶은 말은 성인봉 등산은 대원사 등 다른 방향에서 오르시고, 내려가는 코스를 나리분지로 하시라는 말을 하고 싶습니다. 산행이 끝나고 나서 나리 분지에 있는 몇 안 되는 식당에서 산채 비빔밥을 먹고 버스를 타고 귀가(?)를 하는 코스가 무난해 보입니다.





오늘의 이야기

SafetyNet Attenstation API https://developer.android.com/training/safetynet/attestation   SafetyNet Attestation API  |  Android Developers S...