안녕하세요! 저는 8월 30일에 MLSA가 주관하는 대학생 IT 러닝 캠프에 참여했는데요.
최근에 너무 많은 일이 있었어서 이제야 후기글을 작성합니다.

일단 저는 학과 공지사항에 아래와 같이 게시되어 있는 정보를 참고해서 신청을 했습니다.

일단 저는 이러한 단발성 강의를 참여해본 경험이 거의 없는데요. 이번 MLSA에서 주관하는 이벤트에 참여하게 된 계기는 오지수님께서 진행하는 "spring boot 마이크로서비스 애플리케이션 배포 찍어먹기"에 흥미를 느껴서 입니다.
저 당시 저는 Spring boot 프로젝트를 진행하고 있었고, 이전에 Spring 프로젝트를 진행할 때는 간단하게 가상 서버에 podman을 이용해서 배포를 해놓은 상태였는데요. 이 과정이 꽤나 복잡했던 기억이 있어서 이번 기회를 통해 '서버에 배포하는 또 다른 방법을 배우고 싶다!' 라는 생각을 하게되었습니다.
해당 행사에 신청한 이후, 이메일을 통해 QR코드를 전달받았습니다!
행사 당일에는 특별히 QR 코드를 확인하지는 않았고 MLSA 소속 회원분이 와서 신원을 확인하였습니다.
강의를 들으며 아래와 같이 간단하게 정리를 해보았습니다.

Azure Ai Foundry
Agent Service
azure ai foundry에서 제공하는 Agent service의 특징은 다음과 같다.
- hallucination 보완 가능
- low code / no code로도 충분히 구현 가능
- 다른 agent를 덧붙여 multi-agent service 구축 가능
Ai Agent는 사전 지식을 사용하는 기존 챗봇과 다르게
1. 계획을 설계하고
2. 여러 API를 불러와서 답변을 생성하고
3. 답변을 정제
위 과정을 거쳐 답변을 사용자에게 보여준다.
이때 답변을 생성할 때 사용하는 툴을 지정할 수 있는데, 이때 직접 지정해주어도 되고 ex) tools = { "bing" }
줄글로 작성해주어도 된다.
ex) instruction = "사람에 관한 질문이면 tool1을 써줘"
해당 서비스 내에서 Agent 생성 시 instruction, temperature, top p 등을 지정해주어야 한다.
temperature은 0-1 사이의 값을 가지는데, 1에 가까울수록 동일한 질문에 대해 다양한 답변을 한다.
리소스 그룹
azure ai foundry에서는 리소스 그룹이라는 기능을 지원한다. 리소스 그룹은 쉽게 말해 파이썬에서 main.py처럼 필요한 모든 것을 리소스 그룹으로 묶어 관리할 수 있는 기능이다. Ai Agent 또한 특정 리소스 그룹 내에 생성해 해당 리소스 그룹에서 관리해줄 수 있다.
n8n을 이용한 업무 자동화
반복되는 업무를 자동화할 수 있는 자동화 솔루션의 일종이다. 코드를 복잡하게 작성하지 않아도 클릭만으로 여러 서비스들을 연결하고 자동화할 수 있다.
- low code / no code 기반의 오픈소스 워크플로우 자동화 도구
- 처음 가입 시 14일 간 무료 이용 가능
- 클라우드에 업로드하여 이용 시 무료로 이용 가능 / 버전이 달라지면 직접 업데이트 해주어야 한다는 단점이 존재
Azure Container Apps로 Spring boot 프로젝트 배포
컨테이너화된 애플리케이션을 실행하는 동안의 인프라를 줄이고 비용을 절감할 수 있는 서버리스 플랫폼이다.
모놀리식 아키텍처
전통적 소프트웨어 개발 모델이다. 하나의 코드베이스를 사용하여 여러 비즈니스 기능 수행하는 것이 특징이다.
마이크로 서비스 아키텍처(MSA)
소프트웨어를 작은 독립 요소/서비스로 구성하는 아키텍처 접근 방식이다. 즉,다수의 독립적인 서비스의 모음으로 애플리케이션을 구성한다.
두 아키텍처는 각자 장단점을 가지기 때문에 상황에 맞게 적용하는 것이 좋다.
Micro Service를 이용한 배포 과정
아래 모든 과정은 cli/gui 기반으로 모두 진행 가능
- 리소스 그룹 생성
- 리소스 그룹 내에 Container Apps 환경 생성
- 서버 구성 요소 추가 : App을 지원하는 Java 구성 요소를 추가함. (Config(git repository url 연결) / Eureka / Admin)
- 마이크로 서비스 앱 배포
- 컨테이너 앱 만들기(서비스 별로)
- API Gateway 앱 만들기: 컨테이너 수신 설정 가능 (외부 트래픽을 특정 포트로 연결해줄 수 있음), 프론트에서 백엔드 API를 사용할 수 있도록 하는 과정
- 각 서버에 컨테이너 바인딩
- API Gateway app url을 통해 프론트엔드 앱 확인 가능
- 유레카 대시보드 확인: container apps 환경에서 IAM에 소유자/기여자 권한을 부여해야 해당 대시보드에 접근 가능
AKS(Azure Kubernetes Service)와 쿠버네티스 툴들
기존 VM 사용 방식 VS 컨테이너
기존 VM 사용 방식
호스트 컴퓨터의 OS에 가상화된 OS를 올려 런타임 환경을 설정해주어야 한다.
- 무겁고 느림
- 개발환경 vs 운영환경의 불일치로 인한 문제 多
컨테이너
아무 컴퓨터에 런타임 환경을 넣은 컨테이너 가져다 쓰는 것과 같다.
- 애플리케이션과 필요한 라이브러리만 패키징
- 어떤 환경에서도 동일하게 실행 가능(호스트 OS에 독립적)
- 호스트 OS의 커널을 공유하기 때문에 가볍고 빠르게 실행 가능
- 도커: 컨테이너 기술의 사실상 표준, 애플리케이션을 컨테이너화하고 배포하는 가장 인기있는 도구
쿠버네티스
MSA 구조에서는 실제 서비스를 위한 많은 컨테이너가 존재하는데, 이를 한번에 묶어서 관리해주는 도구이다.
대표적으로 쿠버네티스에서 지원하는 기능은 다음과 같다.
- 자동복구: 컨테이너에 문제 발생 -> 자동 재시작/복구
- 자동확장: 트래픽이나 CPU/메모리 사용량에 따라 컨테이너 수를 자동으로 조절
- 서비스 검색: 컨테이너들이 서로를 쉽게 찾고 통신할 수 있도록 내부 DNS와 로드 밸런싱 제공 -> 각자 ip주소를 알 필요 없이 컨테이너들이 소통 가능
- 무중단 배포: 서비스 중단 없이 애플리케이션 업데이트 가능
쿠버네티스 구조
관리자(Control Plane = Master Node)
일하는 사람들(Data Plane = Worker Node)
ex) 4 Node 클러스터 = 1 Master 3(Worker) Node 구성
AKS환경
AKS 없이 쿠버네티스를 사용하기 위해서는 쿠버네티스 클러스터를 직접 구축해야 하기 때문에 다음과 같은 과정을 거쳐야 한다
- 각 노드를 위한 서버 구축
- 각 노드에 쿠버네티스 설치
- 노드(서버)들 간 네트워크 연결
AKS를 사용하면 이러한 과정을 생략 가능하다.
AKS는 Worker Node를 기본으로 제공한다. 명령어 하나로 Worker Node 무한 증식이 가능하다. (GUI/CLI 상에서 모두 가능, 클러스터 생성 명령어에 --node-count 3과 같은 옵션으로 Worker Node 개수 설정 가능)
핵심도구
- Helm(쿠버네티스용 패키지 관리자): 쉽게 쿠버네티스에서 사용하고 싶은 툴들을 설치 가능
- Prometheus(모니터링) & Grafana(시각화): 모니터링 솔루션, 자원 사용량 등을 확인 가능
아래는 강의를 들으면서 조금 놓친 부분을 참고할 때 사용한 공식 문서들입니다. 같이 들으러 간 친구들이 찾아줬습니다.. ♥

https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/bing-grounding?tabs=python&pivots=overview
https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/bing-code-samples?pivots=portal
https://learn.microsoft.com/en-us/azure/ai-foundry/agents/overview
What is Azure AI Foundry Agent Service? - Azure AI Foundry
Learn how to create agents that apply advanced language models for workflow automation.
learn.microsoft.com
https://learn.microsoft.com/ko-kr/azure/container-apps/overview?wt.mc_id=studentamb_296881
https://learn.microsoft.com/ko-kr/azure/container-apps/java-microservice-get-started?tabs=azure-portal#bind-container-apps-to-java-components&wt.mc_id=studentamb_296881
Azure Container Apps에서 관리 Java 구성 요소를 사용하여 첫 번째 Java 마이크로 서비스 애플리케이션
관리 Java 구성 요소를 사용하여 Azure Container Apps에서 Java 마이크로 서비스 프로젝트를 배포하는 방법을 알아봅니다.
learn.microsoft.com
https://learn.microsoft.com/ko-kr/azure/ai-foundry/agents/concepts/threads-runs-messages
Azure AI Foundry 에이전트 서비스의 스레드, 실행 및 메시지 - Azure AI Foundry
Azure AI Foundry 에이전트 서비스에서 사용되는 구성 요소에 대해 알아봅니다.
learn.microsoft.com
https://learn.microsoft.com/ko-kr/azure/aks/what-is-aks
AKS(Azure Kubernetes Service)란? - Azure Kubernetes Service
AKS(Azure Kubernetes Service)의 기능과 시작 방법에 대해 알아봅니다.
learn.microsoft.com
저는 위에서 언급했던 것처럼 IT 관련 강의, 강연을 들은게 거의 처음이었는데요.
생각보다 뜻깊은 시간이 되었습니다.
먼저, Azure같은 클라우드 서비스는 처음에 혼자 독학하려면 엄청 어려운거 아시죠..! 저는 AWS로 처음 클라우드 서비스를 접했었는데 너무 힘들었습니다. 근데 해당 강의를 통해서 Azure에 어떤 서비스들이 있고 어떻게 활용할 수 있는지 쉽게 알 수 있었습니다. 이런 부분이 저는 제일 좋았어요.
둘째로, 인적 네트워크를 형성할 수 있다!
저는 물론 매우 부끄러워서 링띤을 여쭈어보지는 못했습니다만..! 많이들 여쭤보시는 것 같더라구요.
마지막으로 용기와 열정을 많이 받아갈 수 있었습니다. 최근에 졸업 및 취업 준비를 하면서 내가 하는게 진짜 맞는 길일까, 도움이 되는걸까 이런 고민들을 많이 했었는데 그런 부분들에서 꽤나 해소가 되었습니다:)
이번 강연을 통해 기회가 된다면 저도 MLSA에 나중에 가입해보고 싶다는 생각도 강하게 들었습니다.
이상 MLSA와 함께하는 대학생 IT 러닝 캠프 후기였습니다!
