<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>silver.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Wed, 04 Dec 2024 11:34:34 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <copyright>Copyright (C) 2019. silver.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/sliver_sun" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[세마포어_(시스템 프로그래밍)]]></title>
            <link>https://velog.io/@sliver_sun/%EC%84%B8%EB%A7%88%ED%8F%AC%EC%96%B4</link>
            <guid>https://velog.io/@sliver_sun/%EC%84%B8%EB%A7%88%ED%8F%AC%EC%96%B4</guid>
            <pubDate>Wed, 04 Dec 2024 11:34:34 GMT</pubDate>
            <description><![CDATA[<h2 id="세마포어란">세마포어란?</h2>
<h4 id="-여러-프로그램이-동시에-공유-자원에-접근하려고-할-때-순서를-정해서-문제를-막아주는-도구">: 여러 프로그램이 동시에 공유 자원에 접근하려고 할 때, 순서를 정해서 문제를 막아주는 도구</h4>
<blockquote>
<p>한 번에 한 명씩 들어갈 수 있도록 문 앞에 걸어두는 <strong>열쇠</strong> 같은 역할</p>
</blockquote>
<h3 id="왜-필요할까">왜 필요할까?</h3>
<p>예를 들어, 집에 컴퓨터 한 대만 있다고 가정할 때, 가족 모두가 컴퓨터를 동시에 쓰려고 하면 문제가 생긴다.</p>
<ul>
<li>상황1: 동생은 컴퓨터를 켜서 게임을 하려고 한다.</li>
<li>상황2: 나는 숙제를 하기 위해 컴퓨터를 끄려고 한다.
위 상황 2개가 동시에 진행된다면 컴퓨터가 오작동할 수 있다.<blockquote>
<p>따라서 세마포어는 이런 상황에서 <strong>컴퓨터는 한 번에 한 명만 사용하도록</strong> 규칙을 세우고, 누가 사용할지 순서를 정해주는 역할을 한다.</p>
</blockquote>
<h3 id="어떻게-작동할까">어떻게 작동할까?</h3>
<h4 id="--p함수-잠금">- p()함수 (잠금)</h4>
: 세마포어 값을 감소시켜 다른 프로세스의 접근 차단한다.<h4 id="--v함수-해제">- v()함수 (해제)</h4>
: 세마포어 값을 증가시켜 대기 중인 프로세스가 접근 가능하도록 한다.</li>
</ul>
<h2 id="세마포어-함수">세마포어 함수</h2>
<h3 id="1-semget">1. semget()</h3>
<ul>
<li>세마포어 생성</li>
<li>인자<ul>
<li>key: IPC_PRIVATE 또는 ftok() 함수로 생성한 키</li>
<li>nsems: 생성할 세마포어 개수</li>
<li>semflg: 플래그 및 접근 속성</li>
</ul>
</li>
<li>반환값: 성공 시 식별자, 실패 시 -1<h3 id="2-semctl">2. semctl()</h3>
</li>
<li>세마포어 제어</li>
<li>인자<ul>
<li>semid: 세마포어 식별자</li>
<li>semnum: 제어 대상 세마포어 번호</li>
<li>cmd: 수행할 명령</li>
<li>추가 인자: 제어 명령에 따라 필요 시</li>
</ul>
</li>
<li>반환값: 성공 시 0, 실패 시 -1<h3 id="3-semop">3. semop()</h3>
</li>
<li>세마포어 연산 (잠금/해제)</li>
<li>인자<ul>
<li>semid: 세마포어 식별자</li>
<li>sops: sembuf 구조체의 주소</li>
<li>nsops: sops가 가르키는 구조체의 크기</li>
</ul>
</li>
<li>반환값: 성공 시 0, 실패 시 -1</li>
</ul>
<h2 id="세마포어-예제">세마포어 예제</h2>
<pre><code class="language-C">#include &lt;sys/ipc.h&gt; // IPC 시스템 호출 함수
#include &lt;sys/sem.h&gt; // 세마포어 관련 함수
#include &lt;sys/types.h&gt; // 시스템 데이터 타입 정의
#include &lt;errno.h&gt; // 오류 코드
#include &lt;unistd.h&gt; // 시스템 호출 함수
#include &lt;stdlib.h&gt; // 표준 라이브러리 함수
#include &lt;stdio.h&gt; // 입출력 함수

// 세마포어 관련 유니언 정의
union semun {
    int val; // 세마포어 값
    struct semid_ds *buf; // 세마포어 상태 정보
    unsigned short *array; // 세마포어 값 배열
};

// 1)세마포어 생성 및 초기화 함수
int initsem(key_t semkey)
{
    union semun semunarg;
    int status = 0, semid;
    // 세마포어 생성 (IPC_CREAT | IPC_EXCL | 0600 : 생성 전 존재 여부 확인)
    semid = semget(semkey, 1, IPC_CREAT | IPC_EXCL | 0600);
    if (semid == -1)
    {
        // 세마포어가 이미 존재하는 경우
        if (errno == EEXIST)
        semid = semget(semkey, 1, 0); // 기존 세마포어 ID 가져오기
    }
    else
    {
        // 세마포어 초기화 (val = 1)
        semunarg.val = 1;
        status = semctl(semid, 0, SETVAL, semunarg); // 세마포어 값을 1로 설정
    }
    if (semid == -1 || status == -1)
    {
        perror(&quot;initsem&quot;);
        return (-1); // 오류 발생 시 -1 반환
    }

    return semid; // 세마포어 ID 반환
}

// 2)세마포어 연산: 세마포어 락 (잠금) 함수
int semlock(int semid)
{
    struct sembuf buf;

    buf.sem_num = 0; // 첫 번째 세마포어 사용
    buf.sem_op = -1; // 세마포어 값을 감소 (잠금)
    buf.sem_flg = SEM_UNDO; // 프로세스 종료 시 세마포어 원복
    if (semop(semid, &amp;buf, 1) == -1)
    {
      perror(&quot;semlock failed&quot;);
      exit(1); // 오류 발생 시 종료
    }

    return 0;
}

// 2)세마포어 연산: 세마포어 언락 (잠금 해제) 함수
int semunlock(int semid)
{
  struct sembuf buf;

  buf.sem_num = 0; // 첫 번째 세마포어 사용
  buf.sem_op = 1; // 세마포어 값을 증가 (잠금 해제)
  buf.sem_flg = SEM_UNDO;
  if (semop(semid, &amp;buf, 1) == -1)
  {
      perror(&quot;semunlock failed&quot;);
      exit(1); // 오류 발생 시 종료
  }

  return 0;
}

// 3) 세마포어 호출: 세마포어 처리 함수 (각 프로세스에서 호출)
void semhandle()
{
    int semid;
    pid_t pid = getpid(); // 현재 프로세스 ID 가져오기

    semid = initsem(1); // 세마포어 생성 또는 연결
    if (semid &lt; 0)
    {
        exit(1); // 세마포어 초기화 실패 시 종료
    }

    // 세마포어 잠금 (크리티컬 섹션 시작)
    semlock(semid);

    printf(&quot;Lock : Process %d\n&quot;, (int)pid);
    printf(&quot;** Lock Mode : Critical Section\n&quot;);
    sleep(1); // 크리티컬 섹션에서 1초 동안 작업 수행
    printf(&quot;Unlock : Process %d\n&quot;, (int)pid);

    // 세마포어 잠금 해제 (크리티컬 섹션 끝)
    semunlock(semid);

    exit(0); // 프로세스 종료
}

// 4) 메인 코드
int main()
{
    int a;
    // 3개의 자식 프로세스 생성
    for (a = 0; a &lt; 3; a++)
    {
        if (fork() == 0) // 자식 프로세스가 생성되면
        semhandle(); // 세마포어 처리 함수 호출
    }

    return 0;
}</code></pre>
<h3 id="실행화면">실행화면</h3>
<pre><code>Lock : Process 1234
** Lock Mode : Critical Section
Unlock : Process 1234
Lock : Process 1235
** Lock Mode : Critical Section
Unlock : Process 1235
Lock : Process 1236
** Lock Mode : Critical Section
Unlock : Process 1236</code></pre><ul>
<li>위 코드는 세마포어를 사용하여 여러 프로세스가 <strong>동시에</strong> 공유 자원에 접근하지 못하도록 <strong>순서를 정해주는 예제</strong><h4 id="주요-흐름">주요 흐름</h4>
</li>
</ul>
<p>1.세마포어 초기화</p>
<ul>
<li>semget() 함수를 사용하여 세마포어를 생성한다.</li>
<li>세마포어 값은 1로 설정되어, 한 번에 하나의 프로세스만 크리티컬 섹션에 접근할 수 있도록 한다.</li>
</ul>
<ol start="2">
<li>세마포어 잠금</li>
</ol>
<ul>
<li>semop() 함수로 세마포어 값을 -1로 변경하여 잠금을 설정한다.</li>
<li>이를 통해 다른 프로세스가 크리티컬 섹션에 접근하지 못하게 한다.</li>
</ul>
<ol start="3">
<li>세마포어 잠금 해제</li>
</ol>
<ul>
<li>작업이 끝나면 semop() 함수로 세마포어 값을 1로 변경하여 잠금을 해제합니다.</li>
<li>이렇게 하면 대기 중인 다른 프로세스가 크리티컬 섹션에 들어갈 수 있게 된다.</li>
</ul>
<ol start="4">
<li>프로세스 생성</li>
</ol>
<ul>
<li>fork() 함수로 3개의 자식 프로세스를 생성한다.</li>
<li>각 자식 프로세스는 semhandle() 함수를 호출하여 세마포어를 통해 순서대로 크리티컬 섹션에 접근한다.<h4 id="결과">결과</h4>
</li>
<li>각 프로세스는 세마포어를 이용해 순서대로 &quot;크리티컬 섹션&quot;에 접근하고, 1초 동안 작업을 수행한 뒤 순차적으로 잠금을 해제한다.</li>
<li>세마포어 덕분에 여러 프로세스가 동시에 자원을 사용하지 않게 되어, 자원에 대한 충돌이 발생하지 않는다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[ISA: CISC와 RISC]]></title>
            <link>https://velog.io/@sliver_sun/ISA-CISC%EC%99%80RISC</link>
            <guid>https://velog.io/@sliver_sun/ISA-CISC%EC%99%80RISC</guid>
            <pubDate>Mon, 20 Nov 2023 05:27:08 GMT</pubDate>
            <description><![CDATA[<h2 id="isa">ISA</h2>
<hr>
<p>나라마다 언어가 다르듯이 CPU도 이해하고 실행하는 명령어가 다릅니다.
CPU가 이해할 수 있는 명령어들의 모음을 <strong>명령어 집합 구조</strong>(ISA:Instruction Set Architecture)라고 합니다.
따라서 CPU마다 ISA가 다를 수 있습니다.</p>
<h3 id="isa의-역할">ISA의 역할</h3>
<p>ISA의 역할에는 </p>
<table>
<thead>
<tr>
<th align="center">역할</th>
<th align="left">설명</th>
</tr>
</thead>
<tbody><tr>
<td align="center">명령어 집합</td>
<td align="left">CPU가 이해하고 실행할 수 있는 명령어의 종류 규정</td>
</tr>
<tr>
<td align="center">레지스터</td>
<td align="left">레지스터의 수, 종류 및 용도 규정</td>
</tr>
<tr>
<td align="center">명령어 형식</td>
<td align="left">명령어가 어떻게 구성되어 있는지 규정</td>
</tr>
<tr>
<td align="center">명령어 실행 방법</td>
<td align="left">명령어가 어떻게 실행되는지 규정</td>
</tr>
</tbody></table>
<p>등이 있습니다. 여기서 명령어 집합과 명령어 실행 방법에 해당하는 CISC와 RISC에 대해 알아보겠습니다.</p>
<h2 id="cisccomplex-instruction-set-computing">CISC(Complex Instruction Set Computing)?</h2>
<hr>
<h3 id="다양한-명령어들을-활용하는-cpu-설계-방식입니다">다양한 명령어들을 활용하는 CPU 설계 방식입니다.</h3>
<ul>
<li>다양하고 강력한 기능의 명령어 집합을 활용 </li>
<li><blockquote>
<p>명령어의 형태와 크기가 다양한 <strong>가변 길이 명령어</strong> 활용
<img src="https://velog.velcdn.com/images/sliver_sun/post/7a79df54-1ae5-4732-b7c4-e38a5b3a368d/image.png" alt=""></p>
</blockquote>
</li>
</ul>
<p><em>즉, 상대적으로 적은 수의 명령어로도 프로그램 실행 가능</em></p>
<blockquote>
<p>명령어가 작다 = 컴파일된 프로그램의 크기가 작다(메모리를 절약할 수 있음)</p>
</blockquote>
<h4 id="단점">&lt;단점&gt;</h4>
<ul>
<li>활용하는 명령어가 워낙 복잡하고 다양한 기능 제공</li>
<li><blockquote>
<p>명령어의 크기와 실행되기까지의 시간 일정하지 않음</p>
</blockquote>
</li>
</ul>
<p><em>즉, 명령어 파이프라인이 효율적으로 명령어를 처리할 수 없음</em></p>
<blockquote>
<p>명령어 파이프라인 기법을 위한 이상적인 명령어는 다음 그림과 같이 각 단계에 소요되는 시간이(가급적 1클럭으로) 동일해야 함</p>
</blockquote>
<ul>
<li>복잡하고 다양한 명령어 활용 가능, but 대다수의 복잡한 명령어는 사용 빈도 낮음</li>
</ul>
<h2 id="cisc의-한계로-인한-교훈">CISC의 한계로 인한 교훈</h2>
<hr>
<ol>
<li>빠른 처리를 위해 <strong>명령어 파이프라인</strong>을 활용</li>
<li>원활한 파이프라이닝을 위해 <strong>&#39;명령어 길이와 수행 시간 짧고 규격화&#39;</strong></li>
<li><strong>&#39;자주 쓰이는 기본적인 명령어를 작고 빠르게 만드는 것&#39;</strong> 중요</li>
</ol>
<h2 id="riscreduced-instruction-set-computer란">RISC(Reduced Instruction Set Computer)란?</h2>
<hr>
<p>단순하고 적은 수의 <strong>고정 길이 명령어</strong>사용
<img src="https://velog.velcdn.com/images/sliver_sun/post/b33a9d7a-c431-425e-8285-bd9005a36f8d/image.png" alt=""></p>
<ul>
<li>CISC에 비해 명령어의 종류가 적음</li>
<li>CISC와 달리 짧고 규격화된 명령어(되도록 1클럭 내외로 실행되는 명령어 지향)
즉, 명령어 파이프라이닝에 최적화 되어 있음</li>
<li>메모리에 직접 접근하는 명령어(load, store) 두 개로 제한 -&gt; 메모리 접근 단순화 &amp; 최소화 추구</li>
</ul>
<blockquote>
<p>RISC를 load-store 구조라고 부르기도 함</p>
</blockquote>
<h2 id="마무리">마무리</h2>
<hr>
<table>
<thead>
<tr>
<th align="center"></th>
<th align="left">CISC</th>
<th align="left">RISC</th>
</tr>
</thead>
<tbody><tr>
<td align="center">명령어</td>
<td align="left">복잡하고 다양함</td>
<td align="left">단순하고 적음</td>
</tr>
<tr>
<td align="center">명령어 형식</td>
<td align="left">가변 길이 명령어</td>
<td align="left">고정 길이 명령어</td>
</tr>
<tr>
<td align="center">주소 지정 방식</td>
<td align="left">다양함</td>
<td align="left">적음</td>
</tr>
<tr>
<td align="center">명령어의 수</td>
<td align="left">적음</td>
<td align="left">많음</td>
</tr>
<tr>
<td align="center">명령어 수행</td>
<td align="left">여러 클럭에 걸쳐서</td>
<td align="left">1클럭 내외로</td>
</tr>
<tr>
<td align="center">파이프라이닝</td>
<td align="left">어려움</td>
<td align="left">쉬움</td>
</tr>
</tbody></table>
]]></description>
        </item>
        <item>
            <title><![CDATA["대동의 '자율작업 농기계', 업계 최초 자율주행 국가 시험 통과" -한국경제-]]></title>
            <link>https://velog.io/@sliver_sun/%EB%8C%80%EB%8F%99%EC%9D%98-%EC%9E%90%EC%9C%A8%EC%9E%91%EC%97%85-%EB%86%8D%EA%B8%B0%EA%B3%84-%EC%97%85%EA%B3%84-%EC%B5%9C%EC%B4%88-%EC%9E%90%EC%9C%A8%EC%A3%BC%ED%96%89-%EA%B5%AD%EA%B0%80-%EC%8B%9C%ED%97%98-%ED%86%B5%EA%B3%BC-%ED%95%9C%EA%B5%AD%EA%B2%BD%EC%A0%9C-</link>
            <guid>https://velog.io/@sliver_sun/%EB%8C%80%EB%8F%99%EC%9D%98-%EC%9E%90%EC%9C%A8%EC%9E%91%EC%97%85-%EB%86%8D%EA%B8%B0%EA%B3%84-%EC%97%85%EA%B3%84-%EC%B5%9C%EC%B4%88-%EC%9E%90%EC%9C%A8%EC%A3%BC%ED%96%89-%EA%B5%AD%EA%B0%80-%EC%8B%9C%ED%97%98-%ED%86%B5%EA%B3%BC-%ED%95%9C%EA%B5%AD%EA%B2%BD%EC%A0%9C-</guid>
            <pubDate>Thu, 14 Sep 2023 15:54:22 GMT</pubDate>
            <description><![CDATA[<h2 id="기사-링크">기사 링크</h2>
<hr>
<p><a href="https://www.hankyung.com/article/202309141009i">https://www.hankyung.com/article/202309141009i</a></p>
<h2 id="감상문">감상문</h2>
<hr>
<h4 id="저는-기사-첫-제목을-보고-택시나-자가용이-자율주행이-되는-것은-주변에서-많이-들려와서-익숙한데-농기계-자율주행이라고-생각이-들었습니다-대부분의-사람들이-그렇듯이-자율주행-농기계는-생소할-것입니다-농기계의-자율주행이-생소하다보니-기사가-어떤-내용일지-궁금하여-읽어보았습니다-뉴스는-기업-대동이-농기계-자율주행-3단계에-해당하는-자율작업-기능의-직선-및-선회-자율주행-국가-시험을-업계-최초로-통과했다는-내용이었습니다-자동차에게도-자율주행이-단계별로-있듯이-농기계에도-정부-기준에-따라-단계가-있다는-것이-신기하고-놀라웠습니다-그리고-대동은-2019년과-2021년에-1단계-농기계를-선보인-적이-있습니다-대동의-꾸준한-투자로-1단계에서-3단계에-해당하는-기술까지-대단한-것은-대동은-3단계에서-그치지-않고-4단계를-목표로-삼고-있다는-것입니다-이러한-농업과-관련된-기술들을-자동화하게-된다면-농업은-훨씬-편해질-것입니다-하지만-농업이-일자리인-사람은-어떻게-될까요-아마도-농기계가-자율작업을-하긴-하지만-아직까지는-완전하지-않아서-이상이-없는지-이상이-생겼다면-그걸-바로-잡아주는-일자리로-바뀌지-않을까라는-생각이-듭니다-자동화가-이제는-농업-분야에서까지-일어나면서-세상이-점점-편리해지고-있다고-생각했습니다-자동화를-생각하면-농업은-상상조차하지-못했는데-뉴스기사를-보니-신기하고-아-그럴수도-있겠구나라는-생각과-함께-상상의-폭이-넓어진-것같습니다">저는 기사 첫 제목을 보고 &#39;택시나 자가용이 자율주행이 되는 것은 주변에서 많이 들려와서 익숙한데 농기계 자율주행?&#39;이라고 생각이 들었습니다. 대부분의 사람들이 그렇듯이 자율주행 농기계는 생소할 것입니다. 농기계의 자율주행이 생소하다보니 기사가 어떤 내용일지 궁금하여 읽어보았습니다. 뉴스는 기업 대동이 농기계 자율주행 3단계에 해당하는 자율작업 기능의 직선 및 선회 자율주행 국가 시험을 업계 최초로 통과했다는 내용이었습니다. 자동차에게도 자율주행이 단계별로 있듯이 농기계에도 정부 기준에 따라 단계가 있다는 것이 신기하고 놀라웠습니다. 그리고 대동은 2019년과 2021년에 1단계 농기계를 선보인 적이 있습니다. 대동의 꾸준한 투자로 1단계에서 3단계에 해당하는 기술까지 대단한 것은 대동은 3단계에서 그치지 않고 4단계를 목표로 삼고 있다는 것입니다. 이러한 농업과 관련된 기술들을 자동화하게 된다면 농업은 훨씬 편해질 것입니다. 하지만 농업이 일자리인 사람은 어떻게 될까요? 아마도 농기계가 자율작업을 하긴 하지만 아직까지는 완전하지 않아서 이상이 없는지 이상이 생겼다면 그걸 바로 잡아주는 일자리로 바뀌지 않을까라는 생각이 듭니다. 자동화가 이제는 농업 분야에서까지 일어나면서 세상이 점점 편리해지고 있다고 생각했습니다. 자동화를 생각하면 농업은 상상조차하지 못했는데 뉴스기사를 보니 신기하고 &#39;아 그럴수도 있겠구나&#39;라는 생각과 함께 상상의 폭이 넓어진 것같습니다.</h4>
]]></description>
        </item>
        <item>
            <title><![CDATA["응답하는 헬스케어 AI 선보인 네이버, 다음 스텝은?" -청년의사-]]></title>
            <link>https://velog.io/@sliver_sun/%EC%9D%91%EB%8B%B5%ED%95%98%EB%8A%94-%ED%97%AC%EC%8A%A4%EC%BC%80%EC%96%B4-AI-%EC%84%A0%EB%B3%B4%EC%9D%B8-%EB%84%A4%EC%9D%B4%EB%B2%84-%EB%8B%A4%EC%9D%8C-%EC%8A%A4%ED%85%9D%EC%9D%80-%EC%B2%AD%EB%85%84%EC%9D%98%EC%82%AC-</link>
            <guid>https://velog.io/@sliver_sun/%EC%9D%91%EB%8B%B5%ED%95%98%EB%8A%94-%ED%97%AC%EC%8A%A4%EC%BC%80%EC%96%B4-AI-%EC%84%A0%EB%B3%B4%EC%9D%B8-%EB%84%A4%EC%9D%B4%EB%B2%84-%EB%8B%A4%EC%9D%8C-%EC%8A%A4%ED%85%9D%EC%9D%80-%EC%B2%AD%EB%85%84%EC%9D%98%EC%82%AC-</guid>
            <pubDate>Thu, 14 Sep 2023 15:21:03 GMT</pubDate>
            <description><![CDATA[<h2 id="기사-링크">기사 링크</h2>
<hr>
<p><a href="http://www.docdocdoc.co.kr/news/articleView.html?idxno=3006745">http://www.docdocdoc.co.kr/news/articleView.html?idxno=3006745</a></p>
<h2 id="감상문">감상문</h2>
<hr>
<h4 id="최근에-생성형-ai에-대해서-공부를-했었던-적이-있습니다-그래서-이-뉴스를-보는데-배웠던-생성형-ai가-나와서-반가웠습니다-그리고-생성형-ai-공부를-맛보기-식으로-해서-그런지-생성형-ai가-무엇이었는지-다시-한번-생각해보는-시간이기도-했었습니다-또한-생성형-ai가-얼마나-대단한-기술인지-깨달았습니다-그리고-뉴스에서-네이버는-carecall을-해운대에서-시작하는데-케어콜이-사투리를-인식할까를-우려했습니다-하지만-고민할-필요도-없이-carecall은-사투리를-학습하였습니다-거의-대부분의-분야에서-ai를-사용하고-있지만-유독-헬스케어-분야에는-ai를-적용하는-사람이-거의-없습니다-이러한-글을-읽고-저는-생각해보니-정말로-헬스케어에서-ai를-적용했던-적이-별로없구나라고-생각했습니다-헬스케어-분야에-ai적용을-시도해봤던-사람이-없었음에도-불구하고-나군호-소장은-시도하였습니다-저는-나군호-소장이-대단하다고-생각했습니다-ai를-적용시킨-헬스케어가-사회적으로-부담하던-다양한-의료비용도-줄여주는-등의-많은-장점이-있었습니다-저는-생성형-ai가-오류도-많이-없고-사회적-비용도-줄여준다는-장점이-있지만-그래도-어느-한켠에는-단점이-있지않을까-그-단점은-무엇일까라는-생각이-들었습니다-들어보기만-했던-생성형-ai가-다시-한번-대단하다고-느꼈다">최근에 생성형 AI에 대해서 공부를 했었던 적이 있습니다. 그래서 이 뉴스를 보는데 배웠던 생성형 AI가 나와서 반가웠습니다. 그리고 생성형 AI 공부를 맛보기 식으로 해서 그런지 생성형 AI가 무엇이었는지 다시 한번 생각해보는 시간이기도 했었습니다. 또한 생성형 AI가 얼마나 대단한 기술인지 깨달았습니다. 그리고 뉴스에서 네이버는 &#39;CareCall을 해운대에서 시작하는데 케어콜이 사투리를 인식할까?&#39;를 우려했습니다. 하지만 고민할 필요도 없이 CareCall은 사투리를 학습하였습니다. 거의 대부분의 분야에서 AI를 사용하고 있지만 유독 헬스케어 분야에는 AI를 적용하는 사람이 거의 없습니다. 이러한 글을 읽고 저는 &#39;생각해보니 정말로 헬스케어에서 AI를 적용했던 적이 별로없구나&#39;라고 생각했습니다. 헬스케어 분야에 AI적용을 시도해봤던 사람이 없었음에도 불구하고 나군호 소장은 시도하였습니다. 저는 나군호 소장이 대단하다고 생각했습니다. AI를 적용시킨 헬스케어가 사회적으로 부담하던 다양한 의료비용도 줄여주는 등의 많은 장점이 있었습니다. 저는 생성형 AI가 오류도 많이 없고 사회적 비용도 줄여준다는 장점이 있지만 그래도 어느 한켠에는 단점이 있지않을까? 그 단점은 무엇일까?라는 생각이 들었습니다. 들어보기만 했던 생성형 AI가 다시 한번 대단하다고 느꼈다.</h4>
]]></description>
        </item>
    </channel>
</rss>