<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[ 코드그랩 | 디유서치 ]]></title>
<link>https://www.dut.kr</link>
<description><![CDATA[ 코드그랩 웹 개발, 앱 개발 다양한 프로그램 개발 경험과 유용한 IT 정보 공유 ]]></description>
<language>ko</language>
<pubDate>Tue, 21 Apr 2026 06:54:18 KST</pubDate>
<lastBuildDate>Tue, 21 Apr 2026 06:54:18 KST</lastBuildDate>
<docs>https://www.dut.kr</docs>
<managingEditor>etocat@naver.com</managingEditor>
<webMaster>etocat@naver.com</webMaster>

<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 작업로그]]></category>
<title><![CDATA[ [파킹마스타] 점포별로 최대 할인 시간 사용 방법 안내]]></title>
<link>https://www.dut.kr/job/700</link>
<guid>https://www.dut.kr/job/700</guid>
<pubDate>Tue, 11 Nov 2025 13:53:28 +0900</pubDate>
<description><![CDATA[ <p>이전에는 최대 할인권 사용 시간이 고정되어 있어 할인권이 8시간이라면 다른 점포에서 추가 할인이 어려웠습니다.</p><p>추가된 기능으로는 모든 점포에서 최대로 받을 수 있는 할인 시간을 입력하면 점포주1 + 점포주2 + 점포주3 이렇게 할인을 받을 수 있습니다.</p><p>하단 주의 사항도 숙지하시기 바랍니다.</p><p><br></p><blockquote class="blockquote">주차장 설정 변경</blockquote><p>관리자 &gt; 주차장 설정 &gt; 수정</p><p>모든 현장 최대로 받을 수 있는 할인 시간을 입력 합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1762835283-7504.png"></p><p>점포별 할인시간 적용에서 사용하기를 선택 합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1762835332-1562.png"><br></p><p><br></p><p><br></p><blockquote class="blockquote">점포주 최대 할인 시간 지정</blockquote><p>점포주 관리 &gt; 보기 &gt; 수정</p><p>아래와 같이 점포별 최대 할인이 설정 되어 있는 경우 목록에서 확인이 가능합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1762835380-3372.png"></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1762835442-1662.png"></p><p><br></p><p>보기 &gt; 수정 화면 아래 부분에 점포별 최대 할인 시간을 입력하면 적용이 됩니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1762835496-1091.png"></p><p><br></p><p><br></p><blockquote class="blockquote">필독 사항</blockquote><p>1. 최대 할인은 3회만 가능하므로 한 현장에서 여러 차례 할인을 받게 되면 다른 현장에서 받지 못하게 됩니다. 시간을 최대로 줘서 처리하세요.</p><p>2. 이전에 해당 현장에 최대 8시간으로 되어 있는 부분은 뽀로로 5시간 + 곤충관 3시간 + 닥터아이 6시간 = 14시간으로 지정해야 합니다.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 개발노트]]></category>
<title><![CDATA[ 리눅스 서버 무차별 로그인 공격 차단 설정 가이드]]></title>
<link>https://www.dut.kr/dev/699</link>
<guid>https://www.dut.kr/dev/699</guid>
<pubDate>Mon, 10 Nov 2025 11:55:03 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1762742969-2051.png"></p><p><br></p><p>리눅스 서버를 운영하다 보면 SSH 포트 22번으로 자동 로그인 시도를 하는 봇 공격이 끊임없이 발생한다.</p><p>특히 root 계정은 공격 대상이 되기 쉬워, 반드시 직접 로그인을 막고 Fail2ban 같은 도구로 차단 정책을 설정해야 한다.</p><p><br></p><p><b>1. SSH 포트 변경</b></p><p>SSH 기본 포트 22번은 전 세계적으로 알려져 있으므로 변경이 필수다.</p><pre>vi /etc/ssh/sshd_config<font color="#000000"><span> </span></font></pre><div>다음 항목을 수정한다. 기존 22번 포트는 삭제하거나 주석 처리</div><pre>#Port 22 Port 7789 PermitRootLogin no<font color="#000000"><span> </span></font></pre><div>저장 후 서비스 재시작</div><pre>systemctl restart sshd </pre><div><br></div><p><br></p><p><b>2. Fail2ban 설치 및 설정</b></p><p>Fail2ban은 로그인 실패 기록을 감시해, 일정 횟수 이상 실패한 IP를 자동으로 차단한다.</p><p>설치 후 설정 파일을 열어 수정한다.</p><pre>vi /etc/fail2ban/jail.local<font color="#000000"><span> </span></font></pre><div>예시 설정:</div><pre>[sshd] enabled = true port = 7789 maxretry = 5 findtime = 15m bantime = 30m ignoreip = 127.0.0.1/8 112.157.222.170 </pre><div><li data-start="1104" data-end="1128"><p data-start="1106" data-end="1128">enabled: sshd 보호 활성화</p> </li> <li data-start="1129" data-end="1153"> <p data-start="1131" data-end="1153">port: 사용하는 SSH 포트 지정</p> </li> <li data-start="1154" data-end="1180"> <p data-start="1156" data-end="1180">maxretry: 로그인 실패 허용 횟수</p> </li> <li data-start="1181" data-end="1209"> <p data-start="1183" data-end="1209">findtime: 실패 횟수를 계산하는 시간</p> </li> <li data-start="1210" data-end="1231"> <p data-start="1212" data-end="1231">bantime: 차단 유지 시간</p> </li> <li data-start="1232" data-end="1254"> <p data-start="1234" data-end="1254">ignoreip: 차단 제외 IP</p><p data-start="1234" data-end="1254"><br></p></li></div><div>설정 후 Fail2ban 재시작</div><pre>systemctl restart fail2ban<font color="#000000"><span> </span></font></pre><div>현재 상태 확인</div><pre>fail2ban-client status sshd </pre><div><br></div><div><br></div><div><br></div><p><b>3. 차단 해제 방법</b></p><p>본인 IP가 차단되었을 때는 다음 명령으로 해제할 수 있다.</p><pre>fail2ban-client set sshd unbanip 111.156.221.171 </pre><div><br></div><p><br></p><p><b>4. 보안 점검 확인</b></p><p>포트와 접근 제한이 적용되었는지 확인한다.</p><pre>ss -tlnp | grep sshd </pre><div><br></div><p><br></p><p><b>5. 요약</b></p><p>SSH 포트를 기본값 22에서 다른 번호로 변경</p><p>root 직접 로그인 금지 설정</p><p>Fail2ban으로 로그인 실패 자동 차단</p><p>본인 IP는 ignoreip로 제외</p><p>차단 해제는 unbanip 명령으로 해결</p><p><br></p><p>보안 설정은 한 번만 해두면 오랫동안 서버를 안전하게 지킬 수 있다.</p><p>fail2ban과 포트 변경만으로도 대부분의 무차별 로그인 공격을 효과적으로 차단할 수 있다.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 개발노트]]></category>
<title><![CDATA[ 리눅스 서버 SSH 보안 점검 101: 해킹 시도 이렇게 확인하자]]></title>
<link>https://www.dut.kr/dev/698</link>
<guid>https://www.dut.kr/dev/698</guid>
<pubDate>Fri, 07 Nov 2025 18:00:12 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1762505665-9855.png"></p><p style="text-align: center; "><br></p><p></p><pre>리눅스 서버를 운영하다 보면 “Last failed login”, “There were XX failed login attempts” 같은 문구를 종종 본다.</pre><p>이건 누군가 서버에 로그인 시도를 했는데 실패했다는 뜻이다.</p><p>보통 무차별 대입(Brute Force) 공격 흔적이거나, 관리자가 비밀번호를 틀린 기록이다.</p><p>오늘은 리눅스 SSH 보안 점검과 실패 로그인 기록을 확인하는 핵심 명령어를 정리한다.</p><p><br></p><blockquote class="blockquote">SSH 로그인 실패 기록 확인</blockquote><p>SSH를 통한 로그인 실패 시도는 대부분 /var/log/secure에 저장된다.</p><p>최근 20개의 실패 로그를 확인하려면 아래 명령어를 입력한다:</p><pre>grep "Failed password" /var/log/secure | tail -20<font color="#000000"><span> </span></font></pre><ul><li>IP, 사용자명, 시도 시간 등을 한눈에 확인할 수 있다.</li><li>공격이 지속된다면 fail2ban 같은 보안 툴로 자동 차단 설정을 추천한다.</li></ul><p><br></p><p><br></p><blockquote class="blockquote">최근 로그인 기록 확인</blockquote><p>성공한 로그인 내역은 wtmp, 실패한 내역은 btmp에 기록된다.</p><pre># 성공한 로그인 목록 last | head # 실패한 로그인 목록 lastb | head<font color="#000000"><span> </span></font></pre><div>특정 IP나 사용자의 접근 패턴을 분석할 때 유용하다.</div><div><br></div><div><br></div><div><blockquote class="blockquote">root 직접 로그인 차단</blockquote><div>root 계정은 공격 대상 1순위다.</div><div>따라서 직접 로그인은 막고, 일반 계정 → sudo로 전환하는 방식을 권장한다.</div><div><br></div><pre>vi /etc/ssh/sshd_config PermitRootLogin no systemctl restart sshd </pre><div><br></div><div><br></div></div><blockquote class="blockquote">fail2ban으로 자동 차단 설정</blockquote><p>무차별 대입 공격을 막으려면 fail2ban을 설치하자.</p><pre>yum install fail2ban -y systemctl enable --now fail2ban<font color="#000000"><span> </span></font></pre><div>SSH에서 일정 횟수 이상 비밀번호 실패 시 해당 IP를 자동으로 차단해준다.</div><div><br></div><div><br></div><blockquote class="blockquote">방화벽 기본 설정 점검</blockquote><p>SSH 접속을 제한하거나 포트를 변경하는 것도 좋은 보안 습관이다.</p><pre>firewall-cmd --permanent --remove-service=ssh firewall-cmd --permanent --add-port=2222/tcp firewall-cmd --reload<font color="#000000"><span> </span></font></pre><div>이후 /etc/ssh/sshd_config의 Port도 동일하게 2222로 변경하면 된다.</div><div><br></div><div><br></div><blockquote class="blockquote">마무리</blockquote><p>보안은 “한 번 점검하고 끝”이 아니다.</p><p>서버 로그를 주기적으로 확인하고, 필요할 때마다 접근제한 정책을 업데이트해야 한다.</p><p>특히 /var/log/secure는 매일 한 번쯤 들여다보면 좋다.</p><p>“누가, 언제, 어디서 접근하려 했는가”를 아는 게 보안의 시작이다.</p><p></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 작업로그]]></category>
<title><![CDATA[ [파킹마스타] 주자장의 점포별로 최대 할인 시간 부여 요청]]></title>
<link>https://www.dut.kr/job/697</link>
<guid>https://www.dut.kr/job/697</guid>
<pubDate>Fri, 07 Nov 2025 17:54:56 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1762505270-2827.png"></p><p><br></p> <blockquote class="blockquote">기존 최대 5시간 공통 제한으로 다른 구역 중복 등록이 막히는 문제 발생<br>구역 별 개별 제한 시간 적용으로 개선 필요</blockquote><p>현재 문제 :</p><p>예전에 최대 5시간까지만 등록 가능이라는 공통 제한을 두면서,&nbsp;</p><p>한 이용자가 뽀로로파크(5시간) 등록 후 다른 구역(곤충관, 닥터아이 등)도 추가 등록하려고 하면 막혀버리는 문제가 생김.</p><p><br></p><p>개선 제안 :</p><p>전체 최대 시간 개념을 없애고, 각 구역별로 독립된 시간 제한을 두자.</p><p><br></p><p>뽀로로파크 → 5시간 / 곤충관 → 3시간 / 닥터아이 → 6시간</p><p><br></p><p>즉, 이전에 어디서 등록했는지 따지지 말고, 아이디별·존(zone)별로 개별 제한시간만 적용하자는 뜻</p><p><br></p><hr><p><br></p><blockquote class="blockquote">고려 사항</blockquote><p>이전에 최대 할인 값을 활용하기 위해 총 14시간으로 설정 한다.</p><p>모든 현장에 부여되는 기능이 아니므로 설정 기능이 필요하다.</p><p>점포주에서는 개별 최대 할인 시간 부여가 필요하다.</p><p>기존 로직에서 특적 현장만 적용되는 루틴을 부여하여 테스트 후 적용한다.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 개발노트]]></category>
<title><![CDATA[ RAM 2GB급 MariaDB 서버 안정화 튜닝 가이드]]></title>
<link>https://www.dut.kr/dev/696/mariadb-inno</link>
<guid>https://www.dut.kr/dev/696/mariadb-inno</guid>
<pubDate>Fri, 07 Nov 2025 13:07:44 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1762488122-1398.png"><br></p><p><br></p><p>OS Rocky Linux 9 계열이며 RAM 약 1.7GB, Swap 4GB DB 전용 서버를 이용하고 있습니다.</p><p>개발 서버 용도로는 해당 사양이면 크게 문제가 되지 않습니다.</p><p><br></p><p><b>설정 최적화의 목표는? </b></p><p>메모리 초과와 스왑 남용 방지와 전원 장애 등 비정상 종료에도 데이터 무결성 유지, 낮은 CPU 부하에서 안정적 TPS 확보, 운영 중 모니터링과 원인 분석이 쉬운 상태 유지를 위해서 입니다. 먼저 설정 파일을 먼저 보여 드리겠습니다.</p><pre>[mysqld] # 기본 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mariadb/mariadb.log pid-file=/run/mariadb/mariadb.pid # 스토리지/디스크 default-storage-engine = InnoDB innodb_file_per_table = 1 innodb_flush_method = O_DIRECT innodb_flush_neighbors = 0 innodb_doublewrite = 1 # 메모리 / 캐시 innodb_buffer_pool_size = 768M innodb_buffer_pool_instances = 1 innodb_log_file_size = 128M innodb_log_buffer_size = 16M innodb_flush_log_at_trx_commit = 2 tmp_table_size = 64M max_heap_table_size = 64M # 커넥션 / 스레드 max_connections = 80 thread_cache_size = 32 table_open_cache = 512 open_files_limit = 65535 skip-name-resolve # Per-connection 버퍼 sort_buffer_size = 2M read_buffer_size = 1M read_rnd_buffer_size = 2M join_buffer_size = 2M # 쿼리 캐시 비활 query_cache_type = 0 query_cache_size = 0 # 느린 쿼리 로그 slow_query_log = 1 slow_query_log_file = /var/log/mariadb/slow.log long_query_time = 2 # 트랜잭션/인덱스 transaction_isolation = READ-COMMITTED innodb_adaptive_hash_index = 0 # 문자셋 character-set-server = utf8mb4 collation-server = utf8mb4_general_ci skip-character-set-client-handshake # 메모리 절약 performance_schema = OFF </pre><div><br></div><p><br></p><blockquote class="blockquote">왜 이렇게 설정했는가</blockquote><p><br></p><p><b>스토리지와 무결성</b></p><p>- innodb_file_per_table</p><p style="margin-left: 25px;">테이블 단위로 파일을 분리해 공간 회수와 백업 관리가 쉬워진다.</p><p>- innodb_flush_method O_DIRECT</p><p style="margin-left: 25px;">OS 페이지 캐시 중복을 줄여 예측 가능한 I O를 확보한다.</p><p>- innodb_flush_neighbors 0</p><p style="margin-left: 25px;">SSD 가정, 인접 페이지 동기화 비활로 불필요한 쓰기를 줄인다.</p><p>- innodb_doublewrite 1</p><p style="margin-left: 25px;">전원 장애나 커널 패닉 시 데이터 손상 확률을 크게 낮춘다. 작은 서버일수록 필수에 가깝다.</p><p><br></p><p><b>메모리 예산과 캐시</b></p><p>- innodb_buffer_pool_size 768M</p><p style="margin-left: 25px;">전체 RAM 대비 약 45%로 설정. 데이터셋이 커도 OOM을 방지하는 보수적 값이다.</p><p>- innodb_buffer_pool_instances 1</p><p style="margin-left: 25px;">버퍼풀이 1GB 미만이면 1개가 잠금 경합과 내부 단편화를 줄인다.</p><p>- innodb_log_file_size 128M, log_buffer_size 16M</p><p style="margin-left: 25px;">잦은 체크포인트로 쓰기 폭주를 피하면서 장애 복구 시간도 과하게 늘리지 않는다.</p><p>- innodb_flush_log_at_trx_commit 2</p><p style="margin-left: 25px;">성능과 안전성의 절충. 최악의 경우 최근 1초 이내 트랜잭션 손실을 감수하는 대신 TPS가 안정된다.</p><p>- tmp_table_size, max_heap_table_size 64M</p><p style="margin-left: 25px;">큰 임시 테이블이 디스크로 떨어지는 것을 완화하면서도 메모리 폭주를 막는다.</p><p><br></p><p><b>연결 수와 per-connection 버퍼</b></p><p>- max_connections 80</p><p style="margin-left: 25px;">per-connection 버퍼 누적으로 인한 메모리 폭탄을 방지. 실제 동접이 낮다면 더 낮춰도 좋다.</p><p>- sort, join, read, read_rnd 버퍼를 1~2M로 축소</p><p style="margin-left: 25px;">각 연결마다 필요 시 할당되므로 합계가 중요하다. 보수적으로 잡아 폭주에 대비한다.</p><p>- thread_cache_size 32</p><p style="margin-left: 25px;">스레드 재사용으로 연결 빈도가 높아도 CPU 낭비를 줄인다.</p><p>- skip-name-resolve</p><p style="margin-left: 25px;">DNS 역조회 제거. 연결 지연 원인을 근본 차단한다.</p><p><br></p><p><b>분석과 유지보수</b></p><p>- query cache 비활성</p><p style="margin-left: 25px;">InnoDB에서는 효과가 낮고 경합을 유발한다.</p><p>- slow query log, long_query_time 2s</p><p style="margin-left: 25px;">문제 쿼리를 파일로 남겨 원인 파악 시간을 줄인다.</p><p>- performance_schema OFF</p><p style="margin-left: 25px;">아주 작은 서버에서 수십 MB 이상을 아낀다. 상세 계측이 필요할 때만 켠다.</p><p><br></p><p><b>문자셋</b></p><p>- utf8mb4, utf8mb4_general_ci</p><p style="margin-left: 25px;">4바이트 문자를 안전하게 처리. 정렬은 일반적 한국어 서비스에 충분한 general_ci로 선택.</p><p><br></p><p><b>대략적인 메모리 예산</b></p><p>- InnoDB 버퍼풀 768M</p><p style="margin-left: 25px;">InnoDB 기타 구조와 로그 수십 MB</p><p>- OS 캐시와 데몬 수백 MB</p><p>- per-connection 버퍼</p><p style="margin-left: 25px;">최악 가정치 7M 내외 × 동시 N</p><p style="margin-left: 25px;">동접 40이면 약 280M 수준</p><p>- 총합이 1.7GB 내에서 안전하게 움직이도록 구성</p><p><br></p><p><b>적용 절차</b></p><p>변경 후 일반 재 시작으로 충분하다.</p><p>단, innodb_log_file_size 값을 바꿨다면 한 번은 정지 후 기존 로그 파일을 지우고 시작한다.</p><p>실제 워크로드에서 동접이 급등하면 일시적으로 스왑이 일부 사용될 수 있으나, 버퍼 크기를 보수적으로 잡아 OOM 위험을 낮췄다.</p><pre>systemctl stop mariadb rm -f /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile1 systemctl start mariadb </pre><div><br></div><p><br></p><p><b>사후 점검 체크리스트</b></p><p>현재 값과 상태를 확인한다.</p><pre>SHOW VARIABLES WHERE Variable_name IN ( 'innodb_buffer_pool_size','innodb_log_file_size', 'max_connections','tmp_table_size','max_heap_table_size', 'sort_buffer_size','join_buffer_size', 'read_buffer_size','read_rnd_buffer_size', 'innodb_flush_log_at_trx_commit','innodb_doublewrite' ); SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool%'; SHOW GLOBAL STATUS LIKE 'Threads_connected'; SHOW GLOBAL STATUS LIKE 'Created_tmp_disk_tables'; </pre><div><br></div><p><b>권장 관찰 포인트</b></p><p>- 버퍼풀 히트율</p><p>- Created tmp disk tables가 과도하게 늘어나는지</p><p>- 스왑 사용량이 지속적으로 증가하는지</p><p>- 슬로우 로그에 반복적으로 등장하는 쿼리</p><p><br></p><p><b>운영 팁</b></p><p>- 동접이 낮으면 max_connections을 더 낮춰 메모리 여유를 확보</p><p>- 특정 시간대에만 느리면 인덱스 점검과 쿼리 리라이트 우선</p><p>- 백업 스케줄과 ANALYZE TABLE, OPTIMIZE TABLE은 피크 시간대를 피한다</p><p><br></p><p><b>롤백과 안전장치</b></p><p>- 성능 문제 발생 시 per-connection 버퍼를 한 단계 더 낮춘다</p><p>- 데이터 손상 조짐 또는 비정상 종료가 잦다면 innodb_flush_log_at_trx_commit 1로 상향</p><p>- performance_schema는 분석 시에만 일시적으로 켠다</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 작업로그]]></category>
<title><![CDATA[ [파킹마스타] 특정 점포주 할인권 사용표시 안함]]></title>
<link>https://www.dut.kr/job/695</link>
<guid>https://www.dut.kr/job/695</guid>
<pubDate>Wed, 05 Nov 2025 10:57:00 +0900</pubDate>
<description><![CDATA[ <p>현장별로 기본적으로 설정되어 있는 할인 시간별 금액이 표시되게 되어 있습니다.</p><p>해당 점포주의 경우 할인 : 2시간 - 최초 1회 무료 주차 부분만 사용하고 아래 할인은 사용하지 않고자 합니다.</p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1762307610-7425.png"><br></p><p><br></p><p>점포주별로 할인 유형을 사용할 수 있지만 표시하지 않는 기능은 없어 아래와 같이 할인 유형 사용 안함 기능을 추가하였습니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1762307630-5935.png"><br></p><p><br></p><p>설정 후에는 아래와 같이 할인 유형이 표시되지 않습니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1762307649-2541.png"><br></p><p><br></p><p>관리자 점포주 관리에서 해당 설정을 목록에서 확인하지 못하면 개별적으로 들어가서 봐야 하는 불편한 점이 있습니다.</p><p>아래와 같이 업체명/ID 목록 항목에 "할인유형 사용안함"으로 표시된 점포주는 해당 기능이 사용되고 있습니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1762307673-6051.png"><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 다이어리]]></category>
<title><![CDATA[ 멈춤의 미학 : 오늘은 그냥 쉬어간다]]></title>
<link>https://www.dut.kr/diary/694</link>
<guid>https://www.dut.kr/diary/694</guid>
<pubDate>Tue, 04 Nov 2025 19:37:18 +0900</pubDate>
<description><![CDATA[ <p>요즘 잠이 조금씩 안정되고 있다.</p><p>새벽에 한 번쯤 깨더라도 다시 잠들 수 있어서 마음이 한결 편하다.</p><p>그동안 이어졌던 피로가 조금씩 가라앉는 느낌이다.</p><p><br></p><p>다만 낮에는 여전히 졸림이 찾아온다.</p><p>그래도 컨디션이 전보다 나아지니 마음도 가벼워졌다.</p><p><br></p><p>일을 하다 보면 빨리 끝내고 쉬고 싶다는 생각에 가끔 스스로를 몰아붙일 때가 있다.</p><p>조금 느리게 가도 괜찮다는 걸 잊지 말아야겠다.</p><p><br></p><p>오늘은 그렇게, 한 템포 느리게 숨을 고르며 지나간 하루였다.</p><p><br></p><p><img src="https://www.dut.kr/thumb/water/story/2025/1762254142-5707.png"><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 작업로그]]></category>
<title><![CDATA[ 한국보육코칭협회 메뉴얼]]></title>
<link>https://www.dut.kr/job/693</link>
<guid>https://www.dut.kr/job/693</guid>
<pubDate>Fri, 19 Sep 2025 11:18:37 +0900</pubDate>
<description><![CDATA[ <p>임시 홈페이지 접속 정보와 아이디 비밀번호는 이메일로 안내 해 드리고 있습니다.</p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1758249344-2849.png"></p><p><br></p><p>1. 로그인</p><p>화면 상단 우측의 전원 버튼 아이콘을 클릭 합니다.</p><p>안내 해 드린 정보로 로그인 합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1758247699-9701.png"></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1758247735-7657.png"></p><p><br></p><p>2. 로그인 후 관리자 접속</p><p>로그인을 하면 상단 우측에 사람 이이콘을 누르면 팝업 표시되고 관리자 버튼을 누릅니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1758247810-1750.png"><br></p><p><br></p><p>3. 관리자 화면 설명</p><p>관리자 홈에는 회원 가입 현황 및 신규 게시물에 대한 설명을 확인할 수 있습니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1758247879-9350.png"></p><p><br></p><p>3.1 관리자메인 &gt; 환경설정 &gt; 팝업레이어 관리</p><p>홈페이지 팝업을 띄울 때 사용하는 기능으로 내용을 준비 해 주시면 등록하여 사용 방법 안내 해 드리겠습니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1758247973-2592.png"></p><p><br></p><p>3.2 회원 관리</p><p>회원 정보를 등록하거나 비밀번호 변경 권한 설정 등을 관리 할 수 있습니다.</p><p>부운영자를 두어서 레벨 0~10까지 게시판 등록이나 접근 권한 설정이 가능합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1758248035-9940.png"></p><p><br></p><p>3.3 관리자 메인 &gt; 게시판관리 &gt; 게시판 관리</p><p>게시판의 글을 관리하거나 다양한 옵션 지정이 가능합니다.&nbsp;</p><p>기본적으로 글쓰기와 바로가기 버튼을 이용하여 해당 게시물로 이동하여 글을 관리할 수 있습니다.</p><p>※ 관리자 접속을 하지 않고도 로그인 후에 홈페이지 내에서도 관리 가능합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1758249060-7172.png"></p><p><br></p><p>3.4 기타 기능</p><p>1:1문의 / FAQ관리는 사용 여부를 알려주시면 숨김 / 활성화 가능합니다.</p><p><br></p><p>3.5 내용 관리</p><p>홈페이지 내용을 직접 수정할 수 있는 기능을 제공하고 있습니다.</p><p>디자인이 많이 포함되어 있는 페이지는 직접 작업이 어렵지만 텍스트와 이미지 조합의 내용을 직접 운영 관리 가능합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1758249164-8819.png"></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1758249205-1312.png"></p><p><br></p><p>기존 게시물에 수정을 눌러보시면 글을 어떻게 등록하였는지 확인 가능합니다.</p><p>신규 글을 작성할 때에도 이전 등록된 글을 참고하여 작성하시면 됩니다.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 개발노트]]></category>
<title><![CDATA[ [리눅스] 서버 용량 확인 및 오래된 커널 쉬운 삭제 방법]]></title>
<link>https://www.dut.kr/dev/692</link>
<guid>https://www.dut.kr/dev/692</guid>
<pubDate>Mon, 01 Sep 2025 10:14:45 +0900</pubDate>
<description><![CDATA[ <p></p><p>서버를 운영하면서 용량 확인을 않지 않는 경우 파일이 수정되지 않는 경험을 하게 됩니다.</p><p>미리 용량을 확인하여 문제가 발생하기 전에 용량을 추가하거나 불필요한 데이터를 삭제하는 게 필요합니다.</p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1756688951-7746.png"></p><p><br></p><p>df 명령어를 이용하면 쉽게 용량 파악이 가능합니다.</p><pre># df Filesystem 1K-blocks Used Available Use% Mounted on devtmpfs 4096 0 4096 0% /dev tmpfs 908456 0 908456 0% /dev/shm tmpfs 363384 38376 325008 11% /run /dev/vda5 51230700 4235504 46995196 9% / /dev/vda2 958464 425216 533248 45% /boot /dev/vda1 101148 7174 93974 8% /boot/efi tmpfs 181688 0 181688 0% /run/user/0</pre><p><br></p><p>더 쉽게 정리하면 아래와 같습니다.</p><table> <thead> <tr> <th>마운트 위치</th> <th>디스크</th> <th>전체 용량</th> <th>사용 중</th> <th>남은 용량</th> <th>사용률</th> </tr> </thead> <tbody> <tr> <td><code inline="">/</code> (루트)</td> <td><code inline="">/dev/vda5</code></td> <td>약 <strong>51GB</strong></td> <td>약 <strong>4.2GB</strong></td> <td>약 <strong>47GB</strong></td> <td><strong>9%</strong></td> </tr> <tr> <td><code inline="">/boot</code></td> <td><code inline="">/dev/vda2</code></td> <td>약 <strong>937MB</strong></td> <td>약 <strong>415MB</strong></td> <td>약 <strong>521MB</strong></td> <td><strong>45%</strong></td> </tr> <tr> <td><code inline="">/boot/efi</code></td> <td><code inline="">/dev/vda1</code></td> <td>약 <strong>98MB</strong></td> <td>약 <strong>7MB</strong></td> <td>약 <strong>92MB</strong></td> <td><strong>8%</strong></td> </tr> </tbody></table><p></p><p><br></p><p><br></p><blockquote class="blockquote">용량 분석 하기</blockquote><p><br></p><p>루트(/) 디스크</p><ul><li>51GB 중 9%만 사용 → 매우 여유 있음.</li><li>로그 쌓여도 당분간 문제 없음.</li></ul><p><br></p><p>/boot</p><ul><li>45% 사용 → 리눅스 커널 업데이트 여러 번 하면 가득 찰 수 있음.</li><li>오래된 커널 삭제 가능.</li></ul><p><br></p><p>/boot/efi</p><ul><li>거의 사용 안 함. (UEFI 부팅에 필요한 공간)</li></ul><p><br></p><p>결론으로 디스크 용량은 아주 여유롭지만 /boot 만 가끔 정리해주면 되겠네요.</p><p><br></p><p><br></p><blockquote class="blockquote">오래된 커널 삭제 방법</blockquote><p>/boot는 커널 이미지랑 initramfs 같은 부팅 파일이 저장되는 공간으로, 리눅스 업데이트할 때 새 커널이 쌓이고 옛날 커널이 안 지워지기 때문에 용량이 증가할 수 있다.</p><p><br></p><pre># 현재 사용 중인 커널 확인 uname -r # 설치된 커널 패키지 확인 (예: Debian/Ubuntu) dpkg --list | grep linux-image # 오래된 커널 제거 sudo apt-get remove --purge linux-image-&lt;버전&gt;※</pre><p>※ 해당 방법으로는 버전 확인이 필요하므로 아래에 최신 커널 제외하고 삭제하는 방법을 이용합니다.</p><p><br></p><p>설치된 커널 확인</p><pre># rpm -qa | grep kernel kernel-srpm-macros-1.0-13.el9.noarch kernel-core-5.14.0-503.15.1.el9_5.x86_64 kernel-modules-core-5.14.0-503.15.1.el9_5.x86_64 kernel-modules-5.14.0-503.15.1.el9_5.x86_64 kernel-5.14.0-503.15.1.el9_5.x86_64 kernel-devel-5.14.0-503.15.1.el9_5.x86_64 kernel-core-5.14.0-503.31.1.el9_5.x86_64 kernel-modules-core-5.14.0-503.31.1.el9_5.x86_64 kernel-modules-5.14.0-503.31.1.el9_5.x86_64 kernel-devel-5.14.0-503.31.1.el9_5.x86_64 kernel-5.14.0-503.31.1.el9_5.x86_64 kernel-headers-5.14.0-503.40.1.el9_5.x86_64 kernel-core-5.14.0-503.40.1.el9_5.x86_64 kernel-modules-core-5.14.0-503.40.1.el9_5.x86_64 kernel-modules-5.14.0-503.40.1.el9_5.x86_64 kernel-tools-libs-5.14.0-503.40.1.el9_5.x86_64 kernel-tools-5.14.0-503.40.1.el9_5.x86_64 kernel-5.14.0-503.40.1.el9_5.x86_64 kernel-devel-5.14.0-503.40.1.el9_5.x86_64 </pre><div><br></div><div>최신 커널 1개만 남기고 나머지 자동 삭제</div><p><br></p><pre>sudo dnf remove $(dnf repoquery --installonly --latest-limit=-1 -q)</pre><p>※ 1줄로 쉽고 간단하게 현재 사용하는 커널을 제외하고 오래된 커널을 삭제할 수 있습니다.</p><p><br></p><p>삭제 여부 확인</p><pre># sudo dnf remove $(dnf repoquery --installonly --latest-limit=-1 -q)<br>Dependencies resolved.<br>================================================================================<br>&nbsp;Package&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Arch&nbsp; &nbsp; &nbsp; Version&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Repository&nbsp; &nbsp; &nbsp;Size<br>================================================================================<br>Removing:<br>&nbsp;kernel&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;x86_64&nbsp; &nbsp; 5.14.0-503.15.1.el9_5&nbsp; &nbsp; &nbsp;@baseos&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0<br>&nbsp;kernel&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;x86_64&nbsp; &nbsp; 5.14.0-503.31.1.el9_5&nbsp; &nbsp; &nbsp;@baseos&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0<br>&nbsp;kernel-core&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; x86_64&nbsp; &nbsp; 5.14.0-503.15.1.el9_5&nbsp; &nbsp; &nbsp;@baseos&nbsp; &nbsp; &nbsp; &nbsp; 66 M<br>&nbsp;kernel-core&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; x86_64&nbsp; &nbsp; 5.14.0-503.31.1.el9_5&nbsp; &nbsp; &nbsp;@baseos&nbsp; &nbsp; &nbsp; &nbsp; 66 M<br>&nbsp;kernel-devel&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;x86_64&nbsp; &nbsp; 5.14.0-503.15.1.el9_5&nbsp; &nbsp; &nbsp;@appstream&nbsp; &nbsp; &nbsp;68 M<br>&nbsp;kernel-devel&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;x86_64&nbsp; &nbsp; 5.14.0-503.31.1.el9_5&nbsp; &nbsp; &nbsp;@appstream&nbsp; &nbsp; &nbsp;68 M<br>&nbsp;kernel-modules&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;x86_64&nbsp; &nbsp; 5.14.0-503.15.1.el9_5&nbsp; &nbsp; &nbsp;@baseos&nbsp; &nbsp; &nbsp; &nbsp; 34 M<br>&nbsp;kernel-modules&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;x86_64&nbsp; &nbsp; 5.14.0-503.31.1.el9_5&nbsp; &nbsp; &nbsp;@baseos&nbsp; &nbsp; &nbsp; &nbsp; 34 M<br>&nbsp;kernel-modules-core&nbsp; &nbsp; x86_64&nbsp; &nbsp; 5.14.0-503.15.1.el9_5&nbsp; &nbsp; &nbsp;@baseos&nbsp; &nbsp; &nbsp; &nbsp; 27 M<br>&nbsp;kernel-modules-core&nbsp; &nbsp; x86_64&nbsp; &nbsp; 5.14.0-503.31.1.el9_5&nbsp; &nbsp; &nbsp;@baseos&nbsp; &nbsp; &nbsp; &nbsp; 27 M<br>Transaction Summary<br>================================================================================<br>Remove&nbsp; 10 Packages<br>Freed space: 389 M<br>Is this ok [y/N]:</pre><div><br></div><p><br></p><p>최종 용량 확인</p><ul><li>삭제 전 /boot 사용률: 45%</li><li>삭제 후 /boot 사용률: 19% → 꽤 넉넉해짐</li><li>루트(/)나 EFI 파티션 상태도 안정적임</li><li>이제 커널 업데이트/설치해도 /boot 공간 부족 걱정 거의 없음</li></ul><pre># df<br>Filesystem&nbsp; &nbsp; &nbsp;1K-blocks&nbsp; &nbsp; Used Available Use% Mounted on<br>devtmpfs&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 4096&nbsp; &nbsp; &nbsp; &nbsp;0&nbsp; &nbsp; &nbsp; 4096&nbsp; &nbsp;0% /dev<br>tmpfs&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;908456&nbsp; &nbsp; &nbsp; &nbsp;0&nbsp; &nbsp; 908456&nbsp; &nbsp;0% /dev/shm<br>tmpfs&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;363384&nbsp; &nbsp;38376&nbsp; &nbsp; 325008&nbsp; 11% /run<br>/dev/vda5&nbsp; &nbsp; &nbsp; &nbsp;51230700 4007696&nbsp; 47223004&nbsp; &nbsp;8% /<br>/dev/vda2&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;958464&nbsp; 175836&nbsp; &nbsp; 782628&nbsp; 19% /boot<br>/dev/vda1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;101148&nbsp; &nbsp; 7174&nbsp; &nbsp; &nbsp;93974&nbsp; &nbsp;8% /boot/efi<br>tmpfs&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;181688&nbsp; &nbsp; &nbsp; &nbsp;0&nbsp; &nbsp; 181688&nbsp; &nbsp;0% /run/user/0</pre><div><br></div>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 개발노트]]></category>
<title><![CDATA[ 부트스트랩5 인쇄 페이지 나누기 완벽 가이드 (CSS page-break)]]></title>
<link>https://www.dut.kr/dev/691</link>
<guid>https://www.dut.kr/dev/691</guid>
<pubDate>Tue, 26 Aug 2025 15:28:12 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1756189478-9892.png"></p><p><br></p><blockquote class="blockquote">페이지 나누기 클래스 추가하기</blockquote><p>가장 간단한 방법은 페이지 나누기를 위한 별도의 CSS 클래스를 만들어 사용하는 것입니다.</p><p><br></p><p>1. CSS 파일 생성 또는 기존 파일에 추가</p><p>가지고 있는 CSS 파일(예: styles.css)에 아래 코드를 추가합니다.</p><pre>@media print {<br>&nbsp; .page-break {<br>&nbsp; &nbsp; page-break-after: always;<br>&nbsp; &nbsp; break-after: page; /* 최신 브라우저 지원 */<br>&nbsp; }<br>}</pre><ul><li>@media print: 이 스타일이 인쇄할 때만 적용되도록 합니다. 화면에서는 보이지 않습니다.</li><li>.page-break: 페이지를 나누고 싶은 요소에 적용할 클래스 이름입니다.</li><li>page-break-after: always;: 이 클래스가 적용된 요소 다음에 항상 페이지가 나뉩니다.</li><li>break-after: page;: page-break-after의 최신 표준 속성으로, 호환성을 위해 함께 사용하는 것이 좋습니다.</li></ul><p><br></p><p>2.&nbsp;HTML에 클래스 적용</p><p>페이지를 나누고 싶은 위치의 HTML 요소에 page-break 클래스를 추가합니다.</p><p>아래 예시에서는 각 div 섹션이 인쇄 시 별도의 페이지에 인쇄됩니다.</p><pre>&lt;!DOCTYPE html&gt; &lt;html lang="ko"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;title&gt;인쇄 페이지 나누기 예제&lt;/title&gt; &lt;link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet"&gt; &lt;link rel="stylesheet" href="styles.css"&gt; &lt;/head&gt; &lt;body&gt; &lt;div class="container mt-5"&gt; &lt;section&gt; &lt;h1&gt;페이지 1&lt;/h1&gt; &lt;p&gt;이 내용은 첫 번째 페이지에 인쇄됩니다.&lt;/p&gt; &lt;/section&gt; &lt;div class="page-break"&gt;&lt;/div&gt; &lt;section&gt; &lt;h1&gt;페이지 2&lt;/h1&gt; &lt;p&gt;이 내용은 두 번째 페이지에 인쇄됩니다.&lt;/p&gt; &lt;/section&gt; &lt;div class="page-break"&gt;&lt;/div&gt; &lt;section&gt; &lt;h1&gt;페이지 3&lt;/h1&gt; &lt;p&gt;이 내용은 세 번째 페이지에 인쇄됩니다.&lt;/p&gt; &lt;/section&gt; &lt;/div&gt; &lt;/body&gt; &lt;/html&gt;</pre><p><br></p><p><br></p><blockquote class="blockquote">특정 요소마다 페이지 나누기</blockquote><p><br></p><p>만약 특정 태그나 클래스가 사용될 때마다 페이지를 나누고 싶다면 아래와 같이 CSS를 적용할 수 있습니다.</p><p>예를 들어, section 태그가 끝날 때마다 페이지를 나누고 싶다면</p><pre>@media print { section { page-break-after: always; break-after: page; } }</pre><p><br></p><p>이 방법을 사용하면 HTML을 수정할 필요 없이 CSS만으로 여러 페이지를 자동으로 나눌 수 있어 편리합니다.</p><p>Tip : page-break-before: always; 속성을 사용하면 해당 요소 이전에 페이지를 나눌 수도 있습니다. 필요에 따라 선택하여 사용하세요.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 내돈내산]]></category>
<title><![CDATA[ 독거미 AULA F108 Pro 유선, 무선 기계실 키보드 후기 및 단점]]></title>
<link>https://www.dut.kr/buylog/690</link>
<guid>https://www.dut.kr/buylog/690</guid>
<pubDate>Tue, 26 Aug 2025 09:25:48 +0900</pubDate>
<description><![CDATA[ <p>유튜브에서 AliExpress 할인 영상이 많이 보여 독거미라는 키보드가 보여 구입하게 되었네요.</p><p>가성비로 유명하다고 하는데 국내 정발 제품이 아니라서 그동안은 관심이 없었네요.</p><p>기계식 키보드 + LED + 무선 3모드(유선/2.4G/BT) 기능을 지원하고 로지텍과 같은 브랜드 대비 절반 이하의 가격이라는 장점이 있네요.</p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1756167601-1384.png"></p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1756167420-2201.png"></p><p><br></p><p>요란한 RGB와 게이밍 감성이 저와는 맞지 않지만 이번에 키감을 경험하고 싶어서 구입했네요.</p><p>액정 화면과 노브가 있는 모델도 있지만 1만원 더 비싸네요.</p><p>불륨 조절이나 작은 액정 꾸미는 것을 원한다면 다른 옵션으로 구입하세요.</p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1756167538-3955.png"></p><p style="text-align: center; ">&nbsp;&nbsp;<img class="border" src="https://www.dut.kr/thumb/water/story/2025/1756167543-7746.png"></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1756167552-8028.png">&nbsp;</p><p style="text-align: center; ">&nbsp;<img class="border" src="https://www.dut.kr/thumb/water/story/2025/1756167557-1270.png"></p><p><br></p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1756167582-3802.png"></p><p><br></p><blockquote class="blockquote">스위치 키감은?</blockquote><p>아주 적당한 키감과 조약돌 처럼 쪽득 쪽득한 키감이라 저가형에서 볼 수 없는 고급스러움을 느낄 수 있네요.</p><p>소음도 크지 않아서 시끄러운 키감을 싫어하는 저의 취향에 맞아요.</p><p>저가형 기계실 키보드도 써 보았지만 오타가 많이 나는 단점이 있어요.</p><p><br></p><blockquote class="blockquote">유명한 라인없은?</blockquote><p>F2088 / F2058 → 풀배열 무선 RGB 모델, 입문용으로 많이 팔림.</p><p>F108 PRO → 풀배열 + 3모드 + 가성비 갑 (이번에 구입한 제품)</p><p>F87 / F75 → 텐키리스 배열, 블루투스 + 무선 지원.</p><p>S2022 / S2021 → 요즘 나오는 커스텀 느낌 나는 저가형 키보드.</p><p><br></p><p>비싼 키보드 사기에는 그렇고 무선 RGB 입문으로 추천합니다.</p><p>키보드 기감은 보통이라고 하는데 더 좋은 제품들 체험 해봐도 저는 게임이 목적이 아니라서 큰 차이를 못 느끼겠네요.</p><p><br></p><p><br></p><blockquote class="blockquote">단점은?</blockquote><p><br></p><p>키보드에 한글 각인은 없으므로 한글 각인이 필요하면 맞지 않습니다. (정발 제품은 8만원대로 3만원 정도 더 비싸네요)</p><p>메뉴얼이 중국어라서 스마트폰 번역기를 이용해야 합니다. (국내 정발 상품 정보를 보거나 메뉴얼을 찾아서 참조 합니다)</p><p>직구 특성 초기 불량이 발생하면 교환이 번거로워요.</p><p>게이밍 키보드라서 RGB와 방향키 위에 LED가 정신없어 보일 수 있어요(FN + 우측 SHIFT로 끄고 있어요)</p><p>타이핑 할 때 안정감은 있지만 무거운 키보드를 이용하는 경우 맞지 않을 수 있어요. (1KG 넘어요)</p><p>무선 베터리 타임이 짧다는 말이 있는데 테스트는 해보지 않았습니다. (보조 배터리 연결하여 사용한다고 하네요) 스펙에 배터리 용량은 4000mAh 라고 써있지만 조명 때문에 더 짧을 수는 있겠네요.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 일상리뷰]]></category>
<title><![CDATA[ 두낫콜? 전화권유판매 수신거부의사 등록시스템 신청하기]]></title>
<link>https://www.dut.kr/daily/689</link>
<guid>https://www.dut.kr/daily/689</guid>
<pubDate>Thu, 21 Aug 2025 16:54:18 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755762596-6613.png"></p><p><br></p><p>집중하고 일을 하거나 주말에 쉬고 있을 때 갑자기 연락 오는 보험 전화 같은 가입 유도나 홍보 전화 때문에 화가 나는 경우가 있나요?</p><p>두낫콜이라는 사이트에서 전화번호를 등록하면 1차적인 차단이 가능합니다.</p><p><br></p><p>전화권유판매 수신거부의사 등록거부 시스템이라고 하며 확인해보니 두낫콜 사이트가 2개가 존재 하네요.</p><p>사업장 홍보와 금융마케팅 2가지 사이트가 있으니 둘 다 등록하도록 합니다.</p><p>인증 방법은 아래 화면 확인하면 쉽게 진행이 가능합니다.</p><p><br></p><p>사업장 홍보 전화 거부 :&nbsp;<a href="https://www.donotcall.go.kr/" target="_blank">https://www.donotcall.go.kr/</a></p><p>금융권 마케팅 연락 차단 :&nbsp;<a href="https://www.donotcall.or.kr/" target="_blank">https://www.donotcall.or.kr/</a></p><p><br></p><hr><p><br></p><blockquote class="blockquote">1. 전화권유판매 수신거부의상 등록 시스템</blockquote><p><a href="https://www.donotcall.go.kr/" target="_blank">https://www.donotcall.go.kr/</a></p><p><br></p><p>두낫콜 소개 &gt; 수신거부 등록 서비스 메뉴로진입합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755751771-9514.png"></p><p><br></p><p>수신거부 등록 화면에서 연령대 별로 해당 메뉴를 클릭 합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755751788-6740.png"></p><p><br></p><p>약관 동의와 함께 본인 인증 방법을 선택합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755751804-6833.png"></p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755751826-3959.png"></p><p><br></p><p>인증을 완료하면 아래와 같이 수신 거부 등록이 완료 됩니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755751865-5603.png"><br></p><p><br></p><p><br></p><p><br></p><blockquote class="blockquote">2. 금융권 마케팅 연락차단 두낫 콜 Do Not Call</blockquote><p><a href="https://www.donotcall.or.kr/" target="_blank">https://www.donotcall.or.kr/</a><a href="https://www.donotcall.or.kr/" target="_blank"></a></p><p>두낫콜 등록/철회 &gt; 두낫콜 등록 메뉴를 클릭 합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755762288-3269.png"></p><p><br></p><p>동의 항목을 모두 체크하고 아래 휴대폰 전화 인증을 클릭 합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755762344-3407.png"></p><p><br></p><p>인증이 완료되면 금융회사 업종별로 선택하여 차단이 가능합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755762405-8097.png"></p><p><br></p><p>하단버튼을 클릭하면 전체 업권 마케팅 연락 중지를 신청하시겠습니까? 라고 묻습니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755762416-8090.png"></p><p><br></p><p>두낫콜 등록 : 등록되었습니다. 라는 안내와 함께 알림톡이 도착합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755762453-2413.png"><br></p><p><br></p><p><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 작업로그]]></category>
<title><![CDATA[ [파킹마스타] 특정 현장에서 무료주차 남은시간을 재입차시 사용 가능 하도록]]></title>
<link>https://www.dut.kr/job/688</link>
<guid>https://www.dut.kr/job/688</guid>
<pubDate>Tue, 19 Aug 2025 11:07:20 +0900</pubDate>
<description><![CDATA[ <p>2025.08.20 점포주 최대 할인 가능 요청</p><p>- 점포주 최대 할인 현재 적용중 : 로그인시 해당 값 가져오게 되어&nbsp; 값을 변경하면 재 로그인 필요</p><p><br></p><p>- 할인유형 부분</p><p>&nbsp; 최대 8시간 -&gt; 현장 최대 할인시간</p><p>&nbsp; [할인선택] (점포주 최대 5시간)&nbsp; &nbsp;현장 최대와 점포주 최대 표시</p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755676973-5458.png">&nbsp;</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755676979-7749.png">&nbsp;</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755676984-1347.png"><br></p><p><br></p><p><br></p><p><br></p><p><br></p><hr><p><br></p><p>2025.08.19 특정 주차장 기능 요청</p><p><br></p><p>기능이 복잡해질 수 있어 최대&nbsp; 할인 쿠폰 형식으로 작업</p><p>- 현재는 1시간에서 5시간 할인 선택이 가능하다. (60,120,180,240,300)</p><p>- 주의 사항은 무조건 5시간을 할인해주면 안된다 시간에 맞게 할인을 해 줘야 한다.</p><p><br></p><blockquote class="blockquote">사용자 화면 안내</blockquote><p>할인 1시간 적용하고 계속 할인 가능하며 최대 3회만 가능합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755579234-6873.png"></p><p><br></p><p>이 때에 출차를 하고 재입차하면? 현재는 방문횟수 2회 "이미 할인받음 추가할인 불가 (5시간)" 이라고 표시된다.</p><p>재 입차 설정 사용을 체크하지 않으면 아래와 같이 표시됩니다. (꼭 체크하여 사용해야 합니다)</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755579312-9516.png"></p><p><br></p><p>아래와 같이 개선하여 남은 시간만 할인 선택 가능하다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755582606-1015.png"></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755582613-9806.png"><br></p><p><br></p><blockquote class="blockquote">관리자 화면 안내</blockquote><p><br></p><p>아래 설정에서 5시간 할인권 가능과 점포 할인 시간은 적절하게 조정합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755582837-3926.png"><br></p><p><br></p><p>아래 해당 현장에서 현재 무료 시간을 사용하지 않습니다.</p><p>왜냐하면? 무료 시간의 경우 시간 합계로 잡히지 않기 때문 입니다.</p><p><br></p><p>할인 제한을 12시간으로 지정하였고 재 입차 사용 5시간으로 지정하였습니다.&nbsp;</p><p>여기서 재 입차 시간은? 최대 할인 받을 수 있는 시간 입니다.</p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755582870-1119.png"></p><p><br></p><hr><p><br></p><p><br></p><blockquote class="blockquote">요구 사항 분석</blockquote><p>1. 주차 최대 할인 시간을 5시간으로 설정한다.</p><p>2. 최초 1회 주차 5시간을 사용 후에 2시간 뒤에 출차하면 재 입차시 남은 3시간을 사용할 수 있도록 한다. (무료 주차 5시간)</p><p>&nbsp; &nbsp; (최초 1회 무료 주차가 아닌 지정 시간 무료 주차라고 변경 해야 한다)</p><p>&nbsp; &nbsp; &nbsp;<img class="border" src="https://www.dut.krhttps://www.dut.kr/thumb/water/story/2025/1755568661-7005.png"></p><p>※ 최초 1회 무료 주차라는 기능을 변경해야 한다.</p><p><br></p><blockquote class="blockquote">예외 사항 분석</blockquote><p>1.&nbsp; 최대 할인권 가능 시간&nbsp; 조건이 있다. (무료 주차가 해당 시간 초과 불가)</p><p>2. 무료 주차 분 설정 기능의 조건이 있다.</p><p>3. 할인 제한 시간을 입력하면 해당 시간에서 재 입차 할인 사용이 가능하다.</p><p>4. 무료시간 지정으로 해당 시간에만 무료 쿠폰 사용이 가능하다.</p><p><br></p><blockquote class="blockquote">작업 방향</blockquote><p>1. 모든 현장에 적용되는 기능인가? 해당 현장만 사용하는 조건인지를 판단한다. (특정 현장 기능으로 예상)</p><p><br></p><p><b>현재 설정 내용</b></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755568593-2023.png"></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1755568614-4883.png"><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 머니톡톡]]></category>
<title><![CDATA[ 월급 줄 때 3.3% 떼셨죠? 진짜 마무리는 지방소득세 5분 만에 끝내기]]></title>
<link>https://www.dut.kr/money/686</link>
<guid>https://www.dut.kr/money/686</guid>
<pubDate>Mon, 11 Aug 2025 16:24:05 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754896864-4810.png"><br></p><p><br></p><p>홈택스에서 원천세(소득세) 신고와 납부를 마치고 "드디어 끝났다!"라고 안도의 한숨을 내쉬고 계신가요? 아직 한 단계가 더 남았습니다. 바로 원천세의 영혼의 단짝, 지방소득세 특별징수 납부입니다.</p><p>이름은 어렵지만 전혀 겁먹을 필요 없습니다.</p><p><br></p><p><b>1. 지방소득세, 도대체 뭔가요?</b></p><p>우리가 내는 세금은 크게 나라에 내는 국세와, 우리가 사는 지역(시/군/구청)에 내는 지방세로 나뉩니다.</p><p>국세 (소득세): 국가 운영을 위해 국세청(홈택스)에 납부하는 세금</p><p>지방세 (지방소득세): 우리 동네 도로, 복지, 행정 서비스를 위해 완주군(위택스)에 납부하는 세금</p><p>즉, 우리가 원천징수한 세금은 "국가에 90%, 지방자치단체에 10%" 이렇게 나누어서 내야 하는 것입니다. 홈택스에 낸 소득세(3%)가 90%에 해당하고, 지금 우리가 내려는 지방 소득세(0.3%)가 나머지 10%에 해당하는 몫입니다.</p><p><br></p><p><b>2. 왜 특별징수라고 부르나요?</b></p><p>특별징수는 원천징수의 지방세 버전 이름이라고 생각하시면 가장 쉽습니다. 국세청에서는 원천 징수라고 부르고, 지방자치단체에서는 특별 징수라고 부를 뿐, "소득을 지급하는 자가 세금을 미리 떼어 대신 내준다"는 개념은 완전히 동일합니다.</p><p><br></p><p><b>3. 어떻게 납부하나요? (핵심 요약)</b></p><p>지방소득세는 위택스 <a href="https://www.wetax.go.kr/" target="_blank">https://www.wetax.go.kr/</a>&nbsp;에서 처리합니다.</p><p>위택스 로그인: 사업장(또는 단체) 명의로 로그인합니다.</p><p>메뉴 이동: [신고하기] → [지방소득세] → [특별징수]로 이동합니다.</p><p>홈택스 정보 불러오기: 이 기능이 핵심입니다. [홈택스 신고정보 가져오기] 버튼을 누르면, 조금 전 홈택스에 신고한 총 지급액과 소득세 데이터가 자동으로 나타납니다.</p><p>자동 계산 확인: 홈택스 소득세의 10% 금액이 '납부할 지방소득세'로 자동 계산됩니다. (예시 소득세 54,000원 → 지방소득세 5,400원)</p><p>제출 및 납부: 내용 확인 후 제출하고, 즉시 납부하면 모든 절차가 끝납니다.</p><p><br></p><p>지방소득세 특별징수는 홈택스 신고의 연장선입니다. 홈택스에서 신고를 잘 마쳤다면, 위택스에서는 그 내용을 불러와 확인하고 버튼 몇 번만 누르면 끝나는 간단한 과정입니다.</p><p>이제부터 원천세 업무를 하실 때는 홈택스 신고 후, 위택스 납부는 필수 세트*라고 꼭 기억해주세요. 이 두 가지만 완료하면, 대표님은 세금과 관련된 모든 의무를 완벽하게 이행하신 것입니다.</p><p><br></p><p><br></p><hr><p><br></p><p>신고 기간에는 아래와 같이 간소화 페이지가 표시되므로 특별징수 신고·납부 바로가기를 이용합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754892410-9653.png"></p><p><br></p><p>아파트 비영리 단체의 경우에는 가입이 불가능한 경우가 있습니다.</p><p>정부 민원 안내 콜센터 110번으로 연락하면 지역에 맞는 세무서 연락처와 연결을 해 줍니다.</p><p>여기에서 사업자 등록번호와 대표자 확인을 하고나면 등록을 해주며 이 후로 가입이 가능합니다.</p><p><br></p><p>위택스 &gt; 신고 &gt; 지방소득세 &gt; 특별징수 메뉴를 클릭합니다.</p><p><a href="https://www.wetax.go.kr/etr/lit/b0701/B070101M00.do" target="_blank">https://www.wetax.go.kr/etr/lit/b0701/B070101M00.do</a></p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754893700-6597.png"></p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754893916-9919.png"></p><p><br></p><p>한 건 신고를 누릅니다.</p><p>https://www.wetax.go.kr/etr/lit/b0701/B070101M01.do</p><p><br></p><p>아래에서 과세 표준을 입력하고 특별 징수액에는 0.3% 금액을 입력합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754894401-5643.png"></p><p><br></p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754894804-9013.png"><br></p><p><br></p><p>처음으로 신고하다 보니 선택 사항이 많아서 어렵게 생각되어 졌지만 한번 해보니 이해가 되네요.</p><p>자동 불러오기가 되지 않는 걸 보니 단체 아이디가 아닌 법인 가입이 맞는지 확인을 해봐야 할 것 같네요.</p><p>불러오기가 되지 않아 수동으로 입력하여 제출하였습니다.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 머니톡톡]]></category>
<title><![CDATA[ 원천징수세는 왜 내야하는가? 신고 및 납부 방법 안내 : 월급 그냥 주면 큰일나요]]></title>
<link>https://www.dut.kr/money/685</link>
<guid>https://www.dut.kr/money/685</guid>
<pubDate>Mon, 11 Aug 2025 15:07:05 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754892244-4048.png"><b><br></b></p><p><b><br></b></p><p><b>원천징수세는 왜 내야 하는가?</b></p><p>월급이나 인건비를 주는 쪽이, 돈을 받는 사람이 내야 할 세금의 일부를 미리 떼어서 국가에 대신 내주는 제도입니다.</p><p><br></p><p><b>이렇게 하는 이유는 크게 두 가지입니다.</b></p><p><br></p><p>1. 국가 입장: 세금을 미리, 안정적으로 걷기 위해서 만약 모든 사람이 1년치 세금을 다음 해 5월에 한꺼번에 낸다면, 국가 입장에서는 세금이 1년 내내 안 들어오다가 한 번에 들어오게 됩니다. 또, 개인이 큰 금액의 세금을 한 번에 내지 못하는 경우도 생길 수 있습니다.</p><p>그래서 소득이 발생할 때마다 지급하는 쪽에서 조금씩 떼어서 미리 내주면, 국가는 1년 내내 안정적으로 세금을 걷을 수 있고, 세금을 못 받을 위험도 줄어듭니다.</p><p><br></p><p>2. 돈을 받는 사람 입장: 나중에 낼 세금 부담을 덜기 위해서</p><p>만약 매달 100만원씩 받고 세금을 한 번도 안 떼었다가, 다음 해 5월에 종합소득세로 몇백만 원을 한꺼번에 내라고 하면 굉장히 부담스럽습니다.</p><p>하지만 매달 3.3%씩 미리 떼어서 낸 것은, 내가 내야 할 최종 세금의 **'중간 정산' 또는 '선납'**과 같습니다. 덕분에 다음 해 5월에는 이미 낸 세금을 제외한 차액만 내거나 오히려 환급을 받을 수도 있어 부담이 훨씬 줄어듭니다.</p><p><br></p><p>결론적으로 원천세는, 국가의 편리한 세금 징수와 개인의 세금 부담 분산이라는 두 가지 목적을 위해, 소득을 지급하는 자에게 '대신 걷어서 내라'고 법으로 부여한 의무라고 할 수 있습니다.</p><p><br></p><p><br></p><blockquote class="blockquote">소득세 납부</blockquote><p>국세청 홈텍스 홈페이지 https://hometax.go.kr/&nbsp; 접속 합니다.&nbsp;</p><p>세금신고 &gt; 신고서 조회/삭제/부속서류 &gt; 원천세 신고 메뉴를 클릭 합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754890398-5407.png"></p><p><br></p><p>정기 신고를 클릭합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754890651-7221.png"></p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754890789-3769.png"></p><p><br></p><p>여기에서는 사업소득으로 선택합니다.</p><p>4대 보험에 가입하고 매일 정해진 시간에 출퇴근하는 직원(고용관계)이 아니기 때문입니다.</p><p>사업소득인 이유?</p><p>독립된 자격으로 계속적, 반복적으로 특정 용역(업무)을 제공하고 그 대가를 받는 것이기 때문입니다.&nbsp; 총무, 소방 관리, 시설 보수 등은 모두 여기에 해당합니다.</p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754890931-7844.png"></p><p><br></p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754891134-3856.png"></p><p><br></p><blockquote class="blockquote">입력 항목 안내</blockquote><p><br></p><p>1. 사업소득 (코드 A25) 줄 : 하나만 정확히 입력하도록 합니다.</p><p>(4)인원수: 총무, 소방, 보수 등 8월에 돈을 지급받은 사람의 총 인원수를 적습니다. (예: 대표님 포함 총 3명에게 지급했다면 숫자 '3'을 입력)</p><p>(5)총지급액: 세금을 떼기 전 지급한 총액 합계인 1,800,000을 입력합니다.</p><p>(6)소득세 등: 원천징수한 소득세의 합계인 54,000을 입력합니다.</p><p>(7)농어촌특별세, (8)가산세 등 나머지 칸은 해당 사항이 없으므로 모두 비워두시면 됩니다.</p><p><br></p><p>2. 총 합계 (코드 A99) 줄</p><p>위의 사업소득란에 입력하면, 이 부분은 자동으로 계산되어 채워집니다.</p><p>합계 금액이 총지급액 1,800,000원, 소득세등 54,000원으로 맞게 표시되는지 확인만 하시면 됩니다.</p><p><br></p><p>3. 환급세액 조정 (화면 아래쪽 전체)</p><p>이번 달은 세금을 환급받는 것이 아니라 납부하는 달이므로, 이 부분은 전부 0원인 상태로 그대로 두시면 됩니다. 아무것도 입력하실 필요 없습니다.</p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754891322-5566.png"></p><p><br></p><p>이 화면에서는 아무것도 선택하지 않으시면 됩니다.</p><p>이 화면은 조금 복잡하고 특별한 종류의 소득이 있을 때만 체크하는 화면입니다.</p><p><br></p><p>아무것도 선택하지 않는 이유?</p><p>일반적인 '사업소득'은 이미 입력했습니다: 조금 전 화면에서 코드 'A25' 사업소득 란에 인원, 총지급액, 세액을 입력하셨습니다. 그것으로 신고해야 할 소득 종류에 대한 표시는 이미 끝난 것입니다.</p><p>화면 설명에 답이 있습니다: 화면 중간의 설명(※ 표시)을 보면 "소득의 종류 선택에 해당되는 사항이 없을 경우 선택하지 않고 「저장 후 다음이동」을 클릭합니다." 라고 명확하게 안내되어 있습니다.</p><p>여기에 있는 항목들은 해당 사항이 없습니다:</p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754891372-9585.png"></p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754891406-6124.png"></p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754891547-6408.png"></p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754891685-4721.png"></p><p><br></p><p><br></p><p>원천세 신고 내역 조회</p><p>세금신고 &gt; 신고서 조회/삭제/부속서류 &gt; 원천세 신고 &gt; 일반신고 메뉴를 클릭 합니다.</p><p>신고내역 조회(접수증·납부서) 메뉴를 클립합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754891822-7428.png"></p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754891888-5611.png"></p><p><br></p><p>처음으로 원천세 납부 신고를 직접 해 보았습니다.</p><p>다음에는 매월 해당 포스트 처럼 따라서 하면 어렵지 않겠네요.</p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1754895007-3958.png"></p><p><br></p><p>수수료를 내지 않기 위해 지역 농협을 선택하고 계좌 이체를 선택하였습니다. 계좌 번호와 비밀번호를 알고 있으면 쉽게 납부가 가능합니다.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 개발노트]]></category>
<title><![CDATA[ 구글봇(Googlebot) 차단 문제, 이렇게 확인하고 해결하세요.]]></title>
<link>https://www.dut.kr/dev/684</link>
<guid>https://www.dut.kr/dev/684</guid>
<pubDate>Tue, 29 Jul 2025 20:54:39 +0900</pubDate>
<description><![CDATA[ <p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1753789916-7131.png"></p><p><br></p><p>구글 웹마스터 도구(현 Google Search Console)에서 소유자 확인이 되지 않는다면, 호스팅 서버에서 구글의 접근을 막고 있을 가능성이 큽니다. 호스팅 업체가 차단하지 않았다고 주장하는 상황에서, 명확한 증거를 통해 문제를 보여주고 해결을 요청하는 방법을 단계별로 알려드립니다.</p><p><br></p><blockquote class="blockquote">1. Google 공식 도구 (가장 정확하고 신뢰성 높음)</blockquote><p>Google에서 직접 제공하는 도구이므로 가장 먼저 사용해 보시기를 권장합니다. Google 계정으로 로그인하고 Search Console에 사이트가 등록되어 있어야 최대한 활용할 수 있습니다.</p><p><br></p><p><a href="https://support.google.com/webmasters/answer/9012289?hl=ko" target="_blank">검사 도구 (Google Search Console)</a></p><p>사용법: Search Console에 접속하여 왼쪽 메뉴에서 'URL 검사'를 클릭하고 확인하고 싶은 페이지의 전체 주소를 입력합니다.</p><p>확인 항목:</p><p>'페이지 가져오기': '성공'으로 표시되어야 합니다. '실패'라면 구글봇이 페이지에 접근하지 못한 것이며, 그 이유가 함께 표시됩니다.</p><p>'크롤링 허용 여부': '예'로 표시되어야 합니다. '아니요'라면 robots.txt 파일 때문에 차단된 것입니다.</p><p>'실제 URL 테스트' 버튼을 누르면 현재 시점의 차단 여부를 즉시 확인할 수 있습니다.</p><p><br></p><p><a href="https://search.google.com/test/rich-results" target="_blank"><b>리치 결과 테스트 (Rich Results Test)</b></a><br></p><p>사용법: 사이트 소유자가 아니어도 사용할 수 있습니다. 확인하고 싶은 URL을 입력하고 'URL 테스트'를 클릭하세요.</p><p>확인 항목: 테스트 결과에서 '크롤링' 섹션을 펼쳐 '크롤링 허용 여부'와 '페이지 가져오기' 상태를 확인하면 됩니다.</p><p><br></p><p><br></p><blockquote class="blockquote">외부 Googlebot 시뮬레이터 도구</blockquote><p>Google 공식 도구 외에도, 특정 URL이 구글봇에게 어떻게 보이는지 흉내 내어 보여주는 여러 웹사이트가 있습니다. 회원가입 없이 바로 사용할 수 있어 간편합니다.</p><p>여러가지 서비스가 있지만 여기에서는 <b><a href="https://totheweb.com/learning_center/tools-search-engine-simulator/" target="_blank">toteweb</a></b>이라는 서비스를 통해 테스트 화면을 안내 해 드립니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1753789701-2037.png"></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1753789711-1831.png"></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1753789726-6660.png"></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1753789738-4100.png"><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 작업로그]]></category>
<title><![CDATA[ 구글 description 문구 적용이 안되는 경우? 스니펫(snippet)?]]></title>
<link>https://www.dut.kr/job/683</link>
<guid>https://www.dut.kr/job/683</guid>
<pubDate>Tue, 29 Jul 2025 14:02:50 +0900</pubDate>
<description><![CDATA[ <p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1753764873-3414.png"></p><p><br></p><p>네이버와 구글에 검색 등록을 위해 사이트 제목과 설명 문구 지정을 위해 메타 태그를 수정하는 경우가 있습니다.</p><p>구글의 경우 내가 지정하지 않은 정보가 자동으로 나오는 경우가 있습니다. 이런 경우 메타 태그를 수정해도 사이트를 검색해도 다른 설명이 나오는 경우가 반복되게 됩니다. 이런 문제는 구글에서 자동으로 검색과 연관이 높다가 판단하여 우선하여 표시하게 됩니다.</p><p><br></p><p><br></p><blockquote class="blockquote">스니펫(Snippet)이란?</blockquote><p> 구글 검색 결과에서 페이지 제목(파란색 링크) 아래에 나오는 미리보기 설명 문구를 말합니다.</p><p><br></p><p>마치 책 뒷면의 줄거리 요약처럼, 사용자가 링크를 클릭하기 전에 이 페이지에 어떤 내용이 있는지 짐작할 수 있게 도와주는 역할을 합니다.</p><p><br></p><p>이 설명 문구는 구글이 페이지의 내용 중에서 사용자의 검색어와 가장 관련 높다고 판단하는 부분을 자동으로 가져오거나, 웹사이트 관리자가 설정해 둔 메타 설명(meta description)을 바탕으로 보여줍니다.</p><p><br></p><p>1. 스니펫에 의한 결과 화면</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1753764602-9512.png"></p><p><br></p><p>2. 실제 설명에 적용된 정보</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1753764909-7587.png"><br></p><p><br></p><p>위와 같이 표시되는 경우 해당 정보의 태그 안에&nbsp;data-nosnippet 라고 입력하여 해당 영역이 snippet 적용이 안되도록 합니다.</p><pre> &lt;div data-nosnippet class="i_noti"&gt; &lt;h5&gt;NEWS &amp;amp; NOTICE &lt;a href="/bbs/board.php?bo_table=notice"&gt;+&lt;/a&gt;&lt;/h5&gt; &lt;?php echo latest("inter_notice", "notice", "5","25");?&gt; &lt;/div&gt;</pre></p><p>이후에도 다른 정보가 표시된다면 해당 부분도 차단하도록 합니다.</p><p><br></p><p>구글의 경우 사용자들에게 유용한 정보를 제공한다는 의도로 인해 홈페이지 내용을 자동으로 표시하는 경우가 있습니다.</p><p>그렇지만 원하지 않는 정보와 자주 변경되는 정보를 참고하는 경우가 많아 이와 같이 불 필요할 수 있습니다.</p><p><br></p><p><a href="https://developers.google.com/search/docs/appearance/snippet?hl=ko" target="_blank">검색결과에서 스니펫 제어하기</a><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 작업로그]]></category>
<title><![CDATA[ 책임에프에이 : IFRAME 메타 태그 가이드라인 안내]]></title>
<link>https://www.dut.kr/job/682</link>
<guid>https://www.dut.kr/job/682</guid>
<pubDate>Fri, 11 Jul 2025 15:30:21 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1752215330-3761.png"></p><p><br></p><p>도메인 : http://www.책임에프에이.kr</p><p>제목 : 책임FA</p><p>설명 : 책임에프에이, 공장자동화.CNC자동화,로딩기,CNC로딩기,겐트리로더,GANTRY LOADER업체</p><p><br></p><p>메타 태그 가이드라인 보내드립니다.</p><p><br></p><p>홈페이지 시작 파일을 확인 해보니 IFRAME 으로 숨겨진 프레임을 사용해서 주소창이 고정되는 방식을 사용하고 있습니다. 최근에는 웹 표준화를 위해 해당 방식을 추천하지 않습니다. IFRAME을 사용하지 않는 경우 METRA REFLASH &lt;meta http-equiv="refresh" content="0;url=http://www.책임에프에이.kr"&gt; 방식을 이용하여 이동 해 주세요. </p><p>참고 문서 :&nbsp;<a href="https://www.dut.kr/tech/543" target="_blank">https://www.dut.kr/tech/543</a><a href="https://www.dut.kr/tech/543" target="_blank"></a></p><p><br></p><p>IFRAME 유지하는 방법과 IFRAME 없이 처리하는 방법 2가지 중에 선택하여 작업 해 주세요.</p><p><br></p><blockquote class="blockquote">IFRAME 유지 방법</blockquote><p>해당 소스 아래 부분에 변경 요청 방법으로 수정 해주세요.</p><pre>원본 소스 - view-source:http://www.xn--hi5ba47j0b607a5to.kr/ &lt;html&gt; &lt;head&gt; &lt;title&gt;책임F·A&lt;/title&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=euc-kr"&gt; &lt;script type="text/javascript"&gt; var ua = window.navigator.userAgent.toLowerCase(); if ( /iphone/.test(ua) || /android/.test(ua) || /opera/.test(ua) || /bada/.test(ua) ) { document.location.replace('./mobile/'); } &lt;/script&gt; &lt;FRAMESET ROWS=0%,100% border=0&gt; &lt;FRAME SRC="blank.htm"&gt; &lt;FRAME SRC="main/index.htm"&gt; &lt;/FRAMESET&gt;&lt;noframes&gt;&lt;/noframes&gt; &lt;/head&gt; &lt;/html&gt; </pre><p><br></p><pre># 수정 요청소스 &lt;html&gt;<br>&lt;head&gt;<br> &lt;meta name="robots" content="index, follow"&gt; &lt;meta name="naver-site-verification" content="fc866eb7fd4e72d4ee485524290e94028307b017" /&gt; &lt;meta name="google-site-verification" content="Fi1_Yz6zF-olZHsm_dD0dzllB1eAdZcNVREbZbDWzi8" /&gt; &lt;meta name="Subject" content="책임FA"&gt; &lt;meta name="title" content="책임FA"&gt; &lt;meta name="author" content="http://www.책임에프에이.kr"&gt; &lt;meta name="description" content="책임에프에이,공장자동화.CNC자동화,로딩기,CNC로딩기,겐트리로더,GANTRY LOADER업체"&gt; &lt;meta name="keywords" content="책임에프에이, 공장자동화.CNC자동화,로딩기,CNC로딩기,겐트리로더,GANTRY LOADER업체"&gt; &lt;meta property="og:title" content="책임FA"&gt; &lt;meta property="og:url" content="http://www.책임에프에이.kr"&gt; &lt;meta property="og:type" content="website"&gt; &lt;meta property="og:description" content="책임에프에이, 공장자동화.CNC자동화,로딩기,CNC로딩기,겐트리로더,GANTRY LOADER업체"&gt; &lt;meta property="og:site_name" content="책임FA"&gt; &lt;link rel="canonical" href="http://www.책임에프에이.kr"&gt; &lt;title&gt;책임FA&lt;/title&gt; <br>&lt;meta http-equiv="Content-Type" content="text/html; charset=euc-kr"&gt;<br>&lt;script type="text/javascript"&gt;<br>var ua = window.navigator.userAgent.toLowerCase();<br>if ( /iphone/.test(ua) || /android/.test(ua) || /opera/.test(ua) || /bada/.test(ua) ) {<br>document.location.replace('./mobile/');<br>}<br>&lt;/script&gt;<br>&lt;FRAMESET ROWS=0%,100% border=0&gt;<br>&nbsp; &lt;FRAME SRC="blank.htm"&gt;<br>&nbsp; &lt;FRAME SRC="main/index.htm"&gt;<br>&lt;/FRAMESET&gt;&lt;noframes&gt;&lt;/noframes&gt;<br>&lt;/head&gt;<br><br>&lt;/html&gt;</pre><p><br></p><p>IFRAME 으로 되어 있어&nbsp;/main/index.htm 해더 파일도 수정이 필요합니다.</p><p><br></p><pre>원본 소스 view-source:http://www.xn--hi5ba47j0b607a5to.kr/main/index.htm &lt;html&gt; &lt;head&gt; &lt;meta http-equiv="imagetoolbar" content="no"&gt; &lt;title&gt;Untitled Document&lt;/title&gt; &lt;link href="../css/style.css" rel="stylesheet" type="text/css"&gt; &lt;style type="text/css"&gt; &lt;!-- body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; } --&gt; &lt;/style&gt; &lt;/head&gt;</pre><p><br></p><pre># 수정요청소스 &lt;html&gt; &lt;head&gt; &lt;meta http-equiv="imagetoolbar" content="no"&gt; &lt;meta name="robots" content="index, follow"&gt; &lt;meta name="naver-site-verification" content="fc866eb7fd4e72d4ee485524290e94028307b017" /&gt; &lt;meta name="google-site-verification" content="Fi1_Yz6zF-olZHsm_dD0dzllB1eAdZcNVREbZbDWzi8" /&gt; &lt;meta name="Subject" content="책임FA"&gt; &lt;meta name="title" content="책임FA"&gt; &lt;meta name="author" content="http://www.책임에프에이.kr"&gt; &lt;meta name="description" content="책임에프에이, 공장자동화.CNC자동화,로딩기,CNC로딩기,겐트리로더,GANTRY LOADER업체"&gt; &lt;meta name="keywords" content="책임에프에이, 공장자동화.CNC자동화,로딩기,CNC로딩기,겐트리로더,GANTRY LOADER업체"&gt; &lt;meta property="og:title" content="책임FA"&gt; &lt;meta property="og:url" content="http://www.책임에프에이.kr"&gt; &lt;meta property="og:type" content="website"&gt; &lt;meta property="og:description" content="책임에프에이, 공장자동화.CNC자동화,로딩기,CNC로딩기,겐트리로더,GANTRY LOADER업체"&gt; &lt;meta property="og:site_name" content="책임FA"&gt; &lt;link rel="canonical" href="http://www.책임에프에이.kr"&gt; &lt;title&gt;책임FA&lt;/title&gt; &lt;link href="../css/style.css" rel="stylesheet" type="text/css"&gt; &lt;style type="text/css"&gt; &lt;!-- body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; } --&gt; &lt;/style&gt; &lt;/head&gt; </pre><p><br></p><p><br></p><blockquote class="blockquote">IFRAME 없이 수정 방법</blockquote><p>/index.htm&nbsp; 파일에서 시작 페이지로 이동 되도록 아래 메타태그만 남기고 제거 합니다.</p><pre>&lt;meta http-equiv="refresh" content="0;url=http://www.책임에프에이.kr/main/index.htm"&gt;</pre><p><br></p><p>/main/index.htm 파일의 위에 참고 파일과 동일하게 적용 합니다.</p><p>그리고 이메일로 방송한 소유자 파일을 홈디렉토리에 업로드 해야 합니다. 첫 화면이 리다이렉트 되면 구글에서는 소유 확인이 되지 않을 수 있어 업로드가 필요합니다.</p><p><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 개발노트]]></category>
<title><![CDATA[ 앱 마켓 없이 웹사이트를 앱처럼! PWA로 네이티브 앱 만들기]]></title>
<link>https://www.dut.kr/dev/681</link>
<guid>https://www.dut.kr/dev/681</guid>
<pubDate>Thu, 10 Jul 2025 18:53:33 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1752207372-5127.png"></p><p><br></p><p>마켓 등록 없이, 웹사이트를 앱 처럼 설치하고 실행할 수 있을까? 정답은 PWA다.</p><p>HTML, PHP 기반 웹사이트를 PWA 구조로 구성하면, Android 사용자에게 설치형 앱 처럼 보이게 만들 수 있다.</p><p>이전에는 apk 파일로 만들어 설치하는 방식을 이용했지만 마켓 없이 사이트에서 바로 설치할 수 있는 방법이 있어 소개 해 드립니다.</p><p><br></p><p>준비 사항으로는 데스크탑과 모바일 대응이 가능한 웹사이트를 먼저 제작 해 놓아야 합니다.</p><p>아이콘의 경우 정사각형 36x36 144x144 사이즈로 만들어 줍니다. 1024 이상 큰 이미지를 만들고 해당 사이트에서 아이콘을 자동으로 만들어주는 사이트를 이용하면 어렵지 않게 생성하고&nbsp;manifest.json 파일까지 자동으로 생성 해 줍니다.</p><p><br></p><p><br></p><blockquote class="blockquote">manifest.json 설정</blockquote><p>해당 사이트 링크를 참고 하거나 아래 소스를 참고하여 json 파일을 만들어 줍니다.&nbsp;<a href="https://www.chr.kr/manifest.json" target="_blank">https://www.chr.kr/manifest.json</a><a href="https://www.chr.kr/manifest.json" target="_blank"></a></p><p>해당 설정에서는 아이콘 이름과 배경색, 사이즈별 아이콘 링크를 지정하는 파일 입니다.</p><pre>{ "name": "핀맵뉴스", "short_name": "핀맵뉴스", "start_url": "/", "display": "standalone", "background_color": "#ffffff", "theme_color": "#0052a4", "scope": "/", "screenshots": [ { "src": "/screenshots/wide.png", "sizes": "640x360", "type": "image/png", "form_factor": "wide" }, { "src": "/screenshots/regular.png", "sizes": "640x360", "type": "image/png" } ], "icons": [ { "src": "/image/cat-info/android-icon-36x36.png", "sizes": "36x36", "type": "image/png", "density": "0.75" }, { "src": "/image/cat-info/android-icon-48x48.png", "sizes": "48x48", "type": "image/png", "density": "1.0" }, { "src": "/image/cat-info/android-icon-72x72.png", "sizes": "72x72", "type": "image/png", "density": "1.5" }, { "src": "/image/cat-info/android-icon-96x96.png", "sizes": "96x96", "type": "image/png", "density": "2.0" }, { "src": "/image/cat-info/android-icon-144x144.png", "sizes": "144x144", "type": "image/png", "density": "3.0" }, { "src": "/image/cat-info/android-icon-512x512.png", "sizes": "512x512", "type": "image/png", "density": "5.0" }, { "src": "/image/cat-info/android-icon-1024x1024.png", "sizes": "1024x1024", "type": "image/png", "density": "6.0" } ] }</pre><p><br></p><p><br></p><blockquote class="blockquote">service-worker.js 구성</blockquote><p>아래 소스를 참고하거나 <a href="https://www.chr.kr/service-worker.js" target="_blank">https://www.chr.kr/service-worker.js</a>&nbsp;해당 링크를 클릭하여 소스를 참고하여 작성할 수 있습니다.&nbsp;CACHE_NAME 캐시 이름은 해당 사이트에 맞게 수정하고 앱에서 사용할 css, js, icon 파일 링크를 지정합니다.</p><pre>// service-worker.js const CACHE_NAME = 'chr-v1'; const CACHE_URLS = [ '/', '/index.php', '/css/style.css', '/css/home.css', '/js/def.js', '/js/view.js', '/js/script.js', '/image/cat-info/android-icon-192x192.png' ]; // 설치: 필요한 파일을 캐시에 저장 self.addEventListener('install', event =&gt; { event.waitUntil( caches.open(CACHE_NAME).then(cache =&gt; { return cache.addAll(CACHE_URLS); }) ); }); // 활성화: 이전 캐시 정리 (선택사항) self.addEventListener('activate', event =&gt; { event.waitUntil( caches.keys().then(keys =&gt; Promise.all( keys.filter(key =&gt; key !== CACHE_NAME).map(key =&gt; caches.delete(key)) ) ) ); }); // 요청: 캐시 우선, 없으면 네트워크 요청 self.addEventListener('fetch', event =&gt; { event.respondWith( caches.match(event.request).then(response =&gt; { return response || fetch(event.request); }) ); }); </pre><div><br></div><p><br></p><blockquote class="blockquote">스크립트 추가</blockquote><p>head 부분에 manifest.json 부분을 추가해서 아이콘 정보를 읽을 수 있도록 해줍니다.</p><pre>&lt;link rel="manifest" href="/manifest.json"&gt;</pre><p>body 끝나기 전에 아래 스크립트를 이용해서 service-worker.js 파일을 로드할 수 있도록 합니다. 파일명은&nbsp;service-worker.js or sw.js 라는 이름을 많이 사용합니다.</p><pre>&lt;script&gt;<br>if('serviceWorker' in navigator){<br>&nbsp; &nbsp; navigator.serviceWorker.register('/service-worker.js');<br>}<br>&lt;/script&gt;</pre><p><br></p><p><br></p><blockquote class="blockquote">PWA 장점과 단점</blockquote><p><br></p><p><b>어떤 장점이 있나?</b></p><p>앱스토어 없이 바로 URL 접근 하여 설치할 수 있다.&nbsp;</p><p>한번 개발로 Android/iOS/PC 모두 사용할 수 있다.&nbsp;</p><p>스토어 심사 업이 바로 반영이 가능하다.</p><p>용량이 가볍고 캐시 기반 로딩으로 빠르다.</p><p>웹 기반 기술이라 유지보수가 쉽다.</p><p><br></p><p><b>단점은 없나?</b></p><p>iOS 경우는 수동으로 설치 해야 한다.</p><p>일부 네이티브 기능을 제공이 불가능 하다.</p><p>마켓 노출 효과를 기대할 수 없다. 용도가 제한 적이다.</p><p>사용자가 인지하지 못하고 떠나는 경우가 많다.</p><p>푸시 및 알림 구현은 복잡하다.</p><p><br></p><p>이런 장점과 단점이 있지만 처음부터 앱을 개발하기 보다는 먼저 PWA 네이티브 앱을 제공하고 나서 나중에 개발하는 것도 좋은 방법이다.&nbsp;</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 내돈내산]]></category>
<title><![CDATA[ 가성비 우퍼 하이파이 PC 스피커  브리츠 2채널 구입후기]]></title>
<link>https://www.dut.kr/buylog/680</link>
<guid>https://www.dut.kr/buylog/680</guid>
<pubDate>Wed, 09 Jul 2025 11:22:16 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1752027534-3881.png"></p><p><br></p><p>스마트 모니터 스피커, 너무 아쉬워서 구입한 스피커 입니다.</p><p><br></p><p>삼성 스마트 M7 32인치 모니터를 쓰면서 ‘책상 위가 깔끔해서 좋다’ 싶었지만, 음악을 듣는 순간 생각이 달라졌습니다. 공간은 심플한데, 소리도 심플한 건 좀... 아쉽잖아요?</p><p>그래서 적당한 사이즈, 적당한 가격, 적당한 성능의 스피커를 찾기 시작했고, 그렇게 만난 게 브리츠 2.0 채널 트윈 우퍼 Hi-Fi 스피커입니다.</p><p><br></p><blockquote class="blockquote">왜 이 제품?</blockquote><p>직구는 패스. 배송도 불편하고 A/S도 귀찮아요.</p><p>평이 나쁘지 않았고, 브리츠 브랜드도 꽤 믿을 만하니까.</p><p>높이 한 뼘 정도. 책상 위에 올려놔도 시선 안 가리고 공간도 차지 안 함.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1752027588-5027.png"></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1752027596-7416.png"><br></p><p><br></p><blockquote class="blockquote">실제 써보니</blockquote><p>음질 : 이름에 ‘Hi-Fi’라고 붙어 있길래 기대 반 걱정 반이었는데, 기대 이상도 이하도 아님. 그냥 무난하게 듣기 좋습니다. 저음도 나름 존재감 있어요.</p><p>우퍼 역할 : 책상용 스피커에 우퍼가 있다는 게 얼마나 큰 차이일까 싶었는데, 확실히 밋밋한 소리는 아닙니다. 영상이나 음악 들을 때 베이스가 살짝 받쳐줘요.</p><p>조작 편의성 : 볼륨 다이얼이 뒤에 있음. 자주 만지려면 손을 더듬게 됩니다. 이건 살짝 아쉬움.</p><p>화이트 노이즈? : 컴퓨터랑 같은 전원에 꽂았더니 컴 꺼졌을 때 화이트 노이즈 발생. 전원 따로 빼니까 깔끔하게 해결됐습니다.</p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1752027574-7271.png"></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1752027579-7405.png"><br></p><blockquote class="blockquote">결론</blockquote><p>2개월간 매일 사용 중인데, 만족도는 꽤 높습니다.</p><p>음악 들을 용도 + 데스크 위 깔끔함 + 준수한 저음을 원하는 분이라면 이 스피커, 추천할 수 있어요.</p><p><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 작업로그]]></category>
<title><![CDATA[ [메타태그수정] 대일CST 소스 수정 후 메타 태그 변경]]></title>
<link>https://www.dut.kr/job/679/sir-meta</link>
<guid>https://www.dut.kr/job/679/sir-meta</guid>
<pubDate>Mon, 30 Jun 2025 14:01:59 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1751259485-1523.png"></p><p><br></p><p>접속 정보를 제공하는 경우 소스에서 직접 수정 해 드리고 있습니다</p><p>소스를 확인 해보니 그누보드로 제작되어 있는 것을 확인 하고 theme head.sub.php 파일을 수정하였으나 적용이 안되는 확인 하였습니다.</p><p>이런 경우 theme 폴더가 아닌 다른 head.sub.php 파일을 수정하여 적용하고 있습니다.</p><p>관리자 접속을 제공 받지 못해서 소스 수정을 통해 아래 제목과 설명으로 메타 태그를 표시하도록 수정하였습니다.</p><p>작업 하기 이전에 백업을 하고 있습니다.</p><p><br></p><p>도메인 : http://www.daeilcst.co.kr</p><p>제목 : 대일CST</p><p>설명 : 대일CST, 다함코팅, TERMINAL CAP, 온도캡, TI캡, PVC 디핑, PVC 코팅, 플라스틱 코팅, BOOTS, HOUSING COVER, 절연튜브, 단자튜브, 실리콘슬리브, 고무캡, 커넥터 방수커버</p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1751259556-4430.png"><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1751259301-3085.png"><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1751259267-2467.png"></p><p><br></p><p><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 개발노트]]></category>
<title><![CDATA[ 이모티콘 저장 안 될 때, utf8mb4 : MySQL, MariaDB 저장 오류 해결하기]]></title>
<link>https://www.dut.kr/dev/678/emoji-save-utf8mb4</link>
<guid>https://www.dut.kr/dev/678/emoji-save-utf8mb4</guid>
<pubDate>Mon, 30 Jun 2025 11:25:54 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1751250285-9180.png"><br></p><p><br></p><p>거래처에서 데이터를 저장하는 과정에서 내용이 잘린다고 연락이 와서 확인하게 되었습니다.</p><p>동일한 텍스트를 입력하여 확인하는 중에 원인을 알게 되었네요.</p><p>요즘은 chatgpt를 이용하다 보니 이모티콘을 텍스트 중간에 섞어서 제공하는 경우가 있습니다.</p><p><br></p><p><br></p><blockquote class="blockquote">이모티콘이 저장 안되는 원인은?</blockquote><p>MySQL/MariaDB 에서 기본 UTF8 이렇게 지정되어 있지만 실제로는 UTF8-Lite 버전으로 최대 3바이트까지만 저장이 가능합니다.</p><p>이모티콘의 경우 4바이트 문자라서 잘리거나 에러가 생기게 되는 게 원인 입니다.</p><p>해결 방법으로는 utf8을 utf8mb4 4byte 지원 버전으로 변경하는 방법 입니다.</p><p>그렇데 utf8을 수정하면 되는데 utf8mb4라는 이름을 사용하게 되었을까? 이것은 기존에 utf8 사용의 호환성 때문에 그대로 두고 utf8mb4 가 추가된 것이다.</p><p><br></p><p><br></p><blockquote class="blockquote">UTF8 을 UTF8MB4 변경하기</blockquote><p>아래 방법을 통해 전체 적용하는 방법과 하나만 변경하기 그리고 utf8mb4 적용이 안된 테이블만 변경하는 방법에 대해서 알려드리겠습니다.</p><p><br></p><p>utf8mb4 바뀌지 않은 테이블만 자동으로 ALTER 쿼리 실행하기</p><pre>SELECT CONCAT( 'ALTER TABLE `', TABLE_NAME, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;' ) AS alter_stmt FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '데이터베이스 이름' AND (TABLE_COLLATION IS NULL OR TABLE_COLLATION NOT LIKE 'utf8mb4%');</pre><p><br></p><p>utf8mb4로 변환하는 쿼리 자동 생성</p><pre>SELECT CONCAT(<br>&nbsp; &nbsp; 'ALTER TABLE `', TABLE_NAME,<br>&nbsp; &nbsp; '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;'<br>) AS alter_stmt<br>FROM INFORMATION_SCHEMA.TABLES<br>WHERE TABLE_SCHEMA = '데이터베이스 이름';</pre><div><br></div><p>특정 DB의 테이블 리스트 얻는 쿼리</p><pre>SELECT TABLE_NAME<br>FROM INFORMATION_SCHEMA.TABLES<br>WHERE TABLE_SCHEMA = '데이터베이스 이름';</pre><div><br></div><div>데이터베이스, 테이블, 컬럼 모두 utf8mb4로 설정</div><pre>ALTER DATABASE [테이버테이스이름] CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;<br>ALTER TABLE [테이블이름] CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;</pre><div><br></div><div>참고로 PHP 쪽에서 PDO를 사용한다면&nbsp;PDO::MYSQL_ATTR_INIT_COMMAND =&gt; "SET NAMES utf8mb4" 이렇게 설정 해 줘야 합니다.</div><div>mysqli_connect 접속 방법이라면&nbsp;mysqli_set_charset($connect, "utf8mb4"); 해당 부분 하나 추가하면 됩니다.</div><div><br></div><div>MySQL 이나 MariaDB의 경우 이모티콘이 저장이 안되거나 내용이 짤려 저장되는 오류를 수정할 수 있는 방법을 소개 해 드렸습니다.</div><div>평소에 이모티콘을 전혀 사용하지 않는데 chatgpt 사용하다 보니 이런 경우가 생기네요.</div><p><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 작업로그]]></category>
<title><![CDATA[ [메타태그수정] 지이엠 검색등록 정보 수정 가이드라인 안내]]></title>
<link>https://www.dut.kr/job/677/wordpress-meta-seo</link>
<guid>https://www.dut.kr/job/677/wordpress-meta-seo</guid>
<pubDate>Fri, 27 Jun 2025 17:04:39 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1751011288-4272.png"></p><p><br></p><p>해당 홈페이지는 wordpress(워드프레스로) 제작되어 있습니다.</p><p>소스를 직접 수정하는 것은 권장하지 않지만 사용하는 theme(newgem) 폴더에서 header.php 수정하는 가이드라인 보내드립니다.</p><p>권장 사항으로는 Yoast SEO 또는 SEO 검색하여 버전에 맞는 플러그인 추가해서 수정하는 게 좋습니다. 소스를 수정하게 되면 테마를 업그레이드 하는 경우 소스가 사라질 수 있으므로 백업을 해 두거나 child theme를 만들어 놓으면 삭제되지 않습니다. (단, child 테마는 업데이트가 되지 않는 단점이 있습니다)</p><p><br></p><blockquote class="blockquote">1. 소유자 확인 파일 업로드 요청</blockquote><p>제공해드린 파일 중에 아래와 같은 html 파일 2개가 있으며 해당 파일을 홈페이지 홈 디렉토리에 업로드 하도록 합니다. "http://www.gem-motor.com/네이버 소유자파일" / "http://www.gem-motor.com/구글 소유 파일"이 열리도록 업로드 합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1751010075-9390.png"></p><p><br></p><p><br></p><blockquote class="blockquote">2. 메타 태그 수정</blockquote><p><br></p><p>현재 소스 :&nbsp;view-source:http://www.gem-motor.com/ko/</p><pre>소스가 길어 상단 생략<br>&lt;head&gt;<br>&lt;meta name="author" content="지이엠 GEM"&gt;<br>&lt;!--Ignore for SEO<br>&lt;!-- 네이버 메타 desc --&gt;<br>&lt;meta name="naver-site-verification" content="00aba82a18d77779aae70bc175b31c2b97196504" /&gt;&lt;!-- 네이버 메타 --&gt;<br>&lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt;<br>&lt;meta name="robots" content="max-image-preview:large" /&gt;<br><span><span>	</span>&lt;link rel="canonical" href="http://www.gem-motor.com/en/" /&gt;<br></span>&lt;meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /&gt;<br>&lt;meta name="google-site-verification" content="H3-L6pIwkQOHCLnooUIFTpruaVRR0NnKg_a9au1n91k" /&gt;<br>&lt;meta name="msvalidate.01" content="A36ED9661F6899B09BE7549CED6FFC9C" /&gt;<br>&lt;meta property="og:title" content="GEM Stators and Rotors | High Speed Motor"&gt;<br>&lt;meta property="og:site_name" content="GEM (Green Energy Motors)"&gt;<br>&lt;meta property="og:url" content="http://www.gem-motor.com/en/"&gt;<br>&lt;meta property="og:description" content="Korea's Leading Motor Component Supplier Tapping the Global Market GEM specializes in elements such as stators and rotors for high velocity motors. The company has prided itself on providing its clients with products known for their high speed, high effciency and high power-density."&gt;<br>&lt;meta property="og:type" content="website"&gt;<br>&lt;meta property="og:image" content="http://www.gem-motor.com/wp-content/themes/newgem/image/sub/logo_big.png"&gt; 소스가 길어 하단 생략</pre><p><br></p><p>수정 요청 소스 :&nbsp;view-source:http://www.gem-motor.com/ko/</p><pre>소스가 길어 상단 생략 &lt;head&gt; &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt; &lt;meta name="robots" content="max-image-preview:large" /&gt; &lt;meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /&gt; &lt;meta name="msvalidate.01" content="A36ED9661F6899B09BE7549CED6FFC9C" /&gt; &lt;meta name="Subject" content="지이엠"&gt; &lt;meta name="title" content="지이엠"&gt; &lt;meta name="author" content="http://www.gem-motor.com"&gt; &lt;meta name="description" content="GEM, 고속,모터,전동기,발전기,고주파,스핀들,빌트인,설계,제작,유도,펌프,진공,터보"&gt; &lt;meta name="keywords" content="GEM, 고속,모터,전동기,발전기,고주파,스핀들,빌트인,설계,제작,유도,펌프,진공,터보"&gt; &lt;meta property="og:title" content="지이엠"&gt; &lt;meta property="og:url" content="http://www.gem-motor.com"&gt; &lt;meta property="og:type" content="website"&gt; &lt;meta property="og:description" content="GEM, 고속,모터,전동기,발전기,고주파,스핀들,빌트인,설계,제작,유도,펌프,진공,터보"&gt; &lt;meta property="og:site_name" content="지이엠"&gt; &lt;meta property="og:image" content="http://www.gem-motor.com/wp-content/themes/newgem/image/sub/logo_big.png"&gt; &lt;link rel="canonical" href="http://www.gem-motor.com"&gt; &lt;title&gt;지이엠&lt;/title&gt; 소스가 길어 하단 생략</pre><p><br></p><p>수정 요청한 소스에서 불필요한 태그는 삭제 해도 됩니다.</p><p><br></p><blockquote class="blockquote">참고 사항</blockquote><p>특정 테마에서는 메타 태그 정보를 관리자에서 직접 지정이 가능한 경우도 있습니다. 현재 테마는 HTTPS 지원 없이 접속이 가능한 것을 보면 오래된 버전으로 판단이 됩니다.</p><p>다국어로 설정되어 있어 소스 수정보다는 SEO 플러그인을 설치하여 작업하는 것을 권장합니다.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 개발노트]]></category>
<title><![CDATA[ PHP 웹서버 업로드 용량 늘리기 : 재시작 방법 안내]]></title>
<link>https://www.dut.kr/dev/676/php-upload-max</link>
<guid>https://www.dut.kr/dev/676/php-upload-max</guid>
<pubDate>Fri, 27 Jun 2025 13:04:49 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750997054-4515.png"><br></p><p><br></p><p>서버 기본 설정으로 사용하다 보니 파일 업로드가 10MB로 설정되어 있어 업로드가 되지 않네요.</p><p>일반적으로 10MB 설정해도 큰 문제가 없지만 png 파일의 경우 압축을 지원하지 않아 선명하지만 용량을 많이 차지하게 됩니다.</p><p>이런 경우 웹 에디터 업로드 하니 계속 실패로 표시 되네요.</p><p><br></p><blockquote class="blockquote">먼저 phpinfo 명령어 확인</blockquote><p>서버에 파일을 적당히 만들고 phpinfo 출력 명령어를 통해 저장하고 웹 브라우저로 접속 하여 설정 화면을 확인합니다.</p><p>CTRL + F 키를 눌러 upload_max_filesize 를 찾아보면 설정된 용량을 확인할 수 있습니다.</p><pre>&lt;?php phpinfo();?&gt;</pre><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750995378-1879.png"></p><p><br></p><p><br></p><blockquote class="blockquote">PHP 환경 파일 수정하기</blockquote><p>위에 phpinfo를 통해 설치 된 경로 확인을 알 수 없으며 ssh 에서 find -name php.ini 명령어로 파일을 찾아 볼 수도 있습니다. 작업 전에 백업을 해두고 저는 vi 편집기 사용이 가능해서 아래와 같이 사용하며 pico 또는 vim 편집기를 이용하셔도 됩니다. vi 편집기에서는 /를 눌러 검색할 단어를 입력 후 엔터를 치고 해당 부분에서 i 키를 눌러 수정하면 됩니다. 명령어안 먹히지 않으면 ESC 키를 눌러 다시 시도 하고 저장 하고 나가려면 :wq! 라고 입력하면 됩니다.&nbsp;</p><pre># find -name php.ini ./etc/php.ini # vi /etc/php.ini</pre><p><br></p><p>편집이 완료되었으며 아래 명령어를 통해 재 시작 해야 적용이 됩니다.</p><p>PHP-FPM : PHP 코드를 해석하고 실행하는 실행 역할을 합니다.</p><pre># sudo systemctl restart httpd<br># sudo systemctl restart php-fpm</pre><div><br></div><div>용량 큰 이미지를 업로드 하여 확인 해 보면 알 수 있어요.</div>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 작업로그]]></category>
<title><![CDATA[ [메타태그수정] 쓰리샤인 소스 수정을 통한 검색등록 변경 작업]]></title>
<link>https://www.dut.kr/job/675</link>
<guid>https://www.dut.kr/job/675</guid>
<pubDate>Thu, 26 Jun 2025 17:31:41 +0900</pubDate>
<description><![CDATA[ <p></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750926675-8714.png"></p><p style="text-align: center; "><br></p><p>네이버에 사이트 제목이 영문으로 표기되어 있어 회사명이나 브랜드 명으로 검색이 불가능한 상태 입니다.</p><p>소스 보기를 확인해 보니 그누보드 환경으로 제작되어 있습니다. 소스를 분석 해 보니 태그가 이상한 걸 보면 공개 소스가 수정되어 있어 관리자에서 적용이 안될 수 있고 로그인 정보도 제공이 되지 않아 소스 수정을 통해 처리 합니다.</p><p><br></p><p>도메인 : <a href="http://www.threeshine.com" target="_blank">http://www.threeshine.com</a></p><p>제목 : 쓰리샤인</p><p>설명 : 실험동물, 동물장비, 동물임상, 생명공학, 임상실험, 심험장비, 동물케이지, 실험실건설, 동물실, 도태장비, ALSL3, 사육장비</p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750925437-7414.png"></p><p><br></p><p>관리자에서 사이트 제목을 변경하지 않는 다라는 조건으로 한글 타이틀로 변경 해줍니다.</p><pre>if( $g4['title']=='THREE-SHINE INC.' ){ $g4['title'] = '쓰리샤인'; } $meta_desc = '실험동물, 동물장비, 동물임상, 생명공학, 임상실험, 심험장비, 동물케이지, 실험실건설, 동물실, 도태장비, ALSL3, 사육장비';</pre><p><br></p><p>나머지 매타 태그를 추가 한 뒤 저장하도록 합니다.</p><pre>&lt;meta name="Subject" content="&lt;?php echo $g4['title'];?&gt;"&gt; &lt;meta name="title" content="&lt;?php echo $g4['title'];?&gt;"&gt; &lt;meta name="author" content="http://www.threeshine.com"&gt; &lt;meta name="description" content="&lt;?php echo $meta_desc;?&gt;"&gt; &lt;meta name="keywords" content="&lt;?php echo $meta_desc;?&gt;"&gt; &lt;meta property="og:title" content="&lt;?php echo $g4['title'];?&gt;"&gt; &lt;meta property="og:url" content="http://www.threeshine.com"&gt; &lt;meta property="og:type" content="website"&gt; &lt;meta property="og:description" content="&lt;?php echo $meta_desc;?&gt;"&gt; &lt;meta property="og:site_name" content="&lt;?php echo $g4['title'];?&gt;"&gt; &lt;link rel="canonical" href="http://www.threeshine.com"&gt; &lt;title&gt;&lt;?=$g4['title']?&gt;&lt;/title&gt;</pre> <p></p><p><br></p><p><br></p><blockquote class="blockquote">네이버 서치어드바이저 작업</blockquote><p>소유자 확인 태그가 추가 되었으니 확인 작업을 하고 아래와 같이 완료되도록 합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750926229-9700.png"></p><p><br></p><p>URL 검사를 하고 수집 처리 합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750926268-8569.png"></p><p><br></p><p><br></p><blockquote class="blockquote">Google Search Console 작업 진행</blockquote><p>구글도 동일한 메타 태그 사용을 하므로 같이 추가한 소유자 확인 작업을 진행하도록 합니다.</p><p>그리고 색인 생성 요청을 하요 구글 검색엔진이 수집할 수 있도록 합니다. 1~2분 정도 소요 되며 "색인 생성 요청됨" 화면이 표시되면 완료 됩니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750926409-2587.png"></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750926458-5952.png"></p><p><br></p><p>그누보드 환경에서 관리자에서 메타 태그 추가 방법이 아닌 PHP 소스 수정을 통해 변경하는 방법에 대해 알아 보았습니다.</p><p>관리자에서 사이트 제목을 수정하면 작동하지 않으니 해당 부분만 주의 하면 됩니다.</p><p>다른 여러가지 방법이 있지만 짧은 소스로 처리하기 위해서 이와 같은 방법을 사용합니다.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 작업로그]]></category>
<title><![CDATA[ [세진파킹] 사용기한 일괄 변경 기능 추가]]></title>
<link>https://www.dut.kr/job/674</link>
<guid>https://www.dut.kr/job/674</guid>
<pubDate>Thu, 26 Jun 2025 14:09:48 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750914521-1135.png"><br></p><p><br></p><p>입주민 관리에서 등록을 하게 되면 사용 기간이 기본 5년으로 지정이 됩니다.</p><p>5년이 지난 후에 또는 이전에 가입한 회원의 경우 하나 하나 수정하는 어려움이 있어 일괄로 수정할 수 있는 기능을 구현 하였습니다.</p><p>자세한 순서는 아래 설명을 참고 하세요.</p><pre>요약 : 주차장 선택 &gt; 전체 선택 또는 필요한 회원 체크 &gt; 날짜 선택 &gt; 사용기간변경 클릭 후 적용</pre><p><br></p><p><br></p><blockquote class="blockquote">사용 방법</blockquote><p>전체 주차장에서 먼저 해당 현장을 선택하고 데이터가 많은 경우 행 부분을 500 또는 1000 같이 전체를 표시할 수 있는 숫자를 누르고 검색하기 버튼을 누릅니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750914094-5409.png"><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750914113-4093.png"><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750914150-1704.png"></p><p><br></p><p>전체 선택을 누르거나 필요한 항목을 먼저 체크 하고 날짜를 선택 한 다음 "사용기간변경" 버튼을 눌러 최종 확인을 누르면 일괄 변경이 가능합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750914304-1196.png"><br></p><p><br></p><p>체크 방식으로 만든 이유는 실수를 줄이기 위해 먼저 변경할 항목을 먼저 조회하고 체크 하고 날짜 선택 후 적용하는 방식으로 하였습니다.</p><p>이러한 절차를 통해 실수를 줄일 수 있습니다.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 일상리뷰]]></category>
<title><![CDATA[ 어도비 포토샵 해지, 위약금 폭탄 피하는 방법과 대안]]></title>
<link>https://www.dut.kr/daily/673/adobe-cancel-penalty</link>
<guid>https://www.dut.kr/daily/673/adobe-cancel-penalty</guid>
<pubDate>Wed, 25 Jun 2025 21:34:54 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750855093-6745.png"><br></p><p><br></p><p>오늘, 오랫동안 사용해 온 어도비 포토샵 구독을 해지했습니다. 단순히 프로그램을 더 이상 쓰지 않기로 한 결정이었지만, 그 과정은 예상보다 훨씬 더 복잡하고 불쾌한 경험이었습니다. 마치 통신사 약정의 덫에 걸린 기분이었습니다. 이 글은 저처럼 어도비의 복잡한 구독 해지 정책과 위약금 문제로 골머리를 앓는 분들을 위한 솔직한 후기이자, 유용한 정보를 담은 안내서입니다.</p><p><br></p><blockquote class="blockquote">미로 같은 해지 메뉴, 숨겨진 위약금의 정체</blockquote><p><br></p><p>웹사이트 제작 업무 때문에 수년간 포토샵을 사용해왔습니다. 하지만 최근 개발 위주로 업무 스타일이 바뀌면서 포토샵 사용 빈도가 현저히 줄었습니다. 매달 나가는 구독료가 아깝다는 생각에 해지를 결심했지만, 시작부터 난관에 부딪혔습니다. 어도비 웹사이트에서 구독 해지 메뉴를 찾는 것부터가 숨은그림 찾기 같았습니다.</p><p><br></p><p>어렵게 해지 버튼을 누르자, 이번에는 위약금이라는 더 큰 장벽이 나타났습니다. 저는 '연간 플랜, 매월 결제' 상품을 이용 중이었습니다. 가입 당시에는 월 단위로 결제하니 언제든 해지할 수 있을 거라 막연히 생각했습니다. 하지만 어도비의 정책은 달랐습니다. 연간 사용을 약정한 것이므로, 중간에 해지하면 남은 약정 기간 요금의 50%를 위약금으로 내야 한다는 것이었습니다.</p><p><br></p><p>이러한 위약금 정책은 교묘하게 숨겨져 있습니다. 결제 페이지에서는 할인된 월 요금만 크게 강조할 뿐, 중도 해지 시 발생하는 위약금에 대한 안내는 여러 단계를 거치거나 작은 글씨의 약관을 자세히 들여다봐야만 확인할 수 있는 구조입니다. 마치 '싸게 해주는 대신 1년은 무조건 써야 해, 안 쓰면 벌금이야'라고 말하는 통신사의 약정 방식과 똑 닮았습니다.</p><p><br></p><blockquote class="blockquote">‘나만 겪는 일이 아니었구나’ - 공정위의 제재</blockquote><p><br></p><p>답답한 마음에 인터넷을 검색해보니 저와 같은 경험을 한 사용자가 셀 수 없이 많았습니다. 심지어 대한민국 방송통신위원회와 공정거래위원회가 어도비의 이러한 불공정한 약관에 대해 시정 명령과 과징금을 부과했다는 뉴스까지 찾을 수 있었습니다.</p><p><br></p><p>공정위 자료에 따르면, 어도비는 연간 구독을 중도 해지할 경우 남은 기간 이용료의 50%를 위약금으로 부과하고, 연간 요금을 선납한 경우에는 14일이 지나면 아예 환불을 해주지 않는 등의 정책을 운영해왔습니다. 이는 명백히 소비자의 해지 권리를 제한하는 행위입니다. 2023년에는 이런 이유로 13억 원이 넘는 과징금이 부과되기도 했습니다.</p><p><br></p><p>글로벌 대기업이 국내법과 소비자 권리를 무시하며 이익을 챙겨왔다는 사실에 분노가 치밀었습니다. 불매 운동이라도 하고 싶은 심정으로, 위약금을 감수하고 해지 버튼을 눌렀습니다.</p><p><br></p><blockquote class="blockquote">구독의 굴레를 벗어나 찾은 완벽한 대안, Photopea</blockquote><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750854661-2224.png"></p><p><br></p><p>포토샵을 떠나기로 결심한 데에는 훌륭한 대안을 찾은 것도 큰 역할을 했습니다. 바로 웹 기반 그래픽 편집 서비스인 '포토pea(포토피)'입니다.</p><p><br></p><p>Photopea는 별도의 프로그램 설치 없이 웹 브라우저에서 바로 작동합니다. 놀라운 점은 UI(사용자 인터페이스)가 포토샵과 거의 흡사하다는 것입니다. 기존 포토샵 사용자라면 별도의 학습 없이 바로 적응할 수 있을 정도입니다. 단축키까지 비슷해서 작업 효율도 떨어지지 않습니다.</p><p><br></p><p>PSD 파일은 물론, Sketch, XCF 등 다양한 형식의 파일을 지원하며, 레이어, 마스크, 필터 등 포토샵의 핵심 기능을 대부분 갖추고 있습니다. 간단한 이미지 편집이나 웹용 배너 제작 등 제가 하던 작업 대부분을 무리 없이 소화할 수 있었습니다.</p><p><br></p><p>가장 큰 장점은 가격입니다. 기본 기능은 광고를 보는 조건으로 무료로 사용할 수 있으며, 광고 없이 쾌적하게 사용하고 싶다면 유료 플랜을 구독하면 됩니다. 유료 플랜 가격은 월 5달러 수준으로, 어도비에 비하면 훨씬 합리적입니다. 복잡한 약정이나 위약금 걱정 없이 언제든 구독하고 해지할 수 있는 자유는 덤입니다.</p><p><br></p><blockquote class="blockquote">어도비의 굴레에서 벗어나며</blockquote><p><br></p><p>오늘 포토샵 구독을 해지했지만, 다음 달 3일까지는 사용이 가능하다고 합니다. 마지막까지 참 씁쓸한 경험입니다.</p><p><br></p><p>디자이너와 크리에이터에게 어도비는 오랫동안 대체 불가능한 존재였습니다. 하지만 이제 시대가 변했습니다. 어도비가 독점적 지위를 이용해 소비자를 기만하는 동안, Photopea와 같은 훌륭한 대안 서비스들이 사용자의 선택권을 넓혀주고 있습니다.</p><p><br></p><p>만약 당신이 비싼 구독료와 불합리한 위약금 정책에 불만을 느끼고 있다면, 과감하게 어도비의 굴레에서 벗어나 새로운 대안을 찾아보는 것은 어떨까요? 저의 경험이 당신의 현명한 선택에 작은 도움이 되기를 바랍니다.</p><p><br></p><p>어도비 프리미어 대신 캡컷 CapCut 동영상 편집 프로그램도 추천합니다.</p><p><a href="https://www.photopea.com/" target="_blank">포토피 사이트 이동</a></p><a href="https://www.dut.kr/tech/603/capcut%EB%AC%B4%EB%A3%8C%EC%98%81%EC%83%81%ED%8E%B8%EC%A7%91%ED%88%B4%EC%BA%A1%EC%BB%B7pc%EC%9C%88%EB%8F%84%EC%9A%B0%EB%B2%84%EC%A0%84" target="_blank">[CapCut] 무료 영상 편집 툴 캡컷 pc 윈도우 버전 설치하기</a><br><p><br></p><p><br></p><blockquote class="blockquote">어도비 프로그램 대체 프로그램 추천</blockquote><p><br></p><p>포토샵 -&gt;&nbsp;Photopea (포토피) / 어도비 프리미어 -&gt; CapCut (캡컷) 이렇게 전환해서 사용하고 있습니다.</p><p>무거운 프로그램을 삭제하고 나니 속이 다 시원하네요. 이전에는 카메라 RAW로 촬영하다 보니 어쩔 수 없이 사용할 수 밖에 없었는데 사업에 집중하기 위해 사진은 jpg로만 찍고 있어요.</p><p><br></p><p>2025-07-25 내용 추가&nbsp; : 사이트 접속시 주소창 우측에 앱에서 열기를 하여 설치하면 단축키 충돌 없이 사용이 가능합니다.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 개발노트]]></category>
<title><![CDATA[ 워드프레스 관리자 비밀번호 분실 해결 방법 : SQL Insert 방식]]></title>
<link>https://www.dut.kr/dev/672/wordpress-password-refair</link>
<guid>https://www.dut.kr/dev/672/wordpress-password-refair</guid>
<pubDate>Wed, 25 Jun 2025 15:26:39 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750832724-1562.png"><br></p><p><br></p><p>설치형 블로그로 해외에서 인기를 얻고 있는 워드프레스에 대해서 팁을 알려드리고자 합니다.</p><p>비밀번호를 분실했을 때 비밀번호 찾기를 통해 이메일을 넣어 비밀번호를 바꿔 접속하는 방법이 있습니다.</p><p>그러나 이메일 계정이 없어졌거나 찾을 수 없다면 어떻게 할까요?</p><p><br></p><p>서버에 접속할 수 있는 FTP&nbsp; 접속 정보를 알고 있다면&nbsp;/public_html/wp-config.php 파일을 열어 해당 정보를 확인 합니다.</p><pre>define('DB_NAME', '디비 이름');<br>define('DB_USER', '디비 유저');<br>define('DB_PASSWORD', '비밀번호');<br>define('DB_HOST', 'localhost');</pre><p><br></p><p><br></p><blockquote class="blockquote">데이터베이스 관리툴 다운로드 및 로그인</blockquote><p><br></p><p>이제 DB에 접속할 수 있는 프로그램을 다운 받아 설치하는 작업이 필요합니다.<br><a href="https://www.adminer.org" target="_blank">https://www.adminer.org</a>&nbsp;라는 사이트에 들어가서 다운로드 부분에서 프로그램 파일을 다운 받습니다.</p><p>예를 들어 버전이 낮은 PHP 5.x MySQL 5.X 의 경우 최신 버전이 작동하지 않으니 이전 버전을 클릭하여 4.x 버전을 다운 받도록 합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750831624-7454.png"></p><p><br></p><p>해당 파일을 서버에 업로드 한 파일을 주소창에 입력하면 아래 로그인 창이 표시되며 위에 데이터베이스 접속 정보를 입력할 수 있습니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750831725-7052.png"></p><p><br></p><blockquote class="blockquote">분실한 비밀번호만 변경하기</blockquote><p><br></p><p>예를 들어 admin 이라는 아이디를 사용하고 있고 비밀번호만 바꾸고 싶은 경우에는 아래 SQL 명령을 실행해줍니다. 단,&nbsp;테이블: wp_users에서 데이터를 클릭하고 고유번호 ID를 확인 합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750832161-4861.png"><br></p><pre>UPDATE wp_users&nbsp;<br>SET user_pass = MD5('원하는비밀번호')&nbsp;<br>WHERE ID = 고유번호;</pre><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750832123-5318.png"><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750832132-7421.png"><br></p><p>비밀번호만 변경하여 사용하는 간단한 방법이며 아래를 관리 계정을 추가하는 방법 입니다.</p><p><br></p><p><br></p><blockquote class="blockquote">관리자 계정 추가하기</blockquote><p><br></p><p>사용자 정보가 저장되어 있는 wp_users 테이블을 클릭해 보면 데이터를 클릭하여 등록된 관리자 정보 확인이 가능합니다.</p><p>SQL 명령을 클릭하고 SQL 명령어 텍스트 박스에서 아래 정보에서 비밀번호를 변경하고 실행 해주도록 합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750832218-9293.png"></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750832286-8491.png"></p><p><br></p><pre>INSERT INTO wp_users (<br>&nbsp; &nbsp; user_login, user_pass, user_nicename, user_email, user_status, display_name, user_registered<br>) VALUES (<br>&nbsp; &nbsp; 'admin',<br>&nbsp; &nbsp; MD5('여기에_원하는_비밀번호'),<br>&nbsp; &nbsp; 'admin',<br>&nbsp; &nbsp; 'admin@example.com',<br>&nbsp; &nbsp; 0,<br>&nbsp; &nbsp; 'admin',<br>&nbsp; &nbsp; NOW()<br>);</pre><p><br></p><p>방금 추가한 ID 확인한다.</p><pre>SELECT ID FROM wp_users WHERE user_login = 'admin';</pre><p><br></p><p>wp_usermeta에 권한 정보 추가</p><p>여기서는 예시로 id를 7이라고 가정한 정보이므로 위에서 아이디를 확인하고 입력합니다.</p><pre>INSERT INTO wp_usermeta (user_id, meta_key, meta_value) VALUES<br>(7, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}'),<br>(7, 'wp_user_level', '10');</pre><p><br></p><p><br></p><blockquote class="blockquote">기타 오류&nbsp; 및 해결 사항</blockquote><p><br></p><p>대부분&nbsp;wp_users 테이블을 사용하지만 설치할 때 다른 이름을 썼다면 테이블 리스트를 보고 이름을 변경하여 명령을 실행합니다.</p><p>캐시 문제라면? 아래 주소를 실행하여 캐시를 비울 수 있다.</p><pre>/wp-content/object-cache.php</pre><p><br></p><p>플러그인 문제라면? 플러그인을 모두 비활성화 한다.</p><pre>UPDATE wp_options SET option_value = 'a:0:{}' WHERE option_name = 'active_plugins';&nbsp;</pre><p><br></p><p>기본 테마의 문제라면? 테마를 변경 해주도록 한다.</p><pre>UPDATE wp_options SET option_value = 'twentytwentyfour' WHERE option_name = 'template';<br>UPDATE wp_options SET option_value = 'twentytwentyfour' WHERE option_name = 'stylesheet';</pre><p><br></p><p>워드프레스 관리자 이메일을 몰라 접속이 불가능한 경우 비번을 변경하거나 추가하는 방법에 대해서 소개 해 드렸습니다.</p><p>프로그램 없이도 설치형 블로그 홈페이지를 운영할 수 있고 다양한 테마와 플러그인 지원으로 마우스 클릭만으로 사이트를 관리할 수 있는 장점이 있습니다.</p><p>그러나 플러그인 업데이트가 중단 되거나 호환성 문제가 발생하면 워드프레스 메인 엔진 업데이트가 불가능한 경우가 있어 테마와 플러그인 선택할 때 주의가 필요합니다.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 일상리뷰]]></category>
<title><![CDATA[ 2019년 구입하여 아직 쌩쌩한 내 컴퓨터 : Ryzen 7 3700X]]></title>
<link>https://www.dut.kr/daily/671/2019-pc-spec</link>
<guid>https://www.dut.kr/daily/671/2019-pc-spec</guid>
<pubDate>Wed, 25 Jun 2025 14:02:44 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750827701-8431.png"><br></p><p><br></p><p>전체적으로 2019년 당시 부품 구성이 매우 훌륭하며, 현재 사용하시는 용도에 거의 완벽하게 부합하는 가성비 좋은 생산성 머신입니다. 게임을 하지 않기에 불필요한 지출 없이 핵심에 집중한, 아주 현명한 구성이라고 볼 수 있습니다.</p><p><br></p><blockquote class="blockquote">컴포넌트별 상세 분석</blockquote><p><br></p><p><b>CPU (두뇌): AMD Ryzen 7 3700X</b></p><p>분석 : 8코어 16스레드의 강력한 멀티태스킹 능력은 이 컴퓨터의 핵심입니다. 2024년 기준으로도 전혀 부족함이 없는, 여전히 현역 중의 현역입니다. 브라우저 탭 10~20개를 띄우고, 코딩을 하면서, 블로그 글을 쓰는 등 여러 작업을 동시에 해도 버벅임이 적은 이유가 바로 이 CPU 덕분입니다. "든든한 8기통 엔진"을 장착한 셈이죠.</p><p><br></p><p><b>RAM (작업대): 32GB</b></p><p>분석: 이건 정말 '신의 한 수' 였습니다. 2019년에 32GB를 구성하신 것은 매우 현명한 선택입니다. 수많은 브라우저 탭과 포토샵, 각종 프로그램들은 모두 RAM이라는 작업대 위에서 돌아갑니다. 이 작업대가 32GB로 광활하기 때문에 여러 프로그램을 동시에 띄워도 컴퓨터가 느려지지 않는 것입니다. 16GB였다면 지금쯤 "아이고, 답답해!" 소리가 나왔을 겁니다.</p><p><br></p><p><b>VGA (눈과 손): AMD Radeon RX 580 8GB</b></p><p>- 분석 : 이 컴퓨터의 '고군분투 담당' 입니다. RX 580은 원래 Full HD(1920x1080) 환경에서 게임을 원활하게 돌리기 위해 태어난 전설적인 명기입니다. 하지만 지금은 무려 4K(3840x2160) 모니터 2대라는 어마어마한 해상도를 책임지고 있습니다. (4K 모니터 하나가 Full HD 4개 넓이, 2대니 총 8배!)</p><p>게임은 안 하시니 괜찮지만, 웹 서핑이나 영상 시청, 캔바 작업 등에서도 이 그래픽 카드는 "사장님, 제가 이걸 다요...?" 하면서 열심히 일하고 있을 겁니다. 가끔 화면 전환이나 스크롤 시 미세한 버벅임이 느껴진다면, 그건 바로 이 친구가 땀 흘리고 있다는 증거입니다.</p><p><br></p><p><b>SSD (책상 서랍): 1TB WD Blue</b></p><p>분석 : 부팅, 프로그램 실행, 파일 저장 등 모든 데이터가 이 곳을 거칩니다. 1TB의 넉넉한 용량과 빠른 속도는 컴퓨터 사용의 '쾌적함' 을 책임지는 기본 중의 기본입니다. 구입 이력을 보니 처음엔 250GB로 시작하셨다가 1TB로 업그레이드하신 것 같네요. 용량 부족의 답답함을 느끼고 현명하게 확장하신 결과입니다.</p><p><br></p><p><b>모니터 (작업 공간): 4K 32인치 2대</b></p><p>분석 : 코딩, 블로그 글쓰기에 이보다 더 좋은 환경은 없습니다. 넓디 넓은 화면에 여러 창을 동시에 띄워 놓고 작업하는 것은 생산성의 끝판왕이죠. 다만, 위에서 말씀드렸듯 이 엄청난 작업 공간을 표시해주는 그래픽 카드에게는 조금 버거운 상대이기도 합니다.</p><p><br></p><blockquote class="blockquote">종합 평가 및 추천</blockquote><p><br></p><p>현재 상태: CPU와 RAM이라는 강력한 '뇌지컬'과 그래픽 카드라는 '평균적인 피지컬'이 조화를 이룬 상태입니다. 현재 사용 용도에는 큰 문제가 없지만, 듀얼 4K 환경을 100% 부드럽게 활용하기엔 그래픽 카드의 힘이 살짝 아쉽습니다.</p><p><br></p><p>업그레이드 추천 (만약 한다면):</p><p><b>1순위 (체감 UP!): 그래픽카드</b></p><p>게임을 안 하시니 비싼 제품은 필요 없습니다. 지포스 RTX 3050이나 RTX 4060 정도만 되어도 듀얼 4K 환경에서 훨씬 부드러운 화면 움직임, 쾌적한 포토샵/캔바 작업, 최신 영상 코덱(AV1) 가속으로 인한 저전력 고화질 영상 시청이 가능해집니다. 현재 시스템의 유일한 아쉬움을 완벽하게 채워줄 업그레이드입니다.</p><p><br></p><p><b>2순위 (선택 사항): CPU</b></p><p>현재 메인보드(X570)는 라이젠 5000번대 CPU를 지원합니다. 나중에 정말 큰 성능 향상을 원하신다면 라이젠 7 5700X나 5800X3D로 교체하는 '가성비 끝판왕' 업그레이드도 가능합니다. 하지만 지금도 충분히 좋으니 급하진 않습니다.</p><p><br></p><p><br></p><p>내 컴퓨터는 2019년에 조립한 친구다. </p><p>가격은 130만 원.</p><p>그 시절에는 꽤 괜찮은 사양이었고, 지금도 4K 모니터 두 대를 거느리며 꿋꿋이 내 코딩과 블로그 생활을 책임지고 있다.</p><p>게임은 안 하지만, 브라우저 탭 20개는 기본으로 열고, 포토샵, 캔바, FTP, 유튜브, 유튜브뮤직, 포토샵 여러가지 돌려도 무리가 없다.</p><p>가끔은 나보다 더 성실하게 일한다.</p><p><br></p><p><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 일상리뷰]]></category>
<title><![CDATA[ 기가바이트 BIOS 업그레이드 : X570 게이밍 X 예시]]></title>
<link>https://www.dut.kr/daily/670/gigabyte-bios-update</link>
<guid>https://www.dut.kr/daily/670/gigabyte-bios-update</guid>
<pubDate>Wed, 25 Jun 2025 13:48:55 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750826862-4453.png"><br></p><p><br></p><p>X570 게이밍 X 메인보드를 사용하고 있습니다.</p><p>최신 컴퓨터는 아니지만 게임을 하지 않고 있어서&nbsp;AMD Ryzen 7 3700X 8-Core Processor 3.60GHz 성능으로 만족하고 있습니다.</p><p>4K 32인치 듀얼 모니터를 사용하고 있고 RAM이 32GB라서 아직 큰 버벅임은 발생하지 않고 있네요.</p><p><br></p><p>부팅 할 때 BIOS 버전을 보니 F37a 이고 02/17/2022 마지막 업데이트 했다는 걸 확인하였습니다.</p><p>이전에는 윈도우11 설치를 위해 업데이트 하고 나서 신경을 안 쓰고 있었는데 보안 부분에 대한 패치가 확인되어 FA40g 업데이트를 진행하게 되었습니다.</p><p><br></p><blockquote class="blockquote">BIOS 프로그램 설치하기</blockquote><p>GIGABYTE의 경우 APP Center 라는 프로그램을 설치하여 진행하도록 되어 있습니다.</p><p>제가 시도할 때에는 Update from Server를 통해서 해보려고 하니 되지 않아서 아래 버전을 다운 받고 Update from File에서 첨부하여 진행하였습니다.</p><p><a href="https://www.gigabyte.com/Motherboard/X570-GAMING-X-rev-10/support" target="_blank">https://www.gigabyte.com/Motherboard/X570-GAMING-X-rev-10/support</a><a href="https://www.gigabyte.com/Motherboard/X570-GAMING-X-rev-10/support" target="_blank"></a></p><p>설치는 대부분 OK 버튼을 클릭하고 재 부팅 1~2회 후 완료 됩니다.&nbsp;</p><p>혹시 윈도우 진입이 안된다면 BIOS 설정을 Default 설정으로 돌리고 진행하세요.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750826243-9673.png"></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750826529-1422.png"></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750826609-1059.png"><br></p><p><br></p><p><br></p><blockquote class="blockquote">BIOS 업데이트 요약</blockquote><p><br></p><p><b>F38 (2024‑02‑27)</b></p><p>- AGESA V2 1.2.0.B 적용</p><p>- AMD 프로세서 보안 취약점 대응</p><p>- UEFI 보안(LogoFAIL 등) 취약성 해결&nbsp;</p><p><br></p><p><b>F40b (2024‑07‑11)</b></p><p>- AGESA V2 1.2.0.C로 업데이트</p><p><br></p><p><b>F40c (2024‑08‑23)</b></p><p>- AGESA V2 1.2.0.Cc</p><p>- Sinkclose Vulnerability” (SMM Lock Bypass) AMD CPU 취약점 방어&nbsp;</p><p><br></p><p><b>F40g</b></p><p>- F40c 기반, 동일 —Sinkclose 취약점 대응 + CPU 마이크로코드 최신화</p><p>- Rev1.0/1.1 X570 Gaming X도 동일 적용 대상</p><p><br></p><p><br></p><blockquote class="blockquote">왜 업그레이드했어야 했냐?</blockquote><p><br></p><p><b>보안 취약점 개선</b></p><p>AGESA‑B → C → Cc 단계별로 보안 강화 진행, 특히 Sinkclose 취약점은 보안적으로 심각했음</p><p><br></p><p><b>CPU 호환성 강화</b></p><p>F37a(NOT F37 포함)에서 5800X3D 및 Vermeer CPU 지원 추가됨, 이후 마이크로코드 업데이트로 최신 CPU 및 스테핑에도 안정적 지원</p><p><br></p><p><b>UEFI 안정성 보완</b></p><p>LogoFAIL 등 UEFI 부트 관련 버그 해결</p><p><br></p><p>보안 이슈가 있다 보니 업데이트를 잘 한 것 같다. Secure Boot 설정 후 화면 출력 문제가 생길 경우, CMOS 초기화/기본값 복원 시도해보라고 하는 데 다행이 이상이 없는 것을 확인했다.</p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750826590-5939.png"><br></p><p><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 다이어리]]></category>
<title><![CDATA[ 무기력한 번 아웃에서 나를 구출하는 가장 현실적인 방법 : 내 이야기]]></title>
<link>https://www.dut.kr/diary/669/burnout-escape</link>
<guid>https://www.dut.kr/diary/669/burnout-escape</guid>
<pubDate>Tue, 24 Jun 2025 17:56:16 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750764712-7647.png"></p><p style="text-align: center; ">Burnout : 의욕이 모두 타버리고 소진된 상태</p><p><br></p><blockquote class="blockquote">매일 반복되는 무기력감</blockquote><blockquote class="blockquote">지쳐 아무것도 시작할 엄두가 나지 않으신가요?</blockquote><p> </p><p><br></p><p>단순히 쉬기만 하면 해결될 문제라고 생각했지만, 번아웃은 좀처럼 나아질 기미를 보이지 않으셨을 겁니다.</p><p>이 글은 바로 그런 분들을 위해 준비되었습니다. 번 아웃은 단순히 휴식의 부족이 아닌, 우리도 모르는 사이 에너지를 고갈 시키는 일상의 습관에서 비롯된다는 사실을 알려드립니다. 더 이상 상황이 나아 지기만을 기다리는 대신, 스마트폰 사용 시간을 줄여 시간을 되찾고, 나만의 회복 시스템을 만들어 꾸준히 실천하며, 완벽함보다는 꾸준함에 초점을 맞추는 구체적인 방법을 제시합니다.</p><p><br></p><p>지금 바로 이 글을 통해 번아웃의 악순환을 끊고 삶의 활력을 되찾는 여정을 시작해 보세요.</p><p><br></p><p><br></p><hr><p><br></p><p><br></p><p>아침에 눈을 뜨면 몸이 무겁고, 모니터를 켜는 것조차 버겁게 느껴지는 날이 있으신가요? </p><p>해야 할 일은 쌓여있는데, 정작 아무것도 시작할 엄두가 나지 않아 소파나 침대에 누워 스마트폰만 만지작거리다 하루를 흘려보내곤 합니다. 이건 단순히 피곤한 게 아닙니다. 바로 번 아웃, 에너지가 완전히 소진된 상태라는 신호입니다.</p><p><br></p><p>많은 사람이 번 아웃을 겪으면 쉬어야 한다고 말합니다. 하지만 재택 근무를 하는 개인 사업자에게 그 말은 공허하게 들릴 때가 많습니다. 일을 줄이고 휴식 시간을 늘려도 잠시 뿐, 다시 무기력의 늪으로 빠져드는 경험을 하셨을 겁니다. 저 또한 그랬습니다.</p><p>만약 시간이 문제를 해결해 줬다면, 진작 해결됐어야 합니다. 번 아웃의 진짜 원인은 휴식 부족이 아니라, 나의 에너지를 좀먹는 <b>일상의 패턴</b>에 있기 때문입니다. 이 패턴을 바꾸지 않는 한, 밑 빠진 독에 물 붓기처럼 아무리 쉬어도 에너지는 채워지지 않습니다.</p><p><br></p><p>이제 언젠가 나아 지겠지 라는 막연한 기대를 버리고, 내가 나를 구한다는 마음으로 지금 당장 행동에 나서야 합니다. 약도 지금 먹어야 효과가 있듯, 번 아웃 탈출을 위한 행동도 지금 시작해야 합니다.</p><p><br></p><p><br></p><blockquote class="blockquote">1. 빼앗긴 시간을 되찾으세요</blockquote><p>"바빠서 쉴 시간이 없어." 라고 말하지만, 스마트폰 사용 시간을 확인해보면 깜짝 놀라게 될 겁니다. </p><p>갤럭시는 디지털 웰빙, 아이폰은 스크린 타임에서 확인 해보세요! 내가 스마트폰에 얼마나 시간을 많이 소비하는지를요.</p><p><b><i>우리는 시간이 없는 게 아니라, 무의미한 콘텐츠에 시간을 빼앗기고 있습니다.</i></b></p><p><br></p><p>가장 먼저 할 일은 나를 위한 시간을 의도적으로 확보하는 것입니다. 하루에 단 30분이라도 좋습니다. 이 시간에는 스마트폰을 끄거나 무음으로 전환하고, 온전히 나에게 집중하세요. 회복을 위한 시간은 남는 시간에 하는 것이 아니라, 하루 중 가장 먼저 확보해야 하는 필수 시간입니다.</p><p><br></p><p><b>&lt;나의 실천 준비 : 불필요한 연결 끊기&gt;</b></p><p>유튜브 프리미엄, 넷플릭스 등 자동 재생으로 시간을 빼앗는 구독 서비스 해지하기</p><p>스마트폰 화면을 흑백 모드로 전환해 시각적 자극 줄이기</p><p>불필요한 앱에 앱 타이머를 설정하고, 자주 무음으로 설정하기</p><p>스마트폰 화장실에 들고 가지 않기</p><p><br></p><p><br></p><blockquote class="blockquote">2. 나만의 회복 시스템을 만드세요</blockquote><p>"운동해야지", "건강 챙겨야지" 같은 막연한 목표는 실패하기 쉽습니다. 목표가 아닌, 지킬 수밖에 없는 시스템을 설계해야 합니다. 거창할 필요 없습니다. 아주 작고 구체적인 행동을 루틴으로 만드는 것이 핵심입니다.</p><p><br></p><p><b>저의 경우, 다음 5가지 시스템을 만들었습니다.</b></p><p><br></p><p>시스템 1 : 매일 물 1리터를 꼭 마시기 위해 항상 텀블러를 책상 위에 둔다.</p><p>시스템 2: 불면증 개선과 마음의 안정을 위해 새벽 4시에 일어나 기도 혹은 명상의 시간을 갖는다. 어차피 새벽에 자주 깨어 루틴을 만들었다.</p><p>시스템 3: 집중력 향상을 위해 도서관에 가서 30분간 스마트폰 없이 책을 읽는다.</p><p>시스템 4: 하루를 돌아보고 감정을 정리하기 위해 잠들기 전 5분 일기를 쓴다.</p><p>시스템 5: 꾸준함을 잃지 않기 위해 매일 아침 7시~9시 사이, 내가 운영하는 신문사에 글 1개를 발행한다.</p><p>이처럼 자신만의 루틴을 정하고, 알람을 맞추거나 특정 시간에 무조건 하도록 환경을 설정해 보세요. 루틴이 쌓이면, 어느새 달라진 결과를 마주하게 될 것입니다.</p><p><br></p><p><br></p><blockquote class="blockquote">3. 완벽 주의를 버리고 꾸준함에 집착하세요</blockquote><p>"오늘도 계획대로 못했어. 역시 난 안돼." 이런 자책은 당장 멈춰야 합니다. 변화는 100%가 아니라 1%씩 이뤄져도 괜찮습니다. 하루 망쳤다고 인생이 망하는 건 절대 아닙니다.</p><p><br></p><p>중요한 것은 실패하지 않는 것이 아니라, 넘어져도 다시 돌아오는 것 입니다. 완벽이라는 무거운 짐을 내려놓고, 그저 꾸준히 해나가는 과정 자체에 집중해 보세요. 쉬고 싶으면 쉬어도 괜찮습니다. 단, 내일 다시 시작하면 됩니다.</p><p>스스로에게 물어보세요. 그저 버티는 삶을 살고 싶으신가요, 아니면 내 삶의 주도권을 쥐고 살아내는 삶을 만들고 싶으신가요? 그 선택권은 오로지 당신의 손에 있습니다. 내가 바뀌면 모든 것이 바뀔 수 있다는 것은 절망이 아니라 희망입니다.</p><p><br></p><p><b>완벽하지 않아도 괜찮습니다.</b></p><p><b> 빠르지 않아도 괜찮습니다. </b></p><p><b>포기하지만 않는다면, 우리는 반드시 이 무기력한 터널을 빠져나올 수 있습니다.</b></p><p><br></p><p>어차피 한번 뿐인 인생 속도는 중요하지 않으며 내 인생이기에 소중합니다.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 작업로그]]></category>
<title><![CDATA[ 워드프레스 사이트 이사? 도메인 변경 후 반드시 해야 할 4가지 후속 작업]]></title>
<link>https://www.dut.kr/job/668/wordpress-change-domain</link>
<guid>https://www.dut.kr/job/668/wordpress-change-domain</guid>
<pubDate>Tue, 24 Jun 2025 13:58:01 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750741672-2081.png"><br></p><p><br></p><p>워드프레스 사이트의 도메인을 변경하는 것은 단순히 주소를 바꾸는 것 이상의 작업입니다. </p><p>기존의 모든 데이터와 검색 엔진 최적화(SEO) 순위를 안전하게 새로운 도메인으로 이전하려면 체계적인 접근이 필요합니다. 이 글에서는 https://hangangups.co.kr에서 https://www.hangangups.com으로 도메인을 변경하는 과정을 데이터베이스의 정보와 포스트 내 이미지 링크까지 완벽하게 바꾸는 방법을 단계별로 상세히 안내합니다.</p><p><br></p><p><br></p><blockquote class="blockquote">1단계: 작업 전 필수 준비 - 안전한 백업</blockquote><p>도메인 변경 작업 중 예기치 않은 문제가 발생할 경우를 대비해 사이트를 복원할 수 있도록 반드시 전체 백업을 진행해야 합니다. 사용하고 계신 호스팅 업체의 백업 서비스를 이용하거나, 'UpdraftPlus', 'All-in-One WP Migration'과 같은 백업 플러그인을 사용하여 파일과 데이터베이스를 모두 백업해두시길 바랍니다.</p><p><br></p><p>호스팅이라면 백업 기능을 이용할 수 있습니다.&nbsp;</p><p>SSH 접속이 가능하다면 명령어로도 백업이 가능합니다.</p><pre>#tar cvfz backup.tgz public_html/</pre><p><br></p><p><br></p><blockquote class="blockquote">2단계: 워드프레스 핵심 설정 변경</blockquote><p>가장 먼저 워드프레스에 새로운 도메인 주소를 인식시켜야 합니다.</p><p><br></p><p>워드프레스 관리자 페이지에 접속합니다.</p><p>설정 &gt; 일반 메뉴로 이동합니다.</p><p>**워드프레스 주소(URL)**와 사이트 주소(URL) 항목을 새로운 도메인 주소인 https://www.hangangups.com으로 변경하고 저장합니다.</p><p>이 변경 후에는 기존 주소로는 관리자 페이지 접속이 불가능해지니 유의해야 합니다.</p><p><br></p><p><br></p><blockquote class="blockquote">3단계: 데이터베이스(DB) 내 모든 주소 변경하기</blockquote><p>워드프레스 설정에서 주소를 변경해도, 글 본문, 이미지 경로, 각종 설정에 남아있는 기존 도메인 주소(https://hangangups.co.kr)는 자동으로 바뀌지 않습니다. 이를 해결하기 위해 데이터베이스 전체에서 이전 도메인 주소를 찾아 새 도메인 주소로 변경(Search &amp; Replace)하는 작업이 필요합니다.</p><p><br></p><p>플러그인 설치가 불가능 한 경우는 데이터베이스에서 치환을 해주면 됩니다.</p><pre>UPDATE wp_posts SET post_content = REPLACE(post_content, '이전_도메인', '새_도메인'); UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, '이전_도메인', '새_도메인') WHERE meta_key LIKE ('_wp_attached_file' OR '_wp_attachment_metadata');</pre><p><br></p><p>가장 안전하고 쉬운 방법은 'Velvet Blues Update URLs' 또는 'Go Live Update URLs'와 같은 전문 플러그인을 사용하는 것입니다. 여기서는 'Go Live Update URLs'를 예로 들어 설명하겠습니다.</p><p><br></p><p>1. 워드프레스 관리자 페이지에서 플러그인 &gt; 새로 추가로 이동하여 'Go Live Update URLs'를 검색해 설치하고 활성화합니다.</p><p>2. 도구 &gt; Go Live 메뉴로 이동합니다.</p><p>3. Free 버전의 Update URLs 탭에서 아래와 같이 입력합니다.</p><p>- Old URL: https://hangangups.co.kr</p><p>- New URL: https://www.hangangups.com</p><p>4. 모든 테이블이 선택되었는지 확인한 후, Update URLs 버튼을 클릭합니다.</p><p><br></p><p>이 플러그인은 데이터베이스의 모든 테이블을 검사하여 이전 도메인 주소가 포함된 모든 데이터를 새로운 도메인 주소로 안전하게 변경해줍니다. 이를 통해 깨진 이미지 링크나 내부 링크 문제를 한번에 해결할 수 있습니다.</p><p><br></p><p><br></p><blockquote class="blockquote">4단계: 변경 후 확인 및 후속 조치</blockquote><p><br></p><p>모든 변경이 완료된 후에는 사이트가 정상적으로 작동하는지 꼼꼼히 확인해야 합니다.</p><p><br></p><p>- 사이트 접속 확인: 새로운 도메인 https://www.hangangups.com으로 접속했을 때 사이트가 정상적으로 표시되는지 확인합니다.</p><p>- 링크 확인: 사이트 내의 여러 페이지를 방문하며 메뉴, 본문 내 링크, 이미지 등이 깨지지 않고 올바르게 연결되는지 확인합니다.</p><p>- 301 리디렉션 설정: 검색 엔진 최적화(SEO)를 위해 이전 도메인(https://hangangups.co.kr)으로 접속 시 새로운 도메인으로 자동 이동되도록 301 영구 리디렉션을 설정해야 합니다. 이 설정은 보통 호스팅 업체의 관리자 페이지나 .htaccess 파일을 수정하여 적용할 수 있습니다.</p><p>- 검색 콘솔 업데이트: 구글 서치 콘솔(Google Search Console)과 네이버 서치어드바이저에 새로운 도메인을 등록하고, 이전 사이트의 주소 변경 기능을 이용하여 도메인 변경 사실을 검색 엔진에 알려야 합니다. 이는 기존의 검색 순위를 새로운 도메인으로 이전하는 데 매우 중요한 과정입니다.</p><p><br></p><p>위의 과정을 차근차근 따라 하시면, 데이터 손실이나 SEO 불이익 없이 안전하게 워드프레스 도메인을 변경할 수 있습니다.</p><p><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 작업로그]]></category>
<title><![CDATA[ [세진파킹] 문구 수정, 앱 회전 로그인유지, 달력 개선, 점포주 등록 화면]]></title>
<link>https://www.dut.kr/job/667</link>
<guid>https://www.dut.kr/job/667</guid>
<pubDate>Thu, 19 Jun 2025 20:00:38 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750330818-1719.png"><br></p><p><br></p><p>작업 목록</p><p>1. 불필요한 표시 부분&nbsp; : 방문자 구입에서 관련 문구 수정 및 개선</p><p>2. 캘린더 변경 : 기본 캘린더가 아닌 커스텀 년, 월, 일 달력 방식 변경</p><p>3. 앱 회전 로그 오픈 되는 문제 : 수정 완료 되었으며 앱 업데이트 후 사용 가능</p><p>4. 점포주 등록 : 필수 항목 해제, 미 사용 부분 제외</p><p>5. 앱 또는 모바일 화면 선택 메뉴 표시 : 강조를 위해 중앙 정렬 했던 부분 변경</p><p><br></p><p>가장 많이 사용하는 방문자 등록 부분의 문구를 통일하고 사용하지 않는 부분에 대해 삭제를 요청하였습니다.</p><p>모든 현장에 적용 되는 부분으로 특정 현장을 다르게 지정해야 하는 경우에는 현장 설정이 필요하므로 다시 알려주세요.</p><p><br></p><blockquote class="blockquote">오류 수정 및 개선</blockquote><p>장기 할인 영구 할인의 경우 기존 필수 선택 기능으로 설정 값이 없을 때에는 기본 checked 되게 하여 처리 됩니다.</p><p>불필요한 문구는 모드 제거 하거나 표시하지 않도록 합니다.</p><p>달력에서 삭제 버튼과 설정 버튼을 확인 버튼으로 요청하였습니다.</p><p>날짜를 바로 선택하면 입력되도록 하여 확인 버튼도 삭제하였고 삭제 버튼도 제거 하였습니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750398922-3444.png"><br></p><p><br></p><p><br></p><blockquote class="blockquote">방문자 등록 문구 삭제</blockquote><p>수정파일 : ticket_edit.php</p><p><br><br>"유료 방문자 최대 20대 가능합니다. 영구 방문자 구매 불가 합니다." 문구 삭제</p><p>"예약등록"을 예약 일자로 변경</p><p>"차량등록"을 차량 번호로 변경</p><p>"예시000한0000" 문구 삭제</p><p>"영구 방문자 권한이 없습니다." 문구 삭제</p><p>"유료 방문자 최대 20대" 문구 삭제</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750329997-3626.png"></p><p><br></p><p><br></p><blockquote class="blockquote">충전 표기 분 삭제</blockquote><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750330321-3085.png"></p><p><br></p><p><br></p><blockquote class="blockquote">방문자 등록 표기 부분 삭제</blockquote><p>수정파일 ticket_list.php</p><p>유료 방문자 최대 00대 가능합니다. 영구 방문자 구매가 불가 합니다. 표기를 삭제 합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750330459-7875.png"><br></p><p><br></p><p><br></p><blockquote class="blockquote">앱에서 화면 회전시 로그오프 되는 문제</blockquote><p><br>문제의 핵심 원인: 안드로이드 생명주기 (Activity Lifecycle)<br>가장 핵심적인 원인은 안드로이드의 화면 회전 시 동작 방식에 있습니다.</p><p><br></p><p>사용자가 스마트폰 화면을 가로 또는 세로로 회전 시킵니다.</p><p>안드로이드 운영체제는 화면 구성이 바뀌었다고 판단하여 현재 화면(Activity)을 강제로 종료(Destroy)하고, 새로운 방향에 맞춰 화면을 처음부터 다시 만듭니다(Create).</p><p>이 과정에서 화면 안에 있던 웹뷰(WebView) 역시 함께 종료되었다가 새로 만들어집니다.</p><p>새로 만들어진 웹뷰는 이전에 가지고 있던 로그인 정보(PHP 세션 쿠키)를 잃어버린 상태로 페이지를 처음부터 다시 불러옵니다.</p><p>웹 서버(PHP) 입장에서는 세션 쿠키가 없는 새로운 접속 요청이 들어온 것이므로, 당연히 비로그인 상태로 페이지를 보여주게 됩니다.</p><p><br></p><p><b>방법 1. 화면 회전 시 Activity를 유지하도록 설정 (간단한 해결책)</b></p><p>AndroidManifest.xml 파일의 activity 설정에 android:configChanges 속성을 추가하여, 화면 방향이 바뀌어도 Activity를 새로 만들지 않고 유지하도록 하는 방법입니다.</p><pre>&lt;activity android:name=".YourWebViewActivity" android:configChanges="orientation|screenSize|keyboardHidden" ...&gt; &lt;/activity&gt;</pre><p>장점: 가장 간단하고 빠르게 문제를 해결할 수 있습니다.</p><p>단점: 안드로이드의 표준적인 처리 방식이 아니며, 추후 다른 예기치 못한 문제를 발생시킬 수 있습니다. (하지만 단순한 웹뷰 앱에서는 큰 문제가 없는 경우가 많습니다.)</p><p><br></p><p><b>방법 2. Activity 상태 저장 및 복원 (권장되는 해결책)</b></p><p>안드로이드에서 권장하는 정석적인 방법입니다. Activity가 종료되기 직전에 현재 웹뷰의 상태(쿠키 정보 포함)를 저장했다가, Activity가 새로 생성될 때 그 상태를 복원해주는 방식입니다.</p><p>onSaveInstanceState 와 onRestoreInstanceState 메소드를 사용합니다.</p><pre>public class YourWebViewActivity extends AppCompatActivity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = findViewById(R.id.webview); // ... 기타 웹뷰 설정 ... if (savedInstanceState != null) { // 이전에 저장된 상태가 있으면 복원 webView.restoreState(savedInstanceState); } else { // 처음 로드하는 경우 webView.loadUrl("https://your-website.com/login"); } } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); // 화면이 사라지기 전에 현재 웹뷰의 상태를 저장 webView.saveState(outState); } }</pre><p>장점: 안드로이드 생명주기를 따르는 가장 안정적이고 표준적인 방법입니다.</p><p>단점: configChanges 방법보다는 코드를 조금 더 추가해야 합니다.</p><p><br></p><p><b>방법 3. 쿠키 매니저 동기화 확인</b></p><p>웹뷰의 쿠키가 시스템의 쿠키 저장소와 제대로 동기화되도록 처리하는 코드도 중요합니다. 특히 앱이 종료되거나 백그라운드로 갈 때 쿠키를 확실히 저장하도록 CookieManager.getInstance().flush()를 호출해주는 것이 좋습니다.</p><p>요약 및 다음 행동 제안</p><p>1. 문제의 원인: PHP나 웹 서버의 문제가 아닌, 안드로이드 앱이 화면 회전 시 웹뷰의 로그인 정보(쿠키)를 유실하기 때문입니다.</p><p>2. 해결 주체: 이 문제는 안드로이드 앱 개발자가 코드를 수정해야 해결할 수 있습니다.</p><p>3. 개발자에게 요청할 내용:</p><p>"화면 회전 시 Activity가 재생성되면서 웹뷰의 세션 쿠키가 유지되지 않는 것 같습니다." 라고 상황을 정확히 설명하세요.</p><p>해결 방안으로 AndroidManifest.xml에 configChanges 속성을 추가하거나, onSaveInstanceState를 사용하여 웹뷰의 상태를 저장하고 복원하는 방법을 적용해달라고 구체적으로 요청해 보세요.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 테크정보]]></category>
<title><![CDATA[ 브라우저 캐시 비우기 : 이전 웹사이트 표시 및 리다이렉트 문제]]></title>
<link>https://www.dut.kr/tech/666/cache-clear-edge-chrome</link>
<guid>https://www.dut.kr/tech/666/cache-clear-edge-chrome</guid>
<pubDate>Tue, 17 Jun 2025 17:04:36 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750147441-2380.png"><br></p><p><br></p><p>홈페이지를 리뉴얼 하거나 세팅이 바뀌는 경우에도 이전 페이지가 표시되거나 다른 페이지로 이동 되는 경우가 있습니다.</p><p>대부분 Ctrl + Shifte + R 또는 Ctrl + R 키를 눌러 캐시 없이 새로 고침을 하면 되지만 주소를 직접 입력하는 경우에는 해당 단축키 사용이 어려운 경우가 있습니다.</p><p>이런 경우에는 브라우저 캐시를 비우게 되면 이전에 저장되어 있는 정보를 삭제하여 접속할 수 있도록 해 줍니다.</p><p><br></p><p><b>여기에서 캐시(Cache)란?</b></p><p>한번 불러온 데이터를 임시로 저장 해 두는 공간으로 다음에 같은 걸 요청할 때 더 빠르게 보여줄 수 있도록 저장되는 데이터를 의미 합니다.</p><p>단점은 이전 버전에 데이터를 계속 보여주거나 이전에 저장된 URL 주소가 표시되기도 합니다. 그리고 지속적으로 저장되어 컴퓨터 용량을 계속 증가 시키고 보안을 위해 주기적으로 삭제하는 것도 좋은 방법이 됩니다.</p><p><br></p><blockquote class="blockquote">1. 크롬 Chrome 캐시 비우는 방법</blockquote><p>단축키를 통해 쉽게 해당 메뉴로 이동할 수 있으며 윈도우는<b><font color="#ff0000"> Ctrl + Shift + Delete</font></b> / 맥은 <b><font color="#ff0000">Cmd + Shift + Delete</font></b> 키를 누릅니다.</p><p>아래와 같이 인터넷 사용 기록 삭제라는 화면이 표시되며 기간을 지정하고 데이터를 삭제할 수 있습니다.</p><p>고급 화면에서는 다운로드 기록 및 비밀번호 및 기타 로그인 데이터, 양식 데이터 자동 완성 등&nbsp; 공용 컴퓨터를 사용한 다면 삭제하는 것을 권장합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750146447-8123.png">&nbsp;<img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750146471-6327.png"></p><p><br></p><p><br></p><blockquote class="blockquote">마이크로소프트 엣지 Edge 브라우저 캐시 비우는 방법</blockquote><p>크롬 브라우저는 별도로 설치해야 하므로 기본으로 포함되어 있는 엣지 브라우저에서 캐시 비우는 방법에 대해서 설명 드립니다.</p><p>단축키 <b><font color="#ff0000">Ctrl + Shift + Delete</font></b> 키를 누르면 검색 데이터 삭제 화면이 표시 됩니다.</p><p>기본적으로 지금 지우기 버튼을 누르면 캐시 삭제가 되며 여러 옵션이 있으니 필요에 따라 선택 후 제거가 가능합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750146612-1897.png">&nbsp;<img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750146620-2025.png"></p><p><br></p><p><br></p><blockquote class="blockquote">크롬 시크릿창 모드 또는 엣지 InPrivate 이용</blockquote><p>캐시를 비우기 번거롭게 느끼는 경우에는 새 시크릿창 모드를 Ctrl + Shift + N 키를 눌러 실행 해 줍니다.</p><p>시크릿 모드는 말 그대로 내가 접속하는 정보를 남기지 않고 접속하는 방법으로 공용 컴퓨터나 다른 로그인이 필요할 때 사용하기 좋습니다.</p><p>엣지 브라우저도&nbsp;Ctrl + Shift + N 동일한 키로 실행이 가능하지만 이름은 새 InPrivate 브라우징이라는 이름을 사용하고 있습니다.</p><p><br></p><p>크롬 브라우저의 시크릿 모드</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750146936-1895.png"></p><p><br></p><p>엣지 브라우저의 InPrivate 브라우징</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750146913-2080.png"><br></p><p><br></p><p><br></p><blockquote class="blockquote">참고 하기</blockquote><p>참고로 개발자 모드 F12 키를 누르고 F5 새로 고침 키를 누르면 캐시를 무시하고 적용이 되는 방법도 있습니다. 개발자에게 소스 수정을 할 수 있도록 캐시 없이 결과를 보여주는 편법이므로 공식적인 방법은 아닙니다.</p><p><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 작업로그]]></category>
<title><![CDATA[ [sdongaeng.co.kr] 메타 태그 가이드라인 전달]]></title>
<link>https://www.dut.kr/job/665/meta-tag-seo-sir</link>
<guid>https://www.dut.kr/job/665/meta-tag-seo-sir</guid>
<pubDate>Tue, 17 Jun 2025 15:18:45 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750141070-5663.png"><br></p><p><br></p><p>유지 보수 업체나 제작 업체가 FTP 접속 정보를 제공하지 않는 경우 가이드라인을 보내드리고 있습니다.</p><p><br></p><p>제작 환경을 확인 해 보니 그누보드로 확인 됩니다. 사이트 제목은 관리자에서 수정해야 모든 페이지가 적용 됩니다. 일반적으로 사이트 주소/adm URL을 사용합니다.</p><p>관리자 추가 소스 부분에 아래 가이드라인 소스를 추가 하는 게 일반적이지만 반영이 안되는 경우에는 테마 디렉토리 안에 있는 HEAD 파일을 수정 해 주세요.</p><p><br></p><p>도메인 : https://www.sdongaeng.co.kr</p><p>제목 : 신동아이엔지</p><p>설명 : 송풍기, 환경오염 방지 설비, 필드 바란싱 계측기, 얼라인먼트, 측정장비</p><p><br></p><blockquote class="blockquote">현재 소스</blockquote><p>view-source:https://www.sdongaeng.co.kr 아래는 소스보기를 통해 확인된 소스이며 다음 가이드라인에 맞춰 수정 요청합니다.</p><pre>&lt;!doctype html&gt; &lt;html lang="ko"&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;meta name="viewport" id="meta_viewport" content="width=device-width,initial-scale=1.0,minimum-scale=0,maximum-scale=10"&gt; &lt;meta name="HandheldFriendly" content="true"&gt; &lt;meta name="format-detection" content="telephone=no"&gt; &lt;meta http-equiv="imagetoolbar" content="no"&gt; &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt; &lt;link rel="canonical" href="https://www.sdongaeng.co.kr"&gt; &lt;meta name="description" content="산업용송풍기, 송풍기수리, 탈취팬, 부산송풍기, 김해송풍기, 대구송풍기, 터보팬, 대형송풍기, 필드바란싱, 고압송풍기"/&gt; &lt;meta property="og:description" content="산업용송풍기, 송풍기수리, 탈취팬, 부산송풍기, 김해송풍기, 대구송풍기, 터보팬, 대형송풍기, 필드바란싱, 고압송풍기"/&gt; &lt;meta property="og:type" content="website"&gt; &lt;meta property="og:title" content="(주)신동아 이엔지"&gt; &lt;meta property="og:url" content="https://www.sdongaeng.co.kr/"&gt; &lt;title&gt;(주)신동아 이엔지&lt;/title&gt; ※ 소스가 길어서 아랫부분 생략 </pre><p><br></p><p><br></p><blockquote class="blockquote">변경 요청 소스</blockquote><p>위에 소스를 아래와 같이 수정하고 안내 해 주시면 네이버와 구글 수집 후 검색에 적용될 수 있도록 하고 있습니다.</p><p><br></p><pre>&lt;!doctype html&gt; &lt;html lang="ko"&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;meta name="viewport" id="meta_viewport" content="width=device-width,initial-scale=1.0,minimum-scale=0,maximum-scale=10"&gt; &lt;meta name="HandheldFriendly" content="true"&gt; &lt;meta name="format-detection" content="telephone=no"&gt; &lt;meta http-equiv="imagetoolbar" content="no"&gt; &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt; &lt;meta name="robots" content="index, follow"&gt; &lt;meta name="naver-site-verification" content="e70dfa1c248901951c6ec115b4d51ccb1993a8ab" /&gt; &lt;meta name="google-site-verification" content="-tP9IdN3kGsqog803F6SaZppu-rw_qS7akMLMaT_RYA" /&gt; &lt;meta name="Subject" content="신동아이엔지"&gt; &lt;meta name="title" content="신동아이엔지"&gt; &lt;meta name="author" content="https://www.sdongaeng.co.kr"&gt; &lt;meta name="description" content="송풍기, 환경오염 방지 설비, 필드 바란싱 계측기, 얼라인먼트, 측정장비"&gt; &lt;meta name="keywords" content="송풍기, 환경오염 방지 설비, 필드 바란싱 계측기, 얼라인먼트, 측정장비"&gt; &lt;meta property="og:title" content="신동아이엔지"&gt; &lt;meta property="og:url" content="https://www.sdongaeng.co.kr"&gt; &lt;meta property="og:type" content="website"&gt; &lt;meta property="og:description" content="송풍기, 환경오염 방지 설비, 필드 바란싱 계측기, 얼라인먼트, 측정장비"&gt; &lt;meta property="og:site_name" content="신동아이엔지"&gt; &lt;link rel="canonical" href="https://www.sdongaeng.co.kr"&gt; &lt;title&gt;신동아이엔지&lt;/title&gt; ※ 소스가 길어서 아랫부분 생략</pre><p><br></p><p><br></p><blockquote class="blockquote">주의 사항</blockquote><p><br></p><p>소스 파일 작업을 하기 전에는 파일을 따로 백업하고 진행 할 수 있도록 합니다.</p><p>중복된 태그가 들어가지 않도록 하며 중복되는 경우 제거 하도록 합니다.</p><p>자동으로 들어가는 메타 태그는 그대로 사용하는 것을 권장 합니다.</p><p>제목은 관리자에서 수정하는 것이 좋습니다.</p><p><br></p><p><br></p><blockquote class="blockquote"><p>소유자 확인 및 수집 완료</p></blockquote><p>아래와 같이 네이버 및 구글 소유자 확인 및 수집 처리가 완료되었습니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750228243-3891.png"></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750228476-6039.png"><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 테크정보]]></category>
<title><![CDATA[ 검색등록 대행 업무에 대한 고려 사항 : 검색 등록 주의사항]]></title>
<link>https://www.dut.kr/tech/664/search-engine-register</link>
<guid>https://www.dut.kr/tech/664/search-engine-register</guid>
<pubDate>Tue, 17 Jun 2025 11:05:38 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750125903-1679.png"><br></p><p><br></p><p>네이버 및 구글 검색 등록 대행 업무를 2017년부터 진행하고 있습니다.</p><p>2~3년 전부터는 거래처 위주로만 진행하고 있으며 모니터링과 피드백이 필요한 작업이라서 자주 진행하지 않고 있습니다. 등록 대행 업무를 진행하려고 한다면 아래의 고려 사항을 체크하고 진행하는 것을 추천 합니다.</p><p><br></p><blockquote class="blockquote">검색 등록 대행 업무 고려 사항</blockquote><p><br></p><p><b>1. 홈페이지 접속 정보 제공 필요</b></p><p>워드 프레스나 카페24와 같은 관리자 시스템이 지원하는 경우 접근 가능한 로그인 정보 제공이 필요 합니다. 관리 권한이 아닌 운영 권한의 아이디를 주는 경우 설정 변경이 안되거나 플러그인 설치가 불가 합니다.</p><p>그누보드로 제작한 홈페이지가 많지만 소스를 수정해서 배포하는 경우가 있어 이런 경우는 관리자 수정 부분이 반영되지 않습니다.</p><p>FTP 홈페이지 접속이 가능한 아이디 비밀번호를 제공하면 홈페이지 소스에 접근하여 수정이 가능합니다. 이런 경우 소스를 분석 해야 하는 경우도 있습니다.</p><p><br></p><p><b>2. 접속 제공 불가 가이드라인 제공 요청</b></p><p>홈페이지 유지 보수 업체에서 FTP 정보 제공이 불가 하거나 보안을 이유로 알려주지 않는 경우가 있습니다. 이런 경우에는 현재 소스를 분석해서 메타 태그와 수정할 부분에 대한 가이드라인을 제공 하고 있습니다.</p><p>이런 경우에는 실제 유지 보수 업체에서 적용을 안 해주거나 오래 걸리는 경우가 있어 계속 요청하고 모니터링이 필요합니다.</p><p>메타 태그 수정 + 소유자 확인 파일 업로드 부분이 완료되면 이후 수집 및 모니터링을 해야 합니다.</p><p>그러나, 홈페이지 시작 화면에서 여러 번 리다이렉트 되거나 IFRAME으로 다른 도메인을 연결 한 경우라면 작업 불가능하기도 합니다.</p><p><br></p><p><b>3. 네이버 사이트 반영 불가</b></p><p>홈페이지가 오래되고 메타 태그를 한번도 수정하지 않은 경우에는 웹 마스터 도구 가이드라인에 맞춰 수정을 한다고 해도 전혀 변경이 안되는 경우가 있습니다. 이런 경우도 해결이 가능하지만 모니터링 및 네이버 고객센터에 이유를 보내줘야 합니다.</p><p>한번에 안되는 경우도 있고 여러 차례 요청을 해도 반영이 안되는 경우가 있어 반영 여부 시기를 정확히 할 수가 없습니다.</p><p><br></p><p><b>4. 구글 검색 등록 반영 여부</b></p><p>구글의 경우는 네이버와 동일하게 메타 태그를 그대로 수집하여 사용하므로 소유 확인만 하면 처리되는 경우가 많습니다. 그렇지만 설명 문구가 홈페이지 내용에서 추출해서 그대로 표시되는 경우가 있고 메타 태그를 변경해도 실제 검색에서는 반영이 안되는 경우가 있고 해결하기 어려운 경우도 있습니다.</p><p><br></p><p><b>5. 소스 수정에 대한 리스크</b></p><p>작업 전에 백업을 하더라도 사람이 하는 작업이라서 특정 파일을 잘못 덮어 씌우거나 삭제하는 경우가 생깁니다. 이런 경우에는 호스팅 업체에서 자동 백업을 해주는 곳의 경우 해결 방법이 있지만 그렇지 않을 때에는 해결이 불가능 한 경우도 생길 수 있습니다.&nbsp;</p><p>이런 문제를 경험하고 나서는 꼭 백업을 하긴 하지만 실수로 핵심 파일을 날리게 되면 비해 보상을 하게 될 수도 있습니다.</p><p><br></p><p><b>6. 작업 불가 사례</b></p><p>구글 검색 등록을 하기 위해서는 소유자 확인 및 색인 작업이 필요하지만 보안 때문에 해외 접속을 무조건 차단하는 경우가 있으며 해당 유지 보수 또는 서버 관리 업체의 지원 없이는 불가능 한 경우가 있습니다.</p><p>홈페이지 소스를 확인하면 화면 껍데기만 표시하고 실제 iframe 으로는 다른 사이트로 연결되어 있는 경우 있습니다. 전혀 다른 도메인의 홈페이지를 표시하기에 도메인 이전 작업을 해야 합니다.</p><p><br></p><p><b>7. 작업 난이도 높은 작업</b></p><p>도메인을 변경하고자 하는 경우가 있습니다. 이런 경우에는 이전 도메인 호스팅 접속 정보와 함께 신규 사이트 도메인 호스팅 정보를 받아서 처리 합니다.</p><p>이전 사이트를 유지하고자 하는 경우도 있고 구 사이트가 없다면 임시로 호스팅을 세팅하여 페이지가 이동하는 방식을 사용하기도 합니다. 이러한 문제를 해결하기 위해서는 도메인 구입처에서 포워딩 서비스를 이용하는 게 간편할 수 있지만 기존에 웹페이지는 페이지가 없는 상태로 오랜 기간 남아 있을 수 있습니다. 웹 마스터 도구에서 일일이 주소를 확인해서 삭제 작업이 필요합니다.</p><p><br></p><p>실제 작업을 해보면 홈페이지마다 작업 환경이 모두 다르고 지원 받는 유지 보수 업체나 서버가 달라서 구 제작 방식부터 새로운 방식까지 이해를 하고 있어야 합니다.</p><p>업체와 여러 차례 연락을 취하고 요구 사항을 받아 검색 등록 여부를 모니터링 하는 작업이 필요한 업무 입니다.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 작업로그]]></category>
<title><![CDATA[ [hangangups.com] 도메인 변경 및 네이버와 구글 사이트 설명 다르게 지정]]></title>
<link>https://www.dut.kr/job/663</link>
<guid>https://www.dut.kr/job/663</guid>
<pubDate>Tue, 17 Jun 2025 10:41:51 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750124448-7743.png"><br></p><p>한강기전이라는 사이트로 도메인은&nbsp;<a href="https://hangangups.co.kr" target="_blank">https://hangangups.co.kr</a>&nbsp;이지만&nbsp;<a href="https://www.hangangups.com" target="_blank">https://www.hangangups.com</a>&nbsp;도메인으로 변경을 요청하였습니다.</p><p>워드 프레스로 제작되어 있고 관리자 정보를 받았으나 실제 관리자 권한이 아니라서 해당 방법으로는 불가능하여 FTP 정보를 요청하였습니다.</p><p>홈페이지 도메인 변경을 위해서는 기존 도메인에서 신규 도메인 이전 작업을 해야 하는 데 .htaccess 파일 수정 권한이 있어야 하는데 저장이 안되는 문제가 있었습니다.</p><p>퍼미션 문제 같아서 호스팅 업체에 요청하였으나 동일한 문제로 발견되어 파일에 대한 group 문제 같아서 수정 요청 후 저장 여부를 확인 했습니다.</p><p><br></p><blockquote class="blockquote">기존 관리자 기능 오류 발생</blockquote><p>관리 기능 사용시 오류가 발하여 .htaccess 파일은 원래대로 복구 하였습니다.</p><p>그리고 wp-config.php 파일에서 네이버 Yeti 그리고 Googlebot 경우에만 리다이렉트 하도록 변경하였습니다.</p><pre>if (isset($_SERVER['HTTP_HOST']) &amp;&amp; $_SERVER['HTTP_HOST'] === 'hangangups.co.kr' &amp;&amp; isset($_SERVER['HTTP_USER_AGENT'])) { $userAgent = $_SERVER['HTTP_USER_AGENT']; // Googlebot 또는 Yeti 인 경우 if (strpos($userAgent, 'Googlebot') !== false || strpos($userAgent, 'Yeti') !== false) { // 새 도메인과 요청된 URI를 조합하여 전체 URL을 만듭니다. $new_url = 'https://www.hangangups.com' . $_SERVER['REQUEST_URI']; // 301 영구 이동 헤더를 전송합니다. header('HTTP/1.1 301 Moved Permanently'); header('Location: ' . $new_url); // 코드 실행을 중지하여 워드프레스 로딩을 방지합니다. exit(); } }</pre><p><br></p><p><br></p><blockquote class="blockquote">기존 .htaccess</blockquote><pre>&lt;IfModule mod_rewrite.c&gt; RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] &lt;/IfModule&gt;</pre><p><br></p><p>변경된 .htaccess</p><pre>&lt;IfModule mod_rewrite.c&gt; RewriteEngine On RewriteCond %{HTTP_HOST} ^(www.)?hangangups.co.kr [NC,OR] RewriteCond %{HTTP_HOST} ^hangangups.com [NC] RewriteRule ^(.*)$ https://www.hangangups.com/$1 [L,R=301] RewriteCond %{HTTP_HOST} ^www.hangangups.com$ [NC] RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301] &lt;/IfModule&gt; &lt;IfModule mod_rewrite.c&gt; RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] &lt;/IfModule&gt;</pre><p>해당 스크립트를 이용해서&nbsp;hangangups.co.kr 를 포함하는 도메인은 홈페이지 접속은&nbsp;<a href="https://www.hangangups.com" target="_blank">https://www.hangangups.com</a>&nbsp;도메인으로 이동 되게 하고 기타 파라미터 접속과 함께 https가 아닌 경우도 이동 되게 됩니다.</p><p><br></p><p><br></p><blockquote class="blockquote">네이버 소유자 확인 및 수집 완료</blockquote><p>네이버 소유자 확인 및 웹페이지 수집 작업이 아래와 같이 완료되었습니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750124037-6893.png"><br></p><p><br></p><p><br></p><blockquote class="blockquote">구글 소유자 확인 및 색인 생성</blockquote><p>구글 Search Console에서 소유자 확인이 완료되었고 색인 생성이 완료 되었습니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750124363-5389.png"><br></p><p><br></p><p><br></p><blockquote class="blockquote">참고 사항</blockquote><p>워드 프레스 관리자를 통해서 플러그인 설치를 통해서 작업하지 않았습니다. </p><p>소스를 직접 수정한 방법이라 테마나 플러그인을 업데이트하게 되면 작업한 파일은 삭제될 수 있습니다. 관리자 권한을 받으면 좋은 방법이지만 대부분 워드프레스 운영하는 경우 주기적인 업데이트를 하는 경우가 적습니다. 작업을 하더라도 업데이트를 하지 않는 이유는 플러그인 호환성 문제나 오류가 발생하면 복구 작업이 필요한 경우가 생길 수 있습니다. 전체 백업 후 작업을 진행하면 좋지만 그렇지 못한 경우가 있어 작업 리스크가 발생합니다.</p><p><br></p><p>작업을 시작하기 전에 파일명과 일자를 포함하여 파일을 백업하고 진행하고 있어 나중에 문제가 될 때에 복구하는 데 도움이 되도록 하고 있습니다.</p><p>도메인이 이전하려면 바로 되지 않으므로 여유를 가지고 작업해야 합니다.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 작업로그]]></category>
<title><![CDATA[ 구글 사이트 등록  : 소유자 권한 확인 실패 대처 방법]]></title>
<link>https://www.dut.kr/job/662/google-verification-error</link>
<guid>https://www.dut.kr/job/662/google-verification-error</guid>
<pubDate>Mon, 16 Jun 2025 13:54:36 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750049729-9523.png"><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750049032-8104.png"></p><p>구글 검색엔진에 등록하기 위해서는 URL을 입력하고 소유자 확인 절차를 거치게 됩니다.</p><p>소유권 확인 방법으로는 웹사이트에 HTML 파일을 업로드 하는 방법과 홈페이지 소스의 메타 태그에 소유자 확인 코드를 등록하는 방법 입니다.</p><p>네이버는 정상적으로 소유자 확인이 완료되었습니다.</p><p><br></p><p>그러나 구글의 경우 아래와 같이 소유자 파일을 업로드 해도 안됩니다.</p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750049147-1506.png"><br></p><p><br></p><p>메타 태그를 업로드 해도 소유권 확인이 불가능 합니다.</p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750049199-1499.png"></p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1750049228-4105.png"></p><p><br></p><p>이러한 문제의 요인은 해외 유입되는 해킹 공격이나 과도한 트래픽을 발생하는 검색엔진을 방화벽에서 차단하는 경우가 많습니다.</p><p>해당 문제는 호스팅 업체에서 구글 검색 엔진만 허용 해 주면 해결되는 부분으로 협조가 필요합니다.</p><p><br></p><p>아래 구글 검색 센터에서 Googlebot과 Google 클로러 허용이 필요 하며 해당 IP 허용을 해야 합니다.</p><p>임시로 허용하는 경우 구글에 등록되더라도 다시 삭제되는 문제가 발생 할 수 있습니다.</p><p><br></p><p><a href="https://developers.google.com/search/docs/crawling-indexing/verifying-googlebot?hl=ko" target="_blank">https://developers.google.com/search/docs/crawling-indexing/verifying-googlebot?hl=ko</a></p><p><br></p><p><br></p><blockquote class="blockquote">Googlebot이란?</blockquote><p>Google이 웹사이트 정보를 수집하기 위해 사용하는 웹 크롤러(봇)입니다. 내 사이트에 접속하는 트래픽이 진짜 Googlebot인지 확인하는 것은 보안과 검색엔진 최적화(SEO)에 매우 중요합니다.</p><p><br></p><p><br></p><blockquote class="blockquote">Googlebot 확인, 왜 필요할까요?</blockquote><ul><li>가짜 봇 차단: 악의적인 봇이 내 사이트 리소스를 낭비하거나 정보를 훔쳐 가는 것을 막을 수 있습니다.</li><li>서버 리소스 보호: 불필요한 트래픽을 줄여 서버 부하를 낮추고 사이트 속도를 개선할 수 있습니다.</li><li>정확한 SEO 데이터 확보: 실제 Googlebot의 활동만 분석하여 더 정확한 SEO 전략을 세울 수 있습니다.</li></ul><p><br></p><p><br></p><blockquote class="blockquote">Googlebot 확인 방법</blockquote><p>Googlebot을 확인하는 방법은 크게 두 가지가 있습니다.</p><p><br></p><p><b>1. IP 주소 확인 (수동)</b></p><ul><li>1단계: 역방향 DNS 조회: 접속 로그에 기록된 IP 주소로 host 명령어를 실행하여 도메인 이름을 확인합니다. googlebot.com 또는 google.com으로 끝나야 합니다.</li><li>2단계: 정방향 DNS 조회: 1단계에서 얻은 도메인 이름으로 다시 host 명령어를 실행하여 IP 주소를 확인합니다. 이 IP 주소가 원래 접속 로그의 IP 주소와 일치해야 합니다.</li></ul><p><br></p><p><b>2. Google IP 주소 목록과 대조 (자동)</b></p><p><br></p><p>Google은 공식적으로 Googlebot 및 기타 크롤러의 IP 주소 범위를 JSON 파일로 제공합니다.</p><p><br></p><p>Googlebot IP 주소: <a href="https://developers.google.com/search/apis/ipranges/googlebot.json" target="_blank">https://developers.google.com/search/apis/ipranges/googlebot.json</a>&nbsp;</p><p>기타 Google 크롤러 IP 주소: <a href="https://www.gstatic.com/ipranges/goog.json" target="_blank">https://www.gstatic.com/ipranges/goog.json</a>&nbsp;</p><p>웹사이트에 접속하는 IP가 이 목록에 있는지 확인하여 Googlebot 여부를 판단할 수 있습니다.</p><p><br></p><blockquote class="blockquote">핵심 정리</blockquote><p>가장 확실한 방법: 역방향 DNS 조회와 정방향 DNS 조회를 모두 사용하여 확인하는 것이 가장 정확합니다.</p><p>대규모 확인: 많은 IP를 한 번에 확인해야 할 경우, Google에서 제공하는 IP 주소 목록을 활용하는 것이 효율적입니다.</p><p><br></p><p><b>방화벽 및 해외 접속 차단 해제가 불가능한 경우에는?</b></p><p>서버나 호스팅 회사를 이전 하는 방법만 가능합니다.&nbsp;</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 내돈내산]]></category>
<title><![CDATA[ 휴대용 블루투스 스피커 장점과 특징 EQ 공개 : 엔커 사운드 코어 셀렉트4 Go A31X1]]></title>
<link>https://www.dut.kr/buylog/661/anker-soundcore-select4-go</link>
<guid>https://www.dut.kr/buylog/661/anker-soundcore-select4-go</guid>
<pubDate>Fri, 13 Jun 2025 06:58:16 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749765604-8580.png"></p><p style="text-align: center; "><br></p><p style="text-align: center; "><br></p><p><br></p><p>갤럭시 폴드6를 사용하다가 무거운 무게로 팔목이 아프고 노안이 왔는지 시력이 떨어지는 것 같아 영상을 덜 보기 위해 기기를 방출하기로 했다.</p><p>그동안 펼쳤을 때 7인치 대화면 장점과 스테레오 사운드가 너무 마음에 들어 바꾸지 못하다가 방출하고 가벼운 플립6 + 블루투스 스피커로 전환하기로 했다.</p><p><br></p><p>보스 사운드 링크 미니도 보유하고 있지만 무거워서 매일 들고 다니기에는 무리가 있어 다른 제품을 찾게 됐다.</p><p>10만원 이상 제품에는 디자인도 예쁘고 브랜드 인지도가 있는 기기도 있지만 보스 제품도 있어 5만원 전후 스피커를 알아보게 되었다.</p><p><br></p><blockquote class="blockquote">최종 아래 3개의 제품을 고려하게 됐다.</blockquote><p>마음 같아서는 3개 모두 다 구입하고 싶지만 PC 스피커 2개에 보스 사운드 링크까지 다 쓸 것 같지는 않다.</p><p><br></p><p>1. 삼성 JBL GO4 5만원대 : 스피커 성능도 괜찮다고 하고 디자인도 심플하다 못해 색상이 화려하다. 최대 7시간 재생이라니 나와는 맞지 않는다.</p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749763898-5474.png"></p><p style="text-align: center; "><br></p><p>2.&nbsp;NEW 뮤젠 와일드 미니 2.0 8만원대 : 디자인이 예쁘고 볼륨이나 재생 조작 부가 멋찌다, 그런데 배터리 타임은 적고 고장 이슈가 있다. 배터리 타임도 그리 길지 않다고 한다.</p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749764025-6922.png"></p><p style="text-align: center; "><br></p><p>3. 엔커 사운드코어 셀렉트4 Go 2만원대 : 심플한 디자인과 EQ 지원되는 부분도 마음에 든다. 스트레오 스피커는 아니지만 듀얼 스피커 유닛을 보고 선택 했다.</p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749763928-3057.png"><br></p><p><br></p><p>최종 결정하게 된 제품은 가격도 저렴하고 작지만 재생 시간이 20시간이나 되는 사운드코어 Slect 4 Go 제품이다.</p><p>JBL GO4 제품과 디자인이 조금 비슷하지만 모든 걸 압도하는 가격이다.</p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749763331-9094.png"></p><p style="text-align: center; "><br></p><p style="text-align: center; "><br></p><blockquote class="blockquote">내돈 내산 후기</blockquote><p style="text-align: left;">중 저음 사운드와 함께 고음대 출력도 상당히 마음에 드는 부분이다. 요즘 미니 스피커는 사이즈도 적은데 압도적인 출력으로 야외 아웃 도어 용도로 상당히 마음에 든다. 가격도 부담스럽지 않은 2만원대이고 AS도 18개월 무상 보증이 가능하다고 한다.</p><p style="text-align: left;">엔커 사운드코어 제품을 처음 사용하는데 중국 제품이지만 완성도 높고 오디오 품질이 마음에 들어 다른 제품들도 괜찮을 것 같다는 생각이 든다.</p><ul><li>20 시간 연속재생</li><li>강력한 사운드</li><li>IP 67 방수 방진</li><li>265g 초 겨량</li><li>휴대용 스트랩</li><li>TWS 블루투스 지원 : 여러 대 연결 출력 지원</li></ul><p style="text-align: center;"><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749764270-4254.png"></p><p style="text-align: left;"><br></p><p style="text-align: left;"><b>나는 어떻게 활용하고 있나?</b></p><p style="text-align: left;">컴퓨터를 키지 않을 때 간단하게 블루투스 스피커 전원을 켜서 스마트폰으로 연결 해서 재생하며 스마트폰보다 몇배 만족스러운 음악을 들 수 있다.</p><p style="text-align: left;">야외 산책을 가거나 공원에서 쉴 때 음악 들을 때 정말 좋다.</p><p style="text-align: left;">볼륨 업 / 다운 버튼이 있고 재생,정지 버튼과 재생,정지 버튼을 길게 누르면 다음 곡으로 이동시켜 폰을 보지 않아도 된다.</p><p style="text-align: left;"><br></p><p style="text-align: left;">쿠팡 와우 회원이라면 구입하고 청음하고 마음에 들지 않으면 반품하는 것도 좋은 방법이다. 음질이나 음역이 사람마다 모두 다르기에 청음을 할 수 있으면 좋겠지만 나 같은 경우는 지방이라 그러기 어렵다.</p><p style="text-align: left;">아직 큰 단점을 발견하지 못했고 책상 매트가 연두색이고 탁상용 선풍기도 연두색이라 같은 색으로 통일했다.</p><p style="text-align: left;"><br></p><blockquote class="blockquote">앱에서 EQ 설정</blockquote><p style="text-align: left;">기본 지원하는 EQ도 있고 커스텀도 가능하고 기능이 워낙 단순해서 앱 사용에 대한 어려움도 없고 EQ 변경시 바로 확인이 가능하다.</p><p style="text-align: left;"><br></p><p style="text-align: center;"><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749765067-7715.png"></p><p style="text-align: center;">기기 추가를 통해 연결된 화면</p><p style="text-align: center;"><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749765083-4420.png"></p><p style="text-align: center;">기기 선택시 앱 화면</p><p style="text-align: center;"><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749765090-7074.png"></p><p style="text-align: center;">기본으로 여러 EQ 지원</p><p style="text-align: center;"><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749765099-2730.png"></p><p style="text-align: center;">사용자 Custom EQ 지원</p><p style="text-align: center;"><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749765112-3123.png"></p><p style="text-align: center;">내가 쓰는 EQ 공개 : 저역대와 고역대를 강조화여 EDM, Trance Music 주로 듣는데 다른 장르도 잘 어울린다.</p><p style="text-align: left;"><br></p><blockquote class="blockquote">제품 디테일 설명</blockquote><p style="text-align: left;"><br></p><p style="text-align: left;"><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749764726-9433.png"></p><p style="text-align: left;">둥글 둥글하고 깔끔한 디자인</p><p style="text-align: left;"><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749764862-2613.png"><br></p><p style="text-align: left;">후면에 고정 고무가 있어 흠집 예방</p><p style="text-align: left;"><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749764785-7729.png"></p><p style="text-align: left;">스트랩 고리가 있어 캠핑이나 자전거 등 거치가 편리</p><p style="text-align: left;"><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749764843-2187.png"></p><p style="text-align: left;">주요 버튼을 지원해서 조작이 편리</p><p style="text-align: left;"><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749764875-8514.png"></p><p style="text-align: left;">사이즈는 스마트폰 보다는 크지만 한 손에 쥐어지는 컴팩트한 크기다</p><p style="text-align: left;"><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749764920-6162.png"></p><p style="text-align: left;"><br></p><p style="text-align: left;"><br></p><blockquote class="blockquote">구입 시 주의 사항</blockquote><p style="text-align: left;"><br></p><p style="text-align: left;">스피커 전용으로 통화 기능을 지원하지 않습니다.</p><p style="text-align: left;">우퍼 스피커가 있어서 울림이 있을 수 있어요.</p><p style="text-align: left;">휴대폰보다는 커서 가방이나 점퍼가 있어야 휴대가 가능해요.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 내돈내산]]></category>
<title><![CDATA[ 구글 네스트 허브 2세대 한글 정발 구매 이유?]]></title>
<link>https://www.dut.kr/buylog/660/nest-hub-2</link>
<guid>https://www.dut.kr/buylog/660/nest-hub-2</guid>
<pubDate>Wed, 11 Jun 2025 13:26:07 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749616001-8279.png"><br></p><p style="text-align: center; "><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749614880-4067.png"></p><p>Nest Hub 2세대? 구글에서 만든 탁상형 기기로 음성명령을 통한 음악 스트리밍, 스마트 홈 제어, 알림 확인 등의 다양한 기능을 제공한다고 나와 있습니다. 구글 어시스던트를 지원해서 음성으로 다양한 작업을 요청할 수 도 있습니다. 화면 크기는 7인치라서 침대 옆이나 책상 앞에 놓고 사용하기 좋은 제품입니다. 모노 스피커이지만 일반적인 유튜브나 음악 감상에도 도움이 되고 다른 기기 연동되어 제어도 가능합니다.</p><p><br></p><blockquote class="blockquote">제가 해당 제품을 구입한 이유는? </blockquote><p>1. 컴퓨터로 일을 하다 보니 책상 앞에 놓고 전자 액자나 구글 포토 갤러리 용으로 사용하려고 구입했습니다.&nbsp;</p><p>2. 검은 화면에 시계 또는 배경 이미지와 탁상 시계 용도로 선택 했습니다.</p><p>두 가지 이유로 구입 해서 다른 기능은 잘 사용하지 않지만 음성 명령을 통해 기기 제어 하는 경우는 편리하게 활용할 수 있으며 스마트폰에서 음악이나 유튜브 영상을 출력하는 용도로 이용 가능합니다.</p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749614919-9486.png"></p><p><br></p><p>수면 추천 기능이 있는데 침대 옆에 놓을 곳이 마땅치 않고 스마트 밴드를 쓰고 있어 해당 기능은 이용하지 않고 있네요.</p><p>홈 컨트롤이라고 해서 원격으로 기기를 명령어로 작동할 수 있어요. 조명, 스피커 및 TV, 루틴, 방 선택 기능이 있고 조명 기능을 가장 쉽게 이용이 가능하며 저는 tapo 스마트 전구를 통해 이용해 봤습니다.</p><p>미디어라는 기능에는 유튜브나 유튜브 음악을 틀 수 있는데 해당 기기에서는 검색을 지원하지 않아요.</p><p>소통은 단축 번호에 연락처를 추가하여 쉽게 통화가 가능하고 영상 통화도 지원합니다.</p><p>살펴보기 기능에는 내 주변 식당, 주사위 굴려, 통역, 가까운 주유소 등 여러가지 심심 풀이 기능을 지원하지만 검색은 지원하지 않습니디.</p><p><br></p><p>다양한 활용이 제안되는 기기이지만 단순히 시계나 사진액자와 유튜브나 음악 감상용으로 사용한다면 데스크 인테리어로 괜찮은 아이템 입니다.</p><p>구입 가격은 8만원대로 요즘 테블릿이 워낙 저렴하게 나와서 가성비가 좋다가 볼 수는 없네요.</p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749615792-5172.png"></p><p><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 내돈내산]]></category>
<title><![CDATA[ 샤오미 14T 일주일 사용 후 방출한 이유 (치명적인 단점 3가지)]]></title>
<link>https://www.dut.kr/buylog/659/mi-14t-disadvantage</link>
<guid>https://www.dut.kr/buylog/659/mi-14t-disadvantage</guid>
<pubDate>Tue, 10 Jun 2025 17:33:38 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749544870-7515.png"><br></p><p><br></p><p>미니멀 라이프를 지향하면서 부터 하나의 스마트폰으로 두 개의 번호를 사용하는 듀얼 유심은 제게 꼭 필요한 기능이었습니다. 여러 기기를 알아보다가 마침 정식 발매된 샤오미 14T가 눈에 들어왔고, 큰 고민 없이 구매까지 이어졌습니다.</p><p>국내 스마트폰도 eSIM+USIM 듀얼심도 가능하지만 기기 변경이 번거로워서 USIM+USIM 듀얼 유심 제품을 찾아봤습니다.</p><p>특히 라이카와 협업 했다는 점이 가장 큰 매력이었죠. 하지만 기대와 달리 딱 1주일 사용해보고 지금은 다른 분에게 보낸 상태입니다. 혹시 이 제품을 메인 폰으로 진지하게 고민하고 계신다면, 제가 왜 방출했는지 그 이유를 꼭 확인해 보시길 바랍니다.</p><p style="text-align: center; "><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749544304-5592_ratio.webp"><br></p><p><br></p><blockquote class="blockquote">라이카 감성, 사진과 충전 속도는 만족</blockquote><p>먼저 칭찬부터 해야겠습니다. 라이카의 이름값은 충분히 합니다. 특별한 설정 없이도 찍기만 하면 특유의 깊은 색감과 분위기 있는 결과물을 보여주더군요. 사진 퀄리티 하나만 놓고 보면 정말 만족스러웠습니다.</p><p>AP 성능은 최신 플래그십 모델과 비교하면 살짝 아쉽지만, 일반적인 사용 환경에서는 부족함 없는 중급기 수준입니다. 여기에 65W 고속 충전은 바쁜 아침에 정말 유용했습니다. 장점은 분명히 있는 폰입니다.</p><p><br></p><p><br></p><blockquote class="blockquote">하지만 메인 폰으로 쓰지 못할 결정적 단점들</blockquote><p>장점에도 불구하고 제가 결국 이 폰을 포기한 이유는 업무상 메인 폰으로 사용하기에는 너무나 치명적인 단점들이 있었기 때문입니다.</p><p><br></p><p><b>첫째, 업무 효율을 떨어뜨리는 문자 앱</b></p><p>가장 큰 문제였습니다. 오랫동안 삼성 갤럭시를 사용해온 사용자라면 아마 저와 같은 불편함을 느끼실 겁니다. 샤오미의 기본 문자 앱은 수신된 문자의 첫 줄이 조금만 길어져도 바로 뒷 부분을 말줄임표(...)로 생략해 버립니다. 예를 들어 [웹 발신]인 경우 아래가 생략되어 알 수가 없어 무조건 들어가서 확인하고 삭제해야 합니다.</p><p><br></p><p>업무상 중요한 안내나 인증 번호가 포함된 [웹발신] 문자를 많이 받는데, 내용을 확인하려면 매번 문자를 일일이 눌러서 들어가야 했습니다. 삼성 문자 앱처럼 목록에서 첫 줄 내용 대부분을 바로 확인할 수 있는 것에 익숙하다 보니, 이런 사소한 차이가 업무 효율을 크게 떨어뜨렸습니다. 이는 비단 샤오미만의 문제라기 보다 해외 자급제폰에서 공통으로 나타나는 아쉬움이었습니다.</p><p><br></p><p><b>둘째, 오지 않는 인증 문자</b></p><p>업무용 협업 툴인 네이버 웍스에 가입하려고 하는데, 아무리 기다려도 인증 문자가 오지 않았습니다. 스팸 차단 설정을 모두 해제하고 스팸 문자 함을 몇 번이나 확인했지만 소용이 없었습니다. 결국 사용하던 갤럭시폰에 유심을 다시 끼우고 나서야 인증 문자를 받을 수 있었습니다. 중요한 금융 거래나 본인 인증이 필요한 순간에 이런 일이 발생했다면 정말 아찔했을 겁니다.</p><p><br></p><p><b>셋째, 원치 않는 광고와 앱</b></p><p>샤오미 기기의 고질적인 문제이기도 합니다. 일부 기본 앱에서 불쑥 튀어나오는 광고를 비 활성화하는 과정이 꽤 번거로웠습니다. 또한 사용하지 않는 기본 앱들을 삭제하거나 숨기는 것조차 불가능해서, 깔끔한 화면을 유지하고 싶은 저에게는 상당한 스트레스였습니다.</p><p><br></p><p><b>결론 : 좋은 서브폰, 아쉬운 메인폰</b></p><p>정리하자면 샤오미 14T는 라이카 감성의 멋진 사진을 찍을 수 있는 매력적인 기기입니다. 하지만 한국 사용 환경, 특히 업무용으로 쓰기에는 문자 수신이나 앱 사용성 측면에서 신뢰도를 주지 못했습니다.</p><p><br></p><p>저처럼 업무와 일상의 경계에서 듀얼 유심을 활용할 메인폰을 찾는 분께는 추천하기 어렵습니다. 반면, 뛰어난 카메라를 활용할 사진 촬영용 서브폰을 찾는다면 충분히 좋은 선택지가 될 수 있습니다.</p><p>참고로 지역 설정을 홍콩으로 변경하면 <b>통화 녹음 기능이 활성화</b>되고 카메라 촬영 음도 무음으로 만들 수 있으니, 서브폰으로 활용하실 분들은 이 팁을 이용해 보시는 것도 좋겠습니다.</p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749544325-5034_ratio.webp"></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749544338-5286_ratio.webp"><br></p><p><br></p><p style="text-align: center; ">리뷰 더보기</p><p style="text-align: center; "><a href="https://www.dut.kr/buylog/641/xiaomi-14t-review" target="_blank">https://www.dut.kr/buylog/641/xiaomi-14t-review</a><a href="https://www.dut.kr/buylog/641/xiaomi-14t-review" target="_blank"></a></p><p style="text-align: center; ">미니멀라이프 샤오미14T 선택! 가성비냐 라이카냐 고민해결</p><p style="text-align: center; "><br></p><p style="text-align: center; "><br></p><p style="text-align: center; "><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 개발노트]]></category>
<title><![CDATA[ 리눅스 SFTP 보안 강화: 사용자를 홈 디렉토리에 가두는 chroot 설정 완벽 가이드]]></title>
<link>https://www.dut.kr/dev/658/linux-sftp-chroot</link>
<guid>https://www.dut.kr/dev/658/linux-sftp-chroot</guid>
<pubDate>Tue, 10 Jun 2025 17:06:20 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749542706-3053.png"><br></p><p><br></p><p>리눅스 서버에서 SFTP(Secure FTP)를 설정하면 기본적으로 사용자들은 자신의 홈 디렉토리(<code>~</code>)뿐만 아니라 상위 디렉토리(<code>/home</code>, <code>/etc</code> 등)로 이동하며 시스템의 여러 파일을 구경할 수 있습니다. </p><p>이는 웹 호스팅이나 파일 공유 목적의 서버 운영 시 심각한 보안 취약점이 될 수 있습니다.</p><p>이번 포스팅에서는 SSH의 <code>chroot</code> 기능을 이용하여 <strong>사용자의 활동 영역을 자신의 홈 디렉토리 안으로만 제한하는 방법</strong>을 소개합니다. 이를 통해 사용자는 마치 자신의 홈 디렉토리가 서버의 최상위 루트 디렉토리인 것처럼 느끼게 되어, 시스템의 다른 영역으로 접근하는 것이 원천적으로 차단됩니다.</p><p><br></p><p><br></p><h3>1. chroot 설정이란? (상위 폴더 접속 차단 원리)</h3><p><code>chroot</code>는 "Change Root"의 줄임말로, 특정 사용자에 대해 루트 디렉토리(<code>/</code>)를 다른 경로로 변경하는 기능입니다.</p><p>예를 들어 <code>siteadmin</code> 사용자의 홈 디렉토리를 <code>/home/siteadmin</code>으로 chroot 설정하면, 이 사용자가 SFTP로 접속했을 때 시스템은 <code>/home/siteadmin</code>을 최상위 디렉토리(<code>/</code>)로 인식시킵니다. 따라서 사용자가 상위 폴더로 이동(<code>cd ..</code>)을 시도해도 더 이상 올라갈 곳이 없는, 완벽하게 격리된 환경이 만들어집니다.</p><p>이는 불필요한 시스템 정보 노출을 막고, 사용자의 실수나 악의적인 행동으로부터 서버를 안전하게 보호하는 필수적인 보안 설정입니다.</p><p><br></p><p><br></p><h3>2. 초기 설정: SFTP chroot 환경 구축하기</h3><p>가장 먼저, chroot 정책을 적용하기 위한 그룹을 만들고 SSH 서버 설정을 변경하는 <strong>최초 1회 작업</strong>이 필요합니다.</p><h4><br></h4><h4>1단계: SFTP 전용 그룹 생성</h4><p>chroot를 적용할 사용자들을 관리할 전용 그룹(<code>sftp_users</code>)을 생성합니다.</p><div _ngcontent-ng-c1868520910="" class="code-block ng-tns-c1868520910-421 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" jslog="223238;track:impression;BardVeMetadataKey:[[&quot;r_c0955f3f653f6246&quot;,&quot;c_912578f94156e999&quot;,null,&quot;rc_533117351a95064f&quot;,null,null,&quot;ko&quot;,null,1,null,null,1,0]]"><div _ngcontent-ng-c1868520910="" class="formatted-code-block-internal-container ng-tns-c1868520910-421"><div _ngcontent-ng-c1868520910="" class="animated-opacity ng-tns-c1868520910-421"><pre _ngcontent-ng-c1868520910="" class="ng-tns-c1868520910-421"><code _ngcontent-ng-c1868520910="" role="text" data-test-id="code-content" class="code-container formatted ng-tns-c1868520910-421">sudo groupadd sftp_users </code></pre><!----><!----><!----></div></div></div><h4><br></h4><h4>2단계: SSH 서버 설정 파일 수정</h4><p>SFTP 접속을 처리하는 SSH 서버의 설정 파일을 수정합니다.</p><div _ngcontent-ng-c1868520910="" class="code-block ng-tns-c1868520910-422 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" jslog="223238;track:impression;BardVeMetadataKey:[[&quot;r_c0955f3f653f6246&quot;,&quot;c_912578f94156e999&quot;,null,&quot;rc_533117351a95064f&quot;,null,null,&quot;ko&quot;,null,1,null,null,1,0]]"><div _ngcontent-ng-c1868520910="" class="formatted-code-block-internal-container ng-tns-c1868520910-422"><div _ngcontent-ng-c1868520910="" class="animated-opacity ng-tns-c1868520910-422"><pre _ngcontent-ng-c1868520910="" class="ng-tns-c1868520910-422"><code _ngcontent-ng-c1868520910="" role="text" data-test-id="code-content" class="code-container formatted ng-tns-c1868520910-422">sudo vi /etc/ssh/sshd_config </code></pre><!----><!----><!----></div></div></div><p>파일의 <strong>가장 마지막 줄</strong>에 아래 내용을 추가합니다.</p><div _ngcontent-ng-c1868520910="" class="code-block ng-tns-c1868520910-423 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" jslog="223238;track:impression;BardVeMetadataKey:[[&quot;r_c0955f3f653f6246&quot;,&quot;c_912578f94156e999&quot;,null,&quot;rc_533117351a95064f&quot;,null,null,&quot;ko&quot;,null,1,null,null,1,0]]"><div _ngcontent-ng-c1868520910="" class="formatted-code-block-internal-container ng-tns-c1868520910-423"><div _ngcontent-ng-c1868520910="" class="animated-opacity ng-tns-c1868520910-423"><pre _ngcontent-ng-c1868520910="" class="ng-tns-c1868520910-423"><code _ngcontent-ng-c1868520910="" role="text" data-test-id="code-content" class="code-container formatted ng-tns-c1868520910-423"># SFTP chroot 설정을 위한 그룹 매칭 Match Group sftp_users # chroot 디렉토리를 사용자의 홈 디렉토리로 지정 ChrootDirectory %h # SFTP만 강제로 실행하고 쉘 접속은 차단 ForceCommand internal-sftp # 기타 보안 설정 AllowTcpForwarding no X11Forwarding no </code></pre><!----><!----><!----></div></div></div><h4><br></h4><h4>3단계: SSH 서비스 재시작</h4><p>수정한 설정을 시스템에 반영하기 위해 SSH 서비스를 재시작합니다.</p><div _ngcontent-ng-c1868520910="" class="code-block ng-tns-c1868520910-424 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" jslog="223238;track:impression;BardVeMetadataKey:[[&quot;r_c0955f3f653f6246&quot;,&quot;c_912578f94156e999&quot;,null,&quot;rc_533117351a95064f&quot;,null,null,&quot;ko&quot;,null,1,null,null,1,0]]"><div _ngcontent-ng-c1868520910="" class="formatted-code-block-internal-container ng-tns-c1868520910-424"><div _ngcontent-ng-c1868520910="" class="animated-opacity ng-tns-c1868520910-424"><pre _ngcontent-ng-c1868520910="" class="ng-tns-c1868520910-424"><code _ngcontent-ng-c1868520910="" role="text" data-test-id="code-content" class="code-container formatted ng-tns-c1868520910-424">sudo systemctl restart sshd </code></pre><!----><!----><!----></div></div></div><p>이것으로 모든 사용자를 맞이할 준비가 끝났습니다.</p><p><br></p><p><br></p><h3>3. 계정 추가: chroot 적용된 새 사용자 생성하기</h3><p>초기 설정이 완료된 후, 새로운 SFTP 사용자가 필요할 때마다 아래 절차를 반복하면 됩니다. 여기서는 <code>siteadmin</code> 계정을 추가하는 예시입니다.</p><p><br></p><h4>1단계: 계정 생성</h4><p>홈 디렉토리를 만들고(<code>-m</code>), <code>sftp_users</code> 그룹에 소속시키며(<code>-G</code>), 쉘 접속을 막은(<code>-s</code>) 상태로 새 계정을 생성합니다.</p><div _ngcontent-ng-c1868520910="" class="code-block ng-tns-c1868520910-425 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" jslog="223238;track:impression;BardVeMetadataKey:[[&quot;r_c0955f3f653f6246&quot;,&quot;c_912578f94156e999&quot;,null,&quot;rc_533117351a95064f&quot;,null,null,&quot;ko&quot;,null,1,null,null,1,0]]"><div _ngcontent-ng-c1868520910="" class="formatted-code-block-internal-container ng-tns-c1868520910-425"><div _ngcontent-ng-c1868520910="" class="animated-opacity ng-tns-c1868520910-425"><pre _ngcontent-ng-c1868520910="" class="ng-tns-c1868520910-425"><code _ngcontent-ng-c1868520910="" role="text" data-test-id="code-content" class="code-container formatted ng-tns-c1868520910-425">sudo useradd -m -G sftp_users -s /sbin/nologin siteadmin </code></pre><!----><!----><!----></div></div></div><h4><br></h4><h4>2단계: 비밀번호 설정</h4><p>생성한 계정의 비밀번호를 설정합니다.</p><div _ngcontent-ng-c1868520910="" class="code-block ng-tns-c1868520910-426 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" jslog="223238;track:impression;BardVeMetadataKey:[[&quot;r_c0955f3f653f6246&quot;,&quot;c_912578f94156e999&quot;,null,&quot;rc_533117351a95064f&quot;,null,null,&quot;ko&quot;,null,1,null,null,1,0]]"><div _ngcontent-ng-c1868520910="" class="formatted-code-block-internal-container ng-tns-c1868520910-426"><div _ngcontent-ng-c1868520910="" class="animated-opacity ng-tns-c1868520910-426"><pre _ngcontent-ng-c1868520910="" class="ng-tns-c1868520910-426"><code _ngcontent-ng-c1868520910="" role="text" data-test-id="code-content" class="code-container formatted ng-tns-c1868520910-426">sudo passwd siteadmin </code></pre><!----><!----><!----></div></div></div><h4><br></h4><h4>3단계: 홈 디렉토리 구조 및 권한 설정 (가장 중요!)</h4><p>chroot의 엄격한 보안 규칙을 만족시키기 위해 디렉토리 소유권을 조정합니다. 규칙은 **"chroot 대상 디렉토리의 소유자는 반드시 root여야 한다"**는 것입니다.</p><ol> <li> <p><strong>홈 디렉토리(<code>~/</code>)의 소유자를 <code>root</code>로 변경합니다.</strong></p><response-element class="" ng-version="0.0.0-PLACEHOLDER"><code-block _nghost-ng-c1868520910="" class="ng-tns-c1868520910-427 ng-star-inserted"><div _ngcontent-ng-c1868520910="" class="code-block ng-tns-c1868520910-427 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" jslog="223238;track:impression;BardVeMetadataKey:[[&quot;r_c0955f3f653f6246&quot;,&quot;c_912578f94156e999&quot;,null,&quot;rc_533117351a95064f&quot;,null,null,&quot;ko&quot;,null,1,null,null,1,0]]"><div _ngcontent-ng-c1868520910="" class="code-block-decoration header-formatted gds-title-s ng-tns-c1868520910-427 ng-star-inserted"><div _ngcontent-ng-c1868520910="" class="buttons ng-tns-c1868520910-427 ng-star-inserted"><!----><!----><!----></div><!----></div><!----><div _ngcontent-ng-c1868520910="" class="formatted-code-block-internal-container ng-tns-c1868520910-427"><div _ngcontent-ng-c1868520910="" class="animated-opacity ng-tns-c1868520910-427"><pre _ngcontent-ng-c1868520910="" class="ng-tns-c1868520910-427"><code _ngcontent-ng-c1868520910="" role="text" data-test-id="code-content" class="code-container formatted ng-tns-c1868520910-427">sudo chown root:root /home/siteadmin </code></pre><!----><!----><!----></div></div></div><!----><!----><!----></code-block><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></response-element> </li> <li> <p><strong>사용자가 실제 파일을 업로드할 하위 디렉토리(예: <code>public_html</code>)를 생성합니다.</strong></p> <response-element class="" ng-version="0.0.0-PLACEHOLDER"><!----><!----><!----><!----><!----><!----><!----><code-block _nghost-ng-c1868520910="" class="ng-tns-c1868520910-428 ng-star-inserted"><!----><!----><div _ngcontent-ng-c1868520910="" class="code-block ng-tns-c1868520910-428 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" jslog="223238;track:impression;BardVeMetadataKey:[[&quot;r_c0955f3f653f6246&quot;,&quot;c_912578f94156e999&quot;,null,&quot;rc_533117351a95064f&quot;,null,null,&quot;ko&quot;,null,1,null,null,1,0]]"><div _ngcontent-ng-c1868520910="" class="formatted-code-block-internal-container ng-tns-c1868520910-428"><div _ngcontent-ng-c1868520910="" class="animated-opacity ng-tns-c1868520910-428"><pre _ngcontent-ng-c1868520910="" class="ng-tns-c1868520910-428"><code _ngcontent-ng-c1868520910="" role="text" data-test-id="code-content" class="code-container formatted ng-tns-c1868520910-428">sudo mkdir /home/siteadmin/public_html </code></pre><!----><!----><!----></div></div></div><!----><!----><!----></code-block><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></response-element> </li> <li> <p><strong>생성한 <code>public_html</code> 디렉토리의 소유자를 다시 원래 사용자인 <code>siteadmin</code>으로 지정합니다.</strong></p> <response-element class="" ng-version="0.0.0-PLACEHOLDER"><!----><!----><!----><!----><!----><!----><!----><code-block _nghost-ng-c1868520910="" class="ng-tns-c1868520910-429 ng-star-inserted"><!----><!----><div _ngcontent-ng-c1868520910="" class="code-block ng-tns-c1868520910-429 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" jslog="223238;track:impression;BardVeMetadataKey:[[&quot;r_c0955f3f653f6246&quot;,&quot;c_912578f94156e999&quot;,null,&quot;rc_533117351a95064f&quot;,null,null,&quot;ko&quot;,null,1,null,null,1,0]]"><div _ngcontent-ng-c1868520910="" class="formatted-code-block-internal-container ng-tns-c1868520910-429"><div _ngcontent-ng-c1868520910="" class="animated-opacity ng-tns-c1868520910-429"><pre _ngcontent-ng-c1868520910="" class="ng-tns-c1868520910-429"><code _ngcontent-ng-c1868520910="" role="text" data-test-id="code-content" class="code-container formatted ng-tns-c1868520910-429">sudo chown siteadmin:siteadmin /home/siteadmin/public_html </code></pre><!----><!----><!----></div></div></div><!----><!----><!----></code-block><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></response-element> </li> <li> <p><strong>(권장) 권한 확인</strong> 아래 명령어로 설정이 올바르게 되었는지 확인할 수 있습니다.</p> <response-element class="" ng-version="0.0.0-PLACEHOLDER"><!----><!----><!----><!----><!----><!----><!----><code-block _nghost-ng-c1868520910="" class="ng-tns-c1868520910-430 ng-star-inserted"><!----><!----><div _ngcontent-ng-c1868520910="" class="code-block ng-tns-c1868520910-430 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" jslog="223238;track:impression;BardVeMetadataKey:[[&quot;r_c0955f3f653f6246&quot;,&quot;c_912578f94156e999&quot;,null,&quot;rc_533117351a95064f&quot;,null,null,&quot;ko&quot;,null,1,null,null,1,0]]"><div _ngcontent-ng-c1868520910="" class="formatted-code-block-internal-container ng-tns-c1868520910-430"><div _ngcontent-ng-c1868520910="" class="animated-opacity ng-tns-c1868520910-430"><pre _ngcontent-ng-c1868520910="" class="ng-tns-c1868520910-430"><code _ngcontent-ng-c1868520910="" role="text" data-test-id="code-content" class="code-container formatted ng-tns-c1868520910-430">ls -ld /home/siteadmin /home/siteadmin/public_html </code></pre><!----><!----><!----></div></div></div><!----><!----><!----></code-block><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></response-element> <p>결과는 아래와 같이 <code>siteadmin</code>은 <code>root</code>가, <code>public_html</code>은 <code>siteadmin</code>이 소유해야 합니다.</p> <response-element class="" ng-version="0.0.0-PLACEHOLDER"><!----><!----><!----><!----><!----><!----><!----><code-block _nghost-ng-c1868520910="" class="ng-tns-c1868520910-431 ng-star-inserted"><!----><!----><div _ngcontent-ng-c1868520910="" class="code-block ng-tns-c1868520910-431 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" jslog="223238;track:impression;BardVeMetadataKey:[[&quot;r_c0955f3f653f6246&quot;,&quot;c_912578f94156e999&quot;,null,&quot;rc_533117351a95064f&quot;,null,null,&quot;ko&quot;,null,1,null,null,1,0]]"><!----><div _ngcontent-ng-c1868520910="" class="formatted-code-block-internal-container ng-tns-c1868520910-431"><div _ngcontent-ng-c1868520910="" class="animated-opacity ng-tns-c1868520910-431"><pre _ngcontent-ng-c1868520910="" class="ng-tns-c1868520910-431"><code _ngcontent-ng-c1868520910="" role="text" data-test-id="code-content" class="code-container formatted ng-tns-c1868520910-431 no-decoration-radius">drwxr-xr-x. 3 root root 4096 6월 10 17:10 /home/siteadmin drwxr-xr-x. 2 siteadmin siteadmin 4096 6월 10 17:10 /home/siteadmin/public_html </code></pre><!----><!----><!----></div></div></div><!----><!----><!----></code-block><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></response-element> </li> </ol><p><response-element class="" ng-version="0.0.0-PLACEHOLDER"><!----><!----><!----><!----><!----><!----><!----><code-block _nghost-ng-c1868520910="" class="ng-tns-c1868520910-421 ng-star-inserted"><!----><!----><!----><!----><!----></code-block><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></response-element><response-element class="" ng-version="0.0.0-PLACEHOLDER"><!----><!----><!----><!----><!----><!----><!----><code-block _nghost-ng-c1868520910="" class="ng-tns-c1868520910-422 ng-star-inserted"><!----><!----><!----><!----><!----></code-block><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></response-element><response-element class="" ng-version="0.0.0-PLACEHOLDER"><!----><!----><!----><!----><!----><!----><!----><code-block _nghost-ng-c1868520910="" class="ng-tns-c1868520910-423 ng-star-inserted"><!----><!----><!----><!----><!----></code-block><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></response-element><response-element class="" ng-version="0.0.0-PLACEHOLDER"><!----><!----><!----><!----><!----><!----><!----><code-block _nghost-ng-c1868520910="" class="ng-tns-c1868520910-424 ng-star-inserted"><!----><!----><!----><!----><!----></code-block><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></response-element><response-element class="" ng-version="0.0.0-PLACEHOLDER"><!----><!----><!----><!----><!----><!----><!----><code-block _nghost-ng-c1868520910="" class="ng-tns-c1868520910-425 ng-star-inserted"><!----><!----><!----><!----><!----></code-block><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></response-element><response-element class="" ng-version="0.0.0-PLACEHOLDER"><!----><!----><!----><!----><!----><!----><!----><code-block _nghost-ng-c1868520910="" class="ng-tns-c1868520910-426 ng-star-inserted"><!----><!----><!----><!----><!----></code-block><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></response-element></p><p><strong><br></strong></p><p><strong>이제 끝입니다!</strong> SSH 서비스를 재시작할 필요 없이 바로 SFTP 클라이언트로 <code>siteadmin</code> 계정 접속을 테스트해 보세요. 사용자는 완벽하게 자신의 홈 디렉토리 안에 격리되어 있을 것입니다.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 테크정보]]></category>
<title><![CDATA[ 웹사이트의 얼굴 파비콘 아이콘 쉽게 만들기 favicon]]></title>
<link>https://www.dut.kr/tech/657/favicon-maker</link>
<guid>https://www.dut.kr/tech/657/favicon-maker</guid>
<pubDate>Tue, 10 Jun 2025 09:53:02 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749516099-9712.png"></p><p><br></p><p>웹사이트를 운영하다 보면 아주 작은 부분까지 신경 쓰게 됩니다. 그중 하나가 바로 '파비콘'인데요. 파비콘은 웹사이트에 접속했을 때 브라우저의 탭이나 주소창에 조그맣게 표시되는 아이콘을 말합니다.</p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749516041-2030.png"><br></p><p>단순히 예쁘게 꾸미는 것을 넘어 생각보다 중요한 역할을 합니다. 여러 탭을 열어놨을 때 내 사이트를 한눈에 알아볼 수 있게 해주고, 네이버나 구글 같은 포털 사이트에서 검색 결과로 노출될 때도 사이트 주소 앞에 이 아이콘이 함께 표시됩니다. 스마트폰으로 즐겨찾기에 추가하거나 다른 사람에게 공유할 때도 마찬가지고요. 작지만 내 사이트의 정체성을 보여주는 '얼굴'인 셈입니다.</p><p><br></p><p>그런데 막상 파비콘을 직접 만들려고 하면 막막할 때가 많습니다. 사이즈가 워낙 작아서 기존에 사용하던 로고를 그대로 넣기에는 애매하고, 필요한 파일 형식(.ico)을 만드는 것도 번거롭죠. 포토샵으로 만드는 경우에는 플러그 인을 따로 복사해서 재 실행 작업도 필요해서 번거롭습니다.</p><p><br></p><p>그럴 때 아주 유용한 것이 바로 파비콘을 쉽고 빠르게 만들어주는 전문 웹사이트들입니다. 복잡한 과정 없이 이미지 파일 하나만 올려주면 알아서 최적의 사이즈와 형식으로 변환해 주니 정말 편리합니다. 저 역시 지금 제 사이트에 달려있는 파비콘을 이런 서비스를 이용해 뚝딱 만들었습니다.</p><p><br></p><p>이미지뿐만 아니라 간단한 글자나 이모티콘으로도 개성 있는 파비콘을 만들 수 있도록 도와주는 곳도 많으니, 내 사이트의 첫인상을 멋지게 만들고 싶다면 한번 이용해 보시는 것을 적극 추천합니다.</p><p><br></p><blockquote class="blockquote">파비콘(Favicon) 제작을 위한 유용한 사이트 모음</blockquote><p>웹사이트의 개성을 더하고 브라우저 탭, 북마크 등에서 사이트를 쉽게 식별할 수 있도록 도와주는 파비콘(Favicon)을 손쉽게 제작할 수 있는 여러 유용한 웹사이트들이 있습니다. 이미지 파일만 있으면 몇 번의 클릭만으로 다양한 플랫폼에 맞는 파비콘을 생성해주거나, 텍스트나 이모지를 기반으로 간단하게 파비콘을 만들 수도 있습니다.</p><p><br></p><blockquote class="blockquote">이미지 파일을 이용한 파비콘 제작 사이트</blockquote><p>가지고 있는 로고나 이미지를 파비콘으로 변환하고 싶을 때 유용한 사이트들입니다. 대부분 PNG, JPG, GIF 등 다양한 이미지 형식을 지원하며, 필요한 모든 사이즈의 파비콘 파일을 한 번에 생성해주는 편리한 기능을 제공합니다.</p><p><br></p><p><b>Favicon.io (https://favicon.io)</b></p><p><a href="https://favicon.io" target="_blank">https://favicon.io</a></p><p><b></b></p><p>이미지, 텍스트, 이모지 등 세 가지 방식으로 파비콘을 만들 수 있는 다재다능한 사이트입니다. 특히 이미지 파일을 업로드하면 ico 파일뿐만 아니라, 안드로이드, 마이크로소프트, 웹용 등 다양한 크기와 형태의 png 파일까지 함께 생성해줍니다. 생성된 파일 목록과 함께 웹사이트에 적용할 수 있는 HTML 코드까지 제공하여 편리합니다.</p><p><br></p><p><b>Favicon &amp; App Icon Generator (https://www.favicon-generator.org/)</b></p><p><a href="https://www.favicon-generator.org" target="_blank">https://www.favicon-generator.org</a><span></span></p><p>오랫동안 많은 개발자들이 이용해온 신뢰도 높은 사이트입니다. 이미지 파일을 업로드하면 웹사이트용 파비콘(ico)과 함께 iOS 및 안드로이드 앱 아이콘까지 다양한 사이즈로 생성해주는 것이 특징입니다. 생성된 파일들을 압축 파일 형태로 다운로드할 수 있습니다.</p><p><br></p><p><b>RealFaviconGenerator (https://realfavicongenerator.net/)</b></p><p><a href="https://realfavicongenerator.net" target="_blank">https://realfavicongenerator.net</a><span></span></p><p>다양한 플랫폼과 브라우저에 최적화된 파비콘을 제작하는 데 특화된 사이트입니다. 제작 과정에서 각 플랫폼(iOS, Android 등)에서 파비콘이 어떻게 보일지 미리 확인할 수 있는 실시간 미리보기 기능이 매우 유용합니다. 또한, 각 플랫폼에 맞는 HTML 코드를 상세하게 제공하여 적용하기 용이합니다.</p><p><br></p><blockquote class="blockquote">텍스트나 이모지를 이용한 간편 파비콘 제작</blockquote><p>별도의 이미지 파일 없이도 간단하게 텍스트나 이모티콘을 활용하여 파비콘을 만들고 싶을 때 유용한 사이트입니다.</p><p><b>Favicon.io</b></p><p>Text &amp; Emoji Favicon Generator: 앞서 소개한 Favicon.io는 이미지 변환 기능 외에도 텍스트나 이모지를 기반으로 파비콘을 생성하는 기능도 제공합니다. 원하는 글자나 이모지를 선택하고 배경색, 글꼴 등을 커스터마이징하여 손쉽게 파비콘을 제작할 수 있습니다.</p><p>이 외에도 다양한 파비콘 제작 사이트들이 있으나, 위에 소개된 사이트들은 사용자 인터페이스가 직관적이고 필요한 기능들을 충실히 제공하여 프로그래머분들이 사용하시기에 충분할 것입니다. 제작된 파비콘은 보통 .ico 확장자를 가지며, 웹사이트의 루트 디렉토리에 업로드하고 &lt;head&gt; 태그 안에 &lt;link&gt; 태그를 이용하여 추가하면 됩니다.</p><pre>&lt;link rel="shortcut icon" href="http://www.dut.kr/image/icon/favicon.ico" type="image/x-icon" /&gt; &lt;link rel="icon" href="http://www.dut.kr/image/icon/favicon.ico" type="image/x-icon" /&gt;</pre><p><br></p><p>해당 사이트에서 파비콘을 만들었다면 다운로드 하여 웹사이트에 업로드 하고 위에 소스처럼 URL을 입력하고 브라우저를 실행하면 바로 확인이 가능합니다.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 일상리뷰]]></category>
<title><![CDATA[ 왜 당신은 죽어가는 자신을 방치하고 있는가 - 삶의 방향을 되찾아주는 질문들]]></title>
<link>https://www.dut.kr/daily/656/bookreview-inner-peace</link>
<guid>https://www.dut.kr/daily/656/bookreview-inner-peace</guid>
<pubDate>Wed, 04 Jun 2025 11:30:44 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749004723-8421.png"></p><h3 class="text-center">Inner Peace</h3><p></p><p></p><p style="text-align: center; ">왜 당신은 죽어가는 자신을 방치하고 있는가?</p><p style="text-align: center; ">Why Are You Letting Yourself Fade Away?</p><p><br></p><p>제목 :&nbsp;왜 당신은 죽어가는 자신을 방치하고 있는가</p><p>종류 : 전자책</p><p>글 : 고윤(페이서스코리아)</p><p><br></p><p>"왜 당신은 죽어가는 자신을 방치하고 있는가?"라는 강렬한 제목에 이끌려 이 책을 읽기 시작했습니다. 처음에는 '무슨 증후군이나 신드롬에 대한 전문적인 내용이라 조금 어렵지 않을까' 하는 생각도 들었지만, 막상 책장을 넘기니 예상과는 전혀 달랐습니다. 이 책은 현대 사회를 살아가는 우리가 흔히 겪을 수 있는 심리적인 문제들을 쉽고 다양하게 목차로 제시하고 있더군요.</p><p><br></p><p>물론 저와 직접적인 관련이 적은 이야기도 있었지만, 몇몇 부분에서는 마치 저의 내면을 들여다보는 듯한 강렬한 메시지를 받아 큰 도움이 되었습니다. 이 책을 통해 저의 삶과 마음을 돌아보는 귀한 시간을 가질 수 있었습니다.</p><p><br></p><blockquote class="blockquote">현대인의 심리를 꿰뚫는 통찰</blockquote><p>이 책은 특히 제가 평소에 느끼던 불편함과 고민들을 정확히 짚어주었습니다.</p><p><br></p><p>첫째, 세상에 자극적인 콘텐츠에 중독되어 가는 우리의 심리에 대한 분석이 인상 깊었습니다. 끊임없이 새로운 정보와 자극을 찾아 헤매는 현대인의 모습이 저의 모습과도 겹쳐 보였습니다. 왜 우리는 그렇게 무언가에 매달리고, 진정 중요한 것을 놓치고 있는지 생각하게 만들었죠.</p><p><br></p><p>둘째, '쓸데없는 걸 알면서도 물건을 사는 이유'에 대한 이야기는 저에게 큰 메시지를 주었습니다. 윌 로저스의 "세상에 많은 사람들이 내가 진정 원하지 않는 것을 사는 것에 돈을 소비한다. 자신들이 싫어하는 사람들에게 깊은 인상을 주기 위해서 말이다"라는 말은 마치 제 머리를 때리는 것 같았습니다. 제가 굳이 필요하지 않은 것을 사거나, 타인의 시선을 의식한 소비를 했던 경험들이 스쳐 지나갔죠. 이 책은 이러한 소비 습관이 단순히 물건을 사는 행위를 넘어, 우리의 내면 깊숙한 곳에 자리한 허영심이나 불안감과 연결되어 있음을 깨닫게 했습니다. 진정한 만족감이 무엇인지, 그리고 어떻게 하면 외부의 시선에서 벗어나 나 자신을 위한 소비를 할 수 있을지 고민하게 되었어요.</p><p><br></p><p>셋째, '리셋 증후군'에 대한 내용은 특히 저에게 큰 울림을 주었습니다. 과거의 실수나 사람들에게 각인된 이미지를 회피하고 처음부터 다시 시작하려는 심리가 마치 저의 모습 같았기 때문입니다. 건강 문제나 개인적인 이유로 인간관계를 리셋했던 경험이 있는데, 그때마다 '이게 과연 좋은 선택일까?'라는 생각을 떨칠 수 없었죠. 책은 이러한 도피적인 리셋이 결코 해결책이 될 수 없음을 명확히 짚어주면서도, 이를 긍정적인 에너지로 활용하여 '다음 루트를 계획'하고 '새로운 도전을 두려워하지 않는 것'이 중요하다고 말합니다. "도망자에게 낙원은 없다"는 강력한 메시지는 저에게 더 이상 도피하지 않고 정면으로 맞서야 한다는 용기를 주었습니다.</p><p><br></p><p>마지막으로, '번아웃 증후군'에 대한 심층적인 분석은 제가 직업으로 하고 있는 프로그래머의 삶과 깊이 연관되어 큰 공감을 얻었습니다. 주 100시간씩 일하고 깨달은 저자의 경험담과 함께, 번아웃이 단순히 정신적 탈진을 넘어 감정적 고갈, 탈인격화, 자기 효능감 결핍 등 다양한 증상으로 나타난다는 점을 알게 되었습니다. 완벽주의적인 성향 탓에 모든 일에 100%를 쏟아붓다 자율신경실조증까지 겪었던 저에게, 책에서 제시하는 6가지 회복 방법(신체적 쉼, 정신적 쉼, 관계적 쉼, 감각적 쉼, 자연적 쉼, 해소적 쉼)은 실질적인 지침이 되었습니다.</p><p><br></p><p><br></p><blockquote class="blockquote">삶의 방향을 다시 세우다</blockquote><p><br></p><p>이 책은 단순히 심리 현상을 설명하는 것을 넘어, 우리가 왜 죽어가는 자신을 방치하고 있는지에 대한 근원적인 질문을 던지고, 그에 대한 해답을 찾을 수 있도록 돕습니다. 제게는 자신을 돌아보고, 불필요한 집착과 허영에서 벗어나, 진정으로 나를 살리는 삶의 방향을 다시 설정하는 계기가 되었습니다.</p><p><br></p><p>만약 당신도 삶의 어느 지점에서 지쳐있거나, 알 수 없는 공허함을 느끼고 있다면, 이 책이 그 질문에 대한 답을 찾아주고, 다시 한번 힘차게 나아갈 용기를 줄 것이라고 확신합니다.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 다이어리]]></category>
<title><![CDATA[ 커피 중독 안녕! 1년간의 커피 단식 후기, 장점과 극복 방법]]></title>
<link>https://www.dut.kr/diary/654/coffee-detox-1year-story</link>
<guid>https://www.dut.kr/diary/654/coffee-detox-1year-story</guid>
<pubDate>Wed, 28 May 2025 15:09:50 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1749516757-2350.png"><br></p><p style="text-align: center; "><br></p><p style="text-align: center; "><br></p><p>커피를 물처럼 달고 살던 제가 커피를 끊은 지 벌써 1년이 다 되어가네요. </p><p>예전엔 예쁜 카페를 찾아다니고, 직접 커피 사진을 찍어 블로그에 올리는 게 낙이었을 정도로 커피를 정말 사랑했어요. 하루에 2~3잔은 기본이었고, 카페에서 사 마시는 커피는 물론 집에서도 믹스커피나 캔커피를 달콤한 기호식품처럼 즐겼죠. 아침에 일을 시작하기 전 한 잔, 오후에 나른할 때 또 한 잔, 이렇게 커피는 제 일상과도 같았어요. </p><p>심지어 커피 바리스타 교육까지 받았을 정도로 열정적이었답니다.</p><p><br></p><p>하지만 커피를 좋아했던 만큼, 커피의 장점과 단점에 대해서도 어렴풋이 알고는 있었어요. 그러다 문득 건강에 좋지 않은 부분들이 마음에 걸리기 시작했고, '혹시 나도 모르게 커피 마케팅에 빠져 중독된 건 아닐까?' 하는 생각이 들더라고요. 그래서 큰마음을 먹고 커피와의 이별을 결심했답니다. 벌써 1년이라는 시간이 흘렀네요! 오늘은 제가 커피를 끊으면서 겪었던 솔직한 경험과 그로 인해 얻게 된 긍정적인 변화들을 이야기해 보려고 해요.</p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1748412509-7569.png"></p><p><br></p><p><br></p><blockquote class="blockquote">커피, 정말 카페인만 문제일까요?</blockquote><p><span>많은 분들이 커피의 단점으로 '카페인'만 떠올리시는데요, 사실 그게 다가 아니더라고요. 우리가 마시는 커피콩도 결국 농작물이잖아요? 안타깝게도 모든 커피나무가 친환경적으로 재배되는 건 아니에요. 일부 재배 과정에서의 농약 문제나, 원두를 장기간 보관하기 위한 처리 과정도 신경 쓰이는 부분이었어요. 또, 커피 생두에 포함된 일부 식물성 지방 성분 등이 130~140도의 높은 온도에서 볶아지는 과정(로스팅)에서 몸에 좋지 않은 물질이 생길 수도 있다는 점도 알게 되었죠.</span></p><p><br></p><p>"유기농 커피도 있고, 커피 자체에 폴리페놀처럼 몸에 좋은 성분도 많잖아요?" 라고 생각하실 수도 있어요. 물론 맞는 말이에요. 하지만 몸에 좋은 성분을 가진 식품은 세상에 정말 많답니다. 커피의 경우, 저처럼 하루에도 몇 잔씩 꾸준히, 거의 매일 마시는 특성 때문에 아무리 좋은 성분이 있다 해도 부정적인 성분 역시 지속적으로 몸에 쌓일 수 있다는 점이 문제라고 생각했어요.</p><p><br></p><p>그리고 커피의 산성 성분이 치아 건강에도 영향을 미친다는 사실, 알고 계셨나요? 물론 커피를 마신다고 해서 바로 치아가 상하는 건 아니에요. 우리 몸은 놀랍게도 커피를 마신 후 30분 정도 지나면 입안 환경을 원래대로 회복시키는 능력이 있거든요. 하지만 텀블러에 담아두고 수시로 마시거나, 하루 종일 커피를 입에 달고 사는 경우엔 치아에서 칼슘이 빠져나가 약해질 수밖에 없다고 해요. 혹시 치아가 약하다고 느끼시는 분들은 평소 커피 섭취 습관을 한번 돌아보시는 것도 좋을 것 같아요.</p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1748412521-7436.png"></p><p><br></p><p><br></p><blockquote class="blockquote">제가 느꼈던 커피의 대표적인 단점들</blockquote><p><br></p><p>커피를 즐겨 마실 때 제가 직접 경험했거나 우려했던 단점들은 다음과 같아요.</p><p><br></p><p>1. 카페인으로 인한 문제</p><p>밤에 잠들기 어렵거나(불면증), 괜스레 머리가 아프고(두통), 속이 쓰린 증상(역류성 식도염 우려)이 있었어요. 또 카페인이 철분 흡수를 방해해서 빈혈을 유발할 수 있고, 심장이 불규칙하게 뛰는 느낌이나 칼슘 부족 문제도 생길 수 있다고 하더라고요.</p><p><br></p><p>2. 커피 크레마의 두 얼굴</p><p>에스프레소 위에 뜨는 황금빛 크레마, 그윽한 커피 향을 더해주지만 사실 이 또한 식물성 콜레스테롤의 일종이라고 해요. 물론 오메가3처럼 몸에 좋은 식물성 콜레스테롤도 있지만, 커피의 경우 고압으로 압축해서 추출하는 과정에서 나오는 것이라 조금은 부담스럽게 느껴졌어요.</p><p><br></p><p>3. 과다 섭취 시 불편함</p><p>저도 가끔 커피를 너무 많이 마신 날에는 심장이 평소보다 빨리 뛰고 괜히 초조해지는 불편한 증상을 느끼곤 했어요.</p><p><br></p><p>4. 혈압 문제 (특히 고혈압 환자)</p><p>커피를 마시면 일시적으로 혈관이 수축했다가, 그 효과가 떨어지면서 오히려 혈압이 오르는 등 혈압 변동에 영향을 줄 수 있다고 해서 혈압이 높으신 분들은 주의가 필요하다고 들었어요.</p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1748412535-2756_ratio.webp"><br></p><p><br></p><blockquote class="blockquote">커피 끊고 1년, 제 몸에 찾아온 놀라운 변화!</blockquote><p><span><br></span></p><p><span>커피를 딱 끊고 처음 몇 주간은 정말 힘들었어요. 아침에 일을 시작하기 전 마시던 커피 한 잔이 하나의 의식과도 같았는데, 그게 사라지니 허전함이 이루 말할 수 없었죠. '이렇게 좋은 걸 왜 끊어야 하나' 하는 생각도 수없이 했어요. 마치 예전에 담배를 끊을 때 느꼈던 감정과 비슷하네요.</span></p><p><br></p><p>제가 커피를 끊기로 결심했던 가장 큰 이유는 바로 <b>'수면의 질'</b> 때문이었어요. 밤에 잠들기까지 시간이 너무 오래 걸렸고, 자도 잔 것 같지 않은 날이 많았거든요. 치아 착색이나 잇몸이 약해지는 것도 은근히 스트레스였고요. 커피를 끊자마자 며칠간은 부작용으로 두통도 있었고, 낮 동안에는 이유 없이 피로감이 몰려오기도 했어요. 하지만 이 모든 어려움을 이겨내고 커피 없는 생활 1년 차에 접어든 지금, 정말 많은 긍정적인 변화를 경험하고 있답니다!</p><p><br></p><p>가장 먼저, 잠들기가 정말 쉬워졌어요! 예전에는 잠자리에 누워 스마트폰을 보거나 이런저런 잡생각에 뒤척이다 못해 최소 30분은 지나야 겨우 잠들곤 했는데, 요즘은 정말 머리만 대면 스르륵 잠이 들어요. 아침에 일어날 때도 훨씬 개운하고요. 수면의 질이 높아지니 하루의 컨디션 자체가 달라지더라고요.</p><p><br></p><p>놀랍게도 커피를 마시지 않으니 낮 동안의 피로감도 훨씬 줄었어요. 전에는 오후만 되면 커피 수혈 없이는 못 버틸 것 같았는데, 지금은 오히려 꾸준히 에너지가 유지되는 느낌이에요. 덕분에 집중력도 더 좋아진 것 같고요.</p><p><br></p><p>그리고 꾸준히 신경 쓰였던 치아 착색 걱정도 덜었고, 잇몸도 한결 건강해진 느낌이 들어요. 예전처럼 커피로 인한 자극이 없으니 확실히 편안해졌어요.</p><p><br></p><p>요즘 저는 커피 대신에 따뜻한 쌍화차나 보리차 같은 곡물차를 즐겨 마시고 있어요. 신기하게도 커피를 끊으니 자연스럽게 갈증이 잘 느껴져서 물도 정말 많이 마시게 되더라고요. 예전에는 갈증을 잘 못 느껴서 물도 잘 안 마셨는데, 요즘은 저절로 물을 자주 찾게 되는 습관이 생겼어요. 덕분에 피부도 전보다 촉촉해진 것 같아 만족스럽답니다!</p><p><br></p><p>물론 지금도 가끔 카페에 가는 것을 좋아하고, 향긋한 커피 냄새를 맡으면 기분이 좋아져요. 커피 자체가 싫어진 건 절대 아니에요. 다만, 저와는 잘 맞지 않는 부분이 있었다는 것을 깨달았고, 지금의 건강하고 활기찬 생활에 아주 만족하고 있답니다.</p><p><span>혹시 저처럼 커피 때문에 알게 모르게 불편함을 겪고 계신 분이 있다면, 한 번쯤 커피와 잠시 거리를 두는 것을 조심스럽게 추천해 드리고 싶어요. 생각보다 훨씬 많은 긍정적인 변화를 경험하실 수 있을 거예요.</span></p><p><br></p><p>예전에 제가 어디선가 읽은 글귀인데, <b>"소유를 하면 할수록 채워지지 않고, 절제를 하면 공허함이 아닌 여유로움을 찾을 수 있다"</b>는 말이 요즘따라 더욱 와닿네요. 여러분의 건강하고 여유로운 일상을 응원합니다!</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 내돈내산]]></category>
<title><![CDATA[ 갑자기 더워진 날씨 BLDC 탁상용 무선 선풍기로 시원하게 극복 후기 : MF-D3]]></title>
<link>https://www.dut.kr/buylog/653/bldc-desk-fan-2025</link>
<guid>https://www.dut.kr/buylog/653/bldc-desk-fan-2025</guid>
<pubDate>Sat, 24 May 2025 07:29:15 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1748039363-9907.png"><br></p><p><br></p><p>안녕하세요! </p><p>여러분, 요즘 날씨 정말 변덕스럽죠? 5월 하순인데 벌써 30도를 훌쩍 넘는 날씨라니, 적응하기가 쉽지 않네요. </p><p>저도 컴퓨터 앞에 앉아 이런저런 작업을 하다 보면 어느새 이마랑 손에 땀이 송골송골 맺히곤 해요. </p><p>그렇다고 벌써 에어컨을 빵빵하게 틀자니 아직 5월이라 조금 망설여지더라고요. 참을 만은 하지만, 그래도 쾌적함은 포기할 수 없잖아요?</p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1748039145-3308.png" alt="깔끔하고 슬림하면서 데스크테리어에 잘 어울린다" title="슬림디자인"><br></p><p><br></p><p>이럴 때 정말 요긴한 아이템이 바로 탁상용 무선 선풍기인 것 같아요! 예전에는 그냥 동그란 선풍기 머리에 기다란 받침대가 있는 전형적인 디자인을 사용했었는데요. </p><p>솔직히 디자인이 예쁘지도 않고, 결정적으로 선 때문에 여기저기 들고 다니기도 불편하고 각도 조절도 한계가 있어서 아쉬움이 많았어요.</p><p><span>그래서 이번에 큰맘 먹고 새로운 탁상용 선풍기를 찾아 나섰답니다! </span></p><p><span>제가 원했던 조건은 명확했어요. 일단 책상 위에 두고 쓰기 편해야 하고, 배터리가 내장된 무선 방식이어야 했죠.</span></p><p>그리고 이왕이면 디자인도 좀 깔끔하고, 캠핑 같은 야외 활동에도 들고 나갈 수 있도록 슬림하면서도 활용도 높은 제품을 찾고 있었어요.</p><p><br></p><p>드디어 발견한 이 제품은 네모반듯한 사각형 모양인데, 거치대 조절 기능이 있어서 캠핑 갔을 때 텐트 안 줄에 걸거나, 야외 테이블 위에 세워두기에도 딱 좋겠더라고요. 슬림한 디자인이라 휴대성도 만족스러웠고요.</p><p><br></p><p><br></p><blockquote class="blockquote">제가 이 선풍기를 선택한 주요 특징들을 좀 더 자세히 말씀드릴게요.</blockquote><p><br></p><p><b>180도 각도 조절, 벽걸이 모드, 탁상 모드 지원</b></p><p> 이게 정말 마음에 들었어요! 원하는 방향으로 바람을 보낼 수 있는 건 기본이고, 책상 위 공간이 부족할 땐 벽에 걸어서 사용할 수도 있더라고요. </p><p>공간 활용도가 아주 뛰어나요.</p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1748039116-6122.png" alt="스텐드가 있어 원하는 각도 조절이 가능" title="각도조절"></p><p><br></p><p><b>충전식 배터리와 3단계 풍속 조절</b></p><p>2000mAh 배터리가 내장되어 있어서 한 번 충전하면 최대 6시간까지 사용할 수 있다고 해요. </p><p>선 없이 자유롭게 이동하며 쓸 수 있다는 게 정말 큰 장점이죠. 바람 세기도 3단계로 조절 가능하고, 버튼 조작도 아주 간편해서 누구나 쉽게 사용할 수 있어요.</p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1748039127-5804.png" alt="터치가 아닌 버튼식이라서 조작감이 좋다" title="간편한조작"></p><p style="text-align: center; "><br></p><p><b>시원한 5엽 날개와 BLDC 모터 탑재</b></p><p>5개의 날개가 만들어내는 바람이 꽤 시원하고 부드러워요. </p><p>특히 저발열 고효율의 BLDC 모터가 탑재되어 있어서 그런지 오래 사용해도 모터 부분이 뜨거워지지 않고, 에너지 효율도 좋다고 하네요.</p><p><br></p><p><b>간편한 청소</b></p><p>선풍기는 오래 쓰다 보면 날개나 커버에 먼지가 쌓이기 마련인데, 이건 앞 커버를 살짝 돌려서 쉽게 분리할 수 있게 되어 있더라고요. </p><p>그래서 물티슈나 청소용 솔로 슥슥 닦아주면 되니까 관리도 정말 편해요. 청소가 쉬운 것도 선풍기 선택에 중요한 포인트잖아요?</p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1748039094-6517.png" alt="커버 제거가 가능해서 청소가 간편" title="쉬운청소"><br></p><p><br></p><p><br></p><p><b>물론, 모든 제품이 완벽할 순 없겠죠? </b></p><p>제가 사용해보니 약간의 소음은 있는 편이었어요. </p><p>아주 조용한 환경을 원하시는 분들께는 조금 거슬릴 수도 있겠다는 생각이 들더라고요. 그리고 개인적으로 아주 약한 바람인 초미풍 모드가 없는 점도 살짝 아쉬웠어요.</p><p><span>하지만 이런 몇 가지 아쉬운 점을 제외하면, 디자인도 깔끔하고 예쁜데다 다양한 상황에서 활용하기 좋은 다용도 선풍기라는 점에서는 정말 만족스럽게 사용하고 있답니다.</span></p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1748039186-5549.png" alt="무아스 플랫스퀘어 탁상용 무선 선풍기 구성품" title="구성품">&nbsp;<img class="border" src="https://www.dut.kr/thumb/water/story/2025/1748039041-6255.png" alt="무아스 플랫스퀘어 탁상용 무선 선풍기 스펙정보" title="스펙"></p><p style="text-align: center; "><br></p><p>저는 주로 컴퓨터 앞에 앉아서 작업할 때 얼굴이나 손 쪽으로 바람을 쐬는 용도로 아주 잘 활용하고 있어요. </p><p>덕분에 갑작스러운 더위에도 조금 더 쾌적하게 집중할 수 있게 되었네요! </p><p>혹시 저처럼 컴퓨터 작업이 많으시거나, 간편하게 사용할 무선 선풍기, 또는 캠핑이나 야외 활동 시 사용할 휴대용 선풍기를 찾고 계신다면 이 제품도 한번 고려해 보시는 건 어떨까요? </p><p>강력 추천합니다!&nbsp;</p><p><br></p><p><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1748039673-6921.png"></p><p> </p><p>1.7에 구입했는데 가격이 조금 올랐네요.</p><p>원래는 다른 제품 주문했는데 품절이라 오래 걸린다고 해서 이 제품으로 선택했습니다.</p><p>선풍기 주문이 많이 증가한 걸로 보이네요.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 개발노트]]></category>
<title><![CDATA[ Apache 서버 Certbot SSL 인증서 발급 오류 해결 삽질 후기 (unauthorized, AH01915)]]></title>
<link>https://www.dut.kr/dev/651/certbot-ssl-error-fix</link>
<guid>https://www.dut.kr/dev/651/certbot-ssl-error-fix</guid>
<pubDate>Fri, 23 May 2025 19:37:06 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1748006254-8959.png"><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1748006152-5717.png" alt="보안 인증서 발급 오류" title="Certbot Error"></p><p style="text-align: center; "><br></p><p style="text-align: center; "><br></p><p><br></p><p>안녕하세요! 오늘은 웹사이트 운영에 필수적인 HTTPS 적용, 그중에서도 Let's Encrypt SSL 인증서를 Certbot을 이용해 발급받으려다 예상치 못한 난관에 부딪혔던 경험과 해결 과정을 상세히 공유해 드리려고 해요. 혹시 저처럼 "Certbot failed to authenticate some domains" 또는 아파치 로그에 "AH01915" 같은 메시지를 보고 막막하셨던 분들께 도움이 되길 바랍니다!</p><p><br></p><p>오늘은 제 웹사이트에 HTTPS를 적용하기 위해 Certbot으로 SSL 인증서를 발급받으려다 겪었던 아찔한 오류와 그 해결 과정을 생생하게 공유해 드리려고 해요. 혹시 저와 비슷한 문제로 골머리를 앓고 계신 분들이 있다면 이 글이 작은 도움이 되길 바랍니다!</p><p><br></p><p><b>사건의 발단: 도메인 연결 후 SSL 인증서 발급 시도</b></p><p><span>새로운 도메인을 서버에 연결하는 작업은 언제나 설레죠! adduser 명령어로 새 사용자 계정을 만들고, passwd로 비밀번호도 설정하고, 웹 서버 설정 파일인 httpd.conf나 가상 호스트 설정 파일(vhost.conf)에 새 계정 정보를 추가하는 것까지는 순조로웠어요.</span></p><p><span>이제 HTTPS 통신을 위한 SSL 인증서를 발급받을 차례! 무료 SSL 인증서 발급 도구인 Certbot은 정말 편리해서 자주 사용하는데요. 이번에도 어김없이 아래 명령어를 입력했습니다. (제 도메인은 www.monim.net이라고 가정할게요.)</span></p><p><span><br></span></p><pre># certbot certonly --apache -d www.monim.net</pre><p><br></p><p>엔터를 딱! 누르고 잠시 기다리는데...</p><p><span>예상치 못한 오류 메시지 등장!</span></p><p><span>두근거리던 마음도 잠시, 화면에 빨간 글씨와 함께 나타난 오류 메시지는 저를 당황하게 만들었어요.</span></p><p><span><br></span></p><pre>Saving debug log to /var/log/letsencrypt/letsencrypt.log Requesting a certificate for www.monim.net Certbot failed to authenticate some domains (authenticator: apache). The Certificate Authority reported these problems: Domain: www.monim.net Type: unauthorized Detail: 115.68.177.58: Invalid response from http://www.monim.net/.well-known/acme-challenge/8UqYAxKRixE-Gg4zeEHyrewy--EYfkkeHafNPJYVO4U: 400 Hint: The Certificate Authority failed to verify the temporary Apache configuration changes made by Certbot. Ensure that the listed domains point to this Apache server and that it is accessible from the internet. Some challenges have failed. Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.</pre><p><br></p><p>"unauthorized" 라니! 인증 권한이 없다니, 이게 무슨 일일까요? 분명 도메인도 잘 연결했고, 서버도 잘 돌아가고 있는데 말이죠. Certbot이 임시로 만든 파일에 접근해서 도메인 소유권을 확인해야 하는데, 그게 안된다는 뜻이었어요.</p><p><span>단서 발견: 아파치 에러 로그 확인</span></p><p><span>오류 메시지에 나온 힌트대로 로그 파일을 뒤져보기 시작했어요. 아파치(Apache) 웹 서버의 에러 로그를 살펴보니 이런 메시지가 찍혀 있더라고요.</span></p><p><span><br></span></p><pre>AH01915: Init: (www.example.com:80) You configured HTTPS(443) on the standard HTTP(80) port!</pre><p><br></p><p>이 메시지는 "어라? 일반 HTTP 접속(80번 포트)인데 왜 HTTPS 설정(443번 포트용 설정)이 되어 있지?" 하고 아파치가 혼란스러워하는 상황을 말해주는 거예요. 분명 저는 80번 포트에는 일반 HTTP 설정을, 443번 포트에는 HTTPS 설정을 하려고 했는데 말이죠.</p><p><span>과거에 이 서버 세팅을 처음 할 때 뭔가 꼬였던 부분이 있었는지, 아니면 제가 다른 설정을 만지다가 문제가 생긴 건지 도통 감이 오지 않았어요. 설정 파일들을 열어보고, 로그 파일을 다시 보고... 몇 시간을 그렇게 원인 찾기에 매달렸답니다.</span></p><p><span><br></span></p><p><span><b>문제의 핵심: SSLEngine on 설정 중복</b></span></p><p><span>계속해서 관련된 설정들을 찾아보다가 SSLEngine on 이라는 지시어가 여러 설정 파일에 중복으로, 혹은 예상치 못한 곳에 적용된 것을 의심하게 되었어요. SSLEngine on은 해당 영역에서 SSL 암호화를 사용하겠다는 선언 같은 거거든요.</span></p><p><span>터미널에서 아래 명령어로 SSLEngine on이 어디에 설정되어 있는지 찾아봤어요.</span></p><p><span><br></span></p><pre># sudo grep -Ri "SSLEngine on" /etc/httpd/</pre><p><br></p><p>결과는 놀라웠습니다.</p><pre>/etc/httpd/conf.d/userdir.conf:SSLEngine on /etc/httpd/conf.d/ssl.conf.disabled: SSLEngine on /etc/httpd/conf.d/ssl.conf.disabled: SSLEngine on /etc/httpd/conf.d/ssl.conf_ori: SSLEngine on /etc/httpd/conf.d/ssl.conf: SSLEngine on /etc/httpd/conf/httpd.conf_250509: SSLEngine On grep: /etc/httpd/modules/mod_ssl.so: binary file matches grep: /etc/httpd/run/cgisock.8785: No such device or address</pre><p><br></p><p>여러 파일에서 SSLEngine on 설정이 발견되었지만, 가장 눈에 띈 것은 /etc/httpd/conf.d/userdir.conf:SSLEngine on 이 부분이었어요. userdir.conf 파일은 보통 사용자 홈 디렉터리를 웹으로 접근할 수 있게 해주는 설정인데, 여기에 SSLEngine on이 설정되어 있으면 다른 가상 호스트 설정보다 먼저 읽혀서 전역적으로 SSL 설정이 적용되어 버리는 문제가 생길 수 있어요. 즉, 모든 HTTP(80 포트) 요청까지 HTTPS로 처리하려고 시도하면서 앞서 봤던 AH01915 오류가 발생했던 거죠!</p><p><br></p><p><b>해결 방법: 문제의 설정 파일 처리</b></p><p><br></p><p>원인을 찾았으니 해결은 상대적으로 간단했어요! 문제가 된 /etc/httpd/conf.d/userdir.conf 파일의 SSLEngine on 설정을 수정하거나, 해당 파일이 꼭 필요한 상황이 아니라면 백업 후 잠시 다른 곳으로 옮겨서 아파치가 읽지 않도록 하는 방법이 있어요. 저의 경우에는 해당 파일의 내용을 검토 후, SSLEngine on 부분을 주석 처리하거나 파일 자체를 잠시 백업 폴더로 이동시키는 방법으로 해결했습니다. (주의: 설정을 변경하기 전에는 항상 원본 파일을 백업해두는 습관이 중요해요!)</p><p><br></p><p>만약 userdir.conf 파일 자체는 필요하고, SSLEngine on 설정만 문제라면 해당 라인을 #으로 주석 처리해주시면 됩니다.</p><p><br></p><pre># SSLEngine on &lt;- 이 부분을 이렇게 주석 처리</pre><p><br></p><p>저는 귀찮아서&nbsp;<span>userdir.conf 파일을 백업하고 파일을 사용하지 않도록 했습니다.</span></p><p><br></p><p>그리고 아파치 설정을 다시 로드하거나 재시작 해 줍니다.</p><pre># sudo systemctl reload httpd # 또는 # sudo systemctl restart httpd</pre><p><br></p><p>드디어 성공! Certbot SSL 인증서 발급 완료</p><p><span>두근거리는 마음으로 다시 Certbot 명령어를 실행했습니다.</span></p><pre># certbot certonly --apache -d www.monim.net</pre><p><br></p><pre>Saving debug log to /var/log/letsencrypt/letsencrypt.log Requesting a certificate for www.monim.net Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/www.monim.net/fullchain.pem Key is saved at: /etc/letsencrypt/live/www.monim.net/privkey.pem This certificate expires on 2025-08-21. These files will be updated when the certificate renews. Certbot has set up a scheduled task to automatically renew this certificate in the background. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - If you like Certbot, please consider supporting our work by: * Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate * Donating to EFF: https://eff.org/donate-le - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</pre><p><br></p><p>"Successfully received certificate." 만세! 드디어 인증서가 정상적으로 발급되었어요. 이어서 www가 붙지 않은 기본 도메인(monim.net)에 대해서도 동일하게 진행해서 성공했습니다.</p><p><br></p><pre># certbot certonly --apache -d monim.net</pre><p><br></p><pre>Saving debug log to /var/log/letsencrypt/letsencrypt.log Requesting a certificate for monim.net Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/monim.net/fullchain.pem Key is saved at: /etc/letsencrypt/live/monim.net/privkey.pem This certificate expires on 2025-08-21. These files will be updated when the certificate renews. Certbot has set up a scheduled task to automatically renew this certificate in the background. ...</pre><p><br></p><p>몇 시간 동안 저를 괴롭혔던 문제가 해결되는 순간, 정말 짜릿하더라고요!</p><p><br></p><p><b>마무리하며: 오류는 성장의 밑거름!</b></p><p><span>이번 경험을 통해 아파치 설정 파일의 로드 순서와 중복 설정의 위험성에 대해 다시 한번 배울 수 있었어요. 특히 SSLEngine on 같이 강력한 지시어는 정확한 위치에 신중하게 사용해야 한다는 점을 깨달았습니다.</span></p><p><span>혹시라도 Certbot SSL 인증서 발급에 어려움을 겪고 계신다면, 가장 먼저 아파치 에러 로그를 확인해보시고, 저처럼 설정 파일 어딘가에 SSL 관련 설정이 잘못 적용되어 있지는 않은지 꼼꼼히 살펴보세요. 특히 conf.d 디렉토리 안에 있는 파일들은 알파벳 순서대로 로드되거나 특정 파일이 우선적으로 로드될 수 있으니 이 점도 유의하시면 좋습니다.</span></p><p><span>오늘 저의 삽질기가 여러분의 문제 해결에 조금이나마 도움이 되었으면 좋겠습니다. 모두 즐거운 서버 운영되시길 바라요!</span></p><p><br></p><p>이전에는 CentOS 사용할 때에는 기본 설치하고 httpd.conf 파일에 계정을 모두 추가해서 사용하다가&nbsp; Rockly Linux 넘어오면서 이런 문제가 발생했네요.</p><p><br></p><p><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 내돈내산]]></category>
<title><![CDATA[ 데스커 3단 슬림서랍 DVDSAP2303A 구입후기]]></title>
<link>https://www.dut.kr/buylog/649/desker-slim-drawer</link>
<guid>https://www.dut.kr/buylog/649/desker-slim-drawer</guid>
<pubDate>Thu, 22 May 2025 21:37:02 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747917502-1311.png"><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747917450-4765.png"><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747917416-1552.png"><br></p><p><br></p><p>사무실에서 책상 밑에 있는 사무용 서랍장 정말 유용하게 쓰고 계시죠? </p><p>저도 그랬어요. 그런데 집에서는 굳이 필요성을 못 느끼고 있었거든요. 그러다 아이가 중요한 물건들에 자꾸 손을 대서 서랍장을 알아봐야겠다는 생각이 들었죠.</p><p><span>처음에는 저가형 서랍장을 찾아봤는데, 습기에 약해서 쉽게 들뜨거나 코팅이 벗겨진다는 후기가 많더라고요. 실용성은 좋지만 MDF 소재라 무겁고 디자인도 예쁘지 않아서 고민이 됐어요.</span></p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747917423-1495.png"><br></p><p><br></p><p>집에 둘 거니까 좀 더 심플하고 깔끔한 디자인에, 아이가 함부로 열지 못하게 잠금 기능이 있는 제품을 찾다가 데스커 3단 슬림 서랍을 발견했어요! 마침 책상도 </p><p>데스커 제품이라 디자인이 깔끔하게 잘 어울릴 것 같아서 바로 구매를 결정했죠. 가격은 12만원대라 저렴한 편은 아니지만, 그래도 만족도가 높아서 후회는 없어요.</p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747917428-3128.png"><br></p><p><br></p><p>데스커 3단 슬림 서랍의 가장 큰 장점은 바로 슬림한 사이즈예요. 의자 밑에 둬도 다리가 걸리지 않아서 정말 편해요. 디자인도 군더더기 없이 깔끔하고, 마감이나 완성도도 뛰어나서 인테리어를 해치지 않는다는 점이 아주 마음에 들어요. 서랍을 여닫을 때도 슬라이드가 정말 부드럽고, 충격 방지 고무가 부착되어 있어서 소음 없이 조용하게 닫힌답니다. 그리고 뒷쪽에 바퀴가 있어서 이동이 쉽다는 것도 좋았어요. 앞에 욕실 매트 같은 걸 뒤집어 놓으면 더 쉽게 움직일 수 있답니다!</p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747917436-5721.png"><br></p><p><br></p><p>아쉬운 점도 물론 있어요. 서랍 내부에 칸막이가 따로 없고 옵션으로도 판매하지 않는다는 점이 좀 아쉬웠어요. </p><p>그리고 A4 용지가 들어갈 정도의 공간이라 생각보다 작게 느껴질 수도 있어요. 그래도 저는 다이소에서 수납 플라스틱 여러 개를 사서 활용하고 있답니다. 사무실처럼 이것저것 잡동사니를 잔뜩 넣기보다는, 집에서는 슬림하고 깔끔하게 정돈해서 사용하는 목적으로 구매했기 때문에 단점들을 충분히 보완하면서 잘 쓰고 있어요.</p><p><br></p><p>이 제품은 제가 구매한 폭 400mm 외에 폭 600mm 제품도 판매하고 있으니, 용도에 맞게 선택하시면 될 것 같아요. 색상은 화이트, 화이트오크+화이트, 화이트오크 이렇게 세 가지가 있는데, 저는 깔끔한 화이트로 선택했답니다.</p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747917465-5074.png"><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747917482-2128.png"><br></p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 머니톡톡]]></category>
<title><![CDATA[ 홈택스 세금계산서 발급시 거래처 정보 수정하기]]></title>
<link>https://www.dut.kr/money/648/hometax-client-mod</link>
<guid>https://www.dut.kr/money/648/hometax-client-mod</guid>
<pubDate>Thu, 22 May 2025 21:09:22 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747915844-1036.png"></p><p style="text-align: center; "><br></p><p><br></p><p>계산서 발급시 편리하게 등록번호에 사업자등록번호를 누르고 옆에 확인 버튼을 누르면 이전에 발급했던 정보로 자동으로 입력이 됩니다.</p><p>처음 거래 업체의 경우는 어쩔 수 없이 상호, 성명, 사업장주소, 업태, 종몰, 이메일까지 모두 기입해야 하지만 다음에 발급하는 경우에는 번호만 넣고 쉽게 입력이 가능합니다.</p><p>그렇지만 거래처 사업장도 주소를 옮기거나 변경되는 정보가 있으니 이전에 발급 된 정보를 수정하여 사용해야 하는 경우가 있습니다.</p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747915517-2920.png"></p><p><br></p><p><br></p><blockquote class="blockquote">전자(세금)계산서 거래처 관리 메뉴</blockquote><p>처음 거래하는 업체에 세금계산서를 발급할 때에는 필수 정보를 모두 입력해야 계산서 발급이 가능합니다. 발급된 정보는 거래처로 자동 저장되어 있어 다음에는 사업자등록번호만 입력하고 확인을 누르면 나머지는 자동으로 입력이 됩니다. 그렇지 않으면 상호, 이름, 주소 찾기와 업태 및 이메일까지 모두 입력하는 번거로움이 생깁니다.</p><p>변경하지 않고 그대로 발급하여 다른 사람에게 이메일이 가거나 담당자에게 전달이 안되고 또는 변경되지 않는 사업자로 발급이 되는 경우도 생기게 됩니다.</p><p><br></p><p>메뉴 위치로는 계산서·영수증<span>·카드 &gt; 전자(세금)계산서 발급 &gt; 거래처 및 품목 관리 &gt; 전자(세금)계산서 거래처 관리 메뉴에서 변경이 가능합니다.</span></p><p><span><br></span></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747914723-4477.png"></p><p><br></p><p><br></p><blockquote class="blockquote">거래처정보 관리</blockquote><p>해당 페이지에 들어오면 그동안 세금계산서 발급을 했던 모든 업체가 리스트로 표시 됩니다. 변경된 거래처의 경우 거래처 사업자등록번호 또는 거래처명, 대표자명을 통해 데이터가 많은 경우 검색하여 찾도록 합니다.&nbsp;</p><p>거래가 종료된 곳은 삭제해도 됩니다.</p><p><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747914872-5166.png"></p><p><br></p><p><br></p><blockquote class="blockquote">거래처정보 수정 및 삭제</blockquote><p>거래처 정보 관리에서 해당하는 업체에 상세 보기 버튼을 클릭하면 거래처 정보 수정 및 삭제 화면에 저장된 정보가 표시 됩니다.</p><p>아래 화면에서 변경된 주소나 사업자 명 등을 수정하거나 삭제하기 버튼을 통해 삭제도 가능합니다.</p><p>자주 변경되는 일은 없지만 담당자 이메일이 바뀌는 경우가 있어 세금 계산서 발급이 많은 경우 메뉴를 알아 두면 편리합니다.</p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747914953-6515.png"><br></p><p><br></p><p>사업을 하려면 자주 사용하게 되는 세금계산서 발급 이후에 거래처 정보를 수정할 수 있는 방법에 대해 소개 해 드렸습니다.</p><p>처음에는 홈택스 서비스가 어렵게 느껴졌는데 자주 이용해보니 이제는 부담이 적어졌네요.</p>]]></description>
</item>
<item>
<author><![CDATA[ 코드그랩 | 디유서치 ]]></author>
<category><![CDATA[ 내돈내산]]></category>
<title><![CDATA[ 알뜰폰으로 통신비 7만원 절약! 샤오미 14T 듀얼유심 활용기]]></title>
<link>https://www.dut.kr/buylog/647/altteul-phone-save</link>
<guid>https://www.dut.kr/buylog/647/altteul-phone-save</guid>
<pubDate>Thu, 22 May 2025 13:44:52 +0900</pubDate>
<description><![CDATA[ <p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747889951-1141.png"><br></p><p style="text-align: center; "><br></p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747889922-3733.png"><br></p><p><br></p><blockquote class="blockquote">알뜰폰, 왜 이제야 썼을까요?</blockquote><p>안녕하세요! 혹시 매달 휴대폰 요금으로 부담을 느끼고 계시나요? 저는 얼마 전까지도 대형 통신사에 매달 7만원 넘게 내면서 기기값까지 합치면 10만원이 훌쩍 넘는 돈을 지출했어요. 솔직히 좀 아깝다는 생각을 늘 했었죠. 그러다가 우연히 알뜰폰을 업무용으로 써보고 만족도가 너무 높아서, 결국 메인 폰까지 알뜰폰으로 갈아탔답니다!</p><p><br></p><p><br></p><blockquote class="blockquote">샤오미 14T와 KTM 모바일의 완벽 조합</blockquote><p>지금은 자급제 폰인 샤오미 14T에 KTM 모바일 알뜰폰을 메인으로 사용하고 있어요. 여러 알뜰폰 사업자를 사용해봤지만, 개인적으로는 KTM 모바일의 만족도가 가장 높았어요. 데이터 무제한 요금제도 저렴하고, 제휴 요금제도 다양해서 선택의 폭이 넓더라고요. 덕분에 매달 7~8만원씩 나가던 통신비를 지금은 1만원대로 확 줄였답니다! 물론 5G 요금제도 있지만, 저는 LTE 요금제를 쓰고 있는데 크게 불편함 없이 잘 사용하고 있어요.</p><p>저처럼 사진 위주가 아니라면 국내 정식 발매한 포코폰도 추천합니다.</p><p><br></p><p><br></p><blockquote class="blockquote">듀얼 유심으로 개인폰, 업무폰 하나로!</blockquote><p>여기서 제가 가장 만족하는 부분은 바로 듀얼 유심이에요. 샤오미 14T는 듀얼 유심을 지원해서 개인 폰과 업무 폰을 하나로 통합해서 쓰고 있거든요. 덕분에 두 개의 폰을 들고 다닐 필요 없이 휴대성이 훨씬 좋아졌어요.</p><p><span>다만, 기존 유심을 eSIM으로 바꾸는 과정은 조금 번거로웠어요. EID, IMEI 1, IMEI 2 정보를 모두 전화로 불러줘야 하더라고요. 온라인으로 처리할 수 있으면 더 편리할 것 같아요. 최근 S사 해킹 사건 때문인지 114 연결이 정말 힘들어서 이 부분은 조금 아쉬웠습니다.</span></p><p><br></p><p><br></p><blockquote class="blockquote">월 2만원대로 누리는 통신 자유!</blockquote><p>저는 지금 메인 폰으로 '모두다 맘껏 7GB+(Pay쿠폰_5000P)' 요금제(월 18,500원)를 쓰고 있어요. 7GB 데이터를 모두 소진하면 속도가 1MB로 느려지지만, 문자랑 통화는 무제한이라 부족함을 못 느끼고 있어요. 업무 폰으로는 '통화맘껏 1.5GB' 요금제(월 6,900원)를 사용 중인데, 듀얼 유심이라 메인 폰으로 데이터를 사용하고 있어서 업무 폰은 데이터가 적은 요금제로 충분하답니다.</p><p><br></p><p>이렇게 해서 저는 두 개의 회선으로 월 25,400원만 내고 있어요. 예전에는 유튜브 프리미엄 결합 요금제에 기기값 할부까지 해서 월 13만원이나 지출했었는데, 지금은 정말 현명한 소비를 하고 있다는 생각이 들어요.</p><p><br></p><p><br></p><p style="text-align: center; ">사용중인 메인폰 요금제 : 오두다 맘껏 7GB+(PAY쿠폰_5000P)</p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747888387-7262.png"></p><p><br></p><p style="text-align: center; "><br></p><p style="text-align: center; ">사용중인 업무폰 요금제 : 통화 맘껏 1.5GB</p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747888402-1710.png"></p><p><br></p><p><br></p><p><b>알뜰폰, 강력 추천합니다!</b></p><p>자급제 폰을 구매하고 알뜰폰, 특히 KTM 모바일의 듀얼 유심 요금제를 사용하면서 통신비 부담을 크게 줄이고 삶의 질이 향상되는 것을 경험하고 있어요. </p><p>통신 품질도 좋고 가격도 저렴해서 정말 만족스럽습니다. 여러분도 통신비 때문에 고민하고 있다면, 알뜰폰으로의 전환을 진심으로 추천해 드려요!</p><p><br></p><p>저는 네이버 쇼핑을 자주 이용해서 5,000 쿠폰을 제공하는 요금제를 이용하고 있어요.</p><p>쿠폰이 필요 없는 분은 좀 더 저렴한 요금 사용이 가능합니다.</p><p><br></p><hr><p><br></p><p>가입하기 :&nbsp;<a href="https://www.ktmmobile.com/m/event/eventDetail.do?ntcartSeq=866&amp;sbstCtg=E&amp;pageNo=1&amp;recommend=I0118" target="_blank">https://www.ktmmobile.com/m/event/eventDetail.do?ntcartSeq=866&amp;sbstCtg=E&amp;pageNo=1&amp;recommend=I0118</a></p><p>가입고객 사은품은? 추천ID 입력시&nbsp;</p><p style="text-align: center; "><img class="border" src="https://www.dut.kr/thumb/water/story/2025/1747896728-6872.png"><br></p>]]></description>
</item>
</channel>
</rss>

