누워서 SNS를 보고 있다보면 초등학생 아이가 게임을 만들었다.. 등의 이야기를 심심치 않게 볼 수 있다.
처음엔 회의적으로 바라보았다. 어차피 AI 로 개발하면 유지보수도 안 되고, 오류 터지면 누가 고치는 거야?
날이 지날 수록 영상으로 올라오는 개발 결과의 퀄리티가 점점 높아지고..
같이 일하던 동료가 모든 도메인을 하루만에 3레이어를 헥사고날로 다 바꿔서 온 날
이게 강한 트리거로 작동했다.
음.. 나도 웹에서 물어만보지말고 요즘 유행한다는 커서를 써볼까?
첫 커서 사용은 되게 불만족스러웠다.
코드가 중간에서 끊기고, 코드의 전체적인 맥락을 이해하지 못하며
이미 앞단에서 Valid 에서 다 거쳐서 올라왔는데 서비스단에서 다시 한번 쓰잘데기 없는 검증 로직을 끼워놓거나
객체 지향언어에서 객체지향성을 무시하며 코드를 작성하는 등의 문제가 많았다.
그럴 때마다 하나하나 다시 작성하거나 명령을 내리는 등의 작업을 반복해야 했다.
오히려 작업 소요 시간이 더욱 느려진 느낌..
그때는 모델의 버전도 많이 낮아 응답이 안 좋았을 것이다.
나는 작업 지시를 정말 구체적으로 작성해서 프롬프트를 완성하는 것보다, 내가 코드를 짜는 게 더 빨랐었다.
그런데 모델이 업데이트 되고, 응답 속도도 좋아지고, 자체적으로 히스토리를 기억해서 내가 어떤 방식으로 명령 지시를 내리는지, 어떤 코드 스타일을 좋아하는지를 파악을 하기 시작했다.
참고로 커서는 내 스타일이 아니여서 결제 해지했다.
이후부터는 작업 소요시간이 확 줄기 시작하는데, 기존엔 개발 소요시간이 공부까지 합해서 2~3일 만에 만들었다면
현재는 2~3 시간만에 내가 모르는 분야의 코드도 작성할 수 있게 됐다.
물론 이게 “내가 개발을 잘하게 됐다”라는 말은 아니다.
정확히 말하면 내가 잘하는 영역과 못하는 영역의 경계가 흐려지기 시작했다는 말이 맞다.
예전엔 새로운 기술 스택을 배우려면 공식 문서 → 블로그 → 샘플 코드 → 삽질이라는 긴 루틴을 거쳤다.
하지만 이제는 내 의도를 정확히 설명하기만 하면, 내가 모르는 생태계의 라이브러리 구조나 베스트 프랙티스까지 알아서 챙겨주는 도우미가 생긴 것이다.
그래서 개발 순서가 완전히 바뀌었다.
예전:
- 개념 공부
- 구현
- 테스트
- 리팩토링
지금:
- 내가 만들고 싶은 기능의 목적과 제약을 설명
- 바로 실행 가능한 코드 생성
- 실제로 돌려보고 수정
- 부족한 개념을 역으로 공부 (필요한 부분만)
이 과정에서 재밌는 변화가 생겼다.
예전에는 코드를 짤 때 “내가 알고 있는 테크트리 안에서 해결책을 찾아야 했던” 반면,
지금은 “제약과 목표만 정하고, 구현 방법은 모델에게 던지는” 방식으로 바뀌었다.
즉, 문제 해결 방식이 ‘지식 기반’에서 ‘의도 기반’으로 이동한 것이다.
그리고 이 변화는 어느 순간부터 단순한 생산성 향상이 아니라, AIDD라는 새로운 개발 방식으로 자연스럽게 넘어가는 경험으로 이어졌다.
예전엔 개발이란 게 결국, 내가 아는 지식을 기반으로 필요한 구현을 하나씩 쌓아 올리는 과정이었다. 하지만 지금은 정반대다. 전체 구조와 의도를 먼저 정의하고, 세부 구현은 모델이 탐색하도록 맡기는 방식으로 바뀌기 시작했다.
이전에 실제 업무에서는 대부분 바텀업으로 움직였었다. DTO부터 만들고, 엔티티를 만들고, 레포지토리, 서비스, 컨트롤러를 하나씩 조립하는 방식이 너무 익숙했다.
하지만 이제는 먼저 전체 흐름을 짜고, 내가 원하는 방향과 제약을 명확히 설명하면 이후의 세부 로직들은 모델이 빠르게 채워준다.
그러다 보니 자연스럽게 탑다운 사고가 기본값이 되어버렸다.
예전:
- 무엇을 만들지보다 어떤 코드를 먼저 짤지를 고민함
- 내가 알고 있는 기술 범위 안에서 해답을 찾음
- 전체 구조는 구현을 하다 보면 뒤늦게 형태를 갖춤
지금:
- 먼저 흐름, 목적, 제약을 정의함
- 구현 방법은 모델이 여러 후보를 제시함
- 나는 그중 가장 합리적인 방향을 선택하고 다듬음
- 전체 구조가 먼저 세워지고, 구현은 뒤따라감
결국 개발 방식이 ‘의도를 기반으로 AI에게 구현을 위임하는 시대’로 넘어가고 있다는 게 확실히 체감된다.
이게 바로 내가 경험하고 있는 AIDD다.