9. AI랑 행복 개발하기
나는 사실 AI 를 매우 잘쓰는 편에 속하는 사람은 아니다. 그럼에도 불구하고 요즘 AI 랑 어떻게하면 행복하게 개발할지 많이 고민해봤고,,나름의 타협점을 찾아서 요즘 AI 랑 행복개발중임
1. AI 에게 시킬 일과 아닐 일을 명확하게 구분하기
- 내가 할 일
- 아키텍쳐 설계
- 개발 관습이나 멘탈모델 정립
- 내가 만드는 제품의 목적/우선순위 정립하고 작업 순서 정하기
- 예시
- 내가 만드는 어떤 피쳐는 어떤 url로 구성될 것이다.
- 어떤 기술 스텍을 쓸 거다.
- 여기에서 api caller 는 어디에 둘 거다.
- 각 api caller들은 렌더링 서스펜드가 필요한 작업인지 아닌지.
- 컴포넌트나 훅을 만들 때, 응집도 vs 재사용성 중에 어떤걸 더 중요시 할 것인지
- 특정 컴포넌트는 디자인 시스템을 사용하지 않는데 그 이유는 무엇인지
- 어떤 데이터를 수집할 것 인지.
- 즉... AI 가 알 수 없는 더 넓은 맥락들을 알아야만 더 잘 할수 있는 일들이 포함됨.
- 주로 코드베이스보다는 제품/협업적인 맥락이 필요하다.
- AI 에게 시킬 일
- 위의 일들을 행하기 위한 모든 짜치는 작업들.
- 어떤 기능을 하는 모듈 만들기.
- 보일러플레이트 만들기
- 암튼 이 정도는 내가 안해도 되겠는데?싶은 류의 모든 작업들.
- 위의 일들을 행하기 위한 모든 짜치는 작업들.
- 이걸 구분해야하는 이유는 아래와 같다.
- 내가 할 일에 해당하는 것들을 내가 하지않은 채로, AI와 개발을 시작하면 자연스럽게 AI가 결정하는 부분이 많아진다.
- 그러면 특정한 의사결정이 AI에 의한것인지 정말 내 생각인지 구분이 어려워진다.
- 결국 그 의사결정을 책임져야할 사람은 나다. 그 때, 내 의사결정의 이유가 'AI가 이렇게 하라고 했어요~'가 되는 참사가 일어남.
- 이게 일회성 코드라면 상관없겠지만, 생명주기가 아주 긴 제품이 되어버린다면 이건 내가 의도적으로 빚을 진 기술 부채도 아닌, 그냥 나쁜 코드가 되어버리는 것이다.
- 그리고 생명주기가 긴 제품이 될지 아닐지는 예측하기 어렵다. 그리고 이건 AI 가 해줄 일이 아니라, 메이커들이 하는 일이다.
2. 내가 할 일을 문서화하기
- 1Pager, 미니테크스펙 같은 형태로 위에서 인간이 하는 일을 정리해둔다.
- 머리로만 생각해도 상관없겠지만..글로 정리하는 이유는 아래와 같음.
- 글로 정리하고 -> 이걸 AI 에게 던져주면 AI 가 더 잘 일한다.
- 글로 정리한걸 AI 에게 또는 동료에게 리뷰해달라고 요청해 볼 수도 있음.
- 글로 작성하는 과정에서 많은게 떠오를 수도 있다. 가령, 코드에서의 엣지케이스나 설계의 허점. 혹은 제품 자체로서의 엣지케이스까지도..
이 정도다.. AI가 들어옴에 따라 개발하면서 바뀐게 정말 많고 부정적인 시각이나 개발자의 미래에 대해 냉소적인 시각도 많지만, 나는 긍정적인 입장이다.
- 개인적으로 개발하면서 스트레스가 많이 줄었다
- 모르는 것을 검색하는데에 소요하는 시간이 정말 많이 줄었다. 인도아저씨 유튜브 강의나 스택플로우를 안본지 n년 된듯..
- 단순 구현은 AI에게 던지면 된다.
- 고로 내 뇌는 더 중요한 의사결정이나 생각을 하는데 더 잘 쓰일 수 있게 되었다.
- 이런건 AI가 할 수 있을까?
- 중요한 의사결정 / 생각은 단순히 코드레벨에서의 그것뿐만 아니라, 그 이상이 될 수도 있음.
- 설계 -> 구현의 흐름이 보다 가볍게 가능해졌다.
설계는 인간이, 구현은 AI가가 가능해짐에 따라서 프론트엔드에서도 설계 먼저, 구현 다음이 가능해졌다.- 나는 개인적으로 AI 가 없었을 때 이게 되게 어려웠던 이유는 구현에의 불확실성과 시간 부족때문이라고 생각한다. 특히나 시간 부족이 가장 큰 이유아니었을까?
- 근데 AI 덕분에 개발시간이 단축됨에 따라서 설계 -> 구현의 흐름이 자연스럽게 가능해졌다.