어제 포스팅 했는데, 뭔가 굉장히 찜찜한 마음이 들어서 추가적으로 공부를 해보고자 한다.

- https://www.whatwant.com/entry/HuggingFace-Learn-NLP

 

 

모델을 명시하지 않으면, "distilbert-base-uncased-finetuned-sst-2-english" 모델이 사용된다.

 

한글을 제대로 인식하지 못하는 모델이기에 다음과 같은 결과가 나온다.

 

이번에는 나름 유명한 koBert 모델로 지정해서 해보자.

 

이제는 조금 부정적인 것으로 인지하긴 하지만, 뭔가 부족하다.

 

 

한글을 잘 이해하는 모델을 어떻게 찾을 수 있을까?!

 

한글을 지원하는 LLM들의 성능 순위를 관리하는 곳 중에서 나름 유명한 곳이 있다.

- https://huggingface.co/spaces/upstage/open-ko-llm-leaderboard

 

Colab에서 실행하기 위해서는 Model Size는 좀 제한을 해야 한다.

내가 만약 A100이라던지 H100을 사용할 수 있다면 성능만 바라보고 할 수 있겠지만...

 

31.66점이라는 좀 많이 부족한 점수이지만 그래도 작은 사이즈의 모델에서는 어쩔 수 없다.

 

설명이 많이 부족하다.

사실 개인적으로 올리는 많은 모델들이 다 이렇다 ^^

 

결과는 와우~!!!

LABEL_0 으로 0.94 score를 주고 있다. 부정적이라고 확신하는 것이다!!!

 

 

어제 포스팅에서 한글 모델을 사용했음에도 제대로 감정 분류를 하지 못하는 결과가 나와서 찜찜했는데,

그나마 짧은 시간 투자해서 원하는 수준 이상으로 결과가 나와서 뿌듯하다 ^^

 

이게 제대로 살펴본 것인지는 확신할 수 없지만, 나름 개인의 만족 !!!

반응형

'AI_ML > LLM' 카테고리의 다른 글

HuggingFace - LLAMA 3.2 for Korean  (2) 2024.11.12
HuggingFace - Learn - NLP Course #3  (3) 2024.11.11
HuggingFace - Learn - NLP Course  (1) 2024.11.09
Gemini 잔소리꾼 만들기  (1) 2024.11.08
HuggingFace (허깅페이스 소개)  (0) 2024.06.24

NLP 공부를 하려면 무조건 만나게 되는 HuggingFace(허깅페이스).

 

그런 허깅페이스에서는 친절하게도 강의를 제공해주고 있다.

더더욱 친절하게도 한글도 지원을 해준다.

HuggingFace

 

왼쪽 아래에 위치하고 있는 "Learn"을 클릭해보자.

Learn

 

여러 강의를 제공해주지만,

지금 우리가 관심있는 것은 처음에 등장한 "NLP Course"를 클릭하자.

NLP Course

 

어?! 영어로 나오네!?

왼쪽 위에 있는 언어 선택 메뉴에서 "KO"를 선택하면 된다.

KO

 

왼쪽 챕터를 보면 알겠지만, 아쉽게도 모든 강의를 한글로 제공해주지는 않는다.

(여러분들의 재능기부를 기대합니다!)

 

여기까지의 소개로만 끝나면 조금 아쉬움이 남으니.... ^^

HuggingFace를 활용하는 실습 코드들에 대해서 좀 더 알아보도록 하자.

 

강의 챕터 중 "트랜스포머로 무엇을 할 수 있나요?" 부분을 살펴보자.

트랜스포머로 무엇을 할 수 있나요?

 

가운데 위에 있는 "Open in Colab"을 클릭하자.

Colab

 

내 마음대로 수정하면서 뭔가 해보길 위해서는 "Drive에 사본 저장"을 해야 한다.

그런 다음 하나씩 실행해 보면서 살펴보자.

transformer

 

대체 뭐가 뭔지 모르겠다고!?

pipeline

 

HuggingFace를 활용할 수 있게 해주는 transformers의 pipeline을 사용해주고 있다.

여기에서는 감정 분석을 하고자 "pipeline('sentiment-analysis')"를 사용한다.

그리고는 "I've been waiting for a HuggingFace course my whole life." 문장에 대해서 분석해보라고 하고 있다.

그러면 결과는 [{'label': 'POSITIVE', 'score': 0.9598048329353333}] 라고 나오게 된다.

실행 결과

 

실행 결과 메시지를 보면 현재 어떤 모델을 사용하고 있는지를 알 수 있다.

- https://huggingface.co/distilbert/distilbert-base-uncased-finetuned-sst-2-english

HuggingFace

 

모델에 대한 정말 다양한 정보를 확인할 수 있다.

누가 개발했고, 라이선스는 어떻게 되며 어떻게 사용하는지에 대한 예제도 있고

심지어 위험성이나 편향성까지도 서술해주며, 어떤 데이터로 학습했는지도 알려준다.

오른쪽 부분을 보면 테스트를 해볼 수 있는 인터페이스도 제공해준다.

 

하지만, 우리는 한국인!!!!

 

지금 코드는 한글을 제대로 이해하지 못한다.

모델명만 봐도 알겠지만, 한글에 대해서 학습되지 못한 모델이다.

한글을 이해할 수 있는 아이로 해보자.

koBert

 

응?! label이 예쁘게 나오지도 않고 분석 결과도 좀 마음에 들지 않지만,

일단 내가 원하는 모델을 이용하는 방법을 살펴본 것으로 일단 만족해보자.

 

HuggingFace를 활용하는 것은 계속 더 공부해보도록 하겠다.

반응형

'AI_ML > LLM' 카테고리의 다른 글

HuggingFace - LLAMA 3.2 for Korean  (2) 2024.11.12
HuggingFace - Learn - NLP Course #3  (3) 2024.11.11
HuggingFace - Learn - NLP Course #2  (0) 2024.11.10
Gemini 잔소리꾼 만들기  (1) 2024.11.08
HuggingFace (허깅페이스 소개)  (0) 2024.06.24

그냥 막 갑자기 GenAI를 이용해서 뭐라도 하나 간단하게 만들어 보고 싶다는 생각에 막 진행해봤다.

 

0. 실습 환경

- Ubuntu 20.04

 

1. Gemini API

- 우리의 Google님은 간단하게 사용하는 정도는 무료로 제공해주신다.

  . https://ai.google.dev/pricing?hl=ko#1_5flash

Gemini Pricing

 

- 언제나 그렇듯이 API 사용을 위해서는 Key를 생성해야 한다.

  . https://ai.google.dev/aistudio?hl=ko

Google AI Studio

 

- 구글 계정을 통해 로그인 하고 API key를 얻으면 된다.

  . https://aistudio.google.com/apikey

Get API key

 

2. React App 생성

- Vite를 이용해서 React App을 생성하자. 다음 링크를 참고해서 진행하면 된다.

  . https://www.whatwant.com/entry/vite

 

3. 패키지 설치

- Gemini API 사용을 위해서 패키지를 설치하자.

> npm install @google/generative-ai

> npm install

> npm run dev

npm run dev

 

- 브라우저를 열어서 접속해보자.

WEB

 

4. 파일 생성

- src/ 디렉토리 밑에 파일 하나 새로 만들어서 코드를 작성해보자.

  . 여기에서는 NagBox.jsx 이름으로 만들어봤다.

new file

 

5. 코드 작성

- 다음과 같이 코드를 작성해보자.

import { useState, useEffect } from "react";
import { GoogleGenerativeAI } from "@google/generative-ai";

export default function NagBox() {
  const [response, setResponse] = useState("");
  const [error, setError] = useState(null);
  const [currentTime, setCurrentTime] = useState(new Date());

  const fetchNag = async () => {
    try {
      const genAI = new GoogleGenerativeAI("API KEY");
      const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
      const prompt = "공부를 열심히 할 수 있도록 잔소리를 해주세요.";
      const result = await model.generateContent(prompt);
      const text = result.response.text();
      setResponse(text);
    } catch (err) {
      setError(err.message);
    }
  };

  useEffect(() => {
    fetchNag();

    const nagIntervalId = setInterval(fetchNag, 30000);
    const clockIntervalId = setInterval(() => setCurrentTime(new Date()), 1000);

    return () => {
      clearInterval(nagIntervalId);
      clearInterval(clockIntervalId);
    };
  }, []);

  return (
    <div style={{ position: "relative", minHeight: "100vh" }}>
      {error ? <p>{error}</p> : <p>{response}</p>}
      <div
        style={{
          position: "fixed",
          bottom: 10,
          right: 10,
          backgroundColor: "white",
          padding: "10px",
          borderRadius: "5px",
          boxShadow: "0 0 10px rgba(0,0,0,0.2)",
        }}
      >
        {currentTime.toLocaleTimeString()}
      </div>
    </div>
  );
}

code


- main.jsx 파일도 수정해주자.

import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import './index.css'
// import App from './App.jsx'
import App from './NagBox.jsx'

createRoot(document.getElementById('root')).render(
  <StrictMode>
    <App />
  </StrictMode>,
)

 

code

 

- 웹브라우저로 결과를 확인해보자.

WEB

 

이모지를 사용하라고 하지도 않았는데...

우와... 잔소리를 하라고 했지, 나의 자존감을 꺾으라고는 안했는데... 우와~~~~ 제미나이, 대단하네!!!

 

 

기본적인 코드는 아래 사이트를 참고했습니다.

- https://www.codedex.io/projects/generate-a-poem-with-google-gemini

 

반응형

'AI_ML > LLM' 카테고리의 다른 글

HuggingFace - LLAMA 3.2 for Korean  (2) 2024.11.12
HuggingFace - Learn - NLP Course #3  (3) 2024.11.11
HuggingFace - Learn - NLP Course #2  (0) 2024.11.10
HuggingFace - Learn - NLP Course  (1) 2024.11.09
HuggingFace (허깅페이스 소개)  (0) 2024.06.24

여기에서는 실습 개념으로

Vite를 이용해서 React 앱 생성하는 과정만 빠르게 살펴볼 것이다.

 

0. 실습 환경

- Ubuntu 20.04

 

1. Node

- Vite를 사용하기 위해서는 node가 설치되어 있어야 한다.

- 아직 설치가 안되어 있다면, 아래 포스팅을 통해 nvm 기반으로 설치하자.

  . https://www.whatwant.com/entry/npm

nvm

 

- 원활하게 Vite를 사용하기 위해서는 node 버전이 18 이상이어야 한다고 한다.

node version

 

2. Vite 설치

- npm을 이용하여 vite를 설치하면 된다.

> npm install vite@latest

install vite

 

3. Project 생성

- vite를 이용해서 React project를 생성해보자.

  . 아래 캡처한 내역과 같이 3가지 정보를 작성 및 선택해주면 된다.

> npm create vite@latest

create project

 

4. App 실행

- vite가 알려준대로 진행해보면 된다.

> cd gemini-nagger

> npm install

> npm run dev

run

 

- 웹브라우저를 통해 확인해보자.

WEB

 

간략히 살펴보았다.

반응형

'Programming > Web' 카테고리의 다른 글

백엔드 프레임워크 - KeystoneJS  (1) 2023.07.13
npm, node 그리고 nvm  (0) 2023.01.04

앞서서 Postman을 다운로드 받아서 설치까지 진행을 해봤다.

아직 하지 않은 분들이 있다면 아래 포스트를 참고해서 설치를 하기 바란다.

API 테스트를 위한 Postman (포스트맨) - 설치

 

잘 동작하는지 알아보기 위해서는 API Service가 하나 있어야 한다.

얼마전 살펴본 기상청의 날씨 정보 API를 이용해보도록 하겠다.

날씨 정보 API 활용하기 (Python)

 

 

Postman을 실행하면 다음과 같은 화면이 나온다.

 

파이썬 코드를 reference로 삼아서

우리가 사용하고자 하는 API 정보를 살펴보자.

https://www.whatwant.com/entry/weather-api

 

우리가 사용하고자 하는 API 모습은 다음과 같다.

http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getUltraSrtNcst

 

HTTP 방식이라는 것을 일단 확실하게 하고 그 주소를 적어주면 된다.

 

parameters들은 그 아래에 하나씩 입력해주면 된다.

 

여기에서 조금 고생한 부분은 인증키 부분이다.

Python으로 작업을 할 때에는 Decoding된 인증키를 사용해야 했었는데,

Postman을 사용할 때에는 Encoding된 인증키를 넣어줘야 했다.

 

이제 "Send"를 누르면 결과를 확인할 수 있다.

 

 

사실 별 어려울 것 없이 간단한 사용인데,

과연 이게 Postman의 전부일까?!

 

당연히 아니다.

 

하지만, 본격적인 Postman 활용을 위해서는 Account를 등록해서 사용을 해야 한다.

회사에서 사용하기에는 뭔가 좀 찜찜한 조건이다.

 

나중에 필요하다고 하면

Account 등록해서 본격적인 사용하는 것도 한 번 살펴보도록 하겠다.

반응형

다른 API 테스트 툴을 써보려고 하다가

굳이 시장 지배적인 위치에 있는 Postman을 두고 다른 도구를 써야하나?라는 생각이 들어서... ^^

 

https://www.postman.com/

Postman

 

어?! 사이트 주소가 ".com" 이네!?

이거 회사에서 free 사용해도 되는 것일까?

Pricing

 

역시나! 가격 정책이 존재한다.

이거 참... 애매하다.

 

회사에서 상업적 목적으로 사용해도 되는걸까?

구글링을 해보니 이런 답변이 있긴 하다.

 

https://gytni.com/new_gytni/qna.php?document_srl=25138&mode=contact&mode2=view&mode3=chk

Q&A

 

언제든 변할 수 있는 것이 라이선스이고, 가격정책인지라

현재 시점에서도 허용되는 내역인지는 추가 확인이 필요할 것 같다.

 

법적 해석까지는 모르겠지만,

현재 Terms 내용을 살펴봐도 그렇고, 구글링 결과들을 살펴봐도

회사에서 상업적 목적으로 사용하는 것은 가능한 것으로 보인다.

 

그런데, 여기에서 하나 더 살펴볼 것이 있다.

위의 가격정책은 플랫폼 서비스로 제공되는 것에 기반한 정책으로 보인다.

Product

 

다운로드 받아서 직접 설치해서 사용할 수도 있는 것이다.

Downloads

 

다운로드 받아서 직접 설치/사용한다고 하여 무조건 free 인 것은 아니지만,

보안 측면에서도 그렇고 여러가지를 검토해봐도 그렇고

회사에서 사용한다고 하면 다운로드 받아서 직접 설치 후 사용하는 것이 안전하다고 판단된다.

 

 

 

1. Download

웹사이트를 통해서 다운로드를 받는 것이 가장 편하지만,

개인적인 취향으로 CLI를 통해 다운로드 받는 것을 좋아하기 때문에 다음과 같이 진행했다.

 

> wget https://dl.pstmn.io/download/latest/linux64 -O postman-linux-x64.tar.gz

 

 

2. Extract

압축 해제를 하면 된다.

 

참고로 주로 "/opt" 경로를 사용하도록 가이드를 하고 있는데.

개인적인 취향으로 "/srv/install/postman" 경로를 사용했다.

 

> tar -zxvf postman-linux-x64.tar.gz

 

 

3. Symlink

실행 경로 등을 위해 symlink 생성을 해주면 좋다.

 

> sudo ln -s /srv/install/postman/Postman/Postman /usr/bin/postman

 

 

4. Desktop Icon (Optional)

선택적이기는 한데,

GUI에서 편하게 사용하기 위해 아이콘을 만들어 놓으면 좋다.

 

> sudo nano /usr/share/applications/postman.desktop

 

[Desktop Entry]
Type=Application
Name=Postman
Icon=/srv/install/postman/Postman/app/resources/app/assets/icon.png
Exec="/srv/install/postman/Postman/Postman"
Comment=Postman Desktop App
Categories=Development;Code;

 

오른쪽 아래에 예쁘게 생성되어 있는 것을 볼 수 있다.

 

 

5. Execute

실행을 해보자.

위에서 생성한 아이콘을 이용해도 좋고, CLI를 통해서도 실행할 수 있다.

 

웹 인터페이스가 아니라 Client가 실행된다.

 

6. Account

계정을 요구한다.

"Create Free Account"를 선택하면...

 

홈페이지에서 계정 생성하는 화면으로 넘어온다.

굳이 계정을 만들고 싶지는 않은데...

 

그래서 "Continue without an account"를 선택해보면 다음과 같은 화면을 볼 수 있다.

 

부족하더라도 "Open Lightweight API Client"를 이용하도록 하자.

 

 

7. GUI Client

이제 드디어 원하는 화면을 볼 수 있다.

 

사용법은 다음 포스팅으로 정리해보겠다.

반응형

업무로 API 서비스를 만들 때,

최근에는 Python을 이용하는 것이 편하다보니 주로 FastAPI를 이용하곤 한다.

 

그러다가 2달 전쯤 새로운 웹-프레임워크(Web-Framework) 소식을 듣게 되었다.

- https://news.hada.io/topic?id=16091

GeekNews

 

새로운 프레임워크임에도 불구하고 의외로(?) 반응이 꽤 괜찮다.

 

사이트도 산뜻하게 디자인되어 있다.

- https://fastht.ml/

FastHTML

 

FastHTML 스스로 만든 페이지이겠지?! ㅋㅋㅋ

어!? 나처럼 생각하는 사람이 많아서인지..... 그렇다고 한다!!!

FastHTML

 

5천개가 넘는 Star와 200건이 넘는 Fork를 자랑하는 프로젝트이다.

- https://github.com/AnswerDotAI/fasthtml

GitHub

 

GeekNews에서 괜히 경쟁력이 있다는 말을 한 것이 아니다.

의외로 많은 것들이 제공/지원되고 있다.

- https://gallery.fastht.ml/

FastHTML Gallery

 

1. Installation

설치 과정은 Python 패키지답게 정말 심플하다.

- https://github.com/AnswerDotAI/fasthtml?tab=readme-ov-file#installation

Installation

 

그래서, Python 가상환경 만들고 pip 설치를 진행했는데...

Error

 

얼라료?!

에러!? 이런!!

 

패키지를 아예 찾지 못하는 것이 이상해서...

혹시나 하고 Python 버전을 올려봤다.

Python 3.10.9

 

이런, Python 3.8.x 버전은 지원하지 않는 것으로 보인다.

짧게 살펴봤지만, Document 어디에서도 Python 버전 제약에 대한 설명이 없었는데....

 

 

2. Usage

준비가 되었으니 빨리 Hello를 외쳐보자.

 

main.py

 

실행은 그냥 하면 된다.

Execute

 

실행 결과에서 안내해주는 주소를 참고해서

웹-브라우저로 결과를 확인해보자.

Chrome

 

소스코드를 확인해보면 다음과 같다.

View Source

 

그런데, 웹-브라우저에서 "Hello World!" 부분을 클릭해도 아무런 일이 발생하지 않는다.

(내부적으로는 404 에러가 발생하겠지만 ^^)

 

소스코드에 8-9 라인을 다음과 같이 추가하고 Save를 해보자.

update

 

그러면, 다음과 같이 파일이 변경된 것을 감지하고 자동으로 Reloading을 한다!!!

브라보 !!!

Reloading

 

웹-브라우저에서 "Hello World!" 부분을 클릭하면

다음과 같이 다른 내용이 출력된다.

Click

 

호오~ 정말 심플하네!!!

 

 

3. Example

여러 예시들을 참고하면 도움이 될 것이다.

- https://github.com/AnswerDotAI/fasthtml-example

GitHub

 

다양한 App 예시들을 볼 수 있다.

Exaples

 

음... 과연 앞으로도 지속적으로 성장을 할 것인지

관심있게 지켜봐야겠다.

반응형

모르는 사람은 모르고 살지만,

아는 사람은 정말 잘 사용한다는 "Config Management (Config 관리)"  도구를 소개하고자 한다.

 

"Config"라고 지칭하면 이를 듣는 사람이 어떤 것을 떠올려야할지 애매한 부분이 있는데,

"Environment Variable"이라고 말하는 것이 좀 더 명확할 것 같다.

 

1. Background

개발을 할 때 DB 서버의 IP 라던지 API 서버의 URL,

인증을 위한 token 값 또는 아이디나 패스워드 같은 값들을 '환경 변수'로 설정을 하곤 한다.

 

Dev 환경이나 Staging, Production 환경에 따라 변경되는 값이라거나

아이디, 패스워드와 같이 보안에 중요한 내역들을 소스 코드 내부에 저장하는 것은 피해야하기 때문이다.

 

간단한 예시를 들어보자.

우선 Python으로 아래와 같은 코드를 만들어봤다.

 

그리고 '환경 변수' 설정에 따라 어떠한 결과가 나오는지 확인해보자.

 

2. dotenv

그런데, 매번 위와 같이 환경 변수를 CLI 형태로 직접 입력해주는 것은 상당히 번거롭다.

귀찮은 측면도 있지만, 재부팅 되거나 하면 환경 변수가 모두 사라지는 것도 문제다.

 

더더욱 어려운 점은 환경 변수 내역에 대한 이력 관리가 안된다는 점이다.

시간이 지나서 모두 잊어버리는 경우도 종종 발생한다.

 

그래서, 이런 이슈를 해결하기 위해 ".env" 파일을 만들어서 활용하는 방법을 사용하곤 한다.

 

Python 코드로 이를 사용하는 방법을 알아보자.

추가 패키지 설치가 필요하니, 가상화 환경을 먼저 꾸며보자.

 

"dotenv" 패키지를 불러들여서 ".env" 파일을 읽어들이도록 할 수 있다.

 

".env" 파일은 다음과 같이 작성이 되어 있으면 된다.

 

실제 환경 변수에 선언된 내역이 없어도

'.env' 파일에 있는 내용을 환경 변수처럼 불러들여서 사용할 수 있다는 것이 확인된다.

 

이렇게 환경 변수를 사용하는 것도 충분히 좋은 방법이지만,

Dev - Stagiing - Production 각 환경에 따른 환경 변수를 한 번에 관리하기에 어려움이 있고

'.env' 파일이 Plain Text 형식이라 token 값이나 아이디, 패스워드 등을 관리하기에는 보안 위협이 있다.

 

3. dotenvx

기존의 dotenv의 부족한 부분을 개선해서 새로 나온 것이 dotenvx 이다.

사이트에 나온 것 처럼 dotenv. better.  !!!

https://dotenvx.com/

 

공식 사이트도 좋지만, GitHub 페이지가 개인적으로는 더 끌린다 ^^

https://github.com/dotenvx/dotenvx

 

dotenvx에서 가장 중점을 두고 있는 3가지 특징은 다음과 같다.

 

Run Anywhere → inconsistency across platforms

- Multiple Environments → juggling multiple environments

- Encryption → leaking your .env file

 

그럼 설치 과정부터 하나씩 살펴보자.

 

 

① Install

정말 다양한 설치 방법을 지원하고 있다.

https://dotenvx.com/docs/install

 

편한 방법들도 있지만,

방화벽 등의 상황에서도 활용 가능한 GitHub Release 파일을 이용한 설치 방법으로 진행해보겠다.

 

 

다운로드 받아서 압축만 풀면 된다.

> curl -L -o dotenvx.tar.gz "https://github.com/dotenvx/dotenvx/releases/latest/download/dotenvx-$(uname -s)-$(uname -m).tar.gz"

> tar -xzf dotenvx.tar.gz

> ./dotenvx help

 

그냥 그대로 실행해보면 그냥 된다.

 

GitHub의 Release에서 다운로드 받아서 압축 풀면 되는 것이다.

https://github.com/dotenvx/dotenvx/releases

 

제대로 사용하기 위해서는 PATH 경로를 추가해줘야 한다.

 

각자의 Shell 상황에 따라 달라질텐데,

필자는 ZSH 환경이기에 다음과 같이 압축 해제한 경로를 추가해줬다.

 

필자가 실행한 내역들도 참고 삼아 공유해본다.

 

② Basic

간단한 사용법을 알아보도록 하자.

'dotenv' 패키지를 불러들이지 않는 기본적인 소스코드로 살펴보겠다.

 

환경 변수로 등록된 내역이 없는 상황에서

'.env' 파일의 내용을 환경 변수로 다룰 수 있는 것을 확인해 볼 수 있다.

 

Dev - Staging - Production 과 같이 여러 실행 환경이 있을 때에는 다음과 같이 사용할 수 있다.

'.env.production' 파일을 우선 생성해보자.

 

실행할 때 '-f' 옵션을 통해 특정 파일을 지칭할 수 있다.

 

'.env' 형식의 파일 이름이 아니라 어떤 파일 이름이라도 상관없이 지정할 수 있는 것이다.

 

이번에는 암호화를 진행해보겠다.

"dotenvx encrypt" 명령어를 이용해서 암호화할 파일을 지정해주면 된다.

 

지정한 파일은 다음과 같이 내용이 변경되고,

 

Private Key 파일을 위한 새로운 파일이 하나 생성되었다.

 

이렇게 암호화를 하면,

데이터(환경 변수 내용)를 commit 해서 버전 관리를 하더라도 그 내용이 유출되지 않도록 할 수 있다.

 

대신 실행하는 환경에는 Private Key가 저장되어 있는 키 파일을 넣어줘야 한다.

당연하게도 키 파일은 소스코드 저장소에 저장되면 안된다.

 

 

설치 과정도 쉽고,

사용 방법도 쉬운 아주 유용한 도구인 것 같다.

반응형

+ Recent posts