<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>extra-vehicular.log</title>
        <link>https://velog.io/</link>
        <description>유영하다</description>
        <lastBuildDate>Fri, 18 Apr 2025 07:00:18 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <copyright>Copyright (C) 2019. extra-vehicular.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/extra-vehicular" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[사과 게임 시간 수정 하는 법]]></title>
            <link>https://velog.io/@extra-vehicular/%EC%82%AC%EA%B3%BC-%EA%B2%8C%EC%9E%84-%EC%8B%9C%EA%B0%84-%EC%88%98%EC%A0%95-%ED%95%98%EB%8A%94-%EB%B2%95</link>
            <guid>https://velog.io/@extra-vehicular/%EC%82%AC%EA%B3%BC-%EA%B2%8C%EC%9E%84-%EC%8B%9C%EA%B0%84-%EC%88%98%EC%A0%95-%ED%95%98%EB%8A%94-%EB%B2%95</guid>
            <pubDate>Fri, 18 Apr 2025 07:00:18 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>나는 시간이 더 필요해!!!</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/ef35252f-9090-495e-aabf-279229a463b5/image.png" alt=""></p>
<p>최근에 유행하는 사과 게임이라고 하는 숫자를 10을 맞추는 게임을 하는 데, 항상 애매하게 몇 초만 더 있으면 좋을 것 같았다. 기본적으로 설정되어 있는 120초(2분) 보다 조금 더 많은 한 3~4분 정도만 더 있음 좋을 것 같은데... </p>
<p>찾아보니까 pc로 하는 건 꽤 쉽게 변경할 수 있었다. 개발자 툴을 이용하는 방법인데, F12을 누른 뒤, Console 창에서 timeAll 옵션을 변경하는 것이다.</p>
<pre><code>timeAll=240
timeAll=&quot;원하는시간(초)&quot;

timeRemain     // 남은 시간 확인</code></pre><p>그런데...</p>
<p>게임 내에서 계속 수정하고 수정해도 제한이 2분에서 변경되지 않았다.. ㅎㅎ</p>
<p>그러다 해결방법을 찾았다. 내가 되게 간단한 부분 생각하지 못한 것인데 바로 게임을 시작을 하고 timeAll 옵션을 변경해야 해당 게임에 적용이 되는 것이다. ㅎㅎ </p>
<h2 id="사과-게임에서-시간-수정하는-방법-정리">사과 게임에서 시간 수정하는 방법 정리!</h2>
<h3 id="1-게임-들어가기">1. 게임 들어가기</h3>
<p>게임 링크 : <a href="https://www.gamesaien.com/game/fruit_box_a/">사과 게임 PC 링크</a></p>
<hr>
<h3 id="2-시간-제한-확인하기">2. 시간 제한 확인하기</h3>
<h4 id="게임을-우선-실행한다">게임을 우선 실행한다.</h4>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/5c85e4c5-3c73-4341-bf6b-91585bbff050/image.png" alt=""></p>
<p>play 버튼을 누르면, 우리가 잘 아는 화면이 나올 것이다.</p>
<hr>
<h4 id="이후-f12를-눌러-개발자-창을-연다-이후-consol-화면으로-전환-후-또는-f12를-누른-뒤-열어도-된다">이후, F12를 눌러 개발자 창을 연다. 이후, Consol 화면으로 전환 후 (또는 F12를 누른 뒤 열어도 된다.)</h4>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/dc312b6b-6258-4b63-b10f-c5a8faccb449/image.png" alt=""></p>
<ul>
<li>위의 나레이션바에서 콘솔 항목에 들어가면 콘솔 창이 나온다. 여기서 명령어를 작성하면 된다.</li>
</ul>
<h4 id="우선-timeall-및-timeremain을-확인한다">우선, timeAll 및 timeRemain을 확인한다.</h4>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/75edf4c5-0f89-4898-9d78-d0aa0056bbf2/image.png" alt=""></p>
<ul>
<li>120이 디폴트 값이고, timeRemain에 남은 시간이 나온다. </li>
</ul>
<hr>
<h3 id="3-시간제한-수정-및-확인하기">3. 시간제한 수정 및 확인하기</h3>
<h4 id="원하는-시간을-작성-이후-변경-시간을-확인한다">원하는 시간을 작성 이후, 변경 시간을 확인한다.</h4>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/bc1e971b-8d30-44c3-81dc-cab00d52810b/image.png" alt=""></p>
<ul>
<li>처음에 240초를, 이후에 3600초를 변경하였을 때, timeRemain의 결과값이 해당 시간에 맞추어 남은 시간을 출력하고 있음을 보여주고 있다.</li>
</ul>
<hr>
<h3 id="추가--플레이하지-않고-실행시-발생-가능한-에러-2가지-상황">추가 : 플레이하지 않고 실행시 발생 가능한 에러 2가지 상황</h3>
<p>실행하지 않고 적용하면 오류가 발생하거나 수정되지 않는다. (확인된 두 가지 상황)</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/0d9cf647-7264-4fe9-9f6e-01708e44466b/image.png" alt=""></p>
<h4 id="-오류-발생-경우--게임-링크를-처음-열어서-게임-실행-자체를-하지-않은-경우">* 오류 발생 경우 : 게임 링크를 처음 열어서 게임 실행 자체를 하지 않은 경우.</h4>
<pre><code>  - 기본적으로 timeAll을 쳤을 때, 120이 출력되어야 함.</code></pre><p><img src="https://velog.velcdn.com/images/extra-vehicular/post/f676a44c-b1aa-4ed7-bd74-f1519a301f0f/image.png" alt=""></p>
<h4 id="-수정되지-않는-경우--게임을-시작하지-않고-수정">* 수정되지 않는 경우 : 게임을 시작하지 않고 수정</h4>
<pre><code>  - timeAll 명령어에 대한 출력 값은 정상적으로 출력되지만, 게임을 시작한 상태가 아니기에 timeRemain을 확인하면, 마이너스 값이나 에러 발생으로 시간이 세팅되지 않음을 확인 가능.</code></pre><p>이 경우가 발생하더라도 크게 신경 쓰지 않고 플레이를 누른 다음에 수정하면 된다.</p>
<hr>
<p>제한 없을 때, 내 최고 기록 </p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/f8323756-3ae5-4594-921c-308763a1e8c0/image.png" alt=""></p>
<p>최고가 100점이 아니라 그 이상으로 배점되어 있는 듯 한데, 시간 무제한으로 할 꺼면 없애는 사과의 배치도도 생각해야할 것 같다.</p>
<p>즐겜!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[리눅스 마스터 1급 합격 후기(제 2402회)]]></title>
            <link>https://velog.io/@extra-vehicular/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%A7%88%EC%8A%A4%ED%84%B0-1%EA%B8%89-%ED%95%A9%EA%B2%A9-%ED%9B%84%EA%B8%B0</link>
            <guid>https://velog.io/@extra-vehicular/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%A7%88%EC%8A%A4%ED%84%B0-1%EA%B8%89-%ED%95%A9%EA%B2%A9-%ED%9B%84%EA%B8%B0</guid>
            <pubDate>Fri, 06 Dec 2024 05:09:31 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>드디어 합격한 리눅스 마스터 1급</p>
</blockquote>
<h4 id="우선-합격-증빙부터">우선 합격 증빙부터..</h4>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/e381dd24-b7d5-432a-9ce2-a6660c58a061/image.png" alt=""></p>
<hr>
<h2 id="1-2번째-2차-시험">1. 2번째 2차 시험</h2>
<p><span style="color: gray">_<del>콩콩</del> _</span></p>
<p>1차 시험 합격 이후, 주로 서비스 위주 문제들을 대비하기 위해 실습하고 velog에 올리는 식으로 공부했었다. 나름 머리에도 남고 꽤나 열심히 실습을 진행 했었다.</p>
<p>다만 내가 생각하지 못한 패착은 시간이었다. 그냥 모의고사 칠 때는 바로 답안지에 작성하고 풀이하는 식으로 진행하니 시간이 모자랄 이유가 없었는데, 답안지에 옮겨 작성해야하는 부분이 있다보니 시간이 부족했다.</p>
<p>특히 작업식을 먼저 풀지 않고, 단답식을 먼저 푼 것이 패착이기도 했다. 단답식의 경우 대다수 배점이 높지 않은데, 옵션값을 찾기 위해 man 페이지를 읽어야 하는 양은 많기 때문에, 외운 것이 아니라 찾아야 한다면 시간이 많이 걸린다. 그래서 작업식을 작성하는데에 들여야하는 시간이 적었어서 불합격했다고 생각했다.</p>
<p>이후, 난 취업을 했고 이번 시험의 경우 직장을 다니면서 시험을 치르게 되었다. 직무와 관련된 공부를 회사에서 하는 것이 용인되어, 회사에서도 공부를 했는데 공부를 하는 시기가 조금 짧게 잡아 거의 벼락치기 하듯 공부를 했었다. 실제 실기 시험을 치기위해 필요한 이론 공부를 하는 것은 대략 3~4일이었고, 그 이전에 LVM, Disk Quota, NFS 등 실습이 필요한 부분은 짬짬히 진행했고, 그 외 부분들은 이전 시험을 위해 velog에 작성해둔 글들을 가지고 공부를 했었다. </p>
<p>주로 모의고사를 위주로 풀었었고, 모의고사에서 자주 출제되는 부분에 대한 유형들을 주로 공부하였다. 사실 그 외 부분에서 잘 출제되는 편은 아닌데에다, 작업식과 기존 자주 출제되는 유형 부분만 확실하게 알아도 합격하는데에 문제가 없는 수준이라 알아야 하는 부분을 확실하게 하고 새로운 부분을 보는 것을 추천한다. (작업식이 60, 단답식이 40인데 커트라인이 60이다...)</p>
<hr>
<h2 id="2-공부-방법">2. 공부 방법?</h2>
<h3 id="단답식">단답식</h3>
<p>단답식 공부의 경우, 특히나 각 명령어별 주요 옵션 값, 자주 등장하는 옵션값에 대해 외우고, 유사하게 사용되는 명령어의 경우 차이점이 무엇인지 확실하게 짚고 넘어갔다. 주로 서비스쪽은 작업식으로 나오고 명령어의 옵션값을 작성하라는 부분이 앞쪽 단답식에 나온다. </p>
<p>시험에 등장하는 분야들은 거의 정해져 있다고 봐도 무방하다. usermod, useradd, chage와 같은 <strong>사용자 설정</strong> 명령어 및 관련 디렉토리에 대한 문제가 한 문제, <strong>log</strong>에 대한 명령어 및 관련 디렉토리가 한 문제, <strong>프로세스</strong> 명령어에 대한 문제가 한 문제,** rpm 또는 dnf** 문제가 1문제, <strong>rsyslog.conf</strong> 설정 문제는 항상 나오는 듯하다. 거기에 <strong>압축(tar, cpio), rsync, cron, 모듈</strong> 등의 유형이 출제되는 것으로 분석된다. 따라서 실기 요약정리본들을 인터넷에서 다운 받으면 주로 해당 유형에 대해서만 정리해놓은 것을 확인할 수 있다. </p>
<p>이중 옵션값을 확인이 아니라 아예 외워 놓으면 시간 단축이 확실히 되는 부분은 사용자 계정 문제, rpm 및 dnf 문제, tar, cpio, rsync 문제, cron에 대한 부분은 세부 옵션값을 외우거나 자주 출제되는 부분에 대해 외워 두는 것을 추천한다. 해당 부분은 옵션값이 많아 찾는데에도 시간이 많이 걸리지만 모의 고사를 통해 자주 출제되는 옵션을 확인해두고 그것을 기반으로 다른 주요 옵션까지 확인해 두면, 시간을 단축하기에 아주 쉽다.</p>
<h3 id="작업식">작업식</h3>
<p>작업식의 경우, 리눅스 마스터 시험에서 가장 많이 보는 교재인 Rocky Linux 8로 리눅스 마스터 1급 정복하기(이전에는 CentOS7로 리눅스 마스터 1급 정복하기 였다...)에 나오는 작업식 문제만 확실하게 알고, 문제를 풀 때 참고 할 수 있는 man 페이지나 example 파일, conf 파일만 정리해 두면, 대다수 문제는 풀 수 있다. </p>
<p>다만 각 서비스별 사용하는 ip 형식이 다르기에 서비스별 형식을 정리해두고 시험을 들어가는 것을 추천한다. 특히 nfs 문제중 /etc/exports 문제의 경우 작성 형식을 참고할 수 없기 때문에 이런 부분은 형식을 외워야 햔다. 그리고 아파치의 경우, 대다수의 옵션은 파일 내 작성되어 있으니 어떤 옵션이 있고, 관련 폴더와 파일에 대한 정의를 아는 것이 더 중요하다. 만약 헷갈린다면 /bin에 들어가서 ./httpd 명령어의 옵션을 이용할 수도 있지만, 상세히 나오지 않고 보기가 까다롭기 때문에 추천하진 않는다.</p>
<p>이외에 iptables에 대한 부분은 각 조건에 맞게 계속 실습을 해봐야하는데, 그럼에도 자주 등장하는 부분은 FORWARD 문제나 POSTROUTING 문제(SNAT), PREROUTING(DNAT) 문제가 자주 출제되고, 헷갈리는 부분이 있으니 외우고 가는 것을 추천한다. <span style="color: gray"><del>아니면, 문제에 따라 헷갈릴 수도 있다.</del></span></p>
<p>대다수 실습 시험의 경우 외우지 않고 man 페이지를 확인하며 풀면 쉽게 풀 수 있다고 하지만, 완전히 숙달된 사람이 아니라면 작업식에서도 외워야 하는 부분은 확실하게 외워서 가는 것이 당연하지만 합격하는데에 확률을 높일 수 있다.</p>
<hr>
<h2 id="3-참고-자료">3. 참고 자료</h2>
<p>만약 내가 시험을 치는데 초보라면 교재를 추천한다. 나오는 명령어가 무엇이 있는지조차 이야기 할 수 없는 수준이라면, 차라리 교재로 정독하는 것이 더 낫기 때문이다.</p>
<p>대표적인 교재는 이기적과 정복하기 책이 있지만, 두 교재 모두 사용한 입장에서는 Rocky Linux 8로 리눅스마스터 1급 정복하기 책을 추천한다. </p>
<p><a href="https://www.yes24.com/Product/Goods/125131399">Rocky Linux 8로 리눅스마스터 1급 정복하기</a></p>
<p>가장 큰 이점은 실제 시험에서 출제되는 기출문제가 있다는 부분이다. 특히 내용 중간중간 나오는 실습 부분이 그대로 출제된다. 거의 정식 교재라고 보면 되는 수준이다. 이기적 역시 유사하게 설명하고 기출에 등장하는 부분이 그대로 나오지만, 실습 과정이나 이러한 부분에서 쓸데없이 부가적인 내용들이 많아 시험 공부를 하는데 너무 곁다리가 많다는 느낌이었다. 안그래도 양이 많은데...</p>
<p>초보가 아니라 모의고사를 쳤을 때 왠만큼 아는 명령어고 틀리는 부분은 잘 없다면 굳이 교재를 구입할 필요 없이 인터넷에 돌아다니는 요약본과 모의고사로 공부하는 것을 추천한다.</p>
<p><a href="https://starrykss.tistory.com/tag/%EB%A6%AC%EB%88%85%EC%8A%A4%EB%A7%88%EC%8A%A4%ED%84%B0%201%EA%B8%89">별의 블로그 :: &#39;리눅스 마스터 1급&#39;</a> : 이 블로그의 경우 출제되는 유형별 정리와 모의고사 정리하기에 편했다.</p>
<p><a href="https://zziangzzang.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4%EB%A7%88%EC%8A%A4%ED%84%B0-1%EA%B8%89-%EC%B5%9C%EC%A2%85-%ED%95%A9%EA%B2%A9-%ED%9B%84%EA%B8%B0-%EA%B0%9C%EB%85%90-%EC%9A%94%EC%95%BD-%EC%9E%90%EB%A3%8C-%EA%B3%B5%EC%9C%A0-%EB%8F%85%ED%95%99-%EC%A0%9C2201%ED%9A%8C">리눅스 마스터 1급 최종 합격후기 / 개념 요약 자료 공유 / 독학 / 제 2201회</a> : 해당 블로그에 있는 요약 정리본이 정리가 굉장히 잘 되어 있어 참고하면서 공부했다. </p>
<p><a href="https://hellocbt.com/exam33">리눅스 마스터 1급 실기 - hellocbt</a> 
<a href="https://hellocbt.com/linux_1/74460">리눅스 마스터 1급 실기 모의고사 pdf - hellocbt</a>
: 기존 이용하는 cbt 사이트에는 리눅스 마스터 1급 실기문제가 없어 hellocbt에서 공부했었다. 이 사이트에서 실기 문제 모의고사 pdf도 다운 받을 수 있으니, 패드로 공부하는 분들은 참고하면 될 것 같다.</p>
<p>그 외의 모의 고사의 경우 대다수 인터넷에서 찾아보고 있다면 풀고 아니면 답안지로 문제를 유추하면서 공부했던 것 같다. 왠만큼 나오는 부분이 비슷해서 옵션 값들을 확인하면 어떤 문제가 주로 출제되는지 알 수도 있다.</p>
<hr>
<h2 id="4-시험-환경">4. 시험 환경</h2>
<h3 id="시험-환경">시험 환경</h3>
<h4 id="실제-시험-응시-시-환경">실제 시험 응시 시 환경</h4>
<p>처음 시험을 친 시험장에서는 조금 시험관들이 어이 없는 실수를 저질렀다. 시험을 시작을 하고도 비번을 안준 것이다. 물론 이번에 친 시험도 동일한 시험장에 배정되었는데, 이번에는 그런 문제는 발생하지 않았다. 다른 시험장들은 미리 들어가거나 확인할 수 있다고도 이야기 하지만 우리쪽은 그렇지 않았고 그냥 시험까지 대기를 타고 있어야 했다.</p>
<p>그 외, 답안지에서 문제가 틀렸을 때 화이트나 작성자가 지우는 게 아니라 시험관이 와서 틀린 부분에 대해 두 줄을 긋고 그 아래 시험관의 싸인이 각각 들어가야하기에 수정하는데에 시간이 걸린다. 대다수 답안지를 마지막에 작성하기 때문에 틀린 부분에 대한 수정도 마지막에 들어가는 경우가 많아, 자칫하다간 시간 내에 내가 수정해야하는 부분을 수정하지 못할 수도 있으니 작업식을 먼저 풀고 작업식을 답안지에 우선 작성한 후에 단답식을 푸는 것을 추천한다.</p>
<p>그리고 우리는 수험표를 뽑아서, 뒷장에 가답안을 적어갈 수 있었는데 이 역시 시험관마다 다르다 하니 확인해야할 부분이다.</p>
<h4 id="리눅스-환경">리눅스 환경</h4>
<p>리눅스 환경은 기본적으로 인터넷이나 명령어가 아닌 마우스로 파일이나 이러한 부분에 대한 확인을 못하게 하려 하는지, xWindow가 아닌 완전한 커맨드 창으로 환경이 이루어져 있다. 그래서 vi 편집기의 사용법과 man 메뉴얼을 보는 법을 숙지해 가는 것이 중요하다. (마우스 사용 못함.)</p>
<ul>
<li>vi 편집기 가장 많이 사용하는 옵션 <ul>
<li>shift + g : 맨 아래로 내리기</li>
<li>ctrl + d : 반 페이지씩 내리기</li>
<li>ctrl + u : 반 페이지씩 올리기</li>
<li>esc + : + q + ! : 작성 내용을 저장하지 않고 바로 나가기 (작성한 내용을 저장하고 싶다면 q앞에 w를 추가하면 된다.)</li>
<li>방향키 아래와 위 옵션 : 커서를 한 줄씩 내리거나 올리기</li>
<li>esc + / + &#39;찾고자하는 단어&#39; : vi 편집기에서 찾고자하는 단어 찾을 때 사용.</li>
</ul>
</li>
</ul>
<p><a href="https://tear94fall.github.io/lecture/2020/02/10/vi-keyboard-short-cut.html">vi 편집기 단축키</a></p>
<ul>
<li>man <ul>
<li>space : 한 페이지씩 내리기</li>
<li>shift + g : 맨 아래로 내리기</li>
<li>/ + &#39;찾고자하는 단어&#39; : 단어 찾기</li>
<li>q : man 페이지 나가기</li>
<li>방향키 위 옵션 : 위로 올리기</li>
</ul>
</li>
</ul>
<hr>
<p>그래도 2번 시험을 쳤지만 1차 시험 합격 이후 적용기간(1년)내 재시험의 기회를 날려먹지 않아서 다행이다. 안그랬으면 1차 시험 친다고 또 이론 공부해야 하는 귀찮은 문제가 발생할 뻔했다. 그런데 이번 시험에서는 이상한 실수를 많이했어서 그래도 합격해서 다행이라 생각한다. <em><del><span style="color: gray">(명령어 철자를 잘못 작성하거나, nice 문제에서 잘 계산 해두고 적용할 프로세스 명을 안 적는다거나, 적용 파일 명을 잘못 작성하거나...ㅎ)</span></del></em></p>
<p>부디 이 글을 읽는 다른 사람들은 나처럼 이런 어이 없는 실수는 하지 않고 모두 모두 합격하길 바란다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Greedy] 백준 1789 문제: 수들의 합-python]]></title>
            <link>https://velog.io/@extra-vehicular/%EA%B7%B8%EB%A6%AC%EB%94%94-%EB%B0%B1%EC%A4%80-1789-%EB%AC%B8%EC%A0%9C-%EC%88%98%EB%93%A4%EC%9D%98-%ED%95%A9-python</link>
            <guid>https://velog.io/@extra-vehicular/%EA%B7%B8%EB%A6%AC%EB%94%94-%EB%B0%B1%EC%A4%80-1789-%EB%AC%B8%EC%A0%9C-%EC%88%98%EB%93%A4%EC%9D%98-%ED%95%A9-python</guid>
            <pubDate>Fri, 14 Jun 2024 07:21:54 GMT</pubDate>
            <description><![CDATA[<p>개인적으로 왜 틀린지 조건 찾는데 오래 걸렸었다...
<del>너무 간단했지만..</del></p>
<blockquote>
<p><a href="https://www.acmicpc.net/problem/1789">https://www.acmicpc.net/problem/1789</a></p>
</blockquote>
<h2 id="문제">문제</h2>
<ul>
<li>서로 다른 N개의 자연수의 합이 S라고 한다.</li>
<li>S를 알 때, 자연수 N의 최댓값은 얼마인가?</li>
</ul>
<hr>
<h2 id="입력">입력</h2>
<p>첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.</p>
<hr>
<h2 id="출력">출력</h2>
<p>첫째 줄에 자연수 N의 최댓값을 출력한다.</p>
<hr>
<h2 id="문제-분석">문제 분석</h2>
<p>자연수의 합 S까지 도달하는데에 필요한 겹쳐지지 않은 자연수 개수의 최댓값을 구하는 것이다.</p>
<p>1씩 증가되는 자연수를 더하면서 최댓값인 N을 구한다.
이 예는 출력 예시 1인 200에 19가 출력된 사실을 보면 확인할 수 있다.</p>
<p>1+2+3+4+...18+19 = 190이고,
1+2+3+4+...18+19+20 = 210이다.</p>
<p>이때, 1부터 증가시킨 값들은 해당 합을 구할 수 있는 최소한의 값으로 따라서 1부터 N까지의 합이 S보다 큰 수 전의 N 값이라 할 수 있다.</p>
<p>1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+17+20+21+22와 같이 N은 19이고 합은 200이 나오는 결과를 확인할 수 있다. 이처럼 N이 19이면, 이후의 값은 조정하여 합을 구하는 것이 가능하다는 의미로, 자연수 개수의 최댓값을 이야기한다.</p>
<p>만약 N을 20이라면, 이미 210으로 최소한의 자연수들을 합한 값에서 값이 초과하게 된다.
따라서 1부터 N까지 합한 값이 S를 넘기지 않는 최대의 값 N을 구하는 문제이다.</p>
<blockquote>
<p>참고 : <a href="https://www.acmicpc.net/board/view/17063">https://www.acmicpc.net/board/view/17063</a>
:<a href="https://www.acmicpc.net/board/view/119427">https://www.acmicpc.net/board/view/119427</a></p>
</blockquote>
<h2 id="풀이-코드-1---while">풀이 코드 1 - while</h2>
<pre><code>s = int(input())    # S 입력

cnt = 0    # counter
sum = 0    # total Sum
while True:
    cnt = cnt + 1 # 1부터 카운트
    sum = cnt + sum # cnt까지 합한 값
    if sum &gt; s:    # cnt까지의 Total sum이 S보다 더 크다면
        result = cnt    
        break    # 종료

print(result-1)    # S를 넘기지 않는 이전 값 출력
</code></pre><h4 id="코드-해설">코드 해설</h4>
<p>while 구문으로 풀이한 코드이다.
해당 코드의 경우 1부터 카운트를 위한 flag 변수인 cnt로 1씩 더하면서 카운트를 진행한다.
이후, 1+2+...+cnt와 같이 cnt까지의 total 합을 구하고, 해당 합이 s보다 크다면, S를 넘기지 않는 이전 값을 출력한다.</p>
<p>이 코드의 경우 가장 노멀하고 S값을 초과하는 변수 이외 다른 조건을 생각하지 않아도 괜찮다.</p>
<hr>
<h2 id="풀이-코드-2---for">풀이 코드 2 - for</h2>
<pre><code>s = int(input()) # S 입력

result=0    # 결과
sum = 0    # total sum
if s == 1 :    # S가 1인 경우
    result = 1 
else:    # S가 1이 아닌 경우
    for i in range(1, s+1):    # 1부터 S까지 카운트
        sum = i + sum    # i 값 까지 합한 값
        if sum &gt; s: # i까지의 total sum이 S보다 크다면
            result = i - 1    # S를 넘기지 않는 이전 값 출력
            break    # 종료


print(result)</code></pre><h4 id="코드-해설-1">코드 해설</h4>
<p>문제의 코드이다...</p>
<p>해당 코드에서는 1에 대한 조건을 명시하였다.
이전 while의 코드에서는 1에 대한 조건이 없어도 괜찮았던 이유는 while에서 1의 값을 처리시, -1을 할 때 2 - 1로 처리가 되어 최종적으로 1이 출력된다,
for 구문의 경우 if 구문 없이 아래 부분만 처리하면, i=1만 처리되기 때문에 1번만 반복문이 진행되고 이후부터 진행되지 않는다. 
따라서 값을 출력해 보면 0이 출력되는 사실을 확인할 수 있다.
따라서 위의 코드 처럼 if문으로 1을 처리하거나, 또는 무한루프로 만들어 제한을 없애도록 코드를 제작해야 오류를 해결할 수 있다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[VNC(Virtual Network Computing) 실습 및 트러블슈팅]]></title>
            <link>https://velog.io/@extra-vehicular/VNCVirtual-Network-Computing-%EC%8B%A4%EC%8A%B5-%EB%B0%8F-%ED%8A%B8%EB%9F%AC%EB%B8%94%EC%8A%88%ED%8C%85</link>
            <guid>https://velog.io/@extra-vehicular/VNCVirtual-Network-Computing-%EC%8B%A4%EC%8A%B5-%EB%B0%8F-%ED%8A%B8%EB%9F%AC%EB%B8%94%EC%8A%88%ED%8C%85</guid>
            <pubDate>Wed, 24 Apr 2024 18:44:33 GMT</pubDate>
            <description><![CDATA[<p>이번 이야기도 저번과 같이 &#39;Rocky linux 8로 리눅스 1급 정복하기&#39;를 가반으로 실습이 진행되었습니다. </p>
<p>다른 여타 서비스들은 이제 거의 실습을 다한 상황에서 블로그 감이 나올 정도의 오류가 없어 작성하지 못하고 있는 도중 3장의 마지막 실습인 VNC는 당연하게도 오류가 출력되었습니다.</p>
<p>어떻게 보면 간단한데 해결하는데에 조금 시간이 걸린지라...</p>
<h3 id="vnc-서버">VNC 서버</h3>
<h4 id="vnc-서버-설정">VNC 서버 설정</h4>
<p>우선 서버 구성을 위해 패키지를 설치하고, 각 환경 설정을 바꾸어 줍니다.</p>
<p>또한 SELinux를 disabled로 설정하고, 진행합니다.(제 환경에서는 이미 되어 있어 추가하지 않습니다.)</p>
<pre><code>sudo dnf install tigervnc-server

sudo vi /etc/gdm/custom.conf </code></pre><p>우선 서버 구성을 위해, 패키지를 설치하고, 각 환경 설정을 바꾸어 줍니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/73062a84-da6b-49b1-bea4-09ea59c1af42/image.PNG" alt=""></p>
<p>윗 이미지와 같이 WaylandEnable=false로 설정해줍니다.</p>
<pre><code>sudo vncpasswd</code></pre><p>여기서 만약 root 사용자로 설정하는 것이 아니라면 반드시 sudo를 입력하여야 합니다.
(그 이유는 아래 troubleshooting 쪽에서 풀도록 하겠습니다.)</p>
<p>패스워드 설정 시 해당 패스워드로 클라이언트도 접속합니다. 
저는 보기 전용 패스워드는 별도 설정은 하지 않았습니다.</p>
<pre><code>sudo vi /etc/tigervnc/vncserver-config-defaults

sudo vi /etc/tigervnc/vncserver.users</code></pre><p>이후, /etc/tigervnc/vncserver-config-defaults와 /etc/tigervnc/vncserver.users 모두 편집해줍니다.</p>
<p>/etc/tigervnc/vncserver-config-defaults에서는 데스크톱으로 gnome을 사용하고, 해상도를 1024x768로 설정하였습니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/490347b8-288b-4300-a735-5be3a40cb0c3/image.PNG" alt=""></p>
<p>/etc/tigervnc/vncserver.users는 root가 디스플레이 포트번호 1번으로 지정하여 port 5901을 사용하도록 지정합니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/5a3151c9-4a97-4fec-b63a-36c09eee61fd/image.PNG" alt=""></p>
<p>설정이 모두 끝났다면, vnc 구동을 위한 설정한 포트의 서비스 파일을 생성합니다.</p>
<pre><code>sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service</code></pre><h4 id="vnc-서버-구동">vnc 서버 구동</h4>
<p>모든 설정이 마쳤다면 데몬 서비스를 실행하여, 서버를 구동합니다.</p>
<pre><code>systemctl daemon-reload

systemctl start vncserver@:1

systemctl status vncserver@:1

systemctl enable vncserver@:1</code></pre><p>정상적으로 구동된다면 status 옵션 실행시 다음 이미지와 같이 초록색 active가 출력됩니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/b8f66b92-ea5a-4917-b782-86f324423bb5/image.PNG" alt=""></p>
<h3 id="리눅스-클라이언트">리눅스 클라이언트</h3>
<h4 id="리눅스-클라이언트-설정">리눅스 클라이언트 설정</h4>
<p>VNC에서 클라이언트가 하는 설정 내용은 없습니다.</p>
<p>리눅스에서는 패키지를 설치하고, vncviewer 명령어를 사용하여, 서버주소와 포트번호로 vnc로 원격 접속이 가능합니다.</p>
<pre><code>sudo dnf install tigervnc

vncviewer 192.168.56.102:5901</code></pre><p>vncviewer 명령어가 정상적으로 실행되었다면 아래 이미지와 같은 화면이 출력됩니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/dded2563-e9ba-4589-899d-8e566a784df3/image.PNG" alt=""></p>
<p>취약하다는 메세지는 무시하고, 비밀번호 작성란에 서버를 설정할 때, 작성한 패스워드를 기입해 줍니다.</p>
<h4 id="리눅스-클라이언트-실행">리눅스 클라이언트 실행</h4>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/f6a3e7f0-9a1f-407d-8d18-ec48cd8de323/image.PNG" alt=""></p>
<p>서버와 연결이 되어 클라이언트에서 tigerVNC 화면으로 서버와 동일한 ip주소가 나타나는 것을 확인할 수 있습니다.
즉, 원격지 시스템에 정상적으로 접속되었습니다.</p>
<h3 id="윈도우-클라이언트">윈도우 클라이언트</h3>
<p>윈도우의 경우 우선 방화벽을 내리고, RealVNC 사이트에서 VNC viewer 프로그램을 다운받습니다.
해당 사이트에서 지속적으로 로그인을 하라거나 패키지를 구매하라는 식으로 화면이 넘어갑니다.
하지만, 만일 실행 파일을 install한 이후 로그인을 하라는 메세지가 뜬다면, 이미 설치가 완료되었기 때문에 종료하고 해당 프로그램을 찾아 실행시켜 줍니다.
실행한 프로그램에서도 sign in을 하지 않더라도 테스트 용으로서는 사용할 수 있습니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/6c911f1b-9452-458e-a193-029c321f7809/image.PNG" alt=""></p>
<p>위쪽에 서버 주소와 포트번호를 기재하면, 인증 화면이 출력됩니다.
여기서도 이전 서버 설정 시 작성한 패스워드를 기입하면 됩니다.</p>
<h3 id="윈도우와-리눅스-클라이언트-동시-테스트">윈도우와 리눅스 클라이언트 동시 테스트</h3>
<p>원격 모니터링이 잘 되는지 확인하기 위해 두 개의 클라이언트를 동시에 실행시켜 테스트 해 보았습니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/2d6cf207-30de-45af-a7cf-15bd1539309f/image.PNG" alt=""></p>
<p>왼쪽이 Virtual box에 설치된 Rocky linux 8 기반 VNC 클라이언트고, 오른쪽이 RealVNC 프로그램으로 실행 중인 윈도우 클라이언트 화면입니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/a8ed7409-2c5d-4c9f-9a1c-d1f6fe4a2a25/image.gif" alt=""></p>
<h3 id="vnc-server-troubleshooting---방화벽">VNC Server TroubleShooting - 방화벽</h3>
<p>만일 SELinux의 설정을 비활성화하였음에도 연결이 안된다면, 방화벽 설정까지 해야합니다.</p>
<pre><code>firewall-cmd --permanent --add-service=vnc-server
firewall-cmd --permanent --add-5900/tcp
firewall-cmd --permanent --add-5900/udp
firewall-cmd --permanent --add-5901/tcp
firewall-cmd --permanent --add-5901/udp
firewall-cmd --reload</code></pre><p>vnc-server에 대한 서비스 추가와 각 포트 추가를 해주었습니다. 
사실 5901 포트만 추가해도 될 것 같긴 합니다만, 이전 설정에서 VNC의 기본 포트인 5900까지 모두 열어 두어 작성하였습니다.</p>
<h3 id="vnc-server-troubleshooting---inactivedead">VNC Server TroubleShooting - inactive(dead)</h3>
<p>해결에서 꽤 시간이 많이 걸렸다는 부분이 이 부분입니다.</p>
<p>모든 설정을 확인하여도 오타나 추가적으로 잘못된 부분을 발견할 수 없었으나, 아래 이미지와 같이 systemctl -status vncserver@:1을 하였을 때, 결과는 inactive(dead)가 출력되었습니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/db01b233-1b2e-4bfd-9188-f789e825b5b0/image.PNG" alt=""></p>
<p>다른 사람들이 알려준 방법들 예를 들어 config 파일에 localhost와 관련된 설정을 넣는다거나 등등의 설정들을 하엿으나, 해결하지 못했습니다.</p>
<p>특히 다른 사람들이 설치한 폴더가 조금 다른 듯해, log 파일을 찾지를 못했습니다...</p>
<p>.vnc에 있다고 하는데 계속 찾질 못했는데 경로는 ~/.vnc로 home 아래 있습니다만 ls명령어로 확인하면 출력되지 않습니다.</p>
<pre><code>cd ~/.vnc</code></pre><p>해당 명령어를 사용하면 해당 디렉토리로 들어가집니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/627faa39-4193-4e7d-858c-571db9968fd3/image.png" alt=""></p>
<p>현재 해결한 이후 캡쳐본입니다만, 이전 디렉토리로 이동하면 localhost.localdomain:1.log만 존재했습니다.</p>
<p>우선 localhost.localdomain:1.log는 로그 파일로 해당 파일을 vi 편집기를 이용해 확인하면 오류 사항에 대해 판단할 수 있습니다.</p>
<p>예상 가능하듯 저에게 발생한 오류는 passwd 파일이 생성되지 않아서입니다.</p>
<p>log 파일에서도 passwd 파일이 생성되지 않아, 오류가 발생하였다고 메세지를 출력해주더라구요...</p>
<p>원인을 따지자면 root가 아닌 기타 사용자로 vncpasswd를 사용한 것이 문제가 되었습니다.</p>
<p>윗 이미지의 passwd의 소유권을 확인하면 root만이 작성 가능하고, 그 이외의 사용자들은 파일을 생성할 수 없다는 것을 확인할 수 있습니다.</p>
<p>따라서 해당 문제는 su 명령어를 이용해 root 사용자로 변환하여 설정하거나, sudo를 사용해야 합니다.</p>
<h4 id="참고사이트">참고사이트</h4>
<p><a href="https://github.com/TigerVNC/tigervnc/issues/1393">[참고사이트]-VNC authentication enabled, but no password file created </a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[DNS 서버와 sendmail 실습]]></title>
            <link>https://velog.io/@extra-vehicular/DNS-%EC%84%9C%EB%B2%84%EC%99%80-sendmail-%EC%8B%A4%EC%8A%B5</link>
            <guid>https://velog.io/@extra-vehicular/DNS-%EC%84%9C%EB%B2%84%EC%99%80-sendmail-%EC%8B%A4%EC%8A%B5</guid>
            <pubDate>Mon, 22 Apr 2024 18:09:15 GMT</pubDate>
            <description><![CDATA[<p>sendmail은 MTA(Mail Transfer Agent)의 프로그램 중 하나로 이메일을 SMTP 프로토콜을 이용해 다른 메일 서버로 전달하는 프로그램을 말합니다.</p>
<p>이중 sendmail에 대해 Rocky Linux 8로 리눅스 마스터 1급 정복하기를 참고하여 실습을 진행합니다.</p>
<h3 id="sendmail-실습-이전-dns-서버">sendmail 실습 이전 DNS 서버</h3>
<p>당연하듯 sendmail을 이용하기 위해선 DNS 서버가 필요합니다. 도메인으로 사용할 &#39;linux.or.kr&#39;에 대한 IP주소를 등록해야, 이후 사용할 수 있습니다.</p>
<pre><code>sudo dnf install bind</code></pre><p>우선 bind 패키지를 설치해주고, dns를 설정하기 위한 파일이 있는 디렉토리로 이동합니다.</p>
<p>설정 파일들의 위치는 /var/named와 /etc입니다.</p>
<p>만약 /var/named 디렉토리가 열리지 않는다면, 해당 디렉토리는 root만 이용할 수 있기 때문에 반드시 su로 root 사용자 전환을 한 이후 설정할 수 있습니다. </p>
<h4 id="namedconf-파일-설정">named.conf 파일 설정</h4>
<pre><code>vi /etc/named.conf</code></pre><p>저의 경우 로컬 시스템에서 로컬 사용자가 접속할 수 있도록 설정하기 위해 options의 맨 위쪽 local과 관련된 설정을 삭제합니다.(2줄)</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/92f7f9d8-41dc-4617-aa5b-4de64020d6b3/image.png" alt=""></p>
<p>다음 이미지와 같이 directory 부분 위쪽 설정을 삭제해 주시면 됩니다.</p>
<h4 id="namedrfc1912zones-파일-설정">named.rfc.1912.zones 파일 설정</h4>
<pre><code>vi /etc/named.rfc.1912.zones</code></pre><p>맨 아랫단 존 파일명과 리버스 존 파일명을 선언해 줍니다. </p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/9de33ee6-d45a-46ae-9bcc-784a6bc688fb/image.png" alt=""></p>
<p>이중 zone &quot;0.in-addr.arpa&quot;의 경우, 이미 설정되어 있다면 추가적으로 작성하지 않아도 됩니다.</p>
<p>만일 두 번 작성할 경우 추후 named 데몬을 시작할 때, 오류가 발생합니다.</p>
<h4 id="zone-파일-생성">Zone 파일 생성</h4>
<p>DNS 서버를 설정하기 위해서는 우선 zone 파일과 리버스 zone 파일에 대해 설정해 주어야 합니다.
리버스 zone 파일의 경우 zone 파일을 생성한 이후 복사하여 사용할 수 있기 때문에 우선 zone 파일을 생성 및 설정해 줍니다.</p>
<pre><code>cd /var/named
ls
cp -p named.localhost linux.zone
vi linux.zone</code></pre><p><img src="https://velog.velcdn.com/images/extra-vehicular/post/b1d37c31-d543-4cee-b048-918532b27d50/image.png" alt=""></p>
<p>다음 이미지와 같이 설정을 진행해 주면 됩니다.</p>
<p>ns.linux.or.kr의 경우 nameserver이고, posein.linux.or.kr의 경우 관리자의 이메일 주소를 작성합니다. 
여기서 posein은 계정, linux.or.kr이 도메인을 뜻하며 서로의 연결은 &#39;.&#39;으로 연결하고 마지막에도 &#39;.&#39;을 붙여 마무리합니다.</p>
<p>이후 아래 type을 설정해줍니다.
저는 NS로 도메인의 네임 서법를 지정하고, 도메인 주소에 대해 IPv4 형식의 주소로 매핑하였습니다.
이후 해당 도메인이 메일 서버임을 지정하고, www에 대한 레코드 타입을 지정하였습니다.</p>
<h4 id="reverse-zone-파일-생성">Reverse Zone 파일 생성</h4>
<p>이후 리버스 zone 파일을 생성합니다.</p>
<pre><code>cp -p linux.zone linux.rev
vi linux.rev</code></pre><p><img src="https://velog.velcdn.com/images/extra-vehicular/post/694af64c-7065-4d42-9da7-f0c439fe8a81/image.png" alt=""></p>
<p>기타 부분들은 zone파일과 동일하고, type 부분의 PTR로 IP 주소를 도메인으로 변환시켜 줍니다.</p>
<h4 id="dns-서버-시작">DNS 서버 시작</h4>
<pre><code>systemctl start named.service
systemctl -l status named
systemctl enable named</code></pre><p>DNS named 데몬을 실행하고, 동작 메세지를 확인합니다.
동작 메세지가 active라면 정상적으로 구동하고 있는 것입니다.</p>
<h3 id="sendmail-설정">sendmail 설정</h3>
<h4 id="sendmailcf-설정">sendmail.cf 설정</h4>
<pre><code>vi /etc/mail/sendmail.cf</code></pre><p>우선 로컬에서 접속 가능하도록 sendmail의 로컬 부문에 대한 설정을 바꾸어 줍니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/34e1079c-056d-41f3-bfad-3d59f0ed91ee/image.png" alt=""></p>
<p>해당 SMTP의 데몬에 대한 설정 중 이미지와 같이 설정을 바꾸어 줍니다.</p>
<h4 id="local-host-names-설정">local-host-names 설정</h4>
<pre><code>vi /etc/mail/local-host-names</code></pre><p><img src="https://velog.velcdn.com/images/extra-vehicular/post/6248b516-af2c-4eab-8be6-f6b986a1133d/image.png" alt=""></p>
<p>저는 사용 도메인이 linux.or.kr로 사용하고자 하는 도메인을 작성해 줍니다.</p>
<h4 id="sendmail-실행">sendmail 실행</h4>
<pre><code>systemctl start sendmail
systemctl -l status sendmail
systemctl enable sendmail</code></pre><p>sendmail에 대한 데몬 서비스를 실행시키고 동작 상태를 확인하여, 정상적으로 구동되고 있는지 체크합니다.</p>
<h4 id="resolvconf-파일-변경-후-조회">resolv.conf 파일 변경 후 조회</h4>
<pre><code>vi /etc/resolv.conf</code></pre><p><img src="https://velog.velcdn.com/images/extra-vehicular/post/19d48a43-90a6-4d28-8c4b-9b0af6034c1f/image.png" alt=""></p>
<p>저는 테스트 서버가 로컬이기 때문에 로컬 IP에 대해 작성해줍니다.</p>
<pre><code>nslookup -type=mx linux.or.kr</code></pre><p>해당 명령어가 실행되었을 때, 다음과 같은 화면이 출력되면 DNS와 sendmail 모두 정상적으로 설정된 것입니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/36590ebf-7608-44b5-9551-9f743ea655d2/image.png" alt=""></p>
<p>만일 윗 이미지와 같이 출력되지 않고 지속적으로 연결이 불가하다는 메세지가 출력되면, DNS 서버 관련으로 오류가 나지 않았는지 테스트 해보아야 합니다.
특히 DNS에서 설정한 메일 서버와 sendmail에서 설정한 메일 서버가 다른지, 설정 파일에 오타가 났는지 등등에 대해 확인해야 합니다.</p>
<h4 id="메일-전송-테스트">메일 전송 테스트</h4>
<p>만약 모든 것이 정상적으로 설정 및 구동되었다면, 메일이 정상적으로 전송됩니다.</p>
<pre><code>mail posein@linux.or.kr

mailq</code></pre><p><img src="https://velog.velcdn.com/images/extra-vehicular/post/b3a9a2e4-79e5-45da-a080-f0eabe18880a/image.png" alt=""></p>
<p>전송을 위해 mail 명령어를 사용해 전송 대상에게 메일을 작성합니다.
Subject의 경우 제목을 나타내며 아래부분은 본문을 나타냅니다.
이후 메일을 다 썼다면 &#39;.&#39;을 찍어 마무리 짓습니다. 
이때 마무리가 되면 EOT 메세지가 출력됩니다.
작성한 메일을 spool에서 mailq 명령어를 이용해 전송해 줍니다. 
정상적으로 전송되었다면 /var/spool/mqueue가 비었다는 메세지를 출력합니다.</p>
<p>메일을 확인하고 싶다면, 전송한 계정으로 이동하여 mail 명령어를 쳤을 때, 작성한 제목과 함께 새로운 메일 한 건이 도착한 것을 확인할 수 있습니다.</p>
<h3 id="troubleshooting">TroubleShooting</h3>
<p>nslookup 명령어를 이용해 DNS와 관련되어 문제가 없고, sendmail 설정과도 문제가 없는데 전송 시, 메일이 계속 반환되는 에러가 발생하였습니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/dd76530d-1728-4e85-a5d3-21f764a34507/image.png" alt=""></p>
<p>해당 부분의 해결은 /etc/hosts를 수정하여 해결하였습니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/ea007998-414d-4753-b89d-36db37d06508/image.png" alt=""></p>
<p>주요한 것은 localhost.localdomain에 대한 내용을 linux.or.kr로 localhost에 대한 도메인을 설정해주어야 한다는 것입니다.</p>
<p>아무리 찾아봐도 linux.or.kr 부분이 어떤 내용인지 나오질 않아서...</p>
<p>최대한 찾아봤을 때, /etc/hosts 내부 파일의 포맷이</p>
<p>ip-address [FQDN][hostname] 이라고 작성이 되어 있던데...</p>
<p>127.0.0.1 localhost.localdomain localhost linux.or.kr 이랑 대입을 했을 때,</p>
<p>ip-address는 127.0.0.1이고,
localhost.localdomain은 FQDN 이고, 
localhost가 hostname이라면, 대체 linux.or.kr은???? </p>
<p>해당 부분에 대한 학습이 추가적으로 필요해보입니다..........ㅠ</p>
<h4 id="참고-사이트">참고 사이트</h4>
<p><a href="https://serverfault.com/questions/484777/how-to-configure-a-real-domain-name-for-sender-address/484821#484821?newreg=b3c47b6cad7d40b8987eb88f4c4dd73c">[참고사이트]-Returned Mail Troubleshooting in sendmail-How to configure a real domain name for sender address</a>
<a href="https://help.forcepoint.com/websec/en-us/on-prem/85/wcg_faqs/e955d239-f2c7-4343-a8bc-e7ac25dce86c.html">Configuring the /etc/hosts file</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[NFS(Network File System) 실습]]></title>
            <link>https://velog.io/@extra-vehicular/NFSNetwork-File-System-%EC%8B%A4%EC%8A%B5</link>
            <guid>https://velog.io/@extra-vehicular/NFSNetwork-File-System-%EC%8B%A4%EC%8A%B5</guid>
            <pubDate>Mon, 15 Apr 2024 08:17:25 GMT</pubDate>
            <description><![CDATA[<p>NFS란 네트워크 상에서 다른 컴퓨터의 파일시스템을 마운트하고 공유하여 사용할 수 있는 시스템입니다.
NIS와 동일하게 RPC 기반으로 동작하기에 해당 패키지를 다운로드하고 진행해야 합니다.</p>
<p>해당 포스터는 Rocky Linux 8로 리눅스 마스터 1급 정복하기를 참고하여 작성되었습니다.</p>
<h3 id="nfs-서버와-클라이언트-공통-환경-구축">NFS 서버와 클라이언트 공통 환경 구축</h3>
<p>NIS와 동일하게 Virtual Box의 가상환경 2개로 서버와 클라이언트를 구축하여 실습을 진행하였습니다.</p>
<p>서버와 클라이언트 모두 공통적으로 환경을 구축해주어야 할 부분은 크게 3가지 부분입니다.</p>
<blockquote>
<ol>
<li>패키지 설치</li>
<li>방화벽 설정</li>
<li>SELinux 해제</li>
</ol>
</blockquote>
<h4 id="패키지-설치">패키지 설치</h4>
<p>NFS는 RPC 기반이기 때문에 rpcbind와 nfs-utls를 설치해야합니다.</p>
<pre><code>sudo dnf install rpcbind
sudo dnf install nfs-utils</code></pre><h4 id="방화벽-설정">방화벽 설정</h4>
<p>추가 해야 할 서비스는 rpcbind와 mountd이고, port는 NFS의 포트인 2049포트를 추가하여야 합니다.</p>
<pre><code>firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-port=2049/tcp
firewall-cmd --permanent --add-port=2049/udp
firewall-cmd --reload</code></pre><h4 id="selinux-해제">SELinux 해제</h4>
<p>서버와 클라이언트 모두 SELinux를 해제해주어야 합니다.</p>
<pre><code>setenforce 0</code></pre><p>만약 그럼에도 SELinux가 disabled가 뜨지 않는다면 etc/selinux/config 파일에서 SELINUX=disabled로 작성하고 저장해줍니다.</p>
<h3 id="nfs-서버-설정">NFS 서버 설정</h3>
<p>우선 /etc/exports에 NFS 클라이언트에 대한 권한을 작성합니다.</p>
<pre><code>sudo vi /etc/exports

/ndata    192.168.56.102(rw,no_root_squash)</code></pre><p>이후 공유 디렉토리를 생성 및 권한을 설정해주고 확인합니다.</p>
<pre><code>sudo mkdir /ndata
sudo chmod 1777 /ndata
ls –ld /ndata</code></pre><p>디렉토리 설정이 마쳤다면, nfs-server와 rpcbind 데몬을 실행 시켜줍니다.</p>
<pre><code>systemctl start nfs-server
systemctl start rpcbind

systemctl –l status nfs-server
systemctl –l status rpcbind</code></pre><p>공유 내역을 확인해 줍니다.</p>
<pre><code>sudo exportfs –v</code></pre><p>다음과 같은 화면이 출력됩니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/eaa13438-513d-417d-94db-8f2179fb4d98/image.png" alt=""></p>
<p>실행시킨 데몬의 프로세스를 확인하고 활성화 시켜줍니다.</p>
<pre><code>ps aux |egrep ‘rpcbind|nfs’

systemctl enable rpcbind nfs-server</code></pre><h3 id="nfs-클라이언트-설정">NFS 클라이언트 설정</h3>
<p>NFS서버에 대한 정보를 확인해줍니다.</p>
<pre><code>showmount –e 192.168.56.102</code></pre><p>만일 해당 명령어 사용 시, 공유 디렉토리 명과 server-ip 주소가 출력되지 않는다면 작성한 설정파일을 확인하고 방화벽과 SELinux가 정상적으로 꺼져있는지를 확인해 주어야 합니다.</p>
<p>정상적으로 정보를 확인할 수 있다면, mount 명령으로 로컬 시스템의 하위 디렉토리로 마운트 해줍니다.</p>
<pre><code>mount –t nfs 192.168.56.103:/ndata /mnt</code></pre><p>이후 마운트 정보를 확인해 줍니다.</p>
<pre><code>mount -t nfs4</code></pre><p>정상적으로 진행되었다면 다음 화면이 나타나게 됩니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/618ff1a0-5841-459a-a8c8-136bc8627bf1/image.PNG" alt=""></p>
<h3 id="nfs-테스트">NFS 테스트</h3>
<p>NFS를 테스트 해 보기 위해 클라이언트에서 /mnt에 파일을 생성하면 서버에서 해당 파일이 생성이 되었는지 확인해보았습니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/f08668f2-450d-423a-9830-1227c5643cfb/image.PNG" alt="">
클라이언트가 /mnt에서 nfs-test.txt 파일을 생성하였습니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/b270d612-9979-4a4c-95be-6a74c777d823/image.PNG" alt=""></p>
<p>이후 서버의 /ndata에서 nfs-test.txt가 존재하는 것을 확인하였습니다.</p>
<h4 id="참고-사이트">참고 사이트</h4>
<p><a href="https://unix.stackexchange.com/questions/373880/rpc-port-mapper-failure-unable-to-receive-errno-113-no-route-to-host">[참고 사이트] - RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[삼바(Samba), Rocky linux 서버와 Window 클라이언트로 실습]]></title>
            <link>https://velog.io/@extra-vehicular/%EC%82%BC%EB%B0%94Samba-Rocky-linux-%EC%84%9C%EB%B2%84%EC%99%80-Window-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8%EB%A1%9C-%EC%8B%A4%EC%8A%B5</link>
            <guid>https://velog.io/@extra-vehicular/%EC%82%BC%EB%B0%94Samba-Rocky-linux-%EC%84%9C%EB%B2%84%EC%99%80-Window-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8%EB%A1%9C-%EC%8B%A4%EC%8A%B5</guid>
            <pubDate>Mon, 15 Apr 2024 07:49:39 GMT</pubDate>
            <description><![CDATA[<p>Samba는 SMB(Server Message Block)을 이용해 리눅스 및 유닉스 계열 운영체제와 윈도우 운영체제간의 공유를 위해 구축합니다.
현재 SMB 프로토콜은 CIFS로 확장되었습니다.</p>
<p>Rocky Linux 8로 리눅스 마스터 1급 정복하기를 참고하여 실습 진행하였습니다.</p>
<h3 id="linux의-samba-서버-설치-전-환경-설정">Linux의 Samba 서버 설치 전 환경 설정</h3>
<pre><code>sudo dnf install samba* -y</code></pre><p>우선 samba와 관련된 모든 패키지를 설치합니다.</p>
<pre><code>systemctl stop firewalld
setenforce 0</code></pre><p>이후, Window와의 공유를 위해 방화벽을 Off 해줍니다.
또한 SELinux 역시 Off 해줍니다.</p>
<p>만일 setenforce 0를 하였는데도 disabled가 뜨지 않는다면, /etc/selinux/config 파일에서 SELINUX=disabled로 작성하고 저장해줍니다.</p>
<pre><code>sudo useradd posein
sudo passwd posein </code></pre><p>이후 Samba 서버를 이용할 계정을 생성합니다. </p>
<h3 id="window의-samba-서버-설치-전-환경-설정">Window의 Samba 서버 설치 전 환경 설정</h3>
<p>윈도우에서 가장 중요한 것은 개인 방화벽을 꺼두는 것과 삼바 사용을 위한 SMB를 활성화하는 것입니다.</p>
<p>우선 교재에서는 방화벽을 먼저 끄는 방법부터 시작하지만, SMB를 활성화하고 재부팅 시, 방화벽이 다시 켜져 이후 진행이 막히는 경우가 발생하였습니다.</p>
<p>따라서 우선 SMB부터 활성화를 진행합니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/d26a8cc9-1200-486b-bd1d-c0859f2daffe/image.PNG" alt=""></p>
<p>제어판에 &#39;프로그램 및 기능&#39;을 검색 및 들어가면, Windows 기능 켜기/끄기가 있습니다. 
이 화면에서 SMB1.0항목의 체크박스를 활성화 후, 확인을 누르고 재부팅을 해줍니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/cd1cf190-3303-4081-89f9-a3dd57944caf/image.PNG" alt=""></p>
<p>이후, Window 찾기에서 &#39;방화벽 및 네트워크 보호&#39;를 치고 들어가면, 개인 네트워크에 대한 방화벽이 켜져 있는 모습을 확인할 수 있습니다.
해당 부분을 윗 이미지와 같이 꺼주면 방화벽이 비활성화 됩니다.</p>
<p>윈도우에서의 환경 설정의 마지막으로 로컬 사용자를 추가해 줍니다.
마이크로 소프트 계정이 아닌 반드시 로컬 사용자로 추가를 해주어야 합니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/fa4ba06e-ff55-4bde-ba82-831d9d174bfb/image.PNG" alt=""></p>
<p>설정에서 &#39;계정&#39;으로 들어가면 &#39;가족 및 다른 사용자&#39;라는 부분이 있습니다.
해당 부분에서 
다른 사용자 추가를 클릭해 줍니다</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/7bd08aa9-c28e-4544-9e9a-5c42abb86c25/image.PNG" alt=""></p>
<p>다음과 같은 창이 나타나는데, 이때 &#39;메일 또는 전화&#39; 입력 부분에 작성시 로컬 사용자 추가가 아닌 마이크로소프트 계정으로 등록됩니다.
따라서 아래 &#39;이 사람의 로그인 정보를 가지고 있지 않습니다.&#39;를 클릭해 줍니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/bd8a2b3d-d40c-4429-8180-fe3a2d232ecd/image.PNG" alt=""></p>
<p>약관 동의 이후 위의 화면이 나타나면 &#39;Microsoft 계정없이 사용자 추가&#39;를 클릭해 줍니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/2db53df6-64b0-490d-adba-bd99c12c1a16/image.PNG" alt=""></p>
<p>정상적으로 계정이 생성되었다면 위와 같이 로컬 계정이 생성된 모습을 확인할 수 있습니다.</p>
<h3 id="linux-samba-서버-설정">Linux Samba 서버 설정</h3>
<p>우선 서버에서 공유 디렉토리로 사용할 디렉토리를 생성하고, 해당 디렉토리의 권한을 1777로 모든 사용자들이 읽기와 쓰기, 실행이 가능하도록 설정해 줍니다. </p>
<pre><code>sudo mkdir /sdata
chmod 1777 /sdata

ls –ld /sdata</code></pre><p>smb.conf파일의 하단에 삼바를 사용할 섹션을 추가해 줍니다.</p>
<pre><code>sudo vi /etc/samba/smb.conf</code></pre><p>아래 내용을 smb.conf에 작성해 줍니다.</p>
<p>[sdata] 섹션의 경로(공유 디렉토리)는 /sdata이고, 다른 사용자가 사용할 수 있으며, 접근 및 쓰기가 가능합니다.</p>
<pre><code>[sdata]
    comment=Samaba Shared Directory
    path=/sdata
    public=Yes
    writable=Yes</code></pre><p><img src="https://velog.velcdn.com/images/extra-vehicular/post/fe5d1c0b-696e-4140-95e6-08350e3944a1/image.PNG" alt=""></p>
<p>이후 작성한 파일에 오류가 있는지에 대해 검사해 줍니다.</p>
<pre><code>testparm</code></pre><p>출력되는 화면이 다음과 같다면, 오류가 없습니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/9fe54ac6-cd4e-4f87-b0d0-f5a6cde7db2a/image.PNG" alt=""></p>
<p>검사 시 오류가 없다면, 삼바의 사용자를 추가해 줍니다.</p>
<pre><code>sudo smbpasswd –a posein</code></pre><p>사용자 추가까지 완료가 되었다면 samba와 관련된 데몬을 시작시킵니다.</p>
<pre><code>systemctl start smb nmb

systemctl –l status smb
systemctl –l status nmb

systemctl enable smb.service nmb.service</code></pre><h3 id="samba-클라이언트-설정">Samba 클라이언트 설정</h3>
<p>Samba를 사용하기 위해서 우선 네트워크 자격 증명을 얻어야 합니다.
그 방법은 2가지가 있습니다.</p>
<p>첫 번째, 윈도우 시작키 + R을 클릭하고 나오는 실행창에 &#39;\Samba-Server-Ip-Address&#39;를 작성합니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/fe6400a6-8b3c-4535-ad07-3497c844e878/image.PNG" alt=""></p>
<p>이후, 네트워크 자격 증명 입력이라는 화면이 출력이 되면 계정을 작성해 연결을 진행합니다.</p>
<p>두 번째, 자격 증명 관리자에 자격 증명을 추가한 이후 IP를 등록하는 것입니다.</p>
<p>윈도우의 찾기에서 &#39;자격 증명 관리자&#39;를 검색, 이후 나오는 창에서 &#39;Windows 자격 증명&#39;을 클릭해 줍니다. 
그러면, 자격 증명을 등록하기 이전이라면 Window 자격 증명 아래에 아무런 정보가 뜨지 않습니다.
추가를 위해 옆의 &#39;Windows 자격 증명 추가&#39;를 클릭, 추가를 해주면 아래와 같이 자격 증명이 추가가 된 모습을 확인할 수 있습니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/b947029f-c3bb-4262-81cc-bc263f234304/image.PNG" alt=""></p>
<p>이후 네트워크 디렉토리를 클릭, &#39;네트워크 드라이브 연결&#39;을 누르면 아래 화면이 나타납니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/dfd22902-15fa-42e8-b563-8e610c9f66b8/image.PNG" alt=""></p>
<p>폴더 부분에 &#39;\Samba-Server-Ip-Address\sdata&#39;를 작성하면 됩니다.
이때, &#39;\sdata&#39;는 smb.conf에 작성한 섹션명입니다.</p>
<p>정상적으로 연결이 되었을 때 아래 화면이 나타납니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/1ce53069-2537-4681-9378-0b07ec57aaaa/image.PNG" alt=""></p>
<h3 id="samba-테스트">Samba 테스트</h3>
<p>Samba가 정상적으로 작동하는 지 테스트를 위해 37.txt라는 파일을 이용했습니다. 
해당 파일을 sdata 폴더에 복사를 해줍니다.
<img src="https://velog.velcdn.com/images/extra-vehicular/post/1ee2a5e9-2435-4c6a-a0a5-773dfa6fe4e2/image.PNG" alt=""></p>
<p>이후 정상적으로 작동한다면, linux 서버의 /sdata로 이동 시 해당 파일이 디렉토리 내 존재합니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/8cbabcf3-7ee4-455e-80d6-98021cdd12fd/image.PNG" alt=""></p>
<h3 id="트러블-슈팅">트러블 슈팅</h3>
<p>발생한 오류는 크게 2가지 입니다.</p>
<blockquote>
<p>smbpasswd에 sudo를 안붙이면 나타나는 화면
리눅스 IP에 대한 윈도우 네트워크 연결 거부</p>
</blockquote>
<h4 id="smbpasswd에-sudo를-안붙이면-나타나는-화면">smbpasswd에 sudo를 안붙이면 나타나는 화면</h4>
<p>처음 해당 화면을 보고 잠시 당황했었습니다.
갑자기 너무 많은 정보가 화면에 출력이 되더라구요...
당황하지 않고 위로 올라가 보면 간단합니다. </p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/ce722be9-273a-4fef-9602-cc379617ab88/image.PNG" alt=""></p>
<p>&#39;when run by root&#39; 부분에 root 만 user 이름을 붙여 해당 user에 대한 password를 정해줄 수 있다는 것을 확인할 수 있습니다.
만약 root가 아닌 기타 사용자로 사용 시, sambpasswd를 사용할 때는 sudo를 꼭 붙여 사용해야합니다.</p>
<h4 id="리눅스-ip에-대한-윈도우-네트워크-연결-거부">리눅스 IP에 대한 윈도우 네트워크 연결 거부</h4>
<p>가장 당황하고 해결에 어려웠던 부분 중 하나입니다.
제가 교재에 있던 루틴이 아닌 SMB를 먼저 설정하라는 이유이기도 합니다.
<img src="https://velog.velcdn.com/images/extra-vehicular/post/ffc81edf-2141-4a41-b564-7174bfcffeab/image.png" alt=""></p>
<p>윈도우 방화벽도, 리눅스 방화벽도 SELinux도 다 꺼놓고 ping으로 연결 시 연결도 잘 되었던 상태에서 저런 화면이 떴습니다.
정확히 말하자면 윈도우 방화벽은 꺼놓은 줄 알았었죠...</p>
<p>윈도우를 재부팅 시 방화벽을 다시금 확인해 주어야 합니다. 
자동적으로 방화벽을 ON으로 설정해 두기 때문에 만일, 다음과 같은 엑세스 문제가 발생 시 리눅스에 제대로  SELinux가 꺼지고, 방화벽이 꺼졌는지, 그리고 윈도우 방화벽이 꺼졌는지에 대해 확인하고 실습 진행해야합니다.</p>
<h4 id="참고-사이트">참고 사이트</h4>
<p><a href="https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/sect-security-enhanced_linux-enabling_and_disabling_selinux-disabling_selinux">[참고사이트]SELinux 비활성화</a>
<a href="https://inpa.tistory.com/entry/LINUX-%F0%9F%93%9A-%EC%82%BC%EB%B0%94SAMBA-%EC%84%A4%EC%B9%98-%EC%84%A4%EC%A0%95-%E2%80%BB-%EC%B4%9D%EC%A0%95%EB%A6%AC">[참고사이트]-삼바(SAMBA) 설치 &amp; 설정 방법</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[NIS(Network Information Service) 서버와 클라이언트 실습]]></title>
            <link>https://velog.io/@extra-vehicular/NIS-%EC%84%9C%EB%B2%84-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8-%EC%8B%A4%EC%8A%B5</link>
            <guid>https://velog.io/@extra-vehicular/NIS-%EC%84%9C%EB%B2%84-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8-%EC%8B%A4%EC%8A%B5</guid>
            <pubDate>Fri, 12 Apr 2024 18:36:40 GMT</pubDate>
            <description><![CDATA[<p>이번에는 정말 교재 따라 진행했습니다.
사실 NIS가 인증 서비스라고 하는데 어떤 식으로 사용하는지가 궁금했습니다.
그래서 무턱대고 들어가니, 자잘한 실수들이 모여서 시간을 계속 앗아 갔네요...</p>
<h3 id="nis-서버와-클라이언트-공통-구성">NIS 서버와 클라이언트 공통 구성</h3>
<p>저의 경우 클라이언트와 서버 모두 virtual box 내 설치된 rocky linux로 진행했습니다.</p>
<p>클라이언트를 여럿 하진 않고, 한 개로 실습을 진행했습니다.</p>
<p>중요한 것은 virtual box의 네트워크 설정을 서버와 클라이언트 모두 해야한다는 것입니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/d5d614db-e9ff-4628-a2dc-79601f350b79/image.png" alt=""></p>
<p>이전 포트 포워딩 글에서 설명하였듯, 위쪽 새로만들기 옆 설정에 들어가 [네트워크] -&gt; [어댑터2] -&gt; [호스트 전용 어댑터] -&gt; [VirtualBox Host-Only Ethernet Adapter]로 설정하시면 됩니다.</p>
<p><a href="https://velog.io/@extra-vehicular/%EC%99%B8%EC%A0%84Virtual-Box%EC%97%90%EC%84%9C-PortFowarding%EC%9C%BC%EB%A1%9C-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EC%99%B8%EB%B6%80-%EC%A0%91%EC%86%8D%ED%95%98%EA%B8%B0">(외전)Virtual Box에서 PortFowarding으로 웹사이트 외부 접속하기</a></p>
<p>서버와 클라이언트 모두 환경설정이 필요합니다.</p>
<p>rpc 관련 데몬을 실행해 줍니다.</p>
<pre><code>systemctl start rpcbind
systemctl enable rpcbind</code></pre><p>그리고 /etc/hosts 파일을 수정해 줍니다.</p>
<pre><code>sudo vi /etc/hosts

[server_ip]    nis.test.co.kr
[client-ip]    nis_client.test.co.kr</code></pre><p>여기서 중요한 것은 ip 주소입니다.</p>
<p>윗 단계에서 추가한 어댑터2의 네트워크 ip를 추가해주셔야 합니다. 
이 부분은 서버와 클라이언트 모두 동일하게 적용됩니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/f7789ab1-49e7-49c7-ae60-4086451bd261/image.png" alt=""></p>
<p>이후 클라이언트를 설치할 환경에서 서버를 설치할 환경으로 연결이 가능한지 테스트 해봐야 합니다.</p>
<pre><code>ping [servre-ip]</code></pre><p><img src="https://velog.velcdn.com/images/extra-vehicular/post/23a6e67e-eea2-4004-98c3-ec6171c37ee6/image.png" alt=""></p>
<p>실행 결과가 다음과 같이 출력된다면 성공적으로 연결된 것입니다.</p>
<p>이후 진행해야할 것은 SELinux를 동작하지 않도록 설정을 해야합니다.</p>
<pre><code>sudo vi /etc/sysconfig/selinux
sestatus</code></pre><p><img src="https://velog.velcdn.com/images/extra-vehicular/post/35f78656-8957-4e6b-a0c3-1dbca826f8c7/image.png" alt=""></p>
<p>/etc/sysconfig/selinux에 vim 작성기로 들어값니다.
그리고 위의 SELinux 부분이 disabled로 작성을 진행합니다.
작성이 완료되었다면, 재부팅을 합니다.
sestatus로 보았을 때, 상태가 disabled라면 비활성으로 설정되었습니다.</p>
<h3 id="nis-서버">NIS 서버</h3>
<p>우선 NIS 서버부터 설정합니다.</p>
<pre><code>sudo dnf install ypserv</code></pre><p>ypserv를 설치하면 ypserv, yppasswd, ypxfrd 3개의 데몬 스크립트가 설치됩니다.</p>
<pre><code>sudo vi /etc/sysconfig/network

NISDOMAIN=test.co.kr</code></pre><p>nisdomainname 명령어로 설정할 수 있지만, 일시적이기에 영구적인 /etc/sysconfig/network에 NIS의 도메인명을 작성해 줍니다.</p>
<p>이후 NIS 클라이언트에서 사용할 계정을 생성합니다.</p>
<pre><code>sudo useradd alin
sudo passwd alin</code></pre><p>계정 생성이 완료되었다면 관련 데몬을 시작시키고, 작동을 확인합니다.</p>
<pre><code>systemctl start ypserv yppasswdd ypxfrd
ps aux | egrep &#39;ypserv yppasswdd ypxfrd&#39;</code></pre><p>이후 NIS 정보를 갱신합니다.</p>
<pre><code>cd /var/yp
sudo make</code></pre><p>성공적으로 수행되었다면 다음과 같은 결과를 보여줍니다.
계정이 추가된 것과 같은 서버 내 정보를 갱신해야 할 때 사용합니다. </p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/0614916d-88de-4d5b-943f-809eb7a4e56f/image.PNG" alt=""></p>
<p>성공적으로 수행되었다면 위 이미지와 같은 결과를 보여줍니다.
계정이 추가된 것과 같은 서버 내 정보를 갱신해야 할 때 사용합니다. </p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/4f0d50e7-624f-405d-b233-9444eb3abaa0/image.PNG" alt=""></p>
<p>make 수행이 완료되면 /var/yp 디렉토리에 다음과 같은 파일로 구성된다는 것을 확인할 수 있습니다.</p>
<p>이후 서버의 방화벽 보안을 설정해 줍니다.</p>
<p>이전 도메인을 설정하였던 /etc/sysconfig/network에 다음의 내용을 작성합니다.</p>
<pre><code>sudo vi /etc/sysconfig/network

NISDOMAIN=test.co.kr
YPSERV_ARGS=&quot;-p 834&quot;
YPXFRD_ARGS=&quot;-p 835&quot;
YPPASSWDD_ARGS=&quot;-p 836&quot;</code></pre><p>firewall로 서비스와 포트에 대한 tcp, udp 설정을 추가합니다.</p>
<pre><code>firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-port=834/tcp
firewall-cmd --permanent --add-port=834/udp
firewall-cmd --permanent --add-port=835/tcp
firewall-cmd --permanent --add-port=835/udp
firewall-cmd --permanent --add-port=836/tcp
firewall-cmd --permanent --add-port=836/udp
firewall-cmd --reload</code></pre><p>추가적인 방화벽 설정을 위해 Iptable을 사용합니다.</p>
<pre><code>iptables -I INPUT -p tcp -m multiport --dport 111,834:835 -j ACCEPT
iptables -I INPUT -p udp -m multiport --dport 111,834:836 -j ACCEPT

sudo iptables-save

systemctl restart iptables</code></pre><p>이후, NIS 서버를 재시작 및 활성화 해줍니다.</p>
<pre><code>systemctl restart ypserv yppasswdd ypxfrd

systemctl enable ypserv yppasswdd ypxfrd</code></pre><h3 id="nis-클라이언트">NIS 클라이언트</h3>
<pre><code>sudo dnf install ypbind</code></pre><p>저는 ypbind만 설치를 하여도 모두 설치가 되었는데, 만약 오류가 발생한다면, yp-tools 패키지도 다운받으셔야합니다.</p>
<p>서버와 동일하게 /etc/sysconfig/network에 도메인 명부터 등록합니다.</p>
<pre><code>sudo vi /etc/sysconfig/network

NISDOMAIN=test.co.kr</code></pre><p>이후 /etc/yp.conf 파일에 서버와 도메인을 지정합니다.</p>
<pre><code>sudo vi /etc/yp.conf

server nis.test.co.kr
ypserver nis.test.co.kr
domain test.co.kr</code></pre><p>이후 데몬을 시작하고 동작 및 프로세스를 확인, 데몬을 활성화 합니다.</p>
<pre><code>systemctl start ypbind
systemctl -l status ypbind

ps aux | grep ypbind
systemctl enable ypbind</code></pre><p>ypbind의 상태 확인시 active가 출력된다면 구동하고 있는 것입니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/499927d5-204f-43ac-85b5-a9311db24288/image.PNG" alt=""></p>
<p>사용자 인증을 받기 위해 인증 변경을 진행합니다.</p>
<pre><code>authselect select nis</code></pre><p>최종 테스트는 telnet을 통해 진행합니다.
텔넷을 다운받고, 서비스를 구동시켜 줍니다.</p>
<pre><code>sudo dnf install telnet telnet-server

systemctl start telnet.socket</code></pre><p><img src="https://velog.velcdn.com/images/extra-vehicular/post/0aa0b1ce-243a-4d7a-a50d-0b68721ee340/image.PNG" alt=""></p>
<p>정상적으로 연결되었을 때 나타나는 화면입니다.</p>
<p>로그인 진행 이후 부터 client는 서버쪽에서 생성한 계정으로 cmd에서 활용이 가능합니다.</p>
<p>전반적인 기본 틀은 Rocky Linux 8로 리눅스 마스터 1급 정복하기를 이용해 진행되었으며, 이외 방화벽에 대한 추가 사안은 아래 참고 블로그를 통해 진행되었습니다.</p>
<h4 id="참고-사이트">참고 사이트</h4>
<p><a href="https://onecoin-life.com/56">리눅스 NIS(Network Information Service) 개념 및 계정 통합 서버 구축 방법</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[(외전)Virtual Box에서 PortFowarding으로 웹사이트 외부 접속하기]]></title>
            <link>https://velog.io/@extra-vehicular/%EC%99%B8%EC%A0%84Virtual-Box%EC%97%90%EC%84%9C-PortFowarding%EC%9C%BC%EB%A1%9C-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EC%99%B8%EB%B6%80-%EC%A0%91%EC%86%8D%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@extra-vehicular/%EC%99%B8%EC%A0%84Virtual-Box%EC%97%90%EC%84%9C-PortFowarding%EC%9C%BC%EB%A1%9C-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EC%99%B8%EB%B6%80-%EC%A0%91%EC%86%8D%ED%95%98%EA%B8%B0</guid>
            <pubDate>Fri, 12 Apr 2024 14:45:28 GMT</pubDate>
            <description><![CDATA[<p>Virtual Box에서 포트포워딩을 하는 방법은 대표적으로 2가지 방법이 있습니다.
하나는 포트포워딩에 대한 설정과 포트를 추가해주는 것이고, 두 번째 방법은 DHCP 서버를 이용하는 것입니다.
특히 이전 DHCP 서버에 대해 몰랐을때, 그리고 virtual box에서 포트포워딩에 대한 한국어로된 설명이 몇 없었을때...
더 복잡하고 어렵게 느껴졌었습니다.
(네트워크나 이러저러한 개념에 대한 이해가 없어서 더욱 그랬던것 같...)</p>
<p>기본적으로 외부로 통신하기 위해서는 윈도우 방화벽 설정과, 네트워크 설정을 건드려야합니다. </p>
<p>virtual box에 두는 경우 그 외의 과정을 거쳐야하는데, 이는 가상환경에서의 네트워크 주소와 실제 네트워크 주소가 다르기 때문입니다. </p>
<p>따라서 이전 사용하였던 방법은 가상환경에서 포트를 열어주고, virtual box의 네트워크 설정 부분의 포트 포워딩에 규칙을 설정하는 방식으로 진행하였었습니다.</p>
<p>하지만 최근 검색한 결과 더 간단하게 DHCP 서버를 이용해 주소를 동적으로 할당 시켜 더 간단하게 포트 포워딩이 가능하다는 사실을 알게되었습니다.</p>
<p>따라서 이번에는 데스크 톱 내부 virtual box의 가상환경과 실제 환경간 외부 접속을 진행해볼 것입니다.</p>
<h3 id="포트-포워딩">포트 포워딩</h3>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/1bb738f7-d84b-4c96-8316-d8f95211120c/image.png" alt=""></p>
<p>[기본 화면]-[설정]-[네트워크]로 들어왔을 때, 기본적으로 보이는 화면입니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/3924236a-c1e0-41aa-a1c1-ec52ac9b46d4/image.png" alt=""></p>
<p>여기서 어댑터 2를 클릭, 네트워크 어댑터를 사용하기를 클릭 후, 호스트 전용 어댑터 설정, Virtual Box Host-Only Ethernet Adapter를 설정해 줍니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/6c3a1d05-730f-42ac-974f-617cecea01cb/image.png" alt=""></p>
<p>이후 관리자 홈 화면에서 위의 상단 메뉴바의 [파일]-[호스트 네트워크 관리자]로 들어오면 위와 같은 화면이 출력됩니다.</p>
<p>여기서 어댑터는 수동, DHCP는 다음과 같은 화면이 출력이 되어야 합니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/a0a452fc-0347-4739-8dce-f490a71fb4f5/image.png" alt=""></p>
<p>이후 기존 어댑터를 추가하지 않았을 때는 나오지 않았던 enp0s8이 생성되고, 해당 부분에 ip가 자동으로 할당된 것을 확인할 수 있습니다.</p>
<p>이 이후 테스트 하고 싶은 웹페이지가 네이버 웨일에서 원할히 접속됩니다.
(타 외부 기기는 X, 가상머신을 설치한 컴퓨터의 웹 브라우저로 접속 시 -&gt; 만약 휴대폰이나 다른 기기로 통신하고 싶다면 방화벽과 기타 네트워크 설정 필요)</p>
<h3 id="워드-프레스-도메인-설정-시-주의사항">워드 프레스 도메인 설정 시 주의사항</h3>
<p>테스트를 진행할 웹페이지는 이전 설치해둔 워드 프레스이다. 
기본적으로 가상머신은 모든 자원을 배정하지 않기 때문에 아무래도 버퍼링이 심하고, 버벅거리기 일수입니다.
특히, 비교적 용량이 큰 이미지를 작업할 때 버벅거리는 모습을 볼 수 있습니다.</p>
<p>따라서 편집을 할 때, 기존 환경에서 웹브라우저로 진행하는 것이 편하기 때문에 Virtual box 포트 포워딩을 하였습니다.</p>
<p>따라서 Wordpress에 접속을 하였더니, 이미지가 안보입니다....</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/37cda05c-888e-4953-aac5-d712f7bfc9a9/image.PNG" alt=""></p>
<p>왜???</p>
<p>일단 전 이미지를 건드린 건 없고, 기본 화면에서의 이미지가 안나오기 때문에 이 문제는 이미지 경로와 같은 문제는 아니라고 생각했습니다.
그럼 수정한 부분은 도메인이라, phpmyadmin에 접속해, 살펴본 결과, 
<img src="https://velog.velcdn.com/images/extra-vehicular/post/e70d15a8-acd4-497d-9be9-f87e5f1cbf0c/image.png" alt=""></p>
<p>이미지라 잘 안보이시겠지만, http:// localhost로 중간에 공백문자가 포함되어 있었습니다...
따라서 이 부분을 해결하면, 가상환경에서는 이미지가 잘 출력되는 모습을 볼 수 있습니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/892af130-9708-466c-ba92-8f2a5af4fd1b/image.PNG" alt=""></p>
<p>하지만 더 이상이 있었으니, 도메인 이름을 localhost로 지정을 하면 그저 홈페이지만 출력이 될 뿐, 편집을 위해선 도메인 뒤 wp-admin을 붙여 사용해야했습니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/a8ed0bcd-dc5d-4c9e-900c-68b0c2e39a2b/image.PNG" alt=""></p>
<p>뿐만아니라 웨일에서 접속 시, 여전히 이미지가 보이지 않는 문제가 발생합니다.
이때는 웨일에서 Dashboard에 대한 화면도 출력되지 않습니다.</p>
<p>이 부분에 대해 해결하기 위해서는 이전 enp08s 내 네트워크 ip 주소로 도메인 명을 변경하면 됩니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/5b427878-b062-4a8b-a479-0b52f4965a78/image.png" alt=""></p>
<p>다시 phpmyadmin으로 돌아가, wp-options -&gt; option_name이 siteurl과 home인 부분을 찾아 option_value에 대한 값을 수정합니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/5217152b-0bcd-4dbb-85b1-cc76eaba023b/image.png" alt=""></p>
<p>또는 다음과 같이 Dashboard에서 Setting 부분의 wordpress address와 site adress를 수정하면 됩니다.</p>
<p>이때, wordpress address(home)와 site address(site url)은 동일한 도메인으로 지정합니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/54d560e9-df60-42b2-b4c6-c38be24f150f/image.png" alt=""></p>
<p>그 걸과 가상환경의 wordpress에는 위의 이미지와 같이 도메인 접속 시, 편집을 위한 상단 바가 나타납니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/6b3cfacb-115e-44ed-a237-86a33c523ad4/image.PNG" alt=""></p>
<p>또한 네이버 웨일에서도 이미지가 오류 없이 잘 출력되는 모습을 확인할 수 있습니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/b0d13436-324b-47c2-9a2d-50302e7b8291/image.PNG" alt=""></p>
<p>그리고 이때, 네이버 웨일에 서버ip뒤, wp-admin을 붙여 Dashboard에 들어갈 수도 있습니다.</p>
<h4 id="참고-블로그">참고 블로그</h4>
<p><a href="https://cjwoov.tistory.com/3">Virtualbox 포트포워딩 &amp; 호스트 네트워크 설정</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[(외전)LAMP기반 WordPress를 RockyLinux에 설치]]></title>
            <link>https://velog.io/@extra-vehicular/%EC%99%B8%EC%A0%84LAMP%EA%B8%B0%EB%B0%98-WordPress%EB%A5%BC-RockyLinux%EC%97%90-%EC%84%A4%EC%B9%98</link>
            <guid>https://velog.io/@extra-vehicular/%EC%99%B8%EC%A0%84LAMP%EA%B8%B0%EB%B0%98-WordPress%EB%A5%BC-RockyLinux%EC%97%90-%EC%84%A4%EC%B9%98</guid>
            <pubDate>Fri, 12 Apr 2024 10:53:21 GMT</pubDate>
            <description><![CDATA[<p>워드프레스는 대표적인 CMS입니다.
많은 플러그인과 테마들이 있으며, 사용 방법만 숙지한다면 커스터 마이징이 충분히 가능해 인기가 많은 설치형 블로그입니다.
설치형 블로그인 만큼 LAMP 스택을 구축하고 워드 프레스를 설치하면 사용할 수 있습니다.</p>
<h3 id="wordpress로-구축한-페이지-예">Wordpress로 구축한 페이지 예</h3>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/7978e572-95e0-485b-9a0f-1d574a6f687b/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/38d0b070-f637-4890-8770-3426696eff97/image.png" alt=""></p>
<p>이전 내가 라즈베리 파이에 구축하고 만든 블로그입니다. 
템플릿이 깔끔하고 각종 플러그인들을 사용해 열심히 만들었는데...
플러그인 업데이트 이후 오류가 발생해서 복원중에 있습니다...ㅠ</p>
<p>개인적으로 디자인적으로 만족할 만큼 깔끔하게 만들어졌었어서 애착이 가는...</p>
<p>이처럼 Wordpress는 다양한 사람들이 개발한 플러그인들을 조합해 프런트를 구성하기 때문에 각 플러그인에 대한 업데이트 역시 신중을 가해야 합니다. </p>
<h3 id="wordpress-설치-이전-환경-구축">WordPress 설치 이전 환경 구축</h3>
<pre><code>sudo dnf install php-gd php-soap php-intl php-mysqlnd php-pdo php-pecl-zip php-fpm php-opcache php-curl php-zip php-xmlrpc wget

sudo systemctl restart httpd</code></pre><p>우선 모듈 설치 부터 진행합니다. 
이전 설치하지 못했던 php의 모듈들을 모두 설치합니다.
이후 Apache를 재시작 해줍니다.</p>
<h3 id="wordpress용-mysql-계정-생성">Wordpress용 Mysql 계정 생성</h3>
<pre><code>sudo mysql -u root –p</code></pre><p>우선 사용자 및 DB 생성과 권한을 주기 위해 root로 접속합니다.</p>
<pre><code>CREATE DATABASE wordpress;
CREATE USER &#39;word&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;[password]&#39;;
GRANT ALL ON wordpress.* TO &#39;word&#39;@&#39;localhost&#39;;

FLUSH PRIVILEGES;
quit</code></pre><p>이후 mysql에서 쿼리문을 작성해줍니다.
Wordpress용 DB를 생성하고, 이후 사용자를 생성합니다.
이때 이전 mysql에서 계정 보안에 대한 추가 설정을 하였다면, 그와 동일한 비밀번호 정책을 적용하여 설정해 주시면 됩니다.
이후 생성한 사용자에게 DB에 대한 권한을 적용합니다. </p>
<h3 id="wordpress-설치">Wordpress 설치</h3>
<pre><code>sudo wget –P /tmp https://wordpress.org/latest.tar.gz –O wordpress.tar.gz
tar –xvf wordpress.tar.gz
sudo cp -R wordpress /var/www/html/
</code></pre><p>Wordpress 파일을 설치해주고, 동시에 파일 명을 wordpress.tar.gz으로 변경해줍니다. 
이때 설치 폴더는 /tmp입니다.
압축 해제를 해주고 해당 폴더를 /var/www/html에 복사해줍니다.</p>
<pre><code>sudo chown -R apache:apache /var/www/html/wordpress

sudo chmod -R 775 /var/www/html/wordpress
</code></pre><p>/var/www/html/wordpress에 대한 사용자 소유권 및 권한을 설정해 줍니다.</p>
<pre><code>sudo semanage fcontext -a -t httpd_sys_rw_content_t &quot;/var/www/html/wordpress(/.*)?“

sudo restorecon –Rv /var/www/html/wordpress
sudo dnf whatprovides /usr/sbin/semanage. </code></pre><p>semanage fcontext로 SELinux에 대한 컨텍스트를 구성합니다.
이후 변경사항을 적용하고, 확인해보았을 때, 아래 이미지와 같다면 정상적으로 적용된 것입니다.
<img src="https://velog.velcdn.com/images/extra-vehicular/post/26435944-7109-4492-be40-082b998b40d4/image.PNG" alt=""></p>
<p>이후 httpd에 wordpress의 설정파일을 작성합니다.</p>
<pre><code>sudo vim /etc/httpd/conf.d/wordpress.conf</code></pre><p>vim 편집기를 이용해 아래 내용을 작성합니다.</p>
<pre><code>&lt;VirtualHost *:80&gt;
ServerName localhost
ServerAdmin root@localhost
DocumentRoot /var/www/html/wordpress

&lt;Directory &quot;/var/www/html/wordpress&quot;&gt;
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
&lt;/Directory&gt;

ErrorLog /var/log/httpd/wordpress_error.log
CustomLog /var/log/httpd/wordpress_access.log common
&lt;/VirtualHost&gt;</code></pre><p>작성 중 잘못된 내용을 작성 및 저장한다면, Apache가 중지되었다는 에러문장이 출력되게 됩니다.</p>
<p>아래 사이트는 Apache의 구동에 대한 오류가 발생하였을 때의 troubleshooting 과정을 잘 보여줍니다.
저는 다음 과정을 따라 가다, 작성된 내용중 잘못 작성된 내용을 발견하게 되었습니다.
<a href="https://forums.centos.org/viewtopic.php?t=62767">[참고사이트] - Unable to Start Apache</a></p>
<pre><code>sudo systemctl restart httpd
sudo systemctl status httpd</code></pre><p>정상적으로 작성 및 적용되었다면 재시작 이후 상태를 확인하였을 때, 정상 작동(Active)하고 있다는 것을 확인할 수 있습니다.</p>
<pre><code>sudo firewall-cmd --permanent —zone=public --add-service=http 
sudo firewall-cmd --permanent —zone=public --add-service=https

sudo firewall-cmd —reload</code></pre><p>http와 https에 대한 방화벽 설정을 추가해줍니다.</p>
<p>이후 정상적인 설치를 마쳤다면, localhost에 접속시 wordpress 설정 화면이 나타나게 됩니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/51f69352-936e-413c-82ea-eef958d42324/image.PNG" alt=""></p>
<p>아래의 Let&#39;s go 버튼을 클릭해줍니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/4c31c8b4-959d-4ffe-b44b-1081f28d5eda/image.png" alt="">
다음과 같이 Wordpress용 DB에 대한 설정 내용이 나옵니다. 
이전 설정해 둔 DB이름과 유저, 패스워드를 작성합니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/78d87563-c1c8-4d0f-80d2-1dac938a73a2/image.png" alt="">
이후 Site title - 사이트 제목(Domain 아닙니다), 유저 이름 - 관리자이름, 패스워드, 이메일을 작성한 이후 Install Wordpress를 클릭시, 최종적으로 모든 설정이 마쳐진 것을 확인할 수 있습니다.
<img src="https://velog.velcdn.com/images/extra-vehicular/post/4d6c4a63-37b9-4074-8c5a-b7511a061df8/image.png" alt="">
또한 홈 화면에서 위 사이드바에 집아이콘과 함께 앞서 설정한 사이트 제목이 있습니다. 
이 부분을 클릭시, 홈페이지(블로그)가 나타나게 됩니다.
<img src="https://velog.velcdn.com/images/extra-vehicular/post/d4083ed9-b145-4c6f-9e91-9f967079c165/image.PNG" alt=""></p>
<h4 id="참고-사이트">참고 사이트</h4>
<p><a href="https://www.tecmint.com/install-wordpress-on-rocky-linux/">[참고사이트]-How to Install WordPress on Rocky Linux 8</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[(외전)phpmyadmin을 RockyLinux에 설치]]></title>
            <link>https://velog.io/@extra-vehicular/WordPress-%EC%99%80-phpmyadmin%EC%9D%84-RockyLinux%EC%97%90-%EC%84%A4%EC%B9%98</link>
            <guid>https://velog.io/@extra-vehicular/WordPress-%EC%99%80-phpmyadmin%EC%9D%84-RockyLinux%EC%97%90-%EC%84%A4%EC%B9%98</guid>
            <pubDate>Fri, 12 Apr 2024 09:58:20 GMT</pubDate>
            <description><![CDATA[<p>예전 제가 대학교 3학년때 한과목의 실습이자 과제로 라즈베리 파이OS를 버추얼 박스에 설치하여 내부 LAMP 스택을 구축하고 워드 프레스를 설치해 보았었습니다. 물론 해당 블로그의 경우 현재 플러그인 설치 오류로 인해 복구를 진행하고 있습니다만...
그럼에도 발표 진행하고, 그 이후에도 다이어리 형식으로 제가 작성하고 싶은 글들을 마음대로 작성하는 공간이 되었었습니다. </p>
<p>그때의 기억이 아직까지도 남아있어, 이번에는 설치과정을 글로 남겨보려합니다.</p>
<p>wordpress를 위해서는 phpmyadmin이 필요합니다. 사실 wordpress만 설치해도 무관합니다만, phpmydamin이 DB를 gui로 테이블을 보고 문제가 발생한 곳을 곹바로 수정할 수 있다는 편의성으로 설치를 진행합니다. </p>
<p>실제 wordpress 공식에서도 phpmyadmin으로 DB내부 사항을 직접 고치라는 troubleshooting 방법이 있기도 하구요...(저의 이이갸입니다..ㅠ) </p>
<p>또한 지금 플러그인 문제 이외 도메인과 경로문제로 데이터가 날아가는 문제라던가 등등의 문제들은 아직까지 DB로 해결하는 것이 직관적입니다. </p>
<p>따라서 따로 호스팅업체를 통하는 것이 아닌, 리눅스에 LAMP 스택을 구축하여 wordpress를 구성하시는 분들은 설치를 추천드립니다.</p>
<h3 id="phpmyadmin-설치">phpmyadmin 설치</h3>
<pre><code>sudo wget –P /tmp https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-english.tar.gz

cd /tmp

sudo tar –xvf phpMyAdmin-latest-english.tar.gz
sudo mv phpMyAdmin-5.2.0-english /usr/share/phpmyadmin
</code></pre><p>우선 wget으로 파일 설치부터 진행합니다. 
설치 위치는 /tmp로 해당 파일 위치로 이동해 줍니다.
이후 파일을 압축 해제하고, 디렉토리를 /usr/share/phpmyadmin으로 이동시켜줍니다.</p>
<pre><code>cd /usr/share/phpmyadmin/

sudo cp config.sample.inc.php config.inc.php

openssl rand –base64 32</code></pre><p>디렉토리를 이전시킨 위치로 이동하고, 설정 파일을 복사해줍니다.
이후 openssl rand 키를 생성하여 32비트의 해시 문자열을 생성합니다. </p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/0562636c-d10e-440a-bd49-810d257b9b8d/image.png" alt="">
명령어 수행시 다음과 같은 문자열이 출력됩니다. 해당 문자열을 복사해놓습니다.</p>
<pre><code>sudo vi /usr/share/phpmyadmin/config.inc.php</code></pre><p><img src="https://velog.velcdn.com/images/extra-vehicular/post/0080679c-75bf-432e-a7d8-9e47230eb881/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/49c94dea-e133-43a2-a83d-a162943791b3/image.png" alt="">
이전 openssl rand로 생성된 문자열을 blowfish_secret의 &#39;&#39;안에 붙여 넣습니다.
또한 추가로 UploadDir와 SaveDir 밑, TempDir도 작성합니다.</p>
<pre><code>sudo mkdir /usr/share/phpmyadmin/tmp

sudo chown -R apache:apache /usr/share/phpmyadmin

sudo chmod 777 /usr/share/phpmyadmin/tmp</code></pre><p>phpmyadmin용 임시 디렉토리와 사용할 디렉토리에 대한 권한 설정을 진행합니다. </p>
<p>이후 웹을 통한 접속을 위해 /etc/httpd 디렉토리에 설정 파일을 작성합니다.</p>
<pre><code>sudo vi /etc/httpd/conf.d/phpmyadmin.conf</code></pre><p>해당 설정 파일에 아래의 내용을 작성합니다.</p>
<pre><code>Alias /phpmyadmin /usr/share/phpmyadmin

&lt;Directory /usr/share/phpmyadmin/&gt;
AddDefaultCharset UTF-8
&lt;IfModule mod_authz_core.c&gt;
# Apache 2.4
&lt;RequireAny&gt;
Require all granted
&lt;/RequireAny&gt;
&lt;/IfModule&gt;
&lt;/Directory&gt;

&lt;Directory /usr/share/phpmyadmin/setup/&gt;
&lt;IfModule mod_authz_core.c&gt;
# Apache 2.4
&lt;RequireAny&gt;
Require all granted
&lt;/RequireAny&gt;
&lt;/IfModule&gt;
&lt;/Directory&gt;</code></pre><p>이후 방화벽 설정을 진행합니다. mysql의 포트 3306에 대한 영구적으로 서비스를 활성화하는 명령입니다.</p>
<pre><code>sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

sudo firewall-cmd --list-all</code></pre><p>--list-all 옵션을 이용해 실제 방화벽에 허가된 서비스와 포트를 확인합니다.</p>
<pre><code>sudo chcon -Rv —type=httpd_sys_content_t /usr/share/phpmyadmin/*</code></pre><p>SElinux를 사용하고 있다면 허가를 바꾸어줍니다.</p>
<pre><code>sudo systemctl restart httpd</code></pre><p>설정이 마쳤다면 Apache를 재시작하고, localhost/phpmyadmin으로 접속합니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/46d77a1a-05e5-4a98-8e90-53a4bc6f0bee/image.PNG" alt="">
위와 같은 이미지 출력시 phpmyadmin이 정상적으로 설치, 구동되고 있다는 것입니다.</p>
<p>username과 password는 이전 생성해둔 user과 password로 접속하면 됩니다. </p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/2acb6483-1c29-406b-820f-598f785a372d/image.PNG" alt="">
접속시 다음과 같은 화면이 출력됩니다.</p>
<h4 id="참고-사이트">참고 사이트</h4>
<p><a href="https://www.linuxteck.com/how-to-install-phpmyadmin-on-rocky-linux/">[참고사이트]-How to Install and use phpMyAdmin on Rocky Linux</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[LAMP 스택을 패키지관리자로 구축해보기]]></title>
            <link>https://velog.io/@extra-vehicular/LAMP-%EC%8A%A4%ED%83%9D%EC%9D%84-%ED%8C%A8%ED%82%A4%EC%A7%80%EA%B4%80%EB%A6%AC%EC%9E%90%EB%A1%9C-%EA%B5%AC%EC%B6%95%ED%95%B4%EB%B3%B4%EA%B8%B0</link>
            <guid>https://velog.io/@extra-vehicular/LAMP-%EC%8A%A4%ED%83%9D%EC%9D%84-%ED%8C%A8%ED%82%A4%EC%A7%80%EA%B4%80%EB%A6%AC%EC%9E%90%EB%A1%9C-%EA%B5%AC%EC%B6%95%ED%95%B4%EB%B3%B4%EA%B8%B0</guid>
            <pubDate>Fri, 12 Apr 2024 09:23:33 GMT</pubDate>
            <description><![CDATA[<p>이전 이기적 리눅스 마스터로 공부를 했을때, 패키지관리자와 컴파일러로 직접 설치하는 것은 설치 위치가 다르다고 하여, 실습 준비를 위한 환경 구축입니다.</p>
<p>또한 이 환경으로 wordpress와 phpmyadmin까지 설치를 해서 이전에 했던 과정을 복기하기까지가 LAMP 스택의 마지막일 것 같네요..</p>
<h3 id="apache-설치">Apache 설치</h3>
<pre><code>sudo dnf install httpd

sudo systemctl enable httpd
sudo systemctl start httpd
sudo systemctl status httpd</code></pre><p>우선 설치를 해주고, 서버를 켜줍니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/0e2da109-c1f6-41e0-b58b-2ed313241704/image.png" alt="">
상태가 active로 되어있다면 서버가 정상적으로 구동 중이라는 뜻입니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/a5ec0460-488c-4fe3-84fe-2524b34cf0a2/image.PNG" alt="">
또한, 정상적으로 설치가 되었다면 브라우저에 localhost를 쳤을 때, 위와 같은 이 화면이 출력됩니다. 
(참고로 버전의 차이인지, OS 차이인지 화면이 달라졌네요...)</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/c7d685b3-d647-42df-be85-209afcc6e317/image.png" alt="">
이전 라즈베리파이로 설치 및 테스트 진행하였을 땐, 위와 같은 화면이 출력되었습니다.</p>
<pre><code>sudo firewall-cmd —add-service=http —permanent
sudo firewall-cmd —reload
</code></pre><p>방화벽에 http을 영구적으로 허용하고 다시 로딩합니다.</p>
<h3 id="mysql-설치">MySQL 설치</h3>
<p>최근 글들을 보았을 때, maria db를 더 많이 다운 받는 것 같지만, 전 익숙한 mysql로 설치하였습니다.</p>
<pre><code>sudo dnf install mysql-server mysql

sudo systemctl start mysqld.service
sudo systemctl status mysqld.service

sudo mysql_secure_installation</code></pre><p>mysql을 설치해주고, mysql 데몬을 실행해 줍니다. 
<img src="https://velog.velcdn.com/images/extra-vehicular/post/c4e86d09-5efe-45c7-abf6-59badc566b52/image.PNG" alt="">
성공적으로 설치되었다면 위와 같이 active라고 출력됩니다.</p>
<p>맨 아래 mysql_secure_installation의 경우 보안 설정으로 비밀번호나 접속시의 보안 강화를 위해 사용합니다.</p>
<h3 id="php-설치">PHP 설치</h3>
<pre><code>sudo dnf module list php
sudo dnf module install php:7.4
sudo dnf install php-curl php-zip</code></pre><p>php를 설치를 해주고, 설치가 정상적으로 완료되었는지 확인을 위해 phpinfo를 위한 .php파일을 작성해줍니다.</p>
<pre><code>sudo vim /var/www/html/info.php</code></pre><p>vim 편집기를 사용해 아래의 내용을 작성해줍니다.</p>
<pre><code>&lt;?php
phpinfo();
?&gt;</code></pre><p>이후 아파치 서버를 다시 시작합니다.</p>
<pre><code>sudo systemctl restart httpd</code></pre><p><img src="https://velog.velcdn.com/images/extra-vehicular/post/3c55ef61-52fa-40a0-bcd0-db61fd29118e/image.PNG" alt="">
브라우저에 localhost/info.php를 쳤을 때, 위와 같은 화면이 출력된다면 정상적으로 설치된 것입니다.</p>
<h4 id="참고-블로그">참고 블로그</h4>
<p><a href="https://www.tecmint.com/install-lamp-on-rocky-linux/">Rocky Linux 8에 LAMP 스택을 설치하는 방법</a>
<a href="https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-rocky-linux-8">How To Install MySQL on Rocky Linux 8</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[(트러블슈팅) MySQL 오류 해결]]></title>
            <link>https://velog.io/@extra-vehicular/%EC%B6%94%EA%B0%80-MySQL-%EC%98%A4%EB%A5%98-%ED%95%B4%EA%B2%B0</link>
            <guid>https://velog.io/@extra-vehicular/%EC%B6%94%EA%B0%80-MySQL-%EC%98%A4%EB%A5%98-%ED%95%B4%EA%B2%B0</guid>
            <pubDate>Tue, 09 Apr 2024 21:49:13 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>정말 너무 많은 일이...</p>
</blockquote>
<p>네.. 너무 많은 일이 있었습니다.....ㅠ
블로그 포스팅하고 wordpress만 조금 더 만지고 자려고 했는데...
<img src="https://velog.velcdn.com/images/extra-vehicular/post/1714a2ae-2561-43dd-8070-490251f5dc41/image.png" alt=""></p>
<p>네...
오류입니다...
그것도 소켓 파일이 없다는 오류이지요...</p>
<pre><code>ERROR 2002 (HY000): Can&#39;t connect to local MySQL server through socket &#39;/tmp/mysql.sock&#39; (111)</code></pre><p>문제는 이 오류를 서칭해보면 대다수 mysql 라이브러리로 다운을 받고 my.cnf나 /tmp 아래 있을 거라는 솔루션이 대다수입니다.</p>
<p>아니면 service를 재시작 해라는 이야기 뿐입니다만, 소스 코드를 다운받아 설치하는 과정에서 start와 restart, stop등을 제어하는 .service 파일이 없습니다...</p>
<p>어디에도요...</p>
<p>다른 분들이 작성해준 솔루션대로 왠만한 것들은 다 해봤는데도 파일은 없고 안나타나서 오기가 생겨서 내부 폴더를 뜯어봤습니다.</p>
<p>결과적으로 소스코드를 다운받아 install하는 방법은 서비스파일을 찾아 수동으로 켜서 -&gt; ./mysql을 이용해서 접속하는 방식으로 되어 있더군요...</p>
<pre><code>cd /usr/local/mysql/support-files
ls

mysql-log-rotate mysql.server mysqld_multi.server
</code></pre><p>support files 폴더에 보면 저렇게 아래 3개의 파일이 존재합니다.</p>
<p>그중 mysql.server를 사용하면 mysql이 시작하고, 그 이후부터 원래 사용하는 방식대로 사용하기만 하면 됩니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/f5dec5c4-688c-4377-b969-01363ee1ea4c/image.png" alt="">
위의 이미지를 보면 알듯, start, stop, restart, reload, force-reload, status를 mysql.server가 제어하는 것을 확인할 수 있습니다.
<img src="https://velog.velcdn.com/images/extra-vehicular/post/4623b9a8-e2c6-415c-8401-09de03f0d10a/image.png" alt=""></p>
<pre><code>./mysql.server start
cd /usr/local/mysql/bin
./mysql -u remos -p
</code></pre><p>정상적으로 구동하는것을 확인할 수 있습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[LAMP 스택을 컴파일러로 구축해보기-APM 설치 수난기]]></title>
            <link>https://velog.io/@extra-vehicular/APM%EA%B3%BC-Wordpress%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0</link>
            <guid>https://velog.io/@extra-vehicular/APM%EA%B3%BC-Wordpress%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0</guid>
            <pubDate>Tue, 09 Apr 2024 19:43:13 GMT</pubDate>
            <description><![CDATA[<p>힘들다.....
그냥 힘들다라는 말밖에 안나오네요..
apache - mysql - php 설치까지 대략 8시간은 걸린 것 같습니다....
원래 사용하는 라이브러리 설치 방식이 아닌 파일 설치 방식으로 연습하려 하니 오류가 계속 발생해서 애먹었네요...
되도록이면 그냥 라이브러리 설치하시길...
(저는 리눅스마스터 때문에 실습해야했습니다...ㅠ)</p>
<p>기본적인 과정은 &#39;Rocky Linux 8로 리눅스 마스터 1급 정복하기&#39;를 참고하며, 실제 실습을 진행하여 작성되었습니다.
<a href="https://www.aladin.co.kr/m/mproduct.aspx?ItemId=334926005">Rocky Linux 8로 리눅스 마스터 1급 정복하기</a></p>
<h3 id="설치-이전-사용자-권한-설정">설치 이전 사용자 권한 설정</h3>
<p>저는 원래 설치되어 있던 환경이 아닌, 실습을 위해 따끈따끈하게 설치한 Rocky Linux에 설치할 예정이라 우선 sudo 권한 배정부터 시작해야했습니다. </p>
<pre><code>su
visudo -f /etc/sudoers</code></pre><p>vi 편집기로 sudoers 파일을 열고 내부 ##Allow root to run any commands anywhere에 user ALL=(ALL) ALL 추가합니다. </p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/2d092fb4-45e0-4640-9533-aaf139548815/image.png" alt=""></p>
<p>저는 root로 설치하지 않고, 일반 사용자로 전환해서 환경을 설치할 예정이기 때문에 su 명령어를 이용해 사용자를 전환해 줍니다.</p>
<pre><code>su - [user]</code></pre><p><a href="https://velog.io/@mer1-97/Error-sudoers-%EC%84%A4%EC%A0%95-%ED%8C%8C%EC%9D%BC%EC%97%90-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.-%EC%9D%B4-%EC%8B%9C%EB%8F%84%EB%A5%BC-%EB%B3%B4%EA%B3%A0%ED%95%A9%EB%8B%88%EB%8B%A4">[참고블로그] - sudo 권한 설정</a></p>
<h3 id="본격적인-amp-설치를-위한-파일-다운로드">본격적인 AMP 설치를 위한 파일 다운로드</h3>
<blockquote>
<p>우선 라이브러리 설치가 아닌 파일을 이용해 컴파일하고 서버를 구축할 예정입니다.
이때 설치 디렉토리는 /usr/local/src 입니다. 
만약 다운로드 폴더로 다운받았다면 mv명령어로 파일을 옮깁니다.</p>
</blockquote>
<p><strong>1. Apache</strong>
총 4개의 파일을 설치해야합니다.</p>
<ol>
<li>apr</li>
<li>apr-util</li>
<li>httpd</li>
<li>pcre</li>
</ol>
<p>이때 파일의 압축율이 좋은 .bz2로 다운로드 받습니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/651da244-0ac8-4a5c-9569-c7a9eb0ddc95/image.png" alt="">
<a href="https://apr.apache.org">apr과 apr-utill 다운로드 - https://apr.apache.org</a></p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/888cdf9f-e89c-4de7-a968-fb5b8fbc879a/image.png" alt="">
<a href="https://httpd.apache.org">httpd 다운로드 - https://httpd.apache.org</a></p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/72206891-c085-470f-b1a2-13acaad88b58/image.png" alt="">
<a href="https://pcre.org">pcre 다운로드 - https://pcre.org</a></p>
<p><strong>2. Mysql</strong></p>
<p>mysql의 경우 community server 파일을 다운로드 합니다. </p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/a923f5e1-29b4-415e-b510-aaa6857e74d8/image.png" alt=""></p>
<p><a href="http://www.mysql.com">mysql 소스파일 다운로드 - http://www.mysql.com</a></p>
<p><strong>3. PHP</strong>
php의 경우 8.2 버전을 사용하였고, 압축율이 가장 좋은 .xz를 다운받습니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/2a6eee27-da70-45dc-ad81-372322488423/image.png" alt=""></p>
<p><a href="http://www.php.net">php 소스 파일 다운로드 - http://www.php.net</a></p>
<h3 id="apache-설치">Apache 설치</h3>
<h4 id="아파치-설치를-위한-라이브러리-다운로드">아파치 설치를 위한 라이브러리 다운로드</h4>
<p>C 및 C++ 컴파일러 설치</p>
<pre><code>sudo dnf install gcc 
sudo dnf install gcc-c++
sudo dnf install make 
sudo dnf install expat expat-devel</code></pre><p>기본적인 gcc의 C와 C++ 컴파일러를 설치합니다. 
또한 XML parser 라이브러리 역시 설치해줍니다.
이때, make의 경우 gcc와 gcc-c++만 설치 시 이후 make를 사용 시 make가 없다는 에러가 발생합니다. 
따라서 만일 기존 make를 설치하지 않았다면 make를 설치해 줍니다.</p>
<h4 id="아파치-설치를-위한-pcre-설치">아파치 설치를 위한 PCRE 설치</h4>
<blockquote>
<p>PCRE(Perl-Compatible Regular Expression)은 정규식 패턴 일치를 구현하는 함수의 집합이다.</p>
</blockquote>
<p>PCRE 설치</p>
<pre><code>cd /usr/local/src/
sudo tar jxvf pcre2-10.42
cd pcre2-10.42
sudo ./configure --prefix=/usr/local/pcre
sudo make
sudo make install</code></pre><p>설치한 소스코드를 압축해제 해줍니다.
해당 디렉토리에서 ./configure을 통해 makefile을 만들고, 설치될 디렉토리를 --prefix를 통해 지정합니다.
이후 make로 컴파일을 하고, make install로 설치를 해줍니다.</p>
<h4 id="httpd-설치">httpd 설치</h4>
<p>httpd 설치</p>
<pre><code>cd /usr/local/src
sudo tar jxvf httpd-2.4.59.tar.bz2
sudo tar jxvf apr-1.7.4.tar.bz2
sudo tar jxvf apr-util-1.6.3.tar.bz2

sudo cp –a apr-1.7.4 ./httpd-2.4.59/srclib/apr
sudo cp –a apr-util-1.6.3 ./httpd-2.4.59/srclib/apr-util

cd httpd-2.4.59

sudo ./configure —prefix=/usr/local/apache —enable-so —enable-mods-shared=all —with-included-apr —with-pcre=/usr/local/pcre/bin/pcre2-config

sudo make
sudo make install</code></pre><p>이전 PCRE와 동일하게 설치한 소스코드 3개를 압축해제 해줍니다.
생성된 httpd 디렉토리 내부 srclib안에 압축 해제한 apr과 apr-util을 각각 복사해줍니다.
이후 httpd 디렉토리로 이동하고 ./configure을 통해 makefile을 생성합니다. </p>
<p>이때, --with-pcre 옵션에 대해 주의해야합니다.</p>
<pre><code>sudo ./configure —prefix=/usr/local/apache —enable-so —enable-mods-shared=all —with-included-apr —with-pcre=/usr/local/pcre </code></pre><p>다음과 같이 작성 시, pcre2-config 파일을 찾을 수 없다는 에러가 발생합니다.
<img src="https://velog.velcdn.com/images/extra-vehicular/post/90e66716-b3d8-4704-a754-1155f5940969/image.png" alt=""></p>
<p>따라서 위와 같이 pcre2-config 파일이 들어있는 /bin 디렉토리와 파일명을 명시해주어야 다음과 같이 성공적으로 makefile을 생성합니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/390f83ff-0e65-4876-805a-c99888d26d87/image.PNG" alt=""></p>
<p><a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=66000">[참고사이트] - configure: error: pcre(2)-config for libpcre not fount error</a></p>
<p>이후 make로 컴파일, make install로 설치해줍니다.</p>
<h3 id="mysql-설치">MySQL 설치</h3>
<h4 id="mysql-설치를-위한-라이브러리-다운로드">MySQL 설치를 위한 라이브러리 다운로드</h4>
<p>cmake 및 관련 라이브러리 설치</p>
<pre><code>sudo dnf install cmake 

sudo dnf install ncurses 
sudo dnf install ncurses-devel 
sudo dnf install bison 

sudo dnf install gcc-toolset-12-gcc 
sudo dnf install gcc-toolset-12-gcc-c++ 
sudo dnf install gcc-toolset-12-binutils 

sudo dnf install libtirpc-devel 
sudo dnf —enablerepo=powertools install rpcgen 

sudo dnf install openssl
sudo dnf install openssl-devel </code></pre><p>우선 mysql의 설치는 cmake를 이용합니다. 
그외 추가적인 ncurses, ncurses-devel, bison을 설치합니다.
또한 gcc toolset과 관련된 라이브러리 설치 및 RPC관련 라이브러리도 설치해 줍니다.
그리고 openssl과 openssl-devel도 설치해줍니다.
openssl 라이브러리가 설치되어 있다고 하더라도 openssl-devel이 없으면 이후 설치에서 에러가 발생하기 때문에 설치가 되었는지 확인이 필요합니다.</p>
<h4 id="mysql-설치-1">MySQL 설치</h4>
<p>MySQL 설치</p>
<pre><code>cd /usr/local/src
sudo tar zxvf mysql-boost-8.0.36.tar.gz

cd mysql-8.0.36
sudo cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql –DDOWNLOAD_BOOST=1 –DWITH_BOOST=/usr/local/src/mysql-8.0.36/boost –DFORCE_INSOURCE_BUILD=1

sudo make install
</code></pre><p>이전 과정과 동일하게 소스 코드를 압축해제해 줍니다.
이후 압축해제한 폴더에서 cmake 명령을 이용해 환경설정과 컴파일을 진행합니다. 
이때, -DCMAKE_INSTALL_PREFIX 옵션을 이용해 설치 디렉토리를 지정해줍니다.
이후 make install을 통해 설치를 진행합니다. (시간이 굉장히 오래 걸립니다.)</p>
<h4 id="mysql-사용자-설정">MySQL 사용자 설정</h4>
<blockquote>
<p>가장 중요한 점은 ./mysqld —initialize —user=root 가 성공적으로 마무리된다면 임시 비밀번호가 생성됩니다. 이부분을 잊지않고 복사해두어야 합니다.</p>
</blockquote>
<pre><code>cd /usr/local/mysql/bin
sudo ./mysqld --initialize --user=root
sudo /usr/local/mysql/bin/mysqld_safe --user=root &amp;
sudo /usr/local/mysql/bin/mysql –p
</code></pre><p>우선 설치된 이전 -DCMAKE_INSTALL_PREFIX 옵션을 이용해 지정해둔 디렉토리로 이동하고, mysqld 명령이 있는 bin 디렉토리로 이동해줍니다.</p>
<p>가장 유의해야하는 부분입니다.</p>
<pre><code>./mysqld --initialize --user=root</code></pre><p>해당 명령어를 사용시, 임시 패스워드가 부여됩니다. 이 패스워드를 이용해 서버에 로그인한 후, 사용자의 패스워드를 설정해야합니다.(이미지상 위치한 곳에서 임시 비밀번호 생성)</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/cc7f809d-a2f1-4bd6-85e6-e56efcb26648/image.png" alt=""></p>
<p>만일 임시 패스워드를 복사하지 못하거나, 잊었을 때, 이전 /usr/local/mysql/data 디렉터리를 삭제하고 다시 진행합니다. 또는 이것으로도 해결이 되지 않을 땐, 설치 파일 자체를 삭제하고 다시 설치해야 합니다.</p>
<p>이후 mysql 데몬을  실행하고, 서버에 접근하여 패스워드를 입력합니다. 이때의 패스워드는 이전 발급한 임시 패스워드입니다.</p>
<pre><code>mysql&gt; alter user ‘root’@’localhost’ identified by ‘password’;
mysql&gt; flush privileges;</code></pre><p>성공적으로 설치가 완료되면, alter문을 이용해 사용자의 패스워드를 지정해줍니다.</p>
<h3 id="php-설치">PHP 설치</h3>
<h4 id="php-설치를-위한-라이브러리-다운로드">PHP 설치를 위한 라이브러리 다운로드</h4>
<p>xml과 sqlite-devel 설치</p>
<pre><code>sudo dnf install libxml2 libxml2-devel 
sudo dnf install sqlite-devel </code></pre><p>php 설치 이전 다운로드 받아야할 xml과 sqlite-devel입니다.</p>
<h4 id="php-설치-1">PHP 설치</h4>
<p>환경 설정 및 컴파일</p>
<pre><code>cd /usr/local/src
sudo tar jxvf php-8.2.17.tar.bz2

cd php-8.2.17
sudo ./configure —with-apxs2=/usr/local/apache/bin/apxs —with-config-file-path=/usr/local/apache/conf —with-mysqli —with-pdo-mysql=/usr/local/mysql

sudo make
sudo make install

sudo cp php.ini-production /usr/local/apache/conf/php.ini</code></pre><p>우선 소스 코드를 압축 해제해 줍니다. 이후 ./configure을 이용해 makefile을 생성해줍니다. ./configure을 통해 설정되는 옵션과 옵션값을 확실하게 확인하는 것을 추천드립니다.(앞서 다른 환경 설정도 함께..) 
다른 부분보다 이 부분에서 설정 path가 누락되어 계속 오류가 발생했었습니다...ㅠ
path가 누락되거나 오류가 발생되면 해당 부분을 찾을 수 없다는 에러가 발생합니다. 정확히, 소스 코드에서 변수 내로 들어갈 내용이 없다고 출력이 됩니다. </p>
<p>특히 php 버전에 따라 다른듯 한데 --with-mysqli에 경로를 지정해야하는 경우가 있고 아닌 경우가 있습니다.</p>
<pre><code>sudo vi /usr/local/apache/conf/httpd.conf

AddType application/x-httpd-php .php .htm .html .inc .php8
AddType Application/x-httpd-php-source .phps</code></pre><p>vi 편집기로 아래 두줄을 httpd.conf의 AddType 설정이 등록된 부분에 작성합니다.</p>
<pre><code>ps aux | grep httpd
sudo /usr/local/apache/bin/apachectl restart</code></pre><p>최종적으로 httpd를 실행하면 APM 설치가 완료됩니다.
재시작을 하였을때, httpd가 실행중인지 확인해봐야합니다.</p>
<h3 id="php-연동-확인">PHP 연동 확인</h3>
<p>php 연동을 확인하는 대표적인 방법은 phpinfo()를 이용하는 방법입니다.</p>
<pre><code>cd /usr/local/apache/htdocs
sudo vi test.php</code></pre><p>다음과 같이 apache 밑 htdocs로 이동합니다.
이후 vi 편집기를 이용해 test.php 파일을 생성합니다.</p>
<pre><code>&lt;?php
phpinfo();
?&gt;</code></pre><p>test.php 파일에는 위와 같은 내용을 작성합니다.
<img src="https://velog.velcdn.com/images/extra-vehicular/post/88957e42-f786-4304-8396-2f57eb9edf83/image.png" alt=""></p>
<p>이후, 웹 브라우저에서 localhost/test.php를 이용해 확인하였을때, php문서가 나온다면 성공적으로 연결된 것입니다.</p>
<h3 id="설치-후기">설치 후기</h3>
<p>다른 것 보다, 기존 라입브러리를 이용해 설치하는 방법과는 정말 다르고, 또한 CentOS에서 설치하는 부분과 버전차이로 작성해야하거나 설치해야하는 부분들이 달라져 이러한 부분에서 시간을 많이 잡아 먹었습니다. 
특히, php에서 ./configure을 진행 시, with-mysqli가 path를 설정해야하는지 아닌지를 구분해야합니다. 이전 버전으로 다운시 path를 설치해야하고, 최신 버전으로는 pdo를 사용하기를 권장해서 그런지 path를 사용하지 않아도 되더라구요. 
정확하게 알아보고 진행해야할 것 같습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Virtual Box에 Rocky Linux 8 설치하기]]></title>
            <link>https://velog.io/@extra-vehicular/Virtual-Box%EC%97%90-Rocky-Linux-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@extra-vehicular/Virtual-Box%EC%97%90-Rocky-Linux-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0</guid>
            <pubDate>Mon, 08 Apr 2024 17:21:19 GMT</pubDate>
            <description><![CDATA[<p>리눅스 마스터 2차 대비 및 개인적인 리눅스 공부를 위한 Rocky Linux 설치 과정 및 시행착오(...)입니다.</p>
<h3 id="설치과정">설치과정</h3>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/76fd6f9b-3e0c-41a3-b8bb-2662dd7c8d7b/image.png" alt="">
우선 virtual box를 실행하여 새로만들기 버튼을 클릭합니다.
<img src="https://velog.velcdn.com/images/extra-vehicular/post/2e253bb3-73c2-4ec4-9409-b581f4ca5bbb/image.png" alt="">
그러면 다음과 같은 화면이 출력되는데 여기서 이름, 머신 폴더, 종류, 버전, 메모리크기를 수정해주면됩니다..
이름에 Linux가 포함되면 자동으로 종류가 Linux로 바뀌어 버전만 red hat 64bit로 수정이 필요합니다.</p>
<p>메모리 크기의 경우 기본적으로 설정되는 1024MB가 아닌 2048MB을 추천합니다. (캡쳐된 사진은 이부분을 수정하기 전에 찍었나봅...)
일단 Rocky linux는 64bit 운영체제로 실제 공식 홈페이지에서도 2GB이상을 추천합니다.
<a href="https://docs.rockylinux.org/guides/virtualization/vbox-rocky/">Rocky on VirtualBox</a></p>
<p>그리고 1024MB로 진행하였을 때, 설치 중 화면에 멈추는 현상이 계속 발생하기도 하였습니다. 
다만 이부분은 이미지 파일을 dvd로 진행하였을 때 발생하였으며, minimal로 진행시 1024MB도 무리없이 설치가 되었었습니다.
(실사용에서는 불편할 수도...?)</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/c85cf851-b846-48a7-9d49-b713d70e616e/image.png" alt="">
운영체제 종류와 메모리를 설정하면, 가상 하드디스크를 만듭니다.
여기서도 20GB를 추천합니다다. 
10GB의 경우 minimal은 무리없이 설치되었으나, dvd는 다운로드되는 OS가 10GB이상으로 설치되지 않습니다.
<img src="https://velog.velcdn.com/images/extra-vehicular/post/7e3b8396-cfec-4430-877a-7aa325574a18/image.png" alt="">
저장소까지 설정하면 가상환경이 만들어진 모습을 볼 수 있습니다.</p>
<p>가상환경에 이미지 파일을 올리는 과정을 설정에서 미리 올려둘 수도 있지만, 시작버튼을 눌러 표시되는 창에서 진행할 수도 있습니다.
<img src="https://velog.velcdn.com/images/extra-vehicular/post/bbf79547-4274-476b-86ac-3f09520f3127/image.png" alt="">
디스크 선택에서 파일 이모티콘을 선택하면 PC에서 이미지를 불러올 수 있는 화면을 보여줍니다.
<img src="https://velog.velcdn.com/images/extra-vehicular/post/e298ad79-89a8-41ac-b519-6176a8bd3a14/image.png" alt="">
추가 버튼을 눌러 이미지 파일을 선택하고 불러온 파일을 선택합니다.
<img src="https://velog.velcdn.com/images/extra-vehicular/post/88e99ba6-9ba7-4d8b-aaf8-922f69dac0b5/image.png" alt="">
그러면 Rocky Linux의 설치에 대한 옵션을 보여줍니다.
바로 설치해도 되고, 테스트 이후 설치를 진행해도 됩니다.
<img src="https://velog.velcdn.com/images/extra-vehicular/post/735aaa3b-76b7-4543-893a-b467f64555d9/image.PNG" alt="">
설치가 완료되면 언어를 선택하는 화면이 뜹니다.
원하는 언어로 선택합니다. (한국어로 선택)
<img src="https://velog.velcdn.com/images/extra-vehicular/post/00137a44-0355-4417-a71f-95c38a7b24eb/image.png" alt="">
언어 선택 이후 다음으로 넘어가는 화면에서 수정해야 할 항목들은 시간과 날짜, root 비밀번호, 사용자 생성, 설치 목적지입니다.
만약 화면을 GUI가 아닌 다른 화면으로 설정하거나 소프트웨어에 대한 추가적인 설치가 필요하다면 소프트웨어 선택을 수정합니다.
<img src="https://velog.velcdn.com/images/extra-vehicular/post/967ee5aa-6fbc-446b-9ad9-bb31c955f81a/image.png" alt="">
이중 설치 목적지 설정 화면입니다. 
저는 디스크에 대한 세부 설정을 하지 않고 지나갔으나, 만일 세부적인 설정이 필요하다면 아래 블로그를 참고해보는 것이 좋을 것 같습니다.</p>
<p><a href="https://m.blog.naver.com/ahtid/222868544298">[Rocky Linux] 누구나 쉽게 따라하는 Rocky Linux 9.0 OS 다운로드 및 설치 방법</a></p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/5676d5ca-ce2b-4639-88e0-96ea8b64fa2b/image.png" alt="">
설정 이후 설치가 진행됩니다. 
설치가 완료되면 시스템 재부팅 버튼 눌립니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/91d3ae00-1864-4b30-934f-967023c322e3/image.png" alt="">
바로 재부팅되는 것이 아닌 라이센스 동의를 위한 화면으로 넘어갑니다. 가운데 라이센스 정보를 클릭하면 동의를 구하는 화면으로 넘어가고, 동의를 하면 아래 설정 완료 버튼이 활성화 됩니다. </p>
<p>이후, 재부팅이 진행되고 Rocky Linux가 실행됩니다.
이후 화면은 설정하고자 하는 부분만 설정합니다.(저는 모두 다음을 클릭했습니다.)
마지막에 사용하는 브로슈어 같은 화면이 뜨면 창을 닫습니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/94a8740a-c388-4d9e-b366-8d40a7372366/image.png" alt="">
처음 화면에서 옆의 네비게이션 바가 없을 텐데, 다음 화면은 위쪽의 현재 활동을 클릭시 확인할 수 있습니다.</p>
<h3 id="네트워크-설정">네트워크 설정</h3>
<p>저는 데스크톱으로 설정하여 네트워크 설정시 유선연결로 진행하였습니다. 
<img src="https://velog.velcdn.com/images/extra-vehicular/post/44c28dcb-915d-417c-847a-c19af4422ad8/image.png" alt="">
위의 전원 버튼을 클릭시 소리 음향 조절과 네트워크, 유저, 환경설정, Lock, 전원을 설정할 수 있습니다.
여기서 유선 꺼짐 부분을 클릭 시 아래 유선 연결 버튼이 나오고 활성화를 하면 네트워크가 연결된 모습을 확인할 수 있습니다.</p>
<h3 id="한글-키보드-설정">한글 키보드 설정</h3>
<p>아래 블로그를 참조하여 한글 키보드의 설정을 진행하였습니다.
다만 작성된 글에 따라 설정을 진행하여도 한글 전환이 되지 않는 문제점이 발생해 그 부분에 대해 추가적으로 작성하였습니다.
<a href="https://gonghakjoa.tistory.com/92">Rocky Linux 9 한글 입력 설정</a></p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/a59663ca-d58b-4338-9467-1935c0d84910/image.png" alt="">
Rocky Linux 9로 작성된 블로그글과 다르게 저는 Rocky Linux 8로 설치하며 설정 인터페이스 부분에서 조금 차이가 있었습니다.
Rocky Linux 8의 경우 키보드의 언어 설정이 지역 및 언어에서 설정합니다. 
그리고 아래 &#39;한국어(Hangul)&#39;을 클릭, 아래 설정 버튼을 클릭하면 ibus 한글 설정 화면이 나타납니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/3d440056-1f35-4cf6-bfd0-3f470f77de9c/image.png" alt="">
여기서 주의해야 할 점은 반드시 매핑할 키를 추가하고 &#39;적용&#39;버튼을 누르고, 확인을 눌러 종료해야합니다. 
적용 버튼을 클릭하지 않으면 키를 매핑을 시켰는데, 그 키가 한영전환키 목록에서 삭제된 모습을 확인할 수 있었습니다.</p>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/fa9b2104-a17c-41da-8e5a-271478d6f22c/image.png" alt="">
그리고 만일 설정을 하고 한영전환키 목록에도 매핑한 키가 있는데 한글 전환이 안된다면, 상단 바의 언어설정부분에서 &#39;한국어(Hangul)&#39;이 아닌 &#39;한국어&#39;로 되어 있는지 확인하고, 바꾸어 주면 됩니다.
그리고 그럼에도 안된다면 조금 기다렸다 한영키를 누르면 전환되는 모습을 확인할 수 있었습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Linux master] 리눅스 마스터 1급 1차 합격 후기]]></title>
            <link>https://velog.io/@extra-vehicular/Linux-master-%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%A7%88%EC%8A%A4%ED%84%B0-1%EA%B8%89-1%EC%B0%A8-%ED%95%A9%EA%B2%A9-%ED%9B%84%EA%B8%B0</link>
            <guid>https://velog.io/@extra-vehicular/Linux-master-%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%A7%88%EC%8A%A4%ED%84%B0-1%EA%B8%89-1%EC%B0%A8-%ED%95%A9%EA%B2%A9-%ED%9B%84%EA%B8%B0</guid>
            <pubDate>Wed, 03 Apr 2024 15:09:18 GMT</pubDate>
            <description><![CDATA[<p>리눅스 마스터 1급 1차 후기입니다.</p>
<blockquote>
<p><em>원래는 SQLD와 정처기 후기를 올리려고 했는데 응시하고 결과가 나온 지 꽤 오래되어 따끈따끈하게 합격한 1차 후기를 첫 글로 시작하려 합니다.</em></p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/extra-vehicular/post/1c2ba914-bbd7-4093-b893-f8b027f3e914/image.png" alt=""></p>
<h3 id="나의-linux-베이스">나의 linux 베이스</h3>
<ul>
<li>컴공에서 배우는 기본적인 운영체제 프로세스 공부</li>
<li>라즈베리 파이를 사용 및 기본 명령어 숙지</li>
<li>Virtual box에 라즈베리 파이 OS를 설치, 워드프레스와 아피치, php, mysql (APM) 사용 및 블로그 제작</li>
</ul>
<p>이 정도의 베이스로 공부를 시작하였습니다.</p>
<h3 id="공부-기간-및-참고">공부 기간 및 참고</h3>
<ul>
<li><p>공부 기간 : 약 3주 (하루 평균 7시간 정도 투자)
참고 - 1차 공부 동안은 실습은 진행 X</p>
</li>
<li><p>교재 : <a href="https://www.yes24.com/Product/Goods/116967738">2023 이기적 리눅스 마스터 1급 기본서</a>
현재는 2024년 개정판이 출간되었습니다.</p>
</li>
<li><p>참고 블로그
<a href="https://zziangzzang.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4%EB%A7%88%EC%8A%A4%ED%84%B0-1%EA%B8%89-1%EC%B0%A8-%EB%8F%85%ED%95%99-%ED%95%A9%EA%B2%A9-%ED%9B%84%EA%B8%B0-%EA%B0%9C%EB%85%90-%EC%9A%94%EC%95%BD%EC%A0%95%EB%A6%AC">1. 리눅스마스터 1급 1차 독학 합격 후기/개념 요약 자료 공유/제2201회</a>
<a href="https://m.blog.naver.com/PostView.naver?blogId=jack1772&amp;logNo=222775729883&amp;proxyReferer=">2. 리눅스 마스터 1급 합격 후기</a></p>
</li>
</ul>
<h3 id="공부-방법">공부 방법</h3>
<p><strong>0. 문제 및 교재 훑어보기</strong></p>
<p>자격증을 준비하기에 앞서 어떤 유형의 문제가 주로 출제되는지, 그리고 각 챕터 마다의 주요 개념이 무엇인지 빠르게 훑어보며 시험공부 전략을 짰습니다.
이때 합격 후기 등과 같이 앞서 시험을 친 사람들의 후기를 보며 정리를 하기도 하였습니다.</p>
<p><strong>1. 개념 공부 ( 1주일 )</strong></p>
<p>저는 리눅스에 대해서는 그다지 개념적으로 정리된 상태가 아니었기에 교재 전체 1회 독부터 시작하였습니다. 이 부분에 대해서는 각자 가지고 있는 베이스가 다르기 때문에 비효율적인지 효율적인지 생각하는 부분이 다를 것이라 생각합니다.</p>
<p>저의 경우 책 독학과 함께 영진닷컴에서 제공하는 유튜브 개념 강의를 병행하였는데 유튜브 개념 강의의 경우 개념 숙지 또는 명령어에 대한 부분에 대해서는 도움이 안되었습니다. 다만, 1회 독을 하고 난 이후 챕터 복습 시 집중이 되지 않을 경우나 일부 개념에 대해 이해가 안 되는 부분이 있을 때 해당 부분만을 찾아서 듣는 등에서는 도움이 되었다고 생각합니다. 하지만, 개정이 바뀌어 책 내부 바뀐 내용이 영상에 적용되지 않아 내용이 다른 부분이 있고, 대다수 영상이 내부 교재를 따라 읽는 강의로 구성되어 있습니다. 따라서, 강의를 통해 전체 공부를 하는 것에 대해서는 비추천합니다. </p>
<p><a href="https://www.youtube.com/@ydot0789">이기적 영진닷컴</a></p>
<p><strong>2. 개념 복습 및 요약본 제작 ( 5일 )</strong></p>
<p>우선 반복적인 개념 복습 및 요약본을 제작하였습니다.
요약본을 만들면서 기본적인 개념 정리를 진행하며, 헷갈리는 명령어들의 개념과 각 속성을 간단히 정리하였습니다. 이 과정은 2장보다 3장에서 각 서비스에 대한 정리로 시간 소요가 컸습니다.</p>
<p>요약본을 제작하고 개념 복습을 진행하며, 여전히 헷갈리거나 모르는 부분에 관해 내용을 추가하였습니다.</p>
<p><strong>3. 기출문제 풀고, 풀이 및 요약본 정리 ( 1주일 )</strong></p>
<p>기출 문제의 경우 2가지 사이트를 이용해 풀었습니다. 
<a href="https://www.comcbt.com/">1. 최강 자격증 기출 문제 전자문제집 CBT</a>
<a href="https://hellocbt.com/">2. HelloCBT</a></p>
<p>1번 사이트를 중심으로 문제를 풀었고, 2018 ~ 2023까지의 문제를 풀었습니다. 
다만, 1번 사이트에서 2021 기출문제가 누락되어 2번 사이트에서 2021 기출 문제를 풀었습니다.</p>
<p>기출 문제를 풀고 난 이후, 오답 체크를 하고 요약본에 틀린 개념에 대해 추가적인 정리 또는 체크를 진행하며 공부를 이어갔습니다.</p>
<p>이때, 1번 참고 블로그의 작성자분께서 정리하신 요약본과 제 요약본을 비교하며 누락된 부분이나 보충해야 할 부분을 체크하였습니다. </p>
<p><strong>4. 최종 정리</strong></p>
<p>오답 체크를 진행하며 주로 틀리는 부분, 유형 등을 확인하며 복습을 진행하였습니다. 
특히 각 명령어의 속성과 3장에서 나오는 각 서비스 간 주요 파일에 집중하여 공부하였습니다.</p>
<h3 id="시험-후기">시험 후기</h3>
<p>일단 고사장의 감독님에 따라 가채점을 할 수 있는지 없는지가 달라지는 것 같습니다. 제가 친 고사장에서는 수험표를 포함한 모든 종이는 다 넣으라고 하는데, 시험을 치고 나와서 보니 다른 고사장에서는 답안을 작성해서 나온 것 같습니다. 확실하진 않으니, 당일 감독관에게 직접 물어보는 게 빠를 듯하네요. 
(참고로 시험지를 가지고 올 수 있다는 후기도 봤었는데 저는 못 가져왔습니다...)</p>
<p>시험 난이도는 엄청 높다고 생각하진 않았습니다. 다만 케이블 색상에 관해 물어보는 문제에서는 순간 당황해서 얼어 있긴 했습니다.ㅎㅎ
문제은행 형식이지만, 이전에 출제된 문제에서 해당하는 모든 개념을 알아야 풀 수 있는 문제가 꽤 되었습니다. 그래서 기출은 주요한 개념이 무엇인지를 확인하는 방향으로 공부해야 점수를 얻을 수 있는 것 같습니다. 실제로 동일하게 제출된 문제는 체감상 약 20% 정도(?)였던 것 같네요. </p>
<p>그리고 문제를 풀 때 시험 문제만 잘 보고 영어 단어만 잘 연관 시키면 풀 수 있는 문제들이 꽤 출제되었습니다. 물론 사용하는 사람들이 쉽게 기억하고 이해할 수 있도록 직관적으로 명령어 이름이나 폴더를 생성하기 때문에 당연하다고 볼 수 있습니다. 하지만 기출을 많이 풀어본 사람의 경우 유사하게 생긴 문제에 함정으로 쉽게 빠질 수 있어, 더욱 꼼꼼하게 문제를 풀면 맞힐 수 있다고 생각합니다.</p>
<p>2차 역시 합격할 수 있으면 좋겠네요.ㅎㅎ
2차의 경우는 교재가 달라져, 각 교재 리뷰까지 작성할 수 있을 것 같습니다.
1차 합격 후기는 이 정도에서 마치도록 하겠습니다.</p>
]]></description>
        </item>
    </channel>
</rss>