기업의 소프트웨어 개발은 IDE(Integrated Development Environment, 통합 개발 환경)에 적용된 프레임워크 기반 환경에서 수행된다.
프레임워크는 개발 진행 시 표준 구조와 규약을 제시하고 공통 기능을 제공하는 역할을 하기 때문에 개발자가 효율적으로 개발을 수행할 수 있도록 돕는다.
또한 전반적인 아키텍처의 일관성을 유지하고, 개발자별로 달라질 수 있는 코딩 방식을 표준화해서 일관된 코드 체계를 갖추게끔 한다. (ex. 예외처리 방식, 오류시 처리방식 등)
이렇게 함으로 향후에도 팀 간 또는 개발자 간 코드의 이해가 용이하도록 도와주는 역할을 수행하게 되는 것이다.
따라서 막상 기업 내 소프트웨어 개발환경을 접하게 되면 교과서에서 배웠던 깊이 있는 개발언어의 이해가 없더라도 쉽게 개발을 수행할 수 있게 된다. (물론 모든 소프트웨어 개발이 그렇다는 것은 아니다)
따라서 처음 개발 업무에 입문하더라도 두려워하지 않아도 된다.
오늘 '생성형 AI 개발지원 도구'를 주제로 세미나가 있었다.
최근 금융권에서도 이런 생성형 AI 개발지원 도구를 활용해서 소프트웨어 개발에 접목시키는 프로젝트가 발주가 되고 있다고 한다. 앞서 얘기했던 IDE에 AI 개발 지원용 라이브러리를 플러그인(Plug-in, 추가적인 기능이나 도구를 확장하는 의미) 하는 방식으로 구축을 하게 되는데, 다른 점이 있다면 AI를 기반으로 하다 보니 전용 서버와 DB를 갖춘 방식이라고 한다. (기존 IDE에도 비슷한 개발지원 도구가 있지만 여기에는 단순히 라이브러리만 플러그인 하면 그만 이었다)
누군가의 이야기처럼 노련한 프롬프트(Prompt, AI에게 명령이나 질문하는 행위)만 AI에게 제시한다면 그럴싸한 소스코드를 구현한다는 것은 민감한 고객 데이터를 다루는 분야에서는 아직 먼 이야기인 듯했다.
만약 복잡한 연산을 지원하는 고성능의 계산기를 구현한다면 확실한 도움을 기대할 수 있겠지만, 비즈니스 관점에서는 정형화된 프로세스가 거의 존재하지 않는 현실을 감안한다면 아직은 시간이 더 필요해 보였다.
전반적인 얘기를 들어보니 아직까지는 개발을 주도적으로 진행하는 것이 아니고 개발자가 개발을 쉽게 할 수 있도록 지원을 하는 역할을 수행한다.
예를 들면, 개발 표준에 어긋나는 부분이 있는지 확인을 하는 역할이나 코드 오류가 발생했을 때 기존의 IDE 보다 좀 더 친절히 오류를 안내하는 수준이다. 물론 자연어 수준의 질의에 실시간으로 답변을 해주는 기능도 일부 포함이 되어 있어 도움을 주기도 한다.
AI 활용 저변 확대를 위한 기반을 마련한다는 취지에서는 설득력이 있어 보였다.
"코드 생성을 지원한다고 하는데 데이터 핸들링을 위한 Query(데이터를 조회·추가·수정·삭제 요청) 부분도 가능합니까?"
의구심이 가득한 표정으로 누군가가 조심스럽게 질문을 했다.
"데이터베이스의 플랜(데이터의 Query를 어떤 순서.방법으로 수행할지의 실행 계획, 성능의 80%가 실행계획에서 좌우된다고도 함)을 이해하기 때문에 어느 정도는 가능합니다.
다만, 대용량 데이터를 핸들링하는 부분은 전문 영역인 만큼 그 한계는 있습니다."
불편한 질문에 명쾌한 답이 이어지지 않자 어색한 기색이 역력했다.
기업 내 대용량 데이터를 효과적으로 관리하고 성능을 확보하는 것은 개발 영역에서 매우 중요하다.
내 계좌의 거래내역을 조회하는데 장시간의 대기는 사용자들로 하여금 불만을 야기하고 외면받기에 충분하기 때문이다. 뿐만 아니라 대량 거래를 처리해야 하는 상황에서 성능 저하는 결국 프로세스의 예외처리로 이어지게 되고 이는 궁극적으로 장애를 유발하는 잠재 원인이 되기도 한다.
하지만 분명한 것은 이제 소프트웨어 개발 영역에도 조심스럽게 AI 도입이 본격화되고 있음을 체감할 수 있었다. 현재는 단순한 코드 생성 보조나 코드의 품질을 책임지는 역할이겠지만 앞으로는 비즈니스 아키텍처나 설계 부분까지 진화하지 않을까 생각을 해봤다.
문득 그런 생각이 스쳤다.
이제 우리의 역할은 단지 AI를 관리하는 일로 남게 되는 건 아닐까.
어쩌면 그마저도 언젠가 사라지고 마는 걸까.