기본 콘텐츠로 건너뛰기

7월, 2022의 게시물 표시

AI와 함께 춤을.. 아니, 코딩을.. (4) - 모노레포로 개발 환경 통합하기

바이브 코딩을 하는 가장 큰 이유는 아마도 개발 생산성 향상 일 것이다. 그래서인지 바이브 코딩을 하면서 자연스럽게 "어떻게 하면 효율을 더 높일 수 있을까?"를 고민하게 된다. 직접 코드를 작성하지 않으니, 그만큼 남는 시간을 프로세스 개선에 투자하게 되는 셈이다. 지난 포스팅에서 앱과 서버를 함께 개발할 때 명세 문서를 작성하고, 이를 기반으로 AI 에이전트에게 개발을 지시하는 방식을 소개했었다. 오늘은 이 방식을 실제로 사용하면서 겪었던 불편함과, 그것을 어떻게 개선했는지 이야기해보려 한다. 기존 개발 환경 앱에 기능을 추가하다 보니 서비스가 하나가 아니라 여러 개가 되었다. 당시 내 개발 환경을 간단히 그려보면 이런 구조였다. 개발 Macbook └─ 앱 프로젝트/ ├─ docs/ └─ src/ Ubuntu 서버 ├─ server1 프로젝트/ │ ├─ docs/ │ └─ src/ └─ server2 프로젝트/ ├─ docs/ └─ src/ iOS 앱 개발은 어쩔 수 없이 Mac에서 해야 했다. 서버는 DB도 돌려야 하고, 실제 운영 환경과 동일한 조건에서 개발하는 게 나을 것 같아 Ubuntu에서 진행했다. Macbook 용량도 부족한데 DB 서버를 계속 띄워놓기도 부담스러웠고, 초기에 API 서버가 PHP + Apache 조합이었던 것도 분리한 이유 중 하나였다. 기존 개발 프로세스 새로운 기능을 추가하거나 수정할 때는 이런 순서로 작업했다. VS Code에서 앱 프로젝트를 열고, Claude를 이용해 명세를 작성 한다. 작성된 명세를 구현이 필요한 각 프로젝트의 docs 폴더에 복사 한다. VS Code에서 각 프로젝트를 연다. 서버의 경우 VS Code의 원격 연결을 이용한다. 각 프로젝트에서 Claude를 실행하고, docs 폴더의 명세를 기반으로 개발을 지시 한다. 문제점 문제...

개발자를 확인할 수 없기 때문에 '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 업데이트 하면 또 발생할 수 있는 문제라서 그때 어렴풋이 기억이 나도록 흔적을 남깁니다.