<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>하얀나다의블로그</title>
    <link>https://devjisu.tistory.com/</link>
    <description>it, 여행, 사진 관련 글 올림</description>
    <language>ko</language>
    <pubDate>Sat, 25 Jul 2026 08:46:15 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>하얀나다</managingEditor>
    <item>
      <title>싱글톤 패턴</title>
      <link>https://devjisu.tistory.com/181</link>
      <description>&lt;p&gt;어떠한 객체가 유일하게 존재 할때 사용 하는것.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;JDBC Connection, Login 정보 등 1개의 정보로 공유 해야하는것에 사용&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Login User&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. 자기 자신을 객체로 가지고 있어야 하며&lt;/p&gt;
&lt;p&gt;2. 기본&lt;span&gt;생성자를 가지고 생성 하는 행위를 막아야함&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3. static 메소드를 통해 getInstance() 메소드를 제공해야함.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1617641507764&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class LoginUser {

    // 1.자기자신을 객체로 가지고 있어야 하고
    private static LoginUser loginUser = null;
    // 2. 생성자를 가지고 생성 하는 행위를 막아야함
    private LoginUser (){

    }
    // 3.static 메소드를 통해 getInstance() 인스턴스 메소드를 제공해야함
    public static LoginUser getInstance(){

        if(loginUser == null){
            loginUser = new LoginUser();
        }

        return loginUser;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;위의 LoginUser Class는 유일 하게 존재함&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이를 사용하고자 하면&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1617641759612&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;LoginUser a = new LoginUser()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;가 아닌&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1617641816602&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;private LoginUser loginUser;

public APage(){
    this.loginUser = LoginUser.getInstance();
}

public LoginUser getLoginUser(){
    return this.loginUser;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;위와 같이 getInstance 라는 인스턴스 메소드로 불러 와야함&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;한번 로그인이 되면 같은 유저 정보를 계속 봐야지 유정정보가 필요할때마다 다시 로그인 하진 않음.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;만약 해당 정보를 Main.java 에서 실행하고 싶다면&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1617642009818&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;APage aPage = new APage();
LoginUser aLoginUser = aPage.getLoginUser();&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>it/디자인패턴</category>
      <category>loginuser</category>
      <category>singleton</category>
      <category>객체</category>
      <category>디자인패턴</category>
      <category>싱글톤패턴</category>
      <author>하얀나다</author>
      <guid isPermaLink="true">https://devjisu.tistory.com/181</guid>
      <comments>https://devjisu.tistory.com/181#entry181comment</comments>
      <pubDate>Tue, 6 Apr 2021 02:04:25 +0900</pubDate>
    </item>
    <item>
      <title>Javascript es6 destructuring assignment</title>
      <link>https://devjisu.tistory.com/179</link>
      <description>&lt;p&gt;비구조화 할당, 구조분해,&amp;nbsp;&lt;span&gt;destructuring assignment&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;객체를 만들어쓸때 아래와 같이 만드는게 기본이였는데&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1607525860293&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const dog = {
  name: &quot;Gaja&quot;,
  age: 5
};

function print(what) {
  const text = `우리집 강아지이름은 ${what.name}이고 나이는 ${what.age}살 입니다!`;
  console.log(text);
}

print(dog);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;es6 에서는 다음과 같이 사용가능&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1607525984779&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const dog = {
  name: &quot;Gaja&quot;,
  age: 5
};
function print(what) {
  const { name, age } = what;
  const text = `우리집 강아지이름은 ${name}이고 나이는 ${age}살 입니다!`;
  console.log(text);
}
print(dog);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;이거를 다시 아래 처럼 사용가능&lt;/p&gt;
&lt;pre id=&quot;code_1607526113401&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const dog = {
  name: &quot;Gaja&quot;,
  age: 5
};
function print({ name, age }) {
  const text = `우리집 강아지이름은 ${name}이고 나이는 ${age}살 입니다!`;
  console.log(text);
}
print(dog);&lt;/code&gt;&lt;/pre&gt;</description>
      <category>it/JavaScript</category>
      <category>destructuring assignment</category>
      <category>ES6</category>
      <category>JavaScript</category>
      <category>객체</category>
      <category>구조분해</category>
      <category>비구조화 할당</category>
      <category>자바스크립트</category>
      <author>하얀나다</author>
      <guid isPermaLink="true">https://devjisu.tistory.com/179</guid>
      <comments>https://devjisu.tistory.com/179#entry179comment</comments>
      <pubDate>Thu, 10 Dec 2020 00:00:45 +0900</pubDate>
    </item>
    <item>
      <title>Javascript es6 Template Literal</title>
      <link>https://devjisu.tistory.com/178</link>
      <description>&lt;p&gt;es6부터 템플릿 리터럴 표기법을 도입&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1607444464402&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const name = '아무개'
const str = '내 이름은 ' + name + '입니다.'&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;를&lt;/p&gt;
&lt;pre id=&quot;code_1607444508841&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const name = '아무개'
const str = `내 이름은 ${name}입니다.`&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;로 표기 할수 있다.&lt;/p&gt;</description>
      <category>it/JavaScript</category>
      <category>ES6</category>
      <category>JavaScript</category>
      <category>Template Literal</category>
      <category>``</category>
      <category>리터널</category>
      <category>템플릿</category>
      <category>템플릿 리터럴</category>
      <author>하얀나다</author>
      <guid isPermaLink="true">https://devjisu.tistory.com/178</guid>
      <comments>https://devjisu.tistory.com/178#entry178comment</comments>
      <pubDate>Wed, 9 Dec 2020 01:22:19 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript es6 Arrow function</title>
      <link>https://devjisu.tistory.com/177</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;기존에 만들었던 function &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1607444110721&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function sum(a, b) {
    return a + b
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;es6 Arrow Function 등장으로 아래와 같이 만들수있음&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1607444120006&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const sum = (a, b) =&amp;gt; {
    return a + b
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;별다른 로직없이 return 만 있을 경우 아래와 같이 줄일수있음&lt;/p&gt;
&lt;pre id=&quot;code_1607444132196&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const sum = (a, b) =&amp;gt; a + b&lt;/code&gt;&lt;/pre&gt;</description>
      <category>it/JavaScript</category>
      <category>arrow</category>
      <category>arrowfunction</category>
      <category>ES6</category>
      <category>function</category>
      <category>JavaScript</category>
      <category>sum</category>
      <category>함수</category>
      <category>화살표함수</category>
      <author>하얀나다</author>
      <guid isPermaLink="true">https://devjisu.tistory.com/177</guid>
      <comments>https://devjisu.tistory.com/177#entry177comment</comments>
      <pubDate>Wed, 9 Dec 2020 01:16:29 +0900</pubDate>
    </item>
    <item>
      <title>Puppeteer를 이용한 크롤링(Crawling) - HTML파싱</title>
      <link>https://devjisu.tistory.com/175</link>
      <description>&lt;p&gt;이제 파싱을 해보자.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;우선 따라쳐라.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1583681901838&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const puppeteer = require(&quot;puppeteer&quot;);

const main = async () =&amp;gt; {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto(
    &quot;https://sports.news.naver.com/kbaseball/record/index.nhn?category=kbo&quot;,
    { waitUntil: &quot;networkidle2&quot; }
  );
  await page.waitFor(5000);

  const teamRank = await page.waitFor(
  //id는# class는. 다 알잖아요
    &quot;tbody#regularTeamRecordList_table&amp;gt;tr:nth-child(1)&amp;gt;td.tm&amp;gt;div&amp;gt;span&quot;
  );
  const txtTeamRank = await page.evaluate(
    teamRank =&amp;gt; teamRank.textContent,
    teamRank
  );

  console.log(&quot;1등 팀은 : &quot;, txtTeamRank);

  await browser.close();
};
main();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이런식으로 파싱 해올수 있다.&lt;/p&gt;</description>
      <category>it/Node.js</category>
      <category>Crawling</category>
      <category>HTML</category>
      <category>Node</category>
      <category>nodejs</category>
      <category>Parsing</category>
      <category>puppeteer</category>
      <category>노드</category>
      <category>크롤링</category>
      <category>파싱</category>
      <category>퍼펫티어</category>
      <author>하얀나다</author>
      <guid isPermaLink="true">https://devjisu.tistory.com/175</guid>
      <comments>https://devjisu.tistory.com/175#entry175comment</comments>
      <pubDate>Mon, 9 Mar 2020 00:41:24 +0900</pubDate>
    </item>
    <item>
      <title>Puppeteer를 이용한 크롤링(Crawling) - HTML</title>
      <link>https://devjisu.tistory.com/174</link>
      <description>&lt;p&gt;크롤링의 진정한 목적은 HTML 파싱이 아니겠는가.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;일단 HTML을 한번 받아와 보자.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;일단 쳐라.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1583680262980&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const puppeteer = require(&quot;puppeteer&quot;);
const fs = require(&quot;fs&quot;);

const main = async () =&amp;gt; {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto(
    &quot;https://sports.news.naver.com/kbaseball/record/index.nhn?category=kbo&quot;,
    //wait옵션을 지정해줄수 있다.
    { waitUntil: &quot;networkidle2&quot; }
  );
  //일단 5초간 대기
  await page.waitFor(5000);
  const html = await page.content();
  //역시 Screenshot과 마찬가지로 현재 폴드의 KBO.html 로 저장 하였다.
  fs.writeFileSync(&quot;KBO.html&quot;, html);
  await browser.close();
};
main();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;내가 좋아하는 야구의 순위를 확인 하기 위한 페이지를 가져와 보았다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;우선 오늘은 페이지를 가져 오는 정도에서 만족하고 다음에 하부 파싱 하는걸 작성하겠다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;아래는 waitUntil 의 옵션이다.&lt;/p&gt;
&lt;p&gt;(출처 : &lt;a href=&quot;http://magic.wickedmiso.com/138&quot;&gt;http://magic.wickedmiso.com/138&lt;/a&gt;)&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.8837%; height: 269px;&quot; border=&quot;1&quot; width=&quot;800&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;옵 션&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;설&amp;nbsp; &amp;nbsp;명&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&amp;nbsp;load&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&amp;nbsp;&amp;middot; load 이벤트가 시작되면 탐색이 완료되는 것으로 간주한다.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&amp;nbsp;docntentload&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&amp;nbsp;&amp;middot; HTML 문서가 완전히 로드 및 파싱되었을 경우(DOMContentLoaded 이벤트) 탐색이 완료되는 것으로 간주한다.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&amp;nbsp;networkidle0&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&amp;nbsp;&amp;middot; 최소한 500ms 동안 네트워크 연결이 0개 이상 없을때 탐색이 완료되는 것으로 간주한다.&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&amp;nbsp;networkidle2&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&amp;nbsp;&amp;middot; 최소한 500ms 동안 두 개 이상의 네트워 연결이 없을 때 탐색이 완료되는 것으로 간주한다.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>it/Node.js</category>
      <category>Crawling</category>
      <category>HTML</category>
      <category>Node</category>
      <category>nodejs</category>
      <category>puppeteer</category>
      <category>waitUntil</category>
      <category>노드</category>
      <category>크롤링</category>
      <category>퍼펫티어</category>
      <author>하얀나다</author>
      <guid isPermaLink="true">https://devjisu.tistory.com/174</guid>
      <comments>https://devjisu.tistory.com/174#entry174comment</comments>
      <pubDate>Mon, 9 Mar 2020 00:13:40 +0900</pubDate>
    </item>
    <item>
      <title>Puppeteer를 이용한 크롤링(Crawling) - 스크린샷</title>
      <link>https://devjisu.tistory.com/173</link>
      <description>&lt;p&gt;먼저 스크린샷을 한번 찍어보자.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;쉽다. 일단 따라 쳐라.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1583679723573&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const puppeteer = require(&quot;puppeteer&quot;);

const main = async () =&amp;gt; {
  //브라우저를 오픈하고
  const browser = await puppeteer.launch();
  //페이지를 만든다
  const page = await browser.newPage();
  //페이지를 원하는 페이지로 오픈하고
  await page.goto(&quot;https://devjisu.tistory.com&quot;);
  //스크린샷을 찍는데 주소는 현재 위치의 screenshot.png라는 파일로 저장
  await page.screenshot({ path: &quot;screenshot.png&quot; });
  //끝났으면 브라우저 종료
  await browser.close();
};

main();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;생각 보다 편해 보였다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;브라우저를 오픈하고 페이지를 만들고 원하는 페이지를 오픈 후 스크린샷 을 찍고 메모리 누수 방지를 위해 브라우저 종료.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이 순서만 잘 기억 하면 따로 외우지 않더라도 쉽게 할 수 있을듯 하다.&amp;nbsp;&lt;/p&gt;</description>
      <category>it/Node.js</category>
      <category>Crawling</category>
      <category>Node</category>
      <category>nodejs</category>
      <category>puppeteer</category>
      <category>ScreenShot</category>
      <category>노드</category>
      <category>스크린샷</category>
      <category>크롤링</category>
      <category>퍼펫티어</category>
      <author>하얀나다</author>
      <guid isPermaLink="true">https://devjisu.tistory.com/173</guid>
      <comments>https://devjisu.tistory.com/173#entry173comment</comments>
      <pubDate>Mon, 9 Mar 2020 00:03:52 +0900</pubDate>
    </item>
    <item>
      <title>Puppeteer를 이용한 크롤링(Crawling)</title>
      <link>https://devjisu.tistory.com/172</link>
      <description>&lt;p&gt;오늘은 노드를 이용한 크롤링을 정리 하기 위해 내용을 남긴다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;공부는 크롬 개발자들이 만든 퍼펫티어(Puppeteer)를 이용하여 공부 했다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;장점은 크롬이 가능한거라면 다 가능 하다고 하는데...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;아직 스크린샷, html 소스 받아오기 밖에 해보지 않아 잘 모르겠다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;공식 사이트는&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1583679381165&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;https://github.com/puppeteer/puppeteer&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;요기 들어가서 확인 하면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;아래 Getting Started 에 있는&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1583679426391&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm i puppeteer
# or &quot;yarn add puppeteer&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;를 참고 하여 다운로드 하면 된다.&lt;/p&gt;</description>
      <category>it/Node.js</category>
      <category>Crawling</category>
      <category>Node</category>
      <category>nodejs</category>
      <category>NPM</category>
      <category>puppeteer</category>
      <category>yarn</category>
      <category>노드</category>
      <category>크롤링</category>
      <category>퍼펫티어</category>
      <author>하얀나다</author>
      <guid isPermaLink="true">https://devjisu.tistory.com/172</guid>
      <comments>https://devjisu.tistory.com/172#entry172comment</comments>
      <pubDate>Sun, 8 Mar 2020 23:58:30 +0900</pubDate>
    </item>
    <item>
      <title>Mac에서 배치파일 만들기</title>
      <link>https://devjisu.tistory.com/171</link>
      <description>&lt;p&gt;앞에서 말한 방법은 바로 배치 파일을 만들어 버리는것이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;새파일을 만든 후&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1581435794934&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#!/bin/bash&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;를 그대로 작성 해준다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;bash shell 을 사용하겠다는 말이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그런뒤 자신이 사용할 명령어를 작성해준다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1581435919115&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mongod --config /usr/local/etc/mongod.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이렇게 하면 서버 동작을 하게 만들어준다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이렇게만 한다고 배치파일이 등록 되지는 않는다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;cmd 창으로 이동하여&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1581436153190&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;chmod +x [bash script 파일명]&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;로 사용권한을 주게 된다면 배치 파일이 완성된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이제 이렇게 만든 파일을 실행 해주면 정상적으로 실행이 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;하지만 종료가 되지 않는다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;종료하려면 활성 상태 보기에서 종료를 해줘야한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;만약 방법을 찾게 된다면 여기에 공유 하겠다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;여튼 저방법으로 서버가 실행되도록 하면&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1581436099581&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mongo&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이파일도 저장하여 배치 파일을 만들어준다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Mac/설정</category>
      <category>bash</category>
      <category>BAT</category>
      <category>bat만들기</category>
      <category>mac에서 배치</category>
      <category>mongo</category>
      <category>mongod</category>
      <category>MongoDB</category>
      <category>배치</category>
      <category>배치프로그램</category>
      <author>하얀나다</author>
      <guid isPermaLink="true">https://devjisu.tistory.com/171</guid>
      <comments>https://devjisu.tistory.com/171#entry171comment</comments>
      <pubDate>Wed, 12 Feb 2020 00:50:38 +0900</pubDate>
    </item>
    <item>
      <title>Mac 에서 Brew를 이용하여 mongoDB설치 하기</title>
      <link>https://devjisu.tistory.com/170</link>
      <description>&lt;p&gt;1. 앞선 방법역시 실패 하여 고민인 나를 위한 저장.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;우선&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1581435561899&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;brew tap mongodb/brew

brew install mongodb-community@4.2&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;따라 작성하라.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그러면 설치 완료..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;한가지 단점은 실행시 아래의 명령어를 써야한다는거..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;mongod 대신하여 아래와 같이 길게 작성 해야한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1581435594396&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mongod --config /usr/local/etc/mongod.co&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;이것을 대신하기 위한 방법은 다음 포스트에 작성 할 예정&lt;/p&gt;</description>
      <category>Mac/설정</category>
      <category>BREW</category>
      <category>brew install</category>
      <category>brew tap</category>
      <category>Mac</category>
      <category>MongoDB</category>
      <category>맥에서 mongodb</category>
      <author>하얀나다</author>
      <guid isPermaLink="true">https://devjisu.tistory.com/170</guid>
      <comments>https://devjisu.tistory.com/170#entry170comment</comments>
      <pubDate>Wed, 12 Feb 2020 00:42:15 +0900</pubDate>
    </item>
  </channel>
</rss>