MSA 설계에 ChatGPT를 활용해본 후기

MSA 설계에 ChatGPT를 활용해보다

ChatGPT가 아키텍처 설계를?

요즘 ChatGPT를 업무에 적극적으로 활용하고 있다.

코드 작성이나 디버깅에 쓰는 건 이미 많이들 하고 있는데, 이번에는 MSA(Microservice Architecture) 설계 단계에서 써봤다. 기존 모놀리식 서비스를 마이크로서비스로 분리하는 프로젝트를 진행하면서 ChatGPT한테 아키텍처 상담을 해본 거다.

결론부터 말하면, 생각보다 쓸만했다.

어디에 활용했나

주로 이런 부분에서 도움을 받았다.

서비스 경계 설정. 모놀리식에서 마이크로서비스로 분리할 때 가장 어려운 게 “어디서 자를 것인가”다. ChatGPT한테 현재 시스템 구조를 설명하고 “이걸 MSA로 분리하려면 어떻게 나눌 수 있을까?” 물어봤는데, 꽤 합리적인 제안이 나왔다. 물론 그대로 쓸 수는 없지만, 생각의 출발점으로는 좋았다.

통신 패턴 선택. 서비스 간 통신을 동기(REST)로 할지 비동기(메시지 큐)로 할지 고민될 때, 각각의 장단점과 상황별 추천을 물어봤다. 교과서적인 답변이긴 한데, 정리가 잘 돼서 의사결정 참고용으로 괜찮았다.

장애 시나리오 시뮬레이션. “이 구조에서 결제 서비스가 다운되면 어떤 일이 벌어질까?” 같은 질문을 던지면, 연쇄 장애 시나리오를 나열해준다. 놓치고 있던 부분을 발견하는 데 도움이 됐다.

한계도 명확하다

ChatGPT가 아키텍트를 대체할 수는 없다.

일단 우리 시스템의 실제 상황을 모른다. 트래픽 패턴, 팀 구성, 기존 코드의 상태, 비즈니스 제약 조건 같은 걸 다 설명해줘야 하는데 그래도 실제 맥락을 완전히 이해하진 못한다.

“정답”이 아니라 “일반적인 모범 사례”를 말해준다. MSA 설계는 상황에 따라 정답이 다른데, ChatGPT는 교과서적인 답변에 가깝다. “우리 팀은 3명이고 레거시 코드가 10만 줄인데” 같은 현실적인 제약을 반영한 답변은 기대하기 어렵다.

그리고 가끔 자신감 있게 틀린 말을 한다. 특히 최신 라이브러리나 도구의 세부 사항에서 할루시네이션이 나온다. 답변을 그대로 믿으면 안 되고 반드시 검증이 필요하다.

가장 유용했던 쓸모

결국 ChatGPT가 가장 유용했던 건 러버덕 디버깅 상대로서다.

혼자서 아키텍처를 설계하면 자기 생각에 갇히기 쉽다. “이렇게 하면 되지 않을까?” 하고 확신하면 반대 의견이 안 보인다. ChatGPT한테 내 설계를 설명하면서 “이거 문제 없을까?” 물어보면, 생각 못 했던 엣지 케이스를 제시해준다.

예전에는 동료한테 “이거 한번 봐줄래?” 했던 건데, 새벽 2시에도 대답해주는 동료가 생긴 셈이다. 물론 진짜 동료의 경험과 직관을 대체할 순 없지만.

실전 워크플로우

내가 정착한 활용 방식은 이렇다:

  1. 먼저 내가 설계안을 만든다
  2. ChatGPT한테 설계안을 설명하고 리뷰를 요청한다
  3. 지적받은 부분 중 타당한 것만 반영한다
  4. 구현 단계에서 세부 사항을 질문한다

핵심은 “ChatGPT가 설계하는 게 아니라 내가 설계하고 ChatGPT가 리뷰하는” 방식이다. 주도권은 항상 내가 가져야 한다. 그래야 결과에 대한 책임도 명확해지고.

AI 도구가 생산성을 높여주는 건 맞는데, “AI가 알아서 해주겠지”는 위험하다. 도구는 도구일 뿐이다.