<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>justdoit_code.log</title>
        <link>https://velog.io/</link>
        <description>JUST DO IT</description>
        <lastBuildDate>Mon, 14 Apr 2025 17:23:51 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>justdoit_code.log</title>
            <url>https://velog.velcdn.com/images/justdoit_code/profile/ff8dce92-d4bf-492b-832b-d8c37d302aa6/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. justdoit_code.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/justdoit_code" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[싱크홀, 어디까지 알고 계신가요? – 발생 원인부터 예방 대책까지 정리]]></title>
            <link>https://velog.io/@justdoit_code/%EC%8B%B1%ED%81%AC%ED%99%80-%EC%96%B4%EB%94%94%EA%B9%8C%EC%A7%80-%EC%95%8C%EA%B3%A0-%EA%B3%84%EC%8B%A0%EA%B0%80%EC%9A%94-%EB%B0%9C%EC%83%9D-%EC%9B%90%EC%9D%B8%EB%B6%80%ED%84%B0-%EC%98%88%EB%B0%A9-%EB%8C%80%EC%B1%85%EA%B9%8C%EC%A7%80-%EC%A0%95%EB%A6%AC</link>
            <guid>https://velog.io/@justdoit_code/%EC%8B%B1%ED%81%AC%ED%99%80-%EC%96%B4%EB%94%94%EA%B9%8C%EC%A7%80-%EC%95%8C%EA%B3%A0-%EA%B3%84%EC%8B%A0%EA%B0%80%EC%9A%94-%EB%B0%9C%EC%83%9D-%EC%9B%90%EC%9D%B8%EB%B6%80%ED%84%B0-%EC%98%88%EB%B0%A9-%EB%8C%80%EC%B1%85%EA%B9%8C%EC%A7%80-%EC%A0%95%EB%A6%AC</guid>
            <pubDate>Mon, 14 Apr 2025 17:23:51 GMT</pubDate>
            <description><![CDATA[<h1 id="🕳-싱크홀-어디까지-알고-계신가요">🕳 싱크홀, 어디까지 알고 계신가요?</h1>
<h3 id="-발생-원인부터-예방-대책까지-정리">– 발생 원인부터 예방 대책까지 정리</h3>
<hr>
<h2 id="📌-싱크홀이란">📌 싱크홀이란?</h2>
<p>싱크홀(Sinkhole)은 지표면이 갑자기 꺼지면서 구멍처럼 움푹 파이는 현상입니다.<br>주로 지하의 <strong>토양 침하</strong> 또는 <strong>지하수 유실</strong>, <strong>지하 구조물 붕괴</strong> 등에 의해 발생하며,<br>예고 없이 일어나기 때문에 <strong>생명과 재산 피해</strong>로 이어질 수 있습니다.</p>
<hr>
<h2 id="⚠-주요-발생-원인">⚠ 주요 발생 원인</h2>
<table>
<thead>
<tr>
<th>원인</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>🧯 노후 상하수도관</td>
<td>누수로 인한 지반 침하 발생</td>
</tr>
<tr>
<td>🚧 지하 공사</td>
<td>지하철·공동구·기반시설 시공 중 지반 이완</td>
</tr>
<tr>
<td>🪨 지질 구조</td>
<td>석회암 지대 등 자연적으로 지반 약한 지역</td>
</tr>
<tr>
<td>🏗 무분별한 굴착</td>
<td>민간 공사 시 안전 관리 소홀</td>
</tr>
<tr>
<td>💧 지하수 과도한 이용</td>
<td>수위 저하로 지반 붕괴 유발</td>
</tr>
</tbody></table>
<hr>
<h2 id="✅-싱크홀-예방-대책">✅ 싱크홀 예방 대책</h2>
<h3 id="1-상하수도관-정기-점검-및-교체">1. 상하수도관 정기 점검 및 교체</h3>
<ul>
<li>전국적으로 30년 이상 된 관로 다수  </li>
<li><strong>정밀 진단 → 단계적 교체</strong> 필요  </li>
<li><code>AI 기반 누수 탐지 시스템</code> 도입 필요</li>
</ul>
<hr>
<h3 id="2-지하공사-사전-지반조사-강화">2. 지하공사 사전 지반조사 강화</h3>
<ul>
<li>시공 전 <strong>지반투과레이더(GPR)</strong>, <strong>지질 탐사</strong> 의무화  </li>
<li>설계 변경 시 <strong>사전 안전영향평가 강화</strong></li>
</ul>
<hr>
<h3 id="3-스마트-도시-인프라-도입">3. 스마트 도시 인프라 도입</h3>
<ul>
<li>IoT 센서로 <strong>도로 하부 변화 실시간 감지</strong>  </li>
<li><strong>위험 징후 조기 경보 시스템</strong> 구축</li>
</ul>
<p><img src="https://images.unsplash.com/photo-1533750516457-a7f992034fec?auto=format&fit=crop&w=1000&q=80" alt="iot"></p>
<hr>
<h3 id="4-지반침하-위험지도-공개">4. 지반침하 위험지도 공개</h3>
<ul>
<li>시민이 자주 다니는 지역의 <strong>지반 안정성 정보 제공</strong>  </li>
<li>민간 시공 시 정보 연계 시스템 구축</li>
</ul>
<hr>
<h3 id="5-시민-제보-기반-대응-시스템">5. 시민 제보 기반 대응 시스템</h3>
<ul>
<li>진동·균열·함몰 등 징후 시 <strong>즉시 제보 가능한 앱 구축</strong>  </li>
<li><strong>신고 → 현장점검 → 즉시 조치 체계 필요</strong></li>
</ul>
<hr>
<h3 id="싱크홀-맵-보러가기"><strong>싱크홀 맵 보러가기</strong></h3>
<p><a href="https://sinkhole-map-project.vercel.app/">https://sinkhole-map-project.vercel.app/</a>
<img src="https://velog.velcdn.com/images/justdoit_code/post/ed7f7209-23b4-49b1-b338-3f43deaf6a66/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Nest.js] Nest.js 빠르게 시작하기 (2) - User 생성]]></title>
            <link>https://velog.io/@justdoit_code/Nest.js-Nest.js-%EB%B9%A0%EB%A5%B4%EA%B2%8C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-2-API-%EC%83%9D%EC%84%B1-%ED%9B%84-%ED%98%B8%EC%B6%9C</link>
            <guid>https://velog.io/@justdoit_code/Nest.js-Nest.js-%EB%B9%A0%EB%A5%B4%EA%B2%8C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-2-API-%EC%83%9D%EC%84%B1-%ED%9B%84-%ED%98%B8%EC%B6%9C</guid>
            <pubDate>Thu, 10 Aug 2023 14:50:05 GMT</pubDate>
            <description><![CDATA[<p>아직 Nest.js로 프로젝트를 생성하지 못했다면 이전시간에 작성한 글을 따라 프로젝트를 생성해 보자</p>
<ul>
<li><a href="https://velog.io/@justdoit_code/Nest.js-Nest.js-%EB%B9%A0%EB%A5%B4%EA%B2%8C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-1-Nest.js-start">[Nest.js] Nest.js 빠르게 시작하기 (1) - Nest.js start</a></li>
</ul>
<h2 id="nestjs-파일-구조-분석">Nest.js 파일 구조 분석</h2>
<hr>
<p>이전 시간에 Nest.js로 프로젝트를 생성하여 로컬에서 실행시켜 보았다.</p>
<p>이번 시간은 Nest.js로 생성한 프로젝트의 파일 구조를 알아보도록 하겠다.</p>
<img src="https://velog.velcdn.com/images/justdoit_code/post/e782a7db-8d49-4486-aa13-5d354a5116e4/image.png" width="50%" height="30">


<p>크게 아래 파일 구조로 프로젝트가 생성된다.</p>
<ul>
<li><strong>dist</strong> : nest.js는 TypeScript로 작성되어있어 서버를 실행하면 JavaScript로 컴파일 파일이 생성된다.</li>
<li><strong>node_modules</strong> : 는 파일명과 동일하게 node module이 있는 파일</li>
<li><strong>src</strong> : 주로 src파일 하위에서 코드를 작성하게 된다. (src아래 파일에 있는 main.ts을 찾아 서버가 실행되기 때문에 main.ts의 파일 이름을 바꿔선 안된다.)</li>
<li><strong>test</strong> : 차후에 TDD를 짤때 사용할 파일</li>
</ul>
</br>

<h2 id="module-생성">Module 생성</h2>
<hr>
<p>우선 기존에 자동 생성되어있는 파일을 삭제하도록 한다.</p>
<blockquote>
<p>삭제 파일 목록</p>
</blockquote>
<ul>
<li>app.controller.spec.ts</li>
<li>app.controller.ts</li>
<li>app.service.ts </li>
</ul>
</br>

<p>그 후 모듈 생성 명령어를 입력하면 새로운 user 폴더가 생성되고 그아래 user.module.ts파일이 생성된다.</p>
<pre><code>&gt; nest g module user</code></pre></br>

<h2 id="controller-생성">Controller 생성</h2>
<hr>
<pre><code>nest g controller user --no-spec
</code></pre></br>

<h2 id="service-생성">Service 생성</h2>
<hr>
<pre><code>nest g service user --no-spec</code></pre></br>

<h2 id="호출">호출</h2>
<hr>
<p>실행 명령어</p>
<pre><code>npm run start:dev </code></pre><p>실행이 완료되면 url 창에서 <a href="http://localhost:3000/user">http://localhost:3000/user</a> 를 호출 하여 확인 할 수 있다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[PostgreSQL 시작error && brew services start postgresql 에러 해결]]></title>
            <link>https://velog.io/@justdoit_code/PostgreSQL-%EC%8B%9C%EC%9E%91error-brew-services-start-postgresql-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0</link>
            <guid>https://velog.io/@justdoit_code/PostgreSQL-%EC%8B%9C%EC%9E%91error-brew-services-start-postgresql-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0</guid>
            <pubDate>Sat, 05 Aug 2023 11:40:36 GMT</pubDate>
            <description><![CDATA[<p>postgresql을 예전에 설치해놓고 오랜만에 사용하려고 접근을 시도하려고 한 삽질 메모..</p>
<h2 id="1️⃣-첫번째-에러">1️⃣ 첫번째 에러</h2>
<hr>
<p><img src="https://velog.velcdn.com/images/justdoit_code/post/01f1c6b1-80b8-402b-9abe-3f362737630d/image.png" alt=""></p>
<pre><code>$ psql postgresql
psql: error: connection to server on socket &quot;/tmp/.s.PGSQL.5432&quot; failed: No such file or directory
    Is the server running locally and accepting connections on that socket?</code></pre><p>postgresql 디비에 접근하는 psql postgresql 명령어를 사용하여 디비에 접근하려고 했지만 
서버가 안켜져 있다는 에러메시지를 받고</p>
<p>postgresql 의 status를 확인하였다.</p>
<pre><code>$ brew services list</code></pre><p>아래 이미지와 같이 status가 error로 표시되었다. </p>
<p><img src="https://velog.velcdn.com/images/justdoit_code/post/4e932cf0-8b41-4ab9-ae99-3c32156ec5d4/image.png" alt=""></p>
<h2 id="2️⃣-두번째-에러">2️⃣ 두번째 에러</h2>
<hr>
<p>그 후 시도한 방법은 postgresql의 status가 정상으로 돌아오게 하기 위해 업데이트와 재시작을 하였다.</p>
<pre><code>$ brew postgresql-upgrade-database
$ brew services restart postgresql</code></pre><p>하지만 동일하게 status가 여전히 error로 떠서 재삭제와 재설치를 진행하였다.</p>
<pre><code>brew uninstall postgresql@14
brew install postgresql@14
brew services restart postgresql
</code></pre><p>하지만 또 같이 status가 error로 뜨고 있어서 여러 구글링을 통해 </p>
<p>pid 파일을 삭제하였고 </p>
<pre><code>rm /usr/local/var/postgres/postmaster.pid </code></pre><p>그래도 동작하지 않아
/usr/local/var/postgres/ 파일 자체를 삭제하고 재설치하였는데도 동일하였다.</p>
<p>왜 그런지 이유를 찾기 위해 로그파일이 있는 걸 발견하고 로그파일을 확인하였다.</p>
<h2 id="📕-에러로그-확인">📕 에러로그 확인</h2>
<hr>
<p>해당 명령어로 로그파일에는 No such file or directory 라는 명령어가 찍혀있었고 설치할 때 뒤에 @14를 지정하여 설치해서 그런것으로 판단되어 brew install postgresql를 통해 해결하였다..</p>
<pre><code> tail -f /usr/local/var/log/postgresql@14.log
 postgres: could not access directory &quot;/usr/local/var/postgresql@14&quot;: No such file or directory
Run initdb or pg_basebackup to initialize a PostgreSQL data directory.</code></pre><p> <img src="https://velog.velcdn.com/images/justdoit_code/post/dc4406fc-cff0-4f0f-92a3-c6d515afdc5b/image.png" alt=""></p>
<h2 id="🚀-해결">🚀 해결</h2>
<pre><code>---
brew uninstall postgresql
brew install postgresql
brew services restart postgresql
brew services list</code></pre><p><img src="https://velog.velcdn.com/images/justdoit_code/post/07a22e29-3290-42fd-ad39-e432d14588ef/image.png" alt=""></p>
<p>다시 삭제 및 재설치를 하고 정상적으로 동작하는 것을 확인 하였고 
postgresql에서 default로 생성해주는 계정으로 접근하였다.</p>
<blockquote>
<p>psql postgres</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Nest.js] Nest.js 빠르게 시작하기 (1) - Nest.js start]]></title>
            <link>https://velog.io/@justdoit_code/Nest.js-Nest.js-%EB%B9%A0%EB%A5%B4%EA%B2%8C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-1-Nest.js-start</link>
            <guid>https://velog.io/@justdoit_code/Nest.js-Nest.js-%EB%B9%A0%EB%A5%B4%EA%B2%8C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-1-Nest.js-start</guid>
            <pubDate>Fri, 28 Jul 2023 16:57:19 GMT</pubDate>
            <description><![CDATA[<p><span style="color: gray"><em><del>참 간지나는 로고이다..</del></em></p>
<h2 id="nestjs-간단-설명">Nest.js 간단 설명</h2>
<hr>
<blockquote>
</blockquote>
<p>Nest.js를 처음 접해보는 사람들에게 추천합니다.</p>
<p>Nest.js는 프레임 워크로 나의 친구 gpt가 </p>
<p><em>&quot; NestJS(또는 Nest.js)는 Node.js 서버 애플리케이션을 구축하기 위한 프레임워크입니다. NestJS는 TypeScript로 작성되어 있으며,...&quot; 라고 합니다.</em></p>
<p>기존 node.js 와 다르게 기본적인 뼈대를 제공합니다.
<span style="color: gray">예를 들어 python의 django라고 생각하시면 될 듯</span></p>
<h1 id="nestjs-프로젝트-생성하기">Nest.JS 프로젝트 생성하기</h1>
<hr>
<p><a href="https://nodejs.org/ko/download/">node를</a> 설치했다면 npm을 사용하여 nest.js 시작할 수 있다.</p>
<p>nest.js 프로젝트 생성</p>
<pre><code>#npm
$ npm i -g @nestjs/cli
$ nest new project-name</code></pre><p>프로젝트가 생성되면 아래 구조로 파일이 생성된 것을 확인 할 수 있다.</p>
<p><img src="https://velog.velcdn.com/images/justdoit_code/post/63cb0349-88d8-4ab5-a453-1b4435f17dad/image.png" alt=""> </p>
<p>그 후에 본인이 생성한 작업 디렉토리 경로 아래에서 해당 명령어를 터미널에 입력하면 <a href="http://localhost:3000/">http://localhost:3000/</a> 를 통해  hello world!를 확인할 수 있다.!(참쉽쥬?)</p>
<pre><code>$ npm run start</code></pre><p><img src="https://velog.velcdn.com/images/justdoit_code/post/5954858c-278e-4d5f-8992-1dc9ca8feb8b/image.png" alt=""></p>
<p>포트 3000은 project-name/src/main.ts 파일에서 3000으로 지정된 것을 확인 할 수 있다.
<img src="https://velog.velcdn.com/images/justdoit_code/post/4e92eb9b-0c3f-4b27-8f53-dda93e5e9dfb/image.png" alt=""></p>
<p>다음은 이어서 api로 만들어서 호출해보는 작업을 진행해 보겠다.</p>
]]></description>
        </item>
    </channel>
</rss>