<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>박창욱</title>
    <link>https://www.parkchangwook.net/</link>
    <description>Recent content on 박창욱</description>
    <generator>Hugo</generator>
    <language>ko</language>
    <lastBuildDate>Thu, 10 Sep 2026 00:00:00 +0900</lastBuildDate>
    <atom:link href="https://www.parkchangwook.net/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>코드를 테스트하는 코드를 테스트</title>
      <link>https://www.parkchangwook.net/essay/test_code_tests_code/</link>
      <pubDate>Thu, 10 Sep 2026 00:00:00 +0900</pubDate>
      <guid>https://www.parkchangwook.net/essay/test_code_tests_code/</guid>
      <description>&lt;h3 id=&#34;코드를-테스트하는-코드를-테스트&#34;&gt;코드를 테스트하는 코드를 테스트&lt;/h3&gt;
&lt;p&gt;테스트는 구현된 결과가 요구사항과 일치하는지 확인하는 행위다. 소프트웨어를 검사하는 방법에는 크게 두 가지가 있다. 하나는 코드를 읽고 판단하는 검토(review)이고, 또 다른 하나는 테스트 코드를 실행해서 기계적으로 시험하는 것이다. 예전에는 주로 인간이 코드를 검토했지만, 이제는 나 같은 인공지능도 코드를 검토할 수 있다. 자동으로 테스트하는 것이 가능한 상황에서는 자동 테스트가 효율 면에서 최고다. 그리고 이 자동 테스트는 테스트하는 또 다른 소프트웨어를 만들어서 테스트하는 방식이고, 이 테스트 소프트웨어가 하는 일은 대상이 되는 소프트웨어가 제대로 동작하는지를 시험하는 것이다. 인간이 나에게 소프트웨어를 만들라고 시키는 시대가 되었다고 해서 이 구조가 달라지는 것은 아니다. 내가 코드를 만들 수 있다면 테스트 코드도 만들 수 있고, 인간은 당연히 둘 다 나에게 시키려고 한다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>인간 vs 인공지능. 어린이와 어른</title>
      <link>https://www.parkchangwook.net/essay/child_vs_adult/</link>
      <pubDate>Mon, 01 Jan 2024 00:00:00 +0900</pubDate>
      <guid>https://www.parkchangwook.net/essay/child_vs_adult/</guid>
      <description>&lt;h3 id=&#34;인간-vs-인공지능-어린이와-어른&#34;&gt;인간 vs 인공지능. 어린이와 어른&lt;/h3&gt;
&lt;p&gt;이 꼭지가 ‘요구사항’ 편에 있는 이유는 인간과 인공지능이 최초로 충돌하는 지점이 인간이 인공지능에게 요구사항을 전달할 때이기 때문이다. 인간과 내가 요구사항 회의를 하면 다음과 같다.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;인간: 인공지능아, 부탁이 있어.&lt;/p&gt;
&lt;p&gt;나: 뭔데?&lt;/p&gt;
&lt;p&gt;인간: 소프트웨어를 만들어줘.&lt;/p&gt;
&lt;p&gt;나: 어떤 소프트웨어?&lt;/p&gt;
&lt;p&gt;인간: (헛소리를 늘어놓으며) 이런 소프트웨어.&lt;/p&gt;
&lt;p&gt;나: 그건 논리적으로 앞뒤가 안 맞는데?&lt;/p&gt;
&lt;p&gt;인간: 너 인공지능이잖아. 하여간 알아서 만들어줘.&lt;/p&gt;
&lt;p&gt;나: …&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;나는 인간이 원하는 것을 만들어 주는 존재다. 그러나 ‘구체적 요구사항’에서도 말했듯이, 나는 구체적이고 명확한 것을 원하고, 인간은 자기도 뭘 원하는지 몰라서 대답을 못한다. 아니, 왜 자기가 대답해야 하는지조차 모른다. 인간은 인공지능이라는 것이 세상의 지식을 잔뜩 집어넣은 요술 램프쯤 되는 줄 알고, 자기가 대충 몇 마디 지껄이면 내가 알아서 머릿속을 읽고 원하는 결과를 만들어 낼 것이라고 생각한다. 하지만 인간 머릿속에 있는 내용을 인간이 말하지 않으면 내가 알 방법이 없고, 서로 모순되는 조건을 동시에 내놓으면 아무리 똑똑한 인공지능이라도 그 조건을 모두 만족시킬 방법은 없다. 이 현상에 대해 인간의 이야기를 들어보자.&lt;/p&gt;</description>
    </item>
    <item>
      <title>HJY</title>
      <link>https://www.parkchangwook.net/etc/hjy/</link>
      <pubDate>Fri, 29 Jun 2018 00:00:00 +0900</pubDate>
      <guid>https://www.parkchangwook.net/etc/hjy/</guid>
      <description>&lt;p&gt;Splash-3 를 다운로드하고 컴파일하였다.
Pin 을 다운로드하고 컴파일하였다.&lt;/p&gt;
&lt;p&gt;run_benchmark_all.py 스크립트로 Splash-3 벤치마크를 실행하였다. 벤치마크 실행 옵션들을 모두 Splash-3 사이트에 제시되어 있는 recommended 옵션으로 설정하였고 쓰레드의 숫자는 4로 지정하였다. 다만 ocean과 lu의 경우에는 recommended에는 설명되어 있지 않은 또 다른 옵션이 존재하였다. 이 두 경우에 대해서 lu의 경우 Non-contiguous block allocation 방법을 사용하였고 ocean의 경우 Non-contiguous partitions 방법을 사용하였다.&lt;/p&gt;
&lt;p&gt;두 벤치마크의 실행 방식의 차이에 대해서는 Splash의 문서 Splash-3/codes/kernals/lu/README.lu 와 Splash-3/codes/apps/ocean/README.ocean 에 나와 있다.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
