<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>버거워도 Keep Pushing</title>
    <link>https://junlennon0516.tistory.com/</link>
    <description>In their hearts humans plan their course, but the LORD establishes their steps. [Prov 16:9]</description>
    <language>ko</language>
    <pubDate>Fri, 17 Jul 2026 16:25:39 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>준레논</managingEditor>
    <image>
      <title>버거워도 Keep Pushing</title>
      <url>https://tistory1.daumcdn.net/tistory/7006071/attach/ac5b7c50e1394fe4ab9a92c6773e588f</url>
      <link>https://junlennon0516.tistory.com</link>
    </image>
    <item>
      <title>메이저 버전 업데이트의 위험성 &amp;mdash; 실무적 관점</title>
      <link>https://junlennon0516.tistory.com/44</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;최신 버전으로 깔았는데 예전 쿼리가 에러난다&quot; &amp;mdash; 실무에서 흔히 겪는 이 문제, 원인을 정리해봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DB 메이저 버전의 업그레이드를 예시로 살펴본다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-sourcepos=&quot;5:1-5:13;91-103&quot; data-ke-size=&quot;size23&quot;&gt;1. 예약어 추가&lt;/h3&gt;
&lt;p data-sourcepos=&quot;6:1-6:112;104-215&quot; data-ke-size=&quot;size16&quot;&gt;버전이 올라가면 새 예약어가 생긴다. MySQL 8.0에서는 RANK, WINDOW, LEAD 같은 단어가 예약어가 됐다. 컬럼명으로 rank를 쓰던 테이블은 갑자기 문법 오류를 낸다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;8:1-8:25;217-241&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 백틱으로 감싸거나 컬럼명을 바꿔야 한다.&lt;/p&gt;
&lt;h3 data-sourcepos=&quot;10:1-10:27;243-269&quot; data-ke-size=&quot;size23&quot;&gt;2. Deprecated 기능의 완전 제거&lt;/h3&gt;
&lt;p data-sourcepos=&quot;11:1-11:48;270-317&quot; data-ke-size=&quot;size16&quot;&gt;경고만 뜨던 기능이 다음 메이저 버전에서 아예 사라지는 게 가장 흔한 사고 원인이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;13:1-14:33;319-406&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;13:1-13:55;319-373&quot;&gt;MySQL 8.0: PASSWORD() 함수 제거, GROUP BY의 암묵적 정렬 제거&lt;/li&gt;
&lt;li data-sourcepos=&quot;14:1-14:33;374-406&quot;&gt;PostgreSQL: 버전마다 옛 기능이 하나씩 사라짐&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-sourcepos=&quot;16:1-16:46;408-453&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 업그레이드 전 &quot;Deprecated Features&quot; 문서를 꼭 읽어야 한다.&lt;/p&gt;
&lt;h3 data-sourcepos=&quot;18:1-18:15;455-469&quot; data-ke-size=&quot;size23&quot;&gt;3. 인증 방식 변경&lt;/h3&gt;
&lt;p data-sourcepos=&quot;19:1-19:116;470-585&quot; data-ke-size=&quot;size16&quot;&gt;MySQL 8.0은 기본 인증 플러그인이 mysql_native_password에서 caching_sha2_password로 바뀌었다. 구버전 드라이버(JDBC, PHP 등)는 아예 접속이 안 된다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;21:1-21:50;587-636&quot; data-ke-size=&quot;size16&quot;&gt;이건 SQL 에러가 아니라 &lt;b&gt;연결 단계에서 터지는&lt;/b&gt; 문제라 원인 찾기가 더 까다롭다.&lt;/p&gt;
&lt;h3 data-sourcepos=&quot;23:1-23:29;638-666&quot; data-ke-size=&quot;size23&quot;&gt;4. 옵티마이저 변화 &amp;rarr; 조용히 느려지는 쿼리&lt;/h3&gt;
&lt;p data-sourcepos=&quot;24:1-24:64;667-730&quot; data-ke-size=&quot;size16&quot;&gt;구문은 멀쩡한데 실행 계획이 바뀌어서 인덱스를 안 타는 경우. 에러 로그엔 안 남고 성능만 급락해서 발견이 늦다.&lt;/p&gt;
&lt;h3 data-sourcepos=&quot;26:1-26:20;732-751&quot; data-ke-size=&quot;size23&quot;&gt;5. 문자셋/정렬 기본값 변경&lt;/h3&gt;
&lt;p data-sourcepos=&quot;27:1-27:91;752-842&quot; data-ke-size=&quot;size16&quot;&gt;MySQL 8.0은 기본 charset이 latin1에서 utf8mb4로 바뀌었다. 정렬 순서, 외부 시스템과의 인코딩 호환성이 미묘하게 어긋날 수 있다.&lt;/p&gt;
&lt;h3 data-sourcepos=&quot;29:1-29:21;844-864&quot; data-ke-size=&quot;size23&quot;&gt;6. 확장/플러그인 호환성 깨짐&lt;/h3&gt;
&lt;p data-sourcepos=&quot;30:1-30:65;865-929&quot; data-ke-size=&quot;size16&quot;&gt;PostGIS 같은 확장이나 서드파티 백업&amp;middot;모니터링 툴이 신버전을 아직 지원하지 않아 장애로 이어지는 경우도 있다.&lt;/p&gt;
&lt;h3 data-sourcepos=&quot;32:1-32:22;931-952&quot; data-ke-size=&quot;size23&quot;&gt;7. ORM Dialect 불일치&lt;/h3&gt;
&lt;p data-sourcepos=&quot;33:1-33:69;953-1021&quot; data-ke-size=&quot;size16&quot;&gt;Hibernate 등에서 DB 버전에 맞는 Dialect를 안 바꾸면 신버전 문법을 못 쓰거나 예상 밖 SQL이 생성된다.&lt;/p&gt;
&lt;h3 data-sourcepos=&quot;35:1-35:15;1023-1037&quot; data-ke-size=&quot;size23&quot;&gt;8. 롤백이 안 된다&lt;/h3&gt;
&lt;p data-sourcepos=&quot;36:1-36:67;1038-1104&quot; data-ke-size=&quot;size16&quot;&gt;대부분의 DB는 메이저 업그레이드 후 공식적인 다운그레이드를 지원하지 않는다. 문제가 생기면 백업 복구밖에 답이 없다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-sourcepos=&quot;40:1-40:12;1111-1122&quot; data-ke-size=&quot;size26&quot;&gt;예방 체크리스트&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-sourcepos=&quot;41:1-44:28;1123-1262&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;스테이징 환경에 먼저 신버전 설치&lt;/b&gt; 후 운영 쿼리 로그(슬로우 쿼리 로그 포함)를 재생(replay)해서 에러/성능 차이 검증&lt;/li&gt;
&lt;li&gt;공식 문서의 &lt;b&gt;&quot;Upgrading&quot; + &quot;Deprecated/Removed Features&quot;&lt;/b&gt; 섹션 필수 확인&lt;/li&gt;
&lt;li&gt;드라이버/커넥터/ORM 버전도 DB 버전에 맞춰 동시에 업그레이드 대상에 포함&lt;/li&gt;
&lt;li&gt;스냅샷/백업 확보 후 진행, 롤백 시나리오를 사전에 문서화&lt;/li&gt;
&lt;/ol&gt;</description>
      <category>Cloud, IT Infra</category>
      <author>준레논</author>
      <guid isPermaLink="true">https://junlennon0516.tistory.com/44</guid>
      <comments>https://junlennon0516.tistory.com/44#entry44comment</comments>
      <pubDate>Thu, 16 Jul 2026 16:38:28 +0900</pubDate>
    </item>
    <item>
      <title>WAF / IPS</title>
      <link>https://junlennon0516.tistory.com/43</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;WAF (Web Application Firewall)&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;533&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cPkNNn/dJMcaalGaT9/mW33V7L3wCN6OHwYCkZAO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cPkNNn/dJMcaalGaT9/mW33V7L3wCN6OHwYCkZAO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cPkNNn/dJMcaalGaT9/mW33V7L3wCN6OHwYCkZAO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPkNNn%2FdJMcaalGaT9%2FmW33V7L3wCN6OHwYCkZAO1%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;736&quot; height=&quot;533&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;533&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;웹 애플리케이션 계층(L7)&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;비유하자면 &quot;건물 입구의 짐 검사대&quot; &amp;mdash; 일반 방화벽이 &quot;이 사람이 건물에 들어와도 되는 사람인가&quot;(IP/포트 단위)를 본다면, WAF는 &quot;이 사람 가방 안에 위험한 물건(악성 요청)이 있는가&quot;를 들여다봅니다.&lt;/li&gt;
&lt;li&gt;SQL Injection, XSS(크로스사이트 스크립팅), CSRF 같은 웹 애플리케이션 취약점을 노린 공격 패턴을 HTTP 요청 내용 자체에서 탐지&amp;middot;차단합니다.&lt;/li&gt;
&lt;li&gt;일반 방화벽/네트워크 장비로는 못 막는 영역(정상 포트로 들어오지만 내용이 악성인 요청)을 커버하는 게 핵심 역할입니다.&lt;/li&gt;
&lt;li&gt;AWS WAF, Cloudflare WAF 등이 대표적이며, 룰셋(Managed Rules)을 붙였다 뗐다 하는 방식으로 운영합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;IPS (Intrusion Prevention System)&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;447&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/djCmo2/dJMcahrGKX2/QYLMxVDG6sXckuVhIdcWD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/djCmo2/dJMcahrGKX2/QYLMxVDG6sXckuVhIdcWD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/djCmo2/dJMcahrGKX2/QYLMxVDG6sXckuVhIdcWD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdjCmo2%2FdJMcahrGKX2%2FQYLMxVDG6sXckuVhIdcWD0%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;335&quot; height=&quot;447&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;447&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;네트워크 트래픽을 실시간으로 감시하다가 공격 패턴을 발견하면 자동으로 차단&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;비유하자면 &quot;순찰하다가 수상한 사람을 즉시 제지하는 경비원&quot; &amp;mdash; 탐지만 하고 신고하는 게 아니라 그 자리에서 바로 막습니다.&lt;/li&gt;
&lt;li&gt;비슷한 개념으로 &lt;b&gt;IDS(Intrusion Detection System)&lt;/b&gt;가 있는데, 차이가 핵심입니다:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;IDS: 탐지 + 경고만 (사후 분석용, 트래픽 흐름을 막지는 않음)&lt;/li&gt;
&lt;li&gt;IPS: 탐지 + &lt;b&gt;실시간 차단&lt;/b&gt; (인라인으로 트래픽 경로에 직접 위치)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;시그니처 기반(알려진 공격 패턴 매칭) + 이상행위 기반(비정상 트래픽 탐지) 방식을 함께 씁니다.&lt;/li&gt;
&lt;li&gt;WAF와 헷갈리기 쉬운데, WAF는 웹(L7) 애플리케이션 공격에 특화된 반면, IPS는 네트워크 전 계층(스캐닝, 익스플로잇, 프로토콜 이상 등)을 더 폭넓게 봅니다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Security</category>
      <category>ips</category>
      <category>WAF</category>
      <author>준레논</author>
      <guid isPermaLink="true">https://junlennon0516.tistory.com/43</guid>
      <comments>https://junlennon0516.tistory.com/43#entry43comment</comments>
      <pubDate>Thu, 16 Jul 2026 16:33:47 +0900</pubDate>
    </item>
    <item>
      <title>3-Tier 구조, 그리고 이게 VPC와 만나는 지점</title>
      <link>https://junlennon0516.tistory.com/42</link>
      <description>&lt;p data-sourcepos=&quot;3:1-3:76;33-108&quot; data-ke-size=&quot;size16&quot;&gt;웹 서비스를 설계할 때 &quot;왜 웹서버, 애플리케이션 서버, DB 서버를 따로 두는가?&quot;라는 질문에서 시작하는 개념이 3-tier 구조다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-sourcepos=&quot;5:1-5:11;110-120&quot; data-ke-size=&quot;size26&quot;&gt;3-Tier 구조&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crUtEl/dJMcaftNHj0/unWfmikZtOCGWEkav2BNlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crUtEl/dJMcaftNHj0/unWfmikZtOCGWEkav2BNlk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crUtEl/dJMcaftNHj0/unWfmikZtOCGWEkav2BNlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrUtEl%2FdJMcaftNHj0%2FunWfmikZtOCGWEkav2BNlk%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;644&quot; height=&quot;429&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;7:1-7:71;122-192&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;7:1-7:71;122-192&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Presentation Tier&lt;/b&gt; &amp;mdash; 웹서버, 로드밸런서. 사용자가 직접 마주하는 곳이다. 매장의 카운터라고 보면 된다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;9:1-9:75;194-268&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Application Tier&lt;/b&gt; &amp;mdash; WAS, API 서버. 실제 비즈니스 로직을 처리한다. 손님은 못 들어오는 주방에 해당한다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;11:1-11:90;270-359&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Data Tier&lt;/b&gt; &amp;mdash; DB 서버. 데이터를 저장하는 창고다. 주방(Application Tier)만 드나들 수 있고, 카운터 직원조차 직접 못 들어간다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;13:1-13:20;361-380&quot; data-ke-size=&quot;size16&quot;&gt;트래픽은 항상 한 방향으로 흐른다.&lt;/p&gt;
&lt;div data-sourcepos=&quot;15:1-17:4;382-429&quot;&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;color: #1a5490;&quot;&gt;사용자 &amp;rarr; Presentation &amp;rarr; Application &amp;rarr; Data&lt;/span&gt;&lt;/blockquote&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-sourcepos=&quot;19:1-19:13;431-443&quot; data-ke-size=&quot;size26&quot;&gt;왜 굳이 나누는가&lt;/h2&gt;
&lt;p data-sourcepos=&quot;21:1-21:24;445-468&quot; data-ke-size=&quot;size16&quot;&gt;계층을 나누는 이유는 네 가지로 요약된다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;23:1-26:52;470-706&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;23:1-23:62;470-531&quot;&gt;&lt;b&gt;보안&lt;/b&gt;: DB가 인터넷에 직접 노출되지 않는다. 웹서버가 뚫려도 공격자가 바로 DB까지 가지 못한다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;24:1-24:71;532-602&quot;&gt;&lt;b&gt;독립적 확장&lt;/b&gt;: 웹 트래픽만 몰리면 Presentation Tier만 늘리면 된다. DB까지 같이 키울 필요가 없다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;25:1-25:52;603-654&quot;&gt;&lt;b&gt;장애 격리&lt;/b&gt;: 한 계층에 문제가 생겨도 나머지 계층은 원칙적으로 영향을 덜 받는다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;26:1-26:52;655-706&quot;&gt;&lt;b&gt;유지보수&lt;/b&gt;: 계층별로 기술 스택과 담당자가 분리되어 있어 수정과 배포가 독립적이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-sourcepos=&quot;28:1-28:21;708-728&quot; data-ke-size=&quot;size26&quot;&gt;VPC 위에서는 이렇게 구현된다&lt;/h2&gt;
&lt;p data-sourcepos=&quot;30:1-30:78;730-807&quot; data-ke-size=&quot;size16&quot;&gt;3-tier는 논리적인 설계 개념이고, 이걸 실제 클라우드 네트워크에 옮겨놓은 게 VPC의 Public/Private Subnet 구조다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;32:1-34:71;809-1009&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;32:1-32:55;809-863&quot;&gt;Presentation Tier &amp;rarr; &lt;b&gt;Public Subnet&lt;/b&gt; (외부 접근이 필요하니까)&lt;/li&gt;
&lt;li data-sourcepos=&quot;33:1-33:75;864-938&quot;&gt;Application Tier &amp;rarr; &lt;b&gt;Private Subnet&lt;/b&gt; (반드시 Presentation Tier를 거쳐야 접근 가능)&lt;/li&gt;
&lt;li data-sourcepos=&quot;34:1-34:71;939-1009&quot;&gt;Data Tier &amp;rarr; 가장 안쪽 &lt;b&gt;Private Subnet&lt;/b&gt; (Application Tier에서 오는 트래픽만 허용)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-sourcepos=&quot;36:1-36:135;1011-1145&quot; data-ke-size=&quot;size16&quot;&gt;각 계층 사이의 경계는 보안그룹으로 강제된다. 예를 들어 Data Tier의 보안그룹은 &quot;Application Tier 보안그룹에서 오는 3306 포트 요청만 허용&quot;처럼 설정해서, DB 서버가 인터넷과 통신할 물리적 경로 자체를 없애버린다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-sourcepos=&quot;38:1-38:6;1147-1152&quot; data-ke-size=&quot;size26&quot;&gt;정리&lt;/h2&gt;
&lt;p data-sourcepos=&quot;40:1-40:177;1154-1330&quot; data-ke-size=&quot;size16&quot;&gt;3-tier 구조는 &quot;누가 무엇을 처리하는가&quot;를 나누는 설계이고, VPC의 서브넷 분리는 그 설계를 네트워크 레벨에서 실제로 강제하는 장치다. 애플리케이션 아키텍처와 인프라 네트워크 설계가 결국 같은 그림을 그리고 있다는 걸 이해하면, 왜 DB 서버를 Private Subnet 깊숙이 넣는지가 자연스럽게 납득된다.&lt;/p&gt;</description>
      <category>Web/Knowledges</category>
      <author>준레논</author>
      <guid isPermaLink="true">https://junlennon0516.tistory.com/42</guid>
      <comments>https://junlennon0516.tistory.com/42#entry42comment</comments>
      <pubDate>Thu, 16 Jul 2026 16:27:34 +0900</pubDate>
    </item>
    <item>
      <title>마이너 업데이트(Minor Update)란</title>
      <link>https://junlennon0516.tistory.com/41</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;349&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PEuwy/dJMcafOco3K/A6Z8KiRRd8NiSjwghkkWzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PEuwy/dJMcafOco3K/A6Z8KiRRd8NiSjwghkkWzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PEuwy/dJMcafOco3K/A6Z8KiRRd8NiSjwghkkWzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPEuwy%2FdJMcafOco3K%2FA6Z8KiRRd8NiSjwghkkWzK%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;326&quot; height=&quot;281&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;349&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;메이저 버전이 큰 골격(예: MySQL 5 &amp;rarr; 8, Ubuntu 20 &amp;rarr; 22)을 바꾸는 거라면, &lt;b&gt;마이너 업데이트&lt;/b&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;버전 표기로 보면 &lt;b&gt;8.0.35 &amp;rarr; 8.0.36&lt;/b&gt;처럼 마지막 숫자가 올라가는 것 (Semantic Versioning 기준: MAJOR.MINOR.PATCH)&lt;/li&gt;
&lt;li&gt;새로운 기능이 추가되기도 하지만, 대개는 &lt;b&gt;버그 수정, 보안 패치, 성능 개선&lt;/b&gt; 위주&lt;/li&gt;
&lt;li&gt;원칙적으로는 &lt;b&gt;하위 호환성(backward compatibility)을 깨지 않는 것&lt;/b&gt;이 목표 &amp;rarr; 예전 구문/설정이 그대로 동작해야 함&lt;/li&gt;
&lt;li&gt;그래서 실무에서는 &quot;마이너는 자동 적용해도 큰 문제 없다&quot;는 인식이 있고, 실제로 클라우드 관리형 DB(RDS 등)는 마이너 자동 업데이트를 기본 옵션으로 켜두는 경우가 많음&lt;/li&gt;
&lt;li&gt;다만 &quot;원칙적으로 안 깨진다&quot;이지, 100% 보장은 아닙니다 &amp;mdash; 마이너 업데이트에서도 간혹 특정 엣지케이스 동작이 바뀌어 문제가 되는 경우가 있어서, 프로덕션에서는 스테이징 검증 후 적용하는 게 정석&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 92.0926%; height: 110px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style14&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 9.4186%; height: 22px;&quot;&gt;&lt;b&gt; 구분 &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 28.1987%; height: 22px;&quot;&gt;&lt;b&gt; 메이저 (Major) &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25.2385%; height: 22px;&quot;&gt;&lt;b&gt; 마이너 (Minor) &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 29.1209%; height: 22px;&quot;&gt;&lt;b&gt; 패치 (Patch) &lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 9.4186%; height: 22px;&quot;&gt;예&lt;/td&gt;
&lt;td style=&quot;width: 28.1987%; height: 22px;&quot;&gt;8.&lt;b&gt;0&lt;/b&gt; &amp;rarr; 9.&lt;b&gt;0&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25.2385%; height: 22px;&quot;&gt;8.0 &amp;rarr; 8.&lt;b&gt;1&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 29.1209%; height: 22px;&quot;&gt;8.0.1 &amp;rarr; 8.0.&lt;b&gt;2&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 9.4186%; height: 22px;&quot;&gt;성격&lt;/td&gt;
&lt;td style=&quot;width: 28.1987%; height: 22px;&quot;&gt;구조적 변화, 호환성 깨질 수 있음&lt;/td&gt;
&lt;td style=&quot;width: 25.2385%; height: 22px;&quot;&gt;기능 추가, 호환성 유지 원칙&lt;/td&gt;
&lt;td style=&quot;width: 29.1209%; height: 22px;&quot;&gt;버그&amp;middot;보안 수정만&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 44px;&quot;&gt;
&lt;td style=&quot;width: 9.4186%; height: 44px;&quot;&gt;검증 필요도&lt;/td&gt;
&lt;td style=&quot;width: 28.1987%; height: 44px;&quot;&gt;높음 (스테이징 필수)&lt;/td&gt;
&lt;td style=&quot;width: 25.2385%; height: 44px;&quot;&gt;중간&lt;/td&gt;
&lt;td style=&quot;width: 29.1209%; height: 44px;&quot;&gt;낮음~중간&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Cloud, IT Infra/개념&amp;middot;용어</category>
      <author>준레논</author>
      <guid isPermaLink="true">https://junlennon0516.tistory.com/41</guid>
      <comments>https://junlennon0516.tistory.com/41#entry41comment</comments>
      <pubDate>Thu, 16 Jul 2026 16:16:39 +0900</pubDate>
    </item>
    <item>
      <title>[OS] Ubuntu vs Rocky Linux</title>
      <link>https://junlennon0516.tistory.com/40</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1296&quot; data-origin-height=&quot;730&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bktJhG/dJMcadiv0Mr/w0In3E4Mw0k5jenmfZd9ZK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bktJhG/dJMcadiv0Mr/w0In3E4Mw0k5jenmfZd9ZK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bktJhG/dJMcadiv0Mr/w0In3E4Mw0k5jenmfZd9ZK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbktJhG%2FdJMcadiv0Mr%2Fw0In3E4Mw0k5jenmfZd9ZK%2Fimg.jpg&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;1296&quot; height=&quot;730&quot; data-origin-width=&quot;1296&quot; data-origin-height=&quot;730&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;둘 다 리눅스 배포판이지만 성격이 다릅니다.&lt;/p&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt; 구분 &lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt; Ubuntu &lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt; Rocky Linux &lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;계열&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Debian 계열&lt;/td&gt;
&lt;td&gt;RHEL(레드햇) 계열 &amp;mdash; CentOS 후속&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;패키지 관리&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;APT (apt install)&lt;/td&gt;
&lt;td&gt;DNF/YUM (dnf install)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;최신 기술 반영 빠름, 커뮤니티/생태계 넓음&lt;/td&gt;
&lt;td&gt;안정성&amp;middot;장기 호환성 중심, 기업용 표준에 가까움&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;주 사용처&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;AI/ML, 데이터분석, 그래픽/워크스테이션, &lt;br /&gt;클라우드(특히 AWS)&lt;/td&gt;
&lt;td&gt;기업 백엔드 서버, 엔터프라이즈 인프라, RHEL 대체용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;라이선스/지원 성격&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Canonical이 무료+유료 지원 병행&lt;/td&gt;
&lt;td&gt;RHEL 100% 바이너리 호환 무료 배포 지향&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;왜 Ubuntu가 AI/그래픽/데이터분석에서 우위인가&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;NVIDIA 드라이버&amp;middot;CUDA 지원&lt;/b&gt;: NVIDIA가 공식 문서/패키지에서 Ubuntu를 1순위로 지원합니다. CUDA Toolkit, cuDNN 설치 가이드도 Ubuntu 기준으로 가장 먼저, 가장 자세하게 나옵니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AI 프레임워크 생태계&lt;/b&gt;: PyTorch, TensorFlow 등의 공식 Docker 이미지나 설치 가이드가 Ubuntu 기반으로 테스트되고 배포되는 경우가 압도적으로 많습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;최신 패키지 버전&lt;/b&gt;: APT 저장소와 PPA(개인 패키지 저장소)를 통해 최신 라이브러리를 빠르게 받을 수 있어, 빠르게 변하는 AI/데이터 툴체인과 궁합이 좋습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;클라우드 GPU 인스턴스 기본 이미지&lt;/b&gt;: AWS, GCP 등 클라우드의 GPU 인스턴스 기본/추천 이미지가 Ubuntu인 경우가 많아 AI 개발자 커뮤니티의 표준처럼 자리잡았습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면 &lt;b&gt;Rocky Linux&lt;/b&gt;는 이런 최신 기술 추종보다는 &quot;몇 년 동안 큰 변화 없이 안정적으로 돌아가는 것&quot;에 초점이 맞춰져 있어서, 기업 내부 서버(DB 서버, 웹 서버, 인증 서버 등)처럼 변경을 최소화해야 하는 환경에 적합합니다.&lt;/p&gt;</description>
      <category>CS 공부/OS</category>
      <author>준레논</author>
      <guid isPermaLink="true">https://junlennon0516.tistory.com/40</guid>
      <comments>https://junlennon0516.tistory.com/40#entry40comment</comments>
      <pubDate>Thu, 16 Jul 2026 15:55:44 +0900</pubDate>
    </item>
    <item>
      <title>인프라 용어 설명 &amp;mdash; NAS, DSM, NTP</title>
      <link>https://junlennon0516.tistory.com/39</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;596&quot; data-origin-height=&quot;335&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhQDa8/dJMcahZqJoS/s6MLKFwqexqylxQvtT7n01/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhQDa8/dJMcahZqJoS/s6MLKFwqexqylxQvtT7n01/img.jpg&quot; data-alt=&quot;Nas&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhQDa8/dJMcahZqJoS/s6MLKFwqexqylxQvtT7n01/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhQDa8%2FdJMcahZqJoS%2Fs6MLKFwqexqylxQvtT7n01%2Fimg.jpg&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;596&quot; height=&quot;335&quot; data-origin-width=&quot;596&quot; data-origin-height=&quot;335&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Nas&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;NAS (Network Attached Storage)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네트워크에 연결된 &quot;공용 저장소 서버&quot;라고 생각하면 됩니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;개인 PC 하드디스크와 달리, 네트워크(LAN)를 통해 여러 사람/서버가 동시에 접속해서 파일을 읽고 쓸 수 있습니다.&lt;/li&gt;
&lt;li&gt;비유하자면 &quot;사무실 한켠에 있는 대형 창고&quot; &amp;mdash; 각자 컴퓨터에 저장하는 대신 모두가 이 창고에 접근해서 물건(파일)을 넣고 꺼내는 방식입니다.&lt;/li&gt;
&lt;li&gt;백업, 파일 공유, 미디어 서버, 가상머신 저장소 등으로 활용되며, RAID 구성을 통해 디스크 하나가 고장 나도 데이터를 보호하는 경우가 많습니다.&lt;/li&gt;
&lt;li&gt;대표 제품군: Synology, QNAP 등&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;DSM (DiskStation Manager)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Synology NAS 장비의 운영체제(OS)입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;NAS라는 &quot;창고&quot;를 관리하는 관리자 소프트웨어라고 보면 됩니다. 창고 자체가 NAS라면, DSM은 창고 안 물건을 정리하고 출입을 통제하는 &quot;관리 시스템&quot;입니다.&lt;/li&gt;
&lt;li&gt;웹 브라우저로 접속해서 파일 관리, 사용자 권한 설정, 백업 스케줄링, 패키지(앱) 설치 등을 GUI로 처리할 수 있습니다.&lt;/li&gt;
&lt;li&gt;리눅스 기반이며, 보안팀 입장에서는 DSM 자체의 취약점(CVE)이나 관리자 계정 노출 여부가 중요한 점검 포인트입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;NTP (Network Time Protocol)&lt;/h3&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;비유하자면 &quot;표준시계탑&quot; &amp;mdash; 모든 서버/장비가 각자 다른 시계를 갖고 있으면 로그 시간이 안 맞아서 문제 추적이 불가능해지는데, NTP 서버라는 표준 시계탑을 보고 다 같이 시간을 맞추는 것입니다.&lt;/li&gt;
&lt;li&gt;인프라&amp;middot;보안 관점에서 특히 중요한 이유:
&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;Kerberos 인증처럼 시간 차이가 크면(보통 5분 이상) 인증 자체가 실패하는 프로토콜도 있음&lt;/li&gt;
&lt;li&gt;인증서(SSL/TLS) 유효기간 판단도 정확한 시간에 의존&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;국내에서는 KISA나 각 기관에서 제공하는 NTP 서버(예: time.kriss.re.kr)를 많이 사용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세 개를 묶어서 예를 들면: &lt;b&gt;NAS&lt;/b&gt;는 회사 창고, &lt;b&gt;DSM&lt;/b&gt;은 그 창고를 관리하는 관리자, &lt;b&gt;NTP&lt;/b&gt;는 모든 직원(서버)이 같은 시계를 보게 해주는 시스템&lt;/p&gt;</description>
      <category>Cloud, IT Infra</category>
      <author>준레논</author>
      <guid isPermaLink="true">https://junlennon0516.tistory.com/39</guid>
      <comments>https://junlennon0516.tistory.com/39#entry39comment</comments>
      <pubDate>Thu, 16 Jul 2026 15:05:12 +0900</pubDate>
    </item>
    <item>
      <title>MAC 주소?</title>
      <link>https://junlennon0516.tistory.com/38</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;1120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/suEBK/dJMcabLNfOn/VOMt5DIjRh8CEkqKkZbVgk/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/suEBK/dJMcabLNfOn/VOMt5DIjRh8CEkqKkZbVgk/img.webp&quot; data-alt=&quot;맥도날드&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/suEBK/dJMcabLNfOn/VOMt5DIjRh8CEkqKkZbVgk/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsuEBK%2FdJMcabLNfOn%2FVOMt5DIjRh8CEkqKkZbVgk%2Fimg.webp&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;299&quot; height=&quot;262&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;1120&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;맥도날드&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;3:1-3:208;42-249&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;3:1-3:208;42-249&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;노트북 네트워크 설정 들어가 보면 어딘가에 00:1A:2B:3C:4D:5E 같은 알 수 없는 문자열이 보인다. 그게 바로 MAC 주소이다. &lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;오늘은 이 MAC 주소가 뭔지, 왜 필요한지, 어디서 쓰이는지, 그리고 어떻게 발전해왔는지 한번 정리해본다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-sourcepos=&quot;5:1-5:15;251-265&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;MAC 주소란?&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;540&quot; data-origin-height=&quot;406&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mnp2X/dJMb991sror/rNFd64zrPOh6iFsp860e71/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mnp2X/dJMb991sror/rNFd64zrPOh6iFsp860e71/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mnp2X/dJMb991sror/rNFd64zrPOh6iFsp860e71/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fmnp2X%2FdJMb991sror%2FrNFd64zrPOh6iFsp860e71%2Fimg.jpg&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;438&quot; height=&quot;329&quot; data-origin-width=&quot;540&quot; data-origin-height=&quot;406&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;7:1-7:184;267-450&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;7:1-7:184;267-450&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;MAC(Media Access Control)&lt;/b&gt; 주소는 랜카드, Wi-Fi 모듈 같은 &lt;b&gt;네트워크 장비 자체에 부여된 고유 식별 번호&lt;/b&gt;이다. 쉽게 말하면 장비의 &quot;주민등록번호&quot; 같은 것이다. 보통 제조사에서 하드웨어를 만들 때 칩에 박아 넣어서 출고하기 때문에 &lt;b&gt;&quot;물리적 주소(Physical Address)&quot;&lt;/b&gt;라고도 불린다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;7:1-7:184;267-450&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;9:1-9:202;452-653&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;형식은 12:34:56:78:9A:BC처럼 16진수 6쌍(총 48비트)으로 되어 있다. 앞의 3쌍(24비트)은 제조사 식별 코드(OUI, Organizationally Unique Identifier)고, 뒤의 3쌍은 그 제조사가 개별 장비마다 매기는 일련번호이다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;그래서 MAC 주소만 봐도 제조사를 유추할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-sourcepos=&quot;11:1-11:23;655-677&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;왜 IP 주소만으로는 부족한 걸까?&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-sourcepos=&quot;13:1-13:47;679-725&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;여기서 헷갈리기 쉬운 포인트인데, IP 주소랑 MAC 주소는 담당하는 계층이 다르다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;441&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NmfSM/dJMcaiqvasW/VwSvTCjlKwt3Qskucu0Pr1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NmfSM/dJMcaiqvasW/VwSvTCjlKwt3Qskucu0Pr1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NmfSM/dJMcaiqvasW/VwSvTCjlKwt3Qskucu0Pr1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNmfSM%2FdJMcaiqvasW%2FVwSvTCjlKwt3Qskucu0Pr1%2Fimg.jpg&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;605&quot; height=&quot;314&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;441&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;15:1-16:85;727-910&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;15:1-15:99;727-825&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;IP 주소&lt;/b&gt;: 인터넷이라는 큰 세상에서 &quot;어느 네트워크의 어느 기기&quot;인지 찾아가는 주소. 상황에 따라 바뀔 수 있다&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;16:1-16:85;826-910&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;MAC 주소&lt;/b&gt;: 같은 네트워크 안에서 &quot;이 케이블 반대편에 있는 물리적 장비가 정확히 어떤 놈이냐&quot;를 특정하는 주소. 원칙적으로는 바뀌지 않는다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-sourcepos=&quot;18:1-18:147;912-1058&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;비유하자면 IP 주소는 &quot;택배 보낼 때 쓰는 집 주소&quot;고, MAC 주소는 &quot;그 집에 사는 사람의 지문&quot; 같은 것이다. 주소(IP)로 동네까지는 찾아가지만, 마지막으로 문 앞에서 &quot;진짜 이 사람이 맞나&quot; 확인하는 건 지문(MAC)이 하는 일이라고 보면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;18:1-18:147;912-1058&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;20:1-20:165;1060-1224&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실제로 데이터가 전달될 때도 동일하다. 인터넷 구간에서는 IP 주소로 목적지 네트워크까지 찾아가고, 같은 네트워크(같은 스위치/공유기 안) 안에서 최종적으로 &quot;몇 번 포트의 이 장비&quot;로 데이터를 넘겨줄 때는 MAC 주소를 쓴다. &lt;b&gt;그래서 통신 한 번 할 때 IP와 MAC이 같이 손발을 맞추는 구조이다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-sourcepos=&quot;22:1-22:17;1226-1242&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;그래서 어디에 쓰이는데?&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;666&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHxXMZ/dJMcabLNf5d/nX4jSZKoIuWGfsZapk72FK/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHxXMZ/dJMcabLNf5d/nX4jSZKoIuWGfsZapk72FK/img.webp&quot; data-alt=&quot;맥앤치즈&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHxXMZ/dJMcabLNf5d/nX4jSZKoIuWGfsZapk72FK/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHxXMZ%2FdJMcabLNf5d%2FnX4jSZKoIuWGfsZapk72FK%2Fimg.webp&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;539&quot; height=&quot;359&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;666&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;맥앤치즈&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-sourcepos=&quot;24:1-28:64;1244-1749&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-sourcepos=&quot;24:1-24:91;1244-1334&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;네트워크 접속 제어&lt;/b&gt;: 회사나 공공 와이파이에서 &quot;등록된 기기만 접속 허용&quot; 같은 정책 쓸 때 MAC 주소로 필터링한다. 이걸 MAC 필터링이라고 부른다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;25:1-25:111;1335-1445&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;DHCP 임대&lt;/b&gt;: 공유기가 각 기기에 IP를 나눠줄 때, 내부적으로 &quot;이 MAC 주소를 가진 기기한테는 항상 이 IP를 줘라&quot; 하고 고정해주는 기능(고정 IP 할당)에 MAC 주소를 쓴다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;26:1-26:117;1446-1562&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;스위치의 MAC 주소 테이블&lt;/b&gt;: 스위치는 어느 포트에 어떤 MAC 주소를 가진 기기가 물려있는지 표(MAC 주소 테이블)를 만들어서, 데이터를 엉뚱한 포트로 뿌리지 않고 딱 필요한 곳으로만 전달한다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;27:1-27:123;1563-1685&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;자산관리/보안&lt;/b&gt;: 회사 인프라에서는 &quot;이 자리에 있는 AP 장비 MAC 주소가 뭔지&quot; 같은 걸 자산 대장에 적어두고 관리한다. 장비 교체나 장애 추적할 때 MAC 주소로 정확히 어떤 하드웨어인지 구분하기 위함이다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;28:1-28:64;1686-1749&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Wi-Fi 인증&lt;/b&gt;: 802.1X 같은 인증 방식에서도 MAC 주소가 기기 식별 요소 중 하나로 활용된다.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-sourcepos=&quot;30:1-30:34;1751-1784&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;그럼 MAC 주소는 계속 그대로였을까? &amp;mdash; 발전 이야기&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-sourcepos=&quot;32:1-32:27;1786-1812&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;MAC 주소도 시대에 따라 나름 변화가 있었어.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;347&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwN2XT/dJMcadbADWx/DWrKq7HRu3BcBN3svVX8H1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwN2XT/dJMcadbADWx/DWrKq7HRu3BcBN3svVX8H1/img.jpg&quot; data-alt=&quot;시대에 따라 변화한다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwN2XT/dJMcadbADWx/DWrKq7HRu3BcBN3svVX8H1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwN2XT%2FdJMcadbADWx%2FDWrKq7HRu3BcBN3svVX8H1%2Fimg.jpg&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;423&quot; height=&quot;255&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;347&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;시대에 따라 변화한다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;34:1-37:190;1814-2494&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;34:1-34:90;1814-1903&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;원래는 &quot;영구불변&quot;이 원칙&lt;/b&gt;: 제조사가 하드웨어에 새겨넣은 값이니까 이론상 평생 안 바뀌는 게 정석이었다. 그래서 &quot;물리 주소&quot;라는 이름이 붙은 거고.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;35:1-35:167;1904-2070&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;프라이버시 문제&lt;/b&gt;: MAC 주소가 고정돼 있다 보니, 카페나 공공장소 와이파이에서 내 스마트폰의 MAC 주소를 계속 추적하면 &quot;이 사람이 어디를 언제 갔는지&quot; 동선을 파악할 수 있는 부작용이 생겼다. 광고 회사나 매장에서 이걸 이용해서 유동인구 분석하는 데 쓰기도 했다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;36:1-36:234;2071-2304&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;그래서 나온 게 랜덤 MAC 주소(MAC Randomization)&lt;/b&gt;: 최근 스마트폰&amp;middot;노트북 OS들은 와이파이 스캔하거나 새 네트워크에 접속할 때 진짜 MAC 주소 대신 &lt;b&gt;매번 임시로 만든 가짜 MAC 주소&lt;/b&gt;를 쓰는 기능을 기본으로 넣기 시작했다. iOS, 안드로이드, Windows 최신 버전 다 이 기능이 있다. 그래서 요즘은 &quot;MAC 주소 = 절대 안 바뀌는 값&quot;이라는 공식이 완전히 성립하진 않다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;37:1-37:190;2305-2494&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;회사 와이파이에서 랜덤 MAC 때문에 골치 아픈 이유&lt;/b&gt;: 이 랜덤화 기능 때문에 회사에서 MAC 필터링이나 고정 IP 할당을 걸어놨는데 직원 기기가 계속 다른 MAC으로 인식돼서 인증이 안 되는 경우가 종종 생긴다. 그래서 실무에서는 회사 와이파이 SSID에 한해서는 랜덤 MAC을 끄고 진짜 MAC을 쓰도록 안내하는 경우가 많다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-sourcepos=&quot;39:1-39:8;2496-2503&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;정리하면&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1226&quot; data-origin-height=&quot;566&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/skVNT/dJMcabLNgh0/tbRdrvwn9PU2S6SNuu7kAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/skVNT/dJMcabLNgh0/tbRdrvwn9PU2S6SNuu7kAK/img.png&quot; data-alt=&quot;맥길 변호사&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/skVNT/dJMcabLNgh0/tbRdrvwn9PU2S6SNuu7kAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FskVNT%2FdJMcabLNgh0%2FtbRdrvwn9PU2S6SNuu7kAK%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;763&quot; height=&quot;352&quot; data-origin-width=&quot;1226&quot; data-origin-height=&quot;566&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;맥길 변호사&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;41:1-41:253;2505-2757&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;41:1-41:253;2505-2757&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;MAC 주소는 &quot;네트워크 장비 하나하나에 붙는 고유 번호&quot;&lt;/b&gt;고, 같은 네트워크 안에서 &lt;b&gt;정확히 어떤 물리적 기기인지 구분&lt;/b&gt;하는 역할을 한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;41:1-41:253;2505-2757&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;IP 주소가 &quot;동네 찾아가는 주소&quot;라면 MAC 주소는 &quot;문 앞에서 확인하는 지문&quot;인 셈이다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;41:1-41:253;2505-2757&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;자산관리, 접속 제어, 스위치 동작 원리까지 폭넓게 쓰이는데, 요즘은 프라이버시 이슈 때문에 랜덤 MAC 기능도 널리 쓰이면서 &lt;b&gt;예전처럼 &quot;무조건 고정된 값&quot;은 아니게 됐다&lt;/b&gt;는 것까지 알아두면 좋다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Network</category>
      <author>준레논</author>
      <guid isPermaLink="true">https://junlennon0516.tistory.com/38</guid>
      <comments>https://junlennon0516.tistory.com/38#entry38comment</comments>
      <pubDate>Wed, 15 Jul 2026 16:22:56 +0900</pubDate>
    </item>
    <item>
      <title>운영비용 관점에서 본 docker의 Container</title>
      <link>https://junlennon0516.tistory.com/37</link>
      <description>&lt;h3 data-sourcepos=&quot;3:1-3:24;44-67&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;컨테이너는 서버 자원과 무관하지 않다&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1448&quot; data-origin-height=&quot;1086&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhmH87/dJMb99786El/AHKtOky4REwTd60fT4vmGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhmH87/dJMb99786El/AHKtOky4REwTd60fT4vmGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhmH87/dJMb99786El/AHKtOky4REwTd60fT4vmGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhmH87%2FdJMb99786El%2FAHKtOky4REwTd60fT4vmGK%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;519&quot; height=&quot;389&quot; data-origin-width=&quot;1448&quot; data-origin-height=&quot;1086&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;5:1-5:301;69-369&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;5:1-5:301;69-369&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;컨테이너를 &quot;가상화&quot;라고 부르다 보니 마치 서버 성능과 무관하게 마법처럼 동작한다고 오해하기 쉽다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;5:1-5:301;69-369&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;하지만 컨테이너는 호스트 서버의 실제 CPU, 메모리, 디스크를 그대로 나눠 쓴다. 서버가 CPU 2코어, 메모리 4GB뿐이라면, 그 위에 컨테이너를 아무리 많이 띄워도 실제로 쓸 수 있는 자원의 총량은 그대로다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;5:1-5:301;69-369&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;5:1-5:301;69-369&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;컨테이너가 요구하는 자원(이미지 안 애플리케이션이 얼마나 무거운가)과 서버가 공급할 수 있는 자원(실제 하드웨어 역량), 이 둘이 맞아떨어져야 서비스가 제대로 돌아간다. 그리고 바로 이 관계가 운영비용에 직접 영향을 준다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-sourcepos=&quot;7:1-7:16;371-386&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;VM 시절의 비용 구조&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;952&quot; data-origin-height=&quot;618&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LWjHD/dJMcaaMMJIg/l9PPO256R36FuqVG0qzfU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LWjHD/dJMcaaMMJIg/l9PPO256R36FuqVG0qzfU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LWjHD/dJMcaaMMJIg/l9PPO256R36FuqVG0qzfU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLWjHD%2FdJMcaaMMJIg%2Fl9PPO256R36FuqVG0qzfU0%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;584&quot; height=&quot;379&quot; data-origin-width=&quot;952&quot; data-origin-height=&quot;618&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;9:1-9:220;388-607&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;9:1-9:220;388-607&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;컨테이너 이전, VM으로만 서비스를 운영하던 시절을 생각해보자. 애플리케이션 하나를 배포하려면 VM 한 대를 새로 띄워야 했다. VM은 OS 전체(커널 포함)를 통째로 새로 켜는 방식이라, VM 한 대가 최소한으로 필요로 하는 메모리와 디스크만 해도 상당하다. 작은 애플리케이션 하나를 돌리기 위해 VM 한 대를 통째로 할당하면, 그 VM의 자원 중 상당 부분은 실제로 쓰이지 않고 낭비된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;11:1-11:142;609-750&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;11:1-11:142;609-750&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;예를 들어 실제로는 CPU 0.5코어, 메모리 512MB만 있으면 충분한 애플리케이션인데, VM 한 대의 최소 사양이 CPU 1코어, 메모리 2GB라면 이미 절반 이상의 자원이 그냥 놀고 있는 셈이다. 이 낭비된 자원도 결국 클라우드 사용료로 청구된다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-sourcepos=&quot;13:1-13:23;752-774&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;컨테이너가 비용 구조를 바꾸는 방식&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-sourcepos=&quot;15:1-15:190;776-965&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;컨테이너는 커널을 공유하기 때문에 이런 낭비가 크게 줄어든다. 서버 한 대(혹은 VM 한 대) 위에서 여러 애플리케이션을 각각 별도의 VM 없이 컨테이너 단위로 촘촘하게 밀어넣을 수 있다. 아까 예로 든 CPU 0.5코어짜리 애플리케이션이라면, 딱 그만큼의 자원만 컨테이너에 할당하고 나머지 자원은 다른 컨테이너가 쓰도록 남겨둘 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;15:1-15:190;776-965&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;17:1-17:156;967-1122&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;즉 같은 물리 자원 위에 VM을 여러 대 띄우는 것보다, &lt;b&gt;컨테이너를 여러 개 띄우는 쪽이 자원 활용률이 훨씬 높다.&lt;/b&gt; 활용률이 높다는 건 &quot;같은 돈으로 더 많은 애플리케이션을 돌릴 수 있다&quot;는 뜻이고, 이는 곧 서버 대수(혹은 VM 대수) 자체를 줄일 수 있다는 의미로 이어진다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-sourcepos=&quot;19:1-19:25;1124-1148&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;오토스케일링과 결합했을 때의 비용 효과&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-sourcepos=&quot;21:1-21:207;1150-1356&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;여기에 &lt;b&gt;Kubernetes&lt;/b&gt; 같은 오케스트레이션 도구가 더해지면 비용 효율은 한 단계 더 올라간다. 트래픽이 적을 때는 컨테이너 수를 최소한으로 줄여두고, 트래픽이 몰릴 때만 컨테이너를 자동으로 늘린다. 컨테이너는 VM보다 훨씬 빨리(수 초 이내) 뜨고 사라지기 때문에, &quot;필요한 순간에만 자원을 쓰고 바로 반납하는&quot; 유연함이 VM 기반 오토스케일링보다 훨씬 정교해진다.&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6XB5b/dJMcacRiHjb/iI7PKBXKG3HxXhKedkKrMk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6XB5b/dJMcacRiHjb/iI7PKBXKG3HxXhKedkKrMk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6XB5b/dJMcacRiHjb/iI7PKBXKG3HxXhKedkKrMk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6XB5b%2FdJMcacRiHjb%2FiI7PKBXKG3HxXhKedkKrMk%2Fimg.jpg&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;482&quot; height=&quot;321&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;400&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;23:1-23:205;1358-1562&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;23:1-23:205;1358-1562&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;VM 기반 오토스케일링은 새 VM이 완전히 부팅되기까지 수십 초에서 1분 이상 걸리는 경우가 많아, 트래픽 급증에 대응하는 속도에 한계가 있다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;23:1-23:205;1358-1562&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;23:1-23:205;1358-1562&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;반면 컨테이너는 이미 떠 있는 서버(VM) 위에서 즉시 늘어나기 때문에 대응 속도가 빠르고, 그만큼 &quot;혹시 몰라서 미리 넉넉하게 띄워두는&quot; 여유 자원을 줄일 수 있다. 이 여유 자원을 줄이는 것 자체가 곧 비용 절감이다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-sourcepos=&quot;25:1-25:14;1564-1577&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;다만 공짜는 아니다&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y6RJR/dJMcahrEiLC/ZsxSHbWr6Zdw0hKKbjHBiK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y6RJR/dJMcahrEiLC/ZsxSHbWr6Zdw0hKKbjHBiK/img.jpg&quot; data-alt=&quot;자원을 필요 이상으로 여유 있게 잡은 대표적인 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y6RJR/dJMcahrEiLC/ZsxSHbWr6Zdw0hKKbjHBiK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy6RJR%2FdJMcahrEiLC%2FZsxSHbWr6Zdw0hKKbjHBiK%2Fimg.jpg&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;444&quot; height=&quot;450&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;450&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;자원을 필요 이상으로 여유 있게 잡은 대표적인 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;27:1-27:231;1579-1809&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;27:1-27:231;1579-1809&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;물론 컨테이너가 비용 효율만 가져다주는 건 아니다. 여러 컨테이너가 자원을 촘촘하게 나눠 쓰다 보면, 한 컨테이너가 예상보다 자원을 많이 써버려 다른 컨테이너에 영향을 주는 상황(Noisy Neighbor)이 생길 수 있다. 이를 막기 위해 컨테이너마다 자원 사용 상한(리소스 limit)을 설정해줘야 하는데, 이 설정을 잘못하면 오히려 자원을 필요 이상으로 여유 있게 잡아 비용 절감 효과가 줄어들 수도 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;27:1-27:231;1579-1809&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;29:1-29:141;1811-1951&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;또한 Kubernetes 같은 오케스트레이션 도구 자체를 운영하는 데도 별도의 인력과 학습 비용이 들어간다. 컨테이너 기반 구조가 무조건 저렴한 게 아니라,&lt;b&gt; &quot;자원 활용률을 얼마나 세밀하게 관리할 수 있느냐&quot;&lt;/b&gt;에 따라 절감 효과가 크게 갈린다는 뜻이다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-sourcepos=&quot;31:1-31:6;1953-1958&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;정리&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;329&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c1hLQr/dJMcahSB9Vt/HandOjt6uAz3rgvZG2CVU0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c1hLQr/dJMcahSB9Vt/HandOjt6uAz3rgvZG2CVU0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c1hLQr/dJMcahSB9Vt/HandOjt6uAz3rgvZG2CVU0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1hLQr%2FdJMcahSB9Vt%2FHandOjt6uAz3rgvZG2CVU0%2Fimg.jpg&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;400&quot; height=&quot;329&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;329&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-sourcepos=&quot;33:1-33:264;1960-2223&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;컨테이너의 운영비용 절감 효과는 결국 세 가지에서 나온다.&lt;/b&gt; &lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-sourcepos=&quot;33:1-33:264;1960-2223&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;첫째, VM보다 가벼워서 같은 자원으로 더 많은 애플리케이션을 밀도 있게 돌릴 수 있다는 점. &lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;33:1-33:264;1960-2223&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;둘째, 빠르게 뜨고 사라지기 때문에 트래픽 변화에 맞춰 자원을 정교하게 조절할 수 있다는 점. &lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;33:1-33:264;1960-2223&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;셋째, 그만큼 &quot;혹시 몰라서&quot; 미리 잡아두는 여유 자원을 줄일 수 있다는 점이다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;33:1-33:264;1960-2223&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;33:1-33:264;1960-2223&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;다만 이 절감 효과는 자동으로 따라오는 게 아니라, 컨테이너별 자원 제한을 적절히 설정하고 오케스트레이션을 제대로 운영해야 실제로 실현된다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Cloud, IT Infra/Docker &amp;amp; Kubernetes</category>
      <author>준레논</author>
      <guid isPermaLink="true">https://junlennon0516.tistory.com/37</guid>
      <comments>https://junlennon0516.tistory.com/37#entry37comment</comments>
      <pubDate>Tue, 14 Jul 2026 09:56:07 +0900</pubDate>
    </item>
    <item>
      <title>이제야 알 것 같은 &amp;mdash; Docker와 Kubernetes를 인프라 관점에서 보기</title>
      <link>https://junlennon0516.tistory.com/36</link>
      <description>&lt;h2 data-sourcepos=&quot;3:1-3:19;52-70&quot; data-ke-size=&quot;size26&quot;&gt;왜 이 둘을 같이 이야기할까&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;980&quot; data-origin-height=&quot;533&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nSaBc/dJMcaa0ibU8/ypxssWBgDDYeeup5Mv2ZH1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nSaBc/dJMcaa0ibU8/ypxssWBgDDYeeup5Mv2ZH1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nSaBc/dJMcaa0ibU8/ypxssWBgDDYeeup5Mv2ZH1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnSaBc%2FdJMcaa0ibU8%2FypxssWBgDDYeeup5Mv2ZH1%2Fimg.jpg&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;352&quot; data-origin-width=&quot;980&quot; data-origin-height=&quot;533&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;5:1-5:174;72-245&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;5:1-5:174;72-245&quot; data-ke-size=&quot;size16&quot;&gt;Docker와 Kubernetes는 늘 세트처럼 언급되지만, 사실 하는 일이 완전히 다르다. &lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;5:1-5:174;72-245&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Docker는 컨테이너를 &quot;만들고 실행하는&quot; 도구&lt;/b&gt;고, &lt;b&gt;Kubernetes는 그 컨테이너들을 &quot;여러 대의 서버에 걸쳐 관리하는&quot; 도구&lt;/b&gt;다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;5:1-5:174;72-245&quot; data-ke-size=&quot;size16&quot;&gt;인프라 관점에서 보면 이 둘은 &quot;포장&quot;과 &quot;물류&quot;의 관계에 가깝다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-sourcepos=&quot;7:1-7:29;247-275&quot; data-ke-size=&quot;size26&quot;&gt;Docker &amp;mdash; 애플리케이션을 상자에 포장하기&lt;/h2&gt;
&lt;h3 data-sourcepos=&quot;9:1-9:28;277-304&quot; data-ke-size=&quot;size23&quot;&gt;문제 상황: &quot;제 컴퓨터에서는 됐는데요?&quot;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dK1AAX/dJMcaftLlzI/nzcWvZcOecZAkVyLDpZDuk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dK1AAX/dJMcaftLlzI/nzcWvZcOecZAkVyLDpZDuk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dK1AAX/dJMcaftLlzI/nzcWvZcOecZAkVyLDpZDuk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdK1AAX%2FdJMcaftLlzI%2FnzcWvZcOecZAkVyLDpZDuk%2Fimg.jpg&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;258&quot; height=&quot;351&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;680&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;10:1-10:143;305-447&quot; data-ke-size=&quot;size16&quot;&gt;개발자가 자기 컴퓨터에서는 잘 돌아가던 프로그램이, 서버에 올리면 안 되는 경우가 흔하다. 이유는 다양하다. 서버의 Python 버전이 다르거나, 특정 라이브러리가 안 깔려 있거나, 설정 파일 경로가 다르거나. 결국 &quot;실행 환경&quot;이 서로 다른 게 문제다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-sourcepos=&quot;12:1-12:18;449-466&quot; data-ke-size=&quot;size23&quot;&gt;Docker의 해결 방식&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;732&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dfOwU8/dJMcaa0ibZH/98AI8n00aqBiKVyGyznTi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dfOwU8/dJMcaa0ibZH/98AI8n00aqBiKVyGyznTi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dfOwU8/dJMcaa0ibZH/98AI8n00aqBiKVyGyznTi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdfOwU8%2FdJMcaa0ibZH%2F98AI8n00aqBiKVyGyznTi0%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;592&quot; height=&quot;339&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;732&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-sourcepos=&quot;13:1-13:155;467-621&quot; data-ke-size=&quot;size16&quot;&gt;Docker는 애플리케이션과 그걸 돌리는 데 필요한 모든 것(코드, 라이브러리, 설정, 실행 환경)을 &lt;b&gt;이미지(Image)&lt;/b&gt;라는 하나의 상자에 통째로 포장해버린다. 이 상자를 어느 서버로 옮기든, 안에 필요한 게 다 들어있으니 &quot;제 컴퓨터에서는 됐는데요&quot; 문제가 사라진다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;15:1-15:94;623-716&quot; data-ke-size=&quot;size16&quot;&gt;이 이미지를 실제로 실행한 상태를 &lt;b&gt;컨테이너(Container)&lt;/b&gt;라고 부른다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;15:1-15:94;623-716&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;15:1-15:94;623-716&quot; data-ke-size=&quot;size16&quot;&gt;이미지가 설계도라면, 컨테이너는 그 설계도로 실제로 돌아가고 있는 프로세스인 셈이다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-sourcepos=&quot;17:1-17:26;718-743&quot; data-ke-size=&quot;size23&quot;&gt;인프라 관점에서 Docker가 바꾼 것&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1194&quot; data-origin-height=&quot;1029&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tm5yg/dJMcahLSM5u/R48aKvlptBiKDloit4nMn1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tm5yg/dJMcahLSM5u/R48aKvlptBiKDloit4nMn1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tm5yg/dJMcahLSM5u/R48aKvlptBiKDloit4nMn1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ftm5yg%2FdJMcahLSM5u%2FR48aKvlptBiKDloit4nMn1%2Fimg.jpg&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;508&quot; height=&quot;438&quot; data-origin-width=&quot;1194&quot; data-origin-height=&quot;1029&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-sourcepos=&quot;18:1-18:265;744-1008&quot; data-ke-size=&quot;size16&quot;&gt;예전에는 서버 하나에 애플리케이션을 배포하려면, 그 서버에 직접 접속해서 필요한 프로그램들을 하나하나 설치하고 설정해야 했다. Docker를 쓰면 &lt;b&gt;&quot;이미지 하나 내려받아서 실행&quot;&lt;/b&gt;만 하면 끝난다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;18:1-18:265;744-1008&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;18:1-18:265;744-1008&quot; data-ke-size=&quot;size16&quot;&gt;서버가 물리 서버든, 클라우드의 가상 서버든 상관없이 똑같은 방식으로 배포할 수 있다는 점에서,&lt;b&gt; Docker는 &quot;온프레미스와 클라우드를 가리지 않는 표준 배포 단위&quot;&lt;/b&gt;를 만들어준 셈이다. 앞서 다룬 벤더 락인 완화 전략 중 하나로 컨테이너 기술이 언급되는 이유가 바로 여기 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-sourcepos=&quot;20:1-20:37;1010-1046&quot; data-ke-size=&quot;size26&quot;&gt;Kubernetes &amp;mdash; 컨테이너를 관리하는 오케스트라 지휘자&lt;/h2&gt;
&lt;h3 data-sourcepos=&quot;22:1-22:22;1048-1069&quot; data-ke-size=&quot;size23&quot;&gt;Docker만으로는 부족한 이유&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;295&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czWhFz/dJMcagsGgEV/GobHp4eysRdjoECzkh63sk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czWhFz/dJMcagsGgEV/GobHp4eysRdjoECzkh63sk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czWhFz/dJMcagsGgEV/GobHp4eysRdjoECzkh63sk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczWhFz%2FdJMcagsGgEV%2FGobHp4eysRdjoECzkh63sk%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;434&quot; height=&quot;256&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;295&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;23:1-23:189;1070-1258&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;23:1-23:189;1070-1258&quot; data-ke-size=&quot;size16&quot;&gt;컨테이너 하나를 서버 한 대에서 돌리는 건 Docker만으로 충분하다. 그런데 실제 서비스는 다르다. 트래픽이 몰리면 컨테이너를 여러 개 더 띄워야 하고, 서버 한 대가 죽으면 다른 서버에서 대신 컨테이너를 살려야 하고, 수십 개의 컨테이너가 서로 통신할 수 있도록 네트워크도 관리해야 한다. 이걸 사람이 손으로 다 챙기기는 불가능하다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-sourcepos=&quot;25:1-25:21;1260-1280&quot; data-ke-size=&quot;size23&quot;&gt;Kubernetes가 하는 일&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uSdxJ/dJMcaa68p1I/kp76qvst55tPUqKNBKJkkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uSdxJ/dJMcaa68p1I/kp76qvst55tPUqKNBKJkkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uSdxJ/dJMcaa68p1I/kp76qvst55tPUqKNBKJkkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuSdxJ%2FdJMcaa68p1I%2Fkp76qvst55tPUqKNBKJkkK%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;608&quot; height=&quot;342&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;26:1-26:94;1281-1374&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Kubernetes(줄여서 K8s)&lt;/b&gt;는 여러 대의 서버(클러스터)에 걸쳐 수많은 컨테이너를 자동으로 배치하고, 감시하고, 필요하면 되살리는 오케스트레이션 도구다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;28:1-31:37;1376-1701&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;28:1-28:91;1376-1466&quot;&gt;&lt;b&gt;자동 배치&lt;/b&gt;: &quot;이 컨테이너 10개를 띄워줘&quot;라고 하면, Kubernetes가 클러스터 안의 여러 서버 중 자원이 남는 곳을 골라 알아서 나눠 배치한다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;29:1-29:97;1467-1563&quot;&gt;&lt;b&gt;자가 치유(Self-healing)&lt;/b&gt;: 컨테이너 하나가 갑자기 죽으면, Kubernetes가 이를 감지하고 자동으로 새 컨테이너를 다시 띄워 원래 상태로 되돌린다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;30:1-30:101;1564-1664&quot;&gt;&lt;b&gt;오토스케일링&lt;/b&gt;: 트래픽이 늘어나면 컨테이너 수를 자동으로 늘리고, 트래픽이 줄면 다시 줄인다. 앞서 다룬 Scale-out을 컨테이너 단위로 자동화한 것이라고 보면 된다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;31:1-31:37;1665-1701&quot;&gt;&lt;b&gt;로드밸런싱&lt;/b&gt;: 여러 컨테이너에 요청을 고르게 분산해준다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-sourcepos=&quot;33:1-33:25;1703-1727&quot; data-ke-size=&quot;size23&quot;&gt;클러스터 구조를 인프라 관점에서 보면&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;980&quot; data-origin-height=&quot;640&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LOBfs/dJMb99NNnt2/6Eo9WSkKm8bkyL8588qBx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LOBfs/dJMb99NNnt2/6Eo9WSkKm8bkyL8588qBx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LOBfs/dJMb99NNnt2/6Eo9WSkKm8bkyL8588qBx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLOBfs%2FdJMb99NNnt2%2F6Eo9WSkKm8bkyL8588qBx0%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;523&quot; height=&quot;342&quot; data-origin-width=&quot;980&quot; data-origin-height=&quot;640&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;34:1-34:266;1728-1993&quot; data-ke-size=&quot;size16&quot;&gt;Kubernetes 클러스터는 크게 두 종류의 서버로 나뉜다. 클러스터 전체를 지휘하는 &lt;b&gt;컨트롤 플레인(Control Plane)&lt;/b&gt;과, 실제로 컨테이너가 돌아가는 &lt;b&gt;워커 노드(Worker Node)&lt;/b&gt;다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;34:1-34:266;1728-1993&quot; data-ke-size=&quot;size16&quot;&gt;여기서 워커 노드는 대부분 AWS EC2 같은 VM으로 만들어지고, 그 VM 안에서 여러 개의 컨테이너(Kubernetes 용어로는 Pod)가 실행된다. 즉 앞서 다룬 &quot;VM 위에 컨테이너를 올리는 이중 구조&quot;가 바로 Kubernetes 클러스터의 실제 모습이다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-sourcepos=&quot;36:1-36:20;1995-2014&quot; data-ke-size=&quot;size23&quot;&gt;클라우드는 왜 이 둘을 반긴다&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VyXDq/dJMcahLSNAU/ky8GfWJd5Y9G3EmzbbIpS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VyXDq/dJMcahLSNAU/ky8GfWJd5Y9G3EmzbbIpS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VyXDq/dJMcahLSNAU/ky8GfWJd5Y9G3EmzbbIpS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVyXDq%2FdJMcahLSNAU%2Fky8GfWJd5Y9G3EmzbbIpS0%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;597&quot; height=&quot;336&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;38:1-38:259;2016-2274&quot; data-ke-size=&quot;size16&quot;&gt;클라우드 업체 입장에서 Docker와 Kubernetes는 궁합이 아주 좋다. Kubernetes가 알아서 트래픽에 맞춰 컨테이너 수를 늘리고 줄이면, 그 밑에서 VM(워커 노드) 자체도 오토스케일링으로 함께 늘고 줄일 수 있다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;38:1-38:259;2016-2274&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;38:1-38:259;2016-2274&quot; data-ke-size=&quot;size16&quot;&gt;그래서 AWS(EKS), Google Cloud(GKE), Azure(AKS) 같은 클라우드 업체들은 전부 Kubernetes를 관리형 서비스로 제공하며, 사용자는 복잡한 클러스터 구축 과정 없이 바로 컨테이너를 올릴 수 있게 됐다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-sourcepos=&quot;40:1-40:6;2276-2281&quot; data-ke-size=&quot;size23&quot;&gt;정리&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YiuQP/dJMcad3JSOp/83FpHTAdykKKVoPjDLQTak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YiuQP/dJMcad3JSOp/83FpHTAdykKKVoPjDLQTak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YiuQP/dJMcad3JSOp/83FpHTAdykKKVoPjDLQTak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYiuQP%2FdJMcad3JSOp%2F83FpHTAdykKKVoPjDLQTak%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;1536&quot; height=&quot;1024&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;42:1-42:241;2283-2523&quot; data-ke-size=&quot;size16&quot;&gt;Docker는 애플리케이션을 어디서든 똑같이 돌아가게 포장하는 도구고, Kubernetes는 그렇게 포장된 컨테이너 수백, 수천 개를 여러 서버에 걸쳐 자동으로 배치하고 관리하는 도구다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;42:1-42:241;2283-2523&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;42:1-42:241;2283-2523&quot; data-ke-size=&quot;size16&quot;&gt;인프라 관점에서 보면 둘의 조합은 &lt;b&gt;&quot;표준화된 배포 단위(Docker)&quot;&lt;/b&gt;와 &lt;b&gt;&quot;그걸 자동으로 운영하는 관제탑(Kubernetes)&quot;&lt;/b&gt;의 결합이며, 이 조합 덕분에 클라우드 환경에서 서비스를 확장하고 장애에 대응하는 과정이 크게 자동화될 수 있었다.&lt;/p&gt;</description>
      <category>Cloud, IT Infra/Docker &amp;amp; Kubernetes</category>
      <category>container</category>
      <category>Docker</category>
      <category>Kubernetes</category>
      <author>준레논</author>
      <guid isPermaLink="true">https://junlennon0516.tistory.com/36</guid>
      <comments>https://junlennon0516.tistory.com/36#entry36comment</comments>
      <pubDate>Tue, 14 Jul 2026 09:36:00 +0900</pubDate>
    </item>
    <item>
      <title>사무실 네트워크, 어떻게 흘러가는 걸까? &amp;mdash; 모뎀부터 Wi-Fi까지</title>
      <link>https://junlennon0516.tistory.com/35</link>
      <description>&lt;p data-sourcepos=&quot;3:1-3:192;49-240&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;회사에 출근해서 노트북을 켜고 Wi-Fi에 접속하는 순간, 우리 눈에는 보이지 않는 여러 장비들이 순서대로 일을 하고 있습니다. 인턴으로 사내 인프라 업무를 하면서 &quot;대체 이 신호가 어디서 어디로 흘러가는 거지?&quot;라는 의문을 정리해본 글입니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;3:1-3:192;49-240&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;모뎀, AP, POE, VLAN까지 &amp;mdash; 사무실 네트워크의 전체 흐름을 단계별로 따라가 보겠습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h2 data-sourcepos=&quot;5:1-5:16;242-257&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;전체 흐름 한눈에 보기&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1783985541547&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[ISP 회선] &amp;rarr; [모뎀/ONT] &amp;rarr; [코어 라우터/방화벽] &amp;rarr; [코어 스위치] &amp;rarr; [POE 스위치] &amp;rarr; [AP] &amp;rarr; [무선 단말]
                                                      &amp;darr;
                                      [일반 PC, 프린터, IP폰 등 유선 단말]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-sourcepos=&quot;13:1-13:58;477-534&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이 한 줄짜리 다이어그램 안에 사무실 네트워크의 거의 모든 것이 담겨 있습니다. 하나씩 뜯어보겠습니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-sourcepos=&quot;15:1-15:34;536-569&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1. 모뎀(Modem) &amp;mdash; 외부와 내부를 잇는 첫 관문&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1035&quot; data-origin-height=&quot;586&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzyU9p/dJMcaasvsRN/GFTOKCjJ7pvtxMscmmC3EK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzyU9p/dJMcaasvsRN/GFTOKCjJ7pvtxMscmmC3EK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzyU9p/dJMcaasvsRN/GFTOKCjJ7pvtxMscmmC3EK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzyU9p%2FdJMcaasvsRN%2FGFTOKCjJ7pvtxMscmmC3EK%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;507&quot; height=&quot;287&quot; data-origin-width=&quot;1035&quot; data-origin-height=&quot;586&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;17:1-17:169;571-739&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;17:1-17:169;571-739&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;모뎀&lt;/b&gt;은 Modulator(변조기)와 Demodulator(복조기)의 합성어로, KT&amp;middot;SKB&amp;middot;LGU+ 같은 통신사가 건물까지 끌어온 광케이블&amp;middot;케이블TV선&amp;middot;전화선 신호를 사내망에서 쓸 수 있는 디지털 신호로 바꿔주는 장비입니다. &lt;b&gt;&quot;외부 인터넷 세계&quot;와 &quot;내부 사내망&quot;이 처음 만나는 지점&lt;/b&gt;이라 볼 수 있죠.&lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;17:1-17:169;571-739&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;19:1-19:112;741-852&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;요즘은 광랜(FTTH) 환경이 늘면서 별도 모뎀 없이 &lt;b&gt;ONT(광 단말장치)&lt;/b&gt;가 바로 라우터로 연결되는 경우도 흔해졌습니다. 사내 인프라 관점에서는 이 장비가 가장 바깥단(Edge)에 위치합니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-sourcepos=&quot;21:1-21:34;854-887&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2. AP(Access Point) &amp;mdash; 유선을 무선으로&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;524&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0Gj08/dJMcafUTg7o/rv2CkpTy7pR9wfXdTOFbK1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0Gj08/dJMcafUTg7o/rv2CkpTy7pR9wfXdTOFbK1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0Gj08/dJMcafUTg7o/rv2CkpTy7pR9wfXdTOFbK1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0Gj08%2FdJMcafUTg7o%2Frv2CkpTy7pR9wfXdTOFbK1%2Fimg.jpg&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;682&quot; height=&quot;279&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;524&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;23:1-23:58;889-946&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;23:1-23:58;889-946&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;AP는 유선 신호를 Wi-Fi 신호로 바꿔주는 장비입니다. 다만 가정용 공유기와는 역할이 좀 다릅니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;25:1-27:66;948-1295&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;25:1-25:160;948-1107&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;가정용 공유기&lt;/b&gt;는 라우팅&amp;middot;DHCP&amp;middot;무선 송출을 한 장비가 다 처리하지만, &lt;b&gt;사무실용 AP&lt;/b&gt;는 보통 순수하게 무선 신호 송출만 담당하고, 라우팅과 DHCP는 별도 스위치나 컨트롤러가 맡는 구조가 많습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;26:1-26:122;1108-1229&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;AP가 여러 대 깔린 사무실이라면 개별 설정 대신 &lt;b&gt;중앙 컨트롤러(또는 클라우드)&lt;/b&gt;에서 일괄 관리합니다. 채널을 자동으로 최적화하고, 직원이 이동할 때 끊김 없이 다음 AP로 넘어가는 로밍도 여기서 지원됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;27:1-27:66;1230-1295&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;자산관리 대장에는 설치 위치(층/구역), 모델명, MAC 주소, 관리 SSID를 함께 기록해두는 게 일반적입니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-sourcepos=&quot;29:1-29:45;1297-1341&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;3. POE(Power over Ethernet) &amp;mdash; 랜선 하나로 전원까지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1395&quot; data-origin-height=&quot;930&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cWMONf/dJMcad3JRVf/wxBvNgqhhOGa8ySzhk3GQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cWMONf/dJMcad3JRVf/wxBvNgqhhOGa8ySzhk3GQ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cWMONf/dJMcad3JRVf/wxBvNgqhhOGa8ySzhk3GQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcWMONf%2FdJMcad3JRVf%2FwxBvNgqhhOGa8ySzhk3GQ0%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;462&quot; height=&quot;308&quot; data-origin-width=&quot;1395&quot; data-origin-height=&quot;930&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;31:1-31:102;1343-1444&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;31:1-31:102;1343-1444&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;POE(Power over Ethernet)&lt;/b&gt;는 랜케이블 한 가닥으로 데이터 전송과 전력 공급을 동시에 해결하는 기술입니다. 원래 이더넷 케이블은 데이터만 실어 날랐지만, POE는 여기에 DC 전원까지 함께 흘려보냅니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;31:1-31:102;1343-1444&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;33:1-33:123;1446-1568&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;왜 필요할까요?&lt;/b&gt; AP, IP 전화기, CCTV, 출입통제 리더기처럼 천장이나 벽 안쪽처럼 콘센트를 따로 빼기 어려운 곳에 설치할 때, 전원선 없이 랜선 하나로 설치와 전원 공급을 동시에 끝낼 수 있기 때문입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;35:1-35:21;1570-1590&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;관련 표준도 함께 알아두면 좋습니다.&lt;/span&gt;&lt;/p&gt;
&lt;div data-sourcepos=&quot;37:1-41:59;1592-1770&quot;&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt; 표준 &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt; 최대 전력 &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt; 주 용도 &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;IEEE 802.3af (POE)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;약 15.4W&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;일반 IP폰 등&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;IEEE 802.3at (POE+)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;약 30W&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;일반 AP&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;IEEE 802.3bt (POE++/4PPoE)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;60~100W&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;고성능 AP, PTZ 카메라&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-sourcepos=&quot;43:1-43:19;1772-1790&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;공급 방식은 크게 두 가지입니다.&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-sourcepos=&quot;45:1-46:60;1792-1914&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-sourcepos=&quot;45:1-45:63;1792-1854&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;POE 스위치&lt;/b&gt;: 스위치 자체에 POE 포트가 있어 스위치 &amp;rarr; 장비로 바로 전원과 데이터를 함께 공급&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;46:1-46:60;1855-1914&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;POE 인젝터(미드스팬)&lt;/b&gt;: 일반 스위치를 그대로 쓰면서 중간에 인젝터를 끼워 전원만 별도 주입&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-sourcepos=&quot;48:1-48:27;1916-1942&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;4. 전체 흐름 상세 &amp;mdash; 단계별로 따라가기&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;413&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2sOfF/dJMcacX7Bvt/8jjSALAHl8DouVlB8ow1Xk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2sOfF/dJMcacX7Bvt/8jjSALAHl8DouVlB8ow1Xk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2sOfF/dJMcacX7Bvt/8jjSALAHl8DouVlB8ow1Xk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2sOfF%2FdJMcacX7Bvt%2F8jjSALAHl8DouVlB8ow1Xk%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;1536&quot; height=&quot;413&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;413&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-sourcepos=&quot;50:1-50:30;1944-1973&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1단계: 모뎀/ONT &amp;rarr; 코어 라우터(방화벽)&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;327&quot; data-origin-height=&quot;443&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7vH6n/dJMcacDTcAb/kcCnWcCWEFaVe2lJEW0U4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7vH6n/dJMcacDTcAb/kcCnWcCWEFaVe2lJEW0U4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7vH6n/dJMcacDTcAb/kcCnWcCWEFaVe2lJEW0U4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7vH6n%2FdJMcacDTcAb%2FkcCnWcCWEFaVe2lJEW0U4K%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;327&quot; height=&quot;443&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;327&quot; data-origin-height=&quot;443&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;52:1-52:73;1975-2047&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;모뎀에서 나온 신호는 보통 &lt;b&gt;라우터 겸 방화벽(UTM)&lt;/b&gt; 장비로 먼저 들어갑니다. 이 구간에서 다음과 같은 일들이 처리됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;54:1-56:34;2049-2160&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;54:1-54:66;2049-2114&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;NAT(Network Address Translation)&lt;/b&gt;: 내부 사설 IP와 외부 공인 IP를 서로 변환&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;55:1-55:12;2115-2126&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;방화벽 정책 적용&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;56:1-56:34;2127-2160&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;VPN 터널링&lt;/b&gt;: 재택근무자 접속을 위한 통로 마련&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-sourcepos=&quot;58:1-58:87;2162-2248&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;규모가 있는 회사라면 이 구간에 &lt;b&gt;이중화(HA)&lt;/b&gt;를 두는 경우도 많습니다. 주회선이 장애를 일으키면 LTE/5G 백업 회선으로 자동 전환되는 식입니다.&lt;/span&gt;&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-sourcepos=&quot;60:1-60:26;2250-2275&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2단계: 코어 스위치 &amp;rarr; VLAN 분리&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;361&quot; data-origin-height=&quot;441&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bn3Cmo/dJMcajpiOMA/0oxjJXgQkEv9QNp4uTuH9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bn3Cmo/dJMcajpiOMA/0oxjJXgQkEv9QNp4uTuH9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bn3Cmo/dJMcajpiOMA/0oxjJXgQkEv9QNp4uTuH9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbn3Cmo%2FdJMcajpiOMA%2F0oxjJXgQkEv9QNp4uTuH9K%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;361&quot; height=&quot;441&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;361&quot; data-origin-height=&quot;441&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;62:1-62:96;2277-2372&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실무에서 가장 중요한 설계 포인트가 바로 이 지점입니다. 물리적으로는 케이블 한 가닥이지만, 논리적으로는 &lt;b&gt;VLAN&lt;/b&gt;을 통해 네트워크를 여러 갈래로 쪼갤 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;64:1-68:33;2374-2530&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;64:1-64:27;2374-2400&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;VLAN 10: 사내 업무망 (PC, 서버)&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;65:1-65:50;2401-2450&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;VLAN 20: 게스트 Wi-Fi (외부 방문자, 인터넷만 허용, 내부망 접근 차단)&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;66:1-66:26;2451-2476&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;VLAN 30: IP 전화기/화상회의 장비&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;67:1-67:21;2477-2497&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;VLAN 40: CCTV/출입통제&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;68:1-68:33;2498-2530&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;VLAN 99: 관리용 (스위치/AP 관리 인터페이스)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-sourcepos=&quot;70:1-70:141;2532-2672&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;AP는 보통 &lt;b&gt;트렁크 포트&lt;/b&gt;로 스위치와 연결되어, 케이블 한 가닥으로 업무용 SSID(VLAN 10)와 게스트 SSID(VLAN 20)를 동시에 서비스합니다. 즉 AP 한 대가 SSID별로 서로 다른 VLAN을 태깅해서 신호를 뿌려주는 구조입니다.&lt;/span&gt;&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-sourcepos=&quot;72:1-72:22;2674-2695&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;3단계: POE 스위치 &amp;rarr; AP&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;274&quot; data-origin-height=&quot;440&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/duLXbd/dJMcaf1zl5t/KsR1Hcl1vj3mMl9jgZhdq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/duLXbd/dJMcaf1zl5t/KsR1Hcl1vj3mMl9jgZhdq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/duLXbd/dJMcaf1zl5t/KsR1Hcl1vj3mMl9jgZhdq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FduLXbd%2FdJMcaf1zl5t%2FKsR1Hcl1vj3mMl9jgZhdq0%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;274&quot; height=&quot;440&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;274&quot; data-origin-height=&quot;440&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;74:1-74:239;2697-2935&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;POE 스위치는 포트별로 쓸 수 있는 전력에 더해, 스위치 전체의 &lt;b&gt;전력 예산(Power Budget)&lt;/b&gt;이 정해져 있다는 점이 중요합니다. 예를 들어 48포트 POE 스위치의 전체 전력 예산이 370W라면, AP 한 대당 802.3at(약 25.5W)을 소비할 경우 이론상 14대 정도만 풀파워로 지원할 수 있습니다. 그래서 스펙을 볼 때는 &quot;포트당 최대 전력&quot;뿐 아니라 &quot;스위치 전체 전력 예산&quot;도 함께 확인해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;74:1-74:239;2697-2935&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;76:1-76:85;2937-3021&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;AP는 802.1Q 트렁크로 스위치와 연결되고, LLDP/CDP 같은 프로토콜을 통해 스위치가 AP를 자동으로 인식해 필요한 전력 클래스를 협상합니다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-sourcepos=&quot;78:1-78:105;3023-3127&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-sourcepos=&quot;78:3-78:105;3025-3127&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;실무 팁&lt;/b&gt;: 신규 AP를 증설할 때 &quot;포트는 남는데 전력이 부족해서 AP가 안 켜지는&quot; 문제가 종종 생깁니다. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이럴 땐 스위치 교체 없이 POE 인젝터로 임시 대응하기도 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;&lt;/blockquote&gt;
&lt;h4 data-sourcepos=&quot;80:1-80:20;3129-3148&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;4단계: AP &amp;rarr; 무선 단말&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;262&quot; data-origin-height=&quot;440&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJPi0T/dJMcabESvBd/ABQznk6XS46xeVNAxuisVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJPi0T/dJMcabESvBd/ABQznk6XS46xeVNAxuisVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJPi0T/dJMcabESvBd/ABQznk6XS46xeVNAxuisVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJPi0T%2FdJMcabESvBd%2FABQznk6XS46xeVNAxuisVK%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;262&quot; height=&quot;440&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;262&quot; data-origin-height=&quot;440&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;82:1-82:133;3150-3282&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;여러 AP를 배치할 때는 &lt;b&gt;채널 겹침(Co-channel Interference)&lt;/b&gt;을 막는 것이 관건입니다. 2.4GHz 대역은 1/6/11 채널만 서로 간섭 없이 쓸 수 있고, 5GHz 대역은 채널 폭이 넓어 상대적으로 유리합니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;84:1-85:128;3284-3511&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;84:1-84:100;3284-3383&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;로밍&lt;/b&gt;: 직원이 A 구역 AP에서 B 구역 AP로 이동해도 세션이 끊기지 않고 자동으로 전환됩니다. 이건 개별 AP가 아니라 컨트롤러&amp;middot;클라우드 관리 시스템이 조율합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;85:1-85:128;3384-3511&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;인증 방식&lt;/b&gt;: 사내망은 보통 WPA2/3-Enterprise + 802.1X(RADIUS 서버 연동, 사번&amp;middot;사내 계정 인증)를 쓰고, 게스트망은 단순 WPA2-PSK나 약관 동의 후 접속하는 캡티브 포털 방식을 씁니다.&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-sourcepos=&quot;87:1-87:17;3513-3529&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;자산관리 문서를 만든다면&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-sourcepos=&quot;89:1-89:122;3531-3652&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이 구조를 매뉴얼에 정리할 때는 &quot;장비 &amp;ndash; 설치 위치 &amp;ndash; IP 대역/VLAN &amp;ndash; 연결 상위 장비&quot;를 표로 매핑해두는 것을 추천합니다. 그러면 나중에 장애가 발생했을 때 어느 구간이 문제인지 빠르게 추적할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;91:1-91:55;3654-3708&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;예를 들어 특정 층 Wi-Fi가 안 될 때는 다음과 같은 순서로 트러블슈팅을 진행할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-sourcepos=&quot;93:1-95:24;3710-3773&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-sourcepos=&quot;93:1-93:25;3710-3734&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해당 층 POE 스위치 포트 상태 확인&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;94:1-94:15;3735-3749&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;AP 링크라이트 확인&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;95:1-95:24;3750-3773&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;상위 코어 스위치까지 순차적으로 확인&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-sourcepos=&quot;97:1-97:7;3775-3781&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;마무리&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;281&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kClqC/dJMcabZgVqe/heamh819CEkJbcjnW8spP1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kClqC/dJMcabZgVqe/heamh819CEkJbcjnW8spP1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kClqC/dJMcabZgVqe/heamh819CEkJbcjnW8spP1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkClqC%2FdJMcabZgVqe%2Fheamh819CEkJbcjnW8spP1%2Fimg.jpg&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;281&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;281&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;99:1-99:192;3783-3974&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;99:1-99:192;3783-3974&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결국 사무실 네트워크는 &lt;b&gt;&quot;외부 신호를 받아들이고(모뎀) &amp;rarr; 안전하게 걸러내고(방화벽/NAT) &amp;rarr; 용도별로 나누고(VLAN) &amp;rarr; 전원과 데이터를 함께 실어 나르고(POE) &amp;rarr; 무선으로 뿌려주는(AP)&quot;&lt;/b&gt; 일련의 흐름입니다. &lt;/span&gt;&lt;/p&gt;</description>
      <category>Network</category>
      <author>준레논</author>
      <guid isPermaLink="true">https://junlennon0516.tistory.com/35</guid>
      <comments>https://junlennon0516.tistory.com/35#entry35comment</comments>
      <pubDate>Tue, 14 Jul 2026 08:52:34 +0900</pubDate>
    </item>
  </channel>
</rss>