<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>멍발 이야기</title>
    <link>https://hee-yeon-02.tistory.com/</link>
    <description>개발 일지를 담아보자 합니다</description>
    <language>ko</language>
    <pubDate>Mon, 6 Apr 2026 04:43:20 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>멍발</managingEditor>
    <image>
      <title>멍발 이야기</title>
      <url>https://tistory1.daumcdn.net/tistory/6850157/attach/cc1e26fd721147f3856cc36f42528815</url>
      <link>https://hee-yeon-02.tistory.com</link>
    </image>
    <item>
      <title>SP(Stored Procedure, 저장 프로시저), 패치</title>
      <link>https://hee-yeon-02.tistory.com/entry/SPStored-Procedure-%EC%A0%80%EC%9E%A5-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80-%ED%8C%A8%EC%B9%98</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;채용공고 JD에서 SP를 보고 궁금해서 찾아서 정리해보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;SP는 DB 내부에 저장된 프로그램으로&lt;u&gt;&lt;b&gt; 여러 SQL을 하나로 묶어서 실행&lt;/b&gt;&lt;/u&gt;할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;(일종의 DB 안에서 돌아가는 함수랄까..)&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;함수 호출처럼 ①반복되는 로직을 재사용하거나 ②트랜잭션 처리하거나 ③비즈니스 로직 일부를 DB에서 처리할 때 사용한다.&lt;/p&gt;
&lt;pre id=&quot;code_1774851718325&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;-- 구조 예시
CREATE PROCEDURE GetUserOrders(IN userId INT)
BEGIN
    SELECT * FROM orders WHERE user_id = userId;
END;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;i&gt;※트랜잭션 처리&lt;/i&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하나의 작업 단위를 묶어서 처리하는 것&lt;/li&gt;
&lt;li&gt;ACID(Atomicity Consistency Isolation Durability, 원자성, 일관성, 격리성, 지속성)&lt;/li&gt;
&lt;li&gt;데이터 무결성을 보장하기 위함&lt;/li&gt;
&lt;li&gt;여러 SQL이 모두 성공하거나 모두 실패해야 한다.&lt;/li&gt;
&lt;li&gt;Why? A&amp;nbsp; &amp;rarr; B한테 1000원을 송금했다. A 계좌에는 출금이 됐지만, B의 계좌에는 입금이 안됐다면?? 문제가 발생하니 입출금 둘 다 성공하면 COMMIT이 되도록, 하나라도 실패하면 ROLLBACK이 되도록 트랜잭션을 처리해야 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;i&gt; &lt;i&gt;※&lt;/i&gt; &amp;nbsp;정산 배치(Batch job)&lt;/i&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터를 한 번에 모아서 처리하는 것&lt;/li&gt;
&lt;li&gt;실시간 ❌, 일괄 처리 ⭕&lt;/li&gt;
&lt;li&gt;스케줄 기반으로 일정 시간마다 실행&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;성능 느린 SP를 개선하는 튜닝이나 복잡한 레거시 SP를 분석할 때 주로 AI를 사용한다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Git으로 branch 따서 commit해서 pr 올려서 버전 관리하는 것처럼 DB도 버전 관리가 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버전 관리로 인한 변경을 &lt;b&gt;패치&lt;/b&gt;라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Flyway, Liquidbase, Alembic과 같은 도구가 있고, 특히나 DB는 롤백이 어려우니 &lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;Migration Script 관리&lt;/span&gt;&lt;/b&gt;가 필수다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요즘은 주로 SQL 쿼리문은 LLM이 생성을 해주고, SP대신 Airflow나 Spark 중심으로 처리하기도 한다. 하지만 여전히 금융이나 레거시 시스템은 SP 많이 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category> ️Software Development/DataBase</category>
      <author>멍발</author>
      <guid isPermaLink="true">https://hee-yeon-02.tistory.com/170</guid>
      <comments>https://hee-yeon-02.tistory.com/entry/SPStored-Procedure-%EC%A0%80%EC%9E%A5-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80-%ED%8C%A8%EC%B9%98#entry170comment</comments>
      <pubDate>Mon, 30 Mar 2026 15:33:35 +0900</pubDate>
    </item>
    <item>
      <title>최신 AI/IT 트렌드 + DE 직무 정의</title>
      <link>https://hee-yeon-02.tistory.com/entry/2Weeks-%EC%B5%9C%EC%8B%A0-AIIT-%ED%8A%B8%EB%A0%8C%EB%93%9C-%EC%82%B0%EC%97%85%EC%A7%81%EB%AC%B4-%EC%A0%95%EC%9D%98</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;AI / IT 트렌드 탐색&lt;/b&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;키워드에 관한 설명, 관련 AI 용어 정리&lt;/li&gt;
&lt;li&gt;키워드를 선택한 이유&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; &lt;b&gt;왜 지금 이 키워드가 부상하는가, 기술 + 배경(왜 지금?) + 개인 판단&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 키워드 간의 &lt;b&gt;관계와 흐름&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. Sovereign AI&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 국가별 데이터 주권을 지키며 자체 인프라, 데이터, 인력 및 비즈니스 네트워크를 사용하여 AI를 구축&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;-&amp;nbsp;특정 국가나 조직이 AI 모델, 학습 데이터, 컴퓨팅 인프라를 외부에 의존하지 않고 자국&amp;middot;자사 내에서 직접 구축&amp;middot;통제하려는 전략적 흐름 &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 Key Words: 프라이빗 클라우드, 온프레미스 데이터센터, 지역 규제 준수 데이터 거버넌스&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;관련 AI 용어&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- Data Sovereignty(데이터 주권)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- Private AI Infrastructure(사설 AI 인프라)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- On-premises LLM(온프레 LLM) : 클라우드가 아닌 자체 서버에서 운영하는 언어 모델 &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- Regional Data Residency(지역 데이터 상주)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- &lt;b&gt;Data Localization&lt;/b&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- &lt;b&gt;Sovereign Cloud&lt;/b&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;왜 이 키워드가 부상하고 있는가&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #3b3b3b; text-align: start;&quot; data-line=&quot;47&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-line=&quot;47&quot;&gt;2025~2026년 EU AI Act가 본격 시행되면서, 데이터가 어디에 저장되고 어디에서 학습되는지가 법적 이슈가 되었다&lt;/li&gt;
&lt;li data-line=&quot;48&quot;&gt;Gartner는 2027년까지 35%의 국가가 지역 특화 AI 플랫폼에 투자할 것으로 전망했다&lt;/li&gt;
&lt;li data-line=&quot;49&quot;&gt;IDC에 따르면 글로벌 소버린 클라우드 시장은 2027년까지 2,585억 달러에 도달할 전망이다&lt;/li&gt;
&lt;li data-line=&quot;50&quot;&gt;미&amp;middot;중 기술 패권 경쟁과 러시아-우크라이나 전쟁 이후, AI 인프라가 국가 안보 자산으로 인식되기 시작했다&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;왜 이 키워드를 선택해는가&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;처음 들어보는 단어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떤 국가&amp;middot;조직이 AI를 통제하느냐에 따라 데이터 편향, 규제 공백, 정보 격차가 구조적으로 달라진다. AI 인프라를 외부에 의존할 경우 데이터 주권 자체가 흔들린다는 위기의식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;직무 연관성&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sovereign AI 인프라가 구축되는 순간 그 위에서 데이터를 수집&amp;middot;처리&amp;middot;운영하는 파이프라인 설계 수요가 함께 폭발&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. &lt;span data-token-index=&quot;0&quot;&gt;Agentic AI&lt;/span&gt; &lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span data-token-index=&quot;0&quot;&gt;설명&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span data-token-index=&quot;0&quot;&gt;- AI가 스스로 계획 세우고, 실행하고, 결과를 평가하는 자율 AI 에이전트 &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span data-token-index=&quot;0&quot;&gt;- Multi-agent 시스템으로 협업해 복잡한 비즈니스 워크플로우를 자동화함&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span data-token-index=&quot;0&quot;&gt;- 단순 질의응답을 넘어 데이터 수집&amp;middot;전처리&amp;middot;적재&amp;middot;모니터링을 에이전트가 오케스트레이션하는 방향으로 파이프라인의 패러다임 변화&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span data-token-index=&quot;0&quot;&gt;관련 AI 용어&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span data-token-index=&quot;0&quot;&gt;- LAM(Large Action Model) &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span data-token-index=&quot;0&quot;&gt;- &lt;b&gt;Multi-Agent System : &lt;span style=&quot;color: #3b3b3b; text-align: start;&quot;&gt;여러 AI 에이전트가 역할을 분담해 복잡한 작업을 협업 수행하는 구조&lt;/span&gt; &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span data-token-index=&quot;0&quot;&gt;- Agent Orchestration(에이전트 오케스트레이션) : &lt;span style=&quot;color: #3b3b3b; text-align: start;&quot;&gt;대규모 언어모델이 외부 도구&amp;middot;API를 호출하도록 조율하는 패턴&lt;/span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span data-token-index=&quot;0&quot;&gt;왜 이 키워드가 부상하고 있는가&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span data-token-index=&quot;0&quot;&gt;- &lt;span style=&quot;color: #3b3b3b; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;GPT-4, Gemini, Claude 등이 API와 DB를 직접 조작할 수 있게 되면서 에이전트 패러다임이 실용화&lt;/span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span data-token-index=&quot;0&quot;&gt;- &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #3b3b3b; letter-spacing: 0px;&quot;&gt;McKinsey에 따르면 이미 23%의 조직이 에이전틱 AI를 본격 확장 중이며, 39%가 실험 단계에 있다&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;직무 연관성&lt;/b&gt; &lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Agentic AI는 그 Sovereign AI 인프라 위에서 실제로 작동하는 엔진이다. AI가 자율 실행하는 세계에서는 파이프라인이 &lt;span data-token-index=&quot;0&quot;&gt;살아있는 운영 시스템&lt;/span&gt;이 된다. 데이터 엔지니어의 역할이 코드를 짜는 것에서 에이전트가 신뢰할 수 있도록 데이터 환경 자체를 설계하는 것으로 이동하고 있다는 판단이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3b3b3b; text-align: start;&quot;&gt;데이터 수집 단계에서 에이전트가&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;소스 변경을 감지하고 스키마를 자동 매핑&lt;/b&gt;&lt;span style=&quot;color: #3b3b3b; text-align: start;&quot;&gt;할 수 있다. 처리 단계에서는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;데이터 품질 이상 발생 시 원인을 분석하고 자동으로 조치&lt;/b&gt;&lt;span style=&quot;color: #3b3b3b; text-align: start;&quot;&gt;할 수 있다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; &lt;span data-token-index=&quot;0&quot;&gt;3. Data Observability&lt;/span&gt; &lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3b3b3b; text-align: start;&quot;&gt;데이터 파이프라인의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;건강 상태를 실시간으로 모니터링&lt;/b&gt;&lt;span style=&quot;color: #3b3b3b; text-align: start;&quot;&gt;하고, 데이터의 신선도(freshness)&amp;middot;볼륨&amp;middot;스키마&amp;middot;분포&amp;middot;리니지 등 5가지 핵심 지표를 추적하여 이상 징후를 조기에 감지하는 실&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;관련 용어&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;b&gt;Schema Drift : &lt;span style=&quot;color: #3b3b3b; text-align: start;&quot;&gt;업스트림 소스의 스키마가 예고 없이 변경되는 것. 파이프라인 장애의 주요 원인&lt;/span&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;왜 이 키워드가 부상하고 있는가&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- &lt;/b&gt;&lt;span style=&quot;color: #3b3b3b; letter-spacing: 0px;&quot;&gt;AI 시대에 모델의 품질은 곧 데이터의 품질이다. &quot;Garbage in, garbage out&quot;이 챗봇이 아닌 자율 에이전트 시대에는 훨씬 더 치명적이다&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3b3b3b; letter-spacing: 0px;&quot;&gt;- &lt;span style=&quot;color: #3b3b3b; text-align: start;&quot;&gt;Gartner에 따르면 AI 에이전트가 물리 환경에서 생성하는 데이터량이 폭증하면서, 2030년까지 Universal Semantic Layer가 핵심 인프라가 될 전망&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;직무 연관성&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 사후 에러 수정 &amp;rarr;&amp;nbsp;&lt;span data-token-index=&quot;1&quot;&gt;예방 모니터링 + 자동 복구&lt;/span&gt;, 시간의 60%를 파이프라인 개선에 집중 가능.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3b3b3b; text-align: start;&quot;&gt;아무리 잘 만든 파이프라인도 모니터링 없이는 조용히 고장 난다. &quot;데이터 다운타임&quot;이라는 표현이 있다 &amp;mdash; 데이터가 누락되거나, 이상한 값이 들어오거나, 스키마가 바뀌었는데 아무도 모르는 시간대. 이 시간이 길어질수록 후속 분석과 AI 모델의 결과가 오염된다. 특히 Agentic AI 시대에는 에이전트가 잘못된 데이터를 기반으로 자율적으로 행동할 수 있기 때문에,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;데이터의 상태를 실시간으로 파악하는 것은 선택이 아니라 안전장치&lt;/b&gt;&lt;span style=&quot;color: #3b3b3b; text-align: start;&quot;&gt;라고 생각했다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #3b3b3b; text-align: start;&quot;&gt;4. Digital Provenance &lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #3b3b3b; text-align: start;&quot;&gt;설명&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터가 어디서 생성되어 어떤 변환을 거쳤는지 그 이력 전체를 증명 가능한 형태로 추적&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;데이터, 소프트웨어, 미디어의 출처를 검증하고 추적해서 신뢰성과 투명성을 확보하는 기술&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내가 종사하는 산업과 직무를 한 문장으로 정의&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;내가 속한 산업은 무엇인가?&lt;/li&gt;
&lt;li&gt;내 직무는 어떤 문제를 해결하는가?&lt;/li&gt;
&lt;li&gt;내가 만드는 결과물은 무엇인가?&lt;/li&gt;
&lt;li&gt;이 기술이 내 직무와 어떤 부분에서 연결되는가?&lt;/li&gt;
&lt;li&gt;이 기술이 확산되면 내 직무의 어떤 업무가 변화할 것 같은가?&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #3b3b3b; text-align: start;&quot; data-line=&quot;182&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;IT / 데이터 인프라 산업&lt;/b&gt;에 종사하려는 신입 엔지니어&lt;/p&gt;
&lt;p style=&quot;color: #3b3b3b; text-align: start;&quot; data-line=&quot;184&quot; data-ke-size=&quot;size16&quot;&gt;- 내 직무가 해결하는 문제는, 여러 소스에 흩어진 데이터를&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;신뢰할 수 있는 형태로 정제하고, 누구나 안심하고 사용할 수 있도록 적시에 전달하는 것&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #3b3b3b; text-align: start;&quot; data-line=&quot;184&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span data-token-index=&quot;0&quot;&gt;- AI&amp;middot;데이터 산업에서, 신뢰할 수 없는 데이터가 잘못된 판단을 만들어내는 문제를 해결하기 위해, 원천 데이터에서 서비스까지 데이터가 끊기지 않고 정확하게 흐르는 파이프라인을 설계&amp;middot;구축&amp;middot;운영&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #3b3b3b; text-align: start;&quot; data-line=&quot;186&quot; data-ke-size=&quot;size16&quot;&gt;- 결과물은 데이터 파이프라인, ETL/ELT 워크플로우, 그리고 이를 안정적으로 운영하기 위한 인프라 코드와 모니터링 체계&lt;/p&gt;
&lt;p style=&quot;color: #3b3b3b; text-align: start;&quot; data-line=&quot;186&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #3b3b3b; text-align: start;&quot; data-line=&quot;186&quot; data-ke-size=&quot;size16&quot;&gt;- Agentic AI : &lt;span style=&quot;color: #3b3b3b; text-align: start;&quot;&gt;단순 반복 작업(스케줄링 조정, 재실행, 알림 대응)은 에이전트가 대체할 것이다. 대신&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;에이전트의 행동 규칙을 설계하고, 에이전트가 올바르게 판단하는지 검증하며, 복잡한 비즈니스 로직을 에이전트에게 가르치는 역할&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;b&gt;&lt;span data-token-index=&quot;0&quot;&gt;Data Observability&lt;/span&gt;&lt;/b&gt; : 사후 에러 수정 &amp;rarr; 예방 모니터링 + 자동 복구, 시간의 60%를 파이프라인 개선에 집중 가능.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #3b3b3b; text-align: start;&quot; data-line=&quot;204&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-line=&quot;204&quot;&gt;&lt;a style=&quot;color: #005fb8;&quot; href=&quot;https://www.gartner.com/en/articles/top-technology-trends-2026&quot; data-href=&quot;https://www.gartner.com/en/articles/top-technology-trends-2026&quot;&gt;Gartner Top Strategic Technology Trends 2026&lt;/a&gt;&lt;/li&gt;
&lt;li data-line=&quot;205&quot;&gt;&lt;a style=&quot;color: #005fb8;&quot; href=&quot;https://www.gartner.com/en/documents/5917941&quot; data-href=&quot;https://www.gartner.com/en/documents/5917941&quot;&gt;Gartner Predicts 2026: AI Sovereignty&lt;/a&gt;&lt;/li&gt;
&lt;li data-line=&quot;206&quot;&gt;&lt;a style=&quot;color: #005fb8;&quot; href=&quot;https://www.idc.com/events/futurescape&quot; data-href=&quot;https://www.idc.com/events/futurescape&quot;&gt;IDC FutureScape 2026&lt;/a&gt;&lt;/li&gt;
&lt;li data-line=&quot;207&quot;&gt;&lt;a style=&quot;color: #005fb8;&quot; href=&quot;https://www.mckinsey.com/capabilities/quantumblack/our-insights/the-state-of-ai&quot; data-href=&quot;https://www.mckinsey.com/capabilities/quantumblack/our-insights/the-state-of-ai&quot;&gt;McKinsey &amp;mdash; The state of AI: How organizations are rewiring to capture value&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blogs.nvidia.co.kr/blog/what-is-sovereign-ai/&quot;&gt;https://blogs.nvidia.co.kr/blog/what-is-sovereign-ai/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category> Infrastructure &amp;amp; Platform/Infrastructure</category>
      <author>멍발</author>
      <guid isPermaLink="true">https://hee-yeon-02.tistory.com/169</guid>
      <comments>https://hee-yeon-02.tistory.com/entry/2Weeks-%EC%B5%9C%EC%8B%A0-AIIT-%ED%8A%B8%EB%A0%8C%EB%93%9C-%EC%82%B0%EC%97%85%EC%A7%81%EB%AC%B4-%EC%A0%95%EC%9D%98#entry169comment</comments>
      <pubDate>Thu, 19 Mar 2026 20:05:46 +0900</pubDate>
    </item>
    <item>
      <title>BYOAI, AI가 전제인 시대, 우리는 무엇을 해야 할까?</title>
      <link>https://hee-yeon-02.tistory.com/entry/BYOAI-AI%EA%B0%80-%EC%A0%84%EC%A0%9C%EC%9D%B8-%EC%8B%9C%EB%8C%80-%EC%9A%B0%EB%A6%AC%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%84-%ED%95%B4%EC%95%BC-%ED%95%A0%EA%B9%8C</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: oklch(0.2642 0.013 93.9); text-align: start;&quot;&gt;위 제목은 메가존클라우드의 &lt;b&gt;&lt;u&gt;BYOAI&lt;/u&gt;&lt;/b&gt; 흐름을 보면서 자연스럽게 떠오르는 질문이다.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: oklch(0.2642 0.013 93.9); text-align: start;&quot;&gt;AI를 내 직무에 어떻게 적용시키고, 관리하고 운영하고 확장할 것인지 기술 관점에서 정리해 보았다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;span style=&quot;color: oklch(0.2642 0.013 93.9); text-align: start;&quot;&gt;* BYOAI&lt;span style=&quot;color: #474747; text-align: start;&quot;&gt;(Bring Your Own Artificial Intelligence) : 직원&amp;nbsp;개인이&amp;nbsp;필요와&amp;nbsp;선호로&amp;nbsp;하는&amp;nbsp;생성형&amp;nbsp;AI&amp;nbsp;도구를&amp;nbsp;회사&amp;nbsp;업무에&amp;nbsp;직접&amp;nbsp;가져와서&amp;nbsp;사용하는&amp;nbsp;것&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;h2 id=&quot;1-byoai&quot; style=&quot;background-color: oklch(0.9798 0.005 78.3); color: oklch(0.2642 0.013 93.9); text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. BYOAI 시대, 개발자의 일하는 방식은 어떻게 바뀌나&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: oklch(0.2642 0.013 93.9); text-align: start;&quot;&gt;조직 차원에서 통합 플랫폼을 제공하기 전에 이미 구성원들은 ChatGPT, Claude, Notion AI, GitHub Copilot 같은 도구를 쓰고 있다. &amp;ldquo;공식 도입&amp;rdquo;보다 &amp;ldquo;이미 쓰고 있는 걸 어떻게 관리할까&amp;rdquo;가 뒤따라&lt;/span&gt;&lt;span style=&quot;color: oklch(0.2642 0.013 93.9); text-align: start;&quot;&gt;오는 모양새다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: oklch(0.2642 0.013 93.9); text-align: start;&quot;&gt;그러면 나는 내 직무를 어디까지 AI에게 맡길 것인가 ?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: oklch(0.2642 0.013 93.9); text-align: start;&quot;&gt;- 자동화 ?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: oklch(0.2642 0.013 93.9); text-align: start;&quot;&gt;- 초안 뼈대 ?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: oklch(0.2642 0.013 93.9); text-align: start;&quot;&gt;- task 단위의 프로세스 ?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI를 활용하면서 &lt;span style=&quot;color: oklch(0.2642 0.013 93.9); text-align: start;&quot;&gt;&amp;ldquo;없이 못 사는 데모&amp;rdquo;로 소비하는 수준을 넘어서,&lt;/span&gt;&lt;span style=&quot;color: oklch(0.2642 0.013 93.9); text-align: start;&quot;&gt;나만의 &amp;ldquo;작은 운영 도구&amp;rdquo;로 자리 잡게 만드는 것이 첫 단계다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;2-ai-99----1&quot; style=&quot;background-color: oklch(0.9798 0.005 78.3); color: oklch(0.2642 0.013 93.9); text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2. AI가 99%를 담당하는 세상, 인간의 1%는 어디에 있을까&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;사실 이 질문은 AI 품질운영관리 직무 면접을 봤을 때 들었다. 이미 높은 정확도로 AI가 99%를 이루고 있는 세상에서 어떤 1%를 담당해야 할까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;문제 정의와 맥락 조율&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;ldquo;무엇을 자동화할 것인가, 무엇은 자동화하지 않을 것인가?&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;어떤 지표를 최적화해야 이 비즈니스/조직에 진짜 이익이 되는가?&amp;rdquo;&lt;/li&gt;
&lt;li&gt;같은 모델이라도, 어떤 문제 정의와 KPI를 주느냐에 따라 완전히 다른 서비스가 나온다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;가치&amp;middot;윤리 판단&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 편향, 프라이버시, 공정성, 노동 구조 변화 같은 문제는 여전히 인간의 가치 판단이 필요하다.&lt;/li&gt;
&lt;li&gt;&amp;ldquo;우리가 만든 시스템이 특정 집단을 일관되게 불리하게 만들고 있지 않은가?&amp;rdquo;, &amp;ldquo;설명 가능성 부족을 어디까지 허용할 것인가?&amp;rdquo; 같은 질문들.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여기서, 성인용 GPT가 나오고 있을 정도로 상업화되고 있는데, 기업에서 가치와 윤리 판단을 어느 선까지 지킬 수 있을까&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;서사와 설계&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;동일한 API/모델을 쓰더라도, 어떤 사용자 여정&amp;middot;스토리&amp;middot;UX로 엮느냐에 따라 제품의 생명력이 갈린다.&lt;/li&gt;
&lt;li&gt;단순한 기능 조합이 아니라, &amp;ldquo;사용자가 왜 이 도구를 갈망하게 될지&amp;rdquo;를 설계하는 영역.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;결국 모델을 만들고, AI를 사용하는 책임자는 '인간'이니 어떤 정답을 구해서 사람들에게 어떤 의미를 제공할 지 정하는 역할이 1%에 가까운 것 같다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;3-ai&quot; style=&quot;background-color: oklch(0.9798 0.005 78.3); color: oklch(0.2642 0.013 93.9); text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. AI를 &amp;lsquo;관리&amp;rsquo;한다는 것: 거버넌스와 책임 구획&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: oklch(0.2642 0.013 93.9); text-align: start;&quot;&gt; BYOAI 환경에서는 누구나 자기 도구를 들고 들어오기에, 조직은 &amp;ldquo;가치는 살리면서 리스크를 통제하는&amp;rdquo; AI 거버넌스가 중요해진다. 개발자 입장에서 AI 관리는 보통 다음 네 가지를 포함한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000; background-color: #f6e199;&quot;&gt;데이터/보안 경계 정의&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;어떤 데이터는 절대 외부 LLM에 넣지 않는다.&lt;/li&gt;
&lt;li&gt;어떤 데이터는 사내 LLM&amp;middot;프록시를 통해서만 사용한다.&lt;/li&gt;
&lt;li&gt;민감도 레벨에 따라 사용 가능한 AI 채널을 나누는 정책 설계.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;품질 기준과 검증 루프&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;ldquo;AI가 내놓은 결과가 어느 정도면 &amp;lsquo;괜찮다&amp;rsquo;고 볼 것인가?&amp;rdquo;를 정의해야 한다.&lt;/li&gt;
&lt;li&gt;예: 중요 보고서는 반드시 사람 2인 이상 검토, 특정 정확도/재현율 기준 미달 시 자동 알람 및 롤백, 휴먼-인-더-루프(HITL) 프로세스 적용 등.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;로그와 추적 가능성&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;어떤 입력/프롬프트와 데이터 버전에서 어떤 결과가 나왔는지 추적할 수 있어야 한다.&lt;/li&gt;
&lt;li&gt;모델 버전, 프롬프트 버전, 데이터 스냅샷, 시스템 컨피그를 함께 기록하는 형태의 &amp;ldquo;AI용 GitOps&amp;rdquo;가 필요하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;책임 소재 정리&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;ldquo;AI가 그렇게 판단한 거라서&amp;hellip;&amp;rdquo;로 끝나지 않는다.&lt;/li&gt;
&lt;li&gt;어떤 의사결정은 시스템이, 어떤 의사결정은 사람이 최종 책임을 진다는 기준선을 미리 정의해야 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;ai----ai&quot; style=&quot;background-color: oklch(0.9798 0.005 78.3); color: oklch(0.2642 0.013 93.9); text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;마무리: &amp;ldquo;AI를 잘 쓰는 개발자&amp;rdquo;에서 &amp;ldquo;AI를 설계&amp;middot;운영하는 개발자&amp;rdquo;로&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: oklch(0.2642 0.013 93.9); text-align: start;&quot;&gt;정리해 보면, BYOAI와 AI 네이티브 흐름 속에서&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: oklch(0.9798 0.005 78.3); color: oklch(0.2642 0.013 93.9); text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;내 직무에서 어떤 작업을 AI에 맡길 것인지, 그리고 어느 수준까지 위임할 것인지.&lt;/li&gt;
&lt;li&gt;AI가 대부분의 계산을 담당하는 세상에서, 나는 문제 정의&amp;middot;가치 판단&amp;middot;설계&amp;middot;관계라는 1%를 어떻게 키울 것인지.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;위 2가지를 고민해보고 사용해야 한다고 본다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;참고자료&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;a title=&quot;메가존클라우드 ITing&quot; href=&quot;https://iting.co.kr/solution-air-studio-20260224/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://iting.co.kr/solution-air-studio-20260224/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1773379676254&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;ITing - AI를 써보기만 하는 조직과 운영하는 조직의 차이&quot; data-og-description=&quot;이 글에서는 기업 내 AI 활용 현황을 점검해볼 수 있는 체크리스트부터, 실제 기업들과 진행한 AI 과제 도출 워크샵 사례, 그리고 기업 내 AI Control Tower 역할을 수행하는 AIR Studio까지 차례대로 살&quot; data-og-host=&quot;iting.co.kr&quot; data-og-source-url=&quot;https://iting.co.kr/solution-air-studio-20260224/&quot; data-og-url=&quot;https://iting.co.kr/solution-air-studio-20260224/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ieQQV/dJMb9kT1uxE/zEizsJ5pesZikRdnc6kWsk/img.png?width=1344&amp;amp;height=768&amp;amp;face=0_0_1344_768,https://scrap.kakaocdn.net/dn/bhiENm/dJMb9jgvIMG/4nOT7fgE2kbPZ0v7W7kG4K/img.png?width=1344&amp;amp;height=768&amp;amp;face=0_0_1344_768,https://scrap.kakaocdn.net/dn/cPnmoi/dJMb9eTOb2A/kJqKZAdjXhKEaNXO00RTR0/img.jpg?width=1440&amp;amp;height=1080&amp;amp;face=0_0_1440_1080&quot;&gt;&lt;a href=&quot;https://iting.co.kr/solution-air-studio-20260224/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://iting.co.kr/solution-air-studio-20260224/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ieQQV/dJMb9kT1uxE/zEizsJ5pesZikRdnc6kWsk/img.png?width=1344&amp;amp;height=768&amp;amp;face=0_0_1344_768,https://scrap.kakaocdn.net/dn/bhiENm/dJMb9jgvIMG/4nOT7fgE2kbPZ0v7W7kG4K/img.png?width=1344&amp;amp;height=768&amp;amp;face=0_0_1344_768,https://scrap.kakaocdn.net/dn/cPnmoi/dJMb9eTOb2A/kJqKZAdjXhKEaNXO00RTR0/img.jpg?width=1440&amp;amp;height=1080&amp;amp;face=0_0_1440_1080');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;ITing - AI를 써보기만 하는 조직과 운영하는 조직의 차이&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 글에서는 기업 내 AI 활용 현황을 점검해볼 수 있는 체크리스트부터, 실제 기업들과 진행한 AI 과제 도출 워크샵 사례, 그리고 기업 내 AI Control Tower 역할을 수행하는 AIR Studio까지 차례대로 살&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;iting.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.megazone.com/resources/insight/report-byoai-20260224&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.megazone.com/resources/insight/report-byoai-20260224&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1773379775149&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;[Report] BYOAI와 함께하는 스마트워크: 국내 기업 AI 활용 트렌드와 지속 가능한 성장을 위한 거버넌&quot; data-og-description=&quot;국내 기업의 생성형 AI 활용이 빠르게 확산됨에 따라 BYOAI(Bring Your Own AI)에 대한 거버넌스 차원의 접근이 필요한 시점에 도달했습니다. 이 리포트는 기업이 준비해야 할 AI 거버넌스와 운영 전략&quot; data-og-host=&quot;www.megazone.com&quot; data-og-source-url=&quot;https://www.megazone.com/resources/insight/report-byoai-20260224&quot; data-og-url=&quot;https://www.megazone.com/resources/insight/report-byoai-20260224&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Rr5jd/dJMb9c9wmxz/KrbobHHlI4uPpU2Enkt4p0/img.png?width=2752&amp;amp;height=1536&amp;amp;face=0_0_2752_1536,https://scrap.kakaocdn.net/dn/bpVe2O/dJMb8UHNFEs/0QQzgpuDsxRftnrhYpz2zk/img.png?width=2752&amp;amp;height=1536&amp;amp;face=0_0_2752_1536,https://scrap.kakaocdn.net/dn/nWqza/dJMb9fZtPKG/gdmOcqKO2K1v8eeG7XcIGK/img.png?width=700&amp;amp;height=724&amp;amp;face=0_0_700_724&quot;&gt;&lt;a href=&quot;https://www.megazone.com/resources/insight/report-byoai-20260224&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.megazone.com/resources/insight/report-byoai-20260224&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Rr5jd/dJMb9c9wmxz/KrbobHHlI4uPpU2Enkt4p0/img.png?width=2752&amp;amp;height=1536&amp;amp;face=0_0_2752_1536,https://scrap.kakaocdn.net/dn/bpVe2O/dJMb8UHNFEs/0QQzgpuDsxRftnrhYpz2zk/img.png?width=2752&amp;amp;height=1536&amp;amp;face=0_0_2752_1536,https://scrap.kakaocdn.net/dn/nWqza/dJMb9fZtPKG/gdmOcqKO2K1v8eeG7XcIGK/img.png?width=700&amp;amp;height=724&amp;amp;face=0_0_700_724');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Report] BYOAI와 함께하는 스마트워크: 국내 기업 AI 활용 트렌드와 지속 가능한 성장을 위한 거버넌&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;국내 기업의 생성형 AI 활용이 빠르게 확산됨에 따라 BYOAI(Bring Your Own AI)에 대한 거버넌스 차원의 접근이 필요한 시점에 도달했습니다. 이 리포트는 기업이 준비해야 할 AI 거버넌스와 운영 전략&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.megazone.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category> ️Software Development/AI</category>
      <author>멍발</author>
      <guid isPermaLink="true">https://hee-yeon-02.tistory.com/168</guid>
      <comments>https://hee-yeon-02.tistory.com/entry/BYOAI-AI%EA%B0%80-%EC%A0%84%EC%A0%9C%EC%9D%B8-%EC%8B%9C%EB%8C%80-%EC%9A%B0%EB%A6%AC%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%84-%ED%95%B4%EC%95%BC-%ED%95%A0%EA%B9%8C#entry168comment</comments>
      <pubDate>Fri, 13 Mar 2026 14:31:45 +0900</pubDate>
    </item>
    <item>
      <title>IT InfraStructure 기초_CS기술면접대비PDF</title>
      <link>https://hee-yeon-02.tistory.com/entry/IT-InfraStructure-%EA%B8%B0%EC%B4%88CS%EA%B8%B0%EC%88%A0%EB%A9%B4%EC%A0%91%EB%8C%80%EB%B9%84PDF</link>
      <description>&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;i&gt;※ LLM, 전공지식, 교재 등을 이용해서 정리한 내용입니다.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Gemini_Generated_Image_2nl1vp2nl1vp2nl1.png&quot; data-origin-width=&quot;2816&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yR1vO/dJMcah4CKce/fI4ZsyXC6B5QskfQJReXF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yR1vO/dJMcah4CKce/fI4ZsyXC6B5QskfQJReXF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yR1vO/dJMcah4CKce/fI4ZsyXC6B5QskfQJReXF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyR1vO%2FdJMcah4CKce%2FfI4ZsyXC6B5QskfQJReXF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2816&quot; height=&quot;1536&quot; data-filename=&quot;Gemini_Generated_Image_2nl1vp2nl1vp2nl1.png&quot; data-origin-width=&quot;2816&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;1. 시스템 아키텍처&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;IT 인프라의 전체적인 구조와 설계를 의미한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;1) 집약형 아키텍처&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;모든 시스템 기능을 하나의 고성능 중앙 컴퓨터에서 처리하는 구조로, 은행의 계정계 시스템처럼 안정성과 일관성이 매우 중요한 &lt;u&gt;&lt;b&gt;기간 시스템&lt;/b&gt;&lt;/u&gt;에서 주로 사용한다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;장점&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;구성이 단순하고, 모든 자원이 한 곳에 있어서 관리가 편하다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;리소스 관리와 이중화를 통해서 높은 안정성과 성능 확보가 가능하다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;단점&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;고가의 대형 컴퓨터 도입 및 유지보수 비용이 많이 든다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;중앙 컴퓨터에 장애가 발생하면 전체 시스템이 마비된다.&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt; 집약형 아키텍처의 장단점을 설명하고, 어떤 시스템에 적합할지 설명해보아라.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;font-size: 1em; letter-spacing: 0px;&quot;&gt;집약형 아키텍처는 모든 처리를 중앙 서버에서 담당하여 관리가 편하고 데이터 일관성을 지키기 용이하다는 장점이 있다. 하지만, &lt;/span&gt;&lt;span style=&quot;font-size: 1em; letter-spacing: 0px;&quot;&gt;확장성이 떨어지고 초기 도입 비용이 비싸다는 단점이 있다. &lt;/span&gt;&lt;span style=&quot;font-size: 1em; letter-spacing: 0px;&quot;&gt;따라서 실시간 트랜잭션 처리의 무결성이 매우 중요한 은행 계정계 시스템이나 증권 거래 시스템 같은 곳에 적합하다.&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;2) 분할(분산)형 아키텍처&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;여러 대의 컴퓨터(서버)를 네트워크로 연결하여 각자 역할을 분담하고, 함께 협력하여 하나의 시스템처럼 동작하게 하는 구조이다. 대부분의 웹 서비스가 이 구조 사용 !&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;장점&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt; 저렴한 서버 여러 대로 구축할 수 있어 비용 효율적이다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;필요에 따라 서버를 추가하여 시스템을 쉽게 확장 가능하다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;서버 하나에 장애가 발생해도 다른 서버로 서비스를 계속할 수 있어 안정성이 높다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;단점&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;여러 서버를 관리해야 하므로 구조가 복잡하고 관리 포인트가 늘어난다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;데이터 동기화, 네트워크 지연 등 고려해야 할 점이 많다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;종류&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;수직 분할: &lt;span style=&quot;text-align: start;&quot;&gt;서버의&amp;nbsp;&lt;/span&gt;&lt;b&gt;역할&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;에 따라 분할하는 방식이다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;ex) &lt;span style=&quot;text-align: start;&quot;&gt;웹 서버, 애플리케이션 서버, DB 서버로 나누는 3계층 아키텍처&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;수평 분할: &lt;span style=&quot;text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;동일한 역할&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;을 하는 서버를 여러 대 두어 부하를 분산하는 방식이다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;ex) &lt;span style=&quot;text-align: start;&quot;&gt;웹 서버 10대 운영&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt; 최근 웹 서비스들이 대부분 분산 아키텍처를 채택하는 이유&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000; letter-spacing: 0px;&quot;&gt;분산 아키텍처는 저렴한 비용으로 시스템을 구축하고, 사용자가 급증했을 때 서버를 추가하는 방식으로 유연하게 확장이 가능하다.또한, 여러 서버에 부하를 분산시키고 일부 서버에 장애가 발생해도 서비스 중단 없이 운영할 수 있는 높은 가용성을 확보할 수 있다는 장점 때문에 널리 사용된다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;2. 서버 구성과 3계층 시스템&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;1) 서버의 기본 구성요소&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;CPU(중앙 처리 장치) : '두뇌', 모든 계산과 명령어 처리하는 담당&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Memory(RAM) : CPU가 작업할 데이터를 임시로 저장하는 '작업공간', 속도가 빠르다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;I/O(Input/Ouput 장치) : 디스크(HDD, SSD) 등 데이터를 읽고 쓰거나 외부와 통신하는 장치&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Bus : '통로', &lt;span style=&quot;text-align: start;&quot;&gt;CPU, 메모리, I/O 장치 간에 데이터를 주고받는다. Bus의 대역폭(데이터 전송 능력)이 전체 시스템 성능에 큰 영향을 미친다.&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;2) 3계층 아키텍처(물&lt;span style=&quot;color: #0593d3;&quot;&gt;데&lt;/span&gt;네전세&lt;span style=&quot;color: #0593d3;&quot;&gt;표응&lt;/span&gt;)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt; 분산 시스템에서 가장 보편적인 수직 분할 모델로, 시스템을 3개의 논리적인 계층으로 나눈 구조이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;① 프레젠테이션 계층&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;역할: 사용자 &lt;span style=&quot;text-align: start;&quot;&gt;와 가장 가까운 계층으로, 웹 브라우저 화면(UI)을 보여주고 사용자의 요청을 받는다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;처리: &lt;span style=&quot;text-align: start;&quot;&gt;HTML, CSS, JavaScript 같은&amp;nbsp;&lt;/span&gt;&lt;b&gt;정적 콘텐츠&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 처리한다. 동적인 요청이 들어오면 애플리케이션 계층으로 전달한다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;Apache, Nginx&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #34322d;&quot;&gt;② 애플리케이션 계층&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;역할: &lt;span style=&quot;text-align: start;&quot;&gt;실제 비즈니스 로직을 수행하고, 데이터를 가공/처리하는 '몸통' 역할을 한다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;처리: &lt;span style=&quot;text-align: start;&quot;&gt;웹 서버로부터 받은 요청에 따라&amp;nbsp;&lt;/span&gt;&lt;b&gt;동적 콘텐츠&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 생성한다. &lt;span style=&quot;text-align: start;&quot;&gt;필요시 데이터 계층에 데이터 처리를 요청하고, 그 결과를 받아 웹 서버로 전달한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;Tomcat, JBoss, Gunicorn&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #34322d;&quot;&gt;③ 데이터 계층&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;역할: &lt;span style=&quot;text-align: start;&quot;&gt;데이터를 효율적으로 저장, 관리, 검색한다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;처리: &lt;span style=&quot;text-align: start;&quot;&gt;애플리케이션 계층의 요청에 따라 데이터를 CRUD(생성, 읽기, 갱신, 삭제)한다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;MySQL, Oracle, PostgreSQL, MongoDB&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt; 3계층 아키텍처로 시스템을 구성했을 때의 장점&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000; letter-spacing: 0px;&quot;&gt;각 계층을 독립적으로 개발하고 관리할 수 있어 유지보수와 확장이 용이하다. 예를 들어, UI 디자인 변경은 프레젠테이션 계층만 수정하면 되고, 트래픽이 증가하면 웹 서버나 AP 서버만 선택적으로 증설할 수 있다. 데이터가 있는 DB 서버를 내부망에 두어 보안을 강화할 수 있다는 장점도 있다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;3. OS 필수 개념&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;1) 프로세스와 스레드&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 139px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt; &lt;span style=&quot;text-align: start;&quot;&gt;구분&amp;nbsp;&lt;/span&gt; &lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt; 프로세스 (Process) &lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;스레드 (Thread) &lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;정의&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;실행 중인 프로그램, 자원 할당의 단위&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;프로세스 내 실행 흐름의 단위&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;자원 공유&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;독립된 메모리 공간, 공유 안 함 (IPC 필요)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Stack을 제외한 메모리 공유 (Code, Data, Heap)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;안정성&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;한 프로세스 장애가 다른 프로세스에 영향 없음&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;한 스레드 장애가 전체 프로세스에 영향 미침&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;통신 속도&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;IPC를 통해 통신하여 느림&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;메모리를 공유하므로 통신 속도가 빠름&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;생성/전환 비용&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;자원 할당이 필요해 무겁고 비용이 큼&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;자원을 공유하므로 가볍고 비용이 적음&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt; 프로세스와 스레드의 차이점을 설명하고, 멀티스레드를 사용하는 이유&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt; 프로세스는 독립된 자원을 할당받는 작업 단위이고, 스레드는 프로세스의 자원을 공유하며 실행되는 흐름의 단위라는 점이 다르다. &lt;span style=&quot;text-align: start;&quot;&gt;멀티 프로세스보다 멀티 스레드를 사용하면 자원을 공유하기 때문에 메모리를 절약할 수 있고, 스레드 간 통신 비용이 적으며, 컨텍스트 스위칭이 빨라 시스템 처리량을 높일 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;2) 커널&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;운영체제의&amp;nbsp;&lt;/span&gt;&lt;b&gt;핵심&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;으로, 하드웨어와 소프트웨어 사이의 중재자 역할을 한다. &lt;span style=&quot;text-align: start;&quot;&gt;항상 메모리에 상주하며 시스템의 모든 것을 제어한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;주요 역할&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;b&gt;프로세스 관리&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;: 프로세스 생성, 종료, 스케줄링(CPU 시간 배분) 등을 담당한다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt; &lt;b&gt;메모리 관리&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;: 각 프로세스에 메모리를 할당하고 회수하며, 가상 메모리를 관리한다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt; &lt;b&gt;파일 시스템 관리&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;: 파일의 생성, 삭제, 읽기, 쓰기 등 디스크의 데이터 접근을 관리한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt; &lt;b&gt;I/O(입출력) 관리&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;: 키보드, 디스크, 네트워크 카드 등 하드웨어 장치와의 통신을 제어한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt; &lt;b&gt;시스템 콜 인터페이스&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;: 응용 프로그램이 커널의 기능을 사용할 수 있도록 통로(System Call)를 제공한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt; &lt;b&gt;보안 및 접근 제어&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;: 사용자 권한을 확인하고 리소스에 대한 접근을 제어하여 시스템을 보호한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt; 커널이 무엇이며, 왜 사용자 프로그램이 직접 하드웨어에 접근하지 않고 커널을 통해야만하는 이유&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt; 커널은 운영체제의 핵심으로, 하드웨어 자원을 관리하고 보호하는 역할을 한다. 커널은 시스템 콜이라는 정해진 통로를 통해서만 자원 접근을 허용하고, 이를 중재하고 관리함으로써 시스템의 안정성과 보안을 보장한다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;4. 웹 통신 흐름(www.naver.com 접속 과정)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;사용자가 웹 브라우저 주소창에 &lt;/span&gt;www.naver.com&lt;span style=&quot;text-align: start;&quot;&gt;을 입력하고 엔터를 치는 사이 나타나는 과정&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;멘토링 때 받은 질문인데, 전공 시간에 배운 내용이지만 답변을 제대로 못 했던..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;1) 도메인 해석(Domain Name System)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #f8f8f7; color: #34322d; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: decimal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;브라우저는&amp;nbsp;www.naver.com이라는 도메인 이름의 실제 IP 주소를 알아야 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt; 먼저 브라우저 캐시, OS 캐시, 라우터 캐시 순으로 IP 주소가 저장되어 있는지 확인한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;캐시에 없다면, 설정된 DNS 서버에&amp;nbsp;&lt;/span&gt;www.naver.com&lt;span style=&quot;text-align: start;&quot;&gt;의 IP 주소를 물어본다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;DNS 서버는&amp;nbsp;&lt;/span&gt;125.000.000.000&lt;span style=&quot;text-align: start;&quot;&gt;과 같은 IP 주소를 알려준다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;2) TCP/IP 연결(3-Way Hand shake)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;주고받는 흐름만 이해하면 쉽다 !&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #f8f8f7; color: #34322d; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: decimal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt; &lt;span style=&quot;text-align: start;&quot;&gt;브라우저(클라이언트)는 알아낸 네이버 서버의 IP 주소로 TCP 연결을 요청한다.&lt;/span&gt; &lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;클라이언트 &amp;rarr; 서버&lt;/b&gt;: &quot;연결하고 싶어.&quot; (SYN)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;서버 &amp;rarr; 클라이언트&lt;/b&gt;: &quot;받을 준비됐어.&quot; (SYN+ACK)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;클라이언트 &amp;rarr; 서버&lt;/b&gt;: &quot;오케이, 이제 데이터 보낼게.&quot; (ACK)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;3) HTTP 요청 및 처리&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;* &lt;b&gt;정적 콘텐츠 (로고 이미지 등)&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;: 웹 서버가 직접 해당 파일을 찾아 즉시 응답&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;* &lt;b&gt;동적 콘텐츠 (로그인 정보, 실시간 뉴스 등)&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;: 웹 서버는 요청을&amp;nbsp;&lt;/span&gt;&lt;b&gt;AP 서버(WAS)&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;로 전달&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #f8f8f7; color: #34322d; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: decimal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt; &lt;b&gt;클라이언트 &amp;rarr; 웹 서버&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;: 연결된 통로를 통해 &quot;네이버 메인 페이지(HTML)를 보여줘&quot;라는 HTTP 요청 메시지를&amp;nbsp;보낸다.&lt;/span&gt; &lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt; &lt;b&gt;웹 서버&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;: 요청을 받고, 이것이&amp;nbsp;&lt;/span&gt;&lt;b&gt;정적 콘텐츠&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;인지&amp;nbsp;&lt;/span&gt;&lt;b&gt;동적 콘텐츠&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;인지 판단한다.&lt;/span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;AP 서버&lt;/b&gt;: 요청을 처리하기 위해 비즈니스 로직을 수행합니다. 만약 데이터가 필요하면&amp;nbsp;&lt;b&gt;DB 서버&lt;/b&gt;에 요청한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;b&gt;DB 서버&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;: AP 서버의 요청에 따라 데이터를 조회하거나 변경한 후, 그 결과를 AP 서버에 반환한다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt; &lt;b&gt;AP 서버&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;: DB 서버로부터 받은 데이터와 비즈니스 로직을 조합하여 최종적인 HTML 파일을 동적으로 생성한 후, 웹 서버로 전달한다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;4) HTTP 응답 및 렌더링&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;b&gt;웹 서버 &amp;rarr; 클라이언트&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;: AP 서버로부터 받은 동적 콘텐츠(HTML)나 자신이 가지고 있던 정적 콘텐츠를 HTTP 응답 메시지에 담아 브라우저로 보낸다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;b&gt;브라우저&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;: 응답으로 받은 HTML 파일을 해석(파싱)하여 화면에 그리고(렌더링), 사용자는 네이버 메인 화면을 보게 된다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;5. 가상화 &amp;amp; 도커 컨테이너&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;b&gt;가상화&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;: 하나의 물리적 서버 위에&amp;nbsp;&lt;/span&gt;&lt;b&gt;하이퍼바이저&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;라는 소프트웨어를 이용해 여러 개의 독립적인 가상 컴퓨터(Virtual Machine)를 만드는 기술로, 각 VM은 자신만의&amp;nbsp;&lt;/span&gt;&lt;b&gt;독립된 OS&lt;/b&gt;를 가진다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;b&gt;도커 컨테이너 :&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&amp;nbsp;OS 수준의 가상화 기술로, 호스트 OS의&amp;nbsp;&lt;/span&gt;&lt;b&gt;커널을 공유&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;하며, 애플리케이션과 그 실행에 필요한 라이브러리 등만 격리하여 실행하는 기술이다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt; VM과 도커의 차이점을 설명하고, 어떤 상황에서 도커를 사용하는 것이 더 유리할까&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt; VM은 하이퍼바이저 위에서 독립된 Guest OS를 실행하는 반면, 도커는 호스트 OS의 커널을 공유한다. 이로 인해 도커는 VM보다 훨씬 가볍고, 빠르며, 하나의 서버에 더 많은 애플리케이션을 배포할 수 있다. 특히 MSA(마이크로서비스 아키텍처) 환경에서 각 서비스를 독립적으로 빠르게 개발, 배포, 확장해야 할 때 도커 컨테이너를 사용하는 것이 매우 유리하다.&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/wQbcI/dJMcag5IJQM/egzYe6Zdi6ClFzkbRsj8yk/IT_%EC%9D%B8%ED%94%84%EB%9D%BC_%EB%A9%B4%EC%A0%91_%EA%B0%80%EC%9D%B4%EB%93%9C.pdf?attach=1&amp;amp;knm=tfile.pdf&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;IT_인프라_면접_가이드.pdf&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;4.01MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category> Infrastructure &amp;amp; Platform/Infrastructure</category>
      <author>멍발</author>
      <guid isPermaLink="true">https://hee-yeon-02.tistory.com/167</guid>
      <comments>https://hee-yeon-02.tistory.com/entry/IT-InfraStructure-%EA%B8%B0%EC%B4%88CS%EA%B8%B0%EC%88%A0%EB%A9%B4%EC%A0%91%EB%8C%80%EB%B9%84PDF#entry167comment</comments>
      <pubDate>Wed, 4 Mar 2026 17:51:51 +0900</pubDate>
    </item>
    <item>
      <title>취준은 너무 어려워: 1월 마지막주 회고</title>
      <link>https://hee-yeon-02.tistory.com/entry/%EC%B7%A8%EC%A4%80%EC%9D%80-%EB%84%88%EB%AC%B4-%EC%96%B4%EB%A0%A4%EC%9B%8C-1%EC%9B%94-%EB%A7%88%EC%A7%80%EB%A7%89%EC%A3%BC-%ED%9A%8C%EA%B3%A0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이제&amp;nbsp;시작한지&amp;nbsp;약&amp;nbsp;2주밖에&amp;nbsp;안&amp;nbsp;됐지만,&amp;nbsp;앞으로&amp;nbsp;위해&amp;nbsp;KPT&amp;nbsp;회고를&amp;nbsp;진행하고자&amp;nbsp;한다. &lt;br /&gt;글을 보다가 &lt;span style=&quot;color: #0593d3;&quot;&gt;파란색 밑줄로&lt;/span&gt; 표시된 부분은 링크가 포함된 부분이니, 혹시 궁금하다면 들어가서 읽어보는 걸 추천한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;KEEP&lt;br /&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1060&quot; data-origin-height=&quot;468&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ciXm2T/dJMcafetPHv/3u92aKpYCtPqyvYSHuCUQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciXm2T/dJMcafetPHv/3u92aKpYCtPqyvYSHuCUQ0/img.png&quot; data-alt=&quot;2025.01&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciXm2T/dJMcafetPHv/3u92aKpYCtPqyvYSHuCUQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciXm2T%2FdJMcafetPHv%2F3u92aKpYCtPqyvYSHuCUQ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1060&quot; height=&quot;468&quot; data-origin-width=&quot;1060&quot; data-origin-height=&quot;468&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;2025.01&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;a title=&quot;SK네트웍스 FAMILY AI CAMP 부트캠프&quot; href=&quot;https://hee-yeon-02.tistory.com/entry/%E3%85%81&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;SK네트웍스 FAMILY AI CAMP 부트캠프&lt;/a&gt;가 끝나고 내가 생각했던 2026년은 많이 다르긴 하다. 사회경험을 많이 쌓을 줄 알았지만 금턴이란 말이 나오듯이 &lt;br /&gt;인턴도&amp;nbsp;요즘은&amp;nbsp;들어가기&amp;nbsp;힘든&amp;nbsp;취업&amp;nbsp;상황이&amp;nbsp;와버렸다.&amp;nbsp;특히나&amp;nbsp;아직도&amp;nbsp;수많은&amp;nbsp;개발자&amp;nbsp;지망생들이&amp;nbsp;몰려오고&amp;nbsp;있는&amp;nbsp;것을&amp;nbsp;알&amp;nbsp;수&amp;nbsp;있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서류를 수십장 넘게 써야 1-2곳 서류 합격이 오는 상황이라 이미 직감하고 체험형 인턴도 좋으니 &lt;br /&gt;서류를&amp;nbsp;많이&amp;nbsp;쓰고&amp;nbsp;있는&amp;nbsp;점은&amp;nbsp;잘하고&amp;nbsp;있다고&amp;nbsp;생각이&amp;nbsp;든다. &lt;br /&gt;특히나,&amp;nbsp;면접&amp;nbsp;경험이&amp;nbsp;부족한&amp;nbsp;나에게&amp;nbsp;기회를&amp;nbsp;주는&amp;nbsp;곳을&amp;nbsp;잡아서&amp;nbsp;가야하기에&amp;nbsp;1차&amp;nbsp;서류&amp;nbsp;합격에&amp;nbsp;간절했던&amp;nbsp;것&amp;nbsp;같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;PROBLEM&lt;/b&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;380&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zCVzu/dJMcagqSttq/rWtB0EhCVwfNMFWBGXqilk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zCVzu/dJMcagqSttq/rWtB0EhCVwfNMFWBGXqilk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zCVzu/dJMcagqSttq/rWtB0EhCVwfNMFWBGXqilk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzCVzu%2FdJMcagqSttq%2FrWtB0EhCVwfNMFWBGXqilk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;276&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;380&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;그러나&amp;nbsp;현실은&amp;nbsp;쉽게&amp;nbsp;다가오지&amp;nbsp;않았다. &lt;br /&gt;면접&amp;nbsp;기회조차&amp;nbsp;받을&amp;nbsp;수&amp;nbsp;없도록&amp;nbsp;1차&amp;nbsp;합격률은&amp;nbsp;낮고,&amp;nbsp;지원자는&amp;nbsp;최소&amp;nbsp;천&amp;nbsp;명&amp;nbsp;이상이다. &lt;br /&gt;자소서를&amp;nbsp;보면서&amp;nbsp;느낀거는&amp;nbsp;글을&amp;nbsp;잘&amp;nbsp;쓰진&amp;nbsp;않는&amp;nbsp;듯 &lt;br /&gt;그리고&amp;nbsp;지금은&amp;nbsp;초반이라&amp;nbsp;마스터&amp;nbsp;자소서&amp;nbsp;작성하기&amp;nbsp;위해서&amp;nbsp;포트폴리오&amp;nbsp;정리하느라&amp;nbsp;개발에는&amp;nbsp;시간을&amp;nbsp;거의&amp;nbsp;못&amp;nbsp;썼다. &lt;br /&gt;그나마&amp;nbsp;코테&amp;nbsp;준비하면서&amp;nbsp;알고리즘&amp;nbsp;공부한&amp;nbsp;정도.. &lt;br /&gt;부족한&amp;nbsp;상황에서&amp;nbsp;자소서&amp;nbsp;컨설팅이&amp;nbsp;큰&amp;nbsp;힘이&amp;nbsp;됐다.&amp;nbsp;다른&amp;nbsp;사람의&amp;nbsp;자소서를&amp;nbsp;많이&amp;nbsp;읽고&amp;nbsp;봐도&amp;nbsp;형식은&amp;nbsp;갖추되,&amp;nbsp;결국&amp;nbsp;나만의&amp;nbsp;차별점이&amp;nbsp;있는&amp;nbsp;내용이&amp;nbsp;나와야&amp;nbsp;하니&amp;nbsp;정말&amp;nbsp;머리를&amp;nbsp;많이&amp;nbsp;썼다. &lt;br /&gt;&lt;br /&gt;또한&amp;nbsp;도메인을&amp;nbsp;다양하게&amp;nbsp;준비하다&amp;nbsp;보니,&amp;nbsp;도메인&amp;nbsp;지식&amp;nbsp;쌓는&amp;nbsp;것도&amp;nbsp;부족했던&amp;nbsp;것&amp;nbsp;같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;TRY&lt;/b&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1428&quot; data-origin-height=&quot;551&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/coeGGw/dJMcagj6GUs/pxHF0Q8xbglX6jP1l4SK21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/coeGGw/dJMcagj6GUs/pxHF0Q8xbglX6jP1l4SK21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/coeGGw/dJMcagj6GUs/pxHF0Q8xbglX6jP1l4SK21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcoeGGw%2FdJMcagj6GUs%2FpxHF0Q8xbglX6jP1l4SK21%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1428&quot; height=&quot;551&quot; data-origin-width=&quot;1428&quot; data-origin-height=&quot;551&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;노션에&amp;nbsp;목표&amp;nbsp;겸&amp;nbsp;할&amp;nbsp;것을&amp;nbsp;적다보니,&amp;nbsp;이제&amp;nbsp;거의&amp;nbsp;대학교&amp;nbsp;졸업한&amp;nbsp;샘이고,&amp;nbsp;앞으로는&amp;nbsp;코딩테스트,&amp;nbsp;자기소개서,&amp;nbsp;프로젝트&amp;nbsp;개선에&amp;nbsp;집중해서&amp;nbsp;준비할&amp;nbsp;것&amp;nbsp;같다. &lt;br /&gt;적어도&amp;nbsp;하루에&amp;nbsp;2시간은&amp;nbsp;개발하면서&amp;nbsp;감&amp;nbsp;버리지&amp;nbsp;않도록&amp;nbsp;하고,&amp;nbsp;합격자&amp;nbsp;분들과&amp;nbsp;스펙을&amp;nbsp;비교해봤을&amp;nbsp;때&amp;nbsp;어학이&amp;nbsp;필요하다고&amp;nbsp;생각하여&amp;nbsp;오픽까지&amp;nbsp;추가로&amp;nbsp;준비해야겠다. &lt;br /&gt;그리고 &lt;a title=&quot;웨비나&quot; href=&quot;https://hee-yeon-02.tistory.com/entry/%EB%A9%94%EA%B0%80%EC%A1%B4%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-AWS-reConnect-2026-Webinar-%ED%9B%84%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;웨비나&lt;/a&gt;를 들으면서 느낀 건데 계속해서 변화하는 기술에서 관심을 놓치 않는게 정말 중요한 것 같다. 뿐만 아니라 넓게 보려고 하는 것도 필요하다고 생각이 든다.&lt;/p&gt;</description>
      <category>✅TIL</category>
      <author>멍발</author>
      <guid isPermaLink="true">https://hee-yeon-02.tistory.com/166</guid>
      <comments>https://hee-yeon-02.tistory.com/entry/%EC%B7%A8%EC%A4%80%EC%9D%80-%EB%84%88%EB%AC%B4-%EC%96%B4%EB%A0%A4%EC%9B%8C-1%EC%9B%94-%EB%A7%88%EC%A7%80%EB%A7%89%EC%A3%BC-%ED%9A%8C%EA%B3%A0#entry166comment</comments>
      <pubDate>Tue, 10 Feb 2026 15:48:48 +0900</pubDate>
    </item>
    <item>
      <title>Data Lakehouse부터 Multi-Agent 구축까지, 성공적인 AI 도입을 위한 데이터 엔지니어링 청사진 그리기 오픈 세미나</title>
      <link>https://hee-yeon-02.tistory.com/entry/Data-Lakehouse%EB%B6%80%ED%84%B0-Multi-Agent-%EA%B5%AC%EC%B6%95%EA%B9%8C%EC%A7%80-%EC%84%B1%EA%B3%B5%EC%A0%81%EC%9D%B8-AI-%EB%8F%84%EC%9E%85%EC%9D%84-%EC%9C%84%ED%95%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81-%EC%B2%AD%EC%82%AC%EC%A7%84-%EA%B7%B8%EB%A6%AC%EA%B8%B0-%EC%98%A4%ED%94%88-%EC%84%B8%EB%AF%B8%EB%82%98</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;965&quot; data-origin-height=&quot;543&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eCEkVZ/dJMcacIIWoB/TPbXj49AdpydWRfatXcHDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eCEkVZ/dJMcacIIWoB/TPbXj49AdpydWRfatXcHDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eCEkVZ/dJMcacIIWoB/TPbXj49AdpydWRfatXcHDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeCEkVZ%2FdJMcacIIWoB%2FTPbXj49AdpydWRfatXcHDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;965&quot; height=&quot;543&quot; data-origin-width=&quot;965&quot; data-origin-height=&quot;543&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt; AI 에이전트 시대, 살아남는 '풀스택 데이터 엔지니어'의 길 &lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근 업무 자동화와 AI 에이전트에 대한 세미나를 참여하게 되었다. 이번 세미나에서는 에이전트가 내 업무를 대신해주면 내 자리는 어떻게 될까 하는 두려움도 잠시, 기술의 한계를 명확히 알고 이를 제어하는 능력이 곧 미래의 경쟁력임을 깨달은 시간이었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;업무 자동화를 위한 에이전트를 만들수록 내 자리가 위태로워지는 것 같은 아이러니한 상황이 점점 오고 있다. 또, 모데링 커질수록 발생하는 환각을 어떻게 제어하고, 엔지니어로서 어떤 경쟁력을 갖춰야 하는지 세미나를 통해 듣게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;왜 Multi-Agent인가 ?&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단일 모델에서는, 거대 모델 하나에 모든 역할을 맡기면 환각 현상이 심해지기 때문에, 역할별로 에이전트를 분리해서 만들어야 한다. Supervisor 체계를 통한 중앙제어 즉, 각 에이전트에게 명확한 페르소나와 임무를 부여해서 정확도를 높이는 전략을 사용하는 것을 알고 있자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;데이터 파이프라인의 실무적인 접근&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터가 단순히 DB에 쌓이는 것이 아니라, 파이프라인을 타고 들어와서 벡터화되어 저장되는 과정의 중요성을 살펴보게 되었다. 특히 &lt;b data-index-in-node=&quot;3&quot; data-path-to-node=&quot;18&quot;&gt;Snowflake&lt;/b&gt;와 같은 SaaS 솔루션을 기반으로 시멘틱 뷰를 구성하여, 데이터의 맥락을 에이전트에게 전달하는 방식은 실무에서 즉각적으로 도입해 볼 만한 강력한 방법론이었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;취업적인 측면에서도 예전에는 기술적인 구현도 중요하지만, 결국 어떤 문제를 해결할 것인가가 핵심이기에 도메인의 깊이를 보는 것 같다. 엔지니어의 자리가 없어지는 것이 아니라, 도메인 지식을 바탕으로 더 고도화된 시스템을 설계하는 설계자로 진화해야 한다. 에이전트가 내 자리를 대신할까 봐 걱정하기보다, &lt;b data-index-in-node=&quot;27&quot; data-path-to-node=&quot;25&quot;&gt;에이전트를 자유자재로 부릴 수 있는 설계자&lt;/b&gt;가 되는 것. 그것이 지금 제가 준비해야 할 '풀스택 데이터 엔지니어'의 본질이라는 확신이 들었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;추가로 보면 좋을 자료&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/ko/blogs/tech/data-pipeline-for-datalake-and-ml-with-snowflake/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://aws.amazon.com/ko/blogs/tech/data-pipeline-for-datalake-and-ml-with-snowflake/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1769689607059&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Amazon S3 데이터 레이크와 기계학습을 위한 Snowflake 통합 파이프라인 플랫폼 구축하기 | Amazon Web Ser&quot; data-og-description=&quot;인공지능과 기계학습 기술의 상용화로, 기업들은 대량의 데이터를 효과적으로 수집, 저장, 관리할 필요성을 점차 인식하고 있습니다. 데이터 레이크(Data Lake)는 이러한 필요성에 부응하여, 다양&quot; data-og-host=&quot;aws.amazon.com&quot; data-og-source-url=&quot;https://aws.amazon.com/ko/blogs/tech/data-pipeline-for-datalake-and-ml-with-snowflake/&quot; data-og-url=&quot;https://aws.amazon.com/ko/blogs/tech/data-pipeline-for-datalake-and-ml-with-snowflake/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/xUmnv/dJMb85WN2an/QRv8uEVhd3KxzXRJagJXt1/img.png?width=720&amp;amp;height=405&amp;amp;face=0_0_720_405,https://scrap.kakaocdn.net/dn/kXsOf/dJMb87NQ7gV/QUm5gom0MSDLZdGuqbsS30/img.png?width=720&amp;amp;height=405&amp;amp;face=0_0_720_405,https://scrap.kakaocdn.net/dn/lnpcD/dJMb895YocY/KAKfGJkrQT1as1woBg9T2K/img.png?width=2186&amp;amp;height=4220&amp;amp;face=0_0_2186_4220&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/ko/blogs/tech/data-pipeline-for-datalake-and-ml-with-snowflake/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://aws.amazon.com/ko/blogs/tech/data-pipeline-for-datalake-and-ml-with-snowflake/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/xUmnv/dJMb85WN2an/QRv8uEVhd3KxzXRJagJXt1/img.png?width=720&amp;amp;height=405&amp;amp;face=0_0_720_405,https://scrap.kakaocdn.net/dn/kXsOf/dJMb87NQ7gV/QUm5gom0MSDLZdGuqbsS30/img.png?width=720&amp;amp;height=405&amp;amp;face=0_0_720_405,https://scrap.kakaocdn.net/dn/lnpcD/dJMb895YocY/KAKfGJkrQT1as1woBg9T2K/img.png?width=2186&amp;amp;height=4220&amp;amp;face=0_0_2186_4220');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Amazon S3 데이터 레이크와 기계학습을 위한 Snowflake 통합 파이프라인 플랫폼 구축하기 | Amazon Web Ser&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;인공지능과 기계학습 기술의 상용화로, 기업들은 대량의 데이터를 효과적으로 수집, 저장, 관리할 필요성을 점차 인식하고 있습니다. 데이터 레이크(Data Lake)는 이러한 필요성에 부응하여, 다양&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.samsungsds.com/kr/insights/the-evolution-and-future-of-licensing-models.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.samsungsds.com/kr/insights/the-evolution-and-future-of-licensing-models.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1769689680570&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;AI 에이전트 시대의 비즈니스: 라이선스 모델의 진화와 미래 | 인사이트리포트 | 삼성SDS&quot; data-og-description=&quot;AI 에이전트가 라이선스 패러다임에 미치는 역설적인 영향과, 이를 극복하기 위한 새로운 비즈니스 모델의 필요성을 심층적으로 분석합니다.&quot; data-og-host=&quot;www.samsungsds.com&quot; data-og-source-url=&quot;https://www.samsungsds.com/kr/insights/the-evolution-and-future-of-licensing-models.html&quot; data-og-url=&quot;https://www.samsungsds.com/kr/insights/the-evolution-and-future-of-licensing-models.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cifrcM/dJMb8U8OqvY/6s6aUgo09T2Gw1KWthOhkK/img.png?width=310&amp;amp;height=174&amp;amp;face=0_0_310_174,https://scrap.kakaocdn.net/dn/BqwuB/dJMb9hCV6WL/FSlVPUCoIiPr3bpcFzNiGk/img.png?width=624&amp;amp;height=351&amp;amp;face=0_0_624_351,https://scrap.kakaocdn.net/dn/6TFsE/dJMb9b3MSoC/HzlCA58kPl4Fdzzx8gkZq0/img.png?width=537&amp;amp;height=321&amp;amp;face=0_0_537_321&quot;&gt;&lt;a href=&quot;https://www.samsungsds.com/kr/insights/the-evolution-and-future-of-licensing-models.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.samsungsds.com/kr/insights/the-evolution-and-future-of-licensing-models.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cifrcM/dJMb8U8OqvY/6s6aUgo09T2Gw1KWthOhkK/img.png?width=310&amp;amp;height=174&amp;amp;face=0_0_310_174,https://scrap.kakaocdn.net/dn/BqwuB/dJMb9hCV6WL/FSlVPUCoIiPr3bpcFzNiGk/img.png?width=624&amp;amp;height=351&amp;amp;face=0_0_624_351,https://scrap.kakaocdn.net/dn/6TFsE/dJMb9b3MSoC/HzlCA58kPl4Fdzzx8gkZq0/img.png?width=537&amp;amp;height=321&amp;amp;face=0_0_537_321');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;AI 에이전트 시대의 비즈니스: 라이선스 모델의 진화와 미래 | 인사이트리포트 | 삼성SDS&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;AI 에이전트가 라이선스 패러다임에 미치는 역설적인 영향과, 이를 극복하기 위한 새로운 비즈니스 모델의 필요성을 심층적으로 분석합니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.samsungsds.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category> Script &amp;amp; 웨비나</category>
      <category>ai에이전트</category>
      <category>Rag</category>
      <category>데이터엔지니어</category>
      <category>멀티에이전트</category>
      <category>세미나</category>
      <category>업무자동화</category>
      <category>회고록</category>
      <author>멍발</author>
      <guid isPermaLink="true">https://hee-yeon-02.tistory.com/165</guid>
      <comments>https://hee-yeon-02.tistory.com/entry/Data-Lakehouse%EB%B6%80%ED%84%B0-Multi-Agent-%EA%B5%AC%EC%B6%95%EA%B9%8C%EC%A7%80-%EC%84%B1%EA%B3%B5%EC%A0%81%EC%9D%B8-AI-%EB%8F%84%EC%9E%85%EC%9D%84-%EC%9C%84%ED%95%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81-%EC%B2%AD%EC%82%AC%EC%A7%84-%EA%B7%B8%EB%A6%AC%EA%B8%B0-%EC%98%A4%ED%94%88-%EC%84%B8%EB%AF%B8%EB%82%98#entry165comment</comments>
      <pubDate>Thu, 29 Jan 2026 21:30:03 +0900</pubDate>
    </item>
    <item>
      <title>메가존클라우드 AWS re:Connect 2026 Webinar 후기</title>
      <link>https://hee-yeon-02.tistory.com/entry/%EB%A9%94%EA%B0%80%EC%A1%B4%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-AWS-reConnect-2026-Webinar-%ED%9B%84%EA%B8%B0</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-01-22 171926.png&quot; data-origin-width=&quot;711&quot; data-origin-height=&quot;285&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZwQCt/dJMcabJLTp7/FJzfpKs9ZpFiIKUtHh7ZvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZwQCt/dJMcabJLTp7/FJzfpKs9ZpFiIKUtHh7ZvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZwQCt/dJMcabJLTp7/FJzfpKs9ZpFiIKUtHh7ZvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZwQCt%2FdJMcabJLTp7%2FFJzfpKs9ZpFiIKUtHh7ZvK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;711&quot; height=&quot;285&quot; data-filename=&quot;스크린샷 2026-01-22 171926.png&quot; data-origin-width=&quot;711&quot; data-origin-height=&quot;285&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;참여 배경: AWS 외면할 수 없던 이유&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부트캠프에서 Final Project를 진행하며 그토록 궁금해왔던 AWS DATA PIPELINE을 직접 설계하고 구현하게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AWS를 처음 하면서 든 기대감도 있지만, '이거 잘못 누르면 비용 폭탄 맞는거 아니야?'라는 걱정도 있었지만..!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Automation Infrastructure의 개념과 사람이 반복적으로 운영하던 코드를 넘기는 구조에 흥미를 느껴서 이번 웨비나에 참여하게 되었다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;이번 웨비나는...&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단순히 개발자용 웨비나가 아니라 앞으로 클라우드 환경에서 일하게 될 사람을 위한 웨비나에 가까워다. 기술 &amp;rarr; 운영 &amp;rarr; 비즈니스 의사결정으로 이어지는 흐름으로 AI가 어디까지 자동화가 가능하고, 사람은 어느 지점에서 책임을 지고, 중소기업에서 투가지용과 향휴 유지비용에서 어느정도 효과가 있을지 알 수 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;Q&amp;amp;A에서 가장 많이 배운 포인트 정리&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. Bedrock vs RAG vs Nova Forge - 'AI 커스터마이징 레벨 차이'&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RAG(Retrieval Augmented Generation)은 모델 그대로 질문 시 외부 문서를 붙여서 참고하는 방식의 말그대로 문서를 기반으로 증강시켜 찾는 것이며,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Fine-tuning은 모델의 가중치를 수정하여 특정 스타일과 업무에는 강해지지만 재앙적 망각(새로운 데이터/작업(Task)를 학습하면서, 이전에 배운 기존 지식을 잃어버리는 현상)의 리스크가 있지만,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Nova Forge는 모델 학습 중간 단계에서 기업 데이터를 직접 통합하여 기존 추론 능력은 유지시키면서 비즈니스 맥락을 강화시킬 수 있다고 하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;이 Q&amp;amp;A를 보면서 단순히 RAG를 써봤어요!가 끝이 아니라, 왜 RAG를 썼고, 왜 Fine-tuning이 아닌지를 설명할 수 있어야 한다는 사실을 다시 생각하게 되었다.&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. AI Agent - '자동화의 한계는 기술이 아닌 책임'&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI Agent가 안정적으로 할 수 있는 일과 반드시 사람이 개입해야 하는 일의 기준은?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI가 잘하는 영역은 통합 데이터 기반 최적화이며 스케줄링, 초안 생성, 반복 작업이다. 여기서 사람은 안전, 신뢰, 최종 책임을 져야 하는데 &amp;nbsp;AI가 다 해주고 신뢰한다는 마인드보단, 제안자 역할로 받아들여야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;강사님께서 말씀하셨듯이 LLM은 숫자, 연산 능력이 뛰어나지만, 이 기술을 사용할 것인가는 사람에게 맡겨져 있다.&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. 보안 자동화 - '자동으로 바뀌는 건 코드가 아닌 PR'&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IAM, 네트워크 보안 설정을 AI가 직접 바꾸는 것이 아닌, 문서화된 PR로 생성해서 Git History로 Audit Trail를 확보해서 최종 병합은 사람 승인을 본다면 통제 가능한 자동화가 되면서 Rollback도 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;PR은 사람과 사람간 체크인 줄 알았는데 AI도 개입한다면 2번에서 말한 것도 가능하면서 보안에도 신경쓸 수 있는 기회가 될 것 같다.&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그동안 AWS 써봤어요, ETL 파이프라인을 만들어봤어요에서 끝나는 것이 아니라, 왜 그 선택을 하게 되었고 운영과 책임 구조를 설명할 수 있어야 한다는 것을 알게 되었다. 그리고 KIRO에 대한 내용도 나왔었는데, 6개월 간 KIRO를 사용해보면서 Task 단위로 분리하는데 생산성은 이미 체감했지만, 하나의 Task에서 발생한 변경 사항이 다음 Task에 설계 의도까지 포함해서 정확히 반영되는지에 대한 의구심은 들었따. KIRO도 단순 작업 나열이 아니라 하나의 Pipeline으로 Task 간 명확한 input/output을 정의하고 변경 시 영향받는 Task 범위를 명시하면 변경이 안전하게 전달되는 구조로 사용될 수 있지 않을까하는 생각도 들었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category> Script &amp;amp; 웨비나</category>
      <author>멍발</author>
      <guid isPermaLink="true">https://hee-yeon-02.tistory.com/164</guid>
      <comments>https://hee-yeon-02.tistory.com/entry/%EB%A9%94%EA%B0%80%EC%A1%B4%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-AWS-reConnect-2026-Webinar-%ED%9B%84%EA%B8%B0#entry164comment</comments>
      <pubDate>Thu, 22 Jan 2026 17:20:05 +0900</pubDate>
    </item>
    <item>
      <title>[플레이데이터 SK네트웍스 Family AI 캠프 18기] 6개월 이수 완료</title>
      <link>https://hee-yeon-02.tistory.com/entry/%E3%85%81</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageslideblock alignCenter&quot; data-image=&quot;[{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/bhuhcr/dJMcagxtYET/uRusDWx4YngJWYJUnlK5F1/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/caEgii/dJMcabbSiAr/sUKmiu4Xsr42QIdASTk6Kk/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/kxq0S/dJMcaaRzYqy/el10sUSqlkZwSCBGT2IiyK/img.png&amp;quot;}]&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span class=&quot;image-wrap selected&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhuhcr/dJMcagxtYET/uRusDWx4YngJWYJUnlK5F1/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/bhuhcr/dJMcagxtYET/uRusDWx4YngJWYJUnlK5F1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhuhcr/dJMcagxtYET/uRusDWx4YngJWYJUnlK5F1/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbhuhcr%2FdJMcagxtYET%2FuRusDWx4YngJWYJUnlK5F1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;1170&quot; data-origin-height=&quot;1446&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/caEgii/dJMcabbSiAr/sUKmiu4Xsr42QIdASTk6Kk/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/caEgii/dJMcabbSiAr/sUKmiu4Xsr42QIdASTk6Kk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/caEgii/dJMcabbSiAr/sUKmiu4Xsr42QIdASTk6Kk/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcaEgii%2FdJMcabbSiAr%2FsUKmiu4Xsr42QIdASTk6Kk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;1170&quot; data-origin-height=&quot;1446&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kxq0S/dJMcaaRzYqy/el10sUSqlkZwSCBGT2IiyK/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/kxq0S/dJMcaaRzYqy/el10sUSqlkZwSCBGT2IiyK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kxq0S/dJMcaaRzYqy/el10sUSqlkZwSCBGT2IiyK/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fkxq0S%2FdJMcaaRzYqy%2Fel10sUSqlkZwSCBGT2IiyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;1170&quot; data-origin-height=&quot;1446&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;button class=&quot;btn btn-prev&quot;&gt;&lt;span class=&quot;ico-prev&quot;&gt;이전&lt;/span&gt;&lt;/button&gt;&lt;button class=&quot;btn btn-next&quot;&gt;&lt;span class=&quot;ico-next&quot;&gt;다음&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
  &lt;div class=&quot;mark&quot;&gt;&lt;span data-index=&quot;0&quot;&gt;0&lt;/span&gt;&lt;span data-index=&quot;1&quot;&gt;1&lt;/span&gt;&lt;span data-index=&quot;2&quot;&gt;2&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 분석가(Data Analysis)를 꿈꾸면서 늘 들려왔던 소식은 '통계학과 위주로 뽑는다' 였다. 직무 역량이 부족해서 포기하려던 참에 위와 같은 모집 공고들을 보면서 데이터 분석에 AI 기술이 들어가면 EDA와 Modeling를 동시에 접해서 부족했던 점을 보완할 수 있지 않을까 싶은 생각이 들면서, 위와 같은 직무도 재밌겠다는 생각이 들어, 단순한 데이터 분석 교육이 아닌, AI, 데이터 엔지니어링, 서비스 개발을 모두 경험할 수 있는 과정을 통해 한 발짝 나아가야겠다고 다짐을 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20260116_175648281.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bc5yzb/dJMcagRNb5P/K2vY96lOaDSCIIw02TwKG1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bc5yzb/dJMcagRNb5P/K2vY96lOaDSCIIw02TwKG1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bc5yzb/dJMcagRNb5P/K2vY96lOaDSCIIw02TwKG1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbc5yzb%2FdJMcagRNb5P%2FK2vY96lOaDSCIIw02TwKG1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;533&quot; data-filename=&quot;KakaoTalk_20260116_175648281.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 선택한 곳이 SK네트웍스 Family AI Camp x 플레이데이터 엔코아(6개월) 부트캠프였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때부터 내 목표는 단순히 그래프를 그리고 인사이트를 얻는 분석가가 아니라, AI 모델을 설계하고, 데이터 파이프라인 위에 올릴 수 있는 분석가가 되는 것 !!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageslideblock alignCenter&quot; data-image=&quot;[{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/S0Yut/dJMcaia0rAJ/8XGvYMO0kkFP5YyADyJCdk/img.jpg&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/cqUEpH/dJMcaf6pKSo/0kdAVD2NQo3BmYRrFg49U1/img.jpg&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/DZHHW/dJMcagYxnsi/0AHuyVWkwa3e5L9DAaILhk/img.jpg&amp;quot;}]&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span class=&quot;image-wrap selected&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/S0Yut/dJMcaia0rAJ/8XGvYMO0kkFP5YyADyJCdk/img.jpg&quot; data-url=&quot;https://blog.kakaocdn.net/dn/S0Yut/dJMcaia0rAJ/8XGvYMO0kkFP5YyADyJCdk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/S0Yut/dJMcaia0rAJ/8XGvYMO0kkFP5YyADyJCdk/img.jpg&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FS0Yut%2FdJMcaia0rAJ%2F8XGvYMO0kkFP5YyADyJCdk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqUEpH/dJMcaf6pKSo/0kdAVD2NQo3BmYRrFg49U1/img.jpg&quot; data-url=&quot;https://blog.kakaocdn.net/dn/cqUEpH/dJMcaf6pKSo/0kdAVD2NQo3BmYRrFg49U1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqUEpH/dJMcaf6pKSo/0kdAVD2NQo3BmYRrFg49U1/img.jpg&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqUEpH%2FdJMcaf6pKSo%2F0kdAVD2NQo3BmYRrFg49U1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DZHHW/dJMcagYxnsi/0AHuyVWkwa3e5L9DAaILhk/img.jpg&quot; data-url=&quot;https://blog.kakaocdn.net/dn/DZHHW/dJMcagYxnsi/0AHuyVWkwa3e5L9DAaILhk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DZHHW/dJMcagYxnsi/0AHuyVWkwa3e5L9DAaILhk/img.jpg&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDZHHW%2FdJMcagYxnsi%2F0AHuyVWkwa3e5L9DAaILhk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;button class=&quot;btn btn-prev&quot;&gt;&lt;span class=&quot;ico-prev&quot;&gt;이전&lt;/span&gt;&lt;/button&gt;&lt;button class=&quot;btn btn-next&quot;&gt;&lt;span class=&quot;ico-next&quot;&gt;다음&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
  &lt;div class=&quot;mark&quot;&gt;&lt;span data-index=&quot;0&quot;&gt;0&lt;/span&gt;&lt;span data-index=&quot;1&quot;&gt;1&lt;/span&gt;&lt;span data-index=&quot;2&quot;&gt;2&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오프라인으로 진행되다보니 무엇보다 늘어지지 않고 규칙적으로 출퇴근해서 부지런해졌다 !! &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혼자 고민하면서 지낼 4학년 2학기를 같이 교육하는 사람들과 지내다보니 훨씬 더 재밌고 지하 1층에 구내식당도 있어서 잘 챙겨먹고, 정부 사업이다보니 6개월의 여정은 정해진 커리큘럼을 따르면서 다니게 되었다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Phase 1. Setting, Python &amp;amp; SQL&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 개발 환경 세팅&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Python 자료구조, 함수, 클래스, 예외처리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- MySQL, DDL/DCL&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Crawling&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대학교에서는 조교님께서 미리 다 설치를 해주셨고, 기존에 알고있던 것도 아닌 새로운 개발환경을 세팅할 때 노트북에 따라 랜덤하게 설치가 안 될 수도 있다는 후기를 들어서 정신을 바짝 차리고 했지만 결국 나도 Docker 세팅에서 식은땀을 흘렸다. 그때는 세팅 하나 잘못하면 나중에 사용할 때 흠이 될까봐 걱정돼서 따로 티스토리에 세팅 방법을 작성해놓고, 노션에도 정리해놓았다. 구글링해서 찾아보는 것도 추천 !&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SQL 설계와 쿼리문을 작성할 줄 아는 것도 모델링만큼 중요하다..!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Phase 2. 데이터 분석&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Numpy, Pandas&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- EDA&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Maplotlib, Seaborn&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결측치와 이상치를 어떻게 처리하는지 전략의 중요성과 시각화해서 인사이트를 뽑아낼 줄 아는 것도 설득시키는 주요 도구라는 것을 깨달았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Phase 3. ML&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 지도학습&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Scaling, Feature Engineering&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 모델 평가, 앙상블&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- HPO&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;타이타닉 데이터를 통해 자체 경진대회를 진행했을 때 ML을 할 때는 도메인, 데이터 info, Feature Engineering, 데이터 설계가 중요하다는 것을 알았다. 최종 프로젝트에서도 ML을 담당했었는데 주식 데이터처럼 실거래가 데이터를 이용해서 분류하는 모델링을 진행했었다. 분류모델을 진행했을 때 F1-Macro와 혼동행렬로 Score를 판별했는데 혼동행렬의 오차율을 줄일 수 있었던 방법은 무엇이 있었는지, 실제 거래액을 통해 AI가 판단까지 해줄 수 있다면 더 데이터를 더 활용할 수 있지 않았을까 하는 아쉬움이 조금 남았다. (물론, 파이널 피드백과 팀원의 의견을 재수용해서 다시 도전해볼 생각 !)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Phase 4. DL&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- PyTorch Workflow&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- CNN, RNN, LSTM&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- NLP, 형태소 분석&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- S2S, Transformer&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;딥러닝은 수학과 설계와 인내심의 끝이라고 생각한다. 하지만, GPU 환경이 잘 세팅된다면 생산성 있게 나올 모델이다. GPU 생산량과 함께 나아간다면 충분히 활용 가능성이 높은 기법이라고 생각하여 어렵지만 배워둬야 할 기술이라고 생각한다. 토이프로젝트에서 CTR-GCN 기반으로 딥러닝 모델을 다루게 되었는데 이미 구현된 코드 베이스 기반으로 실험을 진행했지만, 모델 구조 자체를 완전히 이해하기 어려웠고, 어떤 레이어가 학습되는지조차 명확하게 파악하지 못한 상태였다. Full Fine-tuning을 했는지 FC layer만 건드렸는지 정확하게 파악도 못 했었다. 딥러닝 결과는 잘 나왔지만, 결과보단 과정의 설계와 이해가 훨씬 중요하다는 것을 뒤늦게 깨달아서 논문 기반으로 아키텍처 다이어그램을 직접 그려보고, 각 블록의 역할을 수식과 코드로 동시에 이해해야 겠다고 생각했다. GPU 인프라와 함께 성장되는 기술인만큼 지금 배우지 않으면 뒤쳐질 수밖에 없는 영역이니 어렵지만 반드시 설계해보고 통제해봐야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Phase 5. LLM&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- PEFT, LoRA&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Runpod&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- LLM Fine-tuning&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- LLM Evaluation&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Pahse 6. LangChain &amp;amp; RAG&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageslideblock alignCenter&quot; data-image=&quot;[{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/1Sf7m/dJMcacV9iBm/Y6kSoXA1icqEkp2bmHZnMk/img.jpg&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/GbXKg/dJMcah4en5u/URnDfViqezvX4UthnGkJA1/img.jpg&amp;quot;}]&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span class=&quot;image-wrap selected&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1Sf7m/dJMcacV9iBm/Y6kSoXA1icqEkp2bmHZnMk/img.jpg&quot; data-url=&quot;https://blog.kakaocdn.net/dn/1Sf7m/dJMcacV9iBm/Y6kSoXA1icqEkp2bmHZnMk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1Sf7m/dJMcacV9iBm/Y6kSoXA1icqEkp2bmHZnMk/img.jpg&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1Sf7m%2FdJMcacV9iBm%2FY6kSoXA1icqEkp2bmHZnMk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GbXKg/dJMcah4en5u/URnDfViqezvX4UthnGkJA1/img.jpg&quot; data-url=&quot;https://blog.kakaocdn.net/dn/GbXKg/dJMcah4en5u/URnDfViqezvX4UthnGkJA1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GbXKg/dJMcah4en5u/URnDfViqezvX4UthnGkJA1/img.jpg&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGbXKg%2FdJMcah4en5u%2FURnDfViqezvX4UthnGkJA1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;button class=&quot;btn btn-prev&quot;&gt;&lt;span class=&quot;ico-prev&quot;&gt;이전&lt;/span&gt;&lt;/button&gt;&lt;button class=&quot;btn btn-next&quot;&gt;&lt;span class=&quot;ico-next&quot;&gt;다음&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
  &lt;div class=&quot;mark&quot;&gt;&lt;span data-index=&quot;0&quot;&gt;0&lt;/span&gt;&lt;span data-index=&quot;1&quot;&gt;1&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LLM은 단순 API 호출 영역이 아니라 시스템의 설계로 비용, 속도, 성능의 트레이드 오프를 모두 고려해야 해서 처음에는 설계하는데 시간도 오래걸리고 감도 안 잡혀서 정말 머리를 쥐어 뜯었다. 어떻게 해야 답변 속도를 빠르게 할 수 있을지 Human-in-the-loop 최고..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Phase 7. Dokcer / Web / AWS&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Docker, Linux&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Django, JS&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- AWS&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Project Story - 토이부터 단위를 거쳐 파이널까지&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageslideblock alignCenter&quot; data-image=&quot;[{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/nAQZI/dJMcaaRzYCd/NjH5w3s5IvGd4QaW4k0Vhk/img.jpg&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/Hydmq/dJMcaacYmkF/fXa2AmvBSAbT0NxCISoSak/img.jpg&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/c8mb2m/dJMcag5k8ME/bQONiZ56YvwdeE5hlKGDr1/img.jpg&amp;quot;}]&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span class=&quot;image-wrap selected&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nAQZI/dJMcaaRzYCd/NjH5w3s5IvGd4QaW4k0Vhk/img.jpg&quot; data-url=&quot;https://blog.kakaocdn.net/dn/nAQZI/dJMcaaRzYCd/NjH5w3s5IvGd4QaW4k0Vhk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nAQZI/dJMcaaRzYCd/NjH5w3s5IvGd4QaW4k0Vhk/img.jpg&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnAQZI%2FdJMcaaRzYCd%2FNjH5w3s5IvGd4QaW4k0Vhk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Hydmq/dJMcaacYmkF/fXa2AmvBSAbT0NxCISoSak/img.jpg&quot; data-url=&quot;https://blog.kakaocdn.net/dn/Hydmq/dJMcaacYmkF/fXa2AmvBSAbT0NxCISoSak/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Hydmq/dJMcaacYmkF/fXa2AmvBSAbT0NxCISoSak/img.jpg&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHydmq%2FdJMcaacYmkF%2FfXa2AmvBSAbT0NxCISoSak%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c8mb2m/dJMcag5k8ME/bQONiZ56YvwdeE5hlKGDr1/img.jpg&quot; data-url=&quot;https://blog.kakaocdn.net/dn/c8mb2m/dJMcag5k8ME/bQONiZ56YvwdeE5hlKGDr1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c8mb2m/dJMcag5k8ME/bQONiZ56YvwdeE5hlKGDr1/img.jpg&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc8mb2m%2FdJMcag5k8ME%2FbQONiZ56YvwdeE5hlKGDr1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;button class=&quot;btn btn-prev&quot;&gt;&lt;span class=&quot;ico-prev&quot;&gt;이전&lt;/span&gt;&lt;/button&gt;&lt;button class=&quot;btn btn-next&quot;&gt;&lt;span class=&quot;ico-next&quot;&gt;다음&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
  &lt;div class=&quot;mark&quot;&gt;&lt;span data-index=&quot;0&quot;&gt;0&lt;/span&gt;&lt;span data-index=&quot;1&quot;&gt;1&lt;/span&gt;&lt;span data-index=&quot;2&quot;&gt;2&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;총 4회차의 단위 팀프로젝트를 거치고, 개별적으로 팀을 꾸린 토이 프로젝트와 마지막 파이널 프로젝트까지 프로젝트는 총 6개 진행하게 되었다. 팀으로 많이 진행됐던 프로젝트이기에 git을 이용한 협업을 많이 배우고 빠르게 익혀놔야겠다고 생각해서 정리해놓은 git 커맨드 내용을 공유해보겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://booming-lyric-dbc.notion.site/Git_team-2aa23a44f76a8043bfdddc0f279e04ec?source=copy_link&quot;&gt;https://booming-lyric-dbc.notion.site/Git_team-2aa23a44f76a8043bfdddc0f279e04ec?source=copy_link&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1768582107647&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Git_team | Notion&quot; data-og-description=&quot;1. 프로젝트 최초 세팅&quot; data-og-host=&quot;booming-lyric-dbc.notion.site&quot; data-og-source-url=&quot;https://booming-lyric-dbc.notion.site/Git_team-2aa23a44f76a8043bfdddc0f279e04ec?source=copy_link&quot; data-og-url=&quot;https://booming-lyric-dbc.notion.site/Git_team-2aa23a44f76a8043bfdddc0f279e04ec&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/g4p6Q/dJMb9dHhDdO/L9IS0GcQDbQ1upgq5Vem60/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/cGH9By/dJMb9lk0L0u/PDrO3WGp65GWQVLSqFheZ0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://booming-lyric-dbc.notion.site/Git_team-2aa23a44f76a8043bfdddc0f279e04ec?source=copy_link&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://booming-lyric-dbc.notion.site/Git_team-2aa23a44f76a8043bfdddc0f279e04ec?source=copy_link&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/g4p6Q/dJMb9dHhDdO/L9IS0GcQDbQ1upgq5Vem60/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/cGH9By/dJMb9lk0L0u/PDrO3WGp65GWQVLSqFheZ0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Git_team | Notion&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1. 프로젝트 최초 세팅&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;booming-lyric-dbc.notion.site&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;생존법칙 발견&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageslideblock alignCenter&quot; data-image=&quot;[{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/2uiDJ/dJMcaaRzYMh/ijdKShmubAue2lAaGcgevK/img.jpg&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/JmKj7/dJMcaaRzYMi/emvimWNTAFAtvGmCKZj1G1/img.jpg&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/VTAew/dJMcajt9535/iBJkkgKPjNH1nBC8x6WPzK/img.jpg&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/L4kTA/dJMcajt9536/kJxnEnjFMxvDq3McTq093k/img.jpg&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/cfVBAU/dJMcajt9534/hQjOsg4nsbUosiJKEDoLak/img.jpg&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/b9Uvqm/dJMcafehO4M/d0jcw1VzrdzslF7AG5prQK/img.jpg&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/8GpBt/dJMcac2Ts53/ULN5tJ1OBUTSklUVTd2Q0K/img.jpg&amp;quot;}]&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span class=&quot;image-wrap selected&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2uiDJ/dJMcaaRzYMh/ijdKShmubAue2lAaGcgevK/img.jpg&quot; data-url=&quot;https://blog.kakaocdn.net/dn/2uiDJ/dJMcaaRzYMh/ijdKShmubAue2lAaGcgevK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2uiDJ/dJMcaaRzYMh/ijdKShmubAue2lAaGcgevK/img.jpg&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2uiDJ%2FdJMcaaRzYMh%2FijdKShmubAue2lAaGcgevK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JmKj7/dJMcaaRzYMi/emvimWNTAFAtvGmCKZj1G1/img.jpg&quot; data-url=&quot;https://blog.kakaocdn.net/dn/JmKj7/dJMcaaRzYMi/emvimWNTAFAtvGmCKZj1G1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JmKj7/dJMcaaRzYMi/emvimWNTAFAtvGmCKZj1G1/img.jpg&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJmKj7%2FdJMcaaRzYMi%2FemvimWNTAFAtvGmCKZj1G1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VTAew/dJMcajt9535/iBJkkgKPjNH1nBC8x6WPzK/img.jpg&quot; data-url=&quot;https://blog.kakaocdn.net/dn/VTAew/dJMcajt9535/iBJkkgKPjNH1nBC8x6WPzK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VTAew/dJMcajt9535/iBJkkgKPjNH1nBC8x6WPzK/img.jpg&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVTAew%2FdJMcajt9535%2FiBJkkgKPjNH1nBC8x6WPzK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/L4kTA/dJMcajt9536/kJxnEnjFMxvDq3McTq093k/img.jpg&quot; data-url=&quot;https://blog.kakaocdn.net/dn/L4kTA/dJMcajt9536/kJxnEnjFMxvDq3McTq093k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/L4kTA/dJMcajt9536/kJxnEnjFMxvDq3McTq093k/img.jpg&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FL4kTA%2FdJMcajt9536%2FkJxnEnjFMxvDq3McTq093k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfVBAU/dJMcajt9534/hQjOsg4nsbUosiJKEDoLak/img.jpg&quot; data-url=&quot;https://blog.kakaocdn.net/dn/cfVBAU/dJMcajt9534/hQjOsg4nsbUosiJKEDoLak/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfVBAU/dJMcajt9534/hQjOsg4nsbUosiJKEDoLak/img.jpg&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfVBAU%2FdJMcajt9534%2FhQjOsg4nsbUosiJKEDoLak%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9Uvqm/dJMcafehO4M/d0jcw1VzrdzslF7AG5prQK/img.jpg&quot; data-url=&quot;https://blog.kakaocdn.net/dn/b9Uvqm/dJMcafehO4M/d0jcw1VzrdzslF7AG5prQK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9Uvqm/dJMcafehO4M/d0jcw1VzrdzslF7AG5prQK/img.jpg&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9Uvqm%2FdJMcafehO4M%2Fd0jcw1VzrdzslF7AG5prQK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8GpBt/dJMcac2Ts53/ULN5tJ1OBUTSklUVTd2Q0K/img.jpg&quot; data-url=&quot;https://blog.kakaocdn.net/dn/8GpBt/dJMcac2Ts53/ULN5tJ1OBUTSklUVTd2Q0K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8GpBt/dJMcac2Ts53/ULN5tJ1OBUTSklUVTd2Q0K/img.jpg&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8GpBt%2FdJMcac2Ts53%2FULN5tJ1OBUTSklUVTd2Q0K%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot;/&gt;&lt;/span&gt;&lt;button class=&quot;btn btn-prev&quot;&gt;&lt;span class=&quot;ico-prev&quot;&gt;이전&lt;/span&gt;&lt;/button&gt;&lt;button class=&quot;btn btn-next&quot;&gt;&lt;span class=&quot;ico-next&quot;&gt;다음&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
  &lt;div class=&quot;mark&quot;&gt;&lt;span data-index=&quot;0&quot;&gt;0&lt;/span&gt;&lt;span data-index=&quot;1&quot;&gt;1&lt;/span&gt;&lt;span data-index=&quot;2&quot;&gt;2&lt;/span&gt;&lt;span data-index=&quot;3&quot;&gt;3&lt;/span&gt;&lt;span data-index=&quot;4&quot;&gt;4&lt;/span&gt;&lt;span data-index=&quot;5&quot;&gt;5&lt;/span&gt;&lt;span data-index=&quot;6&quot;&gt;6&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하루종일 앉아서 노트북의 LLM과 대화하고 있으니 생존 법칙 몇 가지 깨달았다. 이게 왜 안 되지..? 머리 터지겠다라는 생각이 들 땐 귀여운 것을 보고, 하늘도 보고, 커피를 마시면서 산책을 해보자~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20260117_002250547.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dLlElR/dJMcafSTQky/6NKjQJpD1Bkymv6l8nWfx1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dLlElR/dJMcafSTQky/6NKjQJpD1Bkymv6l8nWfx1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dLlElR/dJMcafSTQky/6NKjQJpD1Bkymv6l8nWfx1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdLlElR%2FdJMcafSTQky%2F6NKjQJpD1Bkymv6l8nWfx1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;533&quot; data-filename=&quot;KakaoTalk_20260117_002250547.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/yheeeon/SKN18-FINAL-1TEAM&quot;&gt;https://github.com/yheeeon/SKN18-FINAL-1TEAM&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1768578217464&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - yheeeon/SKN18-FINAL-1TEAM&quot; data-og-description=&quot;Contribute to yheeeon/SKN18-FINAL-1TEAM development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/yheeeon/SKN18-FINAL-1TEAM&quot; data-og-url=&quot;https://github.com/yheeeon/SKN18-FINAL-1TEAM&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b7wps5/dJMb8YXE4B9/gyktLdAtV9tjaTM6GgeWV0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/KoN2r/dJMb8WMi9UX/DOLNKP0EHJChrDYDLcRlUk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/yheeeon/SKN18-FINAL-1TEAM&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/yheeeon/SKN18-FINAL-1TEAM&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b7wps5/dJMb8YXE4B9/gyktLdAtV9tjaTM6GgeWV0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/KoN2r/dJMb8WMi9UX/DOLNKP0EHJChrDYDLcRlUk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - yheeeon/SKN18-FINAL-1TEAM&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Contribute to yheeeon/SKN18-FINAL-1TEAM development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;LLM을 이용한 추천 시스템- 서울특별시 부동산 매물 추천 'Gozip'&lt;/b&gt; 파이널 프로젝트를 무사히 마무리하며 6개월 과정을 이수했다. 단순한 이론이나 실습 교육이 아닌 사고방식을 완전히 바꿔주었고 내가 무엇을 하고 싶은지 알 수 있었던 시간이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 분석가이지만, AI를 다룰 수 있는 사람, 그리고 데이터를 설계할 수 있는 사람이 되고 싶다면 다시 복습해보자~~&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20260116_175648281_20.jpg&quot; data-origin-width=&quot;836&quot; data-origin-height=&quot;532&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FrZ7K/dJMcaa46ZBS/BLGU9R6l88PuizgKlxgLV1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FrZ7K/dJMcaa46ZBS/BLGU9R6l88PuizgKlxgLV1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FrZ7K/dJMcaa46ZBS/BLGU9R6l88PuizgKlxgLV1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFrZ7K%2FdJMcaa46ZBS%2FBLGU9R6l88PuizgKlxgLV1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;255&quot; data-filename=&quot;KakaoTalk_20260116_175648281_20.jpg&quot; data-origin-width=&quot;836&quot; data-origin-height=&quot;532&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모두 취준이나 하는 일 다 잘 되길 바라면서 청년 복지, 취준, AI 관련 정리한 사이트도 공유해드립니다 ~ &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://booming-lyric-dbc.notion.site/TIPS-2ea23a44f76a80798791c235dea9d786?source=copy_link&quot;&gt;https://booming-lyric-dbc.notion.site/TIPS-2ea23a44f76a80798791c235dea9d786?source=copy_link&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1768583200608&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;TIPS | Notion&quot; data-og-description=&quot;※ url 다를 수 있습니다&quot; data-og-host=&quot;booming-lyric-dbc.notion.site&quot; data-og-source-url=&quot;https://booming-lyric-dbc.notion.site/TIPS-2ea23a44f76a80798791c235dea9d786?source=copy_link&quot; data-og-url=&quot;https://booming-lyric-dbc.notion.site/TIPS-2ea23a44f76a80798791c235dea9d786&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/RnU9J/dJMb9jgqMJJ/eH5SKTBrBySL2tMut2qwzK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/itiAo/dJMb9iIAKbM/xYZx8gunRRY9QKNDSHqex0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://booming-lyric-dbc.notion.site/TIPS-2ea23a44f76a80798791c235dea9d786?source=copy_link&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://booming-lyric-dbc.notion.site/TIPS-2ea23a44f76a80798791c235dea9d786?source=copy_link&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/RnU9J/dJMb9jgqMJJ/eH5SKTBrBySL2tMut2qwzK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/itiAo/dJMb9iIAKbM/xYZx8gunRRY9QKNDSHqex0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;TIPS | Notion&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;※ url 다를 수 있습니다&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;booming-lyric-dbc.notion.site&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category> 교육/[엔코아]SK넥트웍스 Family AI Camp</category>
      <category>AI</category>
      <category>AI부트캠프</category>
      <category>SK네트웍스 Family AI 캠프</category>
      <category>개발자</category>
      <category>부캠</category>
      <category>부트캠프</category>
      <category>취준생</category>
      <author>멍발</author>
      <guid isPermaLink="true">https://hee-yeon-02.tistory.com/163</guid>
      <comments>https://hee-yeon-02.tistory.com/entry/%E3%85%81#entry163comment</comments>
      <pubDate>Fri, 16 Jan 2026 23:59:54 +0900</pubDate>
    </item>
    <item>
      <title>RAG, VectorDB</title>
      <link>https://hee-yeon-02.tistory.com/entry/RAG-VectorDB</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;RAG?&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 개념&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;찾아보고 답할 수 있도록 도와주는 검색 비서 역할&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외부 지식 저장소(Vector DB) 등 관련 정보를 검색해서 LLM에 추가로 제공한 뒤, 정확하고 최신의 답변을 생성하는 구조&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LLM의 문제점인 학습된 지식에만 의존하는 것이 아닌, 새로운 지식을 추가(증강)해서 LLM이 올바른 답변을 할 수 있도록&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;R(Retraieval): 어딘가에서 요청된 무언가를 가져오는 것 &amp;ldquo;&lt;b&gt;검색&amp;rdquo;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;A(Augmented) : 원래 것에 덧붙여서 좋아지게 함 &lt;b&gt;&amp;ldquo;증강&amp;rdquo;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;G(Generation) : 프롬프트(사용자의 질문)에 대한 응답을 텍스트로 &lt;b&gt;생성&lt;/b&gt;함&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 워크플로우&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;① 사용자가 질문(prompt 보냄) &amp;rarr; 이 Query(질문)은 시스템으로 전달&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;② 시스템은 Query(질문) 내용을 분석해서 지식 저장소(Vector DB)에서 관련 문서/단락을 검색&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;검색 방식 : 문장 임베딩 &amp;rarr; 벡터 유사도 검색&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저장소 예시: FAISS, Chroma, Pinecone, Elasticsearch&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;③ 증강된 컨텍스트(관련 정보) 가져오기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;검색 결과로 가장 관련성이 높은 텍스트 조각을 가져옴 = &amp;ldquo;증강된 컨텍스트&amp;rdquo;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LLM에게 추가로 참고자료를 붙여주는 과정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;④ Prompt + Query + 증강된 컨텍스트 &amp;rarr; LLM에 전달&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;질문 + 참고자료(검색된 관련 텍스트)를 함께 입력 받으면 &amp;rarr; LLM이 구체적이고 근거 있는 답변 만듦&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;⑤ LLM이 최종 답변 생성 &amp;rarr; 사용자에게 전달&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LLM은 증강된 컨텍스트를 참고해서 최종적으로 자연어로 된 답변 생성해서 사용자에게 전달&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;ldquo;검색 기반의 근거 있는 응답&amp;rdquo;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 특징&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;확장성: LLM 모델 사이즈와 훈련 비용을 줄여서 지식 빠르게 확장 가능&lt;/li&gt;
&lt;li&gt;정확성: 검색 기반의 사실성 있는 답변&lt;/li&gt;
&lt;li&gt;제어 가능성: 정보 검색 + 맞춤화 가능, 질문의 의도를 측정해서 답변을 종합할 때 검색을 하면 근거있는 요소 참조 가능&lt;/li&gt;
&lt;li&gt;설명 가능성: 모델이 예측하는데로 참조 역할&lt;/li&gt;
&lt;li&gt;범용성 : QA, 요약, 대화 등 파인튜닝과 커스터마이즈(맞춤) 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 패러다임&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;ldquo;간단한 검색 및 생성 방식&amp;rdquo;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인덱싱
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 인덱싱
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;파일 형식(pdf, html, word) &amp;rarr; text 변환&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;청크 분할
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;tex &amp;rarr; chunk(작은 조각)으로 분할&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;임베딩 및 인덱스 생성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;text &amp;rarr; 벡터 변환 &amp;rarr; 유사성 계산&lt;/li&gt;
&lt;li&gt;사용자 질문 시 대량의 corpus를 실시간으로 인코딩 실시&lt;/li&gt;
&lt;li&gt;corpus 청크와 임베딩 &amp;rarr; key-value 쌍 형태로 저장&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;검색
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사용자 입력 &amp;rarr; 벡터 변환 &amp;rarr; 벡터와 문서 블록의 벡터간 유사성 계산 &amp;rarr; 상위 K 문서 블록 선택&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;생성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;질문과 관련 문서 결합해서 new prompt 생성 &amp;rarr; LLM이 이 정보를 기반으로 질문 답변&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. RAG 유무에 따른 LLM&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RAG가 있으면 최신 정보, 문서 기반 답변, 정확도 향상 가능, 없으면 학습된 지식만으로 답변&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구분 LLM 단독 RAG + LLM&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;지식 범위&lt;/td&gt;
&lt;td&gt;사전 학습 지식만&lt;/td&gt;
&lt;td&gt;문서 기반 최신 정보 활용 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;정확성&lt;/td&gt;
&lt;td&gt;최신 정보/특정 도메인 질문에서 낮음&lt;/td&gt;
&lt;td&gt;검색 기반 참조 &amp;rarr; 정확도 향상&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;문서 기반 QA&lt;/td&gt;
&lt;td&gt;불가 또는 추정적&lt;/td&gt;
&lt;td&gt;문서 기반 상세 답변 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;확장성&lt;/td&gt;
&lt;td&gt;모델 업데이트 필요&lt;/td&gt;
&lt;td&gt;문서 추가만으로 확장 용이&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4-1. Naive RAG&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1️⃣Document Loaders&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다양한 형태의 문서를 RAG 전용 객체로 불러들이는 모듈&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문서 데이터 수집 &amp;rarr; 사용 가능한 형식으로 변환&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Page_content : 문서의 내용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Metadata : 문서 위치, 제목, 페이지 넘버 등&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용처: 웹 크롤링으로 특정 주제의 기사, 논문 수집 및 분석하여 요약 정보 생성&lt;/p&gt;
&lt;pre class=&quot;&quot;&gt;&lt;code&gt;  기업 내부 문서 저장소에 필요한 문서 빠르게 검색 및 관련 정보 추출하여 보고서 자동 작성
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2️⃣Text Splitters&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;토큰 제한이 있는 LLM이 여러 문장을 참고해서 답변 가능하도록 문서 분할&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;※ LangChain&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;긴 문서를 작은 단위인 청크(Chunk)로 나누는 텍스트 분리 도구 지원&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;청킹: 텍스트 분리 작업 &amp;rarr; why? LLM 모델의 입력 토큰 개수가 정해져 있기 때문.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;분할 목적
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;독립적인 의미의 청크로, 문장, 구절, 단락 등 문서 구조 기준으로 분할&lt;/li&gt;
&lt;li&gt;청크의 크기 직접 조정 가능, 입력 크기와 비용 등을 고려해서 앱에 적합한 최적의 크기 결정 &amp;larr; 단어 수, 문자 수 등을 기준으로 분할&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;분할 과정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문서 구조 파악: 문서의 헤더, 푸터, 페이지 번호, 섹션 제목 등을 식별하는 과정을 포함해서 문서 구조 파악&lt;/li&gt;
&lt;li&gt;단위 선정: 페이지별, 섹션별, 문단별 등 문서 내용과 목적에 따라 단위 선정&lt;/li&gt;
&lt;li&gt;단위 크기 선정: 문서를 몇 개의 토큰 단위로 나눌 것?&lt;/li&gt;
&lt;li&gt;청크 오버랩: 분할된 끝 부분에서 맥락이 이어지도록 일부 겹쳐서 분할&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;CharacterTextSplitter&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;텍스트 청크로 분할하는 코드&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1760879769428&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from langchain_text_splitters import CharacterTextSplitter

text_splitter = CharacterTextSplitter(
    # 텍스트를 분할할 때 사용할 구분자를 지정합니다. 기본값은 &quot;\n\n&quot;입니다.
    separator=&quot;\n\n&quot;,
    # 분할된 텍스트 청크의 최대 크기를 지정합니다.
    chunk_size=250,
    # 분할된 텍스트 청크 간의 중복되는 문자 수를 지정합니다.
    chunk_overlap=50,
    # 텍스트의 길이를 계산하는 함수를 지정합니다.
    length_function=len,
    # 구분자가 정규식인지 여부를 지정합니다.
    is_separator_regex=False,
)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;유의사항&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문서를 \n으로 split&lt;/li&gt;
&lt;li&gt;split 문서가 chunk_size 넘지 않으면 합치기&lt;/li&gt;
&lt;li&gt;chunk_size가 아무리 작아도 \n으로 자른 단위가 최소 chunk가 됨&lt;/li&gt;
&lt;li&gt;chunk_overlap의 기준은 글자 단위가 아닌, \n으로 자른 문단 기준이 됨&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RecursiveCharacterTextSplitter&lt;/b&gt;최대 길이 초과하면 더 작은 단위로 나눌 수 있음&lt;b&gt;순서&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;\n 기준으로 split&lt;/li&gt;
&lt;li&gt;split한 문장이 chunk_size보다 크면 \n기준으로 자름&lt;/li&gt;
&lt;li&gt;\n 기준으로 자른 문장이 chunk_size보다 크면 &amp;ldquo; &amp;ldquo;기준으로 자름&lt;/li&gt;
&lt;li&gt;&amp;rdquo; &amp;ldquo; 기준으로 자른 문장이 chunk_size보다 크면 &amp;ldquo;&amp;rdquo;기준으로 자름&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;작아질 때까지 문자 목록의 순서대로 텍스트 분할(단락 &amp;gt; 문장 &amp;gt; 단어순)&lt;/li&gt;
&lt;li&gt;구분자 하나로 텍스트를 분리하는 것이 아닌, 여러 레벨의 구분자를 정의해서 텍스트를 나눔&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1760879788283&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from langchain.text_splitter import RecursiveCharacterTextSplitter

text_splitter = RecursiveCharacterTextSplitter(
    # 청크 크기를 매우 작게 설정합니다. 예시를 위한 설정입니다.
    chunk_size=250,
    # 청크 간의 중복되는 문자 수를 설정합니다.
    chunk_overlap=50,
    # 문자열 길이를 계산하는 함수를 지정합니다.
    length_function=len,
    # 구분자로 정규식을 사용할지 여부를 설정합니다.
    is_separator_regex=False,
)&lt;/code&gt;&lt;/pre&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 80px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;구분&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;사용&lt;span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;상황&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;특징&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;CharacterTextSplitter&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;텍스트가 짧고 단순할 때&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;빠르고 단순한 구분자 기반 분할&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;RecursiveCharacterTextSplitter&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;긴 텍스트나 복잡한 구조일 때&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;문맥 유지, 여러 구분자 활용, 길이 제한 조절 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;TokenTextSplitter&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;텍스트를 토큰 수 기반으로 청크 생성 시 유용함&lt;/li&gt;
&lt;li&gt;OpenAI API는 해당 모델의 토크나이저 기준으로 분할 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SemanticChunker&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;의미적 유사성에 따라 텍스트를 분할함&lt;/li&gt;
&lt;li&gt;텍스트를 문장 단위로 분할 &amp;rarr; 3개 문장씩 그룹 &amp;rarr; 임베딩 공간에서 유사한 문장 병합&lt;/li&gt;
&lt;li&gt;chunker는 문장을 분리할 시점을 결정해서 작동함 &amp;ldquo;&lt;b&gt;Breakpoints&lt;/b&gt;&amp;rdquo;&lt;/li&gt;
&lt;li&gt;분리 방식은 백분위수(&lt;b&gt;Percentile&lt;/b&gt;)기반으로 분리&lt;/li&gt;
&lt;li&gt;지정한 breakpoint_threshold_amout 표준편차보다 큰 차이가 있는 경우 &lt;b&gt;Standard Deviation&lt;/b&gt;으로 분할&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3️⃣ Vector Database&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;벡터를 고차원 포인트로 저장 및 검색&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;N차원 공간에서 가장 가까운 이웃을 빠르게 조회 가능&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;VectorDB vs RDB&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 143px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;구분&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;Vector DB : 의미 기반 검색용&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;RDB : 데이터 관리용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;데이터 구조&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;텍스트&amp;middot;이미지 등에서 추출된 &lt;b&gt;고차원 벡터(임베딩)&lt;/b&gt; 저장&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;행(Row)과 열(Column)로 구성된 표 형태&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;검색 방식&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;유사도 기반 검색&lt;/b&gt; (의미가 비슷한 벡터 찾기)&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;정확한 값 일치 검색 (WHERE id=1)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;주요 기능&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;가까운 이웃 검색(KNN)&lt;/b&gt;, 범위 검색, 벡터 간 거리 계산&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;트랜잭션, 조인, 필터링 등&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;적합한 용도&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;AI 검색, 추천 시스템, RAG&lt;/b&gt; 등 맥락 기반 응용&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;금융, ERP, 전통적 데이터 관리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;성능 및 확장성&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;비정형 데이터(고차원)&lt;/b&gt; 처리에 빠르고 확장성 높음&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;구조적 데이터에 최적화&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;VectorDB Embedding&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;text, image, mp4 &amp;rarr; 벡터 형태로 변환&lt;/li&gt;
&lt;li&gt;고차원 공간 &amp;rarr; 저차원 공간 변환(차원 축소 시에도 data 정보와 패턴 보존)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;동작 원리&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;① 인덱싱
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;벡터를 알고리즘**(Random Projection, Product Quantization, Loclity-sensitive hashing, Hierarchical Navigable Small World**)으로 인덱싱하여 빠른 검색이 가능하도록 데이터 구조에 벡터를 매핑시킴&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;② 쿼리&lt;/li&gt;
&lt;li&gt;유사도 메트릭(코사인 유사도, 유클리디안 거리, 내적)을 이용하여 가장 가까운 벡터 찾기
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;코사인 유사도: 두 벡터간 &lt;b&gt;각도&lt;/b&gt; 측정하여 유사성 판단, 얼마나 같은 방향인지, &lt;b&gt;-1 ~ 1(유사성 &amp;uarr;) 사이&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;유클리디안 거리: 두 벡터 간 &lt;b&gt;직선 거리&lt;/b&gt; 측정, 0 이상으로 거리 &lt;b&gt;짧을수록 유사성 &amp;uarr;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;내적 : 두 벡터 간 &lt;b&gt;곱셈 연산&lt;/b&gt;으로 유사성 측정, &lt;b&gt;유사한 방향이면 +&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
③ 후처리
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;최종 최근접 이웃 검색 후 후처리하여 최종 결과 반환&amp;nbsp;&lt;/li&gt;
&lt;li&gt;벡터 검색 전 필터 적용 가능 &amp;rarr; 사전 필터링, 사후 필터링&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사전 필터링&lt;/b&gt;: 벡터 검색 전 메타데이터 필터링 수행하여 검색량 줄임 but, 오버헤드 발생하여 쿼리 실행 느려짐&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사후 필터링&lt;/b&gt;: 벡터 검색 후 메타데이터 필터링 수행 &amp;rarr; 연관된 모든 결과 추출 but, 오버헤드 발생하여 쿼리 실행 느려짐&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;※ Vector DB 요약&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;역할&lt;/b&gt;: 문서나 데이터를 벡터로 변환 후 저장 &amp;rarr; 의미 기반 유사도 검색&lt;/li&gt;
&lt;li&gt;&lt;b&gt;구성 요소&lt;/b&gt;:
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Vector Storage&lt;/b&gt;: 임베딩 벡터 저장&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Indexing&lt;/b&gt;: 유사도 검색 가속(HNSW, IVF 등)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Similarity Search Engine&lt;/b&gt;: 쿼리 벡터와 저장 벡터 유사도 계산&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Metadata Storage&lt;/b&gt;: 문서 정보, 필터링용 메타데이터 저장&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;데이터 추출 과정&lt;/b&gt;:
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;문서 전처리 &amp;rarr; 텍스트 분할&lt;/li&gt;
&lt;li&gt;임베딩 생성 &amp;rarr; 벡터화&lt;/li&gt;
&lt;li&gt;VectorDB 저장&lt;/li&gt;
&lt;li&gt;쿼리 &amp;rarr; 벡터 변환 &amp;rarr; Top-K 유사 문서 검색&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4-2. Advancecd RAG&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;for 검색 및 생성 질 향상을 위한 사전 및 사후 검색 방법 포함&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;검색 전 절차(Pre-Retrieval Process)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 인덱싱 최적화&lt;/li&gt;
&lt;li&gt;임베딩&lt;/li&gt;
&lt;/ul&gt;
| 활용 사례 | &amp;bull; 의미 검색: 벡터 표현으로 유사한 텍스트를 검색 &amp;bull; 문서 분류: 특정 카테고리나 주제에 맞게 분류 &amp;bull; 텍스트 유사도 계산: 두 텍스트 간 거리 계산해서 유사성 평가 | | --- | --- | | 메소드 | - embed_documents : 문서 객체를 입력 받아 &amp;rarr; 각 문서를 벡터 공간에 임베딩 주로, 대량의 텍스트 데이터를 뱊치 단위로 처리할 때 사용
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;embed_query: 단일 텍스트 쿼리를 입력 받아 &amp;rarr; 쿼리를 벡터 공간에 임베딩 사용자의 검색 쿼리 임베딩해서 문서 집합 내 쿼리와 유사한 내용 찾기 | | 모델 제공자 | - OpenAI : 텍스트의 임베딩 벡터 생성하는 API 제공&lt;/li&gt;
&lt;li&gt;Hugging Face : Transformers 라이브러리로 오픈소스 임베딩 모델 제공&lt;/li&gt;
&lt;li&gt;Google : Gemini, Gemma 등 언어 모델에 적용되는 임베딩 모델 제공 |&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;for 인덱싱 최적화 및 임베딩 &amp;rarr; 검색 결과의 관련성 &amp;amp; 정확성 &amp;uarr;&lt;/li&gt;
&lt;li&gt;검색 후 절차(Post-Retrieval Process)검색 결과로 나온 문서를 한꺼번에 LLM에 제공하면 context window 크기 초과할 수 있어서 후처리 필요
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;순위 다시 매기기(ReRank) : 검색 결과 중 관련성이 가장 높은 프롬프트의 앞부분으로 재배치&lt;/li&gt;
&lt;li&gt;프롬프트 압축(Prompt Compression): 후처리 시 중요하지 않은 맥락은 압축, 중요 문단은 강조&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;DB에서 검색된 주요 문맥과 질의 결합해서 LLM에 입력하는 과정&lt;/li&gt;
&lt;li&gt;RAG 파이프라인 최적화
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하이브리드 검색: 키워드 / 의미론적 / 벡터 검색과 같은 혼합 검색&lt;/li&gt;
&lt;li&gt;재귀적 검색 및 쿼리 엔진: 초기 검색 단계 시 더 작은 문서 블록 획득하여 주요 의미 포착 &amp;rarr; 후반 단계에서 많은 맥락 정보를 가진 더 큰 블록을 언어 모델에 제공&lt;/li&gt;
&lt;li&gt;HyDE: LLM이 생성한 문장이 사용자의 질의보다 임베딩 공간에 더 가까울 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;효율성 + RAG 검색 시 맥락적 정보의 풍부함 균형 달성&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4-3. Modular RAG&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;검색 모듈
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 시나리오에 맞춰 LLM이 생성한 코드, SQL 등을 이용해서 직접 검색 수행&lt;/li&gt;
&lt;li&gt;외부 검색 엔진, 텍스트 데이터, 테이블 데이터, 지식 그래프를 데이터 소스로 활용 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;메모리 모듈
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;메모리 기능으로 검색 개선 &amp;rarr; 현재 입력과 유사한 기억 찾음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;추가 생성 모듈
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;중복 및 잡음 문제 대응, LLM 활용해서 검색을 위한 문서 별도 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;태스크 적용 모듈
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다운스트림 작업 적응하도록 조정&lt;/li&gt;
&lt;li&gt;zero-shot-promt or zero-shot-query 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;정렬 모듈
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;별도의 학습 가능한 어댑터 추가해서 질의-텍스트 간 정렬 문제 해결&lt;/li&gt;
&lt;li&gt;PRCA, AAR, RRR 방법&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;검증 모듈
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;실제 문서와 질의 간 관련성 평가&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;</description>
      <category> ️Software Development/AI</category>
      <author>멍발</author>
      <guid isPermaLink="true">https://hee-yeon-02.tistory.com/162</guid>
      <comments>https://hee-yeon-02.tistory.com/entry/RAG-VectorDB#entry162comment</comments>
      <pubDate>Sun, 19 Oct 2025 22:20:30 +0900</pubDate>
    </item>
    <item>
      <title>IntrodutionLLM, LLM fine tuning</title>
      <link>https://hee-yeon-02.tistory.com/entry/IntrodutionLLM-LLM-fine-tuning</link>
      <description>&lt;h1&gt;1-1. Intordution LLM&lt;/h1&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;임베딩&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개념: 두 텍스트 사이의 관련성을 측정에 사용하도록 텍스트를 숫자로 표현&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용처: 검색, 클러스터링, 추천, 변칙 검색, 분류 작업&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;OpenAI&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GPT-4o mini: 빠르고 가벼운 작업을 위한 저렴하고 지능적인 소형 모델&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DALL-E 모델: 텍스트 설명 기반으로 &lt;b&gt;이미지 생성&lt;/b&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;OpenAI 응용&lt;/h3&gt;
&lt;pre class=&quot;ini&quot;&gt;&lt;code&gt;clinet = OpenAI() # OpenAI 모듈로 생성된 인스턴스
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;LLM Chat의 주요 파라미터&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;항목 설명 주요 값/범위 의미 및 활용 포인트&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;messages&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;지금까지의 대화 메시지 목록&lt;/td&gt;
&lt;td&gt;&amp;mdash;&lt;/td&gt;
&lt;td&gt;대화의 문맥을 구성함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;frequency_penalty&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;기존 단어 빈도에 따른 &lt;b&gt;반복 억제&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-2.0 ~ 2.0&lt;/td&gt;
&lt;td&gt;값이 높을수록 &lt;b&gt;중복 표현 감소&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;max_tokens&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;생성할 최대 토큰 수&lt;/td&gt;
&lt;td&gt;모델별 제한 내&lt;/td&gt;
&lt;td&gt;응답 길이 제어&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;n&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;생성할 선택지(결과) 수&lt;/td&gt;
&lt;td&gt;기본 1&lt;/td&gt;
&lt;td&gt;1로 유지 시 &lt;b&gt;비용 최소화&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;presence_penalty&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;새로운 주제 도입&lt;/b&gt; 확률 조정&lt;/td&gt;
&lt;td&gt;-2.0 ~ 2.0&lt;/td&gt;
&lt;td&gt;값이 높을수록 &lt;b&gt;새로운 내용 생성 증가&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;response_format&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;출력 형식&lt;/b&gt; 지정&lt;/td&gt;
&lt;td&gt;예: { &quot;type&quot;: &quot;json_object&quot; }&lt;/td&gt;
&lt;td&gt;JSON 모드 등 &lt;b&gt;출력 구조 제어&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;seed&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;결과의 재현성 확보&lt;/td&gt;
&lt;td&gt;임의 정수&lt;/td&gt;
&lt;td&gt;같은 시드로 유사한 결과 생성 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;temperature&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;출력의 무작위성 조절&lt;/td&gt;
&lt;td&gt;0 ~ 2&lt;/td&gt;
&lt;td&gt;높을수록 &lt;b&gt;창의적&lt;/b&gt;, 낮을수록 &lt;b&gt;일관적&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;top_p&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;핵심 샘플링(확률 기반 선택)&lt;/td&gt;
&lt;td&gt;0 ~ 1&lt;/td&gt;
&lt;td&gt;높은 값 &amp;rarr; 다양성 증가 (보통 temperature와 함께 사용하지 않음)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;stop sequence&lt;/td&gt;
&lt;td&gt;모델의 토근 생성을 중지시키는 문자열&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;모델 응답의 길이와 구조 제어 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;message
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시스템 메시지: 챗봇에세 일종의 역할 부여&lt;/li&gt;
&lt;li&gt;사용자 메시지: 사용자에게 전달할 내용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Streaming
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;실시간으로 데이터 송수신하는 프로세스&lt;/li&gt;
&lt;li&gt;대화형 모델이 토큰 단위로 응답 생성, 사용자는 모델 응답 생성 과정을 실시간으로 볼 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;이전 대화 기억하도록&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주요 항목 설명&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;messages&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;대화 내역을 담는 리스트 &lt;b&gt;(system, user, assistant 역할 구분&lt;/b&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;stream=True&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;모델이 &lt;b&gt;토큰 단위&lt;/b&gt;로 &lt;b&gt;실시간 응답&lt;/b&gt;을 전송&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;response_format={&quot;type&quot;: &quot;json_object&quot;}&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;모델 출력이 &lt;b&gt;JSON 형식&lt;/b&gt;으로 보장됨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;message_history&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;이전 대화를 기억&lt;/b&gt;하기 위한 히스토리 저장&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;print(chunk_content, end=&quot;&quot;)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;스트리밍&lt;/b&gt;된 토큰을 실시간으로 출력&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;final_answer&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;전체 응답 텍스트를 조합하여 저장&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h1&gt;LLM&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Encoder - BERT&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Decoder - GPT, BARD, LaMDA, LLaMA&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Encdoer &amp;amp; Decoder - TS, BART&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;sLLM(small Large Language Model)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적은 매개변수와 훈련 데이터로 가성비 좋은 성능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모델 용량 적음&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;※ LLM 종류&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Llama2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Llama3&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Vicuna&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;KULLM, KoAIpaca : 한국어 파생 모델&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Claude 3 : Haiku &amp;lt; Sonnet &amp;lt; Opus&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SciSpace : 논문 작성 유용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Deepseek LLM&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Hugging Face Transformers&lt;/b&gt; 기반의 LLM(언어모델)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;항목 설명&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;model_id&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;사용할 언어모델의 이름 (예: &quot;beomi/llama-2-ko-7b&quot;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;AutoTokenizer&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;문장을 모델이 이해할 수 있는 &lt;b&gt;토큰&lt;/b&gt;(숫자)으로 변환&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;AutoModelForCausalLM&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;문장 생성용&lt;/b&gt; 언어모델 클래스&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;messages&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;system, user 역할을 포함한 대화 메시지 리스트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;apply_chat_template()&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;대화형 프롬프트를 모델 입력 형식으로 변환&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;generate()&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;입력 토큰을 기반으로 새 텍스트(응답)를 생성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;temperature, top_p&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;생성 다양성과 창의성 제어&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;eos_token_id&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;생성 종료 토큰 설정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;decode()&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;숫자(토큰)를 사람이 읽을 수 있는 문자열로 변환&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Caching(캐싱)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터를 한 번 계산하거나 생성한 뒤, 그 결과를 임시로 저장했다가, 같은 요청이 들어왔을 때 다시 계산하지 않고 재사용 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h1&gt;2-1. PEFT - Promp Learning.ipynb&lt;/h1&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;prompt&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;hard prompting&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자연어 형태의 이산적인 값&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;soft prompting&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실수로 이뤄진 연속적인 값&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;언어 모델에서 사용&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;prompt based learning&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cf) 보통 NLP는 pre-train로 추가 학습 데이터를 사용해서 Fine-tune을 거쳤지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;prompt based learning은 어떻게 언어모델의 입력값을 디자인해야 하는가. &amp;rarr; 추가 파인튜닝 없이 사전학습 모델이 새로운 테스크 수행 가능하도록&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*zero-/few-shot learning : 파인튜닝 없이 언어모델 사용 &amp;larr; 추가 학습 데이터가 적을 때 사용&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;model tuning vs prompt tuning&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;model tuning
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 작업(task)마다 모델 전체를 새로 학습시켜서 테스크별로 모델이 따로 존재&lt;/li&gt;
&lt;/ul&gt;
&amp;rarr; 비용 / 시간 / 모델 용량 큼&lt;/li&gt;
&lt;li&gt;prompt tuning
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하나의 기본 모델을 그대로 두고, 각 작업마다 작은 프롬프트만 따로 학습시킴&lt;/li&gt;
&lt;/ul&gt;
&amp;rarr; 모델 전체를 건드리지 않고, 작업별 작은 프롬프트만 학습시켜서 가볍고 빠름&lt;/li&gt;
&lt;li&gt;Fine-tuningex) 번역용, 요약용, 텍스트용 Transformer 별로 각 존재&lt;/li&gt;
&lt;li&gt;&amp;rarr; 성능은 좋지만, 모델이 너무 많고 학습 비용이 큼&lt;/li&gt;
&lt;li&gt;작업마다 전체 Transformer 모델을 새로 학습시킴&lt;/li&gt;
&lt;li&gt;prefix-tuning
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기존의 사전학습 모델은 그대로 두고 앞부분에 작은 Prefix(작업 힌트)만 붙임&lt;/li&gt;
&lt;/ul&gt;
ex) 번역 작업엔 번역용 prefix, 요약 작업에는 요약 prefix&lt;/li&gt;
&lt;li&gt;&amp;rarr; 모델은 하나만 유지되고, prefix라는 작은 추가 파라미터만 학습되어 메모리와 시간 절약&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;요약&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구분 수정 범위 학습량 속도 모델 수 특징&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Model Tuning&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;모델 전체&lt;/td&gt;
&lt;td&gt;매우 큼&lt;/td&gt;
&lt;td&gt;느림&lt;/td&gt;
&lt;td&gt;여러 개&lt;/td&gt;
&lt;td&gt;전통적 방법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Prompt Tuning&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;입력 프롬프트 일부&lt;/td&gt;
&lt;td&gt;작음&lt;/td&gt;
&lt;td&gt;빠름&lt;/td&gt;
&lt;td&gt;1개&lt;/td&gt;
&lt;td&gt;텍스트 기반&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Fine-tuning&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Transformer 전체&lt;/td&gt;
&lt;td&gt;큼&lt;/td&gt;
&lt;td&gt;느림&lt;/td&gt;
&lt;td&gt;여러 개&lt;/td&gt;
&lt;td&gt;완전 학습&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Prefix-tuning&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;입력 앞부분(Prefix)&lt;/td&gt;
&lt;td&gt;매우 작음&lt;/td&gt;
&lt;td&gt;빠름&lt;/td&gt;
&lt;td&gt;1개&lt;/td&gt;
&lt;td&gt;효율적 학습&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;prompt engineering vs prompt tuning&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;prompt engineering즉, 원하는 답변을 유도하도록 내용에 맞는 프롬프트를 작성&lt;/li&gt;
&lt;li&gt;모델을 바꾸지 않고, 입력 문장(prompt)을 똑똑하게 설계해서 원하는 답변을 끌어냄&lt;/li&gt;
&lt;li&gt;prompt tuninginput text 앞부분에 추가된 addition k토큰들만 dwonstream 태스크에서 학습 &amp;rarr; 각 태스크마다 prompt 들을 저장해서 인퍼런스에서 mixed-task로 사용&lt;/li&gt;
&lt;li&gt;사람이 프롬프트를 작성하지 않아도, 모델이 스스로 최적의 프롬프트를 학습하도록 함&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;PEFT(Parameter-Efficient Fine-Tuning)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력 시퀀스 앞에 학습 가능한 연속적인 prefix 추가하는 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학습 가능한 prefix + 입력 토큰들&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필요성 : 메모리 효율성, 멀티태스크 지원, 빠른 학습과 배포&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;PromptTuningConfig&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;임베딩 레벨에서 학습 가능한 가상 토큰을 추가하는 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;aside&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예제&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;필요 라이브러리 설치&lt;/li&gt;
&lt;li&gt;라이브러리 import&lt;/li&gt;
&lt;li&gt;dataset 로드&lt;/li&gt;
&lt;li&gt;모델과 토크나이저 로드&lt;/li&gt;
&lt;li&gt;PromptTuningConifg 설정&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;markdown&quot;&gt;&lt;code&gt;- `task_type`: 태스크 유형 (CAUSAL_LM 등)
- `num_virtual_tokens`: 가상 토큰 개수
- `token_dim`: 토큰 차원 크기
- `num_transformer_submodules`: 트랜스포머 서브모듈 수
- `num_attention_heads`: 어텐션 헤드 수
- `num_layers`: 레이어 수
&lt;/code&gt;&lt;/pre&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;데이터 전처리&lt;/li&gt;
&lt;li&gt;학습 설정&lt;/li&gt;
&lt;li&gt;모델 학습 시작&lt;/li&gt;
&lt;li&gt;학습된 모델로 추론 &amp;lt;/aside&amp;gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h1&gt;3-1. GGUF(Georgi Gerganov Unified Format)&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;딥러닝 모델 저장용 단일 파일 모맷(메타데이터, 텐서 데이터 저장)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LLM 모델 파라미터를 가볍고 효율적으로 저장하고 불러오기 위해 설계&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 여러 LLM 저장 방식을 하나로 통합한 표준 언어 모델 포맷&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;GGUF 파일 구조&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;구성&lt;span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;요소&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt; &lt;/b&gt;&lt;/td&gt;
&lt;td&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Header&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;버전, 모델 크기, 토큰 개수 등 기본 정보&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Metadata&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;모델 이름, 학습 세부정보, vocab 등&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Tensor Data&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;실제 모델 파라미터 (가중치)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Quantization Info&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;어떤 방식으로 압축(양자화)했는지에 대한 정보&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;양자화 관계(GGUF는 양자화 모델 저장에 최적화!)&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt; 비트 수 &lt;/b&gt;&lt;/td&gt;
&lt;td&gt;설명&lt;/td&gt;
&lt;td&gt;&amp;nbsp; 용도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;16bit (FP16)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;고정밀 모델 (기본)&lt;/td&gt;
&lt;td&gt;GPU 훈련용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;8bit (Q8)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;메모리 절약, 약간의 속도 향상&lt;/td&gt;
&lt;td&gt;중간 수준&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;4bit (Q4_K_M, Q4_0)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;고속, 저메모리 (최대 75% 절약)&lt;/td&gt;
&lt;td&gt;로컬 실행용 (예: 노트북, Raspberry Pi 등)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;</description>
      <category> ️Software Development/AI</category>
      <author>멍발</author>
      <guid isPermaLink="true">https://hee-yeon-02.tistory.com/161</guid>
      <comments>https://hee-yeon-02.tistory.com/entry/IntrodutionLLM-LLM-fine-tuning#entry161comment</comments>
      <pubDate>Sun, 19 Oct 2025 22:11:58 +0900</pubDate>
    </item>
  </channel>
</rss>