<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>리눅스 보관 - 하우인포-IT·테크</title>
	<atom:link href="https://howinfo.kr/tag/%eb%a6%ac%eb%88%85%ec%8a%a4/feed/" rel="self" type="application/rss+xml" />
	<link>https://howinfo.kr/tag/리눅스/</link>
	<description>IT·AI 자동화 &#38; 인프라 전문 블로그 (하우인포)</description>
	<lastBuildDate>Sat, 21 Feb 2026 01:58:10 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://howinfo.kr/wp-content/uploads/2026/02/cropped-ChatGPT-Image-2026년-2월-12일-오후-05_39_40-32x32.png</url>
	<title>리눅스 보관 - 하우인포-IT·테크</title>
	<link>https://howinfo.kr/tag/리눅스/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>운영체제(OS)는 왜 필요한가? — 장애가 나면 답은 결국 OS 안에 있다</title>
		<link>https://howinfo.kr/%ec%9a%b4%ec%98%81%ec%b2%b4%ec%a0%9cos%eb%8a%94-%ec%99%9c-%ed%95%84%ec%9a%94%ed%95%9c%ea%b0%80-%ec%bb%a4%eb%84%90%c2%b7%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4%c2%b7%eb%a9%94%eb%aa%a8%eb%a6%ac/</link>
					<comments>https://howinfo.kr/%ec%9a%b4%ec%98%81%ec%b2%b4%ec%a0%9cos%eb%8a%94-%ec%99%9c-%ed%95%84%ec%9a%94%ed%95%9c%ea%b0%80-%ec%bb%a4%eb%84%90%c2%b7%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4%c2%b7%eb%a9%94%eb%aa%a8%eb%a6%ac/#respond</comments>
		
		<dc:creator><![CDATA[hong]]></dc:creator>
		<pubDate>Tue, 17 Feb 2026 03:23:14 +0000</pubDate>
				<category><![CDATA[IT기초]]></category>
		<category><![CDATA[oom]]></category>
		<category><![CDATA[OS기초]]></category>
		<category><![CDATA[가상메모리]]></category>
		<category><![CDATA[리눅스]]></category>
		<category><![CDATA[메모리]]></category>
		<category><![CDATA[서버 트러블슈팅]]></category>
		<category><![CDATA[스왑]]></category>
		<category><![CDATA[운영체제]]></category>
		<category><![CDATA[커널]]></category>
		<category><![CDATA[프로세스]]></category>
		<guid isPermaLink="false">https://howinfo.kr/?p=1770</guid>

					<description><![CDATA[<p>0️⃣ 3줄 요약 1️⃣ OS가 왜 필요하냐고요? “장애가 나면” 바로 답이 나옵니다 운영체제는 평소엔 존재감이 거의 없습니다.그런데 서버가 느려지거나, 서비스가...</p>
<p>게시물 <a href="https://howinfo.kr/%ec%9a%b4%ec%98%81%ec%b2%b4%ec%a0%9cos%eb%8a%94-%ec%99%9c-%ed%95%84%ec%9a%94%ed%95%9c%ea%b0%80-%ec%bb%a4%eb%84%90%c2%b7%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4%c2%b7%eb%a9%94%eb%aa%a8%eb%a6%ac/">운영체제(OS)는 왜 필요한가? — 장애가 나면 답은 결국 OS 안에 있다</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">0️⃣ 3줄 요약</h2>



<ul class="wp-block-list">
<li>OS는 “있으면 좋은 것”이 아니라, 장애를 막는 안전장치다.</li>



<li>커널은 프로그램 대신 CPU·메모리·디스크·네트워크를 중재한다.</li>



<li>RAM 용량보다 <strong>swap·OOM·I/O wait</strong>을 볼 줄 아는 게 더 중요하다.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1️⃣ OS가 왜 필요하냐고요? “장애가 나면” 바로 답이 나옵니다</h2>



<p>운영체제는 평소엔 존재감이 거의 없습니다.<br>그런데 서버가 느려지거나, 서비스가 갑자기 죽으면 상황이 달라집니다.</p>



<p>제가 실제로 겪었던 케이스들입니다.</p>



<ul class="wp-block-list">
<li>사이트가 갑자기 느려짐 → CPU 100% / I/O wait 증가 / swap 사용</li>



<li>잘 돌아가던 서비스가 새벽에 죽음 → OOM Killer</li>



<li>디스크 꽉 참 → 로그·백업·Docker 잔여물 폭증</li>



<li>SSH는 되는데 서비스는 안 뜸 → 권한/실행 계정 문제</li>
</ul>



<p>이때 OS는 배경이 아니라 <strong>사건 현장</strong>입니다.<br>커널·프로세스·메모리를 모르면 원인 추적 속도가 확실히 느립니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">2️⃣ 한 문장 정의</h2>



<p>운영체제(OS)는 <strong>프로그램이 하드웨어를 안전하게 쓰도록 중재하는 관리자</strong>입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3️⃣ 그림 하나로 이해하기</h2>



<p>OS를 이렇게 생각하면 편합니다.</p>



<ul class="wp-block-list">
<li>프로그램 = 요청하는 사람</li>



<li>하드웨어(CPU/디스크/네트워크) = 자원</li>



<li>커널 = 자원 배분 관리자</li>
</ul>



<p>프로그램은 직접 CPU를 잡지 못합니다.<br>항상 커널을 통해서만 접근합니다.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="512" height="591" src="https://howinfo.kr/wp-content/uploads/2026/02/image-3.png" alt="" class="wp-image-1840" srcset="https://howinfo.kr/wp-content/uploads/2026/02/image-3.png 512w, https://howinfo.kr/wp-content/uploads/2026/02/image-3-260x300.png 260w" sizes="(max-width: 512px) 100vw, 512px" /></figure>



<h2 class="wp-block-heading">4️⃣ 커널(Kernel): 내가 모르는 사이에 다 대신 처리하는 관리자</h2>



<p>워드프레스 기준으로 보면 흐름은 이렇습니다.</p>



<ol class="wp-block-list">
<li>브라우저 요청 도착</li>



<li>커널이 네트워크 패킷 수신</li>



<li>웹서버(Nginx/Apache) 프로세스에 전달</li>



<li>디스크에서 파일 읽기</li>



<li>PHP 프로세스가 DB 접근</li>



<li>결과를 다시 네트워크로 전송</li>
</ol>



<p>여기서 느려지면 보통 <strong>커널이 관리하는 자원</strong> 중 하나가 병목입니다.</p>



<h3 class="wp-block-heading">제가 실제로 겪은 사례 3가지</h3>



<p>✔ CPU는 30%인데 서버가 멈춘 느낌<br>→ 원인은 I/O wait (디스크 대기)</p>



<p>✔ 트래픽 증가 후 502/504<br>→ 동시 연결 수 / 파일 핸들 한계</p>



<p>✔ systemd로 실행하면 실패<br>→ 실행 계정 권한 문제</p>



<p>앱만 보면 안 보이고, OS 자원 관점으로 봐야 잡히는 문제입니다.</p>



<h2 class="wp-block-heading">5️⃣ 프로세스(Process): 범인을 찾는 출발점</h2>



<p>실무에서 OS를 보는 가장 현실적인 이유는 단순합니다.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>누가 자원을 먹고 있는지 찾는 것</p>
</blockquote>



<p>제가 항상 하는 순서:</p>



<figure class="wp-block-image size-full"><img decoding="async" width="655" height="492" src="https://howinfo.kr/wp-content/uploads/2026/02/linux5.png" alt="" class="wp-image-1776" srcset="https://howinfo.kr/wp-content/uploads/2026/02/linux5.png 655w, https://howinfo.kr/wp-content/uploads/2026/02/linux5-300x225.png 300w" sizes="(max-width: 655px) 100vw, 655px" /></figure>



<pre class="wp-block-preformatted">top<br>free -h<br>df -h</pre>



<ul class="wp-block-list">
<li>CPU 100% 프로세스 → 무한 루프/계산 문제 가능성</li>



<li>메모리 계속 증가 → 누수 가능성</li>



<li>프로세스 사라짐 → OOM / 크래시 확인</li>
</ul>



<p>그리고 경험상, 프로세스는 거짓말을 하지 않습니다.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="653" height="416" src="https://howinfo.kr/wp-content/uploads/2026/02/linux1.png" alt="" class="wp-image-1771" srcset="https://howinfo.kr/wp-content/uploads/2026/02/linux1.png 653w, https://howinfo.kr/wp-content/uploads/2026/02/linux1-300x191.png 300w" sizes="(max-width: 653px) 100vw, 653px" /></figure>



<ul class="wp-block-list">
<li>CPU 100% 찍는 프로세스가 있으면, 뭔가 계산/루프/대기 문제가 있고</li>



<li>메모리가 계속 늘면, 누수(Leak)거나 캐시가 풀리지 않는 구조일 가능성이 높고</li>



<li>프로세스가 죽어 있으면, 누가 죽였는지(OOM/크래시/kill)를 OS 로그에서 찾을 수 있어요.</li>
</ul>



<h3 class="wp-block-heading">“프로세스가 여러 개라서 더 안전해진” 경험</h3>



<p>예전에 한 번은 웹서버+PHP가 한 덩어리처럼 꽉 묶여 있어서<br>하나가 죽으면 전체가 불안정해졌던 적이 있어요.<br>그 뒤로는 프로세스 분리/풀 관리가 되는 구조(Nginx ↔ PHP-FPM)를 선호하게 됐습니다.</p>



<ul class="wp-block-list">
<li>문제가 생겨도 “부분”만 영향을 받는 구조</li>



<li>그리고 문제를 “프로세스 단위”로 좁혀서 해결이 쉬움</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">6️⃣ 메모리(Memory): RAM보다 swap과 OOM이 핵심</h2>



<p>초보 때는 “RAM이 많으면 안전하다”고 생각했습니다.<br>운영해보니 포인트는 다르더군요.</p>



<h3 class="wp-block-heading">메모리 문제의 전형적인 흐름</h3>



<ol class="wp-block-list">
<li>체감상 느려짐</li>



<li>swap 사용량 증가</li>



<li>load 상승</li>



<li>OOM Killer가 프로세스 강제 종료</li>
</ol>



<p>가장 당황스러운 순간은:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>“내가 내린 적 없는데 서비스가 죽어 있음”</p>
</blockquote>



<p>하지만 OS는 흔적을 남깁니다.</p>



<pre class="wp-block-preformatted">dmesg | grep -i oom<br>journalctl -xe</pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="656" height="871" src="https://howinfo.kr/wp-content/uploads/2026/02/linux4.png" alt="" class="wp-image-1772" srcset="https://howinfo.kr/wp-content/uploads/2026/02/linux4.png 656w, https://howinfo.kr/wp-content/uploads/2026/02/linux4-226x300.png 226w" sizes="auto, (max-width: 656px) 100vw, 656px" /></figure>



<p>여기서 거의 다 나옵니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">오해했던 부분: RAM 사용률</h3>



<p>free -h에서 RAM이 거의 다 차 있어도<br>그게 반드시 문제는 아닙니다.</p>



<p>리눅스는 캐시를 적극 활용합니다.</p>



<p>진짜 위험 신호는:</p>



<ul class="wp-block-list">
<li>swap이 계속 증가</li>



<li>OOM 로그 발생</li>
</ul>



<ul class="wp-block-list">
<li>리눅스면 보통 <strong>dmesg / journalctl</strong>에서 OOM 흔적을 찾을 수 있어요.</li>
</ul>



<h3 class="wp-block-heading">캐시는 “정상”인데, 오해하기 쉬웠던 경험</h3>



<p>리눅스에서 free -h 보면 RAM이 대부분 사용 중으로 보이는데<br>그게 꼭 문제는 아니더라고요.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="656" height="448" src="https://howinfo.kr/wp-content/uploads/2026/02/linux3.png" alt="" class="wp-image-1773" srcset="https://howinfo.kr/wp-content/uploads/2026/02/linux3.png 656w, https://howinfo.kr/wp-content/uploads/2026/02/linux3-300x205.png 300w" sizes="auto, (max-width: 656px) 100vw, 656px" /></figure>



<ul class="wp-block-list">
<li>OS가 <strong>캐시로 RAM을 적극 활용</strong>하는 게 정상</li>



<li>문제는 캐시가 아니라 <strong>스왑이 늘고 반응이 무너질 때</strong>입니다.</li>
</ul>



<p>즉, “RAM 사용률”보다 “swap/oom”을 더 경계하게 됐어요.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">7️⃣ 워드프레스 글 하나 열 때 OS 안에서 벌어지는 일</h2>



<p>사용자 요청<br>→ 커널이 네트워크 처리<br>→ 웹서버 프로세스 실행<br>→ PHP-FPM 동작<br>→ DB 접근 (네트워크/디스크 I/O)<br>→ 응답 반환</p>



<p>이 중 하나라도 병목이면 체감이 바로 느려집니다.</p>



<p>그래서 OS를 이해하면 이런 감이 생깁니다.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>“이건 코드가 아니라 I/O 같다.”<br>“CPU가 아니라 메모리 압박이다.”</p>
</blockquote>



<p>이 감이 운영에선 정말 큽니다.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="656" height="416" src="https://howinfo.kr/wp-content/uploads/2026/02/linux2.png" alt="" class="wp-image-1774" srcset="https://howinfo.kr/wp-content/uploads/2026/02/linux2.png 656w, https://howinfo.kr/wp-content/uploads/2026/02/linux2-300x190.png 300w" sizes="auto, (max-width: 656px) 100vw, 656px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">8️⃣ 제가 쓰는 3분 점검 루틴</h2>



<p>서버가 느릴 때 저는 거의 이 순서입니다.</p>



<pre class="wp-block-preformatted">top<br>free -h<br>df -h<br>iostat<br>journalctl -xe</pre>



<ol class="wp-block-list">
<li>누가 CPU/RAM 먹는지</li>



<li>swap 증가 여부</li>



<li>디스크 용량</li>



<li>I/O wait</li>



<li>OOM/크래시 로그</li>
</ol>



<p>이 루틴이 습관이 되면<br>OS는 시험 과목이 아니라 <strong>장애 해결 지도</strong>가 됩니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">9️⃣ 자주 하는 실수 TOP3</h2>



<p>1️⃣ CPU만 보고 판단<br>→ 실제 원인은 I/O wait</p>



<p>2️⃣ RAM 사용률만 보고 “메모리 부족” 단정<br>→ 캐시 정상 사용일 수 있음</p>



<p>3️⃣ 애플리케이션 로그만 보고 OS 로그 안 봄<br>→ OOM은 커널 로그에 남음</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">🔟 체크리스트</h2>



<ul class="wp-block-list">
<li>CPU %만 보지 않는다</li>



<li>swap 증가 여부 확인</li>



<li>OOM 로그 확인</li>



<li>디스크 용량 주기 점검</li>



<li>프로세스 단위로 문제를 좁힌다</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">FAQ</h1>



<p><strong>Q1. OS를 알면 코딩에도 도움이 되나요?</strong><br>네. 왜 느려지는지, 왜 죽는지가 보이기 시작합니다.</p>



<p><strong>Q2. 커널을 직접 건드릴 일도 있나요?</strong><br>직접 수정은 거의 없지만, 로그와 자원 상태를 읽는 일은 매우 많습니다.</p>



<p><strong>Q3. 메모리 위험 신호는 무엇인가요?</strong><br>RAM 사용률보다 swap 증가와 OOM 로그가 더 위험 신호였습니다.</p>



<p></p>
<p>게시물 <a href="https://howinfo.kr/%ec%9a%b4%ec%98%81%ec%b2%b4%ec%a0%9cos%eb%8a%94-%ec%99%9c-%ed%95%84%ec%9a%94%ed%95%9c%ea%b0%80-%ec%bb%a4%eb%84%90%c2%b7%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4%c2%b7%eb%a9%94%eb%aa%a8%eb%a6%ac/">운영체제(OS)는 왜 필요한가? — 장애가 나면 답은 결국 OS 안에 있다</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://howinfo.kr/%ec%9a%b4%ec%98%81%ec%b2%b4%ec%a0%9cos%eb%8a%94-%ec%99%9c-%ed%95%84%ec%9a%94%ed%95%9c%ea%b0%80-%ec%bb%a4%eb%84%90%c2%b7%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4%c2%b7%eb%a9%94%eb%aa%a8%eb%a6%ac/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>서버가 갑자기 느려질 때: TOP/HTOP로 10분 안에 범위 좁히는 방법</title>
		<link>https://howinfo.kr/%ec%84%9c%eb%b2%84%ea%b0%80-%eb%8a%90%eb%a6%b4-%eb%95%8c-top-htop%eb%a1%9c-%ec%9b%90%ec%9d%b8-%ec%b0%be%eb%8a%94-%ec%88%9c%ec%84%9c-10%eb%b6%84-%ec%a7%84%eb%8b%a8-%eb%a3%a8%ed%8b%b4/</link>
					<comments>https://howinfo.kr/%ec%84%9c%eb%b2%84%ea%b0%80-%eb%8a%90%eb%a6%b4-%eb%95%8c-top-htop%eb%a1%9c-%ec%9b%90%ec%9d%b8-%ec%b0%be%eb%8a%94-%ec%88%9c%ec%84%9c-10%eb%b6%84-%ec%a7%84%eb%8b%a8-%eb%a3%a8%ed%8b%b4/#respond</comments>
		
		<dc:creator><![CDATA[hong]]></dc:creator>
		<pubDate>Tue, 17 Feb 2026 00:23:05 +0000</pubDate>
				<category><![CDATA[서버·인프라]]></category>
		<category><![CDATA[htop]]></category>
		<category><![CDATA[top]]></category>
		<category><![CDATA[디스크I/O]]></category>
		<category><![CDATA[리눅스]]></category>
		<category><![CDATA[모니터링]]></category>
		<category><![CDATA[서버느려짐]]></category>
		<category><![CDATA[서버운영]]></category>
		<category><![CDATA[성능진단]]></category>
		<category><![CDATA[스왑]]></category>
		<category><![CDATA[장애대응]]></category>
		<guid isPermaLink="false">https://howinfo.kr/?p=1759</guid>

					<description><![CDATA[<p>0️⃣ 5줄 요약 (운영 관점) 1️⃣ 문제 상황 어느 날 갑자기 이런 연락이 옵니다. 이때 제 머릿속에 가장 먼저 뜨는...</p>
<p>게시물 <a href="https://howinfo.kr/%ec%84%9c%eb%b2%84%ea%b0%80-%eb%8a%90%eb%a6%b4-%eb%95%8c-top-htop%eb%a1%9c-%ec%9b%90%ec%9d%b8-%ec%b0%be%eb%8a%94-%ec%88%9c%ec%84%9c-10%eb%b6%84-%ec%a7%84%eb%8b%a8-%eb%a3%a8%ed%8b%b4/">서버가 갑자기 느려질 때: TOP/HTOP로 10분 안에 범위 좁히는 방법</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">0️⃣ 5줄 요약 (운영 관점)</h2>



<ul class="wp-block-list">
<li>느려짐 원인은 대부분 CPU / 메모리(swap) / 디스크 I/O / 프로세스 폭주 중 하나다.</li>



<li>Load는 CPU 사용률이 아니라 “밀린 작업량”이다.</li>



<li>wa(iowait)가 높으면 CPU 문제가 아니라 디스크 병목일 가능성이 크다.</li>



<li>swap이 증가하면 체감 성능은 급격히 나빠진다.</li>



<li>top → htop → 원인별 1개 명령 추가 확인이면 대부분 10분 안에 범위를 좁힐 수 있다.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1️⃣ 문제 상황</h2>



<p>어느 날 갑자기 이런 연락이 옵니다.</p>



<ul class="wp-block-list">
<li>“사이트가 너무 느려요.”</li>



<li>“SSH는 되는데 명령이 버벅여요.”</li>



<li>“DB 쿼리가 갑자기 지연됩니다.”</li>
</ul>



<p>이때 제 머릿속에 가장 먼저 뜨는 후보는 네 가지입니다.</p>



<ol class="wp-block-list">
<li>CPU 과부하</li>



<li>메모리 부족(swap)</li>



<li>디스크 I/O 병목</li>



<li>프로세스 폭주</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">2️⃣ 내 환경 (예시 기준)</h2>



<ul class="wp-block-list">
<li>Ubuntu 22.04</li>



<li>4 vCPU / 8GB RAM</li>



<li>Nginx + PHP-FPM + MariaDB</li>



<li>Docker 일부 사용</li>
</ul>



<p>※ 코어 수에 따라 Load 해석이 달라지므로 환경은 항상 먼저 확인합니다.</p>



<pre class="wp-block-preformatted">nproc</pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3️⃣ 1차 가설</h2>



<p>처음엔 대부분 “CPU가 문제인가?”부터 의심합니다.</p>



<p>하지만 경험상 절반 이상은 CPU가 아니었습니다.</p>



<p>특히:</p>



<ul class="wp-block-list">
<li>Load 높음 + CPU idle 많음 → 디스크 병목</li>



<li>체감 심한 느려짐 + swap 증가 → 메모리 압박</li>
</ul>



<p>그래서 1차 스냅샷은 반드시 OS 레벨에서 봅니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">4️⃣ 1분 스캔: top으로 상태 스냅샷</h2>



<pre class="wp-block-preformatted">top</pre>



<h3 class="wp-block-heading">1️⃣ Load average</h3>



<p>Load는 CPU 사용률이 아닙니다.<br>“대기 중인 작업 수”에 가깝습니다.</p>



<p>4코어 서버 기준:</p>



<ul class="wp-block-list">
<li>0~4 → 정상 범위</li>



<li>6~10 → 병목 의심</li>



<li>10 이상 → 거의 확실히 무언가 막힘</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">2️⃣ CPU 라인 해석</h3>



<ul class="wp-block-list">
<li>id 낮고 us 높음 → 연산/쿼리/압축 등 CPU 사용</li>



<li>sy 높음 → 커널/네트워크/컨텍스트 스위칭</li>



<li>wa 높음 → 디스크 기다리는 중 (I/O 병목)</li>
</ul>



<p>⚠ wa가 15~20% 이상이면 디스크 문제 가능성 높음</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">3️⃣ 메모리 / Swap</h3>



<ul class="wp-block-list">
<li>Swap 사용 증가 = 체감 성능 급락 시작</li>



<li>RAM 사용률만 보고 판단하면 안 됨</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">5️⃣ 3분: htop으로 범인 찾기</h2>



<pre class="wp-block-preformatted">htop</pre>



<ul class="wp-block-list">
<li>F6 → CPU% 정렬</li>



<li>F6 → MEM% 정렬</li>



<li>필요 시 “Show threads” 활성화</li>
</ul>



<p>확인 포인트:</p>



<ul class="wp-block-list">
<li>특정 프로세스가 계속 튀는가?</li>



<li>같은 서비스가 여러 개 과도하게 생성되는가?</li>



<li>사용자 계정이 예상과 다른가?</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">6️⃣ 원인별 다음 확인 (한 번만 더 본다)</h2>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">① CPU 과부하 (us/sy 높음)</h3>



<pre class="wp-block-preformatted">ps -eo pid,user,ppid,cmd,%cpu,%mem --sort=-%cpu | head</pre>



<p>확인:</p>



<ul class="wp-block-list">
<li>배치 작업인가?</li>



<li>쿼리 폭주인가?</li>



<li>무한 루프인가?</li>
</ul>



<p>운영 팁:<br>재시작은 임시 해결일 뿐.<br>로그를 먼저 확인해야 재발 방지 가능.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">② 메모리 부족 (swap 증가)</h3>



<pre class="wp-block-preformatted">free -h</pre>



<p>확인:</p>



<ul class="wp-block-list">
<li>swap 사용량</li>



<li>캐시 vs 실제 사용 메모리</li>
</ul>



<p>운영 팁:</p>



<ul class="wp-block-list">
<li>도커 메모리 제한 설정 점검</li>



<li>자바/DB 힙 설정 확인</li>



<li>OOM 로그 확인</li>
</ul>



<pre class="wp-block-preformatted">dmesg | grep -i oom</pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">③ 디스크 I/O 병목 (wa 높음)</h3>



<pre class="wp-block-preformatted">df -h</pre>



<p>90% 이상이면 위험 구간.</p>



<pre class="wp-block-preformatted">sudo du -h -d 1 /var | sort -h | tail</pre>



<p>로그/도커 파일 폭증 확인.</p>



<p>가능하면:</p>



<pre class="wp-block-preformatted">iostat -xz 1 3</pre>



<p>I/O wait가 높고 await 값이 크면 디스크 병목.</p>



<p>운영 경험상:</p>



<ul class="wp-block-list">
<li>/var/log 폭증</li>



<li>Docker json 로그 무제한 증가</li>



<li>백업 파일 미정리</li>
</ul>



<p>이 세 가지가 단골입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">④ 프로세스 폭주 / 좀비</h3>



<pre class="wp-block-preformatted">ps -eLf | wc -l</pre>



<p>좀비 프로세스:</p>



<pre class="wp-block-preformatted">ps aux | awk '$8 ~ /Z/ { print }'</pre>



<p>systemd 실패 확인:</p>



<pre class="wp-block-preformatted">systemctl --failed</pre>



<p>크래시 루프는 CPU보다 더 체감 성능을 떨어뜨립니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">7️⃣ 실제 원인 패턴 (운영 경험)</h2>



<p>제가 겪은 실제 비율 체감:</p>



<ul class="wp-block-list">
<li>디스크 I/O 병목: 35%</li>



<li>메모리(swap) 문제: 30%</li>



<li>CPU 과부하: 20%</li>



<li>프로세스/크래시 루프: 15%</li>
</ul>



<p>의외로 CPU는 가장 흔한 원인이 아니었습니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">8️⃣ 해결 후 반드시 하는 것 (재발 방지)</h2>



<p>✔ 로그 보존 및 원인 기록<br>✔ swap 사용률 모니터링 추가<br>✔ 디스크 80% 이상 알림 설정<br>✔ Docker 로그 제한 설정<br>✔ 주기적 용량 점검 자동화</p>



<p>임시 재시작만 하고 끝내면, 같은 장애가 반복됩니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">9️⃣ 10분 진단 루틴 정리</h2>



<p>1️⃣ top → Load / id / wa / swap<br>2️⃣ htop → CPU% / MEM% 정렬<br>3️⃣ 원인별 명령 1개만 추가<br>4️⃣ 임시 조치 + 로그 확인<br>5️⃣ 재발 방지 설정</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">🔟 자주 하는 실수</h2>



<ul class="wp-block-list">
<li>Load만 보고 CPU 문제로 단정</li>



<li>wa를 안 보고 CPU%만 보는 실수</li>



<li>swap 증가를 정상으로 넘김</li>



<li>디스크 95%인데 방치</li>



<li>재시작만 하고 원인 기록 안 남김</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 교훈</h2>



<p>느려짐은 대부분 “OS 자원 병목”입니다.<br>애플리케이션부터 의심하기보다,<br>커널이 관리하는 CPU/메모리/I/O 상태를 먼저 보는 습관이<br>장애 대응 속도를 가장 빠르게 올려줍니다.</p>



<p></p>
<p>게시물 <a href="https://howinfo.kr/%ec%84%9c%eb%b2%84%ea%b0%80-%eb%8a%90%eb%a6%b4-%eb%95%8c-top-htop%eb%a1%9c-%ec%9b%90%ec%9d%b8-%ec%b0%be%eb%8a%94-%ec%88%9c%ec%84%9c-10%eb%b6%84-%ec%a7%84%eb%8b%a8-%eb%a3%a8%ed%8b%b4/">서버가 갑자기 느려질 때: TOP/HTOP로 10분 안에 범위 좁히는 방법</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://howinfo.kr/%ec%84%9c%eb%b2%84%ea%b0%80-%eb%8a%90%eb%a6%b4-%eb%95%8c-top-htop%eb%a1%9c-%ec%9b%90%ec%9d%b8-%ec%b0%be%eb%8a%94-%ec%88%9c%ec%84%9c-10%eb%b6%84-%ec%a7%84%eb%8b%a8-%eb%a3%a8%ed%8b%b4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>프로세스 vs 스레드 — 실무에서 헷갈림이 줄어드는 기준</title>
		<link>https://howinfo.kr/%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4-vs-%ec%8a%a4%eb%a0%88%eb%93%9c-%ec%b0%a8%ec%9d%b4-%ec%8b%a4%eb%ac%b4-%ec%98%88%ec%8b%9c%eb%a1%9c-%ed%95%9c-%eb%b2%88%ec%97%90-%ec%9d%b4%ed%95%b4/</link>
					<comments>https://howinfo.kr/%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4-vs-%ec%8a%a4%eb%a0%88%eb%93%9c-%ec%b0%a8%ec%9d%b4-%ec%8b%a4%eb%ac%b4-%ec%98%88%ec%8b%9c%eb%a1%9c-%ed%95%9c-%eb%b2%88%ec%97%90-%ec%9d%b4%ed%95%b4/#respond</comments>
		
		<dc:creator><![CDATA[hong]]></dc:creator>
		<pubDate>Mon, 16 Feb 2026 02:51:46 +0000</pubDate>
				<category><![CDATA[서버·인프라]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[리눅스]]></category>
		<category><![CDATA[서버운영]]></category>
		<category><![CDATA[성능튜닝]]></category>
		<category><![CDATA[스레드]]></category>
		<category><![CDATA[시스템관리]]></category>
		<category><![CDATA[운영체제기초]]></category>
		<category><![CDATA[웹서버]]></category>
		<category><![CDATA[장애대응]]></category>
		<category><![CDATA[프로세스]]></category>
		<guid isPermaLink="false">https://howinfo.kr/?p=1701</guid>

					<description><![CDATA[<p>0️⃣ 5줄 요약 1️⃣ 먼저 상황부터: “왜 갑자기 서버가 전체로 죽었지?” 운영하다 보면 이런 순간이 옵니다. 이럴 때 원인을 좁히려면“이게...</p>
<p>게시물 <a href="https://howinfo.kr/%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4-vs-%ec%8a%a4%eb%a0%88%eb%93%9c-%ec%b0%a8%ec%9d%b4-%ec%8b%a4%eb%ac%b4-%ec%98%88%ec%8b%9c%eb%a1%9c-%ed%95%9c-%eb%b2%88%ec%97%90-%ec%9d%b4%ed%95%b4/">프로세스 vs 스레드 — 실무에서 헷갈림이 줄어드는 기준</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">0️⃣ 5줄 요약</h2>



<ul class="wp-block-list">
<li>**프로세스(Process)**는 서로 독립된 메모리 공간을 가진 실행 단위입니다.</li>



<li>**스레드(Thread)**는 같은 프로세스 안에서 메모리를 공유하는 실행 흐름입니다.</li>



<li>프로세스는 격리(안전성)가 강점, 스레드는 속도와 자원 효율이 강점입니다.</li>



<li>실무에선 보통 “프로세스 여러 개 + 스레드”를 혼합합니다.</li>



<li>장애/성능/자원 관점에서 이해하면 튜닝 포인트가 보입니다.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1️⃣ 먼저 상황부터: “왜 갑자기 서버가 전체로 죽었지?”</h2>



<p>운영하다 보면 이런 순간이 옵니다.</p>



<ul class="wp-block-list">
<li>특정 서비스 하나만 느린 게 아니라 전체가 버벅임</li>



<li>워커 하나가 죽었는데 전체 서비스가 영향을 받음</li>



<li>CPU는 널널한데 응답이 밀림</li>
</ul>



<p>이럴 때 원인을 좁히려면<br>“이게 프로세스 문제인가? 스레드 문제인가?”를 구분할 줄 알아야 합니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">2️⃣ 핵심 정의 3개 (딱 필요한 만큼만)</h2>



<ul class="wp-block-list">
<li><strong>프로세스</strong>: 운영체제가 관리하는 독립 실행 단위 (주소 공간 분리)</li>



<li><strong>스레드</strong>: 하나의 프로세스 안에서 실행되는 경량 실행 단위 (메모리 공유)</li>



<li><strong>컨텍스트 스위칭</strong>: 실행 대상을 바꿀 때 드는 전환 비용 (프로세스가 더 큼)</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3️⃣ 한 장으로 보는 차이</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>구분</th><th>프로세스</th><th>스레드</th></tr></thead><tbody><tr><td>메모리</td><td>서로 완전 분리</td><td>같은 공간 공유</td></tr><tr><td>안정성</td><td>하나 죽어도 영향 적음</td><td>한 스레드 문제 → 전체 영향 가능</td></tr><tr><td>생성 비용</td><td>비교적 큼</td><td>비교적 작음</td></tr><tr><td>통신</td><td>IPC 필요</td><td>공유 메모리</td></tr><tr><td>장점</td><td>격리, 안정성</td><td>속도, 효율</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">4️⃣ 실무에서 가장 많이 보는 구조</h2>



<h3 class="wp-block-heading">예시 A) 웹서버 구조</h3>



<p>보통 구조는 이렇습니다.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>프로세스 여러 개(워커) + 각 워커 내부 스레드</p>
</blockquote>



<p>이유:</p>



<ul class="wp-block-list">
<li>CPU 코어 활용을 위해 프로세스를 여러 개 띄움</li>



<li>각 프로세스 안에서 스레드로 동시 요청 처리</li>
</ul>



<p>예:</p>



<ul class="wp-block-list">
<li>Nginx → 마스터 + 워커 프로세스 구조</li>



<li>Java 서버 → 프로세스 1개 + 스레드풀 다수</li>



<li>PHP-FPM → 여러 워커 프로세스</li>
</ul>



<p>실무 포인트:</p>



<ul class="wp-block-list">
<li>워커 하나 죽어도 전체는 유지 → 프로세스 격리 효과</li>



<li>워커 내부는 스레드로 효율 확보</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">예시 B) 배치/크롤러</h3>



<p>CPU 집중 작업:</p>



<ul class="wp-block-list">
<li>이미지 처리</li>



<li>암호화</li>



<li>압축</li>
</ul>



<p>→ 프로세스가 유리한 경우 많음 (코어 분산 + 격리)</p>



<p>I/O 중심 작업:</p>



<ul class="wp-block-list">
<li>HTTP 요청</li>



<li>DB 조회</li>



<li>파일 읽기</li>
</ul>



<p>→ 스레드/비동기가 효율적</p>



<p>이 차이를 모르고 구조를 설계하면 CPU를 못 쓰거나, 메모리 폭주가 발생합니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">예시 C) 워드프레스 + DB 장애</h3>



<p>디스크가 꽉 찼던 사례를 보면:</p>



<ul class="wp-block-list">
<li>mysqld → 별도 프로세스</li>



<li>PHP-FPM → 여러 프로세스</li>



<li>웹서버 → 별도 프로세스</li>
</ul>



<p>그런데 디스크가 100% 차니 전부 오류.</p>



<p>여기서 중요한 교훈:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>프로세스 격리는 메모리 관점이고,<br>디스크/CPU는 공용 자원이다.</p>
</blockquote>



<p>프로세스 구조만 믿으면 안 됩니다.<br>자원 모니터링이 핵심입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">예시 D) Docker는 프로세스인가?</h3>



<p>Docker는 VM이 아닙니다.</p>



<ul class="wp-block-list">
<li>호스트 커널 공유</li>



<li>내부에서 일반 프로세스/스레드 실행</li>
</ul>



<p>컨테이너가 죽는다는 건 보통<br>“그 안의 메인 프로세스가 죽었다”는 뜻입니다.</p>



<p>그래서 PID 1 관리가 중요합니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">5️⃣ 리눅스에서 바로 확인하는 법</h2>



<h3 class="wp-block-heading">프로세스 보기</h3>



<pre class="wp-block-preformatted">ps aux | head</pre>



<h3 class="wp-block-heading">스레드까지 보기</h3>



<pre class="wp-block-preformatted">ps -eLf | head</pre>



<h3 class="wp-block-heading">특정 PID 스레드 수</h3>



<pre class="wp-block-preformatted">ps -o nlwp= -p &lt;PID&gt;</pre>



<p>nlwp = 스레드 수</p>



<h3 class="wp-block-heading">top에서 스레드 모드</h3>



<pre class="wp-block-preformatted">top -H</pre>



<p>실무에서는 <code>nlwp</code>가 갑자기 늘어나면<br>스레드 폭주를 의심합니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">6️⃣ 선택 기준 (운영 관점)</h2>



<p>✔ 안정성이 더 중요하다 → 프로세스 비중 ↑<br>✔ 처리량/공유 데이터가 중요하다 → 스레드 비중 ↑<br>✔ 대부분은 “혼합 구조”가 정답</p>



<p>튜닝할 때는 이렇게 봅니다:</p>



<ul class="wp-block-list">
<li>워커 수 = CPU 코어 활용</li>



<li>스레드풀 크기 = 동시성 제한</li>



<li>메모리 한계 = 프로세스 수와 직결</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">7️⃣ 자주 하는 오해</h2>



<p>❌ 스레드는 무조건 빠르다<br>→ 동기화/락 경쟁 심하면 오히려 느려짐</p>



<p>❌ 프로세스면 무조건 안전하다<br>→ 디스크/CPU는 공유 자원</p>



<p>❌ 컨테이너면 완전 격리다<br>→ 커널은 공유</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">8️⃣ 장애 대응 체크리스트</h2>



<ul class="wp-block-list">
<li>특정 프로세스만 죽었나, 전체인가?</li>



<li>스레드 수(NLWP)가 비정상적으로 늘었나?</li>



<li>CPU 코어 대비 워커 수 적절한가?</li>



<li>스레드풀 제한 설정했는가?</li>



<li>디스크/메모리 같은 공용 자원 병목은 아닌가?</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">9️⃣ 실무에서 얻은 교훈</h2>



<p>프로세스 vs 스레드는 시험 문제가 아니라<br>“격리와 효율의 균형” 문제입니다.</p>



<p>장애가 났을 때:</p>



<ul class="wp-block-list">
<li>메모리 격리 문제인가?</li>



<li>동기화 문제인가?</li>



<li>공용 자원 병목인가?</li>
</ul>



<p>이 질문이 바로 나오면, 대응 속도가 훨씬 빨라집니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">FAQ</h1>



<p><strong>Q1. 프로세스가 무조건 더 안전한가요?</strong><br>메모리 격리는 강하지만, 디스크/CPU 병목은 같이 영향을 받습니다.</p>



<p><strong>Q2. 스레드는 왜 위험하다고 하나요?</strong><br>메모리를 공유하기 때문에 동기화 실수나 메모리 오염이 전체 장애로 번질 수 있습니다.</p>



<p><strong>Q3. 요즘은 비동기가 대세 아닌가요?</strong><br>맞습니다. 하지만 내부적으로는 여전히 스레드/이벤트 루프 구조 이해가 필요합니다.</p>



<p></p>
<p>게시물 <a href="https://howinfo.kr/%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4-vs-%ec%8a%a4%eb%a0%88%eb%93%9c-%ec%b0%a8%ec%9d%b4-%ec%8b%a4%eb%ac%b4-%ec%98%88%ec%8b%9c%eb%a1%9c-%ed%95%9c-%eb%b2%88%ec%97%90-%ec%9d%b4%ed%95%b4/">프로세스 vs 스레드 — 실무에서 헷갈림이 줄어드는 기준</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://howinfo.kr/%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4-vs-%ec%8a%a4%eb%a0%88%eb%93%9c-%ec%b0%a8%ec%9d%b4-%ec%8b%a4%eb%ac%b4-%ec%98%88%ec%8b%9c%eb%a1%9c-%ed%95%9c-%eb%b2%88%ec%97%90-%ec%9d%b4%ed%95%b4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Docker 기초 실습 가이드</title>
		<link>https://howinfo.kr/docker-%ea%b8%b0%ec%b4%88-%ec%8b%a4%ec%8a%b5-%ea%b0%80%ec%9d%b4%eb%93%9c/</link>
					<comments>https://howinfo.kr/docker-%ea%b8%b0%ec%b4%88-%ec%8b%a4%ec%8a%b5-%ea%b0%80%ec%9d%b4%eb%93%9c/#respond</comments>
		
		<dc:creator><![CDATA[hong]]></dc:creator>
		<pubDate>Thu, 12 Feb 2026 13:18:39 +0000</pubDate>
				<category><![CDATA[IT기초]]></category>
		<category><![CDATA[ai자동화]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[docker설치]]></category>
		<category><![CDATA[nas운영]]></category>
		<category><![CDATA[리눅스]]></category>
		<category><![CDATA[리눅스서버]]></category>
		<category><![CDATA[서버구축]]></category>
		<category><![CDATA[서버운영]]></category>
		<category><![CDATA[서버자동화]]></category>
		<category><![CDATA[자동화기ㅗ]]></category>
		<category><![CDATA[컨테이너기술]]></category>
		<category><![CDATA[컨테이너실습]]></category>
		<category><![CDATA[홈서버]]></category>
		<guid isPermaLink="false">https://howinfo.kr/?p=1614</guid>

					<description><![CDATA[<p>리눅스 서버 위에 나만의 컨테이너 환경 만들기 Linux 명령어에 익숙해졌다면, 이제 한 단계 올라갈 차례입니다.요즘 서버 운영, AI, 자동화, NAS...</p>
<p>게시물 <a href="https://howinfo.kr/docker-%ea%b8%b0%ec%b4%88-%ec%8b%a4%ec%8a%b5-%ea%b0%80%ec%9d%b4%eb%93%9c/">Docker 기초 실습 가이드</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">리눅스 서버 위에 나만의 컨테이너 환경 만들기</h2>



<p>Linux 명령어에 익숙해졌다면, 이제 한 단계 올라갈 차례입니다.<br>요즘 서버 운영, AI, 자동화, NAS 환경에서 빠지지 않는 기술이 바로 <strong>Docker</strong>입니다.</p>



<p>Docker를 이해하면:</p>



<p>✔ 서버 세팅이 빨라지고<br>✔ 환경 충돌이 사라지고<br>✔ 자동화 구성이 쉬워지고<br>✔ 이식성이 극대화됩니다</p>



<p>이번 글에서는 <strong>직접 설치 → 실행 → 컨테이너 운영까지 실습</strong>해봅니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">1️⃣ Docker란 무엇인가?</h1>



<p>Docker는 <strong>컨테이너 기반 가상화 플랫폼</strong>입니다.</p>



<p>기존 가상머신(VM)은 OS를 통째로 올리지만,<br>Docker는 필요한 실행 환경만 분리해서 올립니다.</p>



<p>👉 가볍고 빠릅니다<br>👉 서버 운영에 최적화되어 있습니다</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">2️⃣ Docker 설치 실습 (Ubuntu 기준)</h1>



<h2 class="wp-block-heading">📌 1단계: 패키지 업데이트</h2>



<pre class="wp-block-code"><code>sudo apt update
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 2단계: Docker 설치</h2>



<pre class="wp-block-code"><code>sudo apt install docker.io -y
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 3단계: Docker 실행 확인</h2>



<pre class="wp-block-code"><code>docker --version
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 4단계: Docker 서비스 활성화</h2>



<pre class="wp-block-code"><code>sudo systemctl enable docker
sudo systemctl start docker
</code></pre>



<p>상태 확인:</p>



<pre class="wp-block-code"><code>sudo systemctl status docker
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">3️⃣ 첫 번째 컨테이너 실행해보기</h1>



<h2 class="wp-block-heading">📌 Hello World 실행</h2>



<pre class="wp-block-code"><code>sudo docker run hello-world
</code></pre>



<p>정상이라면 테스트 메시지가 출력됩니다.</p>



<p>👉 이 순간 Docker 엔진이 동작한 것입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">4️⃣ Nginx 웹서버 컨테이너 실행 실습</h1>



<h2 class="wp-block-heading">📌 Nginx 실행</h2>



<pre class="wp-block-code"><code>sudo docker run -d -p 8080:80 nginx
</code></pre>



<p>설명:</p>



<ul class="wp-block-list">
<li><code>-d</code> : 백그라운드 실행</li>



<li><code>-p 8080:80</code> : 포트 연결</li>



<li><code>nginx</code> : 이미지 이름</li>
</ul>



<p>브라우저에서 접속:</p>



<pre class="wp-block-code"><code>http:&#47;&#47;서버IP:8080
</code></pre>



<p>👉 웹서버가 바로 실행됩니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">5️⃣ 컨테이너 관리하기</h1>



<h2 class="wp-block-heading">📌 실행 중 컨테이너 확인</h2>



<pre class="wp-block-code"><code>docker ps
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 전체 컨테이너 보기</h2>



<pre class="wp-block-code"><code>docker ps -a
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 컨테이너 중지</h2>



<pre class="wp-block-code"><code>docker stop 컨테이너ID
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 컨테이너 삭제</h2>



<pre class="wp-block-code"><code>docker rm 컨테이너ID
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">6️⃣ Docker 이미지 관리</h1>



<h2 class="wp-block-heading">📌 이미지 목록 확인</h2>



<pre class="wp-block-code"><code>docker images
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 이미지 삭제</h2>



<pre class="wp-block-code"><code>docker rmi 이미지ID
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">7️⃣ 실제 운영 감각 익히기 (중요)</h1>



<p>Docker는 단순 실행이 목적이 아닙니다.</p>



<p>운영에서 중요한 개념:</p>



<h3 class="wp-block-heading">🔹 포트 매핑</h3>



<p>외부포트:내부포트</p>



<pre class="wp-block-code"><code>-p 3000:3000
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">🔹 볼륨 연결 (데이터 보존)</h3>



<pre class="wp-block-code"><code>docker run -d -p 8080:80 -v /home/data:/usr/share/nginx/html nginx
</code></pre>



<p>👉 컨테이너 삭제해도 데이터 유지</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">🔹 재부팅 시 자동 실행</h3>



<pre class="wp-block-code"><code>docker run -d --restart=always nginx
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">8️⃣ Docker Compose 기초 (실무 핵심)</h1>



<p>Docker를 여러 개 운영하면 <code>docker-compose</code>가 필요합니다.</p>



<p>설치:</p>



<pre class="wp-block-code"><code>sudo apt install docker-compose -y
</code></pre>



<p>예시 <code>docker-compose.yml</code></p>



<pre class="wp-block-code"><code>version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
</code></pre>



<p>실행:</p>



<pre class="wp-block-code"><code>docker-compose up -d
</code></pre>



<p>👉 실무에서는 거의 이 방식으로 운영합니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">📌 Docker를 배우면 생기는 변화</h1>



<p>✔ 서버 세팅 시간이 획기적으로 단축<br>✔ 개발/운영 환경 동일화<br>✔ 자동화 구성 쉬워짐<br>✔ NAS 활용도 상승<br>✔ AI 모델 배포 쉬워짐</p>



<p>Docker는 이제 선택이 아니라 기본입니다.</p>



<p></p>
<p>게시물 <a href="https://howinfo.kr/docker-%ea%b8%b0%ec%b4%88-%ec%8b%a4%ec%8a%b5-%ea%b0%80%ec%9d%b4%eb%93%9c/">Docker 기초 실습 가이드</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://howinfo.kr/docker-%ea%b8%b0%ec%b4%88-%ec%8b%a4%ec%8a%b5-%ea%b0%80%ec%9d%b4%eb%93%9c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Linux 기초 실습 가이드</title>
		<link>https://howinfo.kr/linux-%ea%b8%b0%ec%b4%88-%ec%8b%a4%ec%8a%b5-%ea%b0%80%ec%9d%b4%eb%93%9c/</link>
					<comments>https://howinfo.kr/linux-%ea%b8%b0%ec%b4%88-%ec%8b%a4%ec%8a%b5-%ea%b0%80%ec%9d%b4%eb%93%9c/#respond</comments>
		
		<dc:creator><![CDATA[hong]]></dc:creator>
		<pubDate>Thu, 12 Feb 2026 13:12:20 +0000</pubDate>
				<category><![CDATA[IT기초]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[리눅스]]></category>
		<category><![CDATA[리눅스기초]]></category>
		<category><![CDATA[리눅스명령어]]></category>
		<category><![CDATA[리눅스서버]]></category>
		<category><![CDATA[리눅스실습]]></category>
		<category><![CDATA[리눅스터미널]]></category>
		<category><![CDATA[서버기초]]></category>
		<category><![CDATA[서버운영기초]]></category>
		<category><![CDATA[시스템관리]]></category>
		<category><![CDATA[터미널명령어]]></category>
		<guid isPermaLink="false">https://howinfo.kr/?p=1611</guid>

					<description><![CDATA[<p>터미널 명령어부터 서버 운영 감각까지 한 번에 익히기 운영체제를 이해했다면, 이제는 직접 만져볼 차례입니다.Linux는 “읽는 것”보다 “직접 입력해보는 것”이 훨씬...</p>
<p>게시물 <a href="https://howinfo.kr/linux-%ea%b8%b0%ec%b4%88-%ec%8b%a4%ec%8a%b5-%ea%b0%80%ec%9d%b4%eb%93%9c/">Linux 기초 실습 가이드</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">터미널 명령어부터 서버 운영 감각까지 한 번에 익히기</h2>



<p>운영체제를 이해했다면, 이제는 직접 만져볼 차례입니다.<br>Linux는 “읽는 것”보다 “직접 입력해보는 것”이 훨씬 중요합니다.</p>



<p>이 글에서는 <strong>실제로 가장 많이 사용하는 명령어 위주</strong>로 실습을 진행해보겠습니다.</p>



<p>👉 실습 환경: Ubuntu / NAS / Orange Pi / 가상머신 모두 가능</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">1️⃣ 현재 시스템 상태 확인하기</h1>



<h2 class="wp-block-heading">📌 현재 위치 확인</h2>



<pre class="wp-block-code"><code>pwd
</code></pre>



<p>현재 내가 있는 디렉토리 경로를 보여줍니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 파일 목록 보기</h2>



<pre class="wp-block-code"><code>ls
ls -al
</code></pre>



<ul class="wp-block-list">
<li><code>-a</code> : 숨김 파일 포함</li>



<li><code>-l</code> : 상세 정보 표시</li>
</ul>



<p>👉 서버 운영에서 가장 기본이 되는 명령어입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">2️⃣ 디렉토리(폴더) 다루기</h1>



<h2 class="wp-block-heading">📌 디렉토리 이동</h2>



<pre class="wp-block-code"><code>cd /home
cd ..
cd ~
</code></pre>



<ul class="wp-block-list">
<li><code>..</code> → 상위 폴더</li>



<li><code>~</code> → 내 홈 디렉토리</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 디렉토리 생성</h2>



<pre class="wp-block-code"><code>mkdir test_folder
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 디렉토리 삭제</h2>



<pre class="wp-block-code"><code>rm -r test_folder
</code></pre>



<p>⚠ <code>-r</code> 옵션은 하위 폴더까지 삭제<br>⚠ 서버에서 매우 조심해야 합니다</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">3️⃣ 파일 다루기 실습</h1>



<h2 class="wp-block-heading">📌 파일 생성</h2>



<pre class="wp-block-code"><code>touch test.txt
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 파일 내용 확인</h2>



<pre class="wp-block-code"><code>cat test.txt
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 파일 편집 (nano 사용)</h2>



<pre class="wp-block-code"><code>nano test.txt
</code></pre>



<ul class="wp-block-list">
<li>수정 후 → <code>Ctrl + X</code></li>



<li>Y → 저장</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 파일 복사</h2>



<pre class="wp-block-code"><code>cp test.txt copy.txt
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 파일 이동 / 이름 변경</h2>



<pre class="wp-block-code"><code>mv copy.txt newname.txt
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">4️⃣ 권한(Permission) 이해하기</h1>



<p>파일 상세 보기:</p>



<pre class="wp-block-code"><code>ls -l
</code></pre>



<p>출력 예시:</p>



<pre class="wp-block-code"><code>-rwxr-xr--
</code></pre>



<p>구조:</p>



<pre class="wp-block-code"><code>&#91;소유자]&#91;그룹]&#91;기타 사용자]
</code></pre>



<h2 class="wp-block-heading">📌 권한 변경</h2>



<pre class="wp-block-code"><code>chmod 755 test.txt
</code></pre>



<p>755 의미:</p>



<ul class="wp-block-list">
<li>7 → 읽기+쓰기+실행</li>



<li>5 → 읽기+실행</li>



<li>5 → 읽기+실행</li>
</ul>



<p>👉 서버 보안의 기본입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">5️⃣ 프로세스 확인하기</h1>



<h2 class="wp-block-heading">📌 실행 중인 프로세스 보기</h2>



<pre class="wp-block-code"><code>ps aux
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 실시간 모니터링</h2>



<pre class="wp-block-code"><code>top
</code></pre>



<p>종료: <code>q</code></p>



<p>👉 CPU 사용률, 메모리 확인 가능</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">6️⃣ 서비스 관리 (서버 운영 핵심)</h1>



<p>Linux는 대부분 <strong>systemd</strong> 기반입니다.</p>



<h2 class="wp-block-heading">📌 서비스 상태 확인</h2>



<pre class="wp-block-code"><code>systemctl status nginx
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 서비스 시작</h2>



<pre class="wp-block-code"><code>systemctl start nginx
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 부팅 시 자동 실행 설정</h2>



<pre class="wp-block-code"><code>systemctl enable nginx
</code></pre>



<p>👉 NAS, AI 서버 자동 실행 시 필수 개념</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">7️⃣ 로그 확인하기 (장애 분석 기본)</h1>



<pre class="wp-block-code"><code>tail -f /var/log/syslog
</code></pre>



<p>실시간 로그 확인</p>



<p>👉 장애 발생 시 가장 먼저 보는 영역</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">8️⃣ 패키지 설치 (Ubuntu 기준)</h1>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install htop
</code></pre>



<p>설치 후 실행:</p>



<pre class="wp-block-code"><code>htop
</code></pre>



<p><code>top</code>보다 보기 편한 시스템 모니터링 도구</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">9️⃣ 네트워크 확인</h1>



<h2 class="wp-block-heading">📌 IP 확인</h2>



<pre class="wp-block-code"><code>ip addr
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 포트 확인</h2>



<pre class="wp-block-code"><code>netstat -tulnp
</code></pre>



<p>👉 어떤 서비스가 어떤 포트를 사용하는지 확인 가능</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">🔟 실습 루틴 추천</h1>



<p>매일 10분씩 아래를 반복해보세요:</p>



<ol class="wp-block-list">
<li>폴더 만들기</li>



<li>파일 생성/수정</li>



<li>권한 변경</li>



<li>프로세스 확인</li>



<li>서비스 재시작</li>



<li>로그 확인</li>
</ol>



<p>2주만 해도 서버 감각이 생깁니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">📌 Linux 실습을 하면 생기는 변화</h1>



<p>✔ 서버가 무섭지 않습니다<br>✔ NAS 관리가 쉬워집니다<br>✔ 자동화가 이해됩니다<br>✔ 장애 분석이 가능해집니다<br>✔ Docker 구조가 이해됩니다</p>



<p>Linux는 “암기”가 아니라 “반복 실습”입니다.</p>
<p>게시물 <a href="https://howinfo.kr/linux-%ea%b8%b0%ec%b4%88-%ec%8b%a4%ec%8a%b5-%ea%b0%80%ec%9d%b4%eb%93%9c/">Linux 기초 실습 가이드</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://howinfo.kr/linux-%ea%b8%b0%ec%b4%88-%ec%8b%a4%ec%8a%b5-%ea%b0%80%ec%9d%b4%eb%93%9c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>우분투에서 비주얼 스튜디오 코드 설치 방법 (초보자도 OK)</title>
		<link>https://howinfo.kr/%ec%9a%b0%eb%b6%84%ed%88%ac%ec%97%90%ec%84%9c-%eb%b9%84%ec%a5%ac%ec%96%bc%ec%8a%a4%ed%8a%9c%eb%94%94%ec%96%b4-%ec%84%a4%ec%b9%98-%ec%b4%88%ea%b8%b0%ed%99%94/</link>
					<comments>https://howinfo.kr/%ec%9a%b0%eb%b6%84%ed%88%ac%ec%97%90%ec%84%9c-%eb%b9%84%ec%a5%ac%ec%96%bc%ec%8a%a4%ed%8a%9c%eb%94%94%ec%96%b4-%ec%84%a4%ec%b9%98-%ec%b4%88%ea%b8%b0%ed%99%94/#respond</comments>
		
		<dc:creator><![CDATA[hong]]></dc:creator>
		<pubDate>Tue, 03 Feb 2026 09:52:45 +0000</pubDate>
				<category><![CDATA[개발·코딩]]></category>
		<category><![CDATA[ir기초]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[vscode]]></category>
		<category><![CDATA[개발환경]]></category>
		<category><![CDATA[리눅스]]></category>
		<category><![CDATA[비주얼스튜디오코드]]></category>
		<category><![CDATA[우분투]]></category>
		<category><![CDATA[홈서버]]></category>
		<guid isPermaLink="false">https://howinfo.kr/?p=1221</guid>

					<description><![CDATA[<p>리눅스 환경에서 개발을 시작하려면 가장 먼저 설치하게 되는 도구가 바로Visual Studio Code(VS Code)입니다. 가볍고 빠르면서도 확장성이 뛰어나,파이썬·웹·서버 관리까지 폭넓게 사용할...</p>
<p>게시물 <a href="https://howinfo.kr/%ec%9a%b0%eb%b6%84%ed%88%ac%ec%97%90%ec%84%9c-%eb%b9%84%ec%a5%ac%ec%96%bc%ec%8a%a4%ed%8a%9c%eb%94%94%ec%96%b4-%ec%84%a4%ec%b9%98-%ec%b4%88%ea%b8%b0%ed%99%94/">우분투에서 비주얼 스튜디오 코드 설치 방법 (초보자도 OK)</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></description>
										<content:encoded><![CDATA[
<p id="SE-c8fb7103-343b-4e27-a1bf-2cc82a1084a4">리눅스 환경에서 개발을 시작하려면 가장 먼저 설치하게 되는 도구가 바로<br><strong>Visual Studio Code</strong>(VS Code)입니다.</p>



<p>가볍고 빠르면서도 확장성이 뛰어나,<br>파이썬·웹·서버 관리까지 폭넓게 사용할 수 있어 우분투 사용자에게 특히 인기가 많습니다.</p>



<p>이번 글에서는 <strong>우분투(Ubuntu)에서 VS Code를 설치하는 가장 쉬운 방법</strong>을 정리해보겠습니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">🐧 왜 우분투에서 VS Code를 많이 쓸까?</h2>



<ul class="wp-block-list">
<li>마이크로소프트 공식 지원</li>



<li>터미널·SSH·Docker 연동에 강함</li>



<li>확장 프로그램으로 IDE급 활용 가능</li>



<li>서버·홈서버·개발 환경에 잘 어울림</li>
</ul>



<p>CLI 중심인 우분투와 VS Code는 궁합이 아주 좋은 조합입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">✅ 방법 1. 스냅(Snap)으로 설치하기 (가장 간단)</h2>



<p>우분투 기본 패키지 관리자인 <strong>Snap</strong>을 이용하면 한 줄로 설치할 수 있습니다.</p>



<pre class="wp-block-code"><code>sudo snap install code --classic
</code></pre>



<h3 class="wp-block-heading">장점</h3>



<ul class="wp-block-list">
<li>설치가 매우 간단</li>



<li>자동 업데이트 지원</li>



<li>공식 패키지</li>
</ul>



<p>설치가 끝나면 앱 메뉴에서 <strong>Visual Studio Code</strong>를 바로 실행할 수 있습니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">✅ 방법 2. 공식 .deb 패키지로 설치하기 (권장)</h2>



<p>마이크로소프트에서 제공하는 공식 저장소를 등록해 설치하는 방법입니다.</p>



<h3 class="wp-block-heading">1️⃣ 필수 패키지 설치</h3>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install wget gpg -y
</code></pre>



<h3 class="wp-block-heading">2️⃣ 마이크로소프트 GPG 키 추가</h3>



<pre class="wp-block-code"><code>wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor &gt; packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
</code></pre>



<h3 class="wp-block-heading">3️⃣ VS Code 저장소 추가</h3>



<pre class="wp-block-code"><code>echo "deb &#91;arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] \
https://packages.microsoft.com/repos/code stable main" | \
sudo tee /etc/apt/sources.list.d/vscode.list
</code></pre>



<h3 class="wp-block-heading">4️⃣ 설치</h3>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install code -y
</code></pre>



<p>👉 이 방식은 <strong>apt 업데이트와 함께 관리</strong>할 수 있어 안정적입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">▶ 설치 확인 및 실행</h2>



<p>터미널에서 아래 명령어를 입력해보세요.</p>



<pre class="wp-block-code"><code>code
</code></pre>



<p>정상적으로 실행되면 설치 성공입니다 🎉</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">🔧 설치 후 꼭 해볼 설정</h2>



<ul class="wp-block-list">
<li>한글 입력 문제 → <code>ibus</code> 설정 확인</li>



<li>확장 추천
<ul class="wp-block-list">
<li>Python</li>



<li>Remote &#8211; SSH</li>



<li>Docker</li>



<li>GitLens</li>
</ul>
</li>



<li>테마 변경으로 가독성 개선</li>
</ul>



<p>VS Code는 <strong>설치 후 설정에 따라 생산성이 크게 달라집니다.</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">✨ 마무리</h2>



<p>우분투에서 VS Code를 설치하는 방법은 여러 가지가 있지만,<br><strong>Snap 또는 공식 저장소 방식</strong>만 알아도 충분합니다.</p>



<p id="SE-c8fb7103-343b-4e27-a1bf-2cc82a1084a4">개발, 서버 관리, 홈서버 운영까지<br>우분투 환경에서 VS Code 하나면 대부분의 작업을 커버할 수 있습니다.</p>



<p id="SE-c8fb7103-343b-4e27-a1bf-2cc82a1084a4"></p>
<p>게시물 <a href="https://howinfo.kr/%ec%9a%b0%eb%b6%84%ed%88%ac%ec%97%90%ec%84%9c-%eb%b9%84%ec%a5%ac%ec%96%bc%ec%8a%a4%ed%8a%9c%eb%94%94%ec%96%b4-%ec%84%a4%ec%b9%98-%ec%b4%88%ea%b8%b0%ed%99%94/">우분투에서 비주얼 스튜디오 코드 설치 방법 (초보자도 OK)</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://howinfo.kr/%ec%9a%b0%eb%b6%84%ed%88%ac%ec%97%90%ec%84%9c-%eb%b9%84%ec%a5%ac%ec%96%bc%ec%8a%a4%ed%8a%9c%eb%94%94%ec%96%b4-%ec%84%a4%ec%b9%98-%ec%b4%88%ea%b8%b0%ed%99%94/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
