1. 실습 내용

- multipass로 VM을 3대 만든다.

- k3s를 실습할 수 있는 환경을 만든다.

 

2. multipass 설치와 VM 생성

- 공식 홈페이지에서 간단하게 설치하는 방법을 볼 수 있다.

- 아래의 페이지에서 설치 파일을 받아서 설치하자

https://canonical.com/multipass/install

 

- 예전에 사용했을 때는 gui가 없었는데, 이제는 gui가 제공돼서 쉽게 인스턴스를 만들 수 있다.

톱니를 누르면 내가 원하는 옵션으로 인스턴스를 만들 수 있다.

- 인스턴스를 만들기 전에 왼쪽 사이드바 아래에 있는 톱니바퀴를 눌러서 설정으로 들어가자

- 용이한 실습을 위해 Bridged network를 en0로 잡아서 노드끼리 통신이 쉽게 되도록 하자.

en0은 일반적으로 와이파이 대역으로 되어있을 것이다.


- 우분투 24.04 LTS로 k3s-master, k3s-worker1, k3s-worker2로 VM를 띄워보자

- 톱니바퀴 모양을 누르면 VM의 이름, CPU, RAM, DISK를 설정해서 Launch 할 수 있다.

자신의 컴퓨터 스펙에 따라 적당히

 

- 잠시 기다리면 인스턴스가 작동하는 것을 확인할 수 있고, 멀티패스 gui에서 간단히 shell도 볼 수 있다.

각 VM을 클릭하면 터미널을 사용할 수 있다.
gui에서 간단하게 상태도 확인할 수 있다.

 

 

(추가) 윈도우즈에서 네트워크가 잡히지 않는 문제

- 네트워크가 잡혀도 설정이 되지 않는 경우가 있는데, 확인해보니 네트워크 이름이 한글이라서 문제가 발생했다.

- 맥북에서 할때는 네트워크 이름이 en0, en1 이런 방식으로 되어 있어서 몰랐는데 한글 윈도우즈에서는 문제가 발생했다.

- 처음에는 아래와 같은 명령어를 파워쉘로 실행했더니 깨진 이름의 네트워크 이름이 나왔다.

# 네트워크 확인하는 명령어
multipass networks


# 출력 결과
Name             Type       Description

�̴���            ethernet   Realtek PCIe GbE Family Controller

 

- 해결 방법으로는 윈도우 파워쉘을 관리자 권한으로 실행하고 네트워크 이름을 변경해서 문제를 해결했다.

# 네트워크 확인 명령어
Get-NetAdapter

# "이더넷"과 같은 이름으로 되어있는 네트워크 이름을 영어로 변경
Rename-NetAdapter -Name "이더넷" -NewName "Ethernet0"

- 변경이 잘 되었다면 Settings에서 변경된 이름으로 브릿지 네트워크가 잘 나오는 것을 확인할 수 있다.

 

 

3. 다음 게시물 내용

- 다음 게시물을 통해 k3s를 설치하고 마스터 노드와 워커 노드까지 세팅하는 실습을 진행해보자

1. 공부 계획을 다시 하는 이유

- 최근 1년 동안 새로운 기술도 사용하고 api도 만들어보고 새로운 일을 많이 해봤다.

- 그런데 옛날에 조금씩 업무를 했던 spark, 데이터레이크 구축 작업 같은 것들에 대한 기억이 희미해져간다.

- 요즘엔 ai로 공부할 수 있는 방법도 다양하고 쉬우니까 직접 구축하면서 잊었던 내 과거의 지식을 다시 메꾸려고 한다.

 

2. 계획 중인 공부 영역

- Airflow : 요즘 k8s를 쓰는 곳이 많다보니 k8s에서 운영하는 방법에 대해 테스트해봐야겠다.

- superset : redash 게시물의 조회수가 떨어진 것을 보니 슈퍼셋 쪽으로도 많이 수요가 옮겨간 것 같다.

- k8s : 22년도인가 그때만 해도 구축이 힘들었던 거 같은데 요즘엔 다시 쉽게 공부해볼 수 있을 것 같다.

- spark : 대용량 db 데이터를 분석용으로 변경하고 사용할 때 사용했었는데, 분석작업에서 멀어지다보니까 잘 안쓰게 돼서 다시 공부해봐야지

- kafka : 카프카는 지금 직장에서 잘 쓰고 있으니 평소에 업무 외에 궁금했던 부분을 작업해봐야겠다.

 

3. TIL로 공부할 때마다 글을 작성하자

- 작은 글이 모이면 큰 내용으로 다시 정리해도 좋지만... 작은 글을 자주 쓰는 것으로 바꿔보자

- 어차피 공부하는 우리 모두 하루마다 공부에 할애할 수 있는 정도가 비슷하지 않을까?

'잡담' 카테고리의 다른 글

2024년 블로그 계획  (0) 2024.01.11

1. PromptTemplate란?

- 사용자에게 간단한 입력만 받아서 프롬프트를 통해 llm으로 결과를 도출할 때 사용한다.

- 프롬프트에 일부 인자만 받도록 해서 프롬프트를 특정 용도로 사용하고 관리할 수 있다.

- 예를 들어 일부 정해진 답변만 받을 수 있는 경우 사용할 수 있고, 제한된 입력을 받기 원할 때 사용할 수 있다.

 

2. 예제 코드

- 아래와 같은 예제 코드를 사용하면

 
from langchain_google_genai import GoogleGenerativeAI
from langchain_core.prompts import PromptTemplate
from langchain_core.messages import HumanMessage

# GEMINI_API_KEY는 발급 받은 gemini key
model = GoogleGenerativeAI(model="gemini-1.5-flash", google_api_key=GEMINI_API_KEY)

template = PromptTemplate(
template="""{programming_language}가 주로 어떤 개발에 쓰이는지 예시를 3개만 알려줘""",
input_variables="programming_language"
)

message = template.format(programming_language="파이썬")
result = model.invoke(message)
 

 

- 결과에서 아래의 결과를 받을 수 있다.

파이썬은 다양한 분야에 사용되지만, 주요 용도 3가지 예시는 다음과 같습니다.

1. **웹 개발:** 파이썬은 웹 애플리케이션을 구축하는 데 널리 사용됩니다.  Django와 Flask와 같은 강력한 웹 프레임워크를 통해 개발자는 효율적으로 웹사이트와 웹 서비스를 만들 수 있습니다.  예를 들어, Instagram이나 Pinterest와 같은 대규모 웹사이트도 파이썬을 기반으로 구축되었습니다.

2. **데이터 과학 및 머신러닝:** 파이썬은 과학적 계산과 데이터 분석에 필요한 풍부한 라이브러리를 제공합니다. NumPy, Pandas, Scikit-learn, TensorFlow, PyTorch 등의 라이브러리를 사용하여 데이터를 처리, 분석하고, 머신러닝 모델을 개발 및 배포할 수 있습니다.  예를 들어,  데이터 분석, 예측 모델링, 이미지 인식 등의 작업에 파이썬이 널리 활용됩니다.

3. **스크립팅 및 자동화:** 파이썬의 간결하고 읽기 쉬운 문법은 스크립트 작성 및 자동화 작업에 매우 적합합니다.  반복적인 작업을 자동화하거나, 시스템 관리 작업을 수행하거나, 파일을 처리하는 등 다양한 용도로 사용됩니다. 예를 들어, 파일 백업 스크립트 작성, 웹 스크래핑, 시스템 모니터링 등에 파이썬을 이용할 수 있습니다.

 

3. 템플릿을 json 파일로 저장해서 관리하기

- 위에서 설정한 템플릿을 save로 저장하면 파일이 생성된다

 
template.save("programming_language_template.json")
 

 

- 아래와 같은 예시 코드로 파일을 불러서 사용할 수 있다.

 
from langchain_core.prompts import load_prompt

loaded_prompt = load_prompt("programming_language_template.json")
message = loaded_prompt.format(programming_language="코틀린")

result = model.invoke(message)
print(result)
 
코틀린은 다양한 분야에서 사용되지만, 주요 활용 분야 3가지 예시는 다음과 같습니다.

1. **Android 앱 개발:**  구글이 공식적으로 지원하는 Android 앱 개발 언어이기 때문에 가장 널리 쓰입니다.  Java보다 간결하고 현대적인 문법을 제공하여 개발 생산성을 높이고 코드 유지보수를 용이하게 합니다.  많은 안드로이드 앱들이 코틀린으로 개발되거나, 기존 자바 코드를 코틀린으로 리팩토링하여 사용하고 있습니다.

2. **서버측 개발 (Backend):**  Spring Boot와 같은 프레임워크와의 호환성이 뛰어나 서버 애플리케이션 개발에 효과적입니다.  Java와 비교하여 더 간결하고 안전한 코드를 작성할 수 있으며,  Kotlin Coroutines를 이용한 비동기 프로그래밍을 통해 성능 향상을 기대할 수 있습니다.  웹 서비스, API, 마이크로서비스 등 다양한 서버 애플리케이션 구축에 사용됩니다.

3. **데이터 사이언스/머신러닝:**  JVM 기반이기 때문에  Apache Spark와 같은 데이터 처리 프레임워크와 잘 통합됩니다.  간결한 문법과 null safety 기능은 데이터 분석 및 머신러닝 모델 개발 과정에서 발생할 수 있는 오류를 줄이는 데 도움이 됩니다.  데이터 분석 스크립트 작성 및 머신러닝 모델 구축에 사용될 수 있습니다.


이 외에도, 데스크탑 애플리케이션, 웹 프론트엔드(Kotlin/JS), 게임 개발 등 다양한 분야에서 코틀린이 사용되고 있지만, 위 세 가지가 가장 대표적인 활용 분야라고 할 수 있습니다.

 

+ Recent posts