<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>hwa-j.log</title>
        <link>https://velog.io/</link>
        <description>개발 공부하랴 블로그 쓰랴 바쁘다 으랴</description>
        <lastBuildDate>Sat, 21 May 2022 13:33:20 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>hwa-j.log</title>
            <url>https://velog.velcdn.com/images/hwa-j/profile/d73d1829-0d32-471f-b390-979bb9a5d85f/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. hwa-j.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/hwa-j" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[오류 해결 방법
(Module not found: Error: Can't resolve 'fs', 'path', 'os' in '/Users/node_modules/dotenv/lib')]]></title>
            <link>https://velog.io/@hwa-j/%EC%98%A4%EB%A5%98-%ED%95%B4%EA%B2%B0-%EA%B3%BC%EC%A0%95-%EC%A0%95%EB%A6%AC-Module-not-found-Error-Cant-resolve-fs-path-os-in-Usersnodemodulesdotenvlib</link>
            <guid>https://velog.io/@hwa-j/%EC%98%A4%EB%A5%98-%ED%95%B4%EA%B2%B0-%EA%B3%BC%EC%A0%95-%EC%A0%95%EB%A6%AC-Module-not-found-Error-Cant-resolve-fs-path-os-in-Usersnodemodulesdotenvlib</guid>
            <pubDate>Sat, 21 May 2022 13:33:20 GMT</pubDate>
            <description><![CDATA[<h1 id="오류-발생">오류 발생</h1>
<p><img src="https://velog.velcdn.com/images/hwa-j/post/abef2c41-2083-4cde-b1d3-d77663cb26d8/image.png" alt=""></p>
<h1 id="오류-발생-과정">오류 발생 과정</h1>
<h2 id="dotenv-설치-및-env-파일-작성"><code>dotenv</code> 설치 및 .env 파일 작성</h2>
<p>.env 파일에서 설정한 환경변수를 사용하기 위해 <code>dotenv</code> 라이브러리를 Node.js 프로젝트에 설치</p>
<p><code>$ npm i dotenv</code></p>
<h2 id="환경변수-불러오기">환경변수 불러오기</h2>
<p>dotenv 라이브러리를 import 코드를 env.js파일로 분리</p>
<pre><code class="language-js">// env.js

import dotenv from &quot;dotenv&quot;

dotenv.config()</code></pre>
<pre><code class="language-js">// main.js

import &quot;./env.js&quot;

const API_KEY = process.env.API_KEY</code></pre>
<p>에러 발생 시작</p>
<h2 id="node--r-옵션-사용">node -r 옵션 사용</h2>
<p><code>node -r dotenv/config index.js</code></p>
<p>에러 변화 없음</p>
<h1 id="오류-해결">오류 해결</h1>
<h2 id="1-dotenv-webpack-설치">1. <code>dotenv-webpack</code> 설치</h2>
<p>웹팩 사용중으로 별도 웹팩 패키지가 있다는 것을 보고 설치</p>
<p><code>npm install -d --save dotenv-webpack</code></p>
<h2 id="2-webpackconfigjs-파일-내용-추가">2. webpack.config.js 파일 내용 추가</h2>
<pre><code class="language-js">// webpack.config.js

const Dotenv = require(&#39;dotenv-webpack&#39;)

module.exports = {
  plugins: [
    new Dotenv()
  ],

  resolve: {
    fallback: {
        &quot;fs&quot;: false,
        &quot;path&quot;: false ,
        &quot;os&quot;: false
    }
  }
}
</code></pre>
<p>해결 완료</p>
</br>

<h1 id="참고자료">참고자료</h1>
<ul>
<li><a href="https://www.daleseo.com/js-dotenv/">dotenv로 환경 변수 관리하기 (www.daleseo.com/js-dotenv/)</a></li>
<li><a href="https://dtuto.com/questions/7199/module-not-found-error-can-rsquo-t-resolve-lsquo-fs-rsquo-in">Module not found: Error: Can’t resolve ‘fs’ in (https://dtuto.com/)</a></li>
<li><a href="https://bum-developer.tistory.com/entry/React-Webpack-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-%ED%99%98%EA%B2%BD%EB%B3%80%EC%88%98-%EC%82%AC%EC%9A%A9">[React] Webpack 환경에서 환경변수 사용 (https://bum-developer.tistory.com/)</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[CLI 명령어 정리]]></title>
            <link>https://velog.io/@hwa-j/CLI-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC</link>
            <guid>https://velog.io/@hwa-j/CLI-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC</guid>
            <pubDate>Wed, 06 Apr 2022 13:34:00 GMT</pubDate>
            <description><![CDATA[<h2 id="clicommand-line-interface-명령어"><strong><strong>CLI(Command Line Interface) 명령어</strong></strong></h2>
 <br>

<h3 id="1-메뉴얼-manual">1. 메뉴얼 (Manual)</h3>
 <br />

<ul>
<li><p><code>$ man {명령어}</code> : (Manual) 명령어의 메뉴얼을 보고싶을 때 사용 </p>
</li>
<li><p><code>$ {명령어} --help</code> : flag(=option) 볼 수 있음(zsh은 안됨)</p>
</li>
<li><p><code>$ clear</code> : 작성한 명령어 내역들을 지움 (삭제X)</p>
</li>
<li><p><code>$ open {폴더or파일}</code> : 작성한 명령어 내역들을 지움 (삭제X)</p>
<details>
<summary>man 사용 예시</summary>
<div markdown="1">

<img src="https://s3.us-west-2.amazonaws.com/secure.notion-static.com/11b00870-ade4-4bc4-94cd-a159a2558308/스크린샷_2022-03-29_오후_3.37.12.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220406%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220406T113329Z&X-Amz-Expires=86400&X-Amz-Signature=48850b5d094667076e9f5e7775fa98662e9f94efb36387ee1356ca07bfd07041&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22%25EC%258A%25A4%25ED%2581%25AC%25EB%25A6%25B0%25EC%2583%25B7%25202022-03-29%2520%25EC%2598%25A4%25ED%259B%2584%25203.37.12.png%22&x-id=GetObject" alrt="메뉴얼의 메뉴얼을 보는 명령어"/>
<img src="https://s3.us-west-2.amazonaws.com/secure.notion-static.com/e17bf397-8127-4e73-8f11-bce6621658c5/스크린샷_2022-03-29_오후_3.36.47.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220406%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220406T113441Z&X-Amz-Expires=86400&X-Amz-Signature=e6461000a8eff46f2cd8ae721f0104953e3abbcf40967b5314281f832b441cfa&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22%25EC%258A%25A4%25ED%2581%25AC%25EB%25A6%25B0%25EC%2583%25B7%25202022-03-29%2520%25EC%2598%25A4%25ED%259B%2584%25203.36.47.png%22&x-id=GetObject" alrt="메뉴얼의 메뉴얼"/>
메뉴얼 보기 종료는 “q”입력
</div>
</details>



</li>
</ul>
<hr>
 <br/>

<h3 id="2-파일-시스템-탐색하기-navigating-file-system">2. 파일 시스템 탐색하기 (Navigating file system)</h3>
 <br/>

<ul>
<li><p><code>$ pwd</code> (Print Working Directory)
: 현재 나의 위치를 절대경로로 보여줌</p>
</li>
<li><p><code>$ ls {폴더명}</code> (List) 
: 현재 위치하는 디렉토리 안의 폴더와 파일들을 보여줌
지정한 폴더의 목록을 보고싶을 때 사용</p>
<ul>
<li>ls 옵션<ul>
<li><code>$ ls -l</code> (long) : 목록을 상세정보까지 보여줌 (이름, 사이즈, 저장시간, 파일 소유주..)</li>
<li><code>$ ls -a</code> (all) : ui상에 보이지 않는 숨긴 파일을 포함하여 보여줌</li>
<li><code>$ ls -al</code> (long all) : 목록을 숨겨진 파일과 상세정보까지 보여줌</li>
</ul>
</li>
</ul>
</li>
<li><p><code>$ cd {폴더명}</code> (Change Directory)
: 현재 나의 위치를 절대경로로 보여줌</p>
<ul>
<li>cd 이동 키워드<ul>
<li><code>$ cd ~</code> : 현재 사용자의 최상위(홈) 경로 이동</li>
<li><code>$ cd .</code> : 현재 경로 이동 (변화X)</li>
<li><code>$ cd ..</code> : 상위 경로 이동</li>
<li><code>$ cd -</code> : 직전 이동경로 이동  </li>
</ul>
</li>
</ul>
</li>
<li><p><code>$ find  찾을경로  -type {종류} -name “찾고싶은 이름”</code>
: 파일 시스템에서 특정 파일이나 폴더를 찾을때 사용</p>
</li>
<li><p><code>which {프로그램명}</code>
: 프로그램 설치, 설정된 위치 경로 확인할 때 사용</p>
<br/>





</li>
</ul>
  <details>
  <summary>예시</summary>
  <div markdown="1">

  <img src="https://s3.us-west-2.amazonaws.com/secure.notion-static.com/df78fa7d-bc53-4934-bb3a-624144e7d55e/스크린샷_2022-03-30_오전_2.00.33.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220406%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220406T122135Z&X-Amz-Expires=86400&X-Amz-Signature=94b7a7203b554e809e6312c38a5ec3507c1f590080fde4647bf77921aa42747f&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22%25EC%258A%25A4%25ED%2581%25AC%25EB%25A6%25B0%25EC%2583%25B7%25202022-03-30%2520%25EC%2598%25A4%25EC%25A0%2584%25202.00.33.png%22&x-id=GetObject"/>
  <img src="https://s3.us-west-2.amazonaws.com/secure.notion-static.com/61b16229-a5ae-4d89-8c51-0dc366503d7f/스크린샷_2022-03-30_오전_2.28.56.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220406%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220406T122253Z&X-Amz-Expires=86400&X-Amz-Signature=25c2c36895c12346442e15e72edc08042369c49fdbb84169752bcb40c721b22d&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22%25EC%258A%25A4%25ED%2581%25AC%25EB%25A6%25B0%25EC%2583%25B7%25202022-03-30%2520%25EC%2598%25A4%25EC%25A0%2584%25202.28.56.png%22&x-id=GetObject"/>
    현재 경로와 하위에 있는 모든 폴더에 한해서 텍스트 파일을 찾고 싶을때
  <img src="https://s3.us-west-2.amazonaws.com/secure.notion-static.com/f65f45b1-d29c-470e-877b-3542d0a1e792/스크린샷_2022-03-30_오전_2.23.34.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220406%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220406T122329Z&X-Amz-Expires=86400&X-Amz-Signature=7979acd8bf55c1c2525439d6b62e75b410b18c395293c5be8129f07cfdb1c3fb&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22%25EC%258A%25A4%25ED%2581%25AC%25EB%25A6%25B0%25EC%2583%25B7%25202022-03-30%2520%25EC%2598%25A4%25EC%25A0%2584%25202.23.34.png%22&x-id=GetObject"/>
  <img src="https://s3.us-west-2.amazonaws.com/secure.notion-static.com/fd7a81fa-c631-4ec5-a883-c0f84a236568/스크린샷_2022-03-30_오전_2.28.27.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220406%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220406T122343Z&X-Amz-Expires=86400&X-Amz-Signature=2545ffb77baf8a41967bf472661b8cd23c0b065c46180bf0f3bf9183810bbb0a&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22%25EC%258A%25A4%25ED%2581%25AC%25EB%25A6%25B0%25EC%2583%25B7%25202022-03-30%2520%25EC%2598%25A4%25EC%25A0%2584%25202.28.27.png%22&x-id=GetObject"/>

  <img src="https://s3.us-west-2.amazonaws.com/secure.notion-static.com/333aa436-0f5c-49f9-b2da-486b1f1fd031/스크린샷_2022-03-30_오전_2.38.34.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220406%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220406T122407Z&X-Amz-Expires=86400&X-Amz-Signature=8998aa23e0870c687928ac1ac26a5ed14d87b18ff475297d785ef436d5d8dbba&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22%25EC%258A%25A4%25ED%2581%25AC%25EB%25A6%25B0%25EC%2583%25B7%25202022-03-30%2520%25EC%2598%25A4%25EC%25A0%2584%25202.38.34.png%22&x-id=GetObject"/>

  </div>
  </details>

<hr>
<h3 id="3-파일-생성-및-관리하기-create-and-manage-files">3. 파일 생성 및 관리하기 (Create and manage files)</h3>
<br/>

<ul>
<li><p><code>$ touch {생성할파일명.확장자}</code> : 새로운 파일 생성할때 사용
존재하는 파일 작성시 수정날짜가 touch작성 시점으로 업데이트 됨</p>
</li>
<li><p><code>$ cat {파일명}</code> : 파일 안의 내용을 터미널을 통해 볼때 사용</p>
</li>
<li><p><code>$ echo</code> : 문자열을 터미널에 출력할 때 사용, 보통 &gt;와 함께 사용</p>
<ul>
<li><code>$ echo “문자열” &gt; 생성파일명.확장자</code> : 파일 생성과 동시에 “문자열” 내용을 반영해 줌
※ 주의!) 동일한 파일명을 쓸 경우 새로운 “문자열”로 덮어씌워짐</li>
<li><code>$ echo “문자열” &gt;&gt; 생성파일명.확장자</code> : 기존 파일명을 사용하면 “문자열”이 추가됨</li>
</ul>
</li>
<li><p><code>$ mkdir {폴더명}</code> (Make Directory) : 새로운 폴더를 생성할 때 사용</p>
<ul>
<li><code>$ mkdir -p {생성폴더명/하위폴더명/하위폴더명}</code> : 경로이동 없이 하위폴더 함께 생성</li>
</ul>
</li>
<li><p><code>$ cp {파일명} {경로(./ ../ ~/)}</code> (Copy)
: 파일 복사할 때 사용</p>
</li>
<li><p><code>$ mv {파일명} {경로(./ ../ ~/)}</code> (Move): 파일 이동할 때 사용
<code>$ mv {파일명} {변경할파일명}</code> : 파일 이름 변경할 때 사용</p>
<br /></li>
<li><p><code>$ rm {파일명}</code> (Remove) : 파일 삭제할 때 사용</p>
<ul>
<li><code>$ rm -r {폴더명}</code> : 폴더와 폴더 하위 파일 모두 삭제할 때 사용 (삭제여부 물어봄)</li>
<li><code>$ rm -rf {폴더명}</code> : 폴더와 폴더 하위 파일 모두 강제 삭제</li>
</ul>
</li>
<li><p><code>$ grep “키워드” {*.확장자}</code> (Global regular expression print)
: 특정파일에 포함된 키워드를 검색할 때 사용</p>
<ul>
<li><code>$ grep -n “키워드” {*.확장자}</code> : 키워드가 몇번째 줄에 있는지도 표시함</li>
<li><code>$ grep -ni “키워드” {*.확장자}</code> : 대소문자 구분없이 키워드 검색</li>
<li><code>$ grep -nir “키워드” {경로(./ ../ ~/)}</code>
: 지정 경로를 포함한 하위경로에 있는 모든 파일에서 검색</li>
</ul>
</li>
</ul>
<details>
<summary>echo 예시</summary>
<div markdown="1">

<img src="https://s3.us-west-2.amazonaws.com/secure.notion-static.com/22a6dfe3-1452-4ca4-872b-d49944aaffd5/스크린샷_2022-03-30_오전_3.05.14.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220406%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220406T125556Z&X-Amz-Expires=86400&X-Amz-Signature=f275985690b7fe52e5a0a92c4e39ae048cd4d8bc8327123a584e144446a93453&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22%25EC%258A%25A4%25ED%2581%25AC%25EB%25A6%25B0%25EC%2583%25B7%25202022-03-30%2520%25EC%2598%25A4%25EC%25A0%2584%25203.05.14.png%22&x-id=GetObject" />

</div>
</details>

<br />

<hr>
<h3 id="4-환경-변수-설정하기-work-with-environment-variables">4. 환경 변수 설정하기 (Work with environment variables)</h3>
<br />

<ul>
<li><p><code>$ export {변수명}=”설정값”</code> : 환경변수를 설정할 때 사용</p>
</li>
<li><p><code>$ unset {변수명}</code> : 설정한 변수를 삭제할 때 사용</p>
</li>
<li><p><code>$ env</code> : 내가 설정한 모든 환경 변수를 볼 때 사용</p>
</li>
<li><p><code>$ {변수명}</code> : 환경변수를 불러올 때 사용</p>
</li>
</ul>
<p>환경변수란 내 컴퓨터에서 특정한 키워드가 어떠한 일을 하거나 경로를 저장할 수 있도록 만듦
환경변수는 보통 대문자로 만들며 구분자는 _(언더바)를 사용해 변수명을 설정할 수 있음 </p>
<br />

<ul>
<li>참고자료: <a href="https://www.youtube.com/watch?v=EL6AQl-e3AQ">https://www.youtube.com/watch?v=EL6AQl-e3AQ</a></li>
</ul>
]]></description>
        </item>
    </channel>
</rss>