기본 콘텐츠로 건너뛰기

8월, 2022의 게시물 표시

AI와 함께 춤을.. 아니, 코딩을..

나는 오랫동안 개발을 업으로 하고 있다. 주로 소규모 기업에서 거의 1인 개발을 해왔다. 다른 개발자가 있더라도 각자 자기 일을 하는 그런 회사였다. 그러다 보니 여러 명이 하나의 프로젝트를 같이 수행하는 형태의 일이 별로 익숙하지 않다. 혼자 개발하고 테스트하다 보니, 체계화된 문서화도 나에겐 익숙하지 않다. 장기간 나만의 룰로 관습적으로 개발을 해왔다. 매번 새로 입사한 개발자 AI를 통해 코딩을 시작한 초기에는 에이전트에게 내가 지금 하고자 하는 일과 현재 상황을 전달하는 방법에 집중할 수밖에 없었다. AI 에이전트와 일하는 것은 매번 새로 입사한 개발자와 일하는 상황과 같다고 느꼈다. 아무것도 모르는 개발자에게 전후 사정 설명 없이 "이걸 해줘" 하면, 원하는 대로 동작하는 것 같지만 제대로 동작하지 않는 결과물을 만들어 내곤 했다. 그리고 이걸 수정하기 위해 대화가 길어지면 에이전트가 맥락을 잃어버리는 경우가 빈번히 발생했다. 문서화라는 해답 그래서 선택한 방법이 문서화였다. 내가 개발하고자 하는 기능을 문서로 정리하고, 이 문서를 기반으로 에이전트에게 개발을 요청하는 방식이다. 비슷한 시기에 AI를 이용한 코딩 관련 콘텐츠를 보면 문서화 이야기가 많았고, 그 시기에 아마존에서 출시한 Kiro라는 IDE는 이런 부분을 아예 내장하기까지 했다. 이야기했듯이 나는 문서화에 익숙하지 않다. 그래서 개발하고자 하는 기능을 문서로 정리하는 작업도 나에게는 그렇게 만만한 작업이 아니었다. 그래서 선택한 방법은 "문서화도 에이전트에게 시키자" 였다. 에이전트와 기획 회의하기 새로운 기능 개발이 필요하면 기획 회의를 에이전트와 진행한다. 보통 대화는 이렇게 시작한다. "지금부터 이런이런 기능을 개발하기 위한 기획 문서를 작성할 예정이다. 아직 코딩을 하지는 않을 것이다." 왜 "아직 코딩을 하지는 않을 것이다"라고 붙였을까 궁금할 텐데, 개발용 에이전트들은...

flutter 라이브러리 사용하지 않고 iOS native 코드에서 flutter의 assets 접근하기

flutter로 개발중인 앱을 앱스토어 배포를 위해서 준비중에 아래와 같은 오류를 접하게 되었습니다. App Store Connect Operation Error ITMS-90205: Invalid Bundle. The bundle at 'App.app/PlugIns/AppExtension.appex' contains disallowed nested bundles. App Store Connect Operation Error ITMS-90206: Invalid Bundle. The bundle at 'App.app/PlugIns/AppExtension.appex' contains disallowed file 'Frameworks'.   App Extension 모듈이 Frameworks 폴더를 내포하고 있는 경우에 발생하는 오류 입니다. App Extension 모듈에서 내포하고 있는 Frameworks를 살펴보니 Flutter.framework와 App.framework 였습니다. 두 개의 framework을 참조하는 이유는 App Extension의 구현 자체는 swift로 구현되어 있기는 하지만, flutter를 이용해서 구현된 App과 리소스를 공유하는 부분이 있는데 이 리소스가 flutter의 assets에 포함되어 있어서 참조가 발생했습니다. App Extension에서 flutter의 assets에 등록된 파일을 읽기 위해서 아래와 같은 방식으로 구현되었습니다. 참고 : https://docs.flutter.dev/development/ui/assets-and-images#loading-flutter-assets-in-ios let flutterEngine = FlutterEngine(name: "WidgetViewController") flutterEngine.run() let flutterViewCont...