<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>_master_branch.log</title>
        <link>https://velog.io/</link>
        <description>세상의원리</description>
        <lastBuildDate>Wed, 27 Nov 2024 04:54:41 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>_master_branch.log</title>
            <url>https://velog.velcdn.com/images/_master_branch/profile/b006faf7-b686-4b43-a20f-0ee3bb1217b8/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. _master_branch.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/_master_branch" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[엑셀 llm 어시스턴트 위한 내부 api?]]></title>
            <link>https://velog.io/@_master_branch/%EC%97%91%EC%85%80-llm-%EC%96%B4%EC%8B%9C%EC%8A%A4%ED%84%B4%ED%8A%B8-%EC%9C%84%ED%95%9C-%EB%82%B4%EB%B6%80-api</link>
            <guid>https://velog.io/@_master_branch/%EC%97%91%EC%85%80-llm-%EC%96%B4%EC%8B%9C%EC%8A%A4%ED%84%B4%ED%8A%B8-%EC%9C%84%ED%95%9C-%EB%82%B4%EB%B6%80-api</guid>
            <pubDate>Wed, 27 Nov 2024 04:54:41 GMT</pubDate>
            <description><![CDATA[<p>엑셀(Excel)에 LLM 어시스턴트를 통합하려면, 엑셀의 주요 구성 요소(셀, 시트, 워크북, 함수, 차트 등)를 제어하고 데이터를 읽고 쓰는 API가 필요합니다. 이를 통해 LLM 어시스턴트가 사용자의 자연어 요청에 따라 엑셀 작업을 수행할 수 있습니다. 다음은 엑셀 내부 각 구성 요소에 필요한 API 목록입니다.</p>
<ol>
<li>워크북(Workbook) API
엑셀 파일 단위에서 데이터를 가져오고 관리하는 API.</li>
</ol>
<p>GET /workbooks</p>
<p>현재 열려 있는 모든 워크북 목록 가져오기.
응답 예시:
json
코드 복사
[
  {&quot;id&quot;: &quot;workbook1&quot;, &quot;name&quot;: &quot;Budget.xlsx&quot;},
  {&quot;id&quot;: &quot;workbook2&quot;, &quot;name&quot;: &quot;SalesData.xlsx&quot;}
]
POST /workbooks</p>
<p>새 워크북 생성.
파라미터 예시:
json
코드 복사
{&quot;name&quot;: &quot;NewWorkbook&quot;}
응답 예시:
json
코드 복사
{&quot;id&quot;: &quot;workbook3&quot;, &quot;name&quot;: &quot;NewWorkbook.xlsx&quot;}
DELETE /workbooks/{workbook_id}</p>
<p>특정 워크북 닫기 또는 삭제.
2. 워크시트(Worksheet) API
각 워크북 내에서 개별 시트(탭)를 관리하는 API.</p>
<p>GET /workbooks/{workbook_id}/sheets</p>
<p>특정 워크북의 모든 시트 목록 가져오기.
응답 예시:
json
코드 복사
[
  {&quot;id&quot;: &quot;sheet1&quot;, &quot;name&quot;: &quot;Summary&quot;},
  {&quot;id&quot;: &quot;sheet2&quot;, &quot;name&quot;: &quot;Details&quot;}
]
POST /workbooks/{workbook_id}/sheets</p>
<p>새 시트 추가.
파라미터 예시:
json
코드 복사
{&quot;name&quot;: &quot;NewSheet&quot;}
DELETE /workbooks/{workbook_id}/sheets/{sheet_id}</p>
<p>특정 시트 삭제.
PUT /workbooks/{workbook_id}/sheets/{sheet_id}/rename</p>
<p>시트 이름 변경.
파라미터 예시:
json
코드 복사
{&quot;new_name&quot;: &quot;UpdatedSheet&quot;}
3. 셀(Cell) API
엑셀의 셀 데이터를 읽고 쓰는 API.</p>
<p>GET /workbooks/{workbook_id}/sheets/{sheet_id}/cells/{range}</p>
<p>특정 범위의 셀 데이터를 가져오기.
예시 요청: GET /workbooks/1/sheets/1/cells/A1:B10
응답 예시:
json
코드 복사
{
  &quot;range&quot;: &quot;A1:B10&quot;,
  &quot;values&quot;: [
    [&quot;Name&quot;, &quot;Sales&quot;],
    [&quot;John&quot;, 500],
    [&quot;Doe&quot;, 300]
  ]
}
PUT /workbooks/{workbook_id}/sheets/{sheet_id}/cells/{range}</p>
<p>특정 범위의 셀 데이터 업데이트.
파라미터 예시:
json
코드 복사
{
  &quot;range&quot;: &quot;A1:A2&quot;,
  &quot;values&quot;: [[&quot;UpdatedName&quot;], [&quot;UpdatedSales&quot;]]
}
POST /workbooks/{workbook_id}/sheets/{sheet_id}/cells/formula</p>
<p>특정 셀에 수식 추가.
파라미터 예시:
json
코드 복사
{
  &quot;cell&quot;: &quot;C1&quot;,
  &quot;formula&quot;: &quot;=SUM(B1:B10)&quot;
}
4. 테이블(Table) API
엑셀의 데이터 테이블을 관리하는 API.</p>
<p>GET /workbooks/{workbook_id}/sheets/{sheet_id}/tables</p>
<p>특정 시트 내 테이블 목록 가져오기.
POST /workbooks/{workbook_id}/sheets/{sheet_id}/tables</p>
<p>범위를 지정하여 새로운 테이블 생성.
파라미터 예시:
json
코드 복사
{
  &quot;range&quot;: &quot;A1:D10&quot;,
  &quot;name&quot;: &quot;SalesTable&quot;
}
DELETE /workbooks/{workbook_id}/sheets/{sheet_id}/tables/{table_id}</p>
<p>특정 테이블 삭제.
PUT /workbooks/{workbook_id}/sheets/{sheet_id}/tables/{table_id}/update</p>
<p>테이블 데이터 업데이트.
5. 차트(Chart) API
엑셀 차트를 생성하고 관리하는 API.</p>
<p>GET /workbooks/{workbook_id}/sheets/{sheet_id}/charts</p>
<p>특정 시트의 모든 차트 목록 가져오기.
POST /workbooks/{workbook_id}/sheets/{sheet_id}/charts</p>
<p>새 차트 생성.
파라미터 예시:
json
코드 복사
{
  &quot;type&quot;: &quot;bar&quot;,
  &quot;range&quot;: &quot;A1:B10&quot;,
  &quot;title&quot;: &quot;Sales Chart&quot;
}
DELETE /workbooks/{workbook_id}/sheets/{sheet_id}/charts/{chart_id}</p>
<p>특정 차트 삭제.
PUT /workbooks/{workbook_id}/sheets/{sheet_id}/charts/{chart_id}/update</p>
<p>차트 데이터 또는 스타일 업데이트.
6. 함수(Function) API
엑셀의 기본 함수들을 호출하거나 커스텀 함수를 실행하는 API.</p>
<p>POST /workbooks/{workbook_id}/functions</p>
<p>기본 함수 호출.
파라미터 예시:
json
코드 복사
{
  &quot;function&quot;: &quot;SUM&quot;,
  &quot;parameters&quot;: [10, 20, 30]
}
응답 예시:
json
코드 복사
{&quot;result&quot;: 60}
POST /workbooks/{workbook_id}/custom_functions</p>
<p>사용자 정의 함수 실행.
파라미터 예시:
json
코드 복사
{
  &quot;name&quot;: &quot;CalculateTax&quot;,
  &quot;parameters&quot;: {&quot;value&quot;: 100, &quot;rate&quot;: 0.1}
}
7. 실시간 동기화 및 이벤트 API
사용자가 엑셀에서 작업할 때 실시간으로 반영되도록 하기 위한 API.</p>
<p>GET /workbooks/{workbook_id}/events</p>
<p>특정 워크북의 모든 변경 이벤트 조회.
WebSocket 기반 실시간 알림</p>
<p>셀 업데이트, 시트 추가/삭제 등의 실시간 알림을 구독.
예시 이벤트:
json
코드 복사
{
  &quot;event&quot;: &quot;cell_update&quot;,
  &quot;range&quot;: &quot;A1&quot;,
  &quot;new_value&quot;: 100
}
8. 파일 저장 및 공유 API
엑셀 파일 저장, 다운로드, 공유를 위한 API.</p>
<p>POST /workbooks/{workbook_id}/save</p>
<p>현재 워크북 저장.
GET /workbooks/{workbook_id}/download</p>
<p>특정 워크북 다운로드.
POST /workbooks/{workbook_id}/share</p>
<p>특정 사용자와 워크북 공유.
파라미터 예시:
json
코드 복사
{&quot;user_email&quot;: &quot;<a href="mailto:user@example.com">user@example.com</a>&quot;}
필수 추가 고려 사항
권한 및 보안</p>
<p>엑셀 데이터 접근 시 인증 및 권한 관리 필요(OAuth, JWT).
LLM 통합</p>
<p>사용자가 자연어로 명령을 내릴 경우, 이를 API 요청으로 변환.
예: &quot;A열의 값을 모두 더해줘&quot; → POST /workbooks/1/functions 호출.
확장성</p>
<p>엑셀의 추가 플러그인 및 매크로 기능도 통합 가능하도록 API 설계.</p>
<h4 id="이러한-api-설계를-기반으로-엑셀-llm-어시스턴트를-구축하면-사용자-요청에-따라-자연스럽게-데이터를-관리하고-분석할-수-있습니다">이러한 API 설계를 기반으로, 엑셀 LLM 어시스턴트를 구축하면 사용자 요청에 따라 자연스럽게 데이터를 관리하고 분석할 수 있습니다</h4>
]]></description>
        </item>
        <item>
            <title><![CDATA[AI 데이터센터 밸류체인]]></title>
            <link>https://velog.io/@_master_branch/AI-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%84%BC%ED%84%B0-%EB%B0%B8%EB%A5%98%EC%B2%B4%EC%9D%B8</link>
            <guid>https://velog.io/@_master_branch/AI-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%84%BC%ED%84%B0-%EB%B0%B8%EB%A5%98%EC%B2%B4%EC%9D%B8</guid>
            <pubDate>Wed, 23 Oct 2024 00:03:03 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/_master_branch/post/11a941ba-1875-47e2-8f84-5dca3ac31a75/image.jpg" alt=""></p>
<p>AI 데이터센터는 다양한 기술과 인프라로 이루어져 있으며, 각 구성 요소는 AI 모델의 훈련과 추론을 효과적으로 지원하는 데 중요한 역할을 합니다. 아래는 AI 데이터센터의 주요 구성 요소들을 설명한 내용입니다.</p>
<h3 id="1-반도체-semiconductors">1. 반도체 (Semiconductors)</h3>
<p>메모리: AI 데이터센터에서 데이터를 저장하고 처리하는 데 필수적인 메모리 기술을 제공하는 회사들로는 Micron, SK Hynix, Samsung이 있습니다.</p>
<p>GPU &amp; ASIC: 대규모 병렬 연산을 지원하는 GPU 및 ASIC 칩을 개발하는 회사들로는 NVIDIA, AMD, Cerebras, Groq, Google 등이 있습니다. 이들은 AI 모델의 훈련과 추론에 필요한 높은 처리 능력을 제공합니다.</p>
<p>CPU: 전통적인 컴퓨팅을 위한 CPU를 제공하는 주요 업체로는 AMD, Intel, NVIDIA가 있습니다. CPU는 AI 데이터센터에서 기본적인 연산을 수행하는 핵심 컴포넌트입니다.</p>
<h3 id="2-it-인프라-it-infrastructure">2. IT 인프라 (IT Infrastructure)</h3>
<p>서버: 데이터 처리 및 AI 워크로드를 호스팅하는 서버 장비를 제공하는 회사로는 Dell EMC, HPE, Supermicro 등이 있습니다. 이들은 고성능 컴퓨팅(HPC) 인프라를 지원합니다.</p>
<p>네트워킹: 데이터센터 내외부의 데이터 흐름을 관리하는 네트워킹 솔루션 제공업체로는 Broadcom, Cisco, Arista 등이 있습니다.</p>
<p>스토리지: AI 훈련 및 추론을 위한 대량의 데이터를 효율적으로 저장하고 액세스하는 데 필요한 스토리지 솔루션은 Dell EMC, NetApp, Pure Storage 등이 제공합니다.</p>
<h3 id="3-컴퓨트-compute">3. 컴퓨트 (Compute)</h3>
<p>하이퍼스케일러: 클라우드 컴퓨팅 자원을 대규모로 제공하는 하이퍼스케일러는 AI 훈련과 추론의 규모를 확장하는 데 중요한 역할을 합니다. 대표적인 하이퍼스케일러로는 AWS, Azure, Google Cloud, Oracle이 있습니다.</p>
<p>AI 클라우드: AI 작업에 특화된 클라우드 서비스를 제공하는 AI 클라우드 회사로는 CoreWeave, Lambda, Crusoe 등이 있습니다.</p>
<h3 id="4-개발자-및-운영자-developers--operators">4. 개발자 및 운영자 (Developers &amp; Operators)</h3>
<p>AI 데이터센터를 설계하고 운영하는 회사들로는 Vantage Data Centers, Equinix, Digital Realty 등이 있으며, 이들은 데이터센터의 물리적 인프라 및 서비스를 제공합니다.</p>
<h3 id="5-에너지-energy">5. 에너지 (Energy)</h3>
<p>재생 가능 에너지: AI 데이터센터는 에너지 소모가 큰 만큼 재생 가능 에너지원에 대한 의존도가 높아지고 있습니다. First Solar, Enphase, NextrEra Energy 등의 기업들이 재생 가능 에너지를 제공합니다.</p>
<p>핵에너지: Helion, Radiant, Westinghouse 같은 회사들은 대규모 전력 공급을 위한 핵에너지 솔루션을 제공합니다.</p>
<p>오일 &amp; 가스: ExxonMobil, Chevron과 같은 회사들이 데이터센터 운영에 필요한 전통적인 에너지원도 제공합니다.</p>
<p>배터리: Tesla, Form Energy, ExxonMobil과 같은 배터리 기업들은 에너지를 저장하고 안정적으로 공급할 수 있는 솔루션을 제공합니다.</p>
<h3 id="6-산업-장비-industrial-equipment">6. 산업 장비 (Industrial Equipment)</h3>
<p>전기 장비: 데이터센터의 전력 인프라를 지원하는 주요 전기 장비 회사로는 ABB, Eaton, Siemens 등이 있습니다.</p>
<p>냉각 솔루션: AI 데이터센터는 대규모 연산 작업으로 인해 발생하는 열을 관리하기 위해 다양한 냉각 솔루션이 필요합니다. Vertiv, Jetcool, Iceotope와 같은 회사들이 데이터센터 냉각을 위한 솔루션을 제공합니다.</p>
<h3 id="7-추론inference">7. 추론(Inference)</h3>
<p>추론 작업은 훈련된 AI 모델을 활용하여 실시간 데이터를 처리하는 과정을 의미합니다. 이를 지원하는 회사들로는 Groq, DeepInfra, Together.ai 등이 있습니다</p>
<h3 id="8-현시점에서-빅테크-하이퍼스케일러">8. 현시점에서 빅테크-하이퍼스케일러</h3>
<p>빅테크 하이퍼스케일러(Hyperscaler)는 전 세계적으로 확장 가능한 대규모 클라우드 인프라를 운영하는 기업들을 의미합니다. 이들은 AI 및 기타 대규모 데이터 처리 작업을 지원하기 위해 방대한 컴퓨팅 리소스, 스토리지, 네트워킹 인프라를 제공하며, 수많은 서버와 데이터센터를 통해 컴퓨팅 자원을 자동으로 확장(Scaling)할 수 있습니다.</p>
<h4 id="하이퍼스케일러의-주요-특징">하이퍼스케일러의 주요 특징</h4>
<p>확장성 (Scalability): 하이퍼스케일러는 급격히 증가하는 워크로드를 빠르게 처리할 수 있도록 설계되어 있습니다. 이를 위해 수십만 개의 서버를 연결하고, AI 훈련이나 대규모 데이터 처리 작업이 필요할 때 자동으로 리소스를 추가하여 대응할 수 있습니다.</p>
<p>고가용성 (High Availability): 전 세계에 분산된 데이터센터 네트워크를 통해 안정적인 서비스를 제공하며, 중단 없는 운영을 보장하기 위해 복수의 데이터센터를 중복 사용합니다. 이는 비즈니스 연속성 및 데이터 복구를 가능하게 합니다.</p>
<p>비용 효율성 (Cost Efficiency): 하이퍼스케일러는 자원을 필요할 때마다 확장 또는 축소할 수 있어 비용을 효율적으로 관리할 수 있습니다. 이를 통해 고객은 고정된 인프라에 투자하지 않고, 필요한 만큼만 컴퓨팅 자원을 사용하고 비용을 지불할 수 있습니다.</p>
<p>자동화 (Automation): 하이퍼스케일러들은 대규모 자동화된 인프라 관리를 지원합니다. 특히 AI 훈련과 추론을 위한 자원 할당, 모니터링, 조정 등을 자동으로 처리하여 개발자와 운영자가 인프라 관리에 대한 부담을 덜 수 있습니다.</p>
<h4 id="주요-하이퍼스케일러">주요 하이퍼스케일러</h4>
<p>Amazon Web Services (AWS):
AWS는 클라우드 컴퓨팅 시장의 선두주자이며, AI와 머신러닝을 포함한 수천 가지의 클라우드 서비스를 제공합니다. AWS의 데이터센터는 전 세계에 분산되어 있으며, Amazon EC2(Elastic Compute Cloud)를 통해 확장 가능한 가상 머신을 제공하고, AI 모델 훈련 및 배포를 위한 SageMaker와 같은 서비스를 지원합니다.</p>
<p>Microsoft Azure:
Microsoft Azure는 클라우드 기반의 컴퓨팅, 데이터 관리, AI 훈련 및 배포 플랫폼을 제공하는 세계적인 하이퍼스케일러입니다. Azure의 클라우드 인프라는 수십 개의 리전(지역)에 걸쳐 있으며, AI 워크로드를 위한 고성능 컴퓨팅 인스턴스와 머신러닝 플랫폼(Azure Machine Learning)을 제공합니다.</p>
<p>Google Cloud:
Google Cloud는 Google의 클라우드 서비스 플랫폼으로, 특히 AI 및 머신러닝 분야에서 강력한 도구를 제공합니다. Google Cloud는 전 세계적으로 분산된 데이터센터 인프라를 통해 TensorFlow 및 AI 관련 도구, AI 모델 훈련을 위한 TPU(Tensor Processing Unit) 등을 제공합니다.</p>
<p>Oracle Cloud:
Oracle은 전통적인 데이터베이스 솔루션과 더불어 클라우드 인프라와 AI 훈련을 지원하는 서비스를 제공합니다. Oracle Cloud는 높은 성능과 보안을 강조하며, 특히 AI 워크로드를 처리할 수 있는 고성능 컴퓨팅 인프라를 운영합니다.</p>
<p>Meta (Facebook):
Meta는 AI 연구 및 훈련에 막대한 자원을 투입하고 있으며, 자사 서비스를 위해 대규모 하이퍼스케일 데이터센터를 운영합니다. AI 기반의 추천 알고리즘, 자연어 처리, 컴퓨터 비전 등을 처리하기 위해 자체 데이터센터와 외부 협력사를 통해 확장 가능한 AI 인프라를 구축하고 있습니다.</p>
<h4 id="하이퍼스케일러의-ai-지원">하이퍼스케일러의 AI 지원</h4>
<p>하이퍼스케일러들은 AI 훈련과 추론을 위한 대규모 인프라를 운영하며, 특히 클라우드 AI 플랫폼을 통해 사용자가 인공지능 모델을 더 쉽게 개발하고 배포할 수 있도록 지원합니다. 주요 하이퍼스케일러가 제공하는 AI 관련 서비스는 다음과 같습니다.</p>
<p>AWS AI/ML 서비스: Amazon SageMaker, Rekognition, Transcribe와 같은 AI 서비스로 모델 개발, 컴퓨터 비전, 음성 인식 등 다양한 기능을 지원합니다.</p>
<p>Microsoft Azure AI: Azure는 Azure Machine Learning, Cognitive Services를 통해 자연어 처리, 음성 인식, 컴퓨터 비전 등 다양한 AI 기능을 제공합니다.</p>
<p>Google Cloud AI: Google Cloud는 Vertex AI, BigQuery ML 등을 통해 AI 모델 훈련과 배포를 지원하며, 특히 데이터 사이언스 작업과 결합된 AI 솔루션을 제공합니다.</p>
<h4 id="하이퍼스케일러의-중요성">하이퍼스케일러의 중요성</h4>
<p>하이퍼스케일러는 AI와 같은 고성능 컴퓨팅 작업의 필수 인프라를 제공하며, 이를 통해 전 세계적으로 AI 연구와 혁신을 가속화하고 있습니다. 특히 기업들이 자체 데이터센터를 운영하는 대신 클라우드 기반으로 전환함으로써 비용 절감, 신속한 확장, 높은 가용성의 이점을 얻을 수 있습니다. AI를 포함한 디지털 트랜스포메이션이 가속화되는 현시점에서 하이퍼스케일러의 역할은 더욱 중요해지고 있습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[임계질량(Critical Mass)의 다양한 적용]]></title>
            <link>https://velog.io/@_master_branch/%EC%9E%84%EA%B3%84%EC%A7%88%EB%9F%89Critical-Mass%EC%9D%98-%EB%8B%A4%EC%96%91%ED%95%9C-%EC%A0%81%EC%9A%A9</link>
            <guid>https://velog.io/@_master_branch/%EC%9E%84%EA%B3%84%EC%A7%88%EB%9F%89Critical-Mass%EC%9D%98-%EB%8B%A4%EC%96%91%ED%95%9C-%EC%A0%81%EC%9A%A9</guid>
            <pubDate>Fri, 18 Oct 2024 09:11:31 GMT</pubDate>
            <description><![CDATA[<p>임계질량(Critical Mass)은 물리학에서 처음 등장한 개념으로, 핵 반응이 지속적으로 일어나기 위해 필요한 최소한의 물질량을 의미합니다. 이 개념은 다양한 분야에 걸쳐 중요한 전환점을 설명하는 데 사용되며, 시스템이 임계치에 도달하면 자체적으로 폭발적인 성장을 하게 되는 현상을 의미합니다. 이번 글에서는 임계질량이 공학, AI 개발 단계, 주식에서 어떻게 나타나는지 살펴보겠습니다.</p>
<h3 id="1-공학에서의-임계질량-시스템의-자립적-성장">1. 공학에서의 임계질량: 시스템의 자립적 성장</h3>
<p>공학 분야에서 임계질량은 특정 프로세스가 자립적으로 지속되기 위해 필요한 최소 조건을 말합니다. 예를 들어, 핵 반응은 핵연료가 임계질량에 도달할 때 자율적으로 지속됩니다. 이는 에너지가 충분히 모였을 때 일어나는 자연스러운 현상으로, 외부 개입 없이도 반응이 계속해서 유지됩니다. 이러한 개념은 에너지 시스템, 제조 공정, 심지어 통신 네트워크 설계에서도 유사하게 적용됩니다.</p>
<p>에너지 시스템에서의 태양열 발전: 일정 수준 이상의 태양 에너지를 축적할 수 있을 때 전력 생산이 안정적으로 지속됩니다.</p>
<p>통신망: 네트워크에 충분한 사용자와 장치가 연결되면, 데이터 전송의 효율성이 증가하고 스스로 유지됩니다.</p>
<h3 id="2-ai-개발-단계에서의-임계질량-ai를-만드는-ai">2. AI 개발 단계에서의 임계질량: AI를 만드는 AI</h3>
<p>AI의 개발 단계에서도 임계질량은 매우 중요한 개념입니다. AI 연구는 최근 AI가 AI를 개발하는 단계에 도달했습니다. 이는 AI가 발전함에 따라 복잡한 시스템을 스스로 설계하고 개선하는 능력을 갖추게 되는 임계 지점입니다. AI는 데이터를 학습하고 스스로 성능을 개선해 나가며, 임계질량을 넘어서면 자율적으로 학습하고 발전하는 AI의 시대가 열립니다.</p>
<p>AutoML(AI를 만드는 AI): 이 기술은 AI 모델을 스스로 생성하고 개선할 수 있는 시스템입니다. 초기에는 많은 데이터와 학습 시간이 필요하지만, 임계질량에 도달하면 AI가 스스로 더 나은 AI 모델을 만들어낼 수 있게 됩니다. 이는 AI 연구와 개발의 패러다임을 전환시키고 있습니다.</p>
<p>지능형 시스템의 자율적 개선: AI가 일정 수준 이상의 데이터와 연산 능력을 갖추게 되면, 더 이상 사람의 직접적인 개입 없이도 새로운 알고리즘을 탐색하고 적용할 수 있습니다. 이는 인공지능 발전에 있어서 중대한 전환점입니다.</p>
<h3 id="3주식에서">3.주식에서</h3>
<p>주식 자산에서 &quot;critical mass&quot;는 주식 시장에서 특정 자산이 일정한 규모에 도달하면 자체적으로 강력한 성장을 촉발하거나 유지할 수 있는 상태를 의미합니다. 이 개념은 투자자들의 관심이 한 자산에 집중되고, 그 자산의 가치가 급격히 상승하는 임계점을 가리킵니다. 임계질량에 도달한 주식이나 자산은 더 많은 투자자들이 끌리게 되고, 이로 인해 거래량과 유동성이 증가하면서 추가적인 가격 상승을 유발하는 선순환이 일어납니다.</p>
<p>주식 시장에서의 critical mass는 보통 다음과 같은 요인에 의해 발생할 수 있습니다:</p>
<p>거래량 증가: 거래량이 일정 수준 이상으로 증가하면 유동성이 높아지면서 더 많은 투자자들이 시장에 진입합니다.
심리적 요인: 많은 투자자들이 특정 자산에 대한 긍정적인 신호를 보고 따라 투자하기 시작하면서 매수세가 강해지는 현상이 나타날 수 있습니다.
기술적 분석 지표 돌파: 특정한 기술적 저항선이나 지지선을 돌파할 때 시장이 반응하여 더 큰 매수세가 유입될 수 있습니다.
기본적 요인: 회사의 실적 개선, 업계의 성장, 경제 전반의 호황 등으로 인해 자산의 가치를 재평가하는 임계점에 도달할 수 있습니다.
이러한 critical mass를 넘어서면 투자자들의 신뢰와 기대가 강화되어 더 큰 시장 성장으로 이어질 수 있지만, 지나친 기대나 과열은 결국 거품을 일으킬 위험도 있습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[LLM에서 Instruct 모델이란? 일반 모델과 차이]]></title>
            <link>https://velog.io/@_master_branch/LLM%EC%97%90%EC%84%9C-Instruct-%EB%AA%A8%EB%8D%B8%EC%9D%B4%EB%9E%80-%EC%9D%BC%EB%B0%98-%EB%AA%A8%EB%8D%B8%EA%B3%BC-%EC%B0%A8%EC%9D%B4</link>
            <guid>https://velog.io/@_master_branch/LLM%EC%97%90%EC%84%9C-Instruct-%EB%AA%A8%EB%8D%B8%EC%9D%B4%EB%9E%80-%EC%9D%BC%EB%B0%98-%EB%AA%A8%EB%8D%B8%EA%B3%BC-%EC%B0%A8%EC%9D%B4</guid>
            <pubDate>Thu, 17 Oct 2024 09:17:05 GMT</pubDate>
            <description><![CDATA[<p>LLM에서 Instruct 모델과 일반 모델 차이점
요즘 LLM(Large Language Model)이라고 불리는 AI가 참 많이 쓰이죠. GPT 기반의 AI도 그렇고, 다양한 챗봇들도 있고. 그런데 이런 LLM에는 크게 두 가지 종류가 있다는 사실, 알고 계셨나요? 바로 Instruct 모델과 일반 모델입니다. 이 두 가지가 어떻게 다른지, 그리고 각각 어떤 특성을 가지고 있는지 정리해 보겠습니다.</p>
<h3 id="instruct-모델이란">Instruct 모델이란?</h3>
<p>Instruct 모델은 이름에서도 알 수 있듯이, 사용자가 내린 &quot;명령&quot;이나 &quot;지시&quot;를 따르는 방식으로 작동합니다. 예를 들어, 여러분이 &quot;이 문장을 영어로 번역해줘&quot;라고 말하면, 그 명령에 맞춰 번역을 해주는 방식이죠. 즉, 명령을 이해하고 그에 적합한 응답을 제공하는 게 핵심입니다.</p>
<p>예시 모델: GPT-3 Instruct 시리즈
OpenAI의 GPT-3 Instruct 시리즈가 대표적인 예입니다. 이 모델은 질문에 대한 답변을 하거나, 명령을 내리면 그에 맞는 결과를 제공하도록 훈련됐어요. InstructGPT라는 모델도 있고, 이 시리즈는 주로 대화형 AI에 많이 사용됩니다.</p>
<p>특징:</p>
<ul>
<li>사용자의 지시에 잘 반응합니다.</li>
<li>명확하고 구체적인 답변을 제공하려고 노력합니다.</li>
<li>대화형 인터페이스에 적합합니다.</li>
</ul>
<h3 id="일반-llm-모델이란">일반 LLM 모델이란?</h3>
<p>일반 LLM 모델은 Instruct 모델과 다르게, 주어진 텍스트에 대해 다음에 나올 단어를 예측하는 방식으로 훈련됩니다. 쉽게 말해, 특정한 명령을 따르는 게 아니라, 문맥을 보고 자연스러운 다음 내용을 생성하는 게 목표죠. 그래서 Instruct 모델처럼 지시를 잘 따르지 않을 수 있어요.</p>
<p>예시 모델: GPT-2
GPT-2는 대표적인 일반 LLM 모델입니다. 이 모델은 명령을 내리면 정확히 따르기보다는, 주어진 텍스트 흐름에 따라 자연스러운 문장을 이어나가려 합니다. 만약 &quot;이 문장을 번역해줘&quot;라고 하면, 그 명령을 번역하라는 지시로 이해하지 않고 그냥 그 문장에 이어질 내용으로 응답할 수 있어요.</p>
<p>특징:</p>
<ul>
<li>텍스트를 이어가는 데 강합니다.</li>
<li>명령을 이해하지 못할 수 있습니다.</li>
<li>주어진 맥락에 따라 예측한 답변을 제공하는 데 초점을 둡니다.</li>
</ul>
<h3 id="fine-tuned-모델이란">Fine-tuned 모델이란?</h3>
<p>또 한 가지 유형이 있는데, 이건 특정 작업에 맞춰 조정된 모델입니다. Fine-tuning을 통해 특정 분야나 목적에 맞게 더 세밀하게 훈련된 모델이죠. 예를 들어, 법률 문서 작성을 잘하는 AI나, 의료 분야에서 사용되는 AI가 대표적인 예입니다.</p>
<p>예시 모델: BERT 기반 Fine-tuned 모델
BERT는 일반적인 언어 모델인데, 이걸 법률 문서나 특정 분야에 맞게 미세 조정(fine-tuning)할 수 있습니다. 그렇게 되면 그 분야에서 나오는 질문이나 명령에 더 적합하게 응답할 수 있죠.</p>
<p>특징:</p>
<ul>
<li>특정 작업이나 분야에 특화된 능력을 가집니다.
범용적으로 사용되기보다는 특정한 목적을 위해 사용됩니다.</li>
</ul>
<p>요약하자면:</p>
<ul>
<li>Instruct 모델: 명령이나 지시를 잘 이해하고 수행하는 모델. 예시: GPT-3 Instruct 시리즈.</li>
<li>일반 LLM 모델: 텍스트를 자연스럽게 이어가는 데 초점을 맞춘 모델. 예시: GPT-2.</li>
<li>Fine-tuned 모델: 특정 작업이나 분야에 맞춰 훈련된 모델. 예시: BERT Fine-tuned 모델.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[데이터 거버넌스는 뭘까?]]></title>
            <link>https://velog.io/@_master_branch/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B1%B0%EB%B2%84%EB%84%8C%EC%8A%A4%EB%8A%94-%EB%AD%98%EA%B9%8C</link>
            <guid>https://velog.io/@_master_branch/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B1%B0%EB%B2%84%EB%84%8C%EC%8A%A4%EB%8A%94-%EB%AD%98%EA%B9%8C</guid>
            <pubDate>Wed, 16 Oct 2024 08:32:50 GMT</pubDate>
            <description><![CDATA[<p>데이터가 디지털 시대의 중요한 자산으로 부상하면서, 이를 체계적으로 관리하고 활용하는 데이터 거버넌스(Data Governance)의 중요성도 점차 커지고 있습니다. 데이터 거버넌스는 단순히 데이터를 관리하는 것을 넘어, 조직의 목표 달성을 위해 데이터를 어떻게 운영할 것인지에 대한 전략적 활동을 포함합니다. 이번 블로그 글에서는 데이터 거버넌스의 주요 요소와 필요성, 그리고 이를 성공적으로 구현하기 위한 전략을 알아보겠습니다.</p>
<h3 id="1-데이터-거버넌스란-무엇인가">1. 데이터 거버넌스란 무엇인가?</h3>
<p>데이터 거버넌스는 조직 내에서 데이터를 어떻게 관리하고, 보호하며, 활용할 것인지에 대한 포괄적인 프레임워크를 의미합니다. 이를 통해 데이터의 품질, 보안, 준거성(compliance)을 보장할 수 있으며, 데이터에 기반한 의사결정을 강화하는 데 기여합니다. 주요 목적은 데이터를 일관되게 관리하고, 다양한 부서와 시스템 간에 일관된 데이터 사용을 촉진하며, 데이터와 관련된 리스크를 최소화하는 것입니다.</p>
<h3 id="2-데이터-거버넌스의-주요-요소">2. 데이터 거버넌스의 주요 요소</h3>
<ul>
<li><p>1) 데이터 품질 관리: 데이터 품질은 데이터 거버넌스에서 가장 중요한 요소 중 하나입니다. 부정확하거나 불완전한 데이터는 잘못된 의사결정을 초래할 수 있기 때문에, 데이터를 정확하고 일관되게 유지하는 것이 필수적입니다. 데이터 품질 관리는 데이터 수집, 저장, 처리 과정에서 발생할 수 있는 오류를 줄이고, 신뢰할 수 있는 데이터를 확보하는 데 중점을 둡니다.</p>
</li>
<li><p>2) 데이터 보안 및 개인정보 보호: 데이터는 조직의 중요한 자산일 뿐만 아니라, 외부 공격에 취약한 자산이기도 합니다. 데이터 거버넌스는 데이터 보안과 개인정보 보호를 포함하여 데이터를 안전하게 보호하는 데 필수적입니다. GDPR, CCPA와 같은 글로벌 개인정보 보호법을 준수하는 것은 조직의 신뢰를 높이고 법적 리스크를 줄이는 데 기여합니다.</p>
</li>
<li><p>3) 데이터 소유권 및 책임: 데이터 거버넌스는 데이터를 누가 소유하고, 누가 책임을 지는지를 명확히 규정합니다. 이를 통해 데이터 사용에 대한 책임소재가 명확해지며, 데이터 관련 의사결정과 권한이 적절하게 분배될 수 있습니다. 데이터 소유자, 데이터 관리자, 데이터 소비자 등의 역할이 정의되어야 하며, 각 역할 간의 협력이 중요합니다.</p>
</li>
<li><p>4) 데이터 관리 정책: 조직 내에서 데이터가 어떻게 관리될지에 대한 명확한 정책이 필요합니다. 데이터 저장, 보관, 사용, 공유 등에 대한 정책이 수립되어야 하며, 이를 통해 데이터 사용의 일관성과 규제 준수가 보장됩니다.</p>
</li>
</ul>
<h3 id="3-데이터-거버넌스의-필요성">3. 데이터 거버넌스의 필요성</h3>
<ul>
<li><p>1) 데이터 기반 의사결정 강화: 정확하고 일관된 데이터를 바탕으로 의사결정을 내리는 것은 조직의 경쟁력을 높이는 중요한 요소입니다. 데이터 거버넌스를 통해 신뢰할 수 있는 데이터를 확보함으로써, 데이터 기반의 의사결정을 더욱 효과적으로 수행할 수 있습니다.</p>
</li>
<li><p>2) 규제 준수 및 리스크 관리: 점점 더 많은 국가와 지역에서 데이터와 개인정보 보호와 관련된 법적 규제를 강화하고 있습니다. 데이터 거버넌스는 이러한 규제를 준수하는 데 필수적이며, 규제 미준수로 인한 법적 리스크를 줄여줍니다.</p>
</li>
<li><p>3) 운영 효율성 향상: 데이터가 제대로 관리되지 않으면, 여러 부서나 시스템 간에 데이터 중복, 오류, 불일치 등이 발생할 수 있습니다. 데이터 거버넌스를 통해 이러한 문제를 사전에 방지하고, 조직의 운영 효율성을 극대화할 수 있습니다.</p>
</li>
</ul>
<h3 id="4-성공적인-데이터-거버넌스-구현을-위한-전략">4. 성공적인 데이터 거버넌스 구현을 위한 전략</h3>
<ul>
<li><p>1) 명확한 목표 설정: 데이터 거버넌스를 성공적으로 구현하기 위해서는 조직의 비즈니스 목표에 부합하는 명확한 목표를 설정하는 것이 중요합니다. 이를 통해 데이터 관리의 우선순위를 정하고, 모든 구성원이 공통의 목표를 향해 협력할 수 있습니다.</p>
</li>
<li><p>2) 전사적인 참여 유도: 데이터 거버넌스는 특정 부서의 일이 아니라, 전사적인 노력이 필요합니다. 데이터의 소유권과 책임을 명확히 하고, 각 부서 간 협력을 강화하여 모든 이해 관계자가 데이터 거버넌스 활동에 적극적으로 참여하도록 해야 합니다.</p>
</li>
</ul>
<p>-3) 자동화 도구 활용: 데이터 거버넌스는 다양한 데이터를 체계적으로 관리하기 위해 자동화 도구를 활용하는 것이 효과적입니다. 데이터 카탈로그, 데이터 품질 관리 툴, 데이터 보안 솔루션 등 다양한 툴을 도입하여 데이터 관리의 효율성을 높일 수 있습니다.</p>
<h3 id="5-제조업에서">5. 제조업에서</h3>
<p>품질, 규제 준수, 감사 대응, 그리고 고객 데이터 보호와 같은 중요한 영역에서 필수적입니다. 제품의 품질 데이터를 체계적으로 관리하여 고객 신뢰를 유지하고, ISO와 같은 규제를 준수하며, 생산 과정에서 발생하는 데이터를 정확히 기록해 감사나 추적성 요구에 신속히 대응할 수 있습니다. 또한, 고객의 주문 정보 및 민감한 데이터를 보호함으로써 보안 리스크를 줄이고 신뢰성을 높이는 데 기여합니다.</p>
<h3 id="6-it-플랫폼기업에서">6. IT 플랫폼기업에서</h3>
<p>IT 플랫폼 기업에서 데이터 거버넌스는 데이터의 품질 관리, 보안, 규제 준수, 및 데이터 활용의 효율성 증대와 같은 핵심 영역에서 중요합니다. 데이터 품질을 유지함으로써 서비스의 안정성과 사용자 경험을 개선하고, 개인정보 보호 및 사이버 보안을 강화해 GDPR이나 CCPA 같은 규제를 준수해야 합니다. 또한, 플랫폼 내에서 수집되는 방대한 데이터를 효과적으로 관리하고 분석하여 새로운 비즈니스 기회를 창출하고, 의사결정을 지원하는 데 데이터 거버넌스는 필수적인 역할을 합니다.</p>
<h3 id="7병원-금융권에서">7.병원, 금융권에서</h3>
<p>병원과 금융권에서 데이터 거버넌스는 데이터 보안, 개인정보 보호, 규제 준수, 그리고 데이터 품질 관리가 중요한 영역입니다. 병원은 환자의 의료 기록을 안전하게 보호하고 HIPAA와 같은 의료 규제를 준수하며, 진단 및 치료에 필요한 데이터의 정확성을 보장해야 합니다. 금융권에서는 고객의 금융 정보와 거래 데이터를 보호하고, GDPR, SOX와 같은 규제를 준수하며, 금융 분석과 리스크 관리를 위해 신뢰할 수 있는 데이터를 유지하는 것이 필수적입니다. 두 산업 모두 데이터의 민감성과 보안이 최우선 과제입니다.</p>
<h3 id="8-iso-gdpr-sox-hipaa">8. ISO, GDPR, SOX, HIPAA?</h3>
<ul>
<li><p>ISO (International Organization for Standardization): 국제 표준화 기구로, 품질 관리(ISO 9001), 정보 보안(ISO 27001) 등 다양한 산업 분야에서 글로벌 표준을 제시해 조직의 품질 및 보안 관리를 돕습니다.</p>
</li>
<li><p>GDPR (General Data Protection Regulation): 유럽 연합의 개인정보 보호 규정으로, 개인 정보의 수집, 처리, 저장에 관한 엄격한 규칙을 제시하며, 위반 시 높은 벌금이 부과될 수 있습니다.</p>
</li>
<li><p>SOX (Sarbanes-Oxley Act): 미국의 회계 및 금융 투명성 강화를 위한 법으로, 기업의 재무보고와 관련된 데이터의 신뢰성과 투명성을 보장하기 위해 내부 통제와 감사 규칙을 명확히 합니다.</p>
</li>
<li><p>HIPAA (Health Insurance Portability and Accountability Act): 미국의 의료 정보 보호법으로, 의료 기관이 환자의 개인 건강 정보를 안전하게 관리하고, 이를 보호하는 데 필요한 규정을 정의합니다.</p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[AI 기술 로드맵]]></title>
            <link>https://velog.io/@_master_branch/AI-%EA%B8%B0%EC%88%A0-%EB%A1%9C%EB%93%9C%EB%A7%B5</link>
            <guid>https://velog.io/@_master_branch/AI-%EA%B8%B0%EC%88%A0-%EB%A1%9C%EB%93%9C%EB%A7%B5</guid>
            <pubDate>Tue, 15 Oct 2024 10:38:56 GMT</pubDate>
            <description><![CDATA[<h1 id="ai발전-방향성">AI발전 방향성</h1>
<ol>
<li>특화된 인공지능(Narrow AI)
이 단계는 AI가 특정한 작업이나 문제를 처리하도록 훈련된 시스템을 개발하는 것입니다</li>
</ol>
<ul>
<li>음성 인식(Alexa, Siri)</li>
<li>이미지 인식(의료 영상 분석)</li>
<li>자율주행(특정 환경에서 주행 가능)</li>
<li>언어 생성(ChatGPT 등)</li>
</ul>
<p>현재 우리가 목격하는 AI 열풍은 바로 이 특화된 AI의 발전에서 비롯된 것입니다. 대부분의 AI 기술은 특정 업무에 매우 뛰어나지만, 범용적인 지능을 갖추지는 못한 상태입니다. 이 단계에서 AI는 이미 많은 작업을 자동화하고 혁신을 일으키고 있습니다.</p>
<ol start="2">
<li><p>일반 인공지능(AGI, Artificial General Intelligence)
이 단계는 사람처럼 여러 과제를 자유롭게 학습하고 해결할 수 있는 AI를 목표로 합니다. AGI는 다양한 분야에서 학습하고 적응하며 창의적으로 문제를 해결하는 능력을 가져야 합니다. 그러나 AGI는 아직 개발되지 않았고, 기술적으로 해결해야 할 난제가 많습니다. 많은 전문가들은 AGI가 수십 년 내에 개발될 것이라고 보지만, 정확한 시점은 불확실합니다.</p>
</li>
<li><p>초인공지능(ASI, Artificial Superintelligence)
이론적으로 AGI를 넘어서는 인공지능, 즉 인간의 지적 능력을 초월하는 AI입니다. 초인공지능은 기술적, 윤리적, 사회적 문제를 모두 수반하며, 이에 대한 논의는 아직 초기 단계입니다.</p>
</li>
</ol>
<p>현재 도래한 수준
현재 AI는 특화된 인공지능의 고도화 단계에 도달해 있습니다. 생성형 AI와 대규모 언어 모델(LLM)들이 발전하면서 자연어 처리나 문제 해결 능력이 인간 수준에 가까워졌고, 자율주행이나 의료 진단 같은 분야에서 상용화가 진행 중입니다. 하지만 AGI, 즉 사람처럼 완전한 이해와 창의성을 갖춘 인공지능은 아직 멀었습니다</p>
<h1 id="그렇다면-agi가-만들어졌음을-알-수-있는-기준은">그렇다면 AGI가 만들어졌음을 알 수 있는 기준은?</h1>
<ul>
<li><p>범용성 (Generalization): AGI는 특정 작업이나 영역에 국한되지 않고, 인간처럼 다양한 분야에서 문제를 해결할 수 있어야 합니다. 새로운 문제나 상황에 직면했을 때, 별도의 학습 없이도 적응하여 해결할 수 있는 능력이 필요합니다.</p>
</li>
<li><p>이해력과 추론 (Comprehension and Reasoning): AGI는 복잡한 개념을 이해하고, 논리적 추론을 통해 결론을 도출할 수 있어야 합니다. 여기에는 맥락을 파악하고, 다양한 정보를 결합하여 새로운 통찰을 얻는 능력이 포함됩니다.</p>
</li>
<li><p>학습 능력 (Learning Ability): AGI는 스스로 학습하고 개선할 수 있는 능력을 가져야 합니다. 기존의 AI 모델처럼 고정된 데이터에 의존하는 것이 아니라, 실시간으로 환경에서 배우고 적응할 수 있어야 합니다.</p>
</li>
<li><p>의식 (Consciousness): 일부 사람들은 AGI가 의식 또는 자아를 가져야 한다고 주장합니다. 이는 AGI가 자기 인식과 자율적인 의사결정을 할 수 있는 능력을 포함할 수 있습니다.</p>
</li>
<li><p>인간 수준의 상호작용 (Human-level Interaction): AGI는 인간과의 상호작용에서 인간처럼 자연스럽고 지능적인 의사소통을 할 수 있어야 합니다. 감정, 사회적 맥락 등을 이해하고 이에 적절히 반응할 수 있어야 합니다.</p>
</li>
<li><p>창의성 (Creativity): AGI는 단순한 반복 작업이나 패턴 인식에 그치지 않고, 인간처럼 새로운 아이디어나 해결책을 창출할 수 있어야 합니다.</p>
</li>
<li><p>의도와 목표 설정 (Intent and Goal-setting): AGI는 스스로 목표를 설정하고 이를 달성하기 위해 계획을 수립하며, 이를 효율적으로 수행할 수 있어야 합니다. 이는 단순한 지시나 명령을 수행하는 수준을 넘어, 자율적인 목표 달성 능력을 요구합니다.</p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[NVLink, PCIe, CXL: 고성능 연결 기술의 차이점]]></title>
            <link>https://velog.io/@_master_branch/NVLink-PCIe-CXL-%EA%B3%A0%EC%84%B1%EB%8A%A5-%EC%97%B0%EA%B2%B0-%EA%B8%B0%EC%88%A0%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90</link>
            <guid>https://velog.io/@_master_branch/NVLink-PCIe-CXL-%EA%B3%A0%EC%84%B1%EB%8A%A5-%EC%97%B0%EA%B2%B0-%EA%B8%B0%EC%88%A0%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90</guid>
            <pubDate>Mon, 14 Oct 2024 09:51:19 GMT</pubDate>
            <description><![CDATA[<p>고성능 컴퓨팅(HPC), AI, 머신러닝 등 다양한 분야에서 빠른 데이터 전송은 필수적입니다. 이와 관련해 NVLink, PCIe, CXL은 중요한 역할을 하는 세 가지 인터페이스 기술입니다. 각 기술은 고유한 강점과 사용처를 가지고 있으며, 서로 다른 방식으로 시스템 간의 데이터 전송을 처리합니다. 이번 글에서는 이 세 가지 기술의 차이점을 간략히 살펴보겠습니다.</p>
<ol>
<li>NVLink
NVLink는 NVIDIA가 개발한 고속 인터커넥트로, 주로 GPU 간의 데이터 전송을 가속화하는 데 사용됩니다. NVLink는 PCIe보다 훨씬 높은 대역폭을 제공하여 GPU 간 혹은 GPU와 CPU 간 대용량 데이터 전송을 매우 빠르게 처리할 수 있습니다.</li>
</ol>
<ul>
<li>주요 용도: GPU 간 고속 연결, 메모리 풀 통합</li>
<li>대역폭: PCIe 대비 최대 10배 이상 빠름</li>
<li>확장성: 여러 GPU 연결에 최적화</li>
<li>장점: 고성능 AI/딥러닝 시스템에서 병렬 처리를 위한 빠른 데이터 전송</li>
</ul>
<ol start="2">
<li>PCIe
PCIe(Peripheral Component Interconnect Express)는 컴퓨터의 마더보드와 다양한 하드웨어 장치를 연결하는 표준 인터페이스입니다. GPU, SSD, 네트워크 카드 등 대부분의 하드웨어가 PCIe 슬롯을 통해 연결됩니다.</li>
</ol>
<ul>
<li>주요 용도: 다양한 하드웨어 장치 연결 (GPU, SSD, 네트워크 카드 등)</li>
<li>대역폭: PCIe 5.0의 경우 최대 32GT/s, 버전별로 대역폭이 점진적으로 증가</li>
<li>확장성: x1, x4, x8, x16 레인 사용 가능</li>
<li>장점: 범용성, 다양한 장치와 호환 가능</li>
</ul>
<ol start="3">
<li>CXL (Compute Express Link)
CXL은 차세대 고성능 인터커넥트 기술로, CPU와 가속기(GPU, FPGA 등) 또는 메모리 장치 간의 효율적인 연결을 목적으로 개발되었습니다. CXL은 PCIe 물리 계층을 기반으로 하지만, 데이터 전송 지연을 줄이고 메모리 일관성을 유지하는 데 초점을 맞춥니다.
주요 용도: CPU와 가속기 간 고성능 통신, 메모리 일관성 유지</li>
</ol>
<ul>
<li>대역폭: PCIe와 동일한 물리 계층 사용 (버전별 대역폭 상이)</li>
<li>특징: 메모리 공유 및 일관성 관리, 데이터 지연 최소화</li>
<li>장점: 메모리 확장성 향상, CPU-가속기 간 협력 강화</li>
</ul>
<p>차이점 요약
NVLink는 주로 NVIDIA GPU 간의 고속 연결에 특화된 기술로, GPU 클러스터 내에서 최적의 성능을 제공합니다.
PCIe는 다양한 장치를 연결하는 범용 인터페이스로, 시스템 내 여러 장치와의 호환성이 우수합니다.
CXL은 PCIe 물리 계층을 기반으로 하면서도 메모리 일관성과 고성능 CPU-가속기 연결을 위한 기술로, 메모리 확장성과 효율성에 중점을 둡니다.
이 세 가지 기술은 각각의 용도와 목적에 맞게 최적화되어 있으며, 고성능 컴퓨팅 환경에서 중요한 역할을 합니다. 선택은 시스템 아키텍처와 필요에 따라 달라질 수 있습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[불안정해서 유용한, 엑시머 레이저]]></title>
            <link>https://velog.io/@_master_branch/%EB%B6%88%EC%95%88%EC%A0%95%ED%95%B4%EC%84%9C-%EC%9C%A0%EC%9A%A9%ED%95%9C-%EC%97%91%EC%8B%9C%EB%A8%B8-%EB%A0%88%EC%9D%B4%EC%A0%80</link>
            <guid>https://velog.io/@_master_branch/%EB%B6%88%EC%95%88%EC%A0%95%ED%95%B4%EC%84%9C-%EC%9C%A0%EC%9A%A9%ED%95%9C-%EC%97%91%EC%8B%9C%EB%A8%B8-%EB%A0%88%EC%9D%B4%EC%A0%80</guid>
            <pubDate>Sat, 12 Oct 2024 06:52:23 GMT</pubDate>
            <description><![CDATA[<h3 id="개요">개요</h3>
<p>엑시머 레이저(Excimer Laser)는 자외선(UV) 영역에서 빛을 방출하는 특수한 레이저로, &quot;엑시머&quot;라는 불안정한 이합체(excited dimer)를 사용하여 빛을 발생. 
주로 아르곤-플루오린(ArF), 크립톤-플루오린(KrF) 등의 가스를 사용하며, 짧은 파장의 고에너지 자외선 광을 생성합. 
짧은 파장(193nm 또는 248nm)으로 매우 정밀한 에너지를 전달.</p>
<h3 id="엑시머-레이저-실리콘-결정화excimer-laser-annealing-ela-과정">엑시머 레이저 실리콘 결정화(Excimer Laser Annealing, ELA) 과정:</h3>
<ul>
<li><p>비정질 실리콘 박막 준비: 비정질 실리콘(원자 구조가 불규칙적이어서 전기적 특성이 낮고, 고성능 전자 소자를 만들기 어려움) 박막을 유리 또는 플라스틱 기판 위에 증착.</p>
</li>
<li><p>엑시머 레이저 조사: 엑시머 레이저의 짧은 펄스는 매우 국소적이고 빠르게 에너지를 전달하여 실리콘을 순간적으로 녹임.</p>
</li>
<li><p>재결정화: 레이저에 의해 실리콘이 녹은 후, 냉각이 이루어지면서 실리콘은 결정 구조를 형성(비정질 실리콘 -&gt; 다결정 실리콘 또는 단결정 실리콘).</p>
</li>
<li><p>결과물: 다결정 실리콘은 전자 이동도가 높아져 전기적 성능이 크게 개선. 이를 통해 트랜지스터와 같은 반도체 소자의 성능이 향상되며, 특히 고해상도 디스플레이의 백플레인(backplane) 제작 가능.</p>
</li>
<li><p>주요 응용 분야:
액정 디스플레이(LCD) 및 OLED 디스플레이:다결정 실리콘 TFT(박막 트랜지스터).
태양광 패널</p>
</li>
</ul>
<h3 id="실리콘-결정-유형">실리콘 결정 유형</h3>
<ol>
<li>비정질 실리콘 (Amorphous Silicon, a-Si)</li>
</ol>
<ul>
<li>구조: 비정질 실리콘은 원자들이 불규칙하게 배열되어 있어 결정을 이루지 못한 상태. 장기적인 원자 배열이 없고, 구조가 불규칙.</li>
<li>특성:전자 이동도(electron mobility)가 낮아서 전기적 특성 안좋음.
제조가 쉽고 비용이 저렴하여 주로 저가형 디스플레이와 태양전지에 사용.
빛을 잘 흡수하는 특성 때문에 태양광 패널이나 박막 트랜지스터(TFT)에 사용되지만, 전기적 성능이 떨어져 고성능 반도체 소자에는 적합하지 x.</li>
<li>응용: 저가형 디스플레이, 태양광 패널 등</li>
</ul>
<ol start="2">
<li>다결정 실리콘 (Polycrystalline Silicon, poly-Si)</li>
</ol>
<ul>
<li>구조: 다결정 실리콘은 여러 개의 결정립(grain)이 모여 있는 구조. 각 결정립은 단결정처럼 규칙적인 구조를 가지지만, 결정립 간 경계가 존재하여 완전히 일관된 결정 구조를 갖고 있지 x.</li>
<li>특성:전자 이동도가 비정질 실리콘보다는 높지만, 단결정 실리콘보다는 낮다.
제조가 비교적 쉬워 대규모 생산에 적합하며, 고해상도 디스플레이나 태양광 패널에서 널리 사용.
결정립 경계가 존재해 전기적 성능이 단결정보다는 떨어지지만, 액정 디스플레이(LCD)나 OLED의 트랜지스터 제작에 적합.</li>
<li>응용: 고성능 디스플레이(TFT-LCD, OLED), 태양광 패널</li>
</ul>
<ol start="3">
<li>단결정 실리콘 (Monocrystalline Silicon, mono-Si)</li>
</ol>
<ul>
<li>구조: 단결정 실리콘은 원자들이 매우 규칙적이고 일관되게 배열된 구조로, 전체가 하나의 큰 결정체입니다. 이 구조는 전기적 특성이 매우 우수.</li>
<li>특성:전자 이동도가 매우 높아 고성능 반도체 소자나 태양광 패널에 사용.
제조 비용이 높고 공정이 까다로우나, 고성능을 필요로 하는 소자에 필수.
결정 구조가 매우 안정적이고, 전기적 특성도 가장 뛰어나므로 CPU, 메모리 칩 같은 고성능 전자 소자의 기판으로 사용.</li>
<li>응용: 고성능 반도체(프로세서, 메모리), 고효율 태양광 패널</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[데이터 레이크 (Data Lake) 개요]]></title>
            <link>https://velog.io/@_master_branch/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%A0%88%EC%9D%B4%ED%81%AC-Data-Lake-%EA%B0%9C%EC%9A%94</link>
            <guid>https://velog.io/@_master_branch/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%A0%88%EC%9D%B4%ED%81%AC-Data-Lake-%EA%B0%9C%EC%9A%94</guid>
            <pubDate>Wed, 21 Feb 2024 13:16:40 GMT</pubDate>
            <description><![CDATA[<h1 id="data-lake와-data-warehouse의-차이">Data Lake와 Data Warehouse의 차이</h1>
<hr>
<ul>
<li>기존의 Data Warehouse (DW)는 RDBMS의 structured 데이터 형식을 지원하고 RDBMS 데이터 소스로부터 주기적으로 Batch 데이터를 적재한다.</li>
<li>Data Lake (DL)는 structured, semi-structured, unstructured 유형의 모든 raw data를 변환하지 않은 채 batch처리나 streaming을 통해 저장, 처리 보호할 수 있는 중앙 집중식 저장소이다.</li>
<li>빅데이터란 거대한 규모(volume), 빠른 속도(velocity), 높은 다양성(variety)을 특징으로 하는 데이터인데, 센서, 웹데이터, 연구 등으로 다양한 종류의 데이터가 생성되며 기업 데이터의 80~90%가 semi-structured, unstructured 데이터이다. DL은 이런 다양한 데이터를 저장하기 위해 존재한다.</li>
<li>즉 DW는 데이터 적재 전 구조 등을 신중하게 변환 (schema on write, ETL (extract-transform-load과정)하고, DL은 데이터를 적재하고 사용자가 데이터를 읽을때 필요한 경우에만 형태를 변환 (schema on read, Hadoop, NoSQL)한다.</li>
<li>DL은 성능보다 storage volume 중시하고 DW는 쿼리 성능을 더 중시한다.</li>
<li>DL은 주로 대규모 이지만 상용 하드웨어를 사용하여 DW보다 저렴하다.</li>
<li>DW와 DL은 근본적으로 다른 시스템이며 빅데이터를 위한 storage repository라는 점만 유사하다.</li>
</ul>
<h1 id="data-lake의-초창기-역사">Data Lake의 초창기 역사</h1>
<hr>
<ul>
<li>2010년 Pentaho사의 CTO인 James Dixon에 의해 raw data를 하나의 source에 저장하고 다양한 고객의 요구사항을 만족시키기 위한 목적으로 DL이 처음 제안되었다<ul>
<li>이로써 기존 Data Warehouse나 Data Mart처럼 raw data를 표준형태로 전처리하는 값비싼 과정을 거치지 않아도 된다.</li>
</ul>
</li>
<li>2014년 Gartner사는 DL이 meta data나 data governance없이 운영되면 서로 다른 데이터가 모아져서 관리가 어려운 “Data Swamp”로 전락할 수 있다고 경고했다. 그 이유는 아래와 같다.<ul>
<li>raw data의 의미론(sematics)이나 데이터 품질을 알 수 없다</li>
<li>dataset의 출처나 다른 dataset과의 연결관계를 알 수 없다.</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Oracle Goldengate]]></title>
            <link>https://velog.io/@_master_branch/Ogg</link>
            <guid>https://velog.io/@_master_branch/Ogg</guid>
            <pubDate>Wed, 14 Feb 2024 22:58:34 GMT</pubDate>
            <description><![CDATA[<h1 id="oracle-goldengate-cloud">Oracle Goldengate, Cloud</h1>
<h1 id="goldengate-on-prem">GoldenGate (On-prem)</h1>
<ul>
<li><p>CDC (Change Data Capture)</p>
<ul>
<li>Source DB에서 발생된 변경된 부분을 추출하여 Target DB에 복제</li>
</ul>
</li>
<li><p>GG는 데이터 통합 및 마이그레이션 제품</p>
<ul>
<li>여러 데이터 or DB를 실시간 동기화</li>
<li>단순히 하나의 DB나 Cloud에 적용하는게 아니다 Enterprise 레벨에서 사용</li>
<li>다양한 Cloud, DB, App 데이터 트랜잭션에서 다양한 타겟으로 데이터 통합</li>
</ul>
</li>
<li><p>기존 CDC</p>
<ul>
<li><p>트리거 방식: 사전에 등록된 다수의 타겟 DB에 변경 데이터를 배포하는 방식</p>
</li>
<li><p>타임스탬프 방식: 대상 테이블에 타임스탬프 컬럼을 추가하여 컬럼을 기준으로 변경 데이터 추출</p>
<p>→ 기존 CDC는 데이터 추출 과정에서 DB 성능 저하</p>
</li>
</ul>
</li>
<li><p>GG</p>
<ul>
<li>DB Redo log 파일에 직접 접근하여 변경데이터 추출하는 direct log access 방식 사용하여 DB 성능 저하 최소화</li>
<li>소스 DB로 부터 커밋 단위로 변경 데이터를 Extract 하여 trail file에 저장</li>
<li>저장된 trail file이 TCP/IP를 통해 타겟 DB로 전송</li>
<li>타겟 DB로 전송된 trail file을 타겟 DB에 Replicat</li>
<li>복제시간과 리소스 절약 가능</li>
</ul>
</li>
<li><p>다양한 고객사 서비스에 따른 동기화 모델</p>
<ul>
<li>단방향: 데이터가 한방향으로 흐름. 프로적션 환경 데이터를 두번 째 DB로 복제.</li>
<li>양방향: Active stanby 형식으로 failover 목적. Active DB 장애 발생시 stanby DB로 전환. 장애 조치후에도 변경사항은 trail file에 저장. Active가 살아나면 모든 변경사항을 trail file을 통해 다시 Active DB에 적용.</li>
<li>대등관계: 양방향동기화 모델과 거의 유사하지만 동기화 상태를 유지하는 2개 이상의 DB 필요. 이기종 환경을 위한 최적의 구성.</li>
<li>브로드캐스트: 하나 소스 DB → 여러 타겟 DB</li>
<li>통합: 여러 소스 DB → 하나 타겟 DB. DW.</li>
<li>데이터 분포: 주 DB → 보조 DB → 하나 이상 타겟 DB로 복제</li>
</ul>
</li>
<li><p>GG 특징</p>
<ul>
<li>실시간 복제: 소스 DB → 타겟 DB 실시간에 준하는 속도로 복제</li>
<li>데이터 정합성: 소스 DB → 타겟 DB 모순없이 일치</li>
<li>OS 및 DBMS 교차 지원: 다양한 클라우드, OS, DB</li>
<li>부하 최소화: DB 로그에서 변경된 부분만 추출해서 DB 위 부하를 최소화<h1 id="oci-goldengate-구성-및-비교">OCI-GoldenGate 구성 및 비교</h1>
</li>
</ul>
</li>
<li><p>21년 4월 Oracle Cloud Native로 출시함</p>
</li>
<li><p>기존 on-prem OGG 장점 (실시간 복제, 데이터 정합성, 부하 최소화) + cloud 장점 (비용 효율, 사용 편리성)</p>
</li>
<li><p>OCI -GG 완전 관리형 지원</p>
<ul>
<li>콘솔에 GG 검색하여 클릭 몇번만 가능</li>
<li>데이터가 많이 수집되는 피크타임때 다운타임 없이 CPU가 높아지는 오토스케일링</li>
<li>OCI 콘솔 내에서 GG사용량 실시간 확인 모니터링</li>
</ul>
</li>
<li><p>Pay-per-use: 사용한 만큼만 비용 지불</p>
<ul>
<li>평소엔 낮은 CPU, 피크 타임에만 높은 CPU 사용</li>
<li>제로 다운타임 마이그레이션 하고 싶으면 초단위로 과금되는 OCI-GG 사용가능</li>
</ul>
</li>
<li><p>OCI-GG</p>
<ul>
<li>클라우드 업계 최초로 하나의 서비스에 다양한 기능<ul>
<li>멀티 액티브 DB 고가용성</li>
<li>양방향 DB 마이그레이션 및 통합</li>
<li>CDC</li>
<li>데이터 복제</li>
<li>실시간 데이터 전송</li>
<li>스트림 분석</li>
</ul>
</li>
</ul>
</li>
<li><p>다른 클라우드 벤더사에서 이를 대체하려면 다양한 제품군을 모두 설치</p>
</li>
<li><p>OCI-GG 아키텍처 및 구성 요소</p>
<ul>
<li>앞선 GG 아키텍처와 유사</li>
<li>On-prem GG는 소스, 타겟 DB에 엔진을 설치하여 서로 연결</li>
<li>OCI-GG는 deployment라는 컨테이너에 소스, 타겟 DB의 endpoint 연결정보 등록</li>
<li>deployment 백업기능을 통해 컨테이너에 현재 상태를 백업</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[데이터 웨어하우스 (Data Warehouse, DW) 개요]]></title>
            <link>https://velog.io/@_master_branch/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%9B%A8%EC%96%B4%ED%95%98%EC%9A%B0%EC%8A%A4-Data-Warehouse-DW-%EA%B0%9C%EC%9A%94</link>
            <guid>https://velog.io/@_master_branch/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%9B%A8%EC%96%B4%ED%95%98%EC%9A%B0%EC%8A%A4-Data-Warehouse-DW-%EA%B0%9C%EC%9A%94</guid>
            <pubDate>Tue, 13 Feb 2024 06:03:04 GMT</pubDate>
            <description><![CDATA[<h1 id="data-warehouse">Data Warehouse</h1>
<ul>
<li>다양한 소스에서 모아서 정제된 데이터를 기업 중앙에 모아서 의사결정 및 분석에 사용.</li>
<li>트랜잭션을 처리하는 OLTP를 보완해서 열기반 데이터 구조 (column-oriented database)를 사용해 대용량 분석 처리를 하기 위해 OLAP를 도입한다.</li>
<li>아키텍처: DB, File -&gt; ETL/CDC -&gt; Data Warehouse (Structured Data) -&gt; Data Mart, BI, Reports</li>
<li>On-premises DW는 3-tire 아키텍처를 가진다<ul>
<li>Bottom tier – storage layer: DW 그자체. database server, storage media, meta repository, data marts.</li>
<li>Middle tier – compute layer: OLAP(Online analytical Processing)</li>
<li>Top tier – services layer: 기술자가 아닌 최종사용자들도 보고서 작성, 분석등을 의사결정 위해 사용할 수 있게 BI 솔루션과 연결할수 있음. 프론트엔드, UI 계층.</li>
</ul>
</li>
</ul>
<blockquote>
<p>Structured Data, 정형데이터?
일반적으로 문자-숫자 데이터를 셀, 행 및 열에 저장하는 데이터로 엑셀을 떠올리면 된다. 행과 열로 구성된 RDBMS에 저장된다.</p>
</blockquote>
<blockquote>
<p>ETL, Extract Transfrom, Load
다양한 데이터 소스에서 데이터를 extract한뒤 표준화된 형태로의 cleansing 및 transform을 위해 stage 영역에 잠시 보관한 뒤 DW에 load 한다. ELT는 이와 유사하지만 transform이 마지막 프로세스에서 이루어지기 때문에 stage 영역이 필요 없다.</p>
</blockquote>
<blockquote>
<p>CDC, Change Data Capture?
각 DBMS에는 DB에서 발생하는 모든 변경 이력을 저장하는 Log가 있다.
Redo Log(commit 또는 commit되지 않은 데이터의 변경 사항 저장), Archive Log(아카이브라는 말 그대로 리두 로그의 사본)의 2가지 리두 로그가 존재한다. CDC 솔루션은 이 Log 파일을 지속 모니터링하여 실시간 데이터 동기화를 해준다</p>
</blockquote>
<blockquote>
<p>OLTP는 데이터베이스의 트랜잭션 처리 성능 (CRUD)을 최적화하는 데 중점을 두어 day-to-day 비즈니스 쿼리를 받는다면, OLAP는 대규모 데이터 세트를 효과적으로 분석하고, 복잡한 쿼리에 대한 인사이트을 제공하는 데 중점을 둡니다. Data Warehouse는 OLAP 시스템이다.</p>
</blockquote>
<h1 id="data-warehouse-on-premise--cloud">Data Warehouse: On-premise &amp; Cloud</h1>
<ul>
<li>On-premises DW<ul>
<li>솔루션: Micro Focus Vertica Enterprise On-Premise, IBM Integrated Analytics System, Pivotal Greenplum, SAP HANA</li>
<li>장점<ul>
<li>Control: 서드파티에 의존하지 않고 HW, SW 종류, 설치 위치, 접근권한 직접 통제</li>
<li>Speed<strong>:</strong> 네트워크 latency에 대한 걱정을 덜어줌</li>
<li>Governance: 데이터 위치를 식별해야한다는 GDPR 요구 충족</li>
</ul>
</li>
<li>한계<ul>
<li>직접 HW, SW 운영 및 유지보수 수행</li>
<li>Scale up: 더 많은 compute 및 memory 자원이 필요할 때 유연하게 대응 불가</li>
</ul>
</li>
</ul>
</li>
<li>Cloud DW<ul>
<li>솔루션: AWS Redshift, Google BigQuery, Snowflake Cloud Data Warehouse, Azure Synapse, SAP Data Warehouse Cloud, Oracle’s Autonomous Data Warehouse (ADW), Yellowbrick Data</li>
<li>장점:<ul>
<li>Scalability: 트래픽이 튀거나 적은 시간 모두 안정적 서비스 가능</li>
<li>Cost: storage와 CPU 사용 시간분만 비용 지불. 유지보수 및 운영을 안해도됨.</li>
<li>Built-in ecosystem: 다른 클라우드 서비스와 같은 플랫폼에서 연동 가능</li>
<li>Security: 보안이 우려가 될수도 있지만, 오히려 클라우드 서비스 제공자가 많은 보안 관련 투자를 함</li>
<li>Availability: 다양한 region과 zone에 data가 복제되어있으면 언제든지 사용할 수 있다</li>
<li>Time to market</li>
</ul>
</li>
<li>한계<ul>
<li>Data integration: 클라우드 DW에 데이터를 올리려면 어려운 ETL 코딩 수행. 서드파티 ETL 툴이 이 과정을 도와 줄 수 있다.</li>
<li>Provider lock-in: 클라우드 DW를 선정하면 기술적인 어려움이나 계약상 이슈로 다른 플랫폼으로 갈아타기 어려울 수 있다</li>
<li>Latency: 데이터 소스의 위치, 데이터 양, 데이터 타입에 따라 네트워크 지연이 발생할 수 있어 사전 테스트를 해봐야 한다</li>
</ul>
</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[FLASK] DB 조회 하기]]></title>
            <link>https://velog.io/@_master_branch/FLASK-DB-%EC%A1%B0%ED%9A%8C-%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@_master_branch/FLASK-DB-%EC%A1%B0%ED%9A%8C-%ED%95%98%EA%B8%B0</guid>
            <pubDate>Wed, 02 Aug 2023 12:40:10 GMT</pubDate>
            <description><![CDATA[<p><strong>파이썬 코드에서 DB 조회를 하려면?</strong></p>
<ul>
<li>SQLAlchemy</li>
<li>ORM (Object Relational Mapper): 관계형 DB의 테이블들을 프로그래밍 언어의 클래스로 표현할 수 있게 해주는 것</li>
<li>ORM 부분 말고 DB와 연결만 하려면 CORE부분만 사용하면 됨</li>
</ul>
<p><strong>SQLAlchemy에서 MySQL을 사용하려면?</strong></p>
<ul>
<li>MySQL DB API: MySQL-Connector</li>
<li>아래와 같이 URL을 사용하여 웹사이트에 접속하듯이 DB URL을 통해 접속 (접속하는건 SQLAlchemy create_engine 통해서)</li>
<li>dburl = f”mysql+mysqlconnector://{username}:{password}@{host}:{port}/{database}?charset=utf8”</li>
<li>접속정보는 <a href="http://config.py">config.py</a> 파일에 따로 저장하기</li>
</ul>
<p><strong>SQLAlchemy통해 API와 DB를 연결하려면?</strong></p>
<ul>
<li><a href="http://config.py">config.py</a> 파일 만드는 이유<ul>
<li>설정정보 따로 관리해서 개인정보 노출 x</li>
<li>각 환경과 설정에 맞는 설정 파일 적용 → .gitignore 파일에 넣어서 git 레포지토리에 포함 x → 개인정보 노출을 막고 각 개발 호스트 혹은 서버에 맞는 <a href="http://config.py">config.py</a> 파일 생성하게</li>
</ul>
</li>
</ul>
<p>|-config.py</p>
<p>|-app.py</p>
<p>config.py</p>
<pre><code class="language-python">db = {
    &#39;user&#39;     : &#39;user&#39;,
    &#39;password&#39; : &#39;password&#39;,
    &#39;host&#39;     : &#39;localhost&#39;,# 접속할 db 주소, 로컬이라 로컬호스트이고 외부이면 주소 필요
    &#39;port&#39;     : 3306, # rdb는 주로 3306 포트 통해 연결. db도 네트워크를 통해 연결되는 시스템이므로 포트 필수
    &#39;database&#39; : &#39;db_app&#39; # 실제 사용할 db 이름
}

DB_URL = f&quot;mysql+mysqlconnector://{db[&#39;user&#39;]}:{db[&#39;password&#39;]}@{db[&#39;host&#39;]}:{db[&#39;port&#39;]}/{db[&#39;database&#39;]}?charset=utf8&quot;</code></pre>
<p>app.py</p>
<pre><code class="language-python">from flask      import Flask, request, jsonify, current_app
from flask.json import JSONEncoder
from sqlalchemy import create_engine, text

# ... 중략
def create_app(test_config = None): # 이 함수를 통해 flask 실행. test_config 인자 받아서 단위 테스트 할때 테스트용 db 등 설정 정보 입력.
    app = Flask(__name__)

    app.json_encoder = CustomJSONEncoder

    if test_config is None:
        app.config.from_pyfile(&quot;config.py&quot;)
    else:
        app.config.update(test_config) # 테스트 실행시 test config 정보 적용 

    database     = create_engine(app.config[&#39;DB_URL&#39;], encoding = &#39;utf-8&#39;, max_overflow = 0) # db와 연결
    app.database = database # sqlalchemy db 객체를 flask 객체에 저장해서 이 함수 외부에서도 db 접속하게

# ... 중략
    return app  # create_app 함수는 flask가 자동으로 factory 함수로 인지해서 이 함수를 통해 flask 실행

# 팩토리 함수(Factory Function)란, 객체를 생성하여 반환하는 함수를 말합니다 (객체를 공장에서 처럼 찍어내서)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[HTTP 통신 기본 개념]]></title>
            <link>https://velog.io/@_master_branch/HTTP-%ED%86%B5%EC%8B%A0-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90</link>
            <guid>https://velog.io/@_master_branch/HTTP-%ED%86%B5%EC%8B%A0-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90</guid>
            <pubDate>Wed, 02 Aug 2023 12:36:12 GMT</pubDate>
            <description><![CDATA[<p><strong>HTTP</strong></p>
<ul>
<li><p>HyperText Trasfer Protocol: 하이퍼텍스트 문서 즉 HTML을 서로 주고받을 수 있도록 만들어진 프로토콜</p>
</li>
<li><p>현재는 HTML을 넘어서 다양한 데이터 전송</p>
</li>
<li><p>2가지 특성</p>
<ul>
<li><p>request - reponse 방식</p>
<ul>
<li><p>클라이언트가 먼저 HTTP 요청을 서버에 보내면 서버는 요청을 처리한 후 결과에 따른 HTTP 응답을 클라이언트에게 보냄 (요청+응답 = 하나의 HTTP 통신)</p>
<p>  → 예시:   GET/ping  (request)    HTTP/1.1 200 OK pong (reponse)</p>
</li>
<li><p>flask가 자동으로 HTTP 형식으로 변환해서 사용자는 편하다!</p>
</li>
</ul>
</li>
<li><p>stateless</p>
<ul>
<li>각각 HTTP 통신은 독립적, 그전에 처리된 HTTP 통신에 대해 서버는 모른다. 서버는 오직 각각의 HTTP 요청에 대해 독립적으로 응답만 보내주면 된다.</li>
<li>로그인 사실같이 항상 사용자가 로그인 사실 여부를 HTTP 요청에 보내야 하는 단점이 있어서 쿠키나 세션을 이용해서 HTTP 요청을 처리할 때 필요한 진행과정이나 데이터 저장할수 있다</li>
</ul>
</li>
</ul>
</li>
</ul>
]]></description>
        </item>
    </channel>
</rss>