최근 OpenClaw 라는 AI 툴이 등장해 인기를 끌고 있다. 나도 혹시 쓸모가 있을까 싶어 급히 Mac Mini를 주문하고 이 유행에 동참해 보았다. 사실 나중에 알고 보니 Mac에서만 동작한다는 건 이미 업데이트된 정보였는데, 역시 사람은 공부를 해야 한다. 😅 설치는 쉬웠지만, 설정은 만만치 않았다 OpenClaw 설치 자체는 어렵지 않았다. 문제는 설정 과정이었다. OpenClaw가 사용할 LLM 서비스 API Key 가 필요했고, 인터넷 검색을 시키려면 Brave API 도 필요했다. 처음에는 내가 이미 구독 중인 Claude MAX 요금제를 그대로 활용하려 했다. 그런데 Anthropic 측에서 이를 약관 위반으로 판단해 막아둔 상태였고, 내가 시도하던 시점에는 사용이 불가능했다. 그래서 차선책으로 Gemini 무료 티어 를 기본 LLM으로 설정했다. 그런데 작업 하나를 요청했을 뿐인데 바로 API 사용량 초과가 떴다. 내가 사용하기 얼마 전에 분당 사용량 제한 정책이 도입된 모양이었다. 어쩔 수 없이 Gemini를 유료로 전환하고, 가장 저렴한 모델을 적용했다. 원격에서 작업을 지시하기 위해 텔레그램 봇 까지 설정을 마쳤다. 잠깐씩 틈틈이 하다 보니 여기까지 오는 데만 며칠이 걸렸다. 그때 그 시절, 리눅스를 설치하던 밤 여기까지 하고 나니 문득 옛 기억이 떠올랐다. 1990년대 말에서 2000년대 초, 리눅스 배포판이 막 알려지던 시절이었다. 어렵게 배포판을 구해서 밤새 설치하고 설정을 마치면… "이제 뭘 해야 하지?" 하며 컴퓨터 전원을 끄던 그때 말이다. OpenClaw 설정을 끝낸 지금, 딱 그 느낌이었다. OpenClaw + Claude Code, 합체를 시도하다 이 녀석을 무엇에 쓸까 고민하다가, OpenClaw에서 Gemini 대신 Claude Code 에게 실제 작업을 맡기는 구조를 시도해 보기로 했다. 구상은 이랬다. 내가 "제미나이에 대해서 검색...
Handshake error in client (OS Error: CERTIFICATE_VERIFY_FAILED: unable to get local issuer certificate(handshake.cc:393))
현재 flutter로 개발 중인 프로젝트에서 REST API 통신을 하는데, 안드로이드 단말에서 CERTIFICATE_VERIFY_FAILED 오류가 발생하면서 서버와 통신이 이뤄지지 않는 문제가 발생하였습니다. 현재 상황은 apache 서버에 php를 이용하여 api를 만들었고, 운영서버에는 SSL 이 적용되어 있습니다. SSL 인증서는 공인 인증 기관으로 부터 발급된 인증서를 사용하고 있습니다. iOS에서는 문제없이 서버와 통신이 이뤄지지만 안드로이드에서는 오류가 발생합니다. CERTIFICATE_VERIFY_FAILED: unable to get local issuer certificate "CERTIFICATE_VERIFY_FAILED: unable to get local issuer certificate"로 검색을 하면 공인 기관에서 발급하지 않고 자체적으로 인증서를 발급받아서 사용하는 경우에 문제 해결 방법들이 검색됩니다. 앱 내부에서만 사용하는 서버인 경우에 자체 발급된 인증서를 많이 쓰는 모양입니다. 자체 인증서로 인한 문제를 해결하는 방법은 두가지 정도가 있는 듯 합니다. 1. 인증서 검증을 하지 않는 방법 Dio dio = new Dio(); (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (HttpClient client) { client.badCertificateCallback = (X509Certificate cert, String host, int port) = true; return client; }; 2. 인증서를 내장하는 방법 ByteData data = await rootBundle.load('assets/raw/certificate.pem'); SecurityContext context = SecurityContext.defaultConte...