<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>엉금엉금 개발</title>
    <link>https://haydencho.tistory.com/</link>
    <description>  내가 보려고 올리는 블로그
...  멈추지만 말고 끝까지</description>
    <language>ko</language>
    <pubDate>Wed, 3 Jun 2026 14:14:47 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Sol_Cho</managingEditor>
    <image>
      <title>엉금엉금 개발</title>
      <url>https://tistory1.daumcdn.net/tistory/7156159/attach/7bfb5493a9504453967b2f2610301b1f</url>
      <link>https://haydencho.tistory.com</link>
    </image>
    <item>
      <title>[리눅스/우분투] 명령어 정리(4) - chmod, chown (권한 관리)</title>
      <link>https://haydencho.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%9A%B0%EB%B6%84%ED%88%AC-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC4-chmod-chown-%EA%B6%8C%ED%95%9C-%EA%B4%80%EB%A6%AC</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt; 각 명령어의 옵션들은 명령어 따로 옵션 따로 외우는 게 아니라 한 덩어리로 외우자! &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;rarr; 전부 알고 있기는 어렵고 많이 쓰는 것 위주로 외워놓기 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;rarr; 옵션이 명령어마다 다르긴 하지만 비슷한 부분이 많음 ex) -a: all / -t: 시간 관련&lt;/blockquote&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt; 옵션은 여러개를 한번에 쓸 수도 있다. ex) ls -altr&lt;/blockquote&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt; 파일 권한에 대한 이해&lt;/span&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image (5).png&quot; data-origin-width=&quot;817&quot; data-origin-height=&quot;222&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Cetl1/dJMcabYEfux/g0oqknRaMlPqxAlrqIBFsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Cetl1/dJMcabYEfux/g0oqknRaMlPqxAlrqIBFsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Cetl1/dJMcabYEfux/g0oqknRaMlPqxAlrqIBFsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCetl1%2FdJMcabYEfux%2Fg0oqknRaMlPqxAlrqIBFsk%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;780&quot; height=&quot;212&quot; data-filename=&quot;image (5).png&quot; data-origin-width=&quot;817&quot; data-origin-height=&quot;222&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;파일 정보 | 사용자(소유자) | 그룹명 | 파일 크기 | 날짜 | 이름&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;파일 권한 정보: [파일, 디렉토리 여부(1)]/[Owner 권한(3)]/[Group 권한(3)]/[Other 권한(3)]
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;ex) -rw-r--r--
&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;/li&gt;
&lt;li&gt;각각의 권한들은 비트로 표현 &amp;rarr; 0~7
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;읽기=4 / 쓰기=2 / 실행=1&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;span style=&quot;background-color: #f6e199;&quot;&gt;권한을 읽을 때는 세개의 숫자로 표현! (보통 644 아니면 755를 많이 사용) ex) -rw-r--r-- &amp;rarr; 644&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;span style=&quot;background-color: #f6e199;&quot;&gt;실행을 위해서는 읽을 줄 알아야 한다! &amp;rArr; r과 x는 같이 부여&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt; chmod &lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1779636059192&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ chmod [부여할 권한] [권한을 변경할 파일/디렉토리]
$ chmod u+rwx g+rx o+rx test

# 많이 사용
$ chmod 644 [텍스트 파일] (-R)
$ chmod 755 [실행 파일] (-R)
$ chmod 600 [비밀읽기 파일] (-R)&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;`-R`: 하위 파일까지 권한 변경을 위해서 사용(권한은 중요하기 때문에 대문자)&lt;/li&gt;
&lt;li&gt;755와 644를 가장 많이 쓴다.
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;755: 디렉터리/실행 파일 표준&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;644: 일반 텍스트 문서 표준&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;읽어야 실행 가능 &amp;rarr; 실행(1)만 권한을 갖는 경우는 거의 없다.&lt;/li&gt;
&lt;li&gt;쓰는 것은 변경(수정)이 가능하다는 뜻 &amp;rarr; root 계정만 갖도록 하자&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt; &lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;⚠️`-R` 옵션으로 권한 변경을 진행할 경우, &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #666666; text-align: left;&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;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt; chown &lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1779636245215&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ chown [user] [파일명]          # 소유자만 변경
$ chown [user]:[group] [파일명]  # 소유자와 그룹을 동시에 변경
$ chown :[group] [파일명]        # 그룹만 변경&lt;/code&gt;&lt;/pre&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;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt; chmod와 chown은 거의 항상 관리자 권한(sudo)과 함께 사용해야 한다&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;rarr; 악의적인 사용자가 함부로 소유권(권한)을 넘기는 것을 방지&lt;/blockquote&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;</description>
      <category>인프라(Infrastructure)/리눅스(Linux)</category>
      <category>chmod</category>
      <category>chown</category>
      <category>Linux</category>
      <category>ubuntu</category>
      <category>리눅스</category>
      <category>우분투</category>
      <author>Sol_Cho</author>
      <guid isPermaLink="true">https://haydencho.tistory.com/15</guid>
      <comments>https://haydencho.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%9A%B0%EB%B6%84%ED%88%AC-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC4-chmod-chown-%EA%B6%8C%ED%95%9C-%EA%B4%80%EB%A6%AC#entry15comment</comments>
      <pubDate>Mon, 25 May 2026 00:27:27 +0900</pubDate>
    </item>
    <item>
      <title>[리눅스/우분투] 명령어 정리(3) - cat, file, tail, grep, find</title>
      <link>https://haydencho.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%9A%B0%EB%B6%84%ED%88%AC-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC3-cat-file-tail-grep-find</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt; 각 명령어의 옵션들은 명령어 따로 옵션 따로 외우는 게 아니라 한 덩어리로 외우자! &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;rarr; 전부 알고 있기는 어렵고 많이 쓰는 것 위주로 외워놓기 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;rarr; 옵션이 명령어마다 다르긴 하지만 비슷한 부분이 많음 ex) -a: all / -t: 시간 관련&lt;/blockquote&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt; 옵션은 여러개를 한번에 쓸 수도 있다. ex) ls -altr&lt;/blockquote&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;cat&lt;/span&gt;&lt;/h3&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;$ cat [파일명]            # 파일 내용 출력
$ cat -n [파일명]         # 각 줄의 번호도 함께 출력 (코드 리뷰 시 유용)
$ cat [기존 파일] &amp;gt; [새로운 파일]   # 파일 복사
$ cat [파일1] &amp;gt;&amp;gt; [파일2]           # 파일1의 값을 파일2에 누적&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;파일의 내용을 화면에 그대로 출력하거나 여러 개의 텍스트 파일을 하나로 병합(concatenate)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;&lt;/code&gt;: 파일 출력 방향을 틀어서 저장 (history에서도 사용)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt;: 값을 누적&lt;/li&gt;
&lt;li&gt;`&amp;gt;`&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;는 덮어쓰기, `&amp;gt;&amp;gt;`&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;는 같은 값도 중복 누적&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;file&lt;/span&gt;&lt;/h3&gt;
&lt;pre class=&quot;gams&quot;&gt;&lt;code&gt;$ file [파일명]&lt;/code&gt;&lt;/pre&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&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image (4).png&quot; data-origin-width=&quot;741&quot; data-origin-height=&quot;142&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNi0rV/dJMcadhQCT3/KMNxtYypaWTtP9K7kSrRhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNi0rV/dJMcadhQCT3/KMNxtYypaWTtP9K7kSrRhk/img.png&quot; data-alt=&quot;file 사용 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNi0rV/dJMcadhQCT3/KMNxtYypaWTtP9K7kSrRhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNi0rV%2FdJMcadhQCT3%2FKMNxtYypaWTtP9K7kSrRhk%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;491&quot; height=&quot;94&quot; data-filename=&quot;image (4).png&quot; data-origin-width=&quot;741&quot; data-origin-height=&quot;142&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;file 사용 결과&lt;/figcaption&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;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;tail&lt;/span&gt;&lt;/h3&gt;
&lt;pre class=&quot;gams&quot;&gt;&lt;code&gt;$ tail server.log
$ tail -n 15 /etc/passwd&lt;/code&gt;&lt;/pre&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;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;code&gt;-n&lt;/code&gt;: 출력 개수 지정&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-f&lt;/code&gt;: 실시간 모니터링&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  서버 환경에서 실시간으로 생성되는 로그 파일을 모니터링할 때 가장 빈번하게 사용되는 핵심 관제 도구&lt;br /&gt;`$ sudo tail -f /var/log/syslog`&lt;/p&gt;
&lt;/blockquote&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;grep&lt;/span&gt;&lt;/h3&gt;
&lt;pre class=&quot;vim&quot;&gt;&lt;code&gt;$ grep &quot;찾을 단어&quot; [파일명]
$ sudo grep &quot;Fail&quot; /var/log/*
$ grep -r &quot;sshd&quot; /etc/
$ sudo cat auth.log | grep -i &quot;sudo&quot; | grep -v &quot;solcho&quot;&lt;/code&gt;&lt;/pre&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;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;code&gt;-r&lt;/code&gt;&lt;/b&gt;: 현재 디렉토리뿐만 아니라 모든 하위 디렉토리의 파일까지 확인&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;code&gt;-i&lt;/code&gt;&lt;/b&gt;: 대소문자 구분 없이 검색&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-v&lt;/code&gt;: 지정한 패턴이 포함되지 않은 줄만 출력 (특정 단어 제외 필터링) &amp;rarr; 단독보다 중첩으로 쓸 때 주로 사용&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-n&lt;/code&gt;: 검색된 결과가 원본 파일의 몇 번째 줄인지 행 번호를 함께 출력&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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;size18&quot;&gt;&lt;b&gt;실무 핵심: 파이프라인(&lt;code&gt;|&lt;/code&gt;)과 함께 쓰기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발자나 서버 엔지니어가 하루에도 수십 번씩 사용. &lt;code&gt;grep&lt;/code&gt; 결과를 다른 명령어의 인자로 넘겨 2차 가공할 때 유용&lt;/p&gt;
&lt;pre class=&quot;vim&quot;&gt;&lt;code&gt;$ ps -ef | grep nginx                          # 특정 프로세스 찾기
$ history | grep ssh                           # 과거 실행한 명령어 찾기
$ cat app.log | grep &quot;error&quot; | grep -v &quot;timeout&quot;  # 다중 필터링: error 중 timeout 제외&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  관리자 권한으로 접근한 유저가 있는지 확인&lt;br /&gt;&lt;code&gt;grep &quot;:0:&quot; /etc/passwd&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;find&lt;/span&gt;&lt;/h3&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;$ find [기준 디렉토리] [검색 조건] [수행할 액션]
$ find /etc -name &quot;pass*&quot;          # etc 디렉토리에서 pass로 시작하는 파일 검색
$ find ./ -name ssh_config -print  # ssh_config 파일의 경로 출력&lt;/code&gt;&lt;/pre&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: circle;&quot; data-ke-list-type=&quot;circle&quot;&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;li&gt;주요 옵션
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;code&gt;-type [f/d/l]&lt;/code&gt;&lt;/b&gt;: f(일반 파일), d(디렉토리), l(심볼릭 링크)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-size&lt;/code&gt;: 파일 크기로 검색&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-mtime&lt;/code&gt;: 수정된 날짜 기준 검색 &amp;rarr; 프로젝트 진행 시 유용&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-perm&lt;/code&gt;: 접근 권한을 가진 파일 검색 &amp;rarr; 백도어 탐지 가능 (침입자가 재접근을 위해 관리자 권한 쉘을 심어두는 것)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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;b&gt;실무 핵심&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;elm&quot;&gt;&lt;code&gt;$ find /var/www -type f -perm 777 -exec chmod 644 {} \;&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;-exec&lt;/code&gt;: 찾아낸 파일에 즉시 명령 내리기 (파이프 없이 바로 사용)&lt;/li&gt;
&lt;li&gt;명령어가 끝났다는 의미로 &lt;code&gt;{} \;&lt;/code&gt;를 끝에 반드시 작성&lt;/li&gt;
&lt;/ul&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;</description>
      <category>인프라(Infrastructure)/리눅스(Linux)</category>
      <category>cat</category>
      <category>File</category>
      <category>find</category>
      <category>grep</category>
      <category>Linux</category>
      <category>Tail</category>
      <category>ubuntu</category>
      <category>리눅스</category>
      <category>우분투</category>
      <author>Sol_Cho</author>
      <guid isPermaLink="true">https://haydencho.tistory.com/14</guid>
      <comments>https://haydencho.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%9A%B0%EB%B6%84%ED%88%AC-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC3-cat-file-tail-grep-find#entry14comment</comments>
      <pubDate>Sun, 24 May 2026 17:45:37 +0900</pubDate>
    </item>
    <item>
      <title>[리눅스/우분투] 명령어 정리(2) - man, history</title>
      <link>https://haydencho.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%9A%B0%EB%B6%84%ED%88%AC-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC2-man-history</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt; 각 명령어의 옵션들은 명령어 따로 옵션 따로 외우는 게 아니라 한 덩어리로 외우자! &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;rarr; 전부 알고 있기는 어렵고 많이 쓰는 것 위주로 외워놓기 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;rarr; 옵션이 명령어마다 다르긴 하지만 비슷한 부분이 많음 ex) -a: all / -t: 시간 관련&lt;/blockquote&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt; 옵션은 여러개를 한번에 쓸 수도 있다. ex) ls -altr&lt;/blockquote&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt; man &lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1779610096443&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ man [명령어]&lt;/code&gt;&lt;/pre&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: circle;&quot; data-ke-list-type=&quot;circle&quot;&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;섹션 번호를 통해 명령어부터 시스템 코르 시스템 관련 명령어 등 다양한 내용을 볼 수 있음(근데 그냥 섹션 1.명령어만 잘 사용하고 나머지는 구글링 하는 경우도 많음)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;man 한글 출력&lt;/h4&gt;
&lt;pre id=&quot;code_1779610257488&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ sudo apt-get install manpages-ko manpages-ko-extra
$ sudo update-locale LANG=ko_KR.UTF-8&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: start;&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;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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt; history &lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1779610426517&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ history 
$ history 10   # 최근에 실행한 10개의 명령어만 출력
$ history -c   # 현재 멤모리에 있는 명령어 기록 삭제
$ history -w   # 현재까지의 기록을 파일(~/.bash_history)에 저장
$ history &amp;gt; [파일명]  # 모든 히스토리를 파일로 저장&lt;/code&gt;&lt;/pre&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;-w: 현재까지의 기록을 저장
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;원래는 로그아웃을 할 때 저장됨&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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;/h4&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;![숫자]: history 목록에서 숫자 번째에 해당하는 명령어를 재실행&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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;개인적으로 실습 중에 ![시작 명령어]를 제일 많이 썼다. &lt;br /&gt;특히 vi 편집기를 사용하면서부터는 !vi를 밥먹듯이 썼음.. 잘 기억해두자&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;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;</description>
      <category>인프라(Infrastructure)/리눅스(Linux)</category>
      <category>History</category>
      <category>Linux</category>
      <category>man</category>
      <category>man 한국어</category>
      <category>man 한글</category>
      <category>ubuntu</category>
      <category>리눅스</category>
      <category>우분투</category>
      <author>Sol_Cho</author>
      <guid isPermaLink="true">https://haydencho.tistory.com/13</guid>
      <comments>https://haydencho.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%9A%B0%EB%B6%84%ED%88%AC-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC2-man-history#entry13comment</comments>
      <pubDate>Sun, 24 May 2026 17:17:13 +0900</pubDate>
    </item>
    <item>
      <title>[리눅스/우분투] 명령어 정리(1) - ls, cd, pwd, touch, mkdir, rm, cp, mv</title>
      <link>https://haydencho.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%9A%B0%EB%B6%84%ED%88%AC-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC1-ls-cd-pwd-touch-mkdir-rm-cp-mv</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt; 각 명령어의 옵션들은 명령어 따로 옵션 따로 외우는 게 아니라 한 덩어리로 외우자!&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;rarr; 전부 알고 있기는 어렵고 많이 쓰는 것 위주로 외워놓기 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;rarr; 옵션이 명령어마다 다르긴 하지만 비슷한 부분이 많음 ex) -a: all / -t: 시간 관련&lt;/blockquote&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt; 옵션은 여러개를 한번에 쓸 수도 있다. ex) ls -altr&lt;/blockquote&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;ls (-altr)&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1779076748640&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ ls
$ ls /home/user
$ ls -l
$ ls - altr
$ ls - lh

$ ls - altr ./foo    # 하위 디렉토리인 foo 내부의 파일 조회&lt;/code&gt;&lt;/pre&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: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;-l: 상세 형식으로 출력&lt;/li&gt;
&lt;li&gt;-a: 숨김 파일(.으로 시작)을 포함하여 모두 표시&lt;/li&gt;
&lt;li&gt;-t: 수정 시간 기준으로 정렬&lt;/li&gt;
&lt;li&gt;-r: 역순으로 정렬
&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;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt; cd&lt;/span&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1779608720885&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ cd /home/user      # 절대 경로로 이동
$ cd ./Documents     # 상대 경로로 이동
$ cd ..           # 상위 디렉토리로 이동
$ cd ~            # 홈 디렉토리로 이동
$ cd              # 홈 디렉토리로 이동
$ cd -            # 이전 디렉토리로 이동
$ cd /            # root로 이동&lt;/code&gt;&lt;/pre&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;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;절대경로: /로 시작. root를 기준으로 작성(윈도우 파일 경로 같이 표시)&lt;/li&gt;
&lt;li&gt;상대경로: /로 시작하지 않음. 현재 사용자가 있는 위치를 기준으로 작성&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1779608747279&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# user 디렉토리에서 home 디렉토리로 이동
$ cd /home
$ cd ./../    # ./ 는 생략 가능(현재 위치가 디폴트)

$ cd ~/test   # user 디렉토리 하위 디렉토리인 test로 이동
$ cd&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;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot; data-token-index=&quot;0&quot;&gt; pwd &lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1779608851659&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ pwd&lt;/code&gt;&lt;/pre&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;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt; touch &lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1779608893839&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ touch [파일명]&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;빈 파일(디렉토리X)을 만드는 명령어&lt;/li&gt;
&lt;/ul&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot; data-token-index=&quot;0&quot;&gt; mkdir &lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1779608938103&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ mkdir [디렉토리명] [디렉토리명] ... # 가변 인자&lt;/code&gt;&lt;/pre&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: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;-p: 상위 디렉토리가 없을 경우 자동으로 생성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;./foo/test와 같이 존재하지 않는 디렉토리의 하위 디렉토리를 생성하려는 경우, 만약 상위 디렉토리(foo)가 존재하지 않다면 함께 생성&lt;/li&gt;
&lt;li&gt;parent를 의미한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;-m: 생성시 권한을 지정 &amp;rarr; 실무에서 거의 사용X
&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;/li&gt;
&lt;/ul&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot; data-token-index=&quot;0&quot;&gt; rm (-rf)&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1779609016255&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ rm file.txt        # 파일 삭제
$ rmdir -r myfolder     # 디렉토리 재귀 삭제
$ rm -f file.txt     # 강제 삭제(확인 X)
$ rmdir -rf myfolder    # 디렉토리 강제 재귀 삭제
$ rm -i *.log        # 삭제 전 확인 묻기&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;rm은 파일을 삭제 / rmdir은 디렉토리를 삭제&lt;/li&gt;
&lt;li&gt;주요 옵션
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;-r: 재귀 삭제&lt;/li&gt;
&lt;li&gt;-f: 강제 삭제(force)&lt;/li&gt;
&lt;li&gt;-i: 삭제 전 확인&lt;/li&gt;
&lt;li&gt;-rf를 기본으로 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;하위 디렉토리가 있는 경우 rmdir만으로는 삭제가 안 됨
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;하위 파일 혹은 디렉토리까지 삭제할거면 -r&lt;/li&gt;
&lt;li&gt;제약 조건이 있는 파일 혹은 디렉토리도 그냥 삭제할거면 -f&lt;/li&gt;
&lt;li&gt;하위 폴더 삭제를 단계별로 삭제(확인)하고 싶으면 -i&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;⚠️ rm -rf /는 절대 사용 금지!!&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&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;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot; data-token-index=&quot;0&quot;&gt; cp (-rf)&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1779609099195&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ cp /etc/passwd ./mypasswd
$ cp -r /etc ./etc_backup   # 디렉토리(절대 경로) 복사
$ cp -r etc etc_backup      # 디렉토리(상대 경로) 복사

# 아래의 명령어는 다 같은 명령어(파일명 무시)
$ cp -r -f /etc ./etc_backup
$ cp -r --force /etc ./etc_backup
$ cp -rf /etc/passwd ./mypass.txt&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;파일이나 디렉토리를 복사하는 명령어(copy)&lt;/li&gt;
&lt;li&gt;주요 옵션
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;-r: 하위 디렉토리도 재귀적으로 복사&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;-f: 강제로 복사&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;-i: 대상 파일이 이미 존재하면 덮어쓰기 전에 확인&lt;/li&gt;
&lt;li&gt;-p: 원본의 권한, 타임스탬프, 소유자를 유지&lt;/li&gt;
&lt;li&gt;-u: 원본이 대상보다 최신일 때만 복사&lt;/li&gt;
&lt;li&gt;-v: 복사되는 파일명 출력&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot; data-token-index=&quot;0&quot;&gt; mv &lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1779609167098&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ mv [옮길 파일(다렉토리)] [결과 파일(다렉토리)]&lt;/code&gt;&lt;/pre&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;blockquote data-ke-style=&quot;style2&quot;&gt;파일명 변경 방식은 삭제 후 재생성과 mv가 있다.&lt;/blockquote&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;</description>
      <category>인프라(Infrastructure)/리눅스(Linux)</category>
      <category>CD</category>
      <category>CP</category>
      <category>Linux</category>
      <category>ls</category>
      <category>mkdir</category>
      <category>MV</category>
      <category>pwd</category>
      <category>RM</category>
      <category>ubuntu</category>
      <author>Sol_Cho</author>
      <guid isPermaLink="true">https://haydencho.tistory.com/12</guid>
      <comments>https://haydencho.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%9A%B0%EB%B6%84%ED%88%AC-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC1-ls-cd-pwd-touch-mkdir-rm-cp-mv#entry12comment</comments>
      <pubDate>Sun, 24 May 2026 16:55:32 +0900</pubDate>
    </item>
    <item>
      <title>[리눅스] 리눅스란?</title>
      <link>https://haydencho.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%A6%AC%EB%88%85%EC%8A%A4%EB%9E%80</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #1a5490;&quot;&gt;리눅스란 무엇인가?&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;운영체제(OS, Operating System)란?&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터의 부품(메모리, CPU, GPU, 하드디스크, 메인보드 등)을 좋은 성능으로 활용할 수 있도록 운영 관리해 주는 장치&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;리눅스의 탄생과 '오픈소스'&lt;/span&gt;&lt;/h4&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;서로 다른 컴퓨터(계산기)에서 보낸 신호를 받고 응답함(TCP/IP)&lt;/li&gt;
&lt;li&gt;Alpha 프로젝트도 진행됨&lt;/li&gt;
&lt;li&gt;이후 유닉스가 다양한 갈래로 발전됨&lt;/li&gt;
&lt;/ul&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;리눅스 계보.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;577&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rLqux/dJMcagey0ax/oMI5V5Ey6GQAaFwbmUBcBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rLqux/dJMcagey0ax/oMI5V5Ey6GQAaFwbmUBcBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rLqux/dJMcagey0ax/oMI5V5Ey6GQAaFwbmUBcBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrLqux%2FdJMcagey0ax%2FoMI5V5Ey6GQAaFwbmUBcBk%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;409&quot; height=&quot;295&quot; data-filename=&quot;리눅스 계보.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;577&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유닉스를 개인 혹은 작은 단위의 사람들이 사용하고 싶어서 핵심기능부터 만들기 시작함&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;리누스 토발즈,&lt;/b&gt; 개인 PC에서 쓸 수 있는 운영체제를 핵심 기능을 중심으로 직접 만들어 인터넷에 무료로 공개 &amp;rarr; 다른 기능을 여러 사람들이 추가하며 리눅스 완성(&lt;b&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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;537&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cSgdW3/dJMcadhQBdE/nhKt3nr8uRX8BQPXMVKl8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cSgdW3/dJMcadhQBdE/nhKt3nr8uRX8BQPXMVKl8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cSgdW3/dJMcadhQBdE/nhKt3nr8uRX8BQPXMVKl8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcSgdW3%2FdJMcadhQBdE%2FnhKt3nr8uRX8BQPXMVKl8K%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;433&quot; height=&quot;270&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;537&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;b&gt;레드 햇(Red Hat) 계열&lt;/b&gt;과 &lt;b&gt;데비안(Debian) 계열&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;&lt;b&gt;데비안&lt;/b&gt;: 개발자와 클라우드 &amp;rarr; 사용자 친화적(사용하기 쉬움)이고 커뮤니티 활발&lt;/li&gt;
&lt;li&gt;&lt;b&gt;레드 햇&lt;/b&gt;: 기업용 서버 &amp;rarr; 안정성&lt;/li&gt;
&lt;/ul&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;CLI(Command Line Interface)&lt;/span&gt;&lt;/h4&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;윈도우는 마우스로 아이콘 클릭하는 GUI(Graphic User Interface) 방식
&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;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  리눅스도 처음 설치하면 GUI 모드로 설치된다.&lt;br /&gt;서버로 활용할 땐 내가 조금 불편해도 게스트(클라이언트)에 서비스를 제공하는 게 우선이라면 CLI 모드로 사용하자.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;리눅스의 장점&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 안정성&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;서버의 가장 중요한 역량은 무정지
&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;리눅스는 재부팅 하지 않아도 업데이트 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 모듈화(가벼움)와 유연성&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;레고 블록처럼 원하는 부품만 조합 가능&lt;/li&gt;
&lt;li&gt;그래픽 요소를 전부 빼버리고 계산과 통신에만 집중 &amp;rarr; 가벼움&lt;/li&gt;
&lt;li&gt;가벼워서 손바닥만한 라즈베리파이나 스마트폰, 냉장고 등 사이즈 상관없이 어디서나 사용 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 현대 기술의 표준&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;클라우드, 인공지능, 도커 등 IT 업계의 핵심적인 기술
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AWS나 구글 클라우드에 서버를 만들면 대부분 리눅스가 기본 설치&lt;/li&gt;
&lt;li&gt;인공지능 기술이나 컨테이너 기술도 리눅스 환경을 기준으로 개발&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 무료&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #1a5490;&quot;&gt;핵심 구조(커널과 쉘)&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;리눅스 계층 구조&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;594&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8DBlJ/dJMcagMqVVn/Qa4Jsmb7oq6XnrGPxc70b0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8DBlJ/dJMcagMqVVn/Qa4Jsmb7oq6XnrGPxc70b0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8DBlJ/dJMcagMqVVn/Qa4Jsmb7oq6XnrGPxc70b0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8DBlJ%2FdJMcagMqVVn%2FQa4Jsmb7oq6XnrGPxc70b0%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;363&quot; height=&quot;361&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;594&quot;/&gt;&lt;/span&gt;&lt;/figure&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;b&gt;쉘&lt;/b&gt;: 명령어 해석기(윈도우와 같은 GUI에서는 파일 탐색기)
&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;li&gt;&lt;b&gt;커널&lt;/b&gt;: 운영체제의 심장 &amp;rarr; 외부의 접근을 아주 제한된 방식으로만 허가
&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;/ul&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;명령어 실행 과정&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;사용자&lt;/b&gt;(명령어 작성) &amp;rarr; &lt;b&gt;쉘&lt;/b&gt;(명령어 파싱 및 해석) &amp;rarr; (시스템 콜) &amp;rarr; &lt;b&gt;커널&lt;/b&gt;(파일 시스템 API 처리 후 반환) &amp;rarr; (하드웨어 제어) &amp;rarr; &lt;b&gt;하드웨어&lt;/b&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;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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;커널의 핵심 역할&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 프로세스 관리&lt;/b&gt; 멀티태스킹(여러 프로그램 동시에 실행 가능하도록 CPU 시간을 나누고 할당)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 메모리 관리&lt;/b&gt; 각 프로그램에 대해 RAM 영역을 할당, 회수 / 메모리 침범 방지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 파일 시스템 관리&lt;/b&gt; 디스크에 파일을 읽고 쓰는 작업 처리 / 다양한 파일 시스템 형식 지원&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 장치 드라이버 관리&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;</description>
      <category>인프라(Infrastructure)/리눅스(Linux)</category>
      <category>CLI</category>
      <category>Linux</category>
      <category>OS</category>
      <category>리눅스</category>
      <category>운영체제</category>
      <category>커널</category>
      <author>Sol_Cho</author>
      <guid isPermaLink="true">https://haydencho.tistory.com/11</guid>
      <comments>https://haydencho.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%A6%AC%EB%88%85%EC%8A%A4%EB%9E%80#entry11comment</comments>
      <pubDate>Sun, 24 May 2026 16:29:36 +0900</pubDate>
    </item>
    <item>
      <title>[Spring] 패키지 구성(Controller, Service, Repository, DAO, DTO)</title>
      <link>https://haydencho.tistory.com/entry/Spring-%ED%8C%A8%ED%82%A4%EC%A7%80-%EA%B5%AC%EC%84%B1Controller-Service-Repository-DAO-DTO</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;Presentation/&lt;b&gt;Controller&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;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;클라이언트의 요청에 대해 어떤 처리를 할지 Service로 전달&lt;/li&gt;
&lt;li&gt;Service에서 처리된 내용을 View로 응답&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;URL에 따라 Client로부터 request를 받고 response를 하는 모든 API를 포함
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;@Controller 대신 @RestController를 쓰면 JSON만 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Business/&lt;b&gt;Service&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;Controller가 요청된 작업을 수행하기 위해 호출할 수 있는 메소드 집합을 제공&lt;/li&gt;
&lt;li&gt;DTO를 통해 받은 데이터를 이용해 비즈니스 로직을 처리 (Repository에서 받아온 데이터를 가공하여 Controller에게 전달)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;DAO(Data Access Object)/&lt;b&gt;Repository&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;실제로 DB에 접근하는 객체 &amp;rarr; Service 층과 데이터베이스를 연결하는 역할&lt;/li&gt;
&lt;li&gt;받은 정보를 데이터베이스에 저장하고 조회하는 역할&lt;/li&gt;
&lt;li&gt;JPA에서는 DB에 데이터를 CRUD 하는 Repository 객체가 DAO 역할(같은 건 X)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;JPA 인터페이스 메소드를 활용하여 기본적인 CRUD 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Entity Class/&lt;b&gt;Domain&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;DB의 테이블에 존재하는 Column들을 필드로 가지는 객체&lt;br /&gt;&amp;rarr; 테이블이 가지지 않는 컬럼을 필드로 가져서는 안 됨(DB의 테이블과 1대1 대응)&lt;/li&gt;
&lt;li&gt;다른 클래스를 상속받거나 인터페이스의 구현체여서도 안 됨&lt;/li&gt;
&lt;li&gt;순수한 데이터 객체인 것이 좋지만 사실 중복되는 내용이 있을 경우 baseEntity를 만들어 상속할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;DTO(Data Transfer Object)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;계층 간에 데이터를 교환해주는 역할(DAO&amp;harr;DB 사이를 제외한 모든 계층)&lt;br /&gt;&amp;rarr; DB에서 꺼낸 값을 DTO에서 변경하는 것을 막고자 Setter를 만들지 않고 생성자에서만 값을 할당&lt;br /&gt;&amp;rarr; 특별한 로직을 가지지 않는 순수한 데이터 객체여야 함&lt;/li&gt;
&lt;li&gt;DB에서 꺼낸 데이터를 저장하는 Entity를 가지고 만드는 일종의 Wrapper(캡슐)&lt;/li&gt;
&lt;li&gt;요청(RequestDTO)/응답(ResponseDTO)&lt;/li&gt;
&lt;li&gt;Service와 Controller에서 각각의 DTO를 만들어서 사용해야 의존성을 줄일 수 있다!&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;DTO를 사용하는 이유&lt;b&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 데이터에 대한 View Layer(표현)와 DB Layer(저장)의 역할을 분리하기 위해서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 1.1. View(클라이언트)와 통신하는 DTO 클래스, 예를 들어 ResponseDTO, RequestDTO는 요구사항에 따라 자주 변경됨 &amp;rarr; Entity 클래스와 분리하여 관리 필요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 데이터 변경을 방지 &amp;rarr; Entity 객체를 그대로 사용하면 프로그래머의 의도와 다르게 데이터가 변질될 수 있음&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;&amp;nbsp; &amp;nbsp; 3.1. Entity 클래스의 특정 컬럼들을 조합하여 특정 포맷을 출력하고 싶다고 했을 때 Entity 클래스에 표현을 위한 필드나 로직이 추가되면 객체 설계를 망가뜨릴 수 있음 &amp;rarr; DTO에 표현을 위한 로직을 추가해서 사용하여 Entity의 도메인 모델링을 유지&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;h4 data-ke-size=&quot;size20&quot;&gt;참고&lt;/h4&gt;
&lt;figure id=&quot;og_1756132355955&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;[Spring] Controller, Service, Repository를 알아보자&quot; data-og-description=&quot;클라이언트의 요청을 처리한 후, 지정된 뷰에 모델 객체를 넘겨준다.URL마다 처리해야 할 기능을 정해놓은 API를 모아놓은 클래스이다. 클라이언트가 API로 요청을 보내면, 서버에서 기능을 처리&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@kimdy0915/Spring-Controller-Service-Repository%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90&quot; data-og-url=&quot;https://velog.io/@kimdy0915/Spring-Controller-Service-Repository를-알아보자&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/5wMDR/hyZDcsZNUP/j7zDSCOKd13G6SRahzIK3k/img.jpg?width=820&amp;amp;height=442&amp;amp;face=0_0_820_442,https://scrap.kakaocdn.net/dn/v9YUj/hyZDV49gWN/xW5qQRHFKhEg2DlY6BqK5k/img.jpg?width=820&amp;amp;height=442&amp;amp;face=0_0_820_442,https://scrap.kakaocdn.net/dn/eyU80s/hyZDYOlUtz/U9tYiKMp3XCm8NRjaK7FF0/img.png?width=2000&amp;amp;height=514&amp;amp;face=0_0_2000_514&quot;&gt;&lt;a href=&quot;https://velog.io/@kimdy0915/Spring-Controller-Service-Repository%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@kimdy0915/Spring-Controller-Service-Repository%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/5wMDR/hyZDcsZNUP/j7zDSCOKd13G6SRahzIK3k/img.jpg?width=820&amp;amp;height=442&amp;amp;face=0_0_820_442,https://scrap.kakaocdn.net/dn/v9YUj/hyZDV49gWN/xW5qQRHFKhEg2DlY6BqK5k/img.jpg?width=820&amp;amp;height=442&amp;amp;face=0_0_820_442,https://scrap.kakaocdn.net/dn/eyU80s/hyZDYOlUtz/U9tYiKMp3XCm8NRjaK7FF0/img.png?width=2000&amp;amp;height=514&amp;amp;face=0_0_2000_514');&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;[Spring] Controller, Service, Repository를 알아보자&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;클라이언트의 요청을 처리한 후, 지정된 뷰에 모델 객체를 넘겨준다.URL마다 처리해야 할 기능을 정해놓은 API를 모아놓은 클래스이다. 클라이언트가 API로 요청을 보내면, 서버에서 기능을 처리&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;figure id=&quot;og_1756132173776&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;[Spring] 스프링 패키지 구조, DAO, DTO, Entity, Repository 에 대하여, DTO를 사용하는 이유&quot; data-og-description=&quot;스프링 패키지 구조 스프링 패키지를 나눌 때 전체적인 그림은 일반적으로 [그림 1]과 같다. 이렇게 계층을 나누어 관리하는 것이 유지 보수하기에 용이하며 디버깅하기도 쉽다. DTO, DAO, Repository &quot; data-og-host=&quot;code-lab1.tistory.com&quot; data-og-source-url=&quot;https://code-lab1.tistory.com/201&quot; data-og-url=&quot;https://code-lab1.tistory.com/201&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/xqZoX/hyZzL4bK9w/kZxxYSP1cfxxfUFzBiBLmK/img.jpg?width=800&amp;amp;height=296&amp;amp;face=0_0_800_296,https://scrap.kakaocdn.net/dn/b5wnLM/hyZDTTOaes/sf7wMFPkPkTB3hIzFfEf90/img.jpg?width=800&amp;amp;height=296&amp;amp;face=0_0_800_296,https://scrap.kakaocdn.net/dn/uD3Ge/hyZDZNgbLI/W2m63LI9YG6kBsK0pKxtwk/img.jpg?width=1818&amp;amp;height=1818&amp;amp;face=0_0_1818_1818&quot;&gt;&lt;a href=&quot;https://code-lab1.tistory.com/201&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://code-lab1.tistory.com/201&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/xqZoX/hyZzL4bK9w/kZxxYSP1cfxxfUFzBiBLmK/img.jpg?width=800&amp;amp;height=296&amp;amp;face=0_0_800_296,https://scrap.kakaocdn.net/dn/b5wnLM/hyZDTTOaes/sf7wMFPkPkTB3hIzFfEf90/img.jpg?width=800&amp;amp;height=296&amp;amp;face=0_0_800_296,https://scrap.kakaocdn.net/dn/uD3Ge/hyZDZNgbLI/W2m63LI9YG6kBsK0pKxtwk/img.jpg?width=1818&amp;amp;height=1818&amp;amp;face=0_0_1818_1818');&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;[Spring] 스프링 패키지 구조, DAO, DTO, Entity, Repository 에 대하여, DTO를 사용하는 이유&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;스프링 패키지 구조 스프링 패키지를 나눌 때 전체적인 그림은 일반적으로 [그림 1]과 같다. 이렇게 계층을 나누어 관리하는 것이 유지 보수하기에 용이하며 디버깅하기도 쉽다. DTO, DAO, Repository&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;code-lab1.tistory.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;figure id=&quot;og_1756132185585&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;[Spring] Controller, Service, Repository&quot; data-og-description=&quot;Spring에서 프로젝트를 시작하면, 항상 Controller, Service, Repository를 너무 당연하듯 분리하곤 한다. 하지만, 이에 대해 왜 이렇게 분리하는지 생각해 본 적 있는가? 이번 포스트를 통해 Controller, Service&quot; data-og-host=&quot;youwjune.tistory.com&quot; data-og-source-url=&quot;https://youwjune.tistory.com/40&quot; data-og-url=&quot;https://youwjune.tistory.com/40&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bkUnlF/hyZC33QwVj/wK1uCkDD6mo3BzBT3jXJh1/img.png?width=800&amp;amp;height=414&amp;amp;face=0_0_800_414,https://scrap.kakaocdn.net/dn/cWNxjl/hyZCYuIkl1/JikL9eDIugDupqzb0ERPnK/img.png?width=800&amp;amp;height=414&amp;amp;face=0_0_800_414,https://scrap.kakaocdn.net/dn/bstecW/hyZC4obtWl/kBEImyiZDLJBcIlqXxHuMk/img.png?width=1119&amp;amp;height=580&amp;amp;face=0_0_1119_580&quot;&gt;&lt;a href=&quot;https://youwjune.tistory.com/40&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://youwjune.tistory.com/40&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bkUnlF/hyZC33QwVj/wK1uCkDD6mo3BzBT3jXJh1/img.png?width=800&amp;amp;height=414&amp;amp;face=0_0_800_414,https://scrap.kakaocdn.net/dn/cWNxjl/hyZCYuIkl1/JikL9eDIugDupqzb0ERPnK/img.png?width=800&amp;amp;height=414&amp;amp;face=0_0_800_414,https://scrap.kakaocdn.net/dn/bstecW/hyZC4obtWl/kBEImyiZDLJBcIlqXxHuMk/img.png?width=1119&amp;amp;height=580&amp;amp;face=0_0_1119_580');&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;[Spring] Controller, Service, Repository&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Spring에서 프로젝트를 시작하면, 항상 Controller, Service, Repository를 너무 당연하듯 분리하곤 한다. 하지만, 이에 대해 왜 이렇게 분리하는지 생각해 본 적 있는가? 이번 포스트를 통해 Controller, Service&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;youwjune.tistory.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;figure id=&quot;og_1756132193775&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;[Spring] Entity, DAO, DTO란 무엇이며, 왜 사용할까?&quot; data-og-description=&quot;Entity, DAO, DTO의 개념 및 특징&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@wnsdnjs70/Entity-DAO-DTO%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EB%A9%B0-%EC%99%9C-%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C&quot; data-og-url=&quot;https://velog.io/@wnsdnjs70/Entity-DAO-DTO란-무엇이며-왜-사용할까&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/mIMJU/hyZDVKRR54/SKoLAVrvfnCxz1cpnexqTk/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500&quot;&gt;&lt;a href=&quot;https://velog.io/@wnsdnjs70/Entity-DAO-DTO%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EB%A9%B0-%EC%99%9C-%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@wnsdnjs70/Entity-DAO-DTO%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EB%A9%B0-%EC%99%9C-%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/mIMJU/hyZDVKRR54/SKoLAVrvfnCxz1cpnexqTk/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500');&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;[Spring] Entity, DAO, DTO란 무엇이며, 왜 사용할까?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Entity, DAO, DTO의 개념 및 특징&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>Back-End/Spring</category>
      <category>controller</category>
      <category>DAO</category>
      <category>DTO</category>
      <category>Repository</category>
      <category>Service</category>
      <category>Spring</category>
      <category>패키지</category>
      <author>Sol_Cho</author>
      <guid isPermaLink="true">https://haydencho.tistory.com/10</guid>
      <comments>https://haydencho.tistory.com/entry/Spring-%ED%8C%A8%ED%82%A4%EC%A7%80-%EA%B5%AC%EC%84%B1Controller-Service-Repository-DAO-DTO#entry10comment</comments>
      <pubDate>Mon, 25 Aug 2025 23:27:23 +0900</pubDate>
    </item>
    <item>
      <title>[Spring] 3.x 버전 로그 출력 설정(logback.xml)</title>
      <link>https://haydencho.tistory.com/entry/Spring-3x-%EB%B2%84%EC%A0%84-%EB%A1%9C%EA%B7%B8-%EC%B6%9C%EB%A0%A5-%EC%84%A4%EC%A0%95logbackxml</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;스프링 2.x 버전과 달리 스프링 3.x 버전에서는 테스트 코드 등을 실행했을 때 로그가 출력되지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;application.properties에서 로그 레벨도 설정해보고 이것저것 해봤지만 원하는대로 로그가 출력되진 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인프런에서 강의를 듣는 중인데 이미 같은 문제를 겪은 수강생들의 질문에 답변이 올라온대로 하니까 바로 출력이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;진작 이랬어야 했는데... Q/A 게시판을 잘 이용하자...ㅎ&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;b&gt;해결방안&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;src/main/resources/logback.xml 생성 후 아래와 같이 작성&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1751363774922&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;configuration&amp;gt;
    &amp;lt;appender name=&quot;STDOUT&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&amp;gt;
        &amp;lt;encoder&amp;gt;
            &amp;lt;pattern&amp;gt;%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n&amp;lt;/pattern&amp;gt;
        &amp;lt;/encoder&amp;gt;
    &amp;lt;/appender&amp;gt;
    &amp;lt;root level=&quot;DEBUG&quot;&amp;gt;
        &amp;lt;appender-ref ref=&quot;STDOUT&quot; /&amp;gt;
    &amp;lt;/root&amp;gt;
&amp;lt;/configuration&amp;gt;&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;출처:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.inflearn.com/community/questions/902500/%EB%A1%9C%EA%B7%B8%EA%B0%80-%EA%B0%91%EC%9E%90%EA%B8%B0-%EC%95%88%EB%82%98%EC%98%B5%EB%8B%88%EB%8B%A4-%E3%85%A0%E3%85%A0%E3%85%A0%E3%85%A0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;인프런 질문글&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1751364063769&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;로그가 갑자기 안나옵니다 ㅠㅠㅠㅠ - 인프런 | 커뮤니티 질문&amp;amp;답변&quot; data-og-description=&quot;누구나 함께하는 인프런 커뮤니티. 모르면 묻고, 해답을 찾아보세요.&quot; data-og-host=&quot;www.inflearn.com&quot; data-og-source-url=&quot;https://www.inflearn.com/community/questions/902500/%EB%A1%9C%EA%B7%B8%EA%B0%80-%EA%B0%91%EC%9E%90%EA%B8%B0-%EC%95%88%EB%82%98%EC%98%B5%EB%8B%88%EB%8B%A4-%E3%85%A0%E3%85%A0%E3%85%A0%E3%85%A0&quot; data-og-url=&quot;https://www.inflearn.com/community/questions/902500/%EB%A1%9C%EA%B7%B8%EA%B0%80-%EA%B0%91%EC%9E%90%EA%B8%B0-%EC%95%88%EB%82%98%EC%98%B5%EB%8B%88%EB%8B%A4-%E3%85%A0%E3%85%A0%E3%85%A0%E3%85%A0&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/GmPOL/hyZce6GXvz/Ca5mkYQN10idF5uqPsmRSK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/dMTocN/hyZfY8XvlZ/lSnGB0ZupP2hfHcQAwqkO1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://www.inflearn.com/community/questions/902500/%EB%A1%9C%EA%B7%B8%EA%B0%80-%EA%B0%91%EC%9E%90%EA%B8%B0-%EC%95%88%EB%82%98%EC%98%B5%EB%8B%88%EB%8B%A4-%E3%85%A0%E3%85%A0%E3%85%A0%E3%85%A0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.inflearn.com/community/questions/902500/%EB%A1%9C%EA%B7%B8%EA%B0%80-%EA%B0%91%EC%9E%90%EA%B8%B0-%EC%95%88%EB%82%98%EC%98%B5%EB%8B%88%EB%8B%A4-%E3%85%A0%E3%85%A0%E3%85%A0%E3%85%A0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/GmPOL/hyZce6GXvz/Ca5mkYQN10idF5uqPsmRSK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/dMTocN/hyZfY8XvlZ/lSnGB0ZupP2hfHcQAwqkO1/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;로그가 갑자기 안나옵니다 ㅠㅠㅠㅠ - 인프런 | 커뮤니티 질문&amp;amp;답변&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;누구나 함께하는 인프런 커뮤니티. 모르면 묻고, 해답을 찾아보세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.inflearn.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>Back-End/Spring</category>
      <category>Logback</category>
      <category>logging</category>
      <category>Spring</category>
      <author>Sol_Cho</author>
      <guid isPermaLink="true">https://haydencho.tistory.com/9</guid>
      <comments>https://haydencho.tistory.com/entry/Spring-3x-%EB%B2%84%EC%A0%84-%EB%A1%9C%EA%B7%B8-%EC%B6%9C%EB%A0%A5-%EC%84%A4%EC%A0%95logbackxml#entry9comment</comments>
      <pubDate>Tue, 1 Jul 2025 19:07:47 +0900</pubDate>
    </item>
    <item>
      <title>[BDA 데이터분석모델링반(ML1) - 7주차] K-means 실습</title>
      <link>https://haydencho.tistory.com/entry/BDA-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EB%AA%A8%EB%8D%B8%EB%A7%81%EB%B0%98ML1-7%EC%A3%BC%EC%B0%A8-K-means-%EC%8B%A4%EC%8A%B5</link>
      <description>&lt;blockquote data-ke-style=&quot;style2&quot;&gt;ML1반 7주차(2025.05.18): K-means 실습&lt;/blockquote&gt;
&lt;div id=&quot;SE-ee5b2536-e30f-4e19-8ada-2b21a062377e&quot; data-a11y-title=&quot;사진&quot; data-compid=&quot;SE-ee5b2536-e30f-4e19-8ada-2b21a062377e&quot;&gt;
&lt;div&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;SE-ee5b2536-e30f-4e19-8ada-2b21a062377e&quot; data-unitid=&quot;&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;SE-ee5b2536-e30f-4e19-8ada-2b21a062377e&quot;&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;&quot; data-unitid=&quot;SE-ee5b2536-e30f-4e19-8ada-2b21a062377e&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;900&quot; data-origin-height=&quot;506&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bECJrD/btsOeBkzCkN/KBgygb0pNoPZ2kv7RWGHx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bECJrD/btsOeBkzCkN/KBgygb0pNoPZ2kv7RWGHx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bECJrD/btsOeBkzCkN/KBgygb0pNoPZ2kv7RWGHx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbECJrD%2FbtsOeBkzCkN%2FKBgygb0pNoPZ2kv7RWGHx1%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;387&quot; height=&quot;506&quot; data-origin-width=&quot;900&quot; data-origin-height=&quot;506&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-8ab17fe4-ee10-4d11-bad6-1d1033eb2f32&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-8ab17fe4-ee10-4d11-bad6-1d1033eb2f32&quot; data-a11y-title=&quot;본문&quot;&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-8ab17fe4-ee10-4d11-bad6-1d1033eb2f32&quot; data-direction=&quot;top&quot;&gt;
&lt;div id=&quot;SE-ba6f39c9-c5ff-4d40-8983-4662f5e96df7&quot;&gt;
&lt;p id=&quot;SE-561b3bd4-030b-4567-9de6-cdfc43e83101&quot; data-ke-size=&quot;size16&quot;&gt;전국&amp;nbsp;연합&amp;nbsp;&lt;b&gt;빅데이터&amp;nbsp;학회&lt;/b&gt;이자&amp;nbsp;&lt;b&gt;대학생&amp;nbsp;학회&lt;/b&gt;인&amp;nbsp;&lt;b&gt;BDA학회&lt;/b&gt;의&amp;nbsp;데이터분석모델링반(ML1)&amp;nbsp;7주차&amp;nbsp;수업이&amp;nbsp;진행되었다. &lt;br /&gt;7주차&amp;nbsp;수업에서는&amp;nbsp;6주차에&amp;nbsp;배웠던&amp;nbsp;K-means&amp;nbsp;알고리즘을&amp;nbsp;실습을&amp;nbsp;통해&amp;nbsp;심화학습했다. &lt;br /&gt;이번&amp;nbsp;글에서는&amp;nbsp;Numpy&amp;nbsp;라이브러리를&amp;nbsp;활용하여&amp;nbsp;KNN&amp;nbsp;알고리즘과&amp;nbsp;K-means&amp;nbsp;알고리즘을&amp;nbsp;구현한&amp;nbsp;내용을&amp;nbsp;정리하고&amp;nbsp;BDA&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;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-d81c8021-baad-47f8-8f0f-41fd1c68ae95&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-d81c8021-baad-47f8-8f0f-41fd1c68ae95&quot; data-a11y-title=&quot;구분선&quot;&gt;
&lt;div&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-d81c8021-baad-47f8-8f0f-41fd1c68ae95&quot; data-direction=&quot;top&quot;&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;SE-0f9aae27-072b-4250-a10e-50d22688a266&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-0f9aae27-072b-4250-a10e-50d22688a266&quot; data-a11y-title=&quot;본문&quot;&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-0f9aae27-072b-4250-a10e-50d22688a266&quot; data-direction=&quot;top&quot;&gt;
&lt;div id=&quot;SE-98f33760-54f4-4d1f-91d0-29ccebc43cdf&quot;&gt;
&lt;h2 id=&quot;SE-b2cf01f2-947a-4329-9416-7b35a85dd72f&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;K-Means&amp;nbsp;알고리즘이란?&lt;/h2&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-b94febfc-8b2f-4a7b-a005-102786574703&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-b94febfc-8b2f-4a7b-a005-102786574703&quot; data-a11y-title=&quot;사진&quot;&gt;
&lt;div&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-b94febfc-8b2f-4a7b-a005-102786574703&quot; data-direction=&quot;top&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;SE-b94febfc-8b2f-4a7b-a005-102786574703&quot;&gt;
&lt;div data-unitid=&quot;SE-b94febfc-8b2f-4a7b-a005-102786574703&quot; data-compid=&quot;&quot; data-direction=&quot;top&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;316&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckj93V/btsObRG14SL/l3DxBFdP5NTDtjuEwK0M6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckj93V/btsObRG14SL/l3DxBFdP5NTDtjuEwK0M6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckj93V/btsObRG14SL/l3DxBFdP5NTDtjuEwK0M6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fckj93V%2FbtsObRG14SL%2Fl3DxBFdP5NTDtjuEwK0M6k%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;697&quot; height=&quot;285&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;316&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-6db87d31-9d04-48d9-abfc-eb6eadcbe1a8&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-6db87d31-9d04-48d9-abfc-eb6eadcbe1a8&quot; data-a11y-title=&quot;본문&quot;&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-6db87d31-9d04-48d9-abfc-eb6eadcbe1a8&quot; data-direction=&quot;top&quot;&gt;
&lt;div id=&quot;SE-da454422-eb47-43dd-84b7-c60dbeacee51&quot;&gt;
&lt;p id=&quot;SE-8f52edd0-edb3-4cf0-8467-177a858b5f3d&quot; data-ke-size=&quot;size16&quot;&gt;K-평균(K-Means)&amp;nbsp;알고리즘은&amp;nbsp;주어진&amp;nbsp;데이터를&amp;nbsp;K&amp;nbsp;개의&amp;nbsp;군집(cluster)으로&amp;nbsp;나누는&amp;nbsp;비지도&amp;nbsp;학습(Unsupervised&amp;nbsp;Learning)&amp;nbsp;알고리즘이며&amp;nbsp;대표적인&amp;nbsp;군집화&amp;nbsp;기법이다. &lt;br /&gt;K-means&amp;nbsp;알고리즘의&amp;nbsp;원리는&amp;nbsp;우선&amp;nbsp;각&amp;nbsp;군집마다&amp;nbsp;중심점(centroid)을&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;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;SE-4f30b86a-bf82-49a0-8bcd-d71d1d17bf5c&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;KNN&amp;nbsp;구현&lt;/h2&gt;
&lt;div id=&quot;SE-17ff1987-e08b-42c4-bba9-58dd4e73b416&quot; data-a11y-title=&quot;나란히 놓은 사진&quot; data-compid=&quot;SE-17ff1987-e08b-42c4-bba9-58dd4e73b416&quot;&gt;
&lt;div&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;SE-17ff1987-e08b-42c4-bba9-58dd4e73b416&quot; data-unitid=&quot;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;SE-a6b06c5f-598f-4d71-a4d8-0a9e2970f489&quot;&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;&quot; data-unitid=&quot;SE-a6b06c5f-598f-4d71-a4d8-0a9e2970f489&quot;&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzbYRr/btsOeX11n3C/pNPdIEQkQ4KpU2ScyBLkz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzbYRr/btsOeX11n3C/pNPdIEQkQ4KpU2ScyBLkz1/img.png&quot; width=&quot;693&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;707&quot; data-is-animation=&quot;false&quot; style=&quot;width: 48.28%; margin-right: 10px;&quot; data-widthpercent=&quot;48.85&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzbYRr/btsOeX11n3C/pNPdIEQkQ4KpU2ScyBLkz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzbYRr%2FbtsOeX11n3C%2FpNPdIEQkQ4KpU2ScyBLkz1%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;828&quot; height=&quot;707&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/W1jks/btsOem8WSUQ/METKeUkTc49yB6YbZdmK2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/W1jks/btsOem8WSUQ/METKeUkTc49yB6YbZdmK2k/img.png&quot; width=&quot;693&quot; data-origin-width=&quot;818&quot; data-origin-height=&quot;667&quot; data-is-animation=&quot;false&quot; style=&quot;width: 50.5572%;&quot; data-widthpercent=&quot;51.15&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/W1jks/btsOem8WSUQ/METKeUkTc49yB6YbZdmK2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FW1jks%2FbtsOem8WSUQ%2FMETKeUkTc49yB6YbZdmK2k%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;818&quot; height=&quot;667&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;KNN&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;K&amp;nbsp;개의&amp;nbsp;이웃을&amp;nbsp;찾아&amp;nbsp;다수결로&amp;nbsp;예측하는&amp;nbsp;방식이다.&amp;nbsp;이&amp;nbsp;코드에서는&amp;nbsp;학습&amp;nbsp;데이터를&amp;nbsp;저장하는&amp;nbsp;fit,&amp;nbsp;테스트&amp;nbsp;데이터를&amp;nbsp;예측하는&amp;nbsp;predict,&amp;nbsp;개별&amp;nbsp;샘플에&amp;nbsp;대해&amp;nbsp;거리를&amp;nbsp;계산하고&amp;nbsp;예측하는&amp;nbsp;_predict_sample_one&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;길어지고,&amp;nbsp;이상치나&amp;nbsp;거리&amp;nbsp;기준에&amp;nbsp;민감하다는&amp;nbsp;단점이&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;div id=&quot;SE-15f07d75-5adc-4d97-a282-47a56e05bdd6&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-15f07d75-5adc-4d97-a282-47a56e05bdd6&quot; data-a11y-title=&quot;본문&quot;&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-15f07d75-5adc-4d97-a282-47a56e05bdd6&quot; data-direction=&quot;top&quot;&gt;
&lt;div id=&quot;SE-7af4e2f8-cf7d-4750-87ae-98b15f4f3556&quot;&gt;
&lt;h2 id=&quot;SE-4f30b86a-bf82-49a0-8bcd-d71d1d17bf5c&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;K-means&amp;nbsp;구현&lt;/h2&gt;
&lt;div id=&quot;SE-5bbb610a-78d3-4960-99a9-0bb3fd1f7093&quot; data-a11y-title=&quot;나란히 놓은 사진&quot; data-compid=&quot;SE-5bbb610a-78d3-4960-99a9-0bb3fd1f7093&quot;&gt;
&lt;div&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;SE-5bbb610a-78d3-4960-99a9-0bb3fd1f7093&quot; data-unitid=&quot;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;SE-8b58f07c-bf63-4812-b2e6-e5938a48884c&quot;&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;&quot; data-unitid=&quot;SE-8b58f07c-bf63-4812-b2e6-e5938a48884c&quot;&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tNufu/btsOfnsBeqA/kQgrRW8WczTZqnKCkgDkO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tNufu/btsOfnsBeqA/kQgrRW8WczTZqnKCkgDkO1/img.png&quot; width=&quot;693&quot; data-origin-width=&quot;707&quot; data-origin-height=&quot;610&quot; data-is-animation=&quot;false&quot; style=&quot;width: 48.5722%; margin-right: 10px;&quot; data-widthpercent=&quot;49.14&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tNufu/btsOfnsBeqA/kQgrRW8WczTZqnKCkgDkO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtNufu%2FbtsOfnsBeqA%2FkQgrRW8WczTZqnKCkgDkO1%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;707&quot; height=&quot;610&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dIj2Zp/btsOeY0W93O/QPUe4VrxRKardWYJ3YEAX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dIj2Zp/btsOeY0W93O/QPUe4VrxRKardWYJ3YEAX1/img.png&quot; width=&quot;693&quot; data-origin-width=&quot;812&quot; data-origin-height=&quot;677&quot; data-is-animation=&quot;false&quot; style=&quot;width: 50.265%;&quot; data-widthpercent=&quot;50.86&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dIj2Zp/btsOeY0W93O/QPUe4VrxRKardWYJ3YEAX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdIj2Zp%2FbtsOeY0W93O%2FQPUe4VrxRKardWYJ3YEAX1%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;812&quot; height=&quot;677&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;K-means&amp;nbsp;구현을&amp;nbsp;위해&amp;nbsp;KMeansClustring&amp;nbsp;클래스를&amp;nbsp;정의하며,&amp;nbsp;k(군집&amp;nbsp;수)와&amp;nbsp;max_iters(최대&amp;nbsp;반복&amp;nbsp;횟수)를&amp;nbsp;설정해&amp;nbsp;초기화한다.&amp;nbsp;fit&amp;nbsp;함수는&amp;nbsp;입력&amp;nbsp;데이터&amp;nbsp;X를&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;변하지&amp;nbsp;않으면&amp;nbsp;알고리즘은&amp;nbsp;종료된다.&amp;nbsp;내부&amp;nbsp;함수&amp;nbsp;_assign_cluster는&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 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;SE-593c1bfc-f56e-4667-90ca-a8a59dc13bca&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-593c1bfc-f56e-4667-90ca-a8a59dc13bca&quot; data-a11y-title=&quot;구분선&quot;&gt;
&lt;div&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-593c1bfc-f56e-4667-90ca-a8a59dc13bca&quot; data-direction=&quot;top&quot;&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;SE-ea1d18ca-5de4-434a-93a7-e7b9dd59c875&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-ea1d18ca-5de4-434a-93a7-e7b9dd59c875&quot; data-a11y-title=&quot;본문&quot;&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-ea1d18ca-5de4-434a-93a7-e7b9dd59c875&quot; data-direction=&quot;top&quot;&gt;
&lt;div id=&quot;SE-9744c829-ed72-470c-a88e-34c78ff5be96&quot;&gt;
&lt;p id=&quot;SE-2b1e4371-932d-4880-ae84-3b178008b0e7&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333;&quot;&gt;7주차에서는 실습을 통해 K-means 알고리즘에 대해 배웠던 내용을 공부했다. 라이브러리를 사용하는 방법도 있지만 직접 알고리즘을 구현해 보는 것이 알고리즘 학습에 도움이 많이 되는 것 같다. 알고리즘 원리가 이해가 잘 되는 느낌이라 실제로 &lt;b&gt;데이터 분석&lt;/b&gt;에 알고리즘을 적용할 때 더 잘 사용할 수 있을 것 같다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; BDA&amp;nbsp;뉴스레터&amp;nbsp;관심&amp;nbsp;있는&amp;nbsp;토픽&amp;nbsp;캡처본과&amp;nbsp;이유&amp;nbsp;작성&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div id=&quot;SE-b3cfc1b7-e4af-4dad-8395-8a9b25b10346&quot; data-a11y-title=&quot;사진&quot; data-compid=&quot;SE-b3cfc1b7-e4af-4dad-8395-8a9b25b10346&quot;&gt;
&lt;div&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;SE-b3cfc1b7-e4af-4dad-8395-8a9b25b10346&quot; data-unitid=&quot;&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;SE-b3cfc1b7-e4af-4dad-8395-8a9b25b10346&quot;&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;&quot; data-unitid=&quot;SE-b3cfc1b7-e4af-4dad-8395-8a9b25b10346&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;304&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0OCmk/btsOdF2kGvu/QCQTIQ7cT8uj5UykcxSy60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0OCmk/btsOdF2kGvu/QCQTIQ7cT8uj5UykcxSy60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0OCmk/btsOdF2kGvu/QCQTIQ7cT8uj5UykcxSy60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0OCmk%2FbtsOdF2kGvu%2FQCQTIQ7cT8uj5UykcxSy60%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;500&quot; height=&quot;304&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;304&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-efdb25ab-42ca-4fd2-87e2-9a1477086f37&quot; data-a11y-title=&quot;사진&quot; data-compid=&quot;SE-efdb25ab-42ca-4fd2-87e2-9a1477086f37&quot;&gt;
&lt;div&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;SE-efdb25ab-42ca-4fd2-87e2-9a1477086f37&quot; data-unitid=&quot;&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;SE-efdb25ab-42ca-4fd2-87e2-9a1477086f37&quot;&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;&quot; data-unitid=&quot;SE-efdb25ab-42ca-4fd2-87e2-9a1477086f37&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;709&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/F6qPP/btsOf1WM109/kkpg8yKl06Q83NzoK25d90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/F6qPP/btsOf1WM109/kkpg8yKl06Q83NzoK25d90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/F6qPP/btsOf1WM109/kkpg8yKl06Q83NzoK25d90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FF6qPP%2FbtsOf1WM109%2Fkkpg8yKl06Q83NzoK25d90%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;562&quot; height=&quot;709&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;709&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&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: #ffffff; color: #333333;&quot;&gt;BDA에서는&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;토픽이&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;있다면&amp;nbsp;구독을&amp;nbsp;해서&amp;nbsp;정보를&amp;nbsp;받아보는&amp;nbsp;것도&amp;nbsp;좋을&amp;nbsp;것&amp;nbsp;같다!&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&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;&lt;/p&gt;</description>
      <category>BDA/데이터 분석 모델링반(ML1)</category>
      <category>bda학회</category>
      <category>대외활동</category>
      <category>대학생학회</category>
      <category>빅데이터분석</category>
      <category>취업</category>
      <category>취업준비</category>
      <author>Sol_Cho</author>
      <guid isPermaLink="true">https://haydencho.tistory.com/8</guid>
      <comments>https://haydencho.tistory.com/entry/BDA-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EB%AA%A8%EB%8D%B8%EB%A7%81%EB%B0%98ML1-7%EC%A3%BC%EC%B0%A8-K-means-%EC%8B%A4%EC%8A%B5#entry8comment</comments>
      <pubDate>Tue, 27 May 2025 23:34:48 +0900</pubDate>
    </item>
    <item>
      <title>[BDA 데이터분석모델링반(ML1) - 6주차] K-means</title>
      <link>https://haydencho.tistory.com/entry/BDA-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EB%AA%A8%EB%8D%B8%EB%A7%81%EB%B0%98ML1-6%EC%A3%BC%EC%B0%A8-K-means</link>
      <description>&lt;div id=&quot;SE-8a824f70-67eb-4403-afec-641d6cdeff50&quot; style=&quot;color: #333333; text-align: start;&quot; data-a11y-title=&quot;인용구&quot; data-compid=&quot;SE-8a824f70-67eb-4403-afec-641d6cdeff50&quot;&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;SE-8a824f70-67eb-4403-afec-641d6cdeff50&quot; data-unitid=&quot;&quot;&gt;
&lt;div id=&quot;SE-6f12edd0-0709-4a71-abaa-b18913e8778a&quot;&gt;
&lt;blockquote id=&quot;SE-d05eeb98-c17f-46c8-927c-87cfa70d6db0&quot; style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;ML1반 5주차(2025.05.04): KNN 알고리즘 실습&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-9c9c8434-d517-4122-9097-b5a9fca0d274&quot; style=&quot;color: #333333; text-align: start;&quot; data-a11y-title=&quot;사진&quot; data-compid=&quot;SE-9c9c8434-d517-4122-9097-b5a9fca0d274&quot;&gt;
&lt;div&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;SE-9c9c8434-d517-4122-9097-b5a9fca0d274&quot; data-unitid=&quot;&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;SE-9c9c8434-d517-4122-9097-b5a9fca0d274&quot;&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;&quot; data-unitid=&quot;SE-9c9c8434-d517-4122-9097-b5a9fca0d274&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;900&quot; data-origin-height=&quot;506&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LXHpY/btsNdizccm1/9j6FwKFut7B6ixpFCg1vc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LXHpY/btsNdizccm1/9j6FwKFut7B6ixpFCg1vc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LXHpY/btsNdizccm1/9j6FwKFut7B6ixpFCg1vc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLXHpY%2FbtsNdizccm1%2F9j6FwKFut7B6ixpFCg1vc1%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;388&quot; height=&quot;506&quot; data-origin-width=&quot;900&quot; data-origin-height=&quot;506&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-8ab17fe4-ee10-4d11-bad6-1d1033eb2f32&quot; style=&quot;color: #333333; text-align: start;&quot; data-a11y-title=&quot;본문&quot; data-compid=&quot;SE-8ab17fe4-ee10-4d11-bad6-1d1033eb2f32&quot;&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;SE-8ab17fe4-ee10-4d11-bad6-1d1033eb2f32&quot; data-unitid=&quot;&quot;&gt;
&lt;div id=&quot;SE-ba6f39c9-c5ff-4d40-8983-4662f5e96df7&quot;&gt;
&lt;p id=&quot;SE-561b3bd4-030b-4567-9de6-cdfc43e83101&quot; data-ke-size=&quot;size16&quot;&gt;전국&amp;nbsp;연합&amp;nbsp;&lt;b&gt;빅데이터&amp;nbsp;학회&lt;/b&gt;이자&amp;nbsp;&lt;b&gt;대학생&amp;nbsp;학회&lt;/b&gt;인&amp;nbsp;&lt;b&gt;BDA학회&lt;/b&gt;의&amp;nbsp;데이터분석모델링반(ML1)&amp;nbsp;6주차&amp;nbsp;수업이&amp;nbsp;진행되었다. &lt;br /&gt;6주차&amp;nbsp;수업에서는&amp;nbsp;K-means&amp;nbsp;알고리즘의&amp;nbsp;개념에&amp;nbsp;대해&amp;nbsp;배웠다. &lt;br /&gt;본격적인&amp;nbsp;실습은&amp;nbsp;7주차에&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;직무를&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;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-d81c8021-baad-47f8-8f0f-41fd1c68ae95&quot; style=&quot;color: #333333; text-align: start;&quot; data-a11y-title=&quot;구분선&quot; data-compid=&quot;SE-d81c8021-baad-47f8-8f0f-41fd1c68ae95&quot;&gt;
&lt;div&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;SE-d81c8021-baad-47f8-8f0f-41fd1c68ae95&quot; data-unitid=&quot;&quot;&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;SE-0f9aae27-072b-4250-a10e-50d22688a266&quot; style=&quot;color: #333333; text-align: start;&quot; data-a11y-title=&quot;본문&quot; data-compid=&quot;SE-0f9aae27-072b-4250-a10e-50d22688a266&quot;&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;SE-0f9aae27-072b-4250-a10e-50d22688a266&quot; data-unitid=&quot;&quot;&gt;
&lt;div id=&quot;SE-98f33760-54f4-4d1f-91d0-29ccebc43cdf&quot;&gt;
&lt;h2 id=&quot;SE-b2cf01f2-947a-4329-9416-7b35a85dd72f&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;K-Means&amp;nbsp;알고리즘이란?&lt;/h2&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-b94febfc-8b2f-4a7b-a005-102786574703&quot; style=&quot;color: #333333; text-align: start;&quot; data-a11y-title=&quot;사진&quot; data-compid=&quot;SE-b94febfc-8b2f-4a7b-a005-102786574703&quot;&gt;
&lt;div&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;SE-b94febfc-8b2f-4a7b-a005-102786574703&quot; data-unitid=&quot;&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;SE-b94febfc-8b2f-4a7b-a005-102786574703&quot;&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;&quot; data-unitid=&quot;SE-b94febfc-8b2f-4a7b-a005-102786574703&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;316&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckj93V/btsObRG14SL/l3DxBFdP5NTDtjuEwK0M6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckj93V/btsObRG14SL/l3DxBFdP5NTDtjuEwK0M6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckj93V/btsObRG14SL/l3DxBFdP5NTDtjuEwK0M6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fckj93V%2FbtsObRG14SL%2Fl3DxBFdP5NTDtjuEwK0M6k%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;697&quot; height=&quot;285&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;316&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-6db87d31-9d04-48d9-abfc-eb6eadcbe1a8&quot; style=&quot;color: #333333; text-align: start;&quot; data-a11y-title=&quot;본문&quot; data-compid=&quot;SE-6db87d31-9d04-48d9-abfc-eb6eadcbe1a8&quot;&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;SE-6db87d31-9d04-48d9-abfc-eb6eadcbe1a8&quot; data-unitid=&quot;&quot;&gt;
&lt;div id=&quot;SE-da454422-eb47-43dd-84b7-c60dbeacee51&quot;&gt;
&lt;p id=&quot;SE-8f52edd0-edb3-4cf0-8467-177a858b5f3d&quot; data-ke-size=&quot;size16&quot;&gt;K-평균(K-Means)&amp;nbsp;알고리즘은&amp;nbsp;주어진&amp;nbsp;데이터를&amp;nbsp;K&amp;nbsp;개의&amp;nbsp;군집(cluster)으로&amp;nbsp;나누는&amp;nbsp;비지도&amp;nbsp;학습(Unsupervised&amp;nbsp;Learning)&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;K-means&amp;nbsp;알고리즘의&amp;nbsp;원리는&amp;nbsp;우선&amp;nbsp;각&amp;nbsp;군집마다&amp;nbsp;중심점(centroid)을&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;각&amp;nbsp;데이터는&amp;nbsp;가장&amp;nbsp;유사한&amp;nbsp;군집에&amp;nbsp;속하게&amp;nbsp;된다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;SE-4f30b86a-bf82-49a0-8bcd-d71d1d17bf5c&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;K-means&amp;nbsp;알고리즘의&amp;nbsp;장단점&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;K-means&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;하지만&amp;nbsp;단점도&amp;nbsp;있다.&amp;nbsp;군집의&amp;nbsp;수&amp;nbsp;K를&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;구형(spherical)이거나&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;번&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;div id=&quot;SE-15f07d75-5adc-4d97-a282-47a56e05bdd6&quot; style=&quot;color: #333333; text-align: start;&quot; data-a11y-title=&quot;본문&quot; data-compid=&quot;SE-15f07d75-5adc-4d97-a282-47a56e05bdd6&quot;&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;SE-15f07d75-5adc-4d97-a282-47a56e05bdd6&quot; data-unitid=&quot;&quot;&gt;
&lt;div id=&quot;SE-7af4e2f8-cf7d-4750-87ae-98b15f4f3556&quot;&gt;
&lt;h2 id=&quot;SE-4f30b86a-bf82-49a0-8bcd-d71d1d17bf5c&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;K-means&amp;nbsp;알고리즘&amp;nbsp;군집&amp;nbsp;평가&lt;/h2&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;K-means 알고리즘은 비지도 학습이기 때문에, 정답(label)이 없는 경우가 대부분이다. 따라서 모델의 성능을 평가할 때는 군집의 품질을 정량적으로 판단할 수 있는 지표들을 활용한다. 대표적인 군집 평가 방법은 다음과 같다.&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;1. 엘보우(Elbow) 방법&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmWZKD/btsObJCtNnx/vn1xBo4ABtew6CmXQNccl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmWZKD/btsObJCtNnx/vn1xBo4ABtew6CmXQNccl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmWZKD/btsObJCtNnx/vn1xBo4ABtew6CmXQNccl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmWZKD%2FbtsObJCtNnx%2Fvn1xBo4ABtew6CmXQNccl1%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;316&quot; height=&quot;268&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엘보우&amp;nbsp;방법은&amp;nbsp;최적의&amp;nbsp;군집&amp;nbsp;수(K)를&amp;nbsp;결정할&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;WCSS&amp;nbsp;(Within-Cluster&amp;nbsp;Sum&amp;nbsp;of&amp;nbsp;Squares)&amp;nbsp;값을&amp;nbsp;계산하고,&amp;nbsp;이를&amp;nbsp;그래프로&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;WCSS는 각 군집 내 데이터들이 중심점으로부터 얼마나 가까운지를 나타내는 값이다.&lt;/li&gt;
&lt;li&gt;군집&amp;nbsp;수가&amp;nbsp;늘어날수록&amp;nbsp;WCSS는&amp;nbsp;줄어들지만,&amp;nbsp;급격한&amp;nbsp;감소가&amp;nbsp;꺾이는&amp;nbsp;지점(Knee&amp;nbsp;point)이&amp;nbsp;최적의&amp;nbsp;K로&amp;nbsp;간주된다.&amp;nbsp;이&amp;nbsp;꺾인&amp;nbsp;지점을&amp;nbsp;팔꿈치(Elbow)라고&amp;nbsp;하여&amp;nbsp;이름&amp;nbsp;붙여진&amp;nbsp;방법이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 실루엣 계수(Silhouette Score)&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;351&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9rBSx/btsObUw01SU/A77WmVjInct0j2Qlk1OlHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9rBSx/btsObUw01SU/A77WmVjInct0j2Qlk1OlHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9rBSx/btsObUw01SU/A77WmVjInct0j2Qlk1OlHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9rBSx%2FbtsObUw01SU%2FA77WmVjInct0j2Qlk1OlHk%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;647&quot; height=&quot;294&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;351&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실루엣 계수는 각 데이터가 자신의 군집에 얼마나 잘 속해 있는지를 나타내는 지표다. 점수는 -1에서 1 사이의 값을 가지며, 값이 클수록 군집이 잘 형성되었다는 의미다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1에&amp;nbsp;가까울수록&amp;nbsp;데이터가&amp;nbsp;잘&amp;nbsp;맞는&amp;nbsp;군집에&amp;nbsp;속해&amp;nbsp;있다는&amp;nbsp;뜻이다.&lt;/li&gt;
&lt;li&gt;0에&amp;nbsp;가까우면&amp;nbsp;다른&amp;nbsp;군집과&amp;nbsp;경계에&amp;nbsp;있는&amp;nbsp;경우를&amp;nbsp;의미한다.&lt;/li&gt;
&lt;li&gt;음수&amp;nbsp;값은&amp;nbsp;잘못된&amp;nbsp;군집에&amp;nbsp;할당되었을&amp;nbsp;가능성을&amp;nbsp;나타낸다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;SE-593c1bfc-f56e-4667-90ca-a8a59dc13bca&quot; style=&quot;color: #333333; text-align: start;&quot; data-a11y-title=&quot;구분선&quot; data-compid=&quot;SE-593c1bfc-f56e-4667-90ca-a8a59dc13bca&quot;&gt;
&lt;div&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;SE-593c1bfc-f56e-4667-90ca-a8a59dc13bca&quot; data-unitid=&quot;&quot;&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;SE-ea1d18ca-5de4-434a-93a7-e7b9dd59c875&quot; style=&quot;color: #333333; text-align: start;&quot; data-a11y-title=&quot;본문&quot; data-compid=&quot;SE-ea1d18ca-5de4-434a-93a7-e7b9dd59c875&quot;&gt;
&lt;div data-direction=&quot;top&quot; data-compid=&quot;SE-ea1d18ca-5de4-434a-93a7-e7b9dd59c875&quot; data-unitid=&quot;&quot;&gt;
&lt;div id=&quot;SE-9744c829-ed72-470c-a88e-34c78ff5be96&quot;&gt;
&lt;p id=&quot;SE-2b1e4371-932d-4880-ae84-3b178008b0e7&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333;&quot;&gt; 6주차에서는&amp;nbsp;K-means&amp;nbsp;클러스터링에&amp;nbsp;대한&amp;nbsp;여러&amp;nbsp;가지&amp;nbsp;내용을&amp;nbsp;배웠다.&amp;nbsp;K-means&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;b&gt;데이터&amp;nbsp;분석&lt;/b&gt;에서&amp;nbsp;좀&amp;nbsp;더&amp;nbsp;잘&amp;nbsp;응용할&amp;nbsp;수&amp;nbsp;있을&amp;nbsp;것&amp;nbsp;같다. &lt;br /&gt;&lt;br /&gt;&lt;b&gt; 희망&amp;nbsp;직무와&amp;nbsp;직무를&amp;nbsp;위한&amp;nbsp;노력&lt;/b&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;직무는&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;BDA에서&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;프로젝트에&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;해보려고&amp;nbsp;한다!&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>BDA/데이터 분석 모델링반(ML1)</category>
      <category>bda학회</category>
      <category>대외활동</category>
      <category>대학생학회</category>
      <category>빅데이터분석</category>
      <category>취업</category>
      <category>취업준비</category>
      <author>Sol_Cho</author>
      <guid isPermaLink="true">https://haydencho.tistory.com/7</guid>
      <comments>https://haydencho.tistory.com/entry/BDA-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EB%AA%A8%EB%8D%B8%EB%A7%81%EB%B0%98ML1-6%EC%A3%BC%EC%B0%A8-K-means#entry7comment</comments>
      <pubDate>Sun, 25 May 2025 17:18:45 +0900</pubDate>
    </item>
    <item>
      <title>[BDA 데이터분석모델링반(ML1) - 5주차] KNN 알고리즘 실습</title>
      <link>https://haydencho.tistory.com/entry/BDA-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EB%AA%A8%EB%8D%B8%EB%A7%81%EB%B0%98ML1-5%EC%A3%BC%EC%B0%A8-KNN-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%8B%A4%EC%8A%B5</link>
      <description>&lt;div id=&quot;SE-8a824f70-67eb-4403-afec-641d6cdeff50&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-8a824f70-67eb-4403-afec-641d6cdeff50&quot; data-a11y-title=&quot;인용구&quot;&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-8a824f70-67eb-4403-afec-641d6cdeff50&quot; data-direction=&quot;top&quot;&gt;
&lt;div id=&quot;SE-6f12edd0-0709-4a71-abaa-b18913e8778a&quot;&gt;
&lt;blockquote id=&quot;SE-d05eeb98-c17f-46c8-927c-87cfa70d6db0&quot; style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;ML1반 5주차(2025.05.04): KNN 알고리즘 실습&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-9c9c8434-d517-4122-9097-b5a9fca0d274&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-9c9c8434-d517-4122-9097-b5a9fca0d274&quot; data-a11y-title=&quot;사진&quot;&gt;
&lt;div&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-9c9c8434-d517-4122-9097-b5a9fca0d274&quot; data-direction=&quot;top&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;SE-9c9c8434-d517-4122-9097-b5a9fca0d274&quot;&gt;
&lt;div data-unitid=&quot;SE-9c9c8434-d517-4122-9097-b5a9fca0d274&quot; data-compid=&quot;&quot; data-direction=&quot;top&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;900&quot; data-origin-height=&quot;506&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LXHpY/btsNdizccm1/9j6FwKFut7B6ixpFCg1vc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LXHpY/btsNdizccm1/9j6FwKFut7B6ixpFCg1vc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LXHpY/btsNdizccm1/9j6FwKFut7B6ixpFCg1vc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLXHpY%2FbtsNdizccm1%2F9j6FwKFut7B6ixpFCg1vc1%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;388&quot; height=&quot;506&quot; data-origin-width=&quot;900&quot; data-origin-height=&quot;506&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-8ab17fe4-ee10-4d11-bad6-1d1033eb2f32&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-8ab17fe4-ee10-4d11-bad6-1d1033eb2f32&quot; data-a11y-title=&quot;본문&quot;&gt;
&lt;div&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-8ab17fe4-ee10-4d11-bad6-1d1033eb2f32&quot; data-direction=&quot;top&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;SE-ba6f39c9-c5ff-4d40-8983-4662f5e96df7&quot;&gt;
&lt;p id=&quot;SE-561b3bd4-030b-4567-9de6-cdfc43e83101&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;전국&amp;nbsp;연합&amp;nbsp;&lt;b&gt;빅데이터&amp;nbsp;학회&lt;/b&gt;이자&amp;nbsp;&lt;b&gt;대학생&amp;nbsp;학회&lt;/b&gt;인&amp;nbsp;&lt;b&gt;BDA학회&lt;/b&gt;의&amp;nbsp;데이터분석모델링반(ML1)&amp;nbsp;5주차&amp;nbsp;수업이&amp;nbsp;진행되었다. &lt;br /&gt;5주차&amp;nbsp;수업에서는&amp;nbsp;4주차에서&amp;nbsp;배운&amp;nbsp;KNN&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;했다. &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;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-d81c8021-baad-47f8-8f0f-41fd1c68ae95&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-d81c8021-baad-47f8-8f0f-41fd1c68ae95&quot; data-a11y-title=&quot;구분선&quot;&gt;
&lt;div&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-d81c8021-baad-47f8-8f0f-41fd1c68ae95&quot; data-direction=&quot;top&quot;&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;SE-0f9aae27-072b-4250-a10e-50d22688a266&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-0f9aae27-072b-4250-a10e-50d22688a266&quot; data-a11y-title=&quot;본문&quot;&gt;
&lt;div&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-0f9aae27-072b-4250-a10e-50d22688a266&quot; data-direction=&quot;top&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;SE-98f33760-54f4-4d1f-91d0-29ccebc43cdf&quot;&gt;
&lt;h2 id=&quot;SE-b2cf01f2-947a-4329-9416-7b35a85dd72f&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;KNN 알고리즘이란?&lt;/h2&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-b94febfc-8b2f-4a7b-a005-102786574703&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-b94febfc-8b2f-4a7b-a005-102786574703&quot; data-a11y-title=&quot;사진&quot;&gt;
&lt;div&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-b94febfc-8b2f-4a7b-a005-102786574703&quot; data-direction=&quot;top&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;SE-b94febfc-8b2f-4a7b-a005-102786574703&quot;&gt;
&lt;div data-unitid=&quot;SE-b94febfc-8b2f-4a7b-a005-102786574703&quot; data-compid=&quot;&quot; data-direction=&quot;top&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;312&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5WNbO/btsNcL9FBxa/UCSyuT0hlvnvpjXNJP51CK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5WNbO/btsNcL9FBxa/UCSyuT0hlvnvpjXNJP51CK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5WNbO/btsNcL9FBxa/UCSyuT0hlvnvpjXNJP51CK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5WNbO%2FbtsNcL9FBxa%2FUCSyuT0hlvnvpjXNJP51CK%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;512&quot; height=&quot;312&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;312&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-6db87d31-9d04-48d9-abfc-eb6eadcbe1a8&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-6db87d31-9d04-48d9-abfc-eb6eadcbe1a8&quot; data-a11y-title=&quot;본문&quot;&gt;
&lt;div&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-6db87d31-9d04-48d9-abfc-eb6eadcbe1a8&quot; data-direction=&quot;top&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;SE-da454422-eb47-43dd-84b7-c60dbeacee51&quot;&gt;
&lt;p id=&quot;SE-8f52edd0-edb3-4cf0-8467-177a858b5f3d&quot; data-ke-size=&quot;size16&quot;&gt;K-최근접&amp;nbsp;이웃(K-Nearest&amp;nbsp;Neighbors,&amp;nbsp;KNN)&amp;nbsp;알고리즘은&amp;nbsp;새로운&amp;nbsp;데이터를&amp;nbsp;분류할&amp;nbsp;때,&amp;nbsp;이미&amp;nbsp;학습된&amp;nbsp;데이터&amp;nbsp;중&amp;nbsp;가장&amp;nbsp;가까운&amp;nbsp;K개의&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;학습(Supervised&amp;nbsp;Learning)&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;KNN&amp;nbsp;알고리즘에서는&amp;nbsp;k의&amp;nbsp;값이&amp;nbsp;매우&amp;nbsp;중요한데,&amp;nbsp;이때&amp;nbsp;k의&amp;nbsp;값이&amp;nbsp;너무&amp;nbsp;작으면&amp;nbsp;특정&amp;nbsp;값에&amp;nbsp;지나치게&amp;nbsp;영향을&amp;nbsp;받을&amp;nbsp;수&amp;nbsp;있고&amp;nbsp;k의&amp;nbsp;값이&amp;nbsp;너무&amp;nbsp;크면&amp;nbsp;쓸데없는&amp;nbsp;값까지&amp;nbsp;참조하게&amp;nbsp;될&amp;nbsp;수&amp;nbsp;있다. &lt;br /&gt;&lt;br /&gt;KNN 알고리즘은 앞서 설명한 대로 단순한 알고리즘이라 구현이 쉽고 직관적이라는 장점이 있다. 또한 KNN 알고리즘은 데이터를 학습하는 것이 아니라 단순히 저장해놓고 새로운 데이터가 입력되었을 때 거리를 계산한다. 학습하는 과정이 없기 때문에 훈련 속도가 빠르다는 장점이 있지만 거리 계산 때문에 예측 속도가 오래 걸린다는 단점이 있다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;SE-15f07d75-5adc-4d97-a282-47a56e05bdd6&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-15f07d75-5adc-4d97-a282-47a56e05bdd6&quot; data-a11y-title=&quot;본문&quot;&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-15f07d75-5adc-4d97-a282-47a56e05bdd6&quot; data-direction=&quot;top&quot;&gt;
&lt;div id=&quot;SE-7af4e2f8-cf7d-4750-87ae-98b15f4f3556&quot;&gt;
&lt;h2 id=&quot;SE-4f30b86a-bf82-49a0-8bcd-d71d1d17bf5c&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;KNN 알고리즘을 통한 예측 실습&lt;/h2&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-233655c2-88b2-4d21-8888-cd882482c2a3&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-233655c2-88b2-4d21-8888-cd882482c2a3&quot; data-a11y-title=&quot;나란히 놓은 사진&quot;&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-233655c2-88b2-4d21-8888-cd882482c2a3&quot; data-direction=&quot;top&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;SE-38b80305-037f-4b04-86a1-13009b888711&quot;&gt;
&lt;div data-unitid=&quot;SE-38b80305-037f-4b04-86a1-13009b888711&quot; data-compid=&quot;&quot; data-direction=&quot;top&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-3c4fbf96-edd2-4e93-aaa7-a43f1513cb93&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-3c4fbf96-edd2-4e93-aaa7-a43f1513cb93&quot; data-a11y-title=&quot;본문&quot;&gt;
&lt;div&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-3c4fbf96-edd2-4e93-aaa7-a43f1513cb93&quot; data-direction=&quot;top&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;SE-dfd52c40-8557-457a-ad36-9c363ed93908&quot;&gt;
&lt;div id=&quot;SE-ec691d94-537f-468a-b86c-9659e72a2079&quot; style=&quot;background-color: #ffffff; color: #7b6d6d; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AudAS/btsN1rvhNR0/pkROxc2rVswJ2AGKGYkpZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AudAS/btsN1rvhNR0/pkROxc2rVswJ2AGKGYkpZ1/img.png&quot; data-height=&quot;632&quot; data-width=&quot;666&quot; data-lazy-src=&quot;&quot; data-origin-width=&quot;386&quot; data-origin-height=&quot;366&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;35.59&quot; style=&quot;width: 35.1765%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AudAS/btsN1rvhNR0/pkROxc2rVswJ2AGKGYkpZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAudAS%2FbtsN1rvhNR0%2FpkROxc2rVswJ2AGKGYkpZ1%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;386&quot; height=&quot;366&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VTzKc/btsN0NMoWVY/hIvxjlbzK4avWMKGsJN15k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VTzKc/btsN0NMoWVY/hIvxjlbzK4avWMKGsJN15k/img.png&quot; data-height=&quot;363&quot; data-width=&quot;693&quot; data-lazy-src=&quot;&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;405&quot; data-is-animation=&quot;false&quot; style=&quot;width: 63.6607%;&quot; data-widthpercent=&quot;64.41&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VTzKc/btsN0NMoWVY/hIvxjlbzK4avWMKGsJN15k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVTzKc%2FbtsN0NMoWVY%2FhIvxjlbzK4avWMKGsJN15k%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;773&quot; height=&quot;405&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;span&gt;&amp;nbsp;&lt;/span&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-9b275a70-c9f0-493c-958a-7273a34e888d&quot; style=&quot;background-color: #ffffff; color: #7b6d6d; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;p id=&quot;SE-774aa27c-910e-4681-bfd8-06c239c6b4cd&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333;&quot;&gt;실습은 타이타닉 데이터셋을 이용하여 진행하였다. &lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-3c9ac15b-b36c-4387-88c6-7d1f16601fb1&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333;&quot;&gt;이번 실습에서 k의 값이 KNN 알고리즘의 성능에 미치는 영향을 중요하게 생각했기 때문에 본격적으로 k의 값에 따른 성능을 비교하며 최적의 k의 값을 찾아보았다.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-0e81ffb5-4f5f-4c44-948e-027b04fb5b8f&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333;&quot;&gt;왼쪽의 코드는 단일 하이퍼파라미터를 기준으로 1부터 14까지의 범위에서 k의 값에 따른 예측 정확도를 구하고 시각화하는 코드이다.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-5f4f2573-f379-4a73-8fc6-99558593c76d&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #7b6d6d;&quot;&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-4bd9a4cb-4057-422f-8095-7ed83dc80e81&quot; style=&quot;background-color: #ffffff; color: #7b6d6d; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IBobF/btsN0JDyO8n/OKRQusu2M9EWfjCpvW7ZD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IBobF/btsN0JDyO8n/OKRQusu2M9EWfjCpvW7ZD1/img.png&quot; data-height=&quot;547&quot; data-width=&quot;693&quot; data-lazy-src=&quot;&quot; data-origin-width=&quot;386&quot; data-origin-height=&quot;305&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;38.23&quot; style=&quot;width: 37.784%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IBobF/btsN0JDyO8n/OKRQusu2M9EWfjCpvW7ZD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIBobF%2FbtsN0JDyO8n%2FOKRQusu2M9EWfjCpvW7ZD1%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;386&quot; height=&quot;305&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bp1PxH/btsN1YMVDGA/ZfIksb0eIWyQUX38ulmcPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bp1PxH/btsN1YMVDGA/ZfIksb0eIWyQUX38ulmcPk/img.png&quot; data-height=&quot;338&quot; data-width=&quot;693&quot; data-lazy-src=&quot;&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;378&quot; data-is-animation=&quot;false&quot; style=&quot;width: 61.0532%;&quot; data-widthpercent=&quot;61.77&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bp1PxH/btsN1YMVDGA/ZfIksb0eIWyQUX38ulmcPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbp1PxH%2FbtsN1YMVDGA%2FZfIksb0eIWyQUX38ulmcPk%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;773&quot; height=&quot;378&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-6d4daa5d-f085-4612-81fd-2b1823b64770&quot; style=&quot;background-color: #ffffff; color: #7b6d6d; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;454&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zBcoi/btsN1Ojslae/zMMh0SFz17QSIZpUQX6c31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zBcoi/btsN1Ojslae/zMMh0SFz17QSIZpUQX6c31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zBcoi/btsN1Ojslae/zMMh0SFz17QSIZpUQX6c31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzBcoi%2FbtsN1Ojslae%2FzMMh0SFz17QSIZpUQX6c31%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;254&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;454&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-bc54839d-eef0-428c-b02f-2c6b332a9229&quot; style=&quot;background-color: #ffffff; color: #7b6d6d; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;SE-a2b624ff-b31e-4dfa-85ba-20d78ba8dfe3&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333;&quot;&gt;KNN 알고리즘을 공부할 때 k의 값이 중요하다고 배웠지만 이외에도 다양한 하이퍼파라미터를 배웠다.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-059d115b-e14c-4218-a27a-b11a8f082385&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333;&quot;&gt;위의 코드에서는 다양한 하이퍼파라미터를 함께 검증하여 어떤 조합이 가장 성능이 좋은지 실험해보았다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-593c1bfc-f56e-4667-90ca-a8a59dc13bca&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-593c1bfc-f56e-4667-90ca-a8a59dc13bca&quot; data-a11y-title=&quot;구분선&quot;&gt;
&lt;div&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-593c1bfc-f56e-4667-90ca-a8a59dc13bca&quot; data-direction=&quot;top&quot;&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;SE-ea1d18ca-5de4-434a-93a7-e7b9dd59c875&quot; style=&quot;color: #333333; text-align: start;&quot; data-compid=&quot;SE-ea1d18ca-5de4-434a-93a7-e7b9dd59c875&quot; data-a11y-title=&quot;본문&quot;&gt;
&lt;div&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-ea1d18ca-5de4-434a-93a7-e7b9dd59c875&quot; data-direction=&quot;top&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;SE-9744c829-ed72-470c-a88e-34c78ff5be96&quot;&gt;
&lt;p id=&quot;SE-2b1e4371-932d-4880-ae84-3b178008b0e7&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333;&quot;&gt;5주차에서는 KNN 알고리즘에 대한 여러가지 실습을 진행했다. KNN 알고리즘이 실생활에 유용한 &lt;b&gt;데이터 분석&lt;/b&gt; 기법이라는 것을 4주차에 배워서 실습을 진행할 때도 좀 더 신경써서 진행했다. 그런데 묘하게 개념도 이해가 되고 코드도 이해가 되는데 머릿속에서 정리가 잘 안 되는 느낌이라 추가적으로 공부를 해봐야 할 것 같다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;b&gt; 휴회기간&amp;nbsp;이후&amp;nbsp;새로운&amp;nbsp;마음가짐&lt;/b&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;있어&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;마음&amp;nbsp;다잡고&amp;nbsp;수업도&amp;nbsp;열심히&amp;nbsp;듣고&amp;nbsp;챌린지도&amp;nbsp;끝까지&amp;nbsp;진행해보려고&amp;nbsp;한다.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>BDA/데이터 분석 모델링반(ML1)</category>
      <category>bda학회</category>
      <category>대외활동</category>
      <category>대학생학회</category>
      <category>빅데이터분석</category>
      <category>취업</category>
      <category>취업준비</category>
      <author>Sol_Cho</author>
      <guid isPermaLink="true">https://haydencho.tistory.com/6</guid>
      <comments>https://haydencho.tistory.com/entry/BDA-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EB%AA%A8%EB%8D%B8%EB%A7%81%EB%B0%98ML1-5%EC%A3%BC%EC%B0%A8-KNN-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%8B%A4%EC%8A%B5#entry6comment</comments>
      <pubDate>Fri, 16 May 2025 23:28:20 +0900</pubDate>
    </item>
  </channel>
</rss>