기본 콘텐츠로 건너뛰기

5월, 2022의 게시물 표시

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

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

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 쪽 코드가 ...