
상명대학교 / 서광규 교수
2-3. 사례 4: 온라인 음악 라이브러리 및 플레이어
첫 번째 채팅에서는 GPT에 대한 전체 설명이 제공된다.
소프트웨어 시스템은 온라인 음악 라이브러리 및 플레이어에 사용된다.
사용자에는 일반 사용자와 관리자 사용자의 두 가지 유형이 있다. 관리자는 새 노래, 앨범 및 아티스트를 라이브러리에 추가하고 기존 항목을 수정하며 공개 재생 목록을 만들 수 있다.
일반 사용자는 기존 계정이 없는 경우 로그인하려면 새 계정을 만들어야 한다. 새로운 계정을 만들려면 사용자는 개인정보와 이메일 주소를 제공해야 한다. 그 후, 사용자는 휴대폰을 사용하여 이중 인증을 설정해야 한다.
계정이 생성되면 사용자는 음악 라이브러리를 검색하고 원하는 노래를 찾을 수 있다. 검색 시 장르, 아티스트, 연도, 앨범 등과 같은 다양한 필터를 사용할 수 있다. 사용자는 자신만의 사용자 정의 재생 목록을 만들 수 있고 특정 노래를 즐겨찾기로 표시할 수도 있다. 또한 노래, 앨범, 아티스트를 평가하고 리뷰를 남길 수도 있다.
이러한 리뷰는 다른 사용자가 리뷰에 댓글을 달고 유용하거나 유용하지 않은 것으로 표시할 수 있는 블로그 형식이다. 노래 플레이어에는 볼륨 조정, 이퀄라이저 옵션, 노래 반복 옵션, 재생 목록 무작위 지정, 노래 순서 변경 등과 같은 사용자 정의 옵션이 있다.
이 시스템의 서비스를 이용하려면 일반 고객이 결제 방법을 제공해야 한다. 2주간의 무료 평가판 기간을 사용할 수 있으며 그 후에는 결제 구독 요금제 중 하나를 선택해야 한다. 이 요금제에는 월간 결제와 연간 결제가 포함되며, 사용자가 결제를 중단하거나 애플리케이션 사용을 중단하기로 결정한 경우 애플리케이션에 대한 액세스가 제한되어야 한다.
사용자가 모바일 서비스 계약을 통해 모바일 서비스 제공업체로부터 구독을 받을 수 있는 옵션도 있다. 이 경우 시스템은 사용자의 계약이 그러한 종류의 가입을 허용하는지 여부를 이동통신사에 확인할 수 있어야 한다.
다음과 같이 7개의 마이크로서비스가 식별되었다.
- 계정 관리 마이크로서비스: 이 마이크로서비스는 사용자 계정 생성 및 관리를 처리한다. 여기에는 사용자의 개인정보와 이메일 주소를 저장하고 검색하는 기능이 포함되어 있다. 또한 휴대폰을 사용한 이중 인증 프로세스도 처리한다.
- 음악 라이브러리 마이크로서비스: 이 마이크로서비스는 음악 라이브러리의 노래, 앨범, 아티스트 및 재생 목록을 관리한다. 새로운 노래, 앨범, 아티스트를 추가하고, 기존 항목을 수정하고, 공개 재생 목록을 생성하는 기능을 제공한다. 장르, 아티스트, 연도, 앨범 등의 필터를 사용하여 노래를 검색하는 기능도 제공한다.
- 재생 목록 관리 마이크로서비스: 이 마이크로서비스는 사용자의 맞춤형 재생 목록 생성 및 관리를 처리한다. 재생 목록을 추가, 수정, 삭제하는 기능을 제공한다. 또한 사용자가 노래를 즐겨찾기로 표시하는 기능도 포함되어 있다.
- 검토 마이크로서비스: 이 마이크로서비스는 애플리케이션의 평가 및 검토 기능을 처리한다. 여기에는 사용자가 노래, 앨범, 아티스트를 평가하고 리뷰를 남길 수 있는 기능이 포함되어 있다. 다른 사용자는 리뷰에 댓글을 달고 유용하거나 유용하지 않다고 표시할 수 있다.
- 플레이어 마이크로서비스: 이 마이크로서비스는 노래 플레이어의 기능을 처리한다. 여기에는 볼륨 조정, 이퀄라이저 옵션, 노래 반복 옵션, 재생 목록 무작위 지정, 노래 순서 변경 등과 같은 사용자 정의 옵션이 포함된다.
- 결제 관리 마이크로서비스: 이 마이크로서비스는 애플리케이션의 결제 기능을 처리한다. 사용자의 결제 정보를 저장하고 검색하는 기능이 포함되어 있다. 또한 2주간의 무료 평가판 기간과 지불 구독 계획 선택도 처리한다. 여기에는 사용자가 지불을 중단하거나 애플리케이션 사용을 중단하기로 결정한 경우 애플리케이션에 대한 액세스를 제한하는 기능이 포함되어 있다.
- 모바일 구독 마이크로서비스: 이 마이크로서비스는 사용자의 계약이 애플리케이션 구독을 허용하는지 여부를 모바일 서비스 제공업체에 확인하는 기능을 처리한다. 여기에는 사용자의 모바일 서비스 계약에 대한 정보를 검색하는 기능이 포함되어 있다.
- 사용자 관리 마이크로서비스와 음악 라이브러리 마이크로서비스는 시스템에 가장 중요한 역할을 할 것이다. 음악 라이브러리 마이크로서비스와 재생 목록 마이크로서비스는 시스템이 성장하고 더 많은 노래와 사용자가 추가됨에 따라 확장될 가능성이 가장 높다. 증가된 로드를 처리하기 위해 음악 라이브러리 마이크로서비스를 수평으로 확장해야 할 수도 있고, 증가된 재생 목록 수를 처리하기 위해 재생 목록 마이크로서비스를 수직으로 확장해야 할 수도 있다. 평가 및 리뷰 마이크로서비스와 플레이어 사용자 정의 마이크로서비스는 시간이 지남에 따라 변경될 수 있는 사용자 기본 설정을 포함하므로 변경될 가능성이 가장 높다.
그림 5에는 식별된 마이크로서비스와 그 관계가 표시되어 있다.

[그림5. 온라인 음악 라이브러리 및 플레이어 I]
그림 5에서는 이전 예의 조합을 볼 수 있다. 시스템의 중심에는 Account 서비스가 있으며, 분리된 것으로 간주될 수 있는 두 가지 서비스가 있다. 이는 추가 분석이 필요한다는 신호일 수 있다.
부분적인 설명을 보면 식별된 마이크로서비스는 사용자 관리 마이크로서비스, 음악 라이브러리 마이크로서비스, 재생 목록 마이크로서비스, 즐겨찾기 마이크로서비스이다.
추가 정보가 제공되면 평가 및 리뷰 마이크로서비스, 플레이어 사용자 정의 마이크로서비스, 결제 관리 마이크로서비스 등 세 가지 마이크로서비스가 추가로 식별되었다.
그림 6에는 식별된 마이크로서비스와 그 관계가 표시되어 있다.

[그림6. 온라인 음악 라이브러리 및 플레이어 II]
3. 토의
이전 사례와 제안된 솔루션을 분석한 결과, LLM GPT는 마이크로서비스 아키텍처에 대한 좋은 이해를 보여주고 주어진 시스템 설명을 기반으로 논리적으로 이해되는 솔루션을 제공할 수 있다는 결론을 내릴 수 있다. 이를 기반으로 마이크로서비스 아키텍처를 정의할 때 추가적인 도구로 활용될 수 있다.
LLM이기 때문에 GPT는 주어진 상황에서 시스템에 대한 많은 양의 정보를 유지하는 동시에 사용자 요구 사항의 변경 및 확장을 허용할 수 있다. 또한 추가 지침이 제공되면 GPT는 새로운 요구 사항에 맞게 솔루션을 조정하고 원하는 요구 사항에 맞게 솔루션을 조정할 수 있음이 입증되었다.
물론 이는 ChatGPT 사용자가 유능하고 어떤 솔루션이 더 나은지 인식하고 ChatGPT를 해당 솔루션으로 안내할 수 있음을 의미한다. 또 다른 중요한 차원은 사용자가 모든 관련 정보를 제공하는 데 주의를 기울여야 한다는 것이다. 그렇지 않으면 제안된 솔루션이 실제 시스템에 적합하지 않을 수 있으며 나중에 문제가 발생할 수 있다.
ChatGPT 사용의 또 다른 긍정적인 측면은 솔루션의 다양한 특성을 분석하는 동시에 마이크로서비스 아키텍처의 가장 중요한 기능에 대한 이해를 보여줄 수 있다는 것이다. 또한 어떤 마이크로서비스가 변경되기 쉬운지, 어떤 서비스가 시스템의 핵심 기능을 제공하는지, 어떤 서비스가 확장되어야 하는지 예측할 수 있다.
제시된 예와 함께 위에 제시된 모든 내용은 Chat GPT가 소프트웨어 설계자에게 유용한 도구가 될 수 있음을 보여준다. 많은 세부 사항과 복잡한 주제를 이해하는 능력을 염두에 두고 컨텍스트 경계를 결정하는 데 좋은 도구이다. 또한 시스템, 시스템 요구 사항 등에 대한 추가 세부 정보를 제공하여 솔루션에 영향을 줄 수도 있다.
게다가 표시된 것처럼 Chat GPT는 마이크로서비스 간의 결합을 인식하고 개선 사항을 제안할 수 있다. 또한 마이크로서비스 아키텍처의 가장 중요한 원칙을 유지하면서 마이크로서비스의 개수를 조작할 수 있다.
4. 결론
GPT의 기능이 향상됨에 따라 사람들은 많은 작업의 자동화 측면에서 이를 활용하려고 노력하고 있다.
본 문서에서는 소프트웨어 요구 사항을 분석하고 해당 시스템을 구현하는 데 사용할 수 있는 마이크로서비스를 식별하는 측면에서 이 도구를 활용하는 방법이 제시된다. 추가 지침을 제공함으로써 사용자는 다양한 솔루션을 신속하게 얻을 수 있으며 GPT 자체에서 자동으로 분석할 수 있다.
ChatGPT에서 제공하는 솔루션은 주어진 설명을 기반으로 논리적으로 이해되는 주어진 문제에 대한 적절한 솔루션임이 입증되었다. 보시다시피 추가 정보나 지침을 제공하면 GPT가 다른 솔루션을 찾을 수 있다.
물론 제공된 설명은 정확하고 상세해야 한다. 그렇지 않으면 ChatGPT가 시스템의 일부 중요한 부분을 간과하거나 일부 추가 서비스가 나중에 대화에서 나타날 수 있다.
주목해야 할 중요한 사항 중 하나는 제공된 솔루션이 제공된 입력만큼만 좋다는 것이다.
주어진 예를 분석한 결과, 문제가 있는 것으로 보일 수 있고 시스템에 맞지 않는 일부 세부 사항이 모델에 있다는 것이 분명해졌다. 여기에는 다른 서비스가 의존하는 하나의 큰 서비스와 격리된 서비스의 존재가 포함된다.
이 분석에서 결론을 도출하고 모델을 변경해야 하는지, 어떤 방향으로 변경해야 하는지 결정하는 것은 소프트웨어 설계자의 몫이다. 따라서 도구와 통신하는 사용자는 마이크로서비스 아키텍처 및 소프트웨어 설계의 개념을 전반적으로 잘 알고 있어야 한다. ChatGPT와 통신하는 사람의 경험이 많고 문제의 시스템 도메인과 시스템 자체에 대해 더 잘 알고 있을수록 최종 솔루션이 더 좋아질 것이다.
이것이 바로 ChatGPT와 같은 AI 도구가 소프트웨어 시스템 설계에 있어 실제 사람을 대체할 가능성이 거의 없는 이유이다. 오히려 최적의 솔루션을 찾고 더 빠르게 도달하는 데 도움이 되는 많은 도구 중 하나인 보조 도구로 보아야 한다.
마이크로서비스 식별을 위해 ChatGPT를 사용하는 것은 의심할 여지 없이 몇 가지 중요한 세부 사항을 간과하지 않고 초기 솔루션 작업 시간을 절약하는 데 유용할 수 있으며 시스템의 다양한 부분을 분석하는 데 사용하는 것이 실용적일 수 있다. 새로운 기술의 활용은 피해야 할 것이 아니라 더 나은 솔루션을 얻기 위해 사용되는 것이다.
향후에는 ChatGPT가 기존 솔루션을 변경 사항에 맞게 조정할 수 있는지 확인하고 기존 솔루션의 아키텍처가 제대로 설계되지 않았는지 여부와 이를 개선할 수 있는 방법을 판단하는 것이 흥미로울 것이다.
참 고 문 헌
- Tatjana Stojanovic, Sa?a D. Lazarevi?, The Application of ChatGPT for Identification of Microservices, E-business technologies Conferences Proceedings 2023, Vol. 3 No. 1. 2023.
- S. Newman, Building Microservices ? Designing fine-grained systems, O'Reilly Media, Inc., 2015.
- J. &. F. M. Lewis, "Microservices a definition of this new architectural term," 25 3 2014. [Online]. Available: https://martinfowler.com/articles/microservices.html.
- M. R. a. R. H. Dharmendra Shadija, "Microservices: Granularity vs. Performance," in In Companion Proceedings of the10th International Conference on Utility and Cloud Computing (UCC ’17 Companion). Association for Computing Machinery, New York, NY, USA, 215?220. , 2017.
- Haque, Md & Li, Shuai. (2023). The Potential Use of ChatGPT for Debugging and Bug Fixing. EAI Endorsed Transactions on AI and Robotics. 2. e4. 10.4108/airo.v2i1.3276.
- Liu, Chao & Xuanlin, Bao & Zhang, Hongyu & Zhang, Neng & Hu, Haibo & Zhang, Xiaohong & Yan, Meng. (2023). Improving ChatGPT Prompt for Code Generation.
- White, J., Hays, S., Fu, Q., Spencer-Smith, J., & Schmidt, D.C. (2023). ChatGPT Prompt Patterns for Improving Code Quality, Refactoring, Requirements Elicitation, and Software Design. ArXiv, abs/2303.07839.
- Kim, Dae-Kyoo. (2023). Using ChatGPT to Develop Software Systems: Alert to Software Engineers?. 10.13140/ RG.2.2.26388.78725.
- "Open AI," 30 11 2022. [Online]. Available: https://openai.com/ blog/chatgpt. [Accessed 10 5 2023].
저작권 정책
K-ICT 클라우드혁신센터의 저작물인 『마이크로서비스 식별을 위한 ChatGPT 적용』은 K-ICT 클라우드혁신센터에서 상명대학교 서광규 교수에게 집필 자문을 받아 발행한 전문정보 브리프로, K-ICT 클라우드혁신센터의 저작권정책에 따라 이용할 수 있습니다.
다만 사진, 이미지, 인용자료 등 제3자에게 저작권이 있는 경우 원저작권자가 정한 바에 따릅니다.