<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>K</title>
    <link>https://ksha0628.tistory.com/</link>
    <description>ki1111m2 - Junior Developer</description>
    <language>ko</language>
    <pubDate>Wed, 6 May 2026 15:35:35 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>ki1111m2</managingEditor>
    <image>
      <title>K</title>
      <url>https://tistory1.daumcdn.net/tistory/2989043/attach/ebdfe1893605447a8b51249de1b611ed</url>
      <link>https://ksha0628.tistory.com</link>
    </image>
    <item>
      <title>Flutter 공부를 해봅시다</title>
      <link>https://ksha0628.tistory.com/228</link>
      <description>&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;p data-ke-size=&quot;size16&quot;&gt;텍스트 - Text('hi', style: TextStyle())&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아이콘 - Icon(Icon.shop, color: dd, size: dd)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미지 - Image.assets('knitting.png')&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;박스 - Container( width: 50, height: 50, color: Colors.blue ) or SizedBox&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Container가 더 무거움!&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;왜냐?? 시작점 지정을 안해서 . . .&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;Center(&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; child: 위젯&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;gt; 내 child를 센터로 위치하겠다!! 하는 위젯 ..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비슷한거 많음 Align 위젯 등등&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;child 쓰면 위젯 안에 위젯 가능&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MetrialApp -&amp;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;Scaffold -&amp;gt; 화면 3분할 해주는 위젯 !!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Scaffold(&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; appBar: AppBar(),&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; body: Container(),&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; bottomNavigationBar: BottomAppBar()&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;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;여러 위젯 가로로 배치하려면&amp;nbsp;Row 위젯 !!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Row(&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; children: [&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; Icon(Icons.star), &lt;br /&gt;&amp;nbsp; &amp;nbsp; Icon(Icons.star),&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;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;여러 위젯 세로로 배치하려면 Column 위젯 !!&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;Column&lt;span&gt; &lt;/span&gt;&lt;/span&gt;(&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; children: [&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; Icon(Icons.star),&lt;br /&gt;&amp;nbsp; &amp;nbsp; Icon(Icons.star),&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; ]&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;파라미터 중 mainAxisAlignment 쓰면 정렬 가능&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;반대축은 crossAxisAlignment&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Container 꾸미기&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;width height margin padding decoration(별 꾸미기 다 여기서 함) 등등 ...&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;사이즈 꽉채우기 double.infinity&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;버튼&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;TextButton()&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;IconButton()&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;ElevatedButton()&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;child onPressed(){} 필수!&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;온프레스드는 함수 들어가는 곳&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;로우나 컬럼 안에서 박스들 비율 정하고 싶을 때&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Flexible로 감싸고 파라미터에 flex:3 이런 식으로 넣으면 %로 나누기 가능&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Expanded는 박스 하나 넓게 채울때 쓰면 굿&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Code/Flutter</category>
      <author>ki1111m2</author>
      <guid isPermaLink="true">https://ksha0628.tistory.com/228</guid>
      <comments>https://ksha0628.tistory.com/228#entry228comment</comments>
      <pubDate>Sat, 3 Aug 2024 17:09:09 +0900</pubDate>
    </item>
    <item>
      <title>[LogStash] could not find jruby 오류</title>
      <link>https://ksha0628.tistory.com/227</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #333333; color: #ffffff;&quot;&gt;could not find jruby in D:\ELK\logstash-8.11.3\vendor\jruby\bin\jruby&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;java 문제가 해결되니 jruby 파일을 못찾는다는 에러가 발생했다.&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;해당 폴더 위치로 가보니 vendor 폴더 안에 jruby 폴더는 없었고, bundle 폴더만 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;bundle 폴더 안에 jruby 폴더가 있길래 그 폴더를 밖으로 꺼내도 같은 오류 발생&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;처음 logstash를 다운받고 압축을 2번 풀었었는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음 거는 17개 항목이었고 다음 거는 15개 항목이었다.&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;혹시.. 하는 마음에 새로 다운받아 압축을 풀어보니 17개 항목이 되었고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vendor 폴더 안에 bundle 폴더와 jruby 폴더가 있었다.&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;억울하다 .. 해결됐다 ..&lt;/p&gt;</description>
      <category>DevOps/ELK</category>
      <author>ki1111m2</author>
      <guid isPermaLink="true">https://ksha0628.tistory.com/227</guid>
      <comments>https://ksha0628.tistory.com/227#entry227comment</comments>
      <pubDate>Fri, 15 Dec 2023 10:43:46 +0900</pubDate>
    </item>
    <item>
      <title>[LogStash] could not find java; set JAVA_HOME or ensure java is in PATH 오류</title>
      <link>https://ksha0628.tistory.com/226</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #343541; color: #ececf1; text-align: start;&quot;&gt;&quot;Using system java: &quot;C:\Program Files\Java\jdk-21\bin\java.exe&quot;&quot;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #343541; color: #ececf1; text-align: start;&quot;&gt;The specified path cannot be found.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #343541; color: #ececf1; text-align: start;&quot;&gt;could not find java; set JAVA_HOME or ensure java is in PATH&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;java 설치와 환경 변수 설정은 제대로 되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;java --version 명령어와 javac --version 명령어가 정상적으로 출력 된다.&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;즉 JAVA_HOME 변수는 제대로 설정 되어 있고, java.exe 파일 또한 확실히 존재한다.&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;p data-ke-size=&quot;size16&quot;&gt;elastic search와 kibana는 문제 없이 구동되는데 logstash만 오류가 발생했다.&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;혹시 띄어쓰기를 인식 못하는건가 하는 마음에 Java 폴더의 위치를 옮겼다.&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;C:/Program Files/Java -&amp;gt; C:/Java&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;</description>
      <category>DevOps/ELK</category>
      <author>ki1111m2</author>
      <guid isPermaLink="true">https://ksha0628.tistory.com/226</guid>
      <comments>https://ksha0628.tistory.com/226#entry226comment</comments>
      <pubDate>Fri, 15 Dec 2023 10:39:59 +0900</pubDate>
    </item>
    <item>
      <title>[Javascript] Firefox window.close() 스크립트에 의해 열리지 않은 창을 닫을 수 없습니다.</title>
      <link>https://ksha0628.tistory.com/225</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;window.close() 로 창이 안닫히는건 크롬도 마찬가진 것 같다.&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;pre id=&quot;code_1702537547031&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;window.open('','_self').close();&lt;/code&gt;&lt;/pre&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;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;아래 코드로 해결&lt;/p&gt;
&lt;pre id=&quot;code_1702537554950&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;window.open('about:blank','_self').close();&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 창이 아예 닫히지는 않고 창 내용이 about:blank로 바뀐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 원래 창은 사라지니 된건가?..&lt;/p&gt;</description>
      <category>Code/Javascript</category>
      <author>ki1111m2</author>
      <guid isPermaLink="true">https://ksha0628.tistory.com/225</guid>
      <comments>https://ksha0628.tistory.com/225#entry225comment</comments>
      <pubDate>Thu, 14 Dec 2023 16:06:55 +0900</pubDate>
    </item>
    <item>
      <title>[Kafka] 로컬에서 컨슈머 실행 시 오류 발생 (kafka-console-consumer.bat - Unexpected error handling request RequestHeader)</title>
      <link>https://ksha0628.tistory.com/224</link>
      <description>&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;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;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;kafka-console-consumer.bat&amp;nbsp;--bootstrap-server&amp;nbsp;localhost:9092&amp;nbsp;--topic&amp;nbsp;test&amp;nbsp;--from-beginning&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;강제 종료 후에는 Processed a total of 0 messages 문구가 나타났다.&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;카프카 실행창을 보니 Unexpected error handling request RequestHeader 라는 에러 로그를 확인할 수 있었다.&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;해결 방법은 구독 명령어에 --partition 0 을 붙여 파티션의 개수를 지정해주는 것이다.&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;kafka-console-consumer.bat&amp;nbsp;--bootstrap-server&amp;nbsp;localhost:9092&amp;nbsp;--topic&amp;nbsp;test&amp;nbsp;--from-beginning&amp;nbsp;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;--partition&amp;nbsp;0&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;왜 꼭 지정을 해줘야 하는지는 알 수 없지만, 해당 방법으로 해결했다.&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;파티션의 개수도 영향을 미치는 것 같은데, 0이 아니라 1로 했더니 같은 오류가 발생했다.&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;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/34844209/consumer-not-receiving-messages-kafka-console-new-consumer-api-kafka-0-9&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://stackoverflow.com/questions/34844209/consumer-not-receiving-messages-kafka-console-new-consumer-api-kafka-0-9&lt;/a&gt;&lt;/p&gt;</description>
      <category>DevOps/Kafka</category>
      <author>ki1111m2</author>
      <guid isPermaLink="true">https://ksha0628.tistory.com/224</guid>
      <comments>https://ksha0628.tistory.com/224#entry224comment</comments>
      <pubDate>Wed, 13 Dec 2023 11:42:31 +0900</pubDate>
    </item>
    <item>
      <title>[html/css/js] 바닐라 자바스크립트로 Tap Menu 만들기</title>
      <link>https://ksha0628.tistory.com/223</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://baegofda.tistory.com/179&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://baegofda.tistory.com/179&lt;/a&gt;&lt;/p&gt;</description>
      <category>Code/Javascript</category>
      <author>ki1111m2</author>
      <guid isPermaLink="true">https://ksha0628.tistory.com/223</guid>
      <comments>https://ksha0628.tistory.com/223#entry223comment</comments>
      <pubDate>Fri, 8 Dec 2023 12:22:49 +0900</pubDate>
    </item>
    <item>
      <title>[Javascript] SVG 내 요소 좌표 구하기</title>
      <link>https://ksha0628.tistory.com/222</link>
      <description>&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;p data-ke-size=&quot;size16&quot;&gt;현재 구성은 아래 사진과 같이 전체가 svg가 아니라 일부분만 svg다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(왼쪽의 지도 부분)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;950&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/edqLW3/btsBvnFWaXg/2uRiR7xxpOgsWKkimkIuI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/edqLW3/btsBvnFWaXg/2uRiR7xxpOgsWKkimkIuI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/edqLW3/btsBvnFWaXg/2uRiR7xxpOgsWKkimkIuI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FedqLW3%2FbtsBvnFWaXg%2F2uRiR7xxpOgsWKkimkIuI1%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;1920&quot; height=&quot;950&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;950&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;svg는 지도와 그 위에 좌표에 따라 마커를 표시하고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좌표가 그대로면 좋겠지만.. 지도와 마커는 transform을 이용해서 위치가 변해있는 상태다.&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;현재 상태에서 뷰박스의 0,0은 왼쪽 위, 지도의 0,0은 왼쪽 아래인 상황..&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;p data-ke-size=&quot;size16&quot;&gt;특정 좌표에 transform을 적용한 후의 좌표를 알고싶었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이게 머리로는 이해하고 있는데 말로 설명하기가 잘..;; 암튼 마커의 현재 좌표를 알고 싶은 것..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 알고 있는 좌표에 transform을 적용하면 나오는 좌표를 알고싶다..라는 것..&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;&lt;a href=&quot;https://www.sitepoint.com/how-to-translate-from-dom-to-svg-coordinates-and-back-again/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.sitepoint.com/how-to-translate-from-dom-to-svg-coordinates-and-back-again/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1701925235258&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;How to Translate from DOM to SVG Coordinates and Back Again &amp;mdash; SitePoint&quot; data-og-description=&quot;Mix DOM and vector interactions in SVG, translating from SVG to DOM coordinates and back, and translating to transformed SVG coordinates.&quot; data-og-host=&quot;www.sitepoint.com&quot; data-og-source-url=&quot;https://www.sitepoint.com/how-to-translate-from-dom-to-svg-coordinates-and-back-again/&quot; data-og-url=&quot;https://www.sitepoint.com/how-to-translate-from-dom-to-svg-coordinates-and-back-again/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/u9Ubu/hyUIqieHDQ/yIWf6GwxmErzAspuN3cvHK/img.jpg?width=1900&amp;amp;height=1000&amp;amp;face=0_0_1900_1000,https://scrap.kakaocdn.net/dn/DiSrP/hyUIr2uLbp/mua70XaPcSM1y8192RUcx1/img.jpg?width=1900&amp;amp;height=1000&amp;amp;face=0_0_1900_1000&quot;&gt;&lt;a href=&quot;https://www.sitepoint.com/how-to-translate-from-dom-to-svg-coordinates-and-back-again/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.sitepoint.com/how-to-translate-from-dom-to-svg-coordinates-and-back-again/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/u9Ubu/hyUIqieHDQ/yIWf6GwxmErzAspuN3cvHK/img.jpg?width=1900&amp;amp;height=1000&amp;amp;face=0_0_1900_1000,https://scrap.kakaocdn.net/dn/DiSrP/hyUIr2uLbp/mua70XaPcSM1y8192RUcx1/img.jpg?width=1900&amp;amp;height=1000&amp;amp;face=0_0_1900_1000');&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;How to Translate from DOM to SVG Coordinates and Back Again &amp;mdash; SitePoint&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Mix DOM and vector interactions in SVG, translating from SVG to DOM coordinates and back, and translating to transformed SVG coordinates.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.sitepoint.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;
&lt;p data-ke-size=&quot;size16&quot;&gt;화면의 DOM 좌표를 svg의 viewbox에 대조해서 해당 위치의 좌표로 변환해주는 내용 ..!!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;546&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Qk1VR/btsByzr4dk3/RLDKO6ODUQkMCFXd2kThXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Qk1VR/btsByzr4dk3/RLDKO6ODUQkMCFXd2kThXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Qk1VR/btsByzr4dk3/RLDKO6ODUQkMCFXd2kThXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQk1VR%2FbtsByzr4dk3%2FRLDKO6ODUQkMCFXd2kThXk%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;786&quot; height=&quot;546&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;546&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;pre id=&quot;code_1701925427497&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var svg = document.getElementById(&quot;svg&quot;);
var current_cord = document.getElementById(target_name).getBoundingClientRect();
var pt = svg.createSVGPoint();
pt.x = current_cord.x
pt.y = current_cord.y
const svgP = pt.matrixTransform( svg.getScreenCTM().inverse() );&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;var&amp;nbsp;svg&amp;nbsp;=&amp;nbsp;document.getElementById(&quot;svg&quot;);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;var&amp;nbsp;current_cord&amp;nbsp;=&amp;nbsp;document.getElementById(target_name).getBoundingClientRect();&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좌표를 구하고 싶은 타겟의 DOM 좌표를 구함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;var&amp;nbsp;pt&amp;nbsp;=&amp;nbsp;svg.createSVGPoint(); &lt;br /&gt;pt.x&amp;nbsp;=&amp;nbsp;current_cord.x &lt;br /&gt;pt.y&amp;nbsp;=&amp;nbsp;current_cord.y&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;const&amp;nbsp;svgP&amp;nbsp;=&amp;nbsp;pt.matrixTransform(&amp;nbsp;svg.getScreenCTM().inverse()&amp;nbsp;);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;화면에서 svg가 차지하는 비율에 따라 트랜스폼을 연산해줌&lt;/p&gt;</description>
      <category>Code/Javascript</category>
      <author>ki1111m2</author>
      <guid isPermaLink="true">https://ksha0628.tistory.com/222</guid>
      <comments>https://ksha0628.tistory.com/222#entry222comment</comments>
      <pubDate>Thu, 7 Dec 2023 14:07:14 +0900</pubDate>
    </item>
    <item>
      <title>[Javascript/Html] SVG 요소에 입력은 됐으나 화면에 출력되지 않을 때 ( createElement / createElementNS )</title>
      <link>https://ksha0628.tistory.com/221</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Javascript를 이용하여 html에 svg 요소를 추가하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;F12를 이용하여 요소를 확인했을 때, 요소에는 원하는 대로 추가되었지만 화면에 나타나지 않는 현상이 발생했다.&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;createElement를 이용해서 요소를 추가했는데, createElementNS로 바꾼 후 해결되었다.&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;createElementNS는 지정된 네임스페이스 URL과 적합한 이름으로 element를 만든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SVG는 XHTML 언어이므로 동적으로 생성할때는 createElement를 사용하면 안되고 createElementNS를 사용해야 한다.&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;네임스페이스 URL를 지정하지 않고 element를 만들 때는 createElement 메소드를 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;createElement를 이용해서 동적 삽입할 경우, 개발자 도구의 태그에는 추가된 것으로 보이지만 실제로 화면에 그려지지는 않는다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 코드&lt;/p&gt;
&lt;pre id=&quot;code_1700444892315&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let url = &quot;http://127.0.0.1:20220/layer1&quot;;

var httpRequest;
httpRequest = new XMLHttpRequest();

httpRequest.open(&quot;GET&quot;, url);
httpRequest.send();
httpRequest.onreadystatechange = () =&amp;gt; {
    if (httpRequest.readyState === XMLHttpRequest.DONE) {
            if (httpRequest.status === 200) {
                var svg_receive = httpRequest.responseText;
                const div = document.getElementById(&quot;map&quot;);
                div.innerHTML = svg_receive;
                const svg = div.querySelector(&quot;#map svg&quot;);
                svg.setAttribute(&quot;id&quot;, &quot;svg&quot;);

                const defs = document.createElement(`defs`)
                svg.appendChild(defs)

                const imageTwoWheeler = document.createElement(`image`)
                defs.appendChild(imageTwoWheeler)
                settingAttribute(imageTwoWheeler, &quot;TwoWheeler&quot;)

                const imagePedestrian = document.createElement(`image`)
                defs.appendChild(imagePedestrian)
                settingAttribute(imagePedestrian, &quot;Pedestrian&quot;)

                const imageVehicle = document.createElement(`image`)
                defs.appendChild(imageVehicle)
                settingAttribute(imageVehicle, &quot;Vehicle&quot;)

                const marker = document.createElement(`g`)
                svg.appendChild(marker)
                marker.setAttribute('id', &quot;markers&quot;)


                let [x, y, width, height] = svg.getAttribute('viewBox').split(' ').map(Number);
                const test_circle = document.createElement('circle')
                svg.appendChild(test_circle)
                test_circle.setAttribute('cx', x)
                test_circle.setAttribute('cy', y)
                test_circle.setAttribute('r', 0.001)
                test_circle.setAttribute(&quot;visibility&quot;, &quot;visible&quot;);



                window.addEventListener(&quot;DOMContentLoaded&quot;, zoom(svg))
                window.addEventListener(&quot;DOMContentLoaded&quot;, drag(svg))
            } else {
                alert(&quot;Layer 1 Request Error!&quot;);
            }
    }
};&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;/p&gt;
&lt;pre id=&quot;code_1700444909475&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let url = &quot;http://127.0.0.1:20220/layer1&quot;;

var httpRequest;
httpRequest = new XMLHttpRequest();

httpRequest.open(&quot;GET&quot;, url);
httpRequest.send();
httpRequest.onreadystatechange = () =&amp;gt; {
    if (httpRequest.readyState === XMLHttpRequest.DONE) {
            if (httpRequest.status === 200) {
                var svg_receive = httpRequest.responseText;
                const div = document.getElementById(&quot;map&quot;);
                div.innerHTML = svg_receive;
                const svg = div.querySelector(&quot;#map svg&quot;);
                svg.setAttribute(&quot;id&quot;, &quot;svg&quot;);

                const transform = svg.querySelector(&quot;g&quot;).getAttribute('transform')

                const defs = document.createElementNS('http://www.w3.org/2000/svg', 'defs');
                svg.appendChild(defs);

                const imageTwoWheeler = document.createElement(`image`);
                defs.appendChild(imageTwoWheeler);
                settingAttribute(imageTwoWheeler, &quot;TwoWheeler&quot;, transform);

                const imagePedestrian = document.createElement(`image`);
                defs.appendChild(imagePedestrian);
                settingAttribute(imagePedestrian, &quot;Pedestrian&quot;, transform);


                const imageVehicle = document.createElement(`image`);
                defs.appendChild(imageVehicle);
                settingAttribute(imageVehicle, &quot;Vehicle&quot;, transform);


                const marker = document.createElementNS('http://www.w3.org/2000/svg', 'g');
                svg.appendChild(marker);
                marker.setAttribute('id', &quot;markers&quot;);


                let [x, y, width, height] = svg.getAttribute('viewBox').split(' ').map(Number);
                const test_circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
                svg.appendChild(test_circle);
                test_circle.setAttribute('cx', x);
                test_circle.setAttribute('cy', y);
                test_circle.setAttribute('r', 0.001);



                window.addEventListener(&quot;DOMContentLoaded&quot;, zoom(svg));
                window.addEventListener(&quot;DOMContentLoaded&quot;, drag(svg));
            } else {
                alert(&quot;Layer 1 Request Error!&quot;);
            }
    }
};&lt;/code&gt;&lt;/pre&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;ChatGPT&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://velog.io/@wheezy_han/JS-Document.createElementNS-%EB%9E%80&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://velog.io/@wheezy_han/JS-Document.createElementNS-%EB%9E%80&lt;/a&gt;&lt;/p&gt;</description>
      <category>Code/Javascript</category>
      <author>ki1111m2</author>
      <guid isPermaLink="true">https://ksha0628.tistory.com/221</guid>
      <comments>https://ksha0628.tistory.com/221#entry221comment</comments>
      <pubDate>Mon, 20 Nov 2023 10:55:18 +0900</pubDate>
    </item>
    <item>
      <title>[Javascript] AJAX 이용한 API 통신 (바닐라 JS)</title>
      <link>https://ksha0628.tistory.com/220</link>
      <description>&lt;pre id=&quot;code_1699920323428&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;window.onload = function () {
	var httpRequest;
	/* button이 클릭되었을때 이벤트 */
	document.getElementById(&quot;ajaxCall&quot;).addEventListener(&quot;click&quot;, () =&amp;gt; {
		/* textBox에 작성된 name 데이터를 가져옴 */
		var inputName = document.getElementById(&quot;inputName&quot;).value;
		/* 통신에 사용 될 XMLHttpRequest 객체 정의 */
		httpRequest = new XMLHttpRequest();
		/* Get 방식으로 name 파라미터와 함께 요청 */
		let url = &quot;http://127.0.0.1:9000/data/&quot; + inputName;
		console.log(url);
		httpRequest.open(&quot;GET&quot;, url);
		/* Response Type을 Json으로 사전 정의 */
		httpRequest.responseType = &quot;json&quot;;
		/* 정의된 서버에 요청을 전송 */
		httpRequest.send();

		/* httpRequest의 readyState가 변화했을때 함수 실행 */
		httpRequest.onreadystatechange = () =&amp;gt; {
		/* readyState가 Done이고 응답 값이 200일 때, 받아온 response를 출력 */
		if (httpRequest.readyState === XMLHttpRequest.DONE) {
			if (httpRequest.status === 200) {
			var result = httpRequest.response;
			console.log(result);
			document.getElementById(&quot;test_data&quot;).innerText = result;

			const get_data = document.createElement(&quot;p&quot;);
			get_data.append(result.name);
			document.getElementById(&quot;test_add&quot;).appendChild(get_data);
			} else {
			alert(&quot;Request Error!&quot;);
			}
		}
		};
	});
};&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;url 설정시 localhost 이용하면 접속 안됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;127.0.0.1 이용할 것&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;if문 사용시 readState DONE -&amp;gt; status 200 2개 거쳐야함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안하면 결과 3번씩 반복 호출됨&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;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://kim-oriental.tistory.com/12&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://kim-oriental.tistory.com/12&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Code/Javascript</category>
      <author>ki1111m2</author>
      <guid isPermaLink="true">https://ksha0628.tistory.com/220</guid>
      <comments>https://ksha0628.tistory.com/220#entry220comment</comments>
      <pubDate>Tue, 14 Nov 2023 09:05:53 +0900</pubDate>
    </item>
    <item>
      <title>[Javascript] from origin 'null' has been blocked by CORS Policy</title>
      <link>https://ksha0628.tistory.com/219</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;463&quot; data-origin-height=&quot;88&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dmq2Ln/btsAeCwv4I3/onyvopedzmvxvynqfWzY1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dmq2Ln/btsAeCwv4I3/onyvopedzmvxvynqfWzY1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dmq2Ln/btsAeCwv4I3/onyvopedzmvxvynqfWzY1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdmq2Ln%2FbtsAeCwv4I3%2FonyvopedzmvxvynqfWzY1K%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;463&quot; height=&quot;88&quot; data-origin-width=&quot;463&quot; data-origin-height=&quot;88&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;457&quot; data-origin-height=&quot;442&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DgKms/btsAc4s7Ugb/sKZqdymVjEHlRU4KuSgaF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DgKms/btsAc4s7Ugb/sKZqdymVjEHlRU4KuSgaF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DgKms/btsAc4s7Ugb/sKZqdymVjEHlRU4KuSgaF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDgKms%2FbtsAc4s7Ugb%2FsKZqdymVjEHlRU4KuSgaF0%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;457&quot; height=&quot;442&quot; data-origin-width=&quot;457&quot; data-origin-height=&quot;442&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;432&quot; data-origin-height=&quot;606&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EPi9S/btsz9AsZBpm/QKRfCoIKV75nSfKxgzRvcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EPi9S/btsz9AsZBpm/QKRfCoIKV75nSfKxgzRvcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EPi9S/btsz9AsZBpm/QKRfCoIKV75nSfKxgzRvcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEPi9S%2Fbtsz9AsZBpm%2FQKRfCoIKV75nSfKxgzRvcK%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;432&quot; height=&quot;606&quot; data-origin-width=&quot;432&quot; data-origin-height=&quot;606&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;span style=&quot;background-color: #dddddd;&quot;&gt;--disable-web-security --disable-gpu --user-data-dir=~/tmp&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;&quot;C:\Program&amp;nbsp;Files\Google\Chrome\Application\chrome.exe&quot;&amp;nbsp;--disable-web-security&amp;nbsp;--disable-gpu&amp;nbsp;--user-data-dir=~/tmp&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;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;관리자 권한으로 실행하기 싫다면?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;--user-data-dir=~/tmp 제거&lt;span style=&quot;background-color: #fefefe; color: #000000; 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;&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;&lt;a href=&quot;https://i5i5.tistory.com/935&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://i5i5.tistory.com/935&lt;/a&gt;&lt;/p&gt;</description>
      <category>Code/Javascript</category>
      <author>ki1111m2</author>
      <guid isPermaLink="true">https://ksha0628.tistory.com/219</guid>
      <comments>https://ksha0628.tistory.com/219#entry219comment</comments>
      <pubDate>Mon, 13 Nov 2023 13:49:18 +0900</pubDate>
    </item>
  </channel>
</rss>