<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>LYMARU</title>
    <link>https://lymaru.gleeze.com/</link>
    <description></description>
    <pubDate>Sun, 05 Apr 2026 01:26:39 +0000</pubDate>
    <item>
      <title>Mac(맥 미니) 초기 세팅 및 필수 유틸리티 설정</title>
      <link>https://lymaru.gleeze.com/mac-maeg-mini-cogi-seting-mic-pilsu-yutilriti-seoljeong</link>
      <description>&lt;![CDATA[Mac(맥 미니) 초기 세팅 및 필수 유틸리티 설정&#xA;&#xA;새로운 Mac(또는 Mac Mini)을 구매하거나 포맷한 후, 쾌적한 개발 및 작업 환경을 구축하기 위해 가장 먼저 해야 할 시스템 설정과 필수 유틸리티 설치 방법을 정리했습니다.&#xA;&#xA;---&#xA;&#xA;1. Mac 시스템 및 환경 설정&#xA;&#xA;기본적으로 제공되는 불편한 설정들을 윈도우(Windows)나 일반적인 마우스 환경에 맞게 튜닝합니다. (macOS Ventura 이상 기준)&#xA;&#xA;마우스 설정&#xA;마우스 휠 방향 변경:  (애플 로고)   시스템 설정   마우스로 이동하여 &#39;자연스러운 스크롤&#39;을 선택 해제합니다. (해제해야 휠을 내릴 때 화면이 아래로 내려갑니다.)&#xA;마우스 가속 끄기 (정밀한 컨트롤):    시스템 설정   마우스   고급에서 &#39;포인터 가속&#39;을 해제합니다.&#xA;&#xA;키보드 보조 키(Command/Control) 변경&#xA;윈도우용 키보드를 사용할 경우 Alt와 Win 키의 위치를 Mac에 맞게 변경해야 합니다.&#xA;   시스템 설정   키보드   키보드 단축키   보조 키&#xA;연결된 키보드를 선택한 후, Option(⌥) 키와 Command(⌘) 키의 역할을 서로 바꿔줍니다.&#xA;&#xA;Finder (파인더) 개발자 세팅&#xA;파일의 정확한 경로와 남은 용량을 한눈에 파악하기 위해 하단 막대를 활성화합니다.&#xA;Finder 실행 후 상단 메뉴 바에서 &#39;보기&#39; 클릭&#xA;&#39;경로 막대 보기(Show Path Bar)&#39; 및 &#39;상태 막대 보기(Show Status Bar)&#39; 클릭&#xA;&#xA;원격 접속 (SSH) 허용&#xA;외부 기기나 홈 서버에서 이 Mac에 터미널로 접속하려면 SSH를 열어주어야 합니다.&#xA;   시스템 설정   일반   공유&#xA;&#39;원격 로그인(Remote Login)&#39; 스위치를 켬으로 변경합니다. (상세 권한은 &#39;i&#39; 아이콘 클릭)&#xA;&#xA;---&#xA;&#xA;2. 패키지 매니저 및 터미널 환경 구축&#xA;&#xA;Homebrew 설치 (Mac 필수 패키지 매니저)&#xA;앱스토어를 거치지 않고 터미널에서 각종 프로그램과 라이브러리를 설치할 수 있게 해주는 도구입니다.&#xA;&#xA;1. Xcode Command line tools 설치&#xA;xcode-select --install&#xA;&#xA;2. Homebrew 설치 스크립트 실행&#xA;/bin/bash -c &#34;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&#34;&#xA;&#xA;3. M칩(Apple Silicon) 경로 환경변수 등록&#xA;echo &#39;eval &#34;$(/opt/homebrew/bin/brew shellenv)&#34;&#39;     ~/.zprofile&#xA;eval &#34;$(/opt/homebrew/bin/brew shellenv)&#34;&#xA;&#xA;터미널 테마 및 플러그인 (Oh My Zsh)&#xA;맥의 기본 셸인 Zsh를 강력하게 꾸며주는 프레임워크와 유용한 플러그인을 설치합니다.&#xA;&#xA;1. Oh My Zsh 설치&#xA;sh -c &#34;$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)&#34;&#xA;&#xA;2. Zsh 명령어 구문 강조 플러그인 (문법 오류 방지)&#xA;brew install zsh-syntax-highlighting&#xA;&#xA;3. Zsh 명령어 자동 완성 플러그인 (과거 이력 기반)&#xA;git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions&#xA;&#xA;  참고: 플러그인 적용 방법&#xA;  vi ~/.zshrc 로 설정 파일을 열어 plugins=(git) 부분을 plugins=(git zsh-autosuggestions)로 수정하고, 파일 맨 밑에 source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh를 추가한 뒤 source ~/.zshrc를 실행하세요.&#xA;&#xA;---&#xA;&#xA;3. Mac 필수 생산성 유틸리티 (무료/오픈소스)&#xA;&#xA;Homebrew가 설치되어 있다면 복잡한 웹사이트 검색 없이 터미널 명령어로 대부분 설치 가능합니다.&#xA;&#xA;Rectangle (화면 분할)&#xA;윈도우처럼 키보드 단축키나 마우스 드래그(스냅)로 창을 좌우, 상하로 쉽게 분할해 주는 필수 앱입니다.&#xA;설치: brew install --cask rectangle (또는 공식 홈페이지 다운로드)&#xA;&#xA;Maccy (클립보드 매니저)&#xA;복사했던 텍스트와 이미지 히스토리를 저장하고, 단축키(Cmd + Shift + C)로 빠르게 찾아 다시 붙여넣을 수 있는 가벼운 오픈소스 앱입니다.&#xA;설치: brew install --cask maccy&#xA;&#xA;RunCat (시스템 리소스 모니터링)&#xA;메뉴 바에서 뛰는 애니메이션 속도로 CPU 상태를 알려주며, 메모리와 네트워크 사용량 등을 직관적으로 보여줍니다.&#xA;설치: Mac App Store에서 RunCat 검색 후 설치&#xA;&#xA;Joplin (오픈소스 마크다운 노트)&#xA;Evernote나 Notion을 대체할 수 있는 강력한 오픈소스 마크다운 노트 앱입니다. 자체 클라우드 연동도 가능합니다.&#xA;홈페이지: https://joplinapp.org/&#xA;&#xA;Docker Desktop&#xA;홈 서버 구축이나 컨테이너 기반 개발을 위한 필수 도구입니다.&#xA;홈페이지: https://docs.docker.com/desktop/setup/install/mac-install/&#xA;&#xA;Ghostty (차세대 터미널 에디터)&#xA;최근 개발자들 사이에서 빠르고 가벼워 주목받고 있는 터미널 에뮬레이터입니다.&#xA;설정 디렉토리 및 테마 적용:&#xA;mkdir -p ~/.config/ghostty&#xA;vi ~/.config/ghostty/config&#xA;&#xA;config 파일 내용 예시&#xA;theme = Arthur&#xA;font-size = 16&#xA;홈페이지: https://ghostty.org/]]&gt;</description>
      <content:encoded><![CDATA[<p>Mac(맥 미니) 초기 세팅 및 필수 유틸리티 설정</p>

<p>새로운 Mac(또는 Mac Mini)을 구매하거나 포맷한 후, 쾌적한 개발 및 작업 환경을 구축하기 위해 가장 먼저 해야 할 시스템 설정과 필수 유틸리티 설치 방법을 정리했습니다.</p>

<hr>

<h2 id="1-mac-시스템-및-환경-설정">1. Mac 시스템 및 환경 설정</h2>

<p>기본적으로 제공되는 불편한 설정들을 윈도우(Windows)나 일반적인 마우스 환경에 맞게 튜닝합니다. (macOS Ventura 이상 기준)</p>

<h3 id="마우스-설정">마우스 설정</h3>
<ul><li>마우스 휠 방향 변경:  (애플 로고) &gt; 시스템 설정 &gt; 마우스로 이동하여 &#39;자연스러운 스크롤&#39;을 선택 해제합니다. (해제해야 휠을 내릴 때 화면이 아래로 내려갑니다.)</li>
<li>마우스 가속 끄기 (정밀한 컨트롤):  &gt; 시스템 설정 &gt; 마우스 &gt; 고급에서 &#39;포인터 가속&#39;을 해제합니다.</li></ul>

<h3 id="키보드-보조-키-command-control-변경">키보드 보조 키(Command/Control) 변경</h3>

<p>윈도우용 키보드를 사용할 경우 Alt와 Win 키의 위치를 Mac에 맞게 변경해야 합니다.
*  &gt; 시스템 설정 &gt; 키보드 &gt; 키보드 단축키 &gt; 보조 키
* 연결된 키보드를 선택한 후, Option(⌥) 키와 Command(⌘) 키의 역할을 서로 바꿔줍니다.</p>

<h3 id="finder-파인더-개발자-세팅">Finder (파인더) 개발자 세팅</h3>

<p>파일의 정확한 경로와 남은 용량을 한눈에 파악하기 위해 하단 막대를 활성화합니다.
* Finder 실행 후 상단 메뉴 바에서 &#39;보기&#39; 클릭
* &#39;경로 막대 보기(Show Path Bar)&#39; 및 &#39;상태 막대 보기(Show Status Bar)&#39; 클릭</p>

<h3 id="원격-접속-ssh-허용">원격 접속 (SSH) 허용</h3>

<p>외부 기기나 홈 서버에서 이 Mac에 터미널로 접속하려면 SSH를 열어주어야 합니다.
*  &gt; 시스템 설정 &gt; 일반 &gt; 공유
* &#39;원격 로그인(Remote Login)&#39; 스위치를 켬으로 변경합니다. (상세 권한은 &#39;i&#39; 아이콘 클릭)</p>

<hr>

<h2 id="2-패키지-매니저-및-터미널-환경-구축">2. 패키지 매니저 및 터미널 환경 구축</h2>

<h3 id="homebrew-설치-mac-필수-패키지-매니저">Homebrew 설치 (Mac 필수 패키지 매니저)</h3>

<p>앱스토어를 거치지 않고 터미널에서 각종 프로그램과 라이브러리를 설치할 수 있게 해주는 도구입니다.</p>

<pre><code class="language-bash"># 1. Xcode Command line tools 설치
xcode-select --install

# 2. Homebrew 설치 스크립트 실행
/bin/bash -c &#34;$(curl -fsSL [https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh](https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh))&#34;

# 3. M칩(Apple Silicon) 경로 환경변수 등록
echo &#39;eval &#34;$(/opt/homebrew/bin/brew shellenv)&#34;&#39; &gt;&gt; ~/.zprofile
eval &#34;$(/opt/homebrew/bin/brew shellenv)&#34;
</code></pre>

<h3 id="터미널-테마-및-플러그인-oh-my-zsh">터미널 테마 및 플러그인 (Oh My Zsh)</h3>

<p>맥의 기본 셸인 Zsh를 강력하게 꾸며주는 프레임워크와 유용한 플러그인을 설치합니다.</p>

<pre><code class="language-bash"># 1. Oh My Zsh 설치
sh -c &#34;$(curl -fsSL [https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh](https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh))&#34;

# 2. Zsh 명령어 구문 강조 플러그인 (문법 오류 방지)
brew install zsh-syntax-highlighting

# 3. Zsh 명령어 자동 완성 플러그인 (과거 이력 기반)
git clone [https://github.com/zsh-users/zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions) ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
</code></pre>

<blockquote><p>참고: 플러그인 적용 방법
<code>vi ~/.zshrc</code> 로 설정 파일을 열어 <code>plugins=(git)</code> 부분을 <code>plugins=(git zsh-autosuggestions)</code>로 수정하고, 파일 맨 밑에 <code>source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh</code>를 추가한 뒤 <code>source ~/.zshrc</code>를 실행하세요.</p></blockquote>

<hr>

<h2 id="3-mac-필수-생산성-유틸리티-무료-오픈소스">3. Mac 필수 생산성 유틸리티 (무료/오픈소스)</h2>

<p>Homebrew가 설치되어 있다면 복잡한 웹사이트 검색 없이 터미널 명령어로 대부분 설치 가능합니다.</p>

<h3 id="rectangle-화면-분할">Rectangle (화면 분할)</h3>

<p>윈도우처럼 키보드 단축키나 마우스 드래그(스냅)로 창을 좌우, 상하로 쉽게 분할해 주는 필수 앱입니다.
* 설치: <code>brew install --cask rectangle</code> (또는 공식 홈페이지 다운로드)</p>

<h3 id="maccy-클립보드-매니저">Maccy (클립보드 매니저)</h3>

<p>복사했던 텍스트와 이미지 히스토리를 저장하고, 단축키(Cmd + Shift + C)로 빠르게 찾아 다시 붙여넣을 수 있는 가벼운 오픈소스 앱입니다.
* 설치: <code>brew install --cask maccy</code></p>

<h3 id="runcat-시스템-리소스-모니터링">RunCat (시스템 리소스 모니터링)</h3>

<p>메뉴 바에서 뛰는 애니메이션 속도로 CPU 상태를 알려주며, 메모리와 네트워크 사용량 등을 직관적으로 보여줍니다.
* 설치: Mac App Store에서 RunCat 검색 후 설치</p>

<h3 id="joplin-오픈소스-마크다운-노트">Joplin (오픈소스 마크다운 노트)</h3>

<p>Evernote나 Notion을 대체할 수 있는 강력한 오픈소스 마크다운 노트 앱입니다. 자체 클라우드 연동도 가능합니다.
* 홈페이지: <a href="https://joplinapp.org/" rel="nofollow">https://joplinapp.org/</a></p>

<h3 id="docker-desktop">Docker Desktop</h3>

<p>홈 서버 구축이나 컨테이너 기반 개발을 위한 필수 도구입니다.
* 홈페이지: <a href="https://docs.docker.com/desktop/setup/install/mac-install/" rel="nofollow">https://docs.docker.com/desktop/setup/install/mac-install/</a></p>

<h3 id="ghostty-차세대-터미널-에디터">Ghostty (차세대 터미널 에디터)</h3>

<p>최근 개발자들 사이에서 빠르고 가벼워 주목받고 있는 터미널 에뮬레이터입니다.
* 설정 디렉토리 및 테마 적용:</p>

<pre><code class="language-bash">mkdir -p ~/.config/ghostty
vi ~/.config/ghostty/config

# config 파일 내용 예시
theme = Arthur
font-size = 16
</code></pre>
<ul><li>홈페이지: <a href="https://ghostty.org/" rel="nofollow">https://ghostty.org/</a></li></ul>
]]></content:encoded>
      <guid>https://lymaru.gleeze.com/mac-maeg-mini-cogi-seting-mic-pilsu-yutilriti-seoljeong</guid>
      <pubDate>Sat, 04 Apr 2026 09:04:37 +0000</pubDate>
    </item>
    <item>
      <title>YOLOv7 윈도우 환경 설정</title>
      <link>https://lymaru.gleeze.com/yolov7-windou-hwangyeong-seoljeong</link>
      <description>&lt;![CDATA[YOLOv7 윈도우 환경 설정&#xA;&#xA;1. 시스템 사양 및 버전 호환성&#xA;&#xA;딥러닝 환경 세팅에서 가장 중요한 것은 버전 호환성입니다. &#xA;&#xA;| 구분 | 추천 환경 (현재 표준) | 비고 |&#xA;|---|---|---|&#xA;| OS | Windows 10 / 11 | |&#xA;| GPU | NVIDIA RTX 3070 | VRAM 8GB 이상 권장 |&#xA;| Python | 3.9 또는 3.10 | YOLOv7 호환성이 가장 높음 |&#xA;| CUDA | 11.8 (또는 12.1) | PyTorch 2.x 안정화 버전 기준 |&#xA;| cuDNN | 8.7.0 이상 (CUDA 버전에 맞춤) | |&#xA;| PyTorch | 2.x 대 최신 Stable 버전 | |&#xA;&#xA;  Tip: 맹목적으로 무조건 최신 버전을 설치하기보다는, PyTorch 공식 홈페이지에서 현재 지원하는 안정화(Stable) CUDA 버전이 무엇인지 먼저 확인하고 그에 맞춰 CUDA를 설치하는 것이 핵심입니다.&#xA;&#xA;---&#xA;&#xA;2. NVIDIA CUDA 및 cuDNN 설치&#xA;&#xA;1) CUDA Toolkit 설치&#xA;NVIDIA CUDA Toolkit Archive에 접속합니다.&#xA;시스템 환경에 맞춰 CUDA 11.8 (또는 호환되는 최신 버전)의 Windows용 런타임(exelocal)을 다운로드하고 설치합니다.&#xA;&#xA;2) cuDNN 설치 및 덮어쓰기&#xA;NVIDIA cuDNN Archive에 접속합니다. (NVIDIA 로그인 필요)&#xA;설치한 CUDA 버전에 맞는 cuDNN 압축 파일(zip)을 다운로드합니다.&#xA;압축을 해제하면 bin, include, lib 세 개의 폴더가 나옵니다.&#xA;이 세 폴더 안의 파일들을 복사하여, 앞서 설치한 CUDA 디렉토리에 그대로 덮어쓰기 합니다.&#xA;   CUDA 기본 설치 경로: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8&#xA;&#xA;3) 환경 변수 설정 &#xA;Windows 키 ➡️ 환경 변수 검색 ➡️ &#39;시스템 환경 변수 편집&#39; 클릭&#xA;[환경 변수] 버튼 클릭 ➡️ 하단의 &#39;시스템 변수&#39; 중 Path 더블 클릭&#xA;아래 경로들이 등록되어 있는지 확인하고, 없다면 [새로 만들기]로 추가합니다.&#xA;      C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin&#xA;   C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\include&#xA;   C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\libnvvp&#xA;   C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\extras\CUPTI\lib64&#xA;   &#xA;---&#xA;&#xA;3. Anaconda 설치 및 독립된 가상환경 생성&#xA;Anaconda 공식 홈페이지에서 설치 파일을 다운로드하여 설치합니다.&#xA;시작 메뉴에서 &#39;Anaconda Prompt&#39;를 실행합니다.&#xA;아래 명령어를 입력하여 yolov7이라는 이름의 Python 3.9 가상환경을 생성하고 활성화합니다.&#xA;&#xA;yolov7 전용 가상환경 생성&#xA;conda create -n yolov7 python=3.9 -y&#xA;&#xA;가상환경 활성화 (매번 터미널을 열 때마다 실행해야 함)&#xA;conda activate yolov7&#xA;&#xA;---&#xA;&#xA;4. PyTorch 및 YOLOv7 세팅&#xA;&#xA;가상환경이 활성화된 상태((yolov7) C:\...)에서 딥러닝 프레임워크와 YOLOv7 코드를 다운로드합니다.&#xA;&#xA;1) PyTorch 설치&#xA;설치한 CUDA 버전에 맞춰 PyTorch를 설치합니다. (CUDA 11.8 기준 명령어)&#xA;&#xA;conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia -y&#xA;  설치가 완료되면 Python을 실행하여 import torch; print(torch.cuda.is_available())을 입력했을 때 True가 나와야 GPU 세팅이 완벽하게 된 것입니다.&#xA;&#xA;2) YOLOv7 소스코드 클론 및 요구 패키지 설치&#xA;원하는 작업 폴더(Workspace)로 이동한 후, 공식 GitHub에서 코드를 가져옵니다.&#xA;&#xA;YOLOv7 저장소 복제&#xA;git clone https://github.com/WongKinYiu/yolov7.git&#xA;&#xA;폴더 이동&#xA;cd yolov7&#xA;&#xA;YOLOv7 구동에 필요한 추가 패키지 일괄 설치&#xA;pip install -r requirements.txt&#xA;`]]&gt;</description>
      <content:encoded><![CDATA[<p>YOLOv7 윈도우 환경 설정</p>

<h2 id="1-시스템-사양-및-버전-호환성">1. 시스템 사양 및 버전 호환성</h2>

<p>딥러닝 환경 세팅에서 가장 중요한 것은 <strong>버전 호환성</strong>입니다.</p>

<table>
<thead>
<tr>
<th>구분</th>
<th>추천 환경 (현재 표준)</th>
<th>비고</th>
</tr>
</thead>

<tbody>
<tr>
<td><strong>OS</strong></td>
<td>Windows 10 / 11</td>
<td></td>
</tr>

<tr>
<td><strong>GPU</strong></td>
<td>NVIDIA RTX 3070</td>
<td>VRAM 8GB 이상 권장</td>
</tr>

<tr>
<td><strong>Python</strong></td>
<td>3.9 또는 3.10</td>
<td>YOLOv7 호환성이 가장 높음</td>
</tr>

<tr>
<td><strong>CUDA</strong></td>
<td>11.8 (또는 12.1)</td>
<td>PyTorch 2.x 안정화 버전 기준</td>
</tr>

<tr>
<td><strong>cuDNN</strong></td>
<td>8.7.0 이상 (CUDA 버전에 맞춤)</td>
<td></td>
</tr>

<tr>
<td><strong>PyTorch</strong></td>
<td>2.x 대 최신 Stable 버전</td>
<td></td>
</tr>
</tbody>
</table>

<blockquote><p><strong>Tip:</strong> 맹목적으로 무조건 최신 버전을 설치하기보다는, <a href="https://pytorch.org/" rel="nofollow">PyTorch 공식 홈페이지</a>에서 현재 지원하는 <strong>안정화(Stable) CUDA 버전</strong>이 무엇인지 먼저 확인하고 그에 맞춰 CUDA를 설치하는 것이 핵심입니다.</p></blockquote>

<hr>

<h2 id="2-nvidia-cuda-및-cudnn-설치">2. NVIDIA CUDA 및 cuDNN 설치</h2>

<h3 id="1-cuda-toolkit-설치">1) CUDA Toolkit 설치</h3>
<ol><li><a href="https://developer.nvidia.com/cuda-toolkit-archive" rel="nofollow">NVIDIA CUDA Toolkit Archive</a>에 접속합니다.</li>
<li>시스템 환경에 맞춰 <strong>CUDA 11.8</strong> (또는 호환되는 최신 버전)의 Windows용 런타임(exe_local)을 다운로드하고 설치합니다.</li></ol>

<h3 id="2-cudnn-설치-및-덮어쓰기">2) cuDNN 설치 및 덮어쓰기</h3>
<ol><li><a href="https://developer.nvidia.com/rdp/cudnn-archive" rel="nofollow">NVIDIA cuDNN Archive</a>에 접속합니다. (NVIDIA 로그인 필요)</li>
<li>설치한 CUDA 버전에 맞는 cuDNN 압축 파일(zip)을 다운로드합니다.</li>
<li>압축을 해제하면 <code>bin</code>, <code>include</code>, <code>lib</code> 세 개의 폴더가 나옵니다.</li>
<li>이 세 폴더 안의 파일들을 복사하여, 앞서 설치한 <strong>CUDA 디렉토리에 그대로 덮어쓰기</strong> 합니다.
<ul><li><strong>CUDA 기본 설치 경로:</strong> <code>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8</code></li></ul></li></ol>

<h3 id="3-환경-변수-설정">3) 환경 변수 설정</h3>
<ol><li><code>Windows 키</code> ➡️ <code>환경 변수</code> 검색 ➡️ <strong>&#39;시스템 환경 변수 편집&#39;</strong> 클릭</li>
<li>[환경 변수] 버튼 클릭 ➡️ 하단의 &#39;시스템 변수&#39; 중 <code>Path</code> 더블 클릭</li>
<li>아래 경로들이 등록되어 있는지 확인하고, 없다면 [새로 만들기]로 추가합니다.
<code>text
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\extras\CUPTI\lib64
</code></li></ol>

<hr>

<h2 id="3-anaconda-설치-및-독립된-가상환경-생성">3. Anaconda 설치 및 독립된 가상환경 생성</h2>
<ol><li><a href="https://www.anaconda.com/" rel="nofollow">Anaconda 공식 홈페이지</a>에서 설치 파일을 다운로드하여 설치합니다.</li>
<li>시작 메뉴에서 <strong>&#39;Anaconda Prompt&#39;</strong>를 실행합니다.</li>
<li>아래 명령어를 입력하여 <code>yolov7</code>이라는 이름의 Python 3.9 가상환경을 생성하고 활성화합니다.</li></ol>

<pre><code class="language-bash"># yolo_v7 전용 가상환경 생성
conda create -n yolov7 python=3.9 -y

# 가상환경 활성화 (매번 터미널을 열 때마다 실행해야 함)
conda activate yolov7
</code></pre>

<hr>

<h2 id="4-pytorch-및-yolov7-세팅">4. PyTorch 및 YOLOv7 세팅</h2>

<p>가상환경이 활성화된 상태(<code>(yolov7) C:\...</code>)에서 딥러닝 프레임워크와 YOLOv7 코드를 다운로드합니다.</p>

<h3 id="1-pytorch-설치">1) PyTorch 설치</h3>

<p>설치한 CUDA 버전에 맞춰 PyTorch를 설치합니다. (CUDA 11.8 기준 명령어)</p>

<pre><code class="language-bash">conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia -y
</code></pre>

<blockquote><p>설치가 완료되면 Python을 실행하여 <code>import torch; print(torch.cuda.is_available())</code>을 입력했을 때 <strong><code>True</code></strong>가 나와야 GPU 세팅이 완벽하게 된 것입니다.</p></blockquote>

<h3 id="2-yolov7-소스코드-클론-및-요구-패키지-설치">2) YOLOv7 소스코드 클론 및 요구 패키지 설치</h3>

<p>원하는 작업 폴더(Workspace)로 이동한 후, 공식 GitHub에서 코드를 가져옵니다.</p>

<pre><code class="language-bash"># YOLOv7 저장소 복제
git clone [https://github.com/WongKinYiu/yolov7.git](https://github.com/WongKinYiu/yolov7.git)

# 폴더 이동
cd yolov7

# YOLOv7 구동에 필요한 추가 패키지 일괄 설치
pip install -r requirements.txt
</code></pre>
]]></content:encoded>
      <guid>https://lymaru.gleeze.com/yolov7-windou-hwangyeong-seoljeong</guid>
      <pubDate>Sat, 04 Apr 2026 08:58:06 +0000</pubDate>
    </item>
    <item>
      <title>도커(Docker)  명령어 정리</title>
      <link>https://lymaru.gleeze.com/dokeo-docker-myeongryeongeo-jeongri</link>
      <description>&lt;![CDATA[도커(Docker)  명령어 정리&#xA;&#xA;1. Ubuntu 환경 Docker 최신 설치 방법&#xA;&#xA;1. 필수 패키지 업데이트 및 설치&#xA;sudo apt-get update&#xA;sudo apt-get install -y ca-certificates curl gnupg lsb-release&#xA;&#xA;2. Docker 공식 GPG 키 추가 (최신 keyrings 방식)&#xA;sudo mkdir -m 0755 -p /etc/apt/keyrings&#xA;curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg&#xA;&#xA;3. Docker 레포지토리 설정&#xA;echo \&#xA;  &#34;deb arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] [https://download.docker.com/linux/ubuntu \&#xA;  $(lsbrelease -cs) stable&#34; | sudo tee /etc/apt/sources.list.d/docker.list   /dev/null&#xA;&#xA;4. Docker 엔진 설치&#xA;sudo apt-get update&#xA;sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin&#xA;&#xA;권한 추가 및 편의 기능&#xA;sudo 없이 docker 명령어를 사용하기 위해 현재 계정을 docker 그룹에 추가&#xA;sudo usermod -aG docker $USER&#xA;&#xA;도커 서비스 재시작&#xA;sudo systemctl restart docker.service&#xA;&#xA;(재부팅 또는 로그아웃 후 다시 로그인해야 권한이 적용됩니다)&#xA;&#xA;도커 명령어 자동완성 기능 설치&#xA;sudo apt install bash-completion&#xA;&#xA;2. 도커 컨테이너 실행 및 관리&#xA;&#xA;기본 실행 (Run) 옵션&#xA;docker run -d --name mycontainer -p 8080:80 -v /hostdata:/containerdata nginx&#xA;&#xA;| 옵션 | 설명 |&#xA;|---|---|&#xA;| -d | Detached mode (백그라운드에서 컨테이너 실행) |&#xA;| -p | 포트 포워딩 [호스트포트]:[컨테이너포트] |&#xA;| -v | 볼륨 마운트 [호스트경로]:[컨테이너경로] (작업 환경은 컨테이너에, 데이터는 호스트에 저장) |&#xA;| -e | 컨테이너 내에서 사용할 환경변수 설정 |&#xA;| --name | 컨테이너 이름 설정 |&#xA;| --rm | 프로세스 종료 시 컨테이너 자동 제거 (일회용 컨테이너에 유용) |&#xA;| -it | 터미널 입력을 위한 옵션 (i: 상호입출력, t: tty 활성화) |&#xA;| --restart=always | 서버 재부팅 시 컨테이너 자동 시작 |&#xA;| --gpus all | 호스트의 모든 GPU 사용 (nvidia-container-toolkit 설치 필수) |&#xA;| --shm-size=8g | 컨테이너의 공유 메모리 크기 지정 (딥러닝 학습 시 필수) |&#xA;| --link | (Deprecated) 컨테이너 간 연결. (현재는 docker network 사용을 권장합니다) |&#xA;&#xA;컨테이너 이름 변경&#xA;docker rename [기존이름] [새이름]&#xA;&#xA;3. 이미지 저장 및 백업 (Save / Load / Commit)&#xA;&#xA;컨테이너 상태를 이미지로 굽기 (Commit)&#xA;docker commit {컨테이너이름} {생성할이미지이름}&#xA;&#xA;이미지를 압축 파일(tar)로 저장 (Save)&#xA;docker save {이미지이름} -o {저장할파일명.tar}&#xA;&#xA;압축 파일(tar)을 도커 이미지로 불러오기 (Load)&#xA;docker load -i {파일명.tar}&#xA;&#xA;4. Dockerfile 기본 문법&#xA;&#xA;Dockerfile이 있는 경로에서 빌드 명령어를 실행합니다. .dockerignore 파일을 활용하면 빌드 시 불필요한 파일이 데몬으로 전송되는 것을 막아 속도를 높일 수 있습니다.&#xA;&#xA;docker build -t {생성할이미지명} -f {Dockerfile이름} .&#xA;&#xA;| 명령어 | 설명 |&#xA;|---|---|&#xA;| FROM | 베이스로 사용할 이미지 지정 |&#xA;| LABEL | 이미지 메타데이터 설정 (기존 MAINTAINER를 대체함) |&#xA;| RUN | 빌드 과정에서 실행할 리눅스 명령어 (apt install 등) |&#xA;| EXPOSE | 컨테이너가 사용할 포트 명시 (실제 포트 개방은 run 옵션에서 함) |&#xA;| ENV | 컨테이너 내부에서 사용할 환경 변수 설정 |&#xA;| ARG | 빌드 시점(docker build)에만 사용할 변수 |&#xA;| ADD / COPY | 호스트의 파일을 컨테이너 내부로 복사 |&#xA;| CMD | 컨테이너가 시작될 때 실행할 기본 명령어 |&#xA;| ENTRYPOINT | 컨테이너 시작 시 강제로 실행할 프로세스 (CMD보다 우선) |&#xA;| WORKDIR | 명령어(RUN, CMD 등)가 실행될 작업 디렉토리 설정 |&#xA;| USER | 명령을 실행할 사용자 계정 설정 |&#xA;&#xA;Dockerfile 예시 (한글 언어팩 및 타임존 설정)&#xA;FROM ubuntu:20.04&#xA;&#xA;작성자 명시 (최신 방식)&#xA;LABEL maintainer=&#34;youremail@domain.com&#34;&#xA;&#xA;EXPOSE 8080&#xA;&#xA;언어 설정&#xA;RUN apt-get update &amp;&amp; apt-get install -y locales&#xA;RUN locale-gen koKR.UTF-8&#xA;ENV LANG koKR.UTF-8&#xA;ENV LANGUAGE koKR.UTF-8&#xA;ENV LCALL koKR.UTF-8&#xA; &#xA;TimeZone 설정 (Seoul)&#xA;ENV TZ Asia/Seoul&#xA;RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime &amp;&amp; echo $TZ   /etc/timezone&#xA;&#xA;5. 유용한 도커 활용 팁&#xA;&#xA;호스트 GUI 환경을 도커에서 사용하기 (X11)&#xA;호스트에서 xhost 권한 허용&#xA;xhost +local:docker&#xA;&#xA;컨테이너 실행 시 디스플레이 소켓 공유&#xA;docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY ubuntu /bin/bash&#xA;&#xA;도커 자원 일괄 정리 (Prune)&#xA;1. 중지된 컨테이너 및 이름 없는(dangling) 이미지 삭제&#xA;docker system prune -f&#xA;&#xA;2. 어떤 컨테이너도 사용하지 않는 잉여 볼륨 삭제&#xA;docker volume prune -f&#xA;&#xA;3. 사용하지 않는 도커 네트워크 삭제&#xA;docker network prune -f&#xA;&#xA;4. none 태그를 가진 잉여 이미지 강제 일괄 삭제&#xA;docker rmi $(docker images -f &#34;dangling=true&#34; -q)&#xA;&#xA;도커 컨테이너 포트 강제 변경&#xA;컨테이너를 지우지 않고 강제로 포트를 바꾸는 편법입니다. 설정 파일을 직접 건드리는 방식이므로 도커 데몬 구동에 에러가 발생할 수 있어 권장하지 않습니다. (가능한 한 docker run을 다시 하는 것이 안전합니다.)&#xA;&#xA;1. 컨테이너 및 도커 서비스 중지&#xA;docker container stop [컨테이너ID]&#xA;sudo systemctl stop docker&#xA;&#xA;2. config 파일 수정 (ExposedPorts, Ports 변경)&#xA;sudo vi /var/lib/docker/containers/[컨테이너ID]/config.v2.json&#xA;&#xA;3. hostconfig 파일 수정 (PortBindings 변경)&#xA;sudo vi /var/lib/docker/containers/[컨테이너ID]/hostconfig.json&#xA;&#xA;4. 서비스 및 컨테이너 재시작&#xA;sudo systemctl start docker&#xA;docker start [컨테이너_ID]&#xA;`]]&gt;</description>
      <content:encoded><![CDATA[<p>도커(Docker)  명령어 정리</p>

<h2 id="1-ubuntu-환경-docker-최신-설치-방법">1. Ubuntu 환경 Docker 최신 설치 방법</h2>

<pre><code class="language-bash"># 1. 필수 패키지 업데이트 및 설치
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release

# 2. Docker 공식 GPG 키 추가 (최신 keyrings 방식)
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg) | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 3. Docker 레포지토리 설정
echo \
  &#34;deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] [https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu) \
  $(lsb_release -cs) stable&#34; | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null

# 4. Docker 엔진 설치
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
</code></pre>

<p><strong>권한 추가 및 편의 기능</strong></p>

<pre><code class="language-bash"># sudo 없이 docker 명령어를 사용하기 위해 현재 계정을 docker 그룹에 추가
sudo usermod -aG docker $USER

# 도커 서비스 재시작
sudo systemctl restart docker.service

# (재부팅 또는 로그아웃 후 다시 로그인해야 권한이 적용됩니다)

# 도커 명령어 자동완성 기능 설치
sudo apt install bash-completion
</code></pre>

<h2 id="2-도커-컨테이너-실행-및-관리">2. 도커 컨테이너 실행 및 관리</h2>

<h3 id="기본-실행-run-옵션">기본 실행 (Run) 옵션</h3>

<pre><code class="language-bash">docker run -d --name my_container -p 8080:80 -v /host_data:/container_data nginx
</code></pre>

<table>
<thead>
<tr>
<th>옵션</th>
<th>설명</th>
</tr>
</thead>

<tbody>
<tr>
<td><code>-d</code></td>
<td>Detached mode (백그라운드에서 컨테이너 실행)</td>
</tr>

<tr>
<td><code>-p</code></td>
<td>포트 포워딩 <code>[호스트포트]:[컨테이너포트]</code></td>
</tr>

<tr>
<td><code>-v</code></td>
<td>볼륨 마운트 <code>[호스트경로]:[컨테이너경로]</code> (작업 환경은 컨테이너에, 데이터는 호스트에 저장)</td>
</tr>

<tr>
<td><code>-e</code></td>
<td>컨테이너 내에서 사용할 환경변수 설정</td>
</tr>

<tr>
<td><code>--name</code></td>
<td>컨테이너 이름 설정</td>
</tr>

<tr>
<td><code>--rm</code></td>
<td>프로세스 종료 시 컨테이너 자동 제거 (일회용 컨테이너에 유용)</td>
</tr>

<tr>
<td><code>-it</code></td>
<td>터미널 입력을 위한 옵션 (i: 상호입출력, t: tty 활성화)</td>
</tr>

<tr>
<td><code>--restart=always</code></td>
<td>서버 재부팅 시 컨테이너 자동 시작</td>
</tr>

<tr>
<td><code>--gpus all</code></td>
<td>호스트의 모든 GPU 사용 (nvidia-container-toolkit 설치 필수)</td>
</tr>

<tr>
<td><code>--shm-size=8g</code></td>
<td>컨테이너의 공유 메모리 크기 지정 (딥러닝 학습 시 필수)</td>
</tr>

<tr>
<td><code>--link</code></td>
<td><strong>(Deprecated)</strong> 컨테이너 간 연결. (현재는 <code>docker network</code> 사용을 권장합니다)</td>
</tr>
</tbody>
</table>

<h3 id="컨테이너-이름-변경">컨테이너 이름 변경</h3>

<pre><code class="language-bash">docker rename [기존이름] [새이름]
</code></pre>

<h2 id="3-이미지-저장-및-백업-save-load-commit">3. 이미지 저장 및 백업 (Save / Load / Commit)</h2>

<p><strong>컨테이너 상태를 이미지로 굽기 (Commit)</strong></p>

<pre><code class="language-bash">docker commit {컨테이너_이름} {생성할_이미지_이름}
</code></pre>

<p><strong>이미지를 압축 파일(tar)로 저장 (Save)</strong></p>

<pre><code class="language-bash">docker save {이미지_이름} -o {저장할_파일명.tar}
</code></pre>

<p><strong>압축 파일(tar)을 도커 이미지로 불러오기 (Load)</strong></p>

<pre><code class="language-bash">docker load -i {파일명.tar}
</code></pre>

<h2 id="4-dockerfile-기본-문법">4. Dockerfile 기본 문법</h2>

<p>Dockerfile이 있는 경로에서 빌드 명령어를 실행합니다. <code>.dockerignore</code> 파일을 활용하면 빌드 시 불필요한 파일이 데몬으로 전송되는 것을 막아 속도를 높일 수 있습니다.</p>

<pre><code class="language-bash">docker build -t {생성할_이미지명} -f {Dockerfile_이름} .
</code></pre>

<table>
<thead>
<tr>
<th>명령어</th>
<th>설명</th>
</tr>
</thead>

<tbody>
<tr>
<td><code>FROM</code></td>
<td>베이스로 사용할 이미지 지정</td>
</tr>

<tr>
<td><code>LABEL</code></td>
<td>이미지 메타데이터 설정 (기존 <code>MAINTAINER</code>를 대체함)</td>
</tr>

<tr>
<td><code>RUN</code></td>
<td>빌드 과정에서 실행할 리눅스 명령어 (apt install 등)</td>
</tr>

<tr>
<td><code>EXPOSE</code></td>
<td>컨테이너가 사용할 포트 명시 (실제 포트 개방은 run 옵션에서 함)</td>
</tr>

<tr>
<td><code>ENV</code></td>
<td>컨테이너 내부에서 사용할 환경 변수 설정</td>
</tr>

<tr>
<td><code>ARG</code></td>
<td>빌드 시점(<code>docker build</code>)에만 사용할 변수</td>
</tr>

<tr>
<td><code>ADD</code> / <code>COPY</code></td>
<td>호스트의 파일을 컨테이너 내부로 복사</td>
</tr>

<tr>
<td><code>CMD</code></td>
<td>컨테이너가 시작될 때 실행할 기본 명령어</td>
</tr>

<tr>
<td><code>ENTRYPOINT</code></td>
<td>컨테이너 시작 시 강제로 실행할 프로세스 (CMD보다 우선)</td>
</tr>

<tr>
<td><code>WORKDIR</code></td>
<td>명령어(<code>RUN</code>, <code>CMD</code> 등)가 실행될 작업 디렉토리 설정</td>
</tr>

<tr>
<td><code>USER</code></td>
<td>명령을 실행할 사용자 계정 설정</td>
</tr>
</tbody>
</table>

<p><strong>Dockerfile 예시 (한글 언어팩 및 타임존 설정)</strong></p>

<pre><code class="language-dockerfile">FROM ubuntu:20.04

# 작성자 명시 (최신 방식)
LABEL maintainer=&#34;your_email@domain.com&#34;

EXPOSE 8080

# 언어 설정
RUN apt-get update &amp;&amp; apt-get install -y locales
RUN locale-gen ko_KR.UTF-8
ENV LANG ko_KR.UTF-8
ENV LANGUAGE ko_KR.UTF-8
ENV LC_ALL ko_KR.UTF-8
 
# TimeZone 설정 (Seoul)
ENV TZ Asia/Seoul
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime &amp;&amp; echo $TZ &gt; /etc/timezone
</code></pre>

<h2 id="5-유용한-도커-활용-팁">5. 유용한 도커 활용 팁</h2>

<h3 id="호스트-gui-환경을-도커에서-사용하기-x11">호스트 GUI 환경을 도커에서 사용하기 (X11)</h3>

<pre><code class="language-bash"># 호스트에서 xhost 권한 허용
xhost +local:docker

# 컨테이너 실행 시 디스플레이 소켓 공유
docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY ubuntu /bin/bash
</code></pre>

<h3 id="도커-자원-일괄-정리-prune">도커 자원 일괄 정리 (Prune)</h3>

<pre><code class="language-bash"># 1. 중지된 컨테이너 및 이름 없는(dangling) 이미지 삭제
docker system prune -f

# 2. 어떤 컨테이너도 사용하지 않는 잉여 볼륨 삭제
docker volume prune -f

# 3. 사용하지 않는 도커 네트워크 삭제
docker network prune -f

# 4. &lt;none&gt; 태그를 가진 잉여 이미지 강제 일괄 삭제
docker rmi $(docker images -f &#34;dangling=true&#34; -q)
</code></pre>

<h3 id="도커-컨테이너-포트-강제-변경">도커 컨테이너 포트 강제 변경</h3>

<p>컨테이너를 지우지 않고 강제로 포트를 바꾸는 편법입니다. <strong>설정 파일을 직접 건드리는 방식이므로 도커 데몬 구동에 에러가 발생할 수 있어 권장하지 않습니다.</strong> (가능한 한 <code>docker run</code>을 다시 하는 것이 안전합니다.)</p>

<pre><code class="language-bash"># 1. 컨테이너 및 도커 서비스 중지
docker container stop [컨테이너_ID]
sudo systemctl stop docker

# 2. config 파일 수정 (ExposedPorts, Ports 변경)
sudo vi /var/lib/docker/containers/[컨테이너_ID]/config.v2.json

# 3. hostconfig 파일 수정 (PortBindings 변경)
sudo vi /var/lib/docker/containers/[컨테이너_ID]/hostconfig.json

# 4. 서비스 및 컨테이너 재시작
sudo systemctl start docker
docker start [컨테이너_ID]
</code></pre>
]]></content:encoded>
      <guid>https://lymaru.gleeze.com/dokeo-docker-myeongryeongeo-jeongri</guid>
      <pubDate>Sat, 04 Apr 2026 08:13:35 +0000</pubDate>
    </item>
    <item>
      <title>리눅스 핵심 명령어 및 환경 설정 정리</title>
      <link>https://lymaru.gleeze.com/rinugseu-haegsim-myeongryeongeo-mic-hwangyeong-seoljeong-jeongri</link>
      <description>&lt;![CDATA[리눅스 핵심 명령어 및 환경 설정 정리&#xA;&#xA;1. 시스템 관리 및 패키지 설정&#xA;기본 패키지 업데이트 및 설치&#xA;&#xA;시스템 업데이트 (&amp;&amp;를 사용하여 앞 명령어가 성공했을 때만 업그레이드 진행)&#xA;sudo apt update &amp;&amp; sudo apt full-upgrade -y&#xA;&#xA;필수 유틸리티 설치 (ssh, vim, net-tools, gcc 등)&#xA;sudo apt install -y openssh-server vim net-tools gcc make build-essential curl&#xA;&#xA;SSH 서비스 시작&#xA;sudo systemctl start ssh&#xA;&#xA;시스템 정보 확인&#xA;OS 및 커널 버전 확인&#xA;uname -a&#xA;&#xA;배포판 상세 정보 확인&#xA;cat /etc/release # CentOS 등&#xA;cat /etc/issue        # Ubuntu&#xA;&#xA;시스템 가동 시간, 로그인 사용자 수, 부하율 확인&#xA;uptime&#xA;&#xA;부팅 이력 확인&#xA;last reboot&#xA;&#xA;계정 및 권한 관리&#xA;계정 생성 (대화형 기본 설정 포함 - 권장)&#xA;sudo adduser [사용자명]&#xA;&#xA;계정 생성 (환경변수 옵션 커스터마이징 용도)&#xA;sudo useradd [사용자명]&#xA;&#xA;Sudo 권한 부여 (visudo 사용 권장)&#xA;sudo visudo&#xA;파일 하단에 추가: [사용자명] ALL=(ALL:ALL) ALL&#xA;&#xA;그룹 관리&#xA;groups                       # 소속 그룹 확인&#xA;sudo groupadd [그룹명]       # 그룹 생성&#xA;sudo groupdel [그룹명]       # 그룹 삭제&#xA;sudo gpasswd -a [유저] [그룹명]  # 사용자를 그룹에 추가&#xA;sudo gpasswd -d [유저] [그룹명]  # 사용자를 그룹에서 제거&#xA;&#xA;2. 디스크 및 시스템 리소스 관리&#xA;디스크 용량 확인&#xA;&#xA;파티션별 디스크 여유 공간 확인 (Human readable)&#xA;df -h&#xA;&#xA;특정 디렉토리의 사용량 요약 확인 (깊이 1단계까지만)&#xA;du -h --max-depth=1 /home&#xA;&#xA;메모리 상태 확인 (free)&#xA;free -h&#xA;total: 설치된 총 메모리&#xA;&#xA;used: 사용 중인 메모리&#xA;&#xA;free: 실제 사용 가능한 여유 메모리&#xA;&#xA;shared: 프로세스 간 공유 메모리&#xA;&#xA;buff/cache: 커널 버퍼와 페이지 캐시로 사용 중인 메모리&#xA;&#xA;available: 스와핑 없이 새로운 프로세스에 할당 가능한 실질적 여유 메모리&#xA;&#xA;디스크 마운트 (추가 및 영구 등록)&#xA;디스크 목록 및 파티션 확인&#xA;sudo fdisk -l&#xA;&#xA;파티션 생성 (n -  p -  1 -  enter -  enter -  p -  w)&#xA;sudo fdisk /dev/sdb&#xA;&#xA;파일 시스템 포맷 (ext4)&#xA;sudo mkfs -t ext4 /dev/sdb1&#xA;&#xA;임시 마운트&#xA;sudo mount /dev/sdb1 /datafolder&#xA;영구적인 마운트 (재부팅 시 자동 마운트)&#xA;&#xA;디스크의 UUID 확인&#xA;sudo blkid /dev/sdb1&#xA;&#xA;fstab 수정&#xA;sudo vi /etc/fstab&#xA;&#xA;아래 형식으로 맨 밑에 내용 추가&#xA;UUID={확인한UUID}  /datafolder  ext4  defaults  0  2&#xA;&#xA;3. 네트워크 및 방화벽 설정&#xA;고정 IP 설정 (Ubuntu 20.04 Netplan 기준)&#xA;sudo vi /etc/netplan/01-netcfg.yaml&#xA;YAML&#xA;network:&#xA;  version: 2&#xA;  ethernets:&#xA;    enp0s3:&#xA;      dhcp4: no&#xA;      addresses: [192.168.219.12/24]&#xA;      gateway4: 192.168.219.1&#xA;      nameservers:&#xA;        addresses: [8.8.8.8, 8.8.4.4]&#xA;설정 적용&#xA;sudo netplan apply&#xA;&#xA;방화벽 설정 (Firewalld - CentOS)&#xA;sudo firewall-cmd --permanent --add-port=8080/tcp    # 포트 개방&#xA;sudo firewall-cmd --permanent --remove-port=8080/tcp # 포트 차단&#xA;sudo firewall-cmd --reload                           # 룰 적용&#xA;sudo firewall-cmd --list-all                         # 리스트 확인&#xA;&#xA;방화벽 설정 (UFW - Ubuntu)&#xA;sudo ufw status verbose         # 상태 및 적용된 룰 확인&#xA;sudo ufw allow 22/tcp           # 포트 허용&#xA;sudo ufw delete allow 22/tcp    # 허용 룰 삭제&#xA;sudo ufw reload                 # 룰 적용&#xA;&#xA;4. 원격 데스크탑 및 파일 공유&#xA;XRDP (원격 데스크탑) 설정&#xA;&#xA;sudo apt-get install -y xserver-xorg-core xorgxrdp xserver-xorg-input-all&#xA;&#xA;권한 설정&#xA;sudo vi /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla&#xA;Ini, TOML&#xA;[Allow Colord all Users]&#xA;Identity=unix-user:&#xA;Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile&#xA;ResultAny=no&#xA;ResultInactive=no&#xA;ResultActive=yes&#xA;&#xA;배경색 설정 후 재부팅&#xA;sudo vi /etc/xrdp/xrdp.ini&#xA;lstopwindowbgcolor=000000 추가&#xA;sudo reboot&#xA;&#xA;NFS 파일 공유&#xA;sudo apt install -y nfs-common nfs-kernel-server&#xA;&#xA;공유 폴더 설정&#xA;sudo vi /etc/exports&#xA;추가: /shdata 192.168.1.0/24(rw,sync,nosubtreecheck)&#xA;&#xA;클라이언트에서 마운트&#xA;sudo mount [호스트IP]:/shdata /localfolder&#xA;&#xA;5. 파일 제어 및 탐색&#xA;TAR 압축 및 해제&#xA;&#xA;압축하기&#xA;tar -cvf [압축이름.tar] [압축할폴더]&#xA;&#xA;압축 풀기&#xA;tar -xvf [압축이름.tar]&#xA;&#xA;SCP 데이터 전송 (SSH 기반)&#xA;Local -  Remote (내 PC에서 원격지 서버로 보내기)&#xA;scp -P [포트번호] [보낼파일] [계정]@[원격지IP]:[도착디렉토리]&#xA;&#xA;Remote -  Local (원격지 서버에서 내 PC로 가져오기)&#xA;scp -P [포트번호] [계정]@[원격지IP]:[가져올파일] [내PC저장경로]&#xA;&#xA;파일 검색 (find)&#xA;특정 이름으로 파일 검색&#xA;find / -name &#34;.log&#34;&#xA;&#xA;7일 이상 수정되지 않은 파일 찾기&#xA;find . -mindepth 1 -maxdepth 1 -mtime +7&#xA;&#xA;7일 이상 수정되지 않은 파일 찾아서 바로 삭제 (-exec 활용)&#xA;find . -mindepth 1 -maxdepth 1 -mtime +7 -exec rm -rf {} \;&#xA;파일 내 문자열 검색 (grep 정규표현식)&#xA;Bash&#xA;grep &#39;^a&#39; 파일명      # a로 시작하는 행&#xA;grep &#39;apple$&#39; 파일명  # apple로 끝나는 행&#xA;grep &#39;a.....e&#39; 파일명 # a로 시작하고 e로 끝나는 7자리 단어&#xA;grep &#39;[a-d]&#39; 파일명   # a, b, c, d 중 하나로 시작하는 단어&#xA;grep -i &#39;apple&#39; 파일명 # 대소문자 구분 없이 검색&#xA;grep -v &#39;apple&#39; 파일명 # apple이 포함되지 않은 행만 출력&#xA;&#xA;6. 텍스트 프로세싱 및 스크립트&#xA;AWK (오크) 활용&#xA;행과 열 기반으로 데이터를 필터링하고 가공하는 데 탁월한 스크립트 언어입니다.&#xA;&#xA;특정 필드(열) 값 출력&#xA;awk &#39;{ print $1 }&#39; file.txt&#xA;&#xA;특정 조건식 (5번째 필드가 80 이상인 전체 행 출력)&#xA;awk &#39;{ if ( $5   = 80 ) print ($0) }&#39; file.txt&#xA;&#xA;합계 및 평균 구하기 (BEGIN, END 패턴)&#xA;awk &#39;&#xA;BEGIN { sum = 0; cnt = 0 }&#xA;{ sum += $5; cnt++ }&#xA;END { print (&#34;Sum: &#34; sum &#34;, Avg: &#34; sum/cnt) }&#39; file.txt&#xA;쉘 스크립트 기초 문법&#xA;쉘 스크립트 파일은 최상단에 #!/bin/bash 선언이 필수입니다.&#xA;&#xA;!/bin/bash&#xA;&#xA;변수 선언 (공백이 없어야 함!)&#xA;NAME=&#34;Lymaru&#34;&#xA;echo &#34;Hello, ${NAME}&#34;&#xA;&#xA;배열 사용&#xA;arr=(&#34;A&#34; &#34;B&#34; &#34;C&#34;)&#xA;echo ${arr[@]}    # 전체 출력&#xA;&#xA;조건문 (띄어쓰기 주의)&#xA;if [ -f &#34;test.txt&#34; ]; then&#xA;    echo &#34;test.txt 파일이 존재합니다.&#34;&#xA;fi&#xA;&#xA;반복문&#xA;for i in {1..5}; do&#xA;    echo &#34;Count: ${i}&#34;&#xA;done&#xA;&#xA;7. 기타 유용한 팁&#xA;백그라운드 프로세스 실행&#xA;&#xA;일반 백그라운드 실행&#xA;./script.sh &amp;&#xA;&#xA;터미널 종료 후에도 실행 유지 (nohup) 및 로그 버리기&#xA;nohup python3 app.py   /dev/null 2  &amp;1 &amp;&#xA;&#xA;터미널 주요 단축키&#xA;Ctrl + C: 현재 프로세스 강제 종료&#xA;&#xA;Ctrl + D: 로그아웃 (EOF)&#xA;&#xA;Ctrl + L: 화면 지우기 (clear)&#xA;&#xA;Ctrl + R: 명령어 히스토리 검색&#xA;&#xA;Ctrl + A: 커서를 라인 맨 앞으로 이동&#xA;&#xA;Ctrl + E: 커서를 라인 맨 뒤로 이동&#xA;&#xA;Ctrl + S: 화면 스크롤 잠금 (멈춤)&#xA;&#xA;Ctrl + Q: 스크롤 잠금 해제&#xA;&#xA;VIM (vi) 주요 명령어&#xA;:set nu : 줄 번호 표시&#xA;&#xA;:set paste : 외부 텍스트 붙여넣기 시 들여쓰기 꼬임 방지&#xA;&#xA;:sp [파일명] : 화면 상하 분할&#xA;&#xA;:vs [파일명] : 화면 좌우 분할&#xA;&#xA;:%s/이전문자열/새문자열/g : 파일 전체에서 문자열 찾아 바꾸기]]&gt;</description>
      <content:encoded><![CDATA[<p>리눅스 핵심 명령어 및 환경 설정 정리</p>

<h2 id="1-시스템-관리-및-패키지-설정">1. 시스템 관리 및 패키지 설정</h2>

<p>기본 패키지 업데이트 및 설치</p>

<pre><code class="language-Bash"># 시스템 업데이트 (&amp;&amp;를 사용하여 앞 명령어가 성공했을 때만 업그레이드 진행)
sudo apt update &amp;&amp; sudo apt full-upgrade -y

# 필수 유틸리티 설치 (ssh, vim, net-tools, gcc 등)
sudo apt install -y openssh-server vim net-tools gcc make build-essential curl

# SSH 서비스 시작
sudo systemctl start ssh
</code></pre>

<p>시스템 정보 확인</p>

<pre><code class="language-Bash"># OS 및 커널 버전 확인
uname -a

# 배포판 상세 정보 확인
cat /etc/*release* # CentOS 등
cat /etc/issue        # Ubuntu

# 시스템 가동 시간, 로그인 사용자 수, 부하율 확인
uptime

# 부팅 이력 확인
last reboot
</code></pre>

<p>계정 및 권한 관리</p>

<pre><code class="language-Bash"># 계정 생성 (대화형 기본 설정 포함 - 권장)
sudo adduser [사용자명]

# 계정 생성 (환경변수 옵션 커스터마이징 용도)
sudo useradd [사용자명]

# Sudo 권한 부여 (visudo 사용 권장)
sudo visudo
# 파일 하단에 추가: [사용자명] ALL=(ALL:ALL) ALL

# 그룹 관리
groups                       # 소속 그룹 확인
sudo groupadd [그룹명]       # 그룹 생성
sudo groupdel [그룹명]       # 그룹 삭제
sudo gpasswd -a [유저] [그룹명]  # 사용자를 그룹에 추가
sudo gpasswd -d [유저] [그룹명]  # 사용자를 그룹에서 제거
</code></pre>

<h2 id="2-디스크-및-시스템-리소스-관리">2. 디스크 및 시스템 리소스 관리</h2>

<p>디스크 용량 확인</p>

<pre><code class="language-Bash"># 파티션별 디스크 여유 공간 확인 (Human readable)
df -h

# 특정 디렉토리의 사용량 요약 확인 (깊이 1단계까지만)
du -h --max-depth=1 /home
</code></pre>

<p>메모리 상태 확인 (free)</p>

<pre><code class="language-Bash">free -h
total: 설치된 총 메모리

used: 사용 중인 메모리

free: 실제 사용 가능한 여유 메모리

shared: 프로세스 간 공유 메모리

buff/cache: 커널 버퍼와 페이지 캐시로 사용 중인 메모리

available: 스와핑 없이 새로운 프로세스에 할당 가능한 실질적 여유 메모리
</code></pre>

<p>디스크 마운트 (추가 및 영구 등록)</p>

<pre><code class="language-Bash"># 디스크 목록 및 파티션 확인
sudo fdisk -l

# 파티션 생성 (n -&gt; p -&gt; 1 -&gt; enter -&gt; enter -&gt; p -&gt; w)
sudo fdisk /dev/sdb

# 파일 시스템 포맷 (ext4)
sudo mkfs -t ext4 /dev/sdb1

# 임시 마운트
sudo mount /dev/sdb1 /data_folder
영구적인 마운트 (재부팅 시 자동 마운트)

# 디스크의 UUID 확인
sudo blkid /dev/sdb1

# fstab 수정
sudo vi /etc/fstab

# 아래 형식으로 맨 밑에 내용 추가
# UUID={확인한_UUID}  /data_folder  ext4  defaults  0  2
</code></pre>

<h2 id="3-네트워크-및-방화벽-설정">3. 네트워크 및 방화벽 설정</h2>

<p>고정 IP 설정 (Ubuntu 20.04 Netplan 기준)</p>

<pre><code class="language-Bash">sudo vi /etc/netplan/01-netcfg.yaml
YAML
network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: no
      addresses: [192.168.219.12/24]
      gateway4: 192.168.219.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
</code></pre>

<pre><code class="language-Bash"># 설정 적용
sudo netplan apply
</code></pre>

<p>방화벽 설정 (Firewalld – CentOS)</p>

<pre><code class="language-Bash">sudo firewall-cmd --permanent --add-port=8080/tcp    # 포트 개방
sudo firewall-cmd --permanent --remove-port=8080/tcp # 포트 차단
sudo firewall-cmd --reload                           # 룰 적용
sudo firewall-cmd --list-all                         # 리스트 확인
</code></pre>

<p>방화벽 설정 (UFW – Ubuntu)</p>

<pre><code class="language-Bash">sudo ufw status verbose         # 상태 및 적용된 룰 확인
sudo ufw allow 22/tcp           # 포트 허용
sudo ufw delete allow 22/tcp    # 허용 룰 삭제
sudo ufw reload                 # 룰 적용
</code></pre>

<h2 id="4-원격-데스크탑-및-파일-공유">4. 원격 데스크탑 및 파일 공유</h2>

<p>XRDP (원격 데스크탑) 설정</p>

<pre><code class="language-Bash">sudo apt-get install -y xserver-xorg-core xorgxrdp xserver-xorg-input-all

# 권한 설정
sudo vi /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla
Ini, TOML
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes
</code></pre>

<pre><code class="language-Bash"># 배경색 설정 후 재부팅
sudo vi /etc/xrdp/xrdp.ini
# ls_top_window_bg_color=000000 추가
sudo reboot
</code></pre>

<p>NFS 파일 공유</p>

<pre><code class="language-Bash">sudo apt install -y nfs-common nfs-kernel-server

# 공유 폴더 설정
sudo vi /etc/exports
# 추가: /sh_data 192.168.1.0/24(rw,sync,no_subtree_check)

# 클라이언트에서 마운트
sudo mount [호스트IP]:/sh_data /local_folder
</code></pre>

<h2 id="5-파일-제어-및-탐색">5. 파일 제어 및 탐색</h2>

<p>TAR 압축 및 해제</p>

<pre><code class="language-Bash"># 압축하기
tar -cvf [압축이름.tar] [압축할_폴더]

# 압축 풀기
tar -xvf [압축이름.tar]
</code></pre>

<p>SCP 데이터 전송 (SSH 기반)</p>

<pre><code class="language-Bash"># Local -&gt; Remote (내 PC에서 원격지 서버로 보내기)
scp -P [포트번호] [보낼_파일] [계정]@[원격지IP]:[도착_디렉토리]

# Remote -&gt; Local (원격지 서버에서 내 PC로 가져오기)
scp -P [포트번호] [계정]@[원격지IP]:[가져올_파일] [내_PC_저장경로]
</code></pre>

<p>파일 검색 (find)</p>

<pre><code class="language-Bash"># 특정 이름으로 파일 검색
find / -name &#34;*.log&#34;

# 7일 이상 수정되지 않은 파일 찾기
find . -mindepth 1 -maxdepth 1 -mtime +7

# 7일 이상 수정되지 않은 파일 찾아서 바로 삭제 (-exec 활용)
find . -mindepth 1 -maxdepth 1 -mtime +7 -exec rm -rf {} \;
파일 내 문자열 검색 (grep 정규표현식)
Bash
grep &#39;^a&#39; 파일명      # a로 시작하는 행
grep &#39;apple$&#39; 파일명  # apple로 끝나는 행
grep &#39;a.....e&#39; 파일명 # a로 시작하고 e로 끝나는 7자리 단어
grep &#39;[a-d]&#39; 파일명   # a, b, c, d 중 하나로 시작하는 단어
grep -i &#39;apple&#39; 파일명 # 대소문자 구분 없이 검색
grep -v &#39;apple&#39; 파일명 # apple이 포함되지 않은 행만 출력
</code></pre>

<h2 id="6-텍스트-프로세싱-및-스크립트">6. 텍스트 프로세싱 및 스크립트</h2>

<p>AWK (오크) 활용
행과 열 기반으로 데이터를 필터링하고 가공하는 데 탁월한 스크립트 언어입니다.</p>

<pre><code class="language-Bash"># 특정 필드(열) 값 출력
awk &#39;{ print $1 }&#39; file.txt

# 특정 조건식 (5번째 필드가 80 이상인 전체 행 출력)
awk &#39;{ if ( $5 &gt;= 80 ) print ($0) }&#39; file.txt

# 합계 및 평균 구하기 (BEGIN, END 패턴)
awk &#39;
BEGIN { sum = 0; cnt = 0 }
{ sum += $5; cnt++ }
END { print (&#34;Sum: &#34; sum &#34;, Avg: &#34; sum/cnt) }&#39; file.txt
쉘 스크립트 기초 문법
쉘 스크립트 파일은 최상단에 #!/bin/bash 선언이 필수입니다.
</code></pre>

<pre><code class="language-Bash">#!/bin/bash

# 변수 선언 (공백이 없어야 함!)
NAME=&#34;Lymaru&#34;
echo &#34;Hello, ${NAME}&#34;

# 배열 사용
arr=(&#34;A&#34; &#34;B&#34; &#34;C&#34;)
echo ${arr[@]}    # 전체 출력

# 조건문 (띄어쓰기 주의)
if [ -f &#34;test.txt&#34; ]; then
    echo &#34;test.txt 파일이 존재합니다.&#34;
fi

# 반복문
for i in {1..5}; do
    echo &#34;Count: ${i}&#34;
done
</code></pre>

<h2 id="7-기타-유용한-팁">7. 기타 유용한 팁</h2>

<p>백그라운드 프로세스 실행</p>

<pre><code class="language-Bash"># 일반 백그라운드 실행
./script.sh &amp;

# 터미널 종료 후에도 실행 유지 (nohup) 및 로그 버리기
nohup python3 app.py &gt; /dev/null 2&gt;&amp;1 &amp;
</code></pre>

<p>터미널 주요 단축키
Ctrl + C: 현재 프로세스 강제 종료</p>

<p>Ctrl + D: 로그아웃 (EOF)</p>

<p>Ctrl + L: 화면 지우기 (clear)</p>

<p>Ctrl + R: 명령어 히스토리 검색</p>

<p>Ctrl + A: 커서를 라인 맨 앞으로 이동</p>

<p>Ctrl + E: 커서를 라인 맨 뒤로 이동</p>

<p>Ctrl + S: 화면 스크롤 잠금 (멈춤)</p>

<p>Ctrl + Q: 스크롤 잠금 해제</p>

<p>VIM (vi) 주요 명령어
:set nu : 줄 번호 표시</p>

<p>:set paste : 외부 텍스트 붙여넣기 시 들여쓰기 꼬임 방지</p>

<p>:sp [파일명] : 화면 상하 분할</p>

<p>:vs [파일명] : 화면 좌우 분할</p>

<p>:%s/이전문자열/새문자열/g : 파일 전체에서 문자열 찾아 바꾸기</p>
]]></content:encoded>
      <guid>https://lymaru.gleeze.com/rinugseu-haegsim-myeongryeongeo-mic-hwangyeong-seoljeong-jeongri</guid>
      <pubDate>Sun, 29 Mar 2026 09:13:28 +0000</pubDate>
    </item>
  </channel>
</rss>