기본 콘텐츠로 건너뛰기

AI와 함께 춤을... (1) - OpenClaw 체험기, 결국 돌아온 Claude

최근 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 에게 실제 작업을 맡기는 구조를 시도해 보기로 했다. 구상은 이랬다. 내가 "제미나이에 대해서 검색...

개발자를 확인할 수 없기 때문에 'iproxy'을 열 수 없습니다.

개발자를 확인할 수 없기 때문에 'iproxy'을 열 수 없습니다. 얼마전 iOS 버전 개발을 위해서 macOS / XCode / flutter 버전을 한꺼번에 변경한 일이 있었습니다. 그러는 과정에서  '개발자를 확인할 수 없기 때문에 'iproxy'을 열 수 없습니다.'라는 오류를 접하게 되었습니다. 구글에서 flutter를 배포하면서 애플에서 요구하는 배포 프로세스를 거치지 않다보니 발생하는 문제라고 합니다. flutter 외에 다른 앱에서 발생할 수 있는 문제이기도 하고, 개발환경을 새로 구성해야 하는 상황에서 또 접할 문제라서 기억 차원에서 간략히 메모를 남깁니다. 터미널에서 아래 명령어를 실행해서 macOS의 인증서 검사 절차에서 무시되도록 하면 됩니다. sudo xattr -d com.apple.quarantine /FLUTTER_PATH/bin/cache/artifacts/usbmuxd/iproxy

Android Emulator closed because internal error:

  최근에 안드로이드 버전에 개발에 충실(?)했더니 iOS 개발 환경에 대한 관리를 소홀히 했었는데, iOS 버전 업데이트를 위해서 작업을 시작했더니, XCode, macOS 업데이트 등을 해야만 하는 상황이 다시 찾아왔습니다. XCode, macOS 업데이트를 하고 여러가지 추가적인 작업들을 어찌어찌  해줘서 iOS 개발 환경을 안정화시켰더니, 안드로이드 개발환경에서 애뮬레이터를 종료하면 아래와 같은 오류 리포트가 계속 출력되네요.. Android Emulator closed because internal error: emuglConfig_init: blacklisted=0 has_guest_renderer=1 아마 macOS 업데이트하면서 관련 드라이버들이 변경되면서 발생하는 문제로 보입니다. 해결은 Android Studio -> Preference -> Appearance & Behavior -> System Settings -> Android SDK 에서 SDK Tools 중 Android SDK Platform-Tools 최신 버전으로 업데이트해서 해결했습니다. 오류 내용을 구글에서 검색을 하면 그래픽 드라이버 업데이트, AVD를 코멘드로 실행하면서 -gpu host 옵션 주는 것 등이 있었으나 저에게는 해당사항이 없었습니다. 다음에 OS 업데이트 하면 또 발생할 수 있는 문제라서 그때 어렴풋이 기억이 나도록 흔적을 남깁니다.

Java, Android, Gradle.. 익숙해지지 않는 개발 환경...

 나는 여러 해 동안 iOS/안드로이드 개발을 해오고 있다. iOS/안드로이드 개발하기 이전에는 MFC 기반의 개발을 다년간 했었고, 일로 인해서 VB, ASP, JAVA, JSP 등도 약간씩 하기도 했었습니다. MFC 개발 환경에 익숙했어서 인지, 늙어서 그런지, 게을러서 그런지 안드로이드 개발에서 아직도 적응이 되지 않는 부분이 Gradle 기반으로 하는 빌드 환경 구성 부분은 아직도 익숙해지지 못했습니다. 게을러서이겠지요. 예전에 MFC 기반으로 개발하던 시절에 비해서 안드로이드 개발 환경은 변화가 비교적 자주 발생하고, SDK 버전 변경시, Android Studio 업데이트 시 어쩔 수 없이 뭔가를 해줘야하는 상황이 발생하는데 그때 그때 찾아보고 대응하는 식으로 하다보니 문제를 키우는게 아닌가 싶기도 합니다. 그리고, 현업에서 개발환경에 변화를 줬다가 기대치 않은 문제가 발생하기도 하고, 급히 처리해야 하는 고객 요구 사항을 제때 대응하지 못하는 문제가 발생할 수 있어서, 반드시 업데이트가 필요한 상황이 아니면 개발 환경은 건드리지 않는 것을 철칙으로 삼아오다보니 새로운 개발환경 적응에 늦게 따라갈 수 밖에 없기도 했습니다. 최근에 flutter 기반으로 개발을 하고 있다보니 내 입장에선 좀 더 복잡해진것 같은데, 서론이 너무 길어진것 같으니 본론으로 들어가도록 하겠습니다. 얼마전부터 개발을 하면서 run 명령을 내리면 에러가 한번 발생하고 다시 실행하면 실행이되는 문제가 발생하기 시작했습니다. 예를 들어서 Log.d(TAG, ""); 와 같은 오류가 없는 라인을 추가 했음에도 오류가 한번 발생하고 다시 실행하는 정상 실행되는 이해할 수 없는 문제였습니다. 처음 문제가 발생했던 시점에는 처리해야할 급한 일들이 산재해 있고, flutter는 hot reload라는 기능을 통해서 빌드 없이(?) 바로 수정 사항이 반영되기 때문에 일을 하는데 크게 불편하지 않은 상황이어서 무시하고 진행을 했습니다. 그런데 최근에 flutter 쪽 코드가 ...

FlutterJNI.java line 116 io.flutter.embedding.engine.FlutterJNI.loadLibrary

 회사에서 운영중인 앱을 flutter로 개발 환경을 변경하고, 스토어에 배포를 한 이후에 몰려오는 문제로 폭풍같은 기간을 보내고 있는데, 건수는 많지 않으나 유독 앱이 실행하지 않는다라는 고객 불만이 많았습니다. crashlytics에 아래와 같은 비정상 종료 로그가 그 불만의 원인으로 추정되었습니다. Fatal Exception: java.lang.RuntimeException Unable to start activity ComponentInfo{xxx.xxxxxxxxx.xxxxxxxxxxxx/xxx.xxxxxxxxx.xxxxxxxxxxxx.MainActivity}: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/xxx.xxxxxxxxx.xxxxxxxxxxxx-K_hBqtMu3gBO-zaDGjmAZA==/base.apk", zip file "/data/app/xxx.xxxxxxxxx.xxxxxxxxxxxx-K_hBqtMu3gBO-zaDGjmAZA==/split_config.xxxhdpi.apk"],nativeLibraryDirectories=[/data/app/xxx.xxxxxxxxx.xxxxxxxxxxxx-K_hBqtMu3gBO-zaDGjmAZA==/lib/arm64, /system/lib64, /hw_product/lib64, /system/product/lib64]]] couldn't find "libflutter.so" 오류는 간단하게도 libflutter.so 파일을 찾을 수 없다라는 것입니다. 오류 내용 만으로는 앱이 동작하지 않는 것이 매우 당연한 것입니다. 그런데 왜 libflutter.so가 빠져 있고, 일부 사용자만 문제가 발생하는 것일...