<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Insung Hwang</title>
    <description>The latest articles on DEV Community by Insung Hwang (@insung).</description>
    <link>https://dev.to/insung</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1978400%2Fe3a90b30-e0cc-44db-b140-7bba9ea65765.jpg</url>
      <title>DEV Community: Insung Hwang</title>
      <link>https://dev.to/insung</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/insung"/>
    <language>en</language>
    <item>
      <title>7일 만에 파이프라인 구축하다 - Part 1</title>
      <dc:creator>Insung Hwang</dc:creator>
      <pubDate>Fri, 21 Feb 2025 16:07:56 +0000</pubDate>
      <link>https://dev.to/insung/7il-mane-paipeurain-gucughada-part-1-4a39</link>
      <guid>https://dev.to/insung/7il-mane-paipeurain-gucughada-part-1-4a39</guid>
      <description>&lt;p&gt;빌라 전문 부동산 실거래 데이터를 제공하는 사이트인 '빌라노노'를 구축한 지도 벌써 4달이 지났습니다. 그동안 회사 일이 바빠서 '빌라노노'에 신경을 쓰지 못했네요. 그 사이 최신 데이터가 반영되지 않아, 사이트를 방문한 사람들이 아쉬워하지는 않았을까 걱정되었습니다.&lt;/p&gt;

&lt;p&gt;다시 작업을 시작하려고 노트북을 켰습니다. 4달 만에 코드를 보니 너무 난해하게 느껴졌습니다. 최신 데이터를 반영하려고 해도 어디서부터 시작해야 할지 감이 잡히지 않았고, 기존 데이터를 헤치지 않을까 걱정도 되었습니다. 일주일에 한 번씩 '빌라노노' 작업을 하던 시기에는 틈틈이 코드 리팩토링을 많이 했었는데, 지금 보니 최신 데이터를 반영하는데 이렇게 코드 수정을 많이 해야 했나?라는 생각이 들었습니다.&lt;/p&gt;

&lt;p&gt;사실 코드 수정은 30분 정도면 할 수 있는 일이었지만, 이 과정이 지속 가능한 방향인지에 대한 고민이 생기기 시작했습니다. 초기에는 제가 했던 작업들이 지속 가능한 것인 줄 알았는데, 생각이 바뀌게 된 순간이었습니다.&lt;/p&gt;

&lt;p&gt;그래서 파이프라인을 만들기로 결심했습니다. 많은 분들이 아시겠지만 파이프라인 구축 자체는 그리 어려운 일이 아닙니다. 특히 대용량 파이프라인이나 자동화 파이프라인은 더욱 그렇습니다. 하지만 '빌라노노'에서 필요한 것은 대용량도 아니고, 매일매일 업데이트되는 자동화도 아닙니다.&lt;/p&gt;

&lt;p&gt;이제 본격적으로 데이터를 반영하기 위해 고군분투한 이야기들을 풀어보려고 합니다. 7일이라는 짧은 시간 안에 파이프라인을 어떻게 구축했는지, 고민의 과정과 시행착오, 그리고 성공의 순간을 여러분과 나누고자 합니다.&lt;/p&gt;

&lt;p&gt;그리고 '&lt;a href="https://villanono.co.kr/" rel="noopener noreferrer"&gt;빌라노노&lt;/a&gt;' 사이트도 한 번 방문해 보세요!&lt;/p&gt;

</description>
      <category>빌라노노</category>
      <category>파이프라인</category>
    </item>
    <item>
      <title>24시간 만에 (아이와 놀면서) 빌라 실거래가 분석 사이트 구축!</title>
      <dc:creator>Insung Hwang</dc:creator>
      <pubDate>Thu, 10 Oct 2024 12:18:32 +0000</pubDate>
      <link>https://dev.to/insung/24sigan-mane-aiwa-nolmyeonseo-bilra-silgeoraega-bunseog-saiteu-gucug-27a4</link>
      <guid>https://dev.to/insung/24sigan-mane-aiwa-nolmyeonseo-bilra-silgeoraega-bunseog-saiteu-gucug-27a4</guid>
      <description>&lt;p&gt;최근 2주간 한국은 많은 휴일로 가득했습니다. '샌드위치 데이'가 많았죠. 저는 이 시간을 의미 있게 보내고 싶었고, 아이와 함께 시간을 보내야 하니 멀티태스킹이 필요했습니다. 실제로 작업한 시간은 24시간이 채 안 될 겁니다. 이렇게 아이와 놀면서도 데이터 분석 사이트를 만들어보기로 도전했고, 그 결과물을 공유해 보고자 합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk4gsc5mimy0o8js89ux4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk4gsc5mimy0o8js89ux4.png" alt="빌라 실거래가|빌라노노 메인 화면" width="800" height="577"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  빌라노노의 주요 기능
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;2006년부터 현재까지의 빌라 실거래 데이터를 분석하여 사용자들이 쉽게 부동산 시장의 동향을 이해할 수 있도록 돕는 인터랙티브 플랫폼입니다.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;공공 데이터셋을 활용하여 시장 트렌드를 분석하고, 이를 통해 사용자들이 더 나은 의사결정을 내릴 수 있도록 인사이트를 제공합니다.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;이 사이트는 Python 기반으로 Streamlit과 Plotly를 사용하여 빌라 실거래 데이터를 처리하고 시각화합니다.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;사용자는 다양한 데이터 포인트와 트렌드를 쉽게 이해할 수 있도록 설계된 그래프와 차트를 통해 과거 및 현재의 시장 흐름을 한눈에 확인할 수 있습니다.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💡 빌라 실거래 분석 사이트를 만든 배경
&lt;/h2&gt;

&lt;p&gt;저희나라의 부동산 정보를 알려주는 곳은 대표적인 곳은 네이버 부동산, 호갱노노, 아실 이 있습니다. 하지만 이 곳들은 빌라 실거래가에 대한 동향이냐 정보를 찾기가 매우 힘들죠. 사용자들이 빌라 시장을 명확하게 이해하고 더 나은 결정을 내리는 데 도움이 되기를 바라는 마음에서 빌라 실거래 분석 사이트를 만들게 되었습니다.&lt;/p&gt;

&lt;p&gt;직접 사이트를 확인해 보세요! &lt;a href="https://villanono.co.kr" rel="noopener noreferrer"&gt;링크&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;이 프로젝트는 매우 재미있고 보람 있는 작업이었으며, 빌라 시장에 관심 있는 분들에게 가치 있는 도구가 되기를 바랍니다. 앞으로도 꾸준히 계속 업데이트할 예정입니다. 궁금한 점이나 제안할 내용이 있다면 언제든지 연락해 주세요!&lt;/p&gt;

</description>
      <category>빌라</category>
      <category>실거래</category>
      <category>매매</category>
      <category>전세</category>
    </item>
    <item>
      <title>VSCode 에서 공공데이터 한글 깨짐 현상 해결 방법</title>
      <dc:creator>Insung Hwang</dc:creator>
      <pubDate>Thu, 10 Oct 2024 08:53:10 +0000</pubDate>
      <link>https://dev.to/insung/vscode-eseo-gonggongdeiteo-hangeul-ggaejim-hyeonsang-haegyeol-bangbeob-32pb</link>
      <guid>https://dev.to/insung/vscode-eseo-gonggongdeiteo-hangeul-ggaejim-hyeonsang-haegyeol-bangbeob-32pb</guid>
      <description>&lt;p&gt;&lt;strong&gt;공공데이터 포털&lt;/strong&gt;에서 받은 CSV 파일을 VSCode로 열면 &lt;strong&gt;한글이 깨지는 경우&lt;/strong&gt;가 있습니다. VSCode 에서 간단히 한글이 깨지지 않도록 해결할 수 있습니다.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;VSCode 하단 오른쪽의 UTF-8 표시를 클릭합니다.&lt;/li&gt;
&lt;li&gt;Reopen with Encoding을 선택합니다.&lt;/li&gt;
&lt;li&gt;목록에서 EUC-KR 를 선택합니다.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fojyy49gvslmbszxfjlc0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fojyy49gvslmbszxfjlc0.png" alt="VSCode 하단 오른쪽 선택 모습" width="800" height="605"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;이렇게 하면 CSV 파일을 올바른 인코딩으로 열 수 있고, 한글이 정상적으로 표시됩니다. 공공데이터 파일을 다룰 때 인코딩 문제로 어려움을 겪으셨다면, 이 간단한 방법을 통해 한글 깨짐 현상을 해결해 보세요!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc53gaxtkrid5d8o3e12l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc53gaxtkrid5d8o3e12l.png" alt="정상적으로 한글이 표시되는 모습" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>공공데이터</category>
      <category>한글깨짐</category>
      <category>vscode</category>
      <category>파일인코딩</category>
    </item>
    <item>
      <title>Pandas에서 공공데이터 CSV 파일 한글 깨짐 현상 해결하는 법</title>
      <dc:creator>Insung Hwang</dc:creator>
      <pubDate>Wed, 02 Oct 2024 01:18:34 +0000</pubDate>
      <link>https://dev.to/insung/pandas-gonggongdeiteocsv-hwalyongsi-hangeul-ggaejim-hyeonsang-haegyeol-1716</link>
      <guid>https://dev.to/insung/pandas-gonggongdeiteocsv-hwalyongsi-hangeul-ggaejim-hyeonsang-haegyeol-1716</guid>
      <description>&lt;p&gt;&lt;strong&gt;공공데이터 포털&lt;/strong&gt;에서 제공하는 국토교통부 공공데이터를 다운로드해 윈도우 환경에서 열어보면, &lt;strong&gt;한글이 깨지는 현상&lt;/strong&gt;을 볼 수 있습니다. 특히 VScode나 Python으로 파일을 열 때 이런 문제가 발생하는데, 이는 파일 인코딩 설정이 맞지 않기 때문입니다. 보통 Excel로 파일을 열 경우 자동으로 인코딩이 변환되어 깨지지 않지만, Python으로 데이터를 다룰 때는 직접 인코딩을 설정해줘야 합니다.&lt;/p&gt;

&lt;h2&gt;
  
  
  문제 상황
&lt;/h2&gt;

&lt;p&gt;다음은 다세대 전세 실거래가 공공데이터 파일을 VSCode 로 열었을 때 발생하는 한글 깨짐 문제입니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7fjx3uh8lcbc44x24kzu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7fjx3uh8lcbc44x24kzu.png" alt="VSCode 로 열었을 때 한글 깨짐 현상" width="720" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  해결 방법
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;

&lt;span class="n"&gt;inputfile_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;input_file.csv&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;outputfile_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;output_file.csv&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="nb"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;inputfile_path&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;inputfile_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;infile&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;infile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputfile_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;w&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;encoding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;utf-8&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;outfile&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;outfile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="c1"&gt;# 15줄까지는 머리말이라 skip
&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputfile_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;skiprows&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;describe&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;위의 코드를 통해 한글이 깨진 CSV 파일을 utf-8 인코딩으로 다시 저장하고, Pandas로 데이터를 문제 없이 읽어올 수 있습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffq5fx7ie0j7cd4u21nfl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffq5fx7ie0j7cd4u21nfl.png" alt="한글 깨짐 현상 해결" width="800" height="646"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>공공데이터</category>
      <category>한글깨짐</category>
      <category>pandas</category>
      <category>csv</category>
    </item>
  </channel>
</rss>
