[SKALA] 쿠버네티스 실습 - ArgoCD, Jenkins
·
SKALA
Skala 교육과정에서는 Kubernetes 기반의 CI/CD 파이프라인 구성 실습을 수행하였다.실습에 사용된 백엔드 애플리케이션은 Spring Boot로 개발되었으며, 이를 기반으로 Git, Jenkins, Docker, Harbor, 그리고 Argo CD를 활용한 전체 배포 자동화 흐름을 구현하였다.사전 환경 설정1. Git Repository에 '01.my-app-jpa' 라는 폴더 아래에 스프링부트 기반의 백엔드 코드를 올려놓았다. 2. Jenkins 관련 설정하기2-1. Jenkins에서 'Item 생성'을 누르고 item type으로 'Pipeline'을 선택한다.2-2. Configure 창에서 pipeline을 어떻게 구성할지 선택해야한다.Pipeline script - pipeline s..
[SKALA] DB Query 작성 및 튜닝 기초 실습 (2)
·
SKALA
이번에는 DB Query 작성 및 튜닝 기초 실습 (1)에 이어서 비슷한 내용을 가지고 페어와 함께 주어진 주제를 가지고 실습해보는 것이었다.실습주제는 패밀리레스토랑 신규 매출에 대한 임의의 데이터를 가지고 분석해보는 형식이였다.쿼리 작성과 쿼리 튜닝(실행계획 확인)이 주된 목표였다. https://bittersweet-snowman-a04.notion.site/DB-1d894f06d6d7801ca8ede01c61a6cbcb?pvs=74 DB 미니 프로젝트 | Notion1반 3조 - 김지현, 이상현, 이소희bittersweet-snowman-a04.notion.site 느낀 점이번 학습을 통해 인덱스 설정, SQL 실행계획, 뷰(View)의 동작 방식에 대해 몰랐던 개념을 알 수 있었다.1. 복합 인덱..
[SKALA] Transformer 이해하기
·
SKALA
Transformer는 자연어 처리(NLP) 분야에서 가장 널리 사용되는 모델 중 하나다.특히 번역, 문장 생성, 요약 같은 작업에서 뛰어난 성능을 보여주면서 많은 주목을 받았다.Transformer의 등장은 단순히 NLP 성능 향상을 넘어, 대규모 언어 모델(LLM)의 기반 구조로 이어졌다.이 글에서는 Transformer의 기본 구조인 Encoder와 Decoder를 중심으로,각 구성 요소가 어떻게 동작하는지 하나씩 정리해본다.Transformer란?Transformer는 기존 RNN이나 CNN과는 다르게, 입력 데이터를 병렬로 처리할 수 있는 구조를 갖고 있다.이 덕분에 더 빠르게 학습이 가능하고, 긴 문장이나 복잡한 문맥도 잘 처리할 수 있다.Transformer는 크게 두 부분으로 나뉜다:Enc..
[SKALA] DB Query 작성 및 튜닝 기초 실습(1)
·
SKALA
그동안은 주로 MySQL(InnoDB)을 사용해서 데이터베이스를 다뤄왔는데, 이번에는 기업 환경에서 많이 활용된다는 Oracle DB를 처음으로 사용해보게 되었다.낯선 환경에서 시작한 만큼, 오늘은 오라클에서 기본적인 DB를 구축하고, 직접 쿼리를 작성해보는 실습을 진행했다. 특히 작성한 쿼리에 대해 실행계획을 확인하고, 성능 최적화를 위해 인덱스를 어떻게 활용할 수 있는지도 함께 살펴보았다.이번 실습에서 핵심적으로 느낀 개념은 인덱스와 실행계획, 옵티마이저였다. 인덱스(Index)인덱스는 테이블 내에서 특정 데이터를 더 빠르게 검색할 수 있도록 도와주는 자료 구조다.Oracle에서도 기본적으로 B-tree 기반 인덱스가 사용된다.자주 조회되는 컬럼이나 WHERE, JOIN, ORDER BY 절에 자주 ..
[SKALA] AI Agent 두번째 실습 - LangChain, RAG
·
SKALA
SKALA에서 AI Agent 관련 수업이 진행되고 페어와 함께 'AI Agent를 활용해 한국 전기차 시장에 대한 정보를 수집하고, 이를 분석하여 소비자의 주요 우려 사항을 파악한 뒤, 이를 극복할 수 있는 창의적이고 효과적인 마케팅 캠페인을 제안' 하는 과제를 내주셨다. 처음에는 구글, 네이버, DuckDuckGo 등의 뉴스 API를 이용하여 자료를 수집하여 완성하였으나, 관련 없는 뉴스가 스크랩되거나 중복되는 등 한계점이 명확했다. 이에 Vector DB와 RAG를 활용해 자료의 정확도를 높이고, 보다 구체적인 분석과 제안을 할 수 있도록 디벨롭하기로 했다. 다양한 의견과 추가하면 좋을 것 같은 다양한 아이디어를 냈다. 최종적으로는 랭체인을 통해 구현하기로 했다. Vector DB를 통해 자료를 임..
[SKALA] AI Agent 개념 및 실습
·
SKALA
최근 AI 기술은 우리 일상 곳곳에서 점점 더 큰 역할을 하고 있다. 단순한 자동화에서 벗어나, 이제는 더 복잡하고 인간에 가까운 방식으로 문제를 해결하려는 흐름으로 발전 중이다.SKALA 수업에서는 이러한 AI 기술의 흐름 중 하나인 AI Agent에 대해 배웠다. LLM이 다양한 분야에서 활용되어 왔다면, 이제는 이를 기반으로 한 AI Agent 구조가 새로운 흐름으로 떠오르고 있다.Botpress 블로그에 따르면, 여러 글로벌 기업들이 AI 에이전트를 2025년 AI 트렌드의 핵심으로 주목하고 있다는 점도 인상 깊었다.https://botpress.com/blog/top-artificial-intelligence-trends 10 Artificial Intelligence Trends to Watc..
[SKALA] Prompt Engineering 개념 정리 및 실습
·
SKALA
이제는 GPT 같은 LLM 모델이 없는 삶을 상상하기 어려울 정도로, 우리 일상 깊숙이 자리 잡고 있다. 간단한 업무부터 창의적인 작업까지, 정말 많은 일들을 훨씬 더 생산적으로 바꿔주고 있다.이런 LLM 모델들은 단순한 질문에도 꽤 훌륭한 답변을 내놓지만, 좀 더 깊이 있고 정교한 결과를 원한다면 프롬프트 엔지니어링(Prompt Engineering)이라는 과정을 활용하는 게 훨씬 효과적이다.예를 들어, 모델에게 특정 역할을 부여하거나 구체적인 예시를 함께 던져주는 방식은 한 번쯤 들어봤을 것이다.하지만 그 외에도 생각보다 다양한 방법들이 있고, 이들을 적절히 조합하면 훨씬 더 풍부하고 세밀한 응답을 얻을 수 있다.이번 글에서는 수업을 통해 배운 프롬프트 작성법과 다양한 기술들, 그리고 조별 실습을 통..
[SKALA] 클라우드 기초 학습(2) - Docker 이해
·
SKALA
요즘 클라우드 환경에서 Docker는 빠질 수 없는 필수 도구로 보인다.Docker는 흔히 "컨테이너 기술"이라고 불리는데,이를 정확히 이해하기 위해서는 먼저 VM과 컨테이너의 차이점을 알아야 된다고 생각한다.VM과 컨테이너의 차이점VM(Virtual Machine)하이퍼바이저(Hypervisor)를 이용해 하드웨어를 가상화각각의 VM은 독립적인 운영체제를 실행부팅 시간이 비교적 오래 걸림 (OS 부팅이 필요)개발 환경 구축에 시간이 오래 걸릴 수 있다 (직접 OS 설치 및 설정 필요) 컨테이너(Container)호스트 OS의 커널을 공유OS 수준에서 프로세스를 격리하는 방식 (컨테이너 엔진 사용, 예: Docker)부팅 시간이 빠름 (OS 부팅이 필요 없음)개발 환경을 빠르게 복제하고 구축 가능 (이미..
[SKALA] FAST API 서버와 프론트엔드 연동: 트러블 슈팅 경험 정리
·
SKALA
교수님께서 FAST API로 구현된 서버와 이미 작성된 프론트엔드 파일(index.html, css, js 등)을 제공해주시고, 그 파일들을 이용해 서버를 열고 웹을 통해 CSV 파일을 업로드한 후, 그로 인해 만들어진 사진 파일을 정상적으로 다운로드할 수 있는 과정의 코드를 제공해주셨습니다.하지만 제공받은 코드들에는 교수님께서 여러 문제를 숨겨놓고, 트러블 슈팅을 해가면서 정상적으로 돌아가게 만드라는 과제를 주셨습니다. 해당 과제를 해결하면서 겪었던 문제와 경험을 정리하였습니다.TensorFlow 설치 문제제 로컬의 Python 버전은 3.13 이었습니다. Python 3.13 버전에서는 TensorFlow가 아직 지원되지 않아서 설치가 되지 않았습니다.그래서 Python 3.10 버전을 따로 설치한 ..
[SKALA] 클라우드 기초 학습(1) - 개념 단어 정리
·
SKALA
SKALA 에서 처음으로 클라우드에 관해 배우게 되었다.그래서 클라우드 수업에서 사용되는 단어들이 낯설었고 그에 대한 정리가 필요해보였다. 선언적 방식 (Declarative)"무엇을 해야 하는지"를 정의하는 방식개발자는 결과(목표)를 정의하고, 시스템이 알아서 목표를 달성내부적인 처리 방식은 시스템이 자동으로 결정예로는 K8S의 Manifest 파일을 정의하는 것이 있다.명령적 방식 (Imperative)"어떻게 해야 하는지"를 정의하는 방식개발자가 세부적인 수행 절차(How)를 직접 작성프로세스를 제어할 책임이 개발자에게 있음최근 선언적 방식이 가독성, 유지보수성, 확장성 등의 이유로 명령적 방식보다 더 많이 사용되고 있다.우리는 무의식적으로 두 가지 방식을 모두 활용하고 있지만, 그 차이를 이해하고..