IT,프로그래밍 블로그 프로그래밍 정리용 블로그. 컴퓨터, IT, 프로그래밍 관련 블로그입니다. https://wepplication.github.io/ 애널리틱스를 이용해서 웹사이트 분석하기 https://wepplication.github.io/programming/analytics/ Wed, 06 May 2020 00:00:00 +0000 <!--more--> <h2 id="analytics란">analytics란?</h2> <p>애널리틱스란 웹 사이트 트래픽을 추적하여 웹사이트의 실적을 돕는 도구로 사이트에 방문한 이용자 수, 유입 검색어, 방문자들이 어떤 유입채널을 통해 내 사이트에 방문하는지, 각 페이지에 방문자가 머무르는 시간은 얼마나 되는지 등을 추적하여 사이트 운영시 참고 할 수 있다.</p> <h2 id="구글-애널리틱스-가입하기">구글 애널리틱스 가입하기</h2> <p>구글 계정으로 <a href="https://analytics.google.com/analytics/web/">[구글 애널리틱스]</a> 페이지에 접속 후 가입을 한다.</p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2020/05/analytics/analytics-new-account.jpg" alt="계정 생성 화면" /></td> </tr> <tr> <td>사이트 정보 등을 입력한 후 [추적ID 가져오기] 버튼을 클릭 한다.</td> </tr> </tbody> </table> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2020/05/analytics/analytics-gtag.jpg" alt="추적 코드 화면" /></td> </tr> <tr> <td>가입을 완료하면 내 고유 ID가 있는 추적 코드를 받을 수 있다.</td> </tr> </tbody> </table> <h2 id="애널리틱스-코드-삽입하기">애널리틱스 코드 삽입하기</h2> <p>발급받은 추적 코드 스크립트를 분석을 할 모든 웹사이트 페이지에 붙여 넣으면 데이터 수집이 시작된다.</p> <figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt">&lt;html&gt;</span> <span class="nt">&lt;head&gt;</span> ... <span class="c">&lt;!-- Global site tag (gtag.js) - Google Analytics --&gt;</span> <span class="nt">&lt;script </span><span class="na">async</span> <span class="na">src=</span><span class="s">"https://www.googletagmanager.com/gtag/js?id=UA-?????????-1"</span><span class="nt">&gt;&lt;/script&gt;</span> <span class="nt">&lt;script&gt;</span> <span class="nb">window</span><span class="p">.</span><span class="nx">dataLayer</span> <span class="o">=</span> <span class="nb">window</span><span class="p">.</span><span class="nx">dataLayer</span> <span class="o">||</span> <span class="p">[];</span> <span class="kd">function</span> <span class="nx">gtag</span><span class="p">(){</span><span class="nx">dataLayer</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">arguments</span><span class="p">);}</span> <span class="nx">gtag</span><span class="p">(</span><span class="dl">'</span><span class="s1">js</span><span class="dl">'</span><span class="p">,</span> <span class="k">new</span> <span class="nb">Date</span><span class="p">());</span> <span class="nx">gtag</span><span class="p">(</span><span class="dl">'</span><span class="s1">config</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">UA-?????????-1</span><span class="dl">'</span><span class="p">);</span> <span class="nt">&lt;/script&gt;</span> <span class="nt">&lt;/head&gt;</span> <span class="nt">&lt;body&gt;</span> ... <span class="nt">&lt;/body&gt;</span> <span class="nt">&lt;/html&gt;</span></code></pre></figure> <h2 id="tip-구글-애널리틱스-상세-유입-경로-보기">TIP: 구글 애널리틱스 상세 유입 경로 보기</h2> <p>기본적으로 보이는 유입 경로에는 대표 URL로 나오고 있어 유입 페이지의 상세한 URL정보를 알 수 없다. 필터 설정을 통해 상세 URL 정보를 알 수 있다.</p> <p>[관리] &gt; [보기] &gt; [필터] &gt; [+필터추가] 버튼을 눌러 필터 추가 화면으로 이동한다.</p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2020/05/analytics/analytics-filter-setting.png" alt="필터 설정 화면" /></td> </tr> </tbody> </table> <p>“필드 A -&gt; 추출 A”: [추천] 선택, “(.*)” 입력<br /> “출력대상 -&gt; 생성자”: [맟춤설정] 선택, “$A1” 입력<br /> “입력란 A는 필수 항목입니다.”, “출력 입력란 덮어쓰기” 체크</p> <p>설정 후 다음날 [잠재고객] &gt; [맞춤] &gt; [맞춤설정] 메뉴에서 상세 URL을 확인할 수 있다.</p> <h3 class="t60" id="관련글">관련글</h3> <ul class="side-nav"> <li><a href="https://wepplication.github.io/programming/seo/">SEO &middot; <strong>검색엔진최적화(Search Engine Optimization, SEO)</strong></a></li> <li><a href="https://wepplication.github.io/programming/goorm-ide/">Cloud IDE &middot; <strong>구름 IDE로 Jekyll 클라우드 개발환경 세팅하기</strong></a></li> <li><a href="https://wepplication.github.io/software/redmine/">프로젝트 관리도구 &middot; <strong>Redmine 설치 및 플러그인 적용</strong></a></li> <li><a href="https://wepplication.github.io/links/">꿀정보 &middot; <strong>유용한 사이트 모음</strong></a></li> <li><a href="https://wepplication.github.io/programming/jekyll/">정적 사이트 생성기 &middot; <strong>Jekyll을 이용한 무료 블로그 만들기</strong></a></li> <li><a href="https://wepplication.github.io/programming/github-pages/">정적 웹호스팅 &middot; <strong>GitHub Pages를 이용한 무료 홈페이지 만들기</strong></a></li> <li class="text-right"><a href="https://wepplication.github.io/blog/archive/"><strong>More ›</strong></a></li> </ul> https://wepplication.github.io/programming/analytics/ 검색엔진최적화(Search Engine Optimization, SEO) https://wepplication.github.io/programming/seo/ Wed, 01 Apr 2020 00:00:00 +0000 <!--more--> <h2 id="seo란">SEO란?</h2> <p>검색엔진 최적화(SEO)는 ‘Search Engine Optimization’ 또는 ‘Search Engine Optimizer’의 약자로, 검색엔진에서 검색이 잘 되게 하는 방법을 말한다.</p> <h2 id="sitemapxml">sitemap.xml</h2> <p>sitemap.xml은 웹사이트 내 모든 페이지의 목록을 나열한 파일로 책의 목차와 같은 역할을 한다. 검색 엔진 로봇의 일반적인 크롤링 과정에서 발견되지 않는 웹페이지에 대한 정보를 제공해주기 때문에 더 많은 웹페이지가 크롤링되고 색인될 수 있게 도와준다.</p> <p>다국어 사용시 사이트맵에 언어정보</p> <figure class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="cp">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span> <span class="nt">&lt;urlset</span> <span class="na">xmlns=</span><span class="s">"http://www.sitemaps.org/schemas/sitemap/0.9"</span><span class="nt">&gt;</span> <span class="nt">&lt;url&gt;</span> <span class="nt">&lt;loc&gt;</span>http://www.example.com/foo.html<span class="nt">&lt;/loc&gt;</span> <span class="nt">&lt;lastmod&gt;</span>2020-03-10<span class="nt">&lt;/lastmod&gt;</span> <span class="nt">&lt;/url&gt;</span> <span class="nt">&lt;url&gt;</span> <span class="nt">&lt;loc&gt;</span>http://www.example.com/bar.html<span class="nt">&lt;/loc&gt;</span> <span class="nt">&lt;lastmod&gt;</span>2018-04-01<span class="nt">&lt;/lastmod&gt;</span> <span class="nt">&lt;/url&gt;</span> <span class="nt">&lt;/urlset&gt;</span></code></pre></figure> <h2 id="robottxt">robot.txt</h2> <p>robots.txt는 사이트의 루트 디렉토리에 위치하며 웹사이트에 대한 검색엔진 로봇들의 접근을 제어해주고 로봇들에게 웹사이트의 사이트맵이 어디 있는지 알려주는 역할을 한다.</p> <ul> <li>모든 접근 허용</li> </ul> <figure class="highlight"><pre><code class="language-txt" data-lang="txt">User-agent: *</code></pre></figure> <ul> <li>/admin/ 하위 경로에 대한 모든 웹 크롤러의 접근을 차단</li> </ul> <figure class="highlight"><pre><code class="language-txt" data-lang="txt">User-agent: * Disallow: /admin/</code></pre></figure> <ul> <li>사이트맵 위치 안내</li> </ul> <figure class="highlight"><pre><code class="language-txt" data-lang="txt">Sitemap: https://example.com/sitemap.xml</code></pre></figure> <h2 id="타이틀--메타디스크립션-태그">타이틀 &amp; 메타디스크립션 태그</h2> <p>타이틀 태그는 영문의 경우 공란 포함 65자, 한글은 32자, 메타디스크립션 길이 제한은 영문 기준 320자, 한글 160자 정도로 사람들이 관심있어 할만한 키워드, 문구를 설정한다.</p> <figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt">&lt;html&gt;</span> <span class="nt">&lt;head&gt;</span> <span class="nt">&lt;title&gt;</span>페이지 타이틀(검색 결과에 나오는 부분)<span class="nt">&lt;/title&gt;</span> <span class="nt">&lt;meta</span> <span class="na">name=</span><span class="s">"description"</span> <span class="na">content=</span><span class="s">"페이지 내용을 정리한 설명(검색 결과 프리뷰로 나타나는 영역)"</span><span class="nt">&gt;</span> <span class="nt">&lt;/head&gt;</span> <span class="nt">&lt;/html&gt;</span></code></pre></figure> <h2 id="오픈그래프-태그">오픈그래프 태그</h2> <p>소셜 검색엔진최적화 메타태그인 오픈그래프 태그(Open Graph)는 페이스북, 트위터 등의 소셜미디어에서 웹페이지 URL이 공유될 때 웹페이지의 주요 정보(제목, 이미지, 설명)가 표기되는 방식을 설정한다.</p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2020/04/seo/seo-opengraph.png" alt="저장소 생성 메뉴" /></td> </tr> <tr> <td>Open Graph가 적용된 웹페이지 URL 공유시 태그로 설정된 정보들이 표시된다.</td> </tr> </tbody> </table> <figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt">&lt;html&gt;</span> <span class="nt">&lt;head&gt;</span> <span class="nt">&lt;meta</span> <span class="na">property=</span><span class="s">"og:url"</span> <span class="na">content=</span><span class="s">"https://example.com"</span> <span class="nt">/&gt;</span> <span class="nt">&lt;meta</span> <span class="na">property=</span><span class="s">"og:title"</span> <span class="na">content=</span><span class="s">"페이지 타이틀"</span> <span class="nt">/&gt;</span> <span class="nt">&lt;meta</span> <span class="na">property=</span><span class="s">"og:description"</span> <span class="na">content=</span><span class="s">"페이지 설명"</span> <span class="nt">/&gt;</span> <span class="nt">&lt;meta</span> <span class="na">property=</span><span class="s">"og:image"</span> <span class="na">content=</span><span class="s">"https://example.com/image.js"</span> <span class="nt">/&gt;</span> <span class="nt">&lt;/head&gt;</span> <span class="nt">&lt;/html&gt;</span></code></pre></figure> <h2 id="대표-주소-설정">대표 주소 설정</h2> <blockquote> <p>http://example.com<br /> http://www.example.com<br /> https://example.com<br /> https://www.example.com</p> </blockquote> <p>방문자가 위의 4가지 중 어떤 주소를 입력하든 일관성 있게 특정 주소 하나로 접속이 되도록 설정을 해 웹사이트를 각각 별도의 웹사이트로 인식하지 않도록 하여 웹사이트의 도메인 점수가 분산되지 않도록 한다.</p> <figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt">&lt;html&gt;</span> <span class="nt">&lt;head&gt;</span> <span class="nt">&lt;link</span> <span class="na">rel=</span><span class="s">"canonical"</span> <span class="na">href=</span><span class="s">"https://example.com/url/path"</span> <span class="nt">/&gt;</span> <span class="nt">&lt;/head&gt;</span> <span class="nt">&lt;/html&gt;</span></code></pre></figure> <h2 id="이미지-태그-최적화">이미지 태그 최적화</h2> <p>이미지 Alt태그가 잘 설정되어 있는 이미지의 경우, 이미지 검색에서 높은 검색 순위를 차지한다.</p> <figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt">&lt;img</span> <span class="na">src=</span><span class="s">"./그림파일.gif"</span> <span class="na">alt=</span><span class="s">"그림설명"</span><span class="nt">&gt;</span></code></pre></figure> <h2 id="모바일-최적화">모바일 최적화</h2> <p>반응형 웹사이트로 제작하는 것을 권장한다.</p> <blockquote> <p>모바일 친화성 테스트: <a href="https://search.google.com/test/mobile-friendly" target="_blank">https://search.google.com/test/mobile-friendly</a></p> </blockquote> <h2 id="https-보안-프로토콜-사용하기">HTTPS 보안 프로토콜 사용하기</h2> <p>HTTPS 보안 프로토콜을 사용하는 웹사이트에 대해 구글 검색엔진에서 랭킹 가산점을 부여한다.</p> <h2 id="웹페이지-로딩-속도-개선">웹페이지 로딩 속도 개선</h2> <p>웹페이지의 로딩 속도는 사용자 경험에 영향을 미치기 때문에 검색 엔진은 로딩 속도가 짧은 웹사이트에 높은 점수를 부여한다.</p> <blockquote> <p>웹페이지 속도 테스트: <a href="https://developers.google.com/speed/pagespeed/insights/" target="_blank">https://developers.google.com/speed/pagespeed/insights/</a></p> </blockquote> <h2 id="동적-페이지-피하기">동적 페이지 피하기</h2> <p>페이지 최초 로딩 시에는 내용이 없다가 동적으로 컨텐츠를 불러올 경우 검색 엔진 로봇이 페이지 내용을 가져갈 수 없다.</p> <h2 id="다국어-페이지-최적화">다국어 페이지 최적화</h2> <p>페이지의 언어별 버전에 서로 다른 URL을 사용할 것을 권장한다.</p> <ul> <li>Google에 여러 언어 또는 지역별 페이지 알리기</li> </ul> <figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt">&lt;html&gt;</span> <span class="nt">&lt;head&gt;</span> <span class="nt">&lt;link</span> <span class="na">rel=</span><span class="s">"alternate"</span> <span class="na">hreflang=</span><span class="s">"en-gb"</span> <span class="na">href=</span><span class="s">"http://en-gb.example.com/page.html"</span> <span class="nt">/&gt;</span> <span class="nt">&lt;link</span> <span class="na">rel=</span><span class="s">"alternate"</span> <span class="na">hreflang=</span><span class="s">"en-us"</span> <span class="na">href=</span><span class="s">"http://en-us.example.com/page.html"</span> <span class="nt">/&gt;</span> <span class="nt">&lt;link</span> <span class="na">rel=</span><span class="s">"alternate"</span> <span class="na">hreflang=</span><span class="s">"en"</span> <span class="na">href=</span><span class="s">"http://en.example.com/page.html"</span> <span class="nt">/&gt;</span> <span class="nt">&lt;link</span> <span class="na">rel=</span><span class="s">"alternate"</span> <span class="na">hreflang=</span><span class="s">"de"</span> <span class="na">href=</span><span class="s">"http://de.example.com/page.html"</span> <span class="nt">/&gt;</span> <span class="nt">&lt;link</span> <span class="na">rel=</span><span class="s">"alternate"</span> <span class="na">hreflang=</span><span class="s">"x-default"</span> <span class="na">href=</span><span class="s">"http://www.example.com/"</span> <span class="nt">/&gt;</span> <span class="nt">&lt;/head&gt;</span> <span class="nt">&lt;/html&gt;</span></code></pre></figure> <blockquote> <p>다국어 각 페이지에 모두 hreflang 코드를 넣어 줘야한다. 다국어 설정되지 않는 언어의 사용자가 들어올 경우 x-default로 설정한 페이지로 연결된다.</p> </blockquote> <h2 id="검색엔진-순위-2020년-2월">검색엔진 순위 (2020년 2월)</h2> <ol> <li><a href="https://www.google.com/" target="_blank">Google</a></li> <li><a href="https://www.bing.com/" target="_blank">Bing</a></li> <li><a href="http://www.search.yahoo.com/" target="_blank">Yahoo! Search</a></li> <li><a href="http://www.baidu.com/" target="_blank">Baidu</a></li> <li><a href="http://www.ask.com/" target="_blank">Ask</a></li> <li><a href="http://www.search.aol.com/" target="_blank">Aol Search</a></li> <li><a href="http://www.duckduckgo.com/" target="_blank">DuckDuckGo</a></li> <li><a href="https://www.wolframalpha.com/" target="_blank">WolframAlpha</a></li> <li><a href="http://www.yandex.com/" target="_blank">Yandex</a></li> <li><a href="http://www.webcrawler.com/" target="_blank">WebCrawler</a></li> </ol> <h2 id="요약">요약</h2> <ul> <li>sitemap.xml</li> </ul> <figure class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="cp">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span> <span class="nt">&lt;urlset</span> <span class="na">xmlns=</span><span class="s">"http://www.sitemaps.org/schemas/sitemap/0.9"</span><span class="nt">&gt;</span> <span class="nt">&lt;url&gt;</span> <span class="nt">&lt;loc&gt;</span>http://www.example.com/foo.html<span class="nt">&lt;/loc&gt;</span> <span class="nt">&lt;lastmod&gt;</span>2020-03-10<span class="nt">&lt;/lastmod&gt;</span> <span class="nt">&lt;/url&gt;</span> ... <span class="nt">&lt;/urlset&gt;</span></code></pre></figure> <ul> <li>robots.txt</li> </ul> <figure class="highlight"><pre><code class="language-txt" data-lang="txt">User-agent: * Sitemap: https://example.com/sitemap.xml</code></pre></figure> <ul> <li>html</li> </ul> <figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt">&lt;html&gt;</span> <span class="nt">&lt;head&gt;</span> <span class="nt">&lt;title&gt;</span>타이틀<span class="nt">&lt;/title&gt;</span> <span class="nt">&lt;meta</span> <span class="na">name=</span><span class="s">"description"</span> <span class="na">content=</span><span class="s">"설명"</span><span class="nt">&gt;</span> <span class="nt">&lt;meta</span> <span class="na">property=</span><span class="s">"og:url"</span> <span class="na">content=</span><span class="s">"https://example.com"</span> <span class="nt">/&gt;</span> <span class="nt">&lt;meta</span> <span class="na">property=</span><span class="s">"og:title"</span> <span class="na">content=</span><span class="s">"타이틀"</span> <span class="nt">/&gt;</span> <span class="nt">&lt;meta</span> <span class="na">property=</span><span class="s">"og:description"</span> <span class="na">content=</span><span class="s">"설명"</span> <span class="nt">/&gt;</span> <span class="nt">&lt;meta</span> <span class="na">property=</span><span class="s">"og:image"</span> <span class="na">content=</span><span class="s">"https://example.com/image.js"</span> <span class="nt">/&gt;</span> <span class="nt">&lt;link</span> <span class="na">rel=</span><span class="s">"canonical"</span> <span class="na">href=</span><span class="s">"https://example.com/url/path"</span> <span class="nt">/&gt;</span> <span class="nt">&lt;/head&gt;</span> <span class="nt">&lt;body&gt;</span> ... <span class="nt">&lt;/body&gt;</span> <span class="nt">&lt;/html&gt;</span></code></pre></figure> <ul> <li> <p>모바일 최적화 <a href="https://search.google.com/test/mobile-friendly" target="_blank">https://search.google.com/test/mobile-friendly</a></p> </li> <li> <p>웹사이트 속도 개선 <a href="https://developers.google.com/speed/pagespeed/insights/" target="_blank">https://developers.google.com/speed/pagespeed/insights/</a></p> </li> </ul> <h2 id="참고자료">참고자료</h2> <p>사이트맵: <a href="https://www.sitemaps.org/index.html" target="_blank">https://www.sitemaps.org/index.html</a> 모바일 친화성 테스트: <a href="https://search.google.com/test/mobile-friendly" target="_blank">https://search.google.com/test/mobile-friendly</a><br /> 웹페이지 속도 테스트: <a href="https://developers.google.com/speed/pagespeed/insights/" target="_blank">https://developers.google.com/speed/pagespeed/insights/</a><br /> 검색엔진 최적화(SEO) 초보자 가이드: <a href="https://support.google.com/webmasters/answer/7451184?hl=ko" target="_blank">https://support.google.com/webmasters/answer/7451184?hl=ko</a><br /> 구글 품질 가이드라인: <a href="https://support.google.com/webmasters/topic/6001971?hl=ko&amp;ref_topic=6001981" target="_blank">https://support.google.com/webmasters/topic/6001971?hl=ko&amp;ref_topic=6001981</a><br /> 구글 크롤링 및 색인 생성: <a href="https://support.google.com/webmasters/topic/9427949?hl=ko&amp;ref_topic=9428048" target="_blank">https://support.google.com/webmasters/topic/9427949?hl=ko&amp;ref_topic=9428048</a><br /> 검색엔진 순위: <a href="http://www.ebizmba.com/articles/search-engines" target="_blank">http://www.ebizmba.com/articles/search-engines</a></p> <h3 class="t60" id="관련글">관련글</h3> <ul class="side-nav"> <li><a href="https://wepplication.github.io/programming/analytics/">애널리틱스 &middot; <strong>애널리틱스를 이용해서 웹사이트 분석하기</strong></a></li> <li><a href="https://wepplication.github.io/programming/goorm-ide/">Cloud IDE &middot; <strong>구름 IDE로 Jekyll 클라우드 개발환경 세팅하기</strong></a></li> <li><a href="https://wepplication.github.io/software/redmine/">프로젝트 관리도구 &middot; <strong>Redmine 설치 및 플러그인 적용</strong></a></li> <li><a href="https://wepplication.github.io/links/">꿀정보 &middot; <strong>유용한 사이트 모음</strong></a></li> <li><a href="https://wepplication.github.io/programming/jekyll/">정적 사이트 생성기 &middot; <strong>Jekyll을 이용한 무료 블로그 만들기</strong></a></li> <li><a href="https://wepplication.github.io/programming/github-pages/">정적 웹호스팅 &middot; <strong>GitHub Pages를 이용한 무료 홈페이지 만들기</strong></a></li> <li class="text-right"><a href="https://wepplication.github.io/blog/archive/"><strong>More ›</strong></a></li> </ul> https://wepplication.github.io/programming/seo/ 구름 IDE로 Jekyll 클라우드 개발환경 세팅하기 https://wepplication.github.io/programming/goorm-ide/ Sun, 01 Mar 2020 00:00:00 +0000 <!--more--> <h2 id="cloud-ide-란">Cloud IDE 란?</h2> <p>언제 어디서나 사용 가능한 클라우드 통합개발환경(Integrated Development Environment IDE).<br /> 웹브라우저만 있으면 설치 없이 C, C++, PHP, 루비, 펄, 파이썬, 자바스크립트(Node.js), Go 등의 코딩, 디버그, 컴파일, 배포 등 개발에 관련된 모든 작업을 동료 간 협업으로 클라우드에서 할 수 있다.</p> <ul> <li>대표적인 클라우드 IDE 서비스</li> </ul> <blockquote> <p>Cloud9 - <a href="https://c9.io" target="_blank">https://c9.io</a><br /> Codenvy - <a href="https://codenvy.com/" target="_blank">https://codenvy.com/</a><br /> Koding - <a href="http://www.koding.io" target="_blank">http://www.koding.io</a><br /> codeanywhere - <a href="https://codeanywhere.com" target="_blank">https://codeanywhere.com</a><br /> 구름IDE - <a href="https://www.goorm.io" target="_blank">https://www.goorm.io</a></p> </blockquote> <h2 id="구름-ide-가입">구름 IDE 가입</h2> <p><a href="https://ide.goorm.io" target="_blank">구름 IDE</a>는 이메일 회원가입 또는 소셜 로그인(구글, 페이스북, 카카오, 네이버, github, bitbucket, 페이코)을 통해 회원 가입을 할 수 있다.</p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2020/03/goorm-ide/goormide-signup.png" alt="구름IDE 회원가입" /></td> </tr> <tr> <td>구름 IDE 회원가입 화면</td> </tr> </tbody> </table> <h2 id="구름-ide-가격정책">구름 IDE 가격정책</h2> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2020/03/goorm-ide/goormide-price.png" alt="구름IDE 가격정책" /></td> </tr> <tr> <td>구름IDE 1개월 기준 <a href="https://ide.goorm.io/pricing" target="_blank">가격정책</a></td> </tr> </tbody> </table> <p>기본 무료 계정은 각 컨테이너당 5개까지 컨테이너를 생성할 수 있으며 컨테이너는 동시 실행을 할 수 없다.<br /> 컨테이너를 하나만 실행 가능하지만 각 컨테이너당 도메인이 3개 까지 가능해 한개의 컨테이너로 3개의 웹서버를 테스트 할 수 있다.</p> <h2 id="컨테이너-생성">컨테이너 생성</h2> <p>구름IDE의 무료 사용자가 첫 컨테이너 생성시 사용 목적을 입력하여 승인을 받아야 한다.<br /> 12시간 이내 승인되며 승인 후 컨테이너 생성이 가능하다.</p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2020/03/goorm-ide/goormide-confirm.png" alt="구름IDE 사용 목적을 입력화면" /></td> </tr> <tr> <td>사용 목적을 최소 100자 이상 입력 해야한다.</td> </tr> </tbody> </table> <p>Jekyll 개발환경을 세팅하기 위해 <strong><em>컨테이너 이름 입력 &gt; 공개 범위 : Private &gt; 소프트웨어 스택 : Ruby &gt; Template: Ruby 빈 프로젝트 선택</em></strong> 후 컨테이너를 생성한다.</p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2020/03/goorm-ide/goormide-software.png" alt="컨테이너 소프트웨어 스택" /></td> </tr> </tbody> </table> <h2 id="jekyll-설치">Jekyll 설치</h2> <p>루비가 이미 설치되어 있으니 바로 지킬을 설치한다.</p> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># RubyGems 를 통해 Jekyll 과 Bundler 를 설치한다</span> <span class="nv">$ </span>gem <span class="nb">install </span>bundler jekyll</code></pre></figure> <h2 id="내-깃허브-jekyll-저장소-가져오기">내 깃허브 Jekyll 저장소 가져오기</h2> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># 내 저장소 clone</span> <span class="nv">$ </span>git clone 깃허브주소 프로젝트폴더명 <span class="c"># ex) git clone https://github.com/사용자명/저장소명.git jekyllBlog</span> <span class="c"># git clone [email protected]:사용자명/저장소명.git jekyllBlog</span> <span class="nv">$ </span><span class="nb">cd </span>프로젝트폴더명 <span class="c"># gem 라이브러리 설치</span> <span class="nv">$ </span>bundle <span class="nb">install</span></code></pre></figure> <h2 id="지킬-서버-실행">지킬 서버 실행</h2> <ul> <li>도메인 설정하기</li> </ul> <p><strong><em>[ 프로젝트 &gt; 실행 URL과 포트 ]</em></strong> 로 들어가 원하는 도메인을 설정한다.</p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2020/03/goorm-ide/goormide-projectconfig.png" alt="실행 URL과 포트 설정" /></td> </tr> </tbody> </table> <p><strong><em>_config_dev.yml</em></strong> 파일의 url을 설정한 도메인 주소로 변경한다.</p> <figure class="highlight"><pre><code class="language-yml" data-lang="yml"><span class="c1">#_config_dev.yml </span> <span class="nn">...</span> <span class="na">url</span><span class="pi">:</span> <span class="s1">'</span><span class="s">https://설정한이름.run.goorm.io'</span> <span class="nn">...</span></code></pre></figure> <ul> <li>실행 스크립트 설정하기</li> </ul> <p><strong><em>[ 프로젝트 &gt; 실행 &gt; 실행 명령 추가 ]</em></strong> 로 들어가 실행 스크립트를 작성한다.</p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2020/03/goorm-ide/goormide-runsetting.png" alt="실행 명령 설정" /></td> </tr> </tbody> </table> <p>서버 프로세스로 체크 후 아래 명령어를 입력한다.</p> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nv">$ JEKYLL_ENV</span><span class="o">=</span>production jekyll serve <span class="nt">--host</span> 0.0.0.0 <span class="nt">--config</span> _config_dev.yml</code></pre></figure> <p>이제 설정한 실행 스크립트를 실행하면 하단에 콘솔창이 추가되며 실행된다.</p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2020/03/goorm-ide/goormide-runconsole.png" alt="실행 창" /></td> </tr> </tbody> </table> <h2 id="깃-사용자-정보-설정">깃 사용자 정보 설정</h2> <figure class="highlight"><pre><code class="language-sh" data-lang="sh">git config user.name <span class="s2">"사용자명"</span> git config user.email 이메일주소</code></pre></figure> <h2 id="깃허브-배포">깃허브 배포</h2> <figure class="highlight"><pre><code class="language-sh" data-lang="sh">root@goorm:/workspace/컨테이너명<span class="o">(</span>master<span class="o">)</span><span class="c"># git add .</span> root@goorm:/workspace/컨테이너명<span class="o">(</span>master<span class="o">)</span><span class="c"># git commit -m "commit message"</span> root@goorm:/workspace/컨테이너명<span class="o">(</span>master<span class="o">)</span><span class="c"># git push</span> Username <span class="k">for</span> <span class="s1">'https://github.com'</span>: 사용자명 Password <span class="k">for</span> <span class="s1">'https://사용자명@github.com'</span>: </code></pre></figure> <ul> <li>매번 비밀번호를 입력하기 싫다면 깃 설정을 수정하면 된다.</li> </ul> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nv">$ </span>vi /workspace/컨테이너명/.git/config</code></pre></figure> <p>.git/config 파일의 [remote “origin”]의 url부분을 수정한다.</p> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># .git/config</span> <span class="o">[</span>core] repositoryformatversion <span class="o">=</span> 0 filemode <span class="o">=</span> <span class="nb">true </span>bare <span class="o">=</span> <span class="nb">false </span>logallrefupdates <span class="o">=</span> <span class="nb">true</span> <span class="o">[</span>user] name <span class="o">=</span> 사용자명 email <span class="o">=</span> 이메일주소 <span class="o">[</span>remote <span class="s2">"origin"</span><span class="o">]</span> url <span class="o">=</span> https://사용자명:비밀번호@github.com/사용자명/저장소명.git fetch <span class="o">=</span> +refs/heads/<span class="k">*</span>:refs/remotes/origin/<span class="k">*</span> <span class="o">[</span>branch <span class="s2">"master"</span><span class="o">]</span> remote <span class="o">=</span> origin merge <span class="o">=</span> refs/heads/master</code></pre></figure> <blockquote> <p>공개범위를 Public로 생성한 컨테이너인 경우 타인이 볼 수 있으니 Private로 생성한 컨테이너에서만 수정하도록 한다.</p> </blockquote> <h2 id="유사-서비스">유사 서비스</h2> <blockquote> <ul> <li><a href="https://aws.amazon.com/ko/cloud9/" target="_blank">cloud9 IDE</a></li> <li><a href="https://www.koding.com" target="_blank">Koding</a></li> <li><a href="https://orionhub.org/" target="_blank">OriginHub</a></li> <li><a href="https://codenvy.com" target="_blank">Codenvy</a></li> <li><a href="https://www.sourcelair.com" target="_blank">SourceLair</a></li> <li><a href="https://codeanywhere.com" target="_blank">Codeanywhere</a></li> </ul> </blockquote> <h2 id="참고자료">참고자료</h2> <p>구름 IDE : <a href="https://ide.goorm.io" target="_blank">https://ide.goorm.io</a><br /> 구름 IDE 가격정책 : <a href="https://ide.goorm.io/pricing" target="_blank">https://ide.goorm.io/pricing</a></p> <h3 id="관련글">관련글</h3> <ul class="side-nav t60"> <li><a href="https://wepplication.github.io/programming/analytics/">애널리틱스 &middot; <strong>애널리틱스를 이용해서 웹사이트 분석하기</strong></a></li> <li><a href="https://wepplication.github.io/programming/seo/">SEO &middot; <strong>검색엔진최적화(Search Engine Optimization, SEO)</strong></a></li> </ul> https://wepplication.github.io/programming/goorm-ide/ Redmine 설치 및 플러그인 적용 https://wepplication.github.io/software/redmine/ Tue, 11 Feb 2020 00:00:00 +0000 <!--more--> <h2 id="redmine">Redmine</h2> <p>레드마인(Redmine)은 오픈 소스 프로그램으로 웹 기반의 프로젝트 관리 와 버그 추적 기능을 제공하는 도구이다.</p> <p>화면기반의 프로젝트 관리에 도움이 되도록 달력과 간트 차트를 제공하고 일정관리 기능을 제공한다.</p> <p>또한 레드마인은 통합된 프로젝트관리 기능과 이슈추적, 여러가지 형상 관리 기능을 제공한다.</p> <p>레드마인은 루비 온 레일즈에 기반하여 작성되었고 멀티 플랫폼을 지원하며 여러가지 종류의 데이터베이스 및 34개의 언어를 지원한다.</p> <h2 id="bitnami">Bitnami</h2> <p>비트나미(Bitnami)는 가상 어플라이언스 및 웹 애플리케이션, 개발 스택용 소프트웨어 패키지 및 설치 라이브러리이다.<br /> 레드마인을 한 번의 클릭으로도 손쉽게 설치할 수 있도록 패키징하여 제공한다.</p> <h2 id="bitnami-redmine-다운로드">Bitnami Redmine 다운로드</h2> <p>아래 사이트에서 최신 버전의 설치파일을 다운 받을 수 있다.<br /> <a href="https://bitnami.com/stack/redmine/installer" target="_blank">https://bitnami.com/stack/redmine/installer</a></p> <p>구버전 설치파일은 <a href="https://community.bitnami.com" target="_blank">Bitnami comuunity 게시판</a>에 요청하면 Bitnami 개발자들이 link를 알려준다.</p> <p>Bitnami Redmine linux installer 3.4.6-5 :<br /> <a href="https://downloads.bitnami.com/files/stacks/redmine/3.4.6-5/bitnami-redmine-3.4.6-5-linux-x64-installer.run" target="_blank">https://downloads.bitnami.com/files/stacks/redmine/3.4.6-5/bitnami-redmine-3.4.6-5-linux-x64-installer.run</a><br /> Bitnami Redmine linux installer 4.0.2-3 :<br /> <a href="https://downloads.bitnami.com/files/stacks/redmine/4.0.2-3/bitnami-redmine-4.0.2-3-linux-x64-installer.run" target="_blank">https://downloads.bitnami.com/files/stacks/redmine/4.0.2-3/bitnami-redmine-4.0.2-3-linux-x64-installer.run</a></p> <h2 id="centos-linux-7에-bitnami-redmine-설치">CentOS Linux 7에 Bitnami Redmine 설치</h2> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># 최신버전을 아직 지원하지 않는 레드마인 플러그인이 있어 3.4.6-5 버전으로 설치</span> <span class="nv">$ </span>wget https://downloads.bitnami.com/files/stacks/redmine/3.4.6-5/bitnami-redmine-3.4.6-5-linux-x64-installer.run <span class="nv">$ </span><span class="nb">chmod </span>775 bitnami-redmine-3.4.6-5-linux-x64-installer.run <span class="nv">$ </span>./bitnami-redmine-3.4.6-5-linux-x64-installer.run Language Selection Please <span class="k">select </span>the installation language <span class="o">[</span>1] English - English <span class="o">[</span>2] Spanish - Español <span class="o">[</span>3] Japanese - 日本語 <span class="o">[</span>4] Korean - 한국어 <span class="o">[</span>5] Simplified Chinese - 简体中文 <span class="o">[</span>6] Hebrew - עברית <span class="o">[</span>7] German - Deutsch <span class="o">[</span>8] Romanian - Română <span class="o">[</span>9] Russian - Русский Please choose an option <span class="o">[</span>1] : 4 <span class="nt">----------------------------------------------------------------------------</span> Bitnami Redmine Stack 설치 마법사를 시작합니다. <span class="nt">----------------------------------------------------------------------------</span> 설치할 구성 요소를 선택하십시오. 설치하지 않을 구성 요소는 선택을 취소하십시오. 계속할 준비가 되면 다음을 클릭하십시오. Subversion <span class="o">[</span>Y/n] :y PhpMyAdmin <span class="o">[</span>Y/n] :y Redmine : Y <span class="o">(</span>Cannot be edited<span class="o">)</span> Git <span class="o">[</span>Y/n] :y 위의 선택이 정확합니까? <span class="o">[</span>Y/n]: y <span class="nt">----------------------------------------------------------------------------</span> 설치 경로 Bitnami Redmine Stack의 설치 경로를 선택하세요. 폴더 선택 <span class="o">[</span>/opt/redmine-3.4.6-5]: /opt/redmine-3.4.6-5 <span class="nt">----------------------------------------------------------------------------</span> Admin 계정 생성 Bitnami Redmine Stack 관리자 계정을 생성합니다. 이름 <span class="o">[</span>User Name]: admin 이메일 주소 <span class="o">[</span>[email protected]]: 이메일주소 로그인 계정명 <span class="o">[</span>user]: admin 패스워드 : 패스워드를 재입력 : <span class="c"># 여기서 입력한 비밀번호는 첫 로그인 후 다시 설정하게 된다.</span> <span class="nt">----------------------------------------------------------------------------</span> 기본 데이터 설정에 사용할 언어 기본 데이터 설정 시 사용할 언어를 선택하세요. <span class="o">[</span>1] Bosnian <span class="o">[</span>2] 불가리아어 <span class="o">[</span>3] Catalan <span class="o">[</span>4] 체코어 <span class="o">[</span>5] Danish <span class="o">[</span>6] 독일어 <span class="o">[</span>7] 영어 <span class="o">[</span>8] 스페인어 <span class="o">[</span>9] 프랑스어 <span class="o">[</span>10] Galician <span class="o">[</span>11] 히브리어 <span class="o">[</span>12] Hungarian <span class="o">[</span>13] 이탈리아어 <span class="o">[</span>14] 일본어 <span class="o">[</span>15] 한국어 <span class="o">[</span>16] Lithuanian <span class="o">[</span>17] 네덜란드어 <span class="o">[</span>18] Norwegian <span class="o">[</span>19] 폴란드어 <span class="o">[</span>20] 포르투갈어 <span class="o">[</span>21] 루마니아어 <span class="o">[</span>22] 러시아어 <span class="o">[</span>23] Slovak <span class="o">[</span>24] Slovenian <span class="o">[</span>25] 세르비아어 <span class="o">[</span>26] 스웨덴어 <span class="o">[</span>27] Turkish <span class="o">[</span>28] Ukrainian <span class="o">[</span>29] Vietnamese <span class="o">[</span>30] 중국어 옵션을 선택하십시오. <span class="o">[</span>15] : 15 사용하시겠습니까? <span class="o">[</span>y/N]: y <span class="nt">----------------------------------------------------------------------------</span> SMTP 설정 어플리케이션에서 통보가 가능하도록 이메일 지원 기능을 기본 이메일 서비스 제공자 <span class="o">[</span>1] GMail <span class="o">[</span>2] 사용자 정의 옵션을 선택하십시오. <span class="o">[</span>1] : 1 <span class="nt">----------------------------------------------------------------------------</span> SMTP 설정 This data is stored <span class="k">in </span>the application configuration files and may be visible to others. For this reason, it is recommended that you <span class="k">do </span>not use your personal account credentials. GMail 주소 <span class="o">[]</span>: 이메일주소 GMail 패스워드 : 재입력 : <span class="nt">----------------------------------------------------------------------------</span> 이제 컴퓨터에 Bitnami Redmine Stack을<span class="o">(</span>를<span class="o">)</span> 설치할 준비가 되었습니다. 계속하시겠습니까? <span class="o">[</span>Y/n]: y <span class="nt">----------------------------------------------------------------------------</span> 컴퓨터에 Bitnami Redmine Stack을<span class="o">(</span>를<span class="o">)</span> 설치하는 동안 기다려 주십시오. 설치 0% ______________ 50% ______________ 100% <span class="c">#########################################</span> <span class="nt">----------------------------------------------------------------------------</span> 컴퓨터에 Bitnami Redmine Stack 설치를 완료했습니다. Redmine 어플리케이션 구동 <span class="o">[</span>Y/n]: y 정보: To access the Bitnami Redmine Stack, go to http://127.0.0.1:80 from your browser. 계속하려면 <span class="o">[</span>Enter] 키 누르기:</code></pre></figure> <h2 id="redmine-실행중지">Redmine 실행/중지</h2> <figure class="highlight"><pre><code class="language-sh" data-lang="sh">/opt/redmine-3.4.6-5/ctlscript.sh start /opt/redmine-3.4.6-5/ctlscript.sh stop /opt/redmine-3.4.6-5/ctlscript.sh restart</code></pre></figure> <h2 id="smtp-설정">SMTP 설정</h2> <p>레드마인 메일알림을 이용하기 위해 SMTP 설정을 한다.</p> <ul> <li>설정파일 수정</li> </ul> <figure class="highlight"><pre><code class="language-sh" data-lang="sh">vi /opt/redmine-3.4.6-5/apps/redmine/htdocs/config/configuration.yml</code></pre></figure> <ul> <li>하단 production 부분을 수정한다.</li> </ul> <figure class="highlight"><pre><code class="language-vim" data-lang="vim">production<span class="p">:</span> email_delivery<span class="p">:</span> delivery_method<span class="p">:</span> <span class="p">:</span>smtp smtp_settings<span class="p">:</span> enable_starttls_auto<span class="p">:</span> true address<span class="p">:</span> <span class="s2">"smtp.gmail.com"</span> port<span class="p">:</span> <span class="m">25</span> domain<span class="p">:</span> <span class="s2">"smtp.gmail.com"</span> authentication<span class="p">:</span> <span class="p">:</span>login user_name<span class="p">:</span> <span class="s2">"이메일주소"</span> password<span class="p">:</span> <span class="s2">"비밀번호"</span></code></pre></figure> <ul> <li>Gmail 보안설정에서 보안 수준이 낮은 앱에 대한 계정 액세스 변경을 설정<br /> <a href="https://myaccount.google.com/lesssecureapps?pli=1" target="_blank">https://myaccount.google.com/lesssecureapps?pli=1</a></li> </ul> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2020/02/redmine/redmine-google-lesssecureapp.png" alt="구글 보안 수준 변경 화면" /></td> </tr> <tr> <td>보안 수준이 낮은 앱 허용을 사용으로 변경한다.</td> </tr> </tbody> </table> <ul> <li> <p>계정 엑세스 허용<br /> <a href="https://accounts.google.com/b/0/displayunlockcaptcha" target="_blank">https://accounts.google.com/b/0/displayunlockcaptcha</a></p> </li> <li> <p>수정 후 서버 재실행</p> </li> </ul> <figure class="highlight"><pre><code class="language-sh" data-lang="sh">/opt/redmine-3.4.6-5/ctlscript.sh restart</code></pre></figure> <ul> <li>관리 &gt; 설정 &gt; 메일알림 페이지에서 테스트메일보내기</li> </ul> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2020/02/redmine/redmine-testmail.png" alt="레드마인 테스트메일 보내기" /></td> </tr> <tr> <td>성공시 상단에 “‘이메일주소’님에게 메일이 발송되었습니다.” 라는 문구가 나온다.</td> </tr> </tbody> </table> <h2 id="plugin-설치">Plugin 설치</h2> <p>플러그인 다운로드 : <a href="https://www.redmine.org/plugins?page=1" target="_blank">https://www.redmine.org/plugins?page=1</a><br /> 레드마인 버전에 맞는 플러그인을 받아 사용한다.</p> <ul> <li>플러그인 다운받아 아래 경로에 압축 해제</li> </ul> <figure class="highlight"><pre><code class="language-sh" data-lang="sh">/opt/redmine-3.4.6-5/apps/redmine/htdocs/plugins</code></pre></figure> <ul> <li>플러그인 다운 페이지에서 설명하는 이름으로 폴더명을 변경한다.</li> <li>Bitnami Console 실행 후 ‘/apps/redmine/htdocs’ 경로에서 플러그인 설치 스크립트를 실행한다.</li> </ul> <figure class="highlight"><pre><code class="language-sh" data-lang="sh">/opt/redmine-3.4.6-5/use_redmine <span class="nb">cd</span> /opt/redmine-3.4.6-5/apps/redmine/htdocs bundle <span class="nb">install</span> <span class="nt">--without</span> development <span class="nb">test </span>rake redmine:plugins:migrate <span class="nv">RAILS_ENV</span><span class="o">=</span>production</code></pre></figure> <h3 id="레드마인-플러그인--progressive-projects-list-설치">레드마인 플러그인 : Progressive Projects List 설치</h3> <p>프로젝트들에 대한 진척도를 bar 형태로 표시해주며, 프로젝트의 version를 기준으로 issue 현황을 파악하는 플러그인<br /> <a href="https://www.redmine.org/plugins/progressive-projects-list" target="_blank">https://www.redmine.org/plugins/progressive-projects-list</a></p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2020/02/redmine/redmine-progressive-projects-list.png" alt="프로젝트 화면" /></td> </tr> <tr> <td>프로젝트들에 대한 진척도를 bar 형태로 표시</td> </tr> </tbody> </table> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nb">cd</span> /opt/redmine-3.4.6-5/apps/redmine/htdocs/plugins wget https://github.com/ergoserv/redmine-progressive-projects-list/archive/v4.0.0.tar.gz <span class="nb">tar</span> <span class="nt">-xvf</span> v4.0.0.tar.gz <span class="nb">rm </span>v4.0.0.tar.gz <span class="nb">mv </span>redmine-progressive-projects-list-4.0.0 progressive_projects_list /opt/redmine-3.4.6-5/use_redmine <span class="nb">cd</span> /opt/redmine-3.4.6-5/apps/redmine/htdocs bundle <span class="nb">install</span> <span class="nt">--without</span> development <span class="nb">test </span>rake redmine:plugins:migrate <span class="nv">RAILS_ENV</span><span class="o">=</span>production</code></pre></figure> <ul> <li>오류 발생 시 아래 명령어 실행 후 다시 시도</li> </ul> <figure class="highlight"><pre><code class="language-sh" data-lang="sh">bundle <span class="nb">install</span> <span class="nt">--no-deployment</span> rake redmine:plugins:migrate <span class="nv">RAILS_ENV</span><span class="o">=</span>production</code></pre></figure> <ul> <li>레드마인 재실행</li> </ul> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nb">exit</span> /opt/redmine-3.4.6-5/ctlscript.sh restart</code></pre></figure> <h3 id="레드마인-플러그인--ckeditor-설치">레드마인 플러그인 : CKEditor 설치</h3> <p>레드마인 문서 작성시 텍스타일 문법이 아닌 위지윅(WYSIWYG) 에디터인 CKEditor로 변경<br /> <a href="https://www.redmine.org/plugins/redmine-ckeditor" target="_blank">https://www.redmine.org/plugins/redmine-ckeditor</a></p> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nb">cd</span> /opt/redmine-3.4.6-5/apps/redmine/htdocs/plugins wget https://github.com/a-ono/redmine_ckeditor/archive/1.1.7.tar.gz <span class="nb">tar</span> <span class="nt">-xvf</span> 1.1.7.tar.gz <span class="nb">rm </span>1.1.7.tar.gz <span class="nb">mv </span>redmine_ckeditor-1.1.7 redmine_ckeditor /opt/redmine-3.4.6-5/use_redmine <span class="nb">cd</span> /opt/redmine-3.4.6-5/apps/redmine/htdocs bundle <span class="nb">install</span> <span class="nt">--without</span> development <span class="nb">test </span>rake redmine:plugins:migrate <span class="nv">RAILS_ENV</span><span class="o">=</span>production</code></pre></figure> <ul> <li>오류 발생 시 아래 명령어 실행 후 다시 시도</li> </ul> <figure class="highlight"><pre><code class="language-sh" data-lang="sh">bundle <span class="nb">install</span> <span class="nt">--no-deployment</span> rake redmine:plugins:migrate <span class="nv">RAILS_ENV</span><span class="o">=</span>production</code></pre></figure> <ul> <li>레드마인 재실행</li> </ul> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nb">exit</span> /opt/redmine-3.4.6-5/ctlscript.sh restart</code></pre></figure> <ul> <li>레드마인 관리 &gt; 설정 &gt; 일반 &gt; 본문 형식을 Ckeditor로 변경</li> </ul> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2020/02/redmine/redmine-ckeditor-setting.png" alt="레드마인 에디터 설정 화면" /></td> </tr> <tr> <td>본문 형식을 Ckeditor로 변경 후 저장</td> </tr> </tbody> </table> <h4 id="ckeditor-플러그인-설치하기--paste-image-as-base64-설치">CKEditor 플러그인 설치하기 : Paste image as base64 설치</h4> <p>문서 작성 시 클립보드에 있는 이미지를 그대로 붙일 수 있는 플러그인 <a href="https://ckeditor.com/cke4/addon/pastebase64" target="_blank">https://ckeditor.com/cke4/addon/pastebase64</a></p> <ul> <li>플러그인을 다운받아 아래 경로에 넣기</li> </ul> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nb">cd</span> /opt/redmine-3.4.6-5/apps/redmine/htdocs/plugins/redmine_ckeditor/assets/ckeditor-contrib/plugins wget https://download.ckeditor.com/pastebase64/releases/pastebase64_1.0.zip unzip pastebase64_1.0.zip <span class="nb">rm </span>pastebase64_1.0.zip</code></pre></figure> <ul> <li>CKEditor 설정파일 수정</li> </ul> <figure class="highlight"><pre><code class="language-sh" data-lang="sh">vi /opt/redmine-3.4.6-5/apps/redmine/htdocs/plugins/redmine_ckeditor/assets/ckeditor/config.js</code></pre></figure> <p>CKEDITOR.editorConfig에 “config.extraPlugins = ‘pastebase64’” 추가</p> <figure class="highlight"><pre><code class="language-vim" data-lang="vim">CKEDITOR<span class="p">.</span>editorConfig <span class="p">=</span> <span class="k">function</span><span class="p">(</span> config <span class="p">)</span> <span class="p">{</span> config<span class="p">.</span>extraPlugins <span class="p">=</span> <span class="s1">'pastebase64'</span> <span class="p">}</span>;</code></pre></figure> <ul> <li>CKEditor init.rb에 base64 allow 옵션 추가</li> </ul> <figure class="highlight"><pre><code class="language-sh" data-lang="sh">vi /opt/redmine-3.4.6-5/apps/redmine/htdocs/plugins/redmine_ckeditor/init.rb</code></pre></figure> <p>하단에 아래 구문 추가</p> <figure class="highlight"><pre><code class="language-vim" data-lang="vim">Loofah<span class="p">::</span>HTML5<span class="p">::</span>WhiteList<span class="p">::</span>ALLOWED_PROTOCOLS<span class="p">.</span><span class="nb">add</span><span class="p">(</span><span class="s1">'data'</span><span class="p">)</span></code></pre></figure> <ul> <li>폴더 및 파일 권한 변경</li> </ul> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nb">chmod </span>777 /opt/redmine-3.4.6-5/apps/redmine/htdocs/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins <span class="nb">chmod </span>777 /opt/redmine-3.4.6-5/apps/redmine/htdocs/public/plugin_assets/redmine_ckeditor/ckeditor/config.js</code></pre></figure> <ul> <li>레드마인 재실행</li> </ul> <figure class="highlight"><pre><code class="language-sh" data-lang="sh">/opt/redmine-3.4.6-5/ctlscript.sh restart</code></pre></figure> <h2 id="plugin-삭제">Plugin 삭제</h2> <figure class="highlight"><pre><code class="language-sh" data-lang="sh">/opt/redmine-3.4.6-5/use_redmine <span class="nb">cd</span> /opt/redmine-3.4.6-5/apps/redmine/htdocs rake redmine:plugins:migrate <span class="nv">NAME</span><span class="o">=</span>플러그인명 <span class="nv">VERSION</span><span class="o">=</span>0 <span class="nv">RAILS_ENV</span><span class="o">=</span>production <span class="nb">exit rm</span> <span class="nt">-rf</span> /opt/redmine-3.4.6-5/apps/redmine/htdocs/plugins/플러그인명</code></pre></figure> <h2 id="redmine-log-보기">Redmine Log 보기</h2> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nb">tail</span> <span class="nt">-1000f</span> /opt/redmine-3.4.6-5/apache2/logs/error_log <span class="nb">tail</span> <span class="nt">-1000f</span> /opt/redmine-3.4.6-5/apps/redmine/htdocs/log/production.log</code></pre></figure> <h2 id="redmine-테마-설치">Redmine 테마 설치</h2> <p>테마 다운로드 : https://www.redmine.org/projects/redmine/wiki/Theme_List</p> <ul> <li>플러그인 다운받아 아래 경로에 압축 해제</li> </ul> <figure class="highlight"><pre><code class="language-sh" data-lang="sh">/opt/redmine-3.4.6-5/public/themes/</code></pre></figure> <ul> <li>레드마인 재실행</li> </ul> <figure class="highlight"><pre><code class="language-sh" data-lang="sh">/opt/redmine-3.4.6-5/ctlscript.sh restart</code></pre></figure> <ul> <li>관리 &gt; 설정 &gt; 표시방식에서 원하는 테마 선택</li> </ul> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2020/02/redmine/redmine-theme-setting.png" alt="레드마인 테마 설정 화면" /></td> </tr> <tr> <td>표시방식에서 원하는 테마 선택</td> </tr> </tbody> </table> <h2 id="다른-프로젝트-관리도구">다른 프로젝트 관리도구</h2> <p>레드마인 외에도 아래와 같은 관리도구들이 있다.</p> <blockquote> <ul> <li><a href="https://mycollab.com" target="_blank">MyCollab</a></li> <li><a href="https://www.openproject.org" target="_blank">OpenProject</a></li> </ul> </blockquote> <h2 id="참고자료">참고자료</h2> <p>Bitnami 레드마인 Installer : <a href="https://bitnami.com/stack/redmine/installer" target="_blank">https://bitnami.com/stack/redmine/installer</a></p> <p>Bitnami 커뮤니티 게시판 : <a href="https://community.bitnami.com" target="_blank">https://community.bitnami.com</a></p> <p>구글 계정 고객센터 : <a href="https://support.google.com/accounts/answer/6010255?hl=ko" target="_blank">https://support.google.com/accounts/answer/6010255?hl=ko</a></p> <p>레드마인 플러그인 다운로드 : <a href="https://www.redmine.org/plugins?page=1" target="_blank">https://www.redmine.org/plugins?page=1</a></p> <p>레드마인 테마 다운로드 : <a href="https://www.redmine.org/projects/redmine/wiki/Theme_List" target="_blank">https://www.redmine.org/projects/redmine/wiki/Theme_List</a></p> <p>CKEditor 플러그인 다운로드 : <a href="https://ckeditor.com/cke4/addons/plugins/all" target="_blank">https://ckeditor.com/cke4/addons/plugins/all</a></p> <h3 id="관련글">관련글</h3> <ul class="side-nav t60"> <li><a href="https://wepplication.github.io/programming/analytics/">애널리틱스 &middot; <strong>애널리틱스를 이용해서 웹사이트 분석하기</strong></a></li> <li><a href="https://wepplication.github.io/programming/seo/">SEO &middot; <strong>검색엔진최적화(Search Engine Optimization, SEO)</strong></a></li> <li><a href="https://wepplication.github.io/programming/goorm-ide/">Cloud IDE &middot; <strong>구름 IDE로 Jekyll 클라우드 개발환경 세팅하기</strong></a></li> <li><a href="https://wepplication.github.io/links/">꿀정보 &middot; <strong>유용한 사이트 모음</strong></a></li> <li><a href="https://wepplication.github.io/programming/jekyll/">정적 사이트 생성기 &middot; <strong>Jekyll을 이용한 무료 블로그 만들기</strong></a></li> <li><a href="https://wepplication.github.io/programming/github-pages/">정적 웹호스팅 &middot; <strong>GitHub Pages를 이용한 무료 홈페이지 만들기</strong></a></li> <li class="text-right"><a href="https://wepplication.github.io/blog/archive/"><strong>More ›</strong></a></li> </ul> https://wepplication.github.io/software/redmine/ 유용한 사이트 모음 https://wepplication.github.io/links/ Wed, 22 Jan 2020 00:00:00 +0000 <div class="row"> <div class="medium-4 medium-push-8 columns"> <div class="panel radius"> <p id="toc"><strong>목차</strong></p> <ul id="markdown-toc"> <li><a href="#section" id="markdown-toc-section">포털 사이트</a></li> <li><a href="#section-1" id="markdown-toc-section-1">정보 사이트</a></li> <li><a href="#section-2" id="markdown-toc-section-2">도구 사이트</a> <ul> <li><a href="#section-3" id="markdown-toc-section-3">이미지 관련</a></li> <li><a href="#section-4" id="markdown-toc-section-4">개발 관련</a></li> <li><a href="#section-5" id="markdown-toc-section-5">기타</a></li> </ul> </li> <li><a href="#section-6" id="markdown-toc-section-6">심심풀이 사이트</a></li> <li><a href="#section-7" id="markdown-toc-section-7">학습 사이트</a> <ul> <li><a href="#section-8" id="markdown-toc-section-8">자격증</a></li> <li><a href="#section-9" id="markdown-toc-section-9">공모전/경진대회</a></li> <li><a href="#section-10" id="markdown-toc-section-10">교육</a></li> </ul> </li> <li><a href="#section-11" id="markdown-toc-section-11">취업 사이트</a></li> <li><a href="#section-12" id="markdown-toc-section-12">게임 사이트</a> <ul> <li><a href="#section-13" id="markdown-toc-section-13">싱글플레이</a></li> <li><a href="#section-14" id="markdown-toc-section-14">멀티플레이</a></li> </ul> </li> <li><a href="#section-15" id="markdown-toc-section-15">자료 사이트</a></li> <li><a href="#section-16" id="markdown-toc-section-16">돈버는 사이트</a></li> </ul> </div> </div><!-- /.medium-4.columns --> <div class="medium-8 medium-pull-4 columns"> <hr /> <h2 id="section">포털 사이트</h2> <dl> <dt>커뮤니티 모아보기</dt> <dd><a href="https://aagag.com/mirror/" target="_blank">aagag.com</a></dd> <dd><a href="https://beobe.ai/" target="_blank">beobe.ai</a></dd> <dd><a href="https://www.issuelink.co.kr/community/listview" target="_blank">issuelink.co.kr</a></dd> <dd><a href="http://trenday.net/main/all" target="_blank">trenday.net</a></dd> <dd><a href="http://www.jagei.co.kr/" target="_blank">jagei.co.kr</a></dd> <dd><a href="http://www.ilchu.com/" target="_blank">ilchu.com</a></dd> <dd><a href="http://m.hotge.co.kr/" target="_blank">hotge.co.kr</a></dd> <dd><a href="http://noda.me/" target="_blank">noda.me</a></dd> <dd><a href="http://larala.kr/" target="_blank">larala.kr</a></dd> <dd><a href="https://www.jamnanda.com/commbest" target="_blank">jamnanda.com</a></dd> <dd><a href="http://www.communitymoa.com/moa/community" target="_blank">communitymoa.com</a></dd> <dt>할인정보 모아보기</dt> <dd><a href="https://algumon.com/" target="_blank">algumon.com</a></dd> <dt>웹툰 모아보기</dt> <dd><a href="https://www.yamae.pro/" target="_blank">yamae.pro</a></dd> <dt>소셜 북마크 서비스</dt> <dd><a href="http://mar.gar.in/" target="_blank">mar.gar.in</a></dd> <dt>시작 페이지 서비스</dt> <dd><a href="http://www.trand.co.kr/" target="_blank">trand.co.kr</a></dd> <dt>뉴스 모아보기</dt> <dd><a href="http://www.newspaper.co.kr" target="_blank">newspaper.co.kr</a></dd> </dl> <hr /> <h2 id="section-1">정보 사이트</h2> <dl> <dt>할인 정보</dt> <dd><a href="http://www.ppomppu.co.kr/zboard/zboard.php?id=ppomppu" target="_blank">ppomppu.co.kr/zboard/zboard.php?id=ppomppu</a></dd> <dd><a href="https://www.clien.net/service/board/jirum" target="_blank">clien.net/service/board/jirum</a></dd> <dd><a href="http://bbs.ruliweb.com/market/board/1020" target="_blank">bbs.ruliweb.com/market/board/1020</a></dd> <dd><a href="http://www.slrclub.com/bbs/zboard.php?id=marketinfo" target="_blank">slrclub.com/bbs/zboard.php?id=marketinfo</a></dd> <dd><a href="http://coolenjoy.kr/bbs/jirum" target="_blank">coolenjoy.kr/bbs/jirum</a></dd> <dd><a href="https://quasarzone.co.kr/bbs/board.php?bo_table=qb_saleinfo" target="_blank">quasarzone.co.kr/bbs/board.php?bo_table=qb_saleinfo</a></dd> <dd><a href="https://threppa.com/bbs/board.php?bo_table=0209" target="_blank">threppa.com/bbs/board.php?bo_table=0209</a></dd> <dd><a href="http://www.city.kr/ln" target="_blank">city.kr/ln</a></dd> <dd><a href="http://www.dealbada.com/bbs/board.php?bo_table=deal_domestic" target="_blank">dealbada.com/bbs/board.php?bo_table=deal_domestic</a></dd> <dd><a href="http://eomisae.co.kr/fs" target="_blank">eomisae.co.kr/fs</a></dd> <dd><a href="https://www.fmkorea.com/hotdeal" target="_blank">fmkorea.com/hotdeal</a></dd> <dd><a href="http://www.ajpeople.com/bbs/board.php?bo_table=hotdeal" target="_blank">ajpeople.com/bbs/board.php?bo_table=hotdeal</a></dd> <dt>아파트 실거래 비교</dt> <dd><a href="https://hogangnono.com/" target="_blank">hogangnono.com</a></dd> <dd><a href="http://www.dot1.kr/" target="_blank">dot1.kr</a></dd> <dt>노하우 위키</dt> <dd><a href="https://ko.wikihow.com/" target="_blank">wikihow.com</a></dd> <dt>스팸 전화번호 조회</dt> <dd><a href="http://www.missed-call.com/" target="_blank">missed-call.com</a></dd> <dt>사기피해사례 검색</dt> <dd><a href="https://thecheat.co.kr/" target="_blank">thecheat.co.kr</a></dd> <dt>짧은 주소의 원래주소 조회</dt> <dd><a href="https://wepplication.github.io/tools/longUrl/" target="_blank">wepplication.github.io/tools/longUrl</a></dd> <dt>웹호스팅 가격비교</dt> <dd><a href="http://www.sansting.com/home" target="_blank">sansting.com</a></dd> <dt>보험 비교</dt> <dd><a href="http://www.e-insmarket.or.kr" target="_blank">e-insmarket.or.kr</a></dd> <dt>Java 커뮤니티</dt> <dd><a href="http://okky.kr" target="_blank">okky.kr</a></dd> <dt>안드로이드 커뮤니티</dt> <dd><a href="http://www.androidpub.com" target="_blank">androidpub.com</a></dd> <dt>.Net 커뮤니티</dt> <dd><a href="http://www.devpia.com" target="_blank">devpia.com</a></dd> <dt>PHP 커뮤니티</dt> <dd><a href="http://phpschool.com" target="_blank">phpschool.com</a></dd> <dt>불법 주차 단속 알림 시스템</dt> <dd><a href="http://parkingsms.wizshot.com/" target="_blank">parkingsms.wizshot.com</a></dd> <dt>자동차 리콜 알림</dt> <dd><a href="http://www.car.go.kr/" target="_blank">car.go.kr</a></dd> <dt>뭔지 모르는 알약 정보 찾기</dt> <dd><a href="http://www.pharm.or.kr/search/drugidfy/search.asp" target="_blank">pharm.or.kr</a></dd> </dl> <hr /> <h2 id="section-2">도구 사이트</h2> <h4 id="section-3">이미지 관련</h4> <dl> <dt>온라인 포토샵</dt> <dd><a href="https://www.photopea.com/" target="_blank">photopea.com</a></dd> <dd><a href="https://www.pixlr.com/editor/" target="_blank">pixlr.com</a></dd> <dd><a href="https://www.sumopaint.com/paint/" target="_blank">sumopaint.com</a></dd> <dd><a href="https://www.befunky.com/create/" target="_blank">befunky.com</a></dd> <dt>이미지용량 줄이기</dt> <dd><a href="https://www.jpegmini.com/" target="_blank">jpegmini.com</a></dd> <dd><a href="https://compressnow.com/" target="_blank">compressnow.com</a></dd> <dd><a href="http://jpeg-optimizer.com/" target="_blank">jpeg-optimizer.com</a></dd> <dd><a href="https://compresspng.com/" target="_blank">compresspng.com</a></dd> <dd><a href="https://tinypng.com/" target="_blank">tinypng.com</a></dd> <dt>이미지 자르기</dt> <dd><a href="https://postcron.com/image-splitter/" target="_blank">postcron.com/image-splitter/</a></dd> <dd><a href="https://fengyuanchen.github.io/photo-editor/" target="_blank">fengyuanchen.github.io/photo-editor/</a></dd> <dt>이미지 합치기</dt> <dd><a href="http://bbom.org/tools/" target="_blank">bbom.org/tools/</a></dd> <dt>이미지 배경제거</dt> <dd><a href="https://burner.bonanza.com/" target="_blank">burner.bonanza.com</a></dd> <dd><a href="https://clippingmagic.com/" target="_blank">clippingmagic.com</a></dd> <dd><a href="https://www.remove.bg/" target="_blank">remove.bg</a></dd> <dt>그림 자동 채색</dt> <dd><a href="http://paintschainer.preferred.tech" target="_blank">paintschainer.preferred.tech</a></dd> <dt>이미지 해상도 업스케일링</dt> <dd><a href="http://waifu2x.udp.jp/index.ko.html" target="_blank">waifu2x.udp.jp</a></dd> <dt>사진에서 얼굴 검출해 모자이크</dt> <dd><a href="https://www.facepixelizer.com/" target="_blank">facepixelizer.com</a></dd> <dt>gif 생성 / gif에서 이미지 추출</dt> <dd><a href="https://wepplication.github.io/tools/aniGifGen/" target="_blank">wepplication.github.io/tools/aniGifGen</a></dd> <dt>gif 생성, 크기조정, 자르기, 글씨넣기, 쪼개기</dt> <dd><a href="https://ezgif.com/" target="_blank">ezgif.com</a></dd> <dt>웹페이지 이미지 한번에 저장</dt> <dd><a href="https://imagecyborg.com/" target="_blank">imagecyborg.com</a></dd> <dt>흑백 이미지 칼라로 변경</dt> <dd><a href="https://colorize.dev.kaisou.misosi.ru/" target="_blank">colorize.dev.kaisou.misosi.ru</a></dd> <dt>이미지에에서 칼라 팔레트 추출</dt> <dd><a href="http://www.cssdrive.com/imagepalette/" target="_blank">cssdrive.com/imagepalette</a></dd> <dt>이미지에서 텍스트 추출</dt> <dd><a href="http://www.i2ocr.com/" target="_blank">i2ocr.com</a></dd> <dd><a href="https://ocr.retia.co.kr" target="_blank">ocr.retia.co.kr</a></dd> <dd><a href="https://www.newocr.com/" target="_blank">newocr.com</a></dd> <dt>로고 생성</dt> <dd><a href="http://www.flamingtext.com/" target="_blank">flamingtext.com</a></dd> </dl> <h4 id="section-4">개발 관련</h4> <dl> <dt>아이콘 생성</dt> <dd><a href="https://convertico.com/" target="_blank">convertico.com</a></dd> <dt>파비콘 생성</dt> <dd><a href="https://www.favicon-generator.org/" target="_blank">favicon-generator.org</a></dd> <dt>반응형 웹사이트 테스트</dt> <dd><a href="http://troy.labs.daum.net/" target="_blank">troy.labs.daum.net</a></dd> <dt>HTML 문자참조표</dt> <dd><a href="https://wepplication.github.io/tools/htmlCodes/" target="_blank">wepplication.github.io/tools/htmlCodes</a></dd> <dt>아스키코드표</dt> <dd><a href="https://wepplication.github.io/tools/asciiCodes/" target="_blank">wepplication.github.io/tools/asciiCodes</a></dd> <dt>HTML 색상표</dt> <dd><a href="https://wepplication.github.io/tools/colorPicker/" target="_blank">wepplication.github.io/tools/colorPicker</a></dd> <dt>이미지 데이타 URL 생성</dt> <dd><a href="https://wepplication.github.io/tools/img2Url/" target="_blank">wepplication.github.io/tools/img2Url</a></dd> <dt>문서 틀린점 비교</dt> <dd><a href="https://wepplication.github.io/tools/compareDoc/" target="_blank">wepplication.github.io/tools/compareDoc</a></dd> <dt>HTML/JS/CSS/SQL 코드 보기 좋게 변경</dt> <dd><a href="https://wepplication.github.io/tools/beautifyCode/" target="_blank">wepplication.github.io/tools/beautifyCode</a></dd> <dt>HTML/JS/CSS 코드 압축</dt> <dd><a href="https://wepplication.github.io/tools/minifyCode/" target="_blank">wepplication.github.io/tools/minifyCode</a></dd> <dt>URL, HTML, Base32, Base64 인코더/디코더</dt> <dd><a href="https://wepplication.github.io/tools/encoder/" target="_blank">wepplication.github.io/tools/encoder</a></dd> <dt>해쉬 / 인코딩</dt> <dd><a href="http://emn178.github.io/online-tools/index.html" target="_blank">emn178.github.io/online-tools</a></dd> <dt>해쉬 / 암호화</dt> <dd><a href="https://wepplication.github.io/tools/crypt/" target="_blank">wepplication.github.io/tools/crypt</a></dd> <dt>UUID 생성</dt> <dd><a href="https://wepplication.github.io/tools/uuidGen/" target="_blank">wepplication.github.io/tools/uuidGen</a></dd> <dt>Javascript 키 인풋 테스트</dt> <dd><a href="https://wepplication.github.io/tools/keyCode/" target="_blank">wepplication.github.io/tools/keyCode/</a></dd> <dd><a href="https://unixpapa.com/js/testkey.html" target="_blank">unixpapa.com/js/testkey.html</a></dd> <dd><a href="https://javascript.info/keyboard-events" target="_blank">javascript.info/keyboard-events</a></dd> <dt>정규표현식 테스트</dt> <dd><a href="https://regexr.com/" target="_blank">regexr.com</a></dd> <dt>Java/APK 디컴파일러</dt> <dd><a href="http://www.javadecompilers.com/" target="_blank">javadecompilers.com</a></dd> <dt>사이트 중국 접속 테스트</dt> <dd><a href="https://www.comparitech.com/privacy-security-tools/blockedinchina/" target="_blank">comparitech.com/privacy-security-tools</a></dd> <dt>웹개발 도구 모음 (ip조회, 핑테스트, 인코딩, 해싱, 암호화 등등)</dt> <dd><a href="http://tool.heyo.me/" target="_blank">tool.heyo.me</a></dd> <dt>더미 이미지 생성</dt> <dd><a href="http://www.gifpng.com/?language=ko" target="_blank">gifpng.com</a></dd> <dd><a href="https://placeholder.com/" target="_blank">placeholder.com</a></dd> <dt>언어별 API 모음</dt> <dd><a href="http://overapi.com/" target="_blank">overapi.com</a></dd> <dt>언어별 코드 실행</dt> <dd><a href="http://www.compileonline.com/" target="_blank">compileonline.com</a></dd> <dt>HTML5 지원현황</dt> <dd><a href="https://html5test.com/" target="_blank">html5test.com</a></dd> <dt>HTML 소스보기</dt> <dd><a href="https://wepplication.github.io/tools/htmlViewer/" target="_blank">wepplication.github.io/tools/htmlViewer/</a></dd> <dt>그림 그려서 HTML 코드 만들기</dt> <dd><a href="https://sketch2code.azurewebsites.net" target="_blank">sketch2code.azurewebsites.net</a></dd> </dl> <h4 id="section-5">기타</h4> <dl> <dt>특수문자 모음</dt> <dd><a href="https://wepplication.github.io/tools/charMap/" target="_blank">wepplication.github.io/tools/charMap</a></dd> <dt>외부/내부 IP조회</dt> <dd><a href="https://wepplication.github.io/tools/ipconfig/" target="_blank">wepplication.github.io/tools/ipconfig</a></dd> <dt>외부 IP 조회</dt> <dd><a href="https://www.ipipipip.net/" target="_blank">ipipipip.net</a></dd> <dd><a href="http://www.findip.kr/" target="_blank">findip.kr</a></dd> <dd><a href="http://mylocation.co.kr/" target="_blank">mylocation.co.kr</a></dd> <dt>인터넷 아카이브(웹 사이트 과거 모습 보기)</dt> <dd><a href="https://web.archive.org/" target="_blank">web.archive.org</a></dd> <dd><a href="https://archive.is/" target="_blank">archive.is</a></dd> <dt>온라인 시계 (알람, 타이머, 스톱워치, 세계시간)</dt> <dd><a href="https://vclock.kr/" target="_blank">vclock.kr</a></dd> <dt>마인드 맵</dt> <dd><a href="https://mind42.com/" target="_blank">mind42.com</a></dd> <dt>일회용 이메일</dt> <dd><a href="http://www.guerrillamail.com/ko" target="_blank">guerrillamail.com</a></dd> <dd><a href="https://expirebox.com/" target="_blank">expirebox.com</a></dd> <dd><a href="http://www.incognitomail.com/" target="_blank">incognitomail.com</a></dd> <dd><a href="https://maildrop.cc/" target="_blank">maildrop.cc</a></dd> <dd><a href="http://www.yopmail.com/" target="_blank">yopmail.com</a></dd> <dt>한국어 맞춤법 검사기</dt> <dd><a href="http://speller.cs.pusan.ac.kr/" target="_blank">speller.cs.pusan.ac.kr</a></dd> <dd><a href="http://alldic.daum.net/grammar_checker.do" target="_blank">alldic.daum.net/grammar_checker.do</a></dd> <dt>글자수 세기 / 맞춤법 검사기</dt> <dd><a href="http://www.saramin.co.kr/zf_user/tools/character-counter" target="_blank">saramin.co.kr/zf_user/tools/character-counter</a></dd> <dt>글자수 세기</dt> <dd><a href="https://wepplication.github.io/tools/charCounter/" target="_blank">wepplication.github.io/tools/charCounter</a></dd> <dt>한영타 변환기</dt> <dd><a href="https://wepplication.github.io/tools/eng2Kor/" target="_blank">wepplication.github.io/tools/eng2Kor</a></dd> <dt>웹 메모장</dt> <dd><a href="https://www.protectedtext.com/" target="_blank">protectedtext.com</a></dd> <dd><a href="https://noteapp.com/" target="_blank">noteapp.com</a></dd> <dt>웹 그림판</dt> <dd><a href="https://mrdoob.com/projects/harmony/" target="_blank">mrdoob.com/projects/harmony</a></dd> <dt>게시판 HTML코드 생성</dt> <dd><a href="https://wepplication.github.io/tools/webEditor/" target="_blank">wepplication.github.io/tools/webEditor</a></dd> <dt>랜섬웨어 무료 복구</dt> <dd><a href="https://www.nomoreransom.org/ko/index.html" target="_blank">nomoreransom.org</a></dd> <dt>PDF 변환</dt> <dd><a href="https://allinpdf.com/intro" target="_blank">allinpdf.com</a></dd> <dd><a href="https://smallpdf.com/kr" target="_blank">smallpdf.com</a></dd> <dt>파일 포맷 변환</dt> <dd><a href="http://www.convertfiles.com/" target="_blank">convertfiles.com</a></dd> <dt>EML 뷰어</dt> <dd><a href="https://wepplication.github.io/tools/emlViewer/" target="_blank">wepplication.github.io/tools/emlViewer</a></dd> <dt>PDF등으로 ebook 생성</dt> <dd><a href="https://toepub.com/ko/" target="_blank">toepub.com</a></dd> <dt>SMI-&gt;SRT 자막 변환 / 자막 싱크 조절</dt> <dd><a href="https://wepplication.github.io/tools/smi2Srt/" target="_blank">wepplication.github.io/tools/smi2Srt</a></dd> <dt>문자 음성으로 읽기</dt> <dd><a href="https://wepplication.github.io/tools/tts/" target="_blank">wepplication.github.io/tools/tts</a></dd> <dt>말하는거 문자로 받아 적기</dt> <dd><a href="https://wepplication.github.io/tools/stt/" target="_blank">wepplication.github.io/tools/stt</a></dd> <dt>파일 저장소</dt> <dd><a href="https://www.mediafire.com/" target="_blank">mediafire.com</a></dd> <dd><a href="https://imgbox.com/" target="_blank">imgbox.com</a></dd> <dd><a href="https://sendvid.com/" target="_blank">sendvid.com</a></dd> <dt>일회용 파일공유</dt> <dd><a href="https://www.justbeamit.com/" target="_blank">justbeamit.com</a></dd> <dd><a href="https://www.dropjiffy.com/" target="_blank">dropjiffy.com</a></dd> <dd><a href="https://www.sendtransfer.com/" target="_blank">sendtransfer.com</a></dd> <dt>패스워드 만들기</dt> <dd><a href="http://passwordchart.com/" target="_blank">passwordchart.com</a></dd> <dt>온라인 문서 번역</dt> <dd><a href="https://www.onlinedoctranslator.com/" target="_blank">onlinedoctranslator.com</a></dd> <dt>모니터 무결점 테스트</dt> <dd><a href="http://www.monitor.co.kr/" target="_blank">monitor.co.kr</a></dd> <dt>인터넷 속도측정</dt> <dd><a href="https://www.speedtest.net/ko" target="_blank">speedtest.net</a></dd> <dd><a href="https://fast.com/ko/" target="_blank">fast.com</a></dd> <dt>로또번호 생성기</dt> <dd><a href="https://wepplication.github.io/tools/lottoNumGen/" target="_blank">wepplication.github.io/tools/lottoNumGen</a></dd> <dd><a href="http://kor.pe.kr/util/4/lotto/" target="_blank">kor.pe.kr/util/4/lotto</a></dd> <dd><a href="http://www.okojj.com/apps/lotto.php" target="_blank">okojj.com/apps/lotto.php</a></dd> <dd><a href="http://lotto.gobest.co.kr/lott6-0.php" target="_blank">lotto.gobest.co.kr/lott6-0.php</a></dd> <dt>전광판 만들기</dt> <dd><a href="http://wigflip.com/signbot/" target="_blank">wigflip.com/signbot</a></dd> <dt>오디오 자르기</dt> <dd><a href="https://mp3cut.net/ko/" target="_blank">mp3cut.net</a></dd> <dt>오디오/비디오 포맷 변환기</dt> <dd><a href="https://www.media.io/kp/" target="_blank">media.io</a></dd> <dt>회로 설계, 시뮬레이션</dt> <dd><a href="https://www.circuitlab.com/editor/" target="_blank">circuitlab.com</a></dd> <dt>토렌트 magnet -&gt; .torrent 변환</dt> <dd><a href="https://grep.kr/magnet/" target="_blank">grep.kr/magnet</a></dd> <dd><a href="http://magnet2torrent.com/" target="_blank">magnet2torrent.com</a></dd> <dt>tv 보기</dt> <dd><a href="http://hdtv.im/" target="_blank">hdtv.im</a></dd> <dt>중국 번체자 &gt; 간체자 변환</dt> <dd><a href="https://www.ltool.net/chinese_traditional_characters_to_simplified_converter_in_korean.php" target="_blank">ltool.net</a></dd> <dt>짧은 url 주소 만들기</dt> <dd><a href="https://bitly.com/" target="_blank">bitly.com</a></dd> <dt>매직아이 생성</dt> <dd><a href="https://wepplication.github.io/tools/magicEyeGen/" target="_blank">wepplication.github.io/tools/magicEyeGen</a></dd> <dt>서버 시간 확인</dt> <dd><a href="https://time.navyism.com/" target="_blank">time.navyism.com</a></dd> <dd><a href="http://timecker.com" target="_blank">timecker.com</a></dd> <dd><a href="http://poitime.com/" target="_blank">poitime.com</a></dd> <dt>바코드/QR코드 생성</dt> <dd><a href="https://wepplication.github.io/tools/barcodeGen/" target="_blank">wepplication.github.io/tools/barcodeGen</a></dd> <dd><a href="https://www.free-barcode-generator.net/" target="_blank">free-barcode-generator.net</a></dd> <dd><a href="https://www.terryburton.co.uk/barcodewriter/generator/" target="_blank">terryburton.co.uk</a></dd> <dt>QR코드 생성</dt> <dd><a href="https://qr.ioi.tw/ko/" target="_blank">qr.ioi.tw</a></dd> <dt>웹 바코드/QR코드 스캐너</dt> <dd><a href="https://wepplication.github.io/tools/barcodeScanner/" target="_blank">wepplication.github.io/tools/barcodeScanner</a></dd> <dt>웹 손전등</dt> <dd><a href="https://wepplication.github.io/tools/flashlight/" target="_blank">wepplication.github.io/tools/flashlight</a></dd> <dt>아스키아트 생성</dt> <dd><a href="https://wepplication.github.io/tools/asciiArtGen/" target="_blank">wepplication.github.io/tools/asciiArtGen</a></dd> <dd><a href="http://patorjk.com/software/taag" target="_blank">patorjk.com/software/taag</a></dd> <dt>파일 MD5 체크섬 확인</dt> <dd><a href="https://wepplication.github.io/tools/fileChecksum/" target="_blank">wepplication.github.io/tools/fileChecksum</a></dd> <dt>자동화 서비스</dt> <dd><a href="https://ifttt.com/" target="_blank">ifttt.com</a></dd> <dt>우편번호/주소 조회</dt> <dd><a href="https://wepplication.github.io/tools/postcode/" target="_blank">wepplication.github.io/tools/postcode</a></dd> <dt>길찾기 서비스</dt> <dd><a href="https://map.naver.com/index.nhn?menu=route" target="_blank">map.naver.com/index.nhn?menu=route</a></dd> <dd><a href="http://map.daum.net/?target=car" target="_blank">map.daum.net/?target=car</a></dd> <dd><a href="https://www.google.co.kr/maps/dir///data=!3m1!4b1!4m2!4m1!3e3?hl=ko" target="_blank">google.co.kr/maps</a></dd> <dt>번역 서비스</dt> <dd><a href="https://translate.google.co.kr/?hl=ko" target="_blank">translate.google.co.kr</a></dd> <dd><a href="https://papago.naver.com/" target="_blank">papago.naver.com</a></dd> <dd><a href="https://translate.kakao.com/" target="_blank">translate.kakao.com</a></dd> <dd><a href="https://www.bing.com/translator/" target="_blank">bing.com/translator</a></dd> <dd><a href="http://better-translator.com/" target="_blank">better-translator.com</a></dd> <dd><a href="https://acidsound.github.io/transplus/" target="_blank">acidsound.github.io/transplus</a></dd> <dt>구글 캘린더 음력 등록</dt> <dd><a href="http://googlelunar.cpueblo.com/" target="_blank">googlelunar.cpueblo.com</a></dd> <dt>이미지 검색</dt> <dd><a href="https://www.google.com/imghp?hl=ko&amp;tab=wi" target="_blank">google.com/imghp</a></dd> <dd><a href="https://www.tineye.com/" target="_blank">tineye.com</a></dd> <dt>한자 필기 검색</dt> <dd><a href="https://hanja.dict.naver.com/" target="_blank">hanja.dict.naver.com</a></dd> <dt>순서도(플로우 차트), 네트워크 구성도 다이어 그램 그리기</dt> <dd><a href="https://go.gliffy.com/go/html5/launch" target="_blank">go.gliffy.com/go/html5/launch</a></dd> <dt>주소변경 원클릭 서비스(은행, 카드, 보험)</dt> <dd><a href="http://www.ktmoving.com/" target="_blank">ktmoving.com</a></dd> </dl> <hr /> <h2 id="section-6">심심풀이 사이트</h2> <dl> <dt>무료 운세</dt> <dd><a href="http://shinhan.haezone.com/inSaju.asp" target="_blank">shinhan.haezone.com</a></dd> <dt>온라인 낙서</dt> <dd><a href="http://www.drawball.com/" target="_blank">drawball.com</a></dd> <dt>이름 풀이</dt> <dd><a href="http://www.yuksul.com/saju/free_name.html" target="_blank">yuksul.com/saju/free_name.html</a></dd> <dt>꿈 해몽</dt> <dd><a href="http://insidedream.net/" target="_blank">insidedream.net</a></dd> <dt>스무고개</dt> <dd><a href="https://kr.akinator.com/" target="_blank">kr.akinator.com</a></dd> <dt>아이큐 테스트</dt> <dd><a href="https://www.arealme.com/iq/ko/" target="_blank">arealme.com/iq</a></dd> <dd><a href="http://memorado.org/iqtest" target="_blank">memorado.org/iqtest</a></dd> <dd><a href="http://www.iqtest.kr/" target="_blank">iqtest.kr</a></dd> <dd><a href="http://iqtest.so/" target="_blank">iqtest.so</a></dd> <dt>성격 유형 검사</dt> <dd><a href="https://www.16personalities.com/ko" target="_blank">16personalities.com</a></dd> <dt>퍼즐 / 미로 출력</dt> <dd><a href="https://krazydad.com/" target="_blank">krazydad.com</a></dd> </dl> <hr /> <h2 id="section-7">학습 사이트</h2> <h4 id="section-8">자격증</h4> <dl> <dt>기출문제</dt> <dd><a href="http://www.gunsys.com/gunsystem_pilgi.htm" target="_blank">gunsys.com</a></dd> <dd><a href="http://www.comcbt.com/" target="_blank">comcbt.com</a></dd> <dd><a href="http://www.munjebank.net/" target="_blank">munjebank.net</a></dd> </dl> <h4 id="section-9">공모전/경진대회</h4> <dl> <dt>국내 공모전</dt> <dd><a href="http://gongmo.incruit.com/" target="_blank">gongmo.incruit.com/</a></dd> <dd><a href="http://www.detizen.net/contest/" target="_blank">detizen.net</a></dd> <dd><a href="http://contest.jobkorea.co.kr/Contest/List" target="_blank">contest.jobkorea.co.kr</a></dd> <dd><a href="http://www.thinkuniv.com/sub/sub01.asp" target="_blank">thinkuniv.com</a></dd> </dl> <h4 id="section-10">교육</h4> <dl> <dt>IT 교육/세미나</dt> <dd><a href="https://www.sharedit.co.kr/seminars" target="_blank">sharedit.co.kr</a></dd> <dt>무료 교육/강연</dt> <dd><a href="http://www.seminarmessenger.com/bbs/board.php?bo_table=01_06" target="_blank">seminarmessenger.com</a></dd> <dd><a href="https://www.edwith.org/" target="_blank">edwith.org</a></dd> <dt>공개SW 행사안내</dt> <dd><a href="https://www.oss.kr/event" target="_blank">oss.kr</a></dd> <dt>국내 IT 컨퍼런스 일정</dt> <dd><a href="https://zetawiki.com/wiki/%EB%B6%84%EB%A5%98:IT_%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4" target="_blank">zetawiki.com</a></dd> <dt>프로그래밍 문제풀이</dt> <dd><a href="http://codingdojang.com/" target="_blank">codingdojang.com</a></dd> <dd><a href="https://www.acmicpc.net/" target="_blank">acmicpc.net</a></dd> <dd><a href="https://programmers.co.kr/" target="_blank">programmers.co.kr</a></dd> <dd><a href="https://algospot.com/judge/problem/list/" target="_blank">algospot.com</a></dd> <dd><a href="http://www.jungol.co.kr/" target="_blank">jungol.co.kr</a></dd> <dd><a href="http://judge.lavida.us/" target="_blank">judge.lavida.us</a></dd> <dt>소셜 강좌 사이트</dt> <dd><a href="https://opentutorials.org/" target="_blank">opentutorials.org</a></dd> <dt>대학 공개 강의</dt> <dd><a href="http://www.kocw.net/" target="_blank">kocw.net</a></dd> <dt>C언어 강좌</dt> <dd><a href="https://modoocode.com/" target="_blank">modoocode.com</a></dd> <dt>프로그래밍 강좌(생활코딩)</dt> <dd><a href="https://opentutorials.org/course/1" target="_blank">opentutorials.org/course/1</a></dd> </dl> <hr /> <h2 id="section-11">취업 사이트</h2> <dl> <dt>아르바이트</dt> <dd><a href="http://www.alba.co.kr/" target="_blank">alba.co.kr</a></dd> <dd><a href="https://www.albamon.com/" target="_blank">albamon.com</a></dd> <dt>채용 정보</dt> <dd><a href="https://www.jobkorea.co.kr/" target="_blank">jobkorea.co.kr</a></dd> <dd><a href="https://www.saramin.co.kr" target="_blank">saramin.co.kr</a></dd> <dd><a href="http://m.work.go.kr/" target="_blank">work.go.kr</a></dd> <dd><a href="https://www.incruit.com/" target="_blank">incruit.com</a></dd> <dt>공공기관 채용정보</dt> <dd><a href="https://job.alio.go.kr/" target="_blank">job.alio.go.kr</a></dd> <dt>기업 정보 (연봉, 후기 등)</dt> <dd><a href="https://www.jobplanet.co.kr/" target="_blank">jobplanet.co.kr</a></dd> <dd><a href="https://kreditjob.com/" target="_blank">kreditjob.com</a></dd> <dd><a href="https://www.dsum.co/" target="_blank">dsum.co</a></dd> </dl> <hr /> <h2 id="section-12">게임 사이트</h2> <h4 id="section-13">싱글플레이</h4> <dl> <dt>플래피 버드</dt> <dd><a href="http://ellisonleao.github.io/clumsy-bird/" target="_blank">ellisonleao.github.io/clumsy-bird</a></dd> <dt>2048</dt> <dd><a href="https://play2048.co/" target="_blank">play2048.co</a></dd> <dt>네모네모로직</dt> <dd><a href="http://nemonemologic.com/" target="_blank">nemonemologic.com</a></dd> <dt>Transport Tycoon Deluxe</dt> <dd><a href="http://epicport.com/en/ttd" target="_blank">epicport.com/en/ttd</a></dd> <dt>Caesar III</dt> <dd><a href="http://epicport.com/en/caesar3" target="_blank">epicport.com/en/caesar3</a></dd> <dt>Dune 2</dt> <dd><a href="http://epicport.com/en/dune2" target="_blank">epicport.com/en/dune2</a></dd> <dt>X-COM: UFO Defense</dt> <dd><a href="http://epicport.com/en/xcom" target="_blank">epicport.com/en/xcom</a></dd> <dt>DOS 게임 라이브러리</dt> <dd><a href="https://archive.org/details/softwarelibrary_msdos_games/v2" target="_blank">bit.ly/1yuo1Tm</a></dd> <dt>웹브라우저 게임 모음</dt> <dd><a href="http://bitplay.co/" target="_blank">bitplay.co</a></dd> <dt>HTML5 게임 모음</dt> <dd><a href="https://publishers.softgames.com/" target="_blank">publishers.softgames.com</a></dd> <dt>플래쉬 게임 모음</dt> <dd><a href="https://flashgames.tistory.com/" target="_blank">flashgames.tistory.com</a></dd> <dt>1024바이트 javascript 게임 개발 대회 게임들</dt> <dd><a href="https://js13kgames.com" target="_blank">js13kgames.com</a></dd> </dl> <h4 id="section-14">멀티플레이</h4> <dl> <dt>세포 키우기</dt> <dd><a href="https://agar.io/" target="_blank">agar.io</a></dd> <dt>지렁이 키우기</dt> <dd><a href="http://slither.io/" target="_blank">slither.io</a></dd> <dt>탱크 키우기</dt> <dd><a href="http://diep.io/" target="_blank">diep.io</a></dd> <dt>싱크홀 키우기</dt> <dd><a href="https://hole-io.com/" target="_blank">hole-io.com</a></dd> <dt>땅따먹기</dt> <dd><a href="http://paper-io.com/" target="_blank">paper-io.com</a></dd> <dd><a href="http://splix.io/" target="_blank">splix.io</a></dd> <dt>보드게임 모음</dt> <dd><a href="https://ko.boardgamearena.com/" target="_blank">boardgamearena.com</a></dd> <dd><a href="https://www.playok.com/" target="_blank">playok.com</a></dd> <dt>끝말잇기 온라인</dt> <dd><a href="https://kkutu.io" target="_blank">kkutu.io</a></dd> <dt>브루탈 매니아</dt> <dd><a href="https://www.crazygames.com/game/brutalmania-io" target="_blank">crazygames.com/game/brutalmania-io</a></dd> <dt>배틀로얄</dt> <dd><a href="https://miniroyale2.io/" target="_blank">miniroyale2.io</a></dd> <dt>헬리콥터 키우기</dt> <dd><a href="http://copter.io/" target="_blank">copter.io</a></dd> <dt>2D 배틀 그라운드</dt> <dd><a href="http://surviv.io" target="_blank">surviv.io</a></dd> </dl> <hr /> <h2 id="section-15">자료 사이트</h2> <dl> <dt>무료 이미지</dt> <dd><a href="https://www.pexels.com/" target="_blank">pexels.com</a></dd> <dd><a href="https://unsplash.com/" target="_blank">unsplash.com</a></dd> <dd><a href="https://pixabay.com/ko/" target="_blank">pixabay.com</a></dd> <dt>무료 영상</dt> <dd><a href="https://mazwai.com" target="_blank">mazwai.com</a></dd> <dt>유료화된 프로그램 마지막 프리웨어 찾는곳</dt> <dd><a href="http://www.321download.com/LastFreeware/" target="_blank">321download.com</a></dd> <dt>무료 글꼴</dt> <dd><a href="https://gongu.copyright.or.kr/freeFontEvent.html" target="_blank">안심 글꼴파일서비스</a></dd> <dd><a href="https://blog.naver.com/PostList.nhn?blogId=wosr1&amp;categoryNo=63" target="_blank">blog.naver.com/wosr1</a></dd> <dd><a href="https://www.ridicorp.com/branding/fonts/ridibatang/" target="_blank">리디바탕체</a></dd> <dd><a href="https://woowahan.com/#/fonts" target="_blank">배달의민족 무료글꼴</a></dd> <dd><a href="https://clova.ai/handwriting/" target="_blank">네이버 나눔손글씨</a></dd> <dd><a href="http://hangeul.naver.com/2017/nanum" target="_blank">네이버 나눔글꼴</a></dd> <dd><a href="http://www.bingfont.co.kr/bingfont.html" target="_blank">빙그레 서체</a></dd> <dd><a href="https://www.cookierunfont.com" target="_blank">쿠키런 글꼴</a></dd> <dd><a href="https://gscaltexmediahub.com/campaign/the-energy-of-independence-fighters-2/" target="_blank">GS칼텍스 독립서체</a></dd> <dd><a href="https://www.oning.co.kr/onlooking" target="_blank">디자인210 ON 서체</a></dd> <dd><a href="http://uhbeefont.com/" target="_blank">어비폰트</a></dd> <dd><a href="https://echosting.cafe24.com/Campaign/?url=Cafe24freefonts" target="_blank">카페24 무료폰트</a></dd> <dd><a href="https://www.goodchoice.kr/font" target="_blank">여기어때 잘난체</a></dd> <dd><a href="http://yanolja.in/ko/yafont/" target="_blank">야놀자 야체</a></dd> <dd><a href="http://joonggonara.co/about.html" target="_blank">중고나라 중나좋체</a></dd> <dt>무료 게임 소스코드</dt> <dd><a href="https://archive.org/details/gamesourcecode" target="_blank">archive.org/details/gamesourcecode</a></dd> </dl> <hr /> <h2 id="section-16">돈버는 사이트</h2> <dl> <dt>AI 기계학습 데이터 작업</dt> <dd><a href="http://www.crowdworks.kr/" target="_blank">crowdworks.kr</a></dd> <dt>설문조사</dt> <dd><a href="https://www.panel.co.kr/user/join/etcpath/?eb=I7KRqSK6rMM9BpIr%2FRgK1Q%3D%3D" target="_blank">panel.co.kr</a></dd> <dd><a href="http://www.panelnow.co.kr/recommend/r/d388cfc3bdd8d98951de0e937a711961" target="_blank">panelnow.co.kr</a></dd> <dd><a href="http://www.surveylink.co.kr" target="_blank">surveylink.co.kr</a></dd> </dl> <hr /> </div><!-- /.medium-8.columns --> </div> <!-- /.row --> https://wepplication.github.io/links/ Jekyll을 이용한 무료 블로그 만들기 https://wepplication.github.io/programming/jekyll/ Fri, 05 Oct 2018 00:00:00 +0000 <!--more--> <hr /> <h2 id="지킬jekyll-이란">지킬(Jekyll) 이란?</h2> <p><a href="https://jekyllrb.com/" target="_blank">Jekyll</a>은 <a href="https://ko.wikipedia.org/wiki/%EA%B9%83%ED%97%88%EB%B8%8C" target="_blank">GitHub</a>의 창업자이자 전 CEO인 Tom Preston-Werner이 창시한 <a href="https://ko.wikipedia.org/wiki/%EB%A3%A8%EB%B9%84_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4)" target="_blank">Ruby</a> 언어 기반의 심플한 정적 사이트(DB 통신 등을 해서 서버에서 HTML 페이지를 실시간으로 만들던 동적 사이트 방식이 아닌 완성된 HTML 파일을 바로 전달) 생성기로 Ruby 언어 기반 이지만, 루비 문법을 알지 못해도 블로그를 만들 수 있습니다.</p> <p>Jekyll에서 정의해 놓은 규칙에 따라 마크업 언어(<a href="https://shopify.github.io/liquid/basics/introduction/" target="_blank">Liquid</a> 기능이 추가된 HTML, <a href="https://ko.wikipedia.org/wiki/%EB%A7%88%ED%81%AC%EB%8B%A4%EC%9A%B4" target="_blank">Markdown</a> 등)로 만든 레이아웃으로 정적 웹사이트를 만들어 줍니다.</p> <p>정적 사이트 엔진은 <a href="https://gohugo.io/" target="_blank">Hugo</a>, <a href="https://hexo.io/ko/index.html" target="_blank">Hexo</a>, <a href="https://www.gatsbyjs.org/" target="_blank">Gatsby</a> 등 수백가지가 존재 하지만 Jekyll 은 <a href="https://pages.github.com/" target="_blank">GitHub Pages</a> 의 내부 엔진으로 있기 때문에, Jekyll 페이지/블로그/웹사이트를 GitHub 서버에 무료로 호스팅 할 수 있습니다.</p> <hr /> <h2 id="ruby-설치">Ruby 설치</h2> <p>지킬은 루비 기반으로 만들어졌기 때문에 루비 설치가 필요합니다.</p> <p>운영체제별(맥OS, 우분투 리눅스, 윈도우즈) 루비 설치법은 아래 링크에서 확인 가능합니다.<br /> OS별 루비 설치하기 : <a href="https://jekyllrb-ko.github.io/docs/installation/" target="_blank">https://jekyllrb-ko.github.io/docs/installation/</a></p> <hr /> <h2 id="jekyll-설치">Jekyll 설치</h2> <p>루비 설치 되어 있으면 루비젬을 통해 Jekyll과 Bundler를 설치합니다.</p> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># RubyGems 를 통해 Jekyll 과 Bundler 를 설치한다</span> <span class="nv">$ </span>gem <span class="nb">install </span>bundler jekyll</code></pre></figure> <hr /> <h2 id="jekyll-기본-사용법">Jekyll 기본 사용법</h2> <p>Jekyll 프로젝트 만들기</p> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># ./myblog 에 새 Jekyll 사이트를 생성한다</span> <span class="nv">$ </span>jekyll new myblog</code></pre></figure> <p>Jekyll은 프로젝트 폴더 내의 파일들을 Jekyll의 규칙에 따라 해석하여 최종적으로 정적인 웹사이트를 _site 디렉터리에 생성합니다.</p> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nv">$ </span>bundle <span class="nb">exec </span>jekyll build <span class="nt">--watch</span> <span class="c"># =&gt; ./_site 에 정적 파일들을 생성합니다.</span> <span class="c"># --watch를 입력하면 변경사항이 감지되면, 자동으로 다시 생성합니다.</span></code></pre></figure> <p>Jekyll 은 개발 서버도 내장하고 있어서, 로컬상에서 브라우저로 접속하여 사이트가 어떻게 생성될지 미리 살펴볼 수 있습니다.</p> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nv">$ </span>bundle <span class="nb">exec </span>jekyll serve <span class="c"># =&gt; 개발서버가 실행됩니다. http://localhost:4000/</span></code></pre></figure> <hr /> <h2 id="jekyll-폴더-구조">Jekyll 폴더 구조</h2> <ul> <li>_config.yml // 환경설정 정보 파일</li> <li>_data // 사이트에 사용할 데이터 파일을 넣는 폴더</li> <li>_drafts // 아직 게시하지 않은 포스트를 넣는 폴더 (<code class="language-plaintext highlighter-rouge">jekyll serve</code> 명령에 <code class="language-plaintext highlighter-rouge">--drafts</code> 명령을 추가해서 미리 볼 수 있다.)</li> <li>_includes // 레이아웃에 삽입할 코드를 넣는 폴더</li> <li>_layouts // 페이지 레이아웃 템플릿을 넣는 폴더</li> <li>_posts // 포스팅할 문서를 넣는 폴더</li> <li>_sass // 사이트에 사용되는 스타일들을 정의하는 <a href="https://ko.wikipedia.org/wiki/Sass_(%EC%8A%A4%ED%83%80%EC%9D%BC%EC%8B%9C%ED%8A%B8_%EC%96%B8%EC%96%B4)" target="_blank">Sass</a>파일을 넣는 폴더</li> <li>_site // Jekyll 이 변환 작업을 마친 뒤 파일들이 생성되는 폴더</li> </ul> <hr /> <h2 id="깃허브github-가입">깃허브(Github) 가입</h2> <p><a href="https://wepplication.github.io/programming/github-pages/" target="_blank">(“GitHub Pages로 사이트 만들기” 참고).</a></p> <hr /> <h2 id="jekyll-테마를-이용해-깃허브-페이지에-지킬-블로그-만들기">Jekyll 테마를 이용해 깃허브 페이지에 지킬 블로그 만들기</h2> <p>깃허브 사이트에서 블로그에 사용할 저장소를 생성합니다.</p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2018/10/github-pages/github-menu.png" alt="저장소 생성 메뉴" /></td> </tr> <tr> <td>우측 상단의 “+” 아이콘을 누른 후 “New repository”를 누릅니다.</td> </tr> </tbody> </table> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2018/10/github-pages/github-createrepo.png" alt="저장소 생성 폼" /></td> </tr> <tr> <td>Repository name에 “<strong><em>사용자이름</em></strong>.github.io” 을 입력하고 Create repository 버튼을 눌러줍니다.</td> </tr> </tbody> </table> <p>인터넷에 깃허브 테마를 찾으면 포트폴리오, 블로그 등 수많은 유료/무료 테마들을 찾을 수 있습니다.<br /> 저장소 모음 : <a href="http://jekyllthemes.org/" target="_blank">http://jekyllthemes.org/</a></p> <p>마음에 드는 테마의 Github 페이지를 찾아 깃허브 주소를 복사합니다.</p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2018/10/jekyll/github_clone_url.png" alt="깃허브 주소 찾기" /></td> </tr> <tr> <td>지킬 테마 깃허브 페이지에서 “Clone or download” 버튼을 누르면 주소를 볼 수 있습니다.</td> </tr> </tbody> </table> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># 마음에 드는 테마를 로컬 저장소로 clone</span> <span class="nv">$ </span>git clone 깃허브주소 프로젝트폴더명 <span class="c"># ex) git clone https://github.com/Phlow/feeling-responsive.git username.github.io</span> <span class="nv">$ </span><span class="nb">cd </span>프로젝트폴더명 <span class="c"># gem 라이브러리 설치</span> <span class="nv">$ </span>bundle <span class="nb">install</span> <span class="c"># clone한 프로젝트의 git 삭제</span> <span class="nv">$ </span><span class="nb">rm</span> <span class="nt">-rf</span> .git</code></pre></figure> <blockquote> <p>Ruby는 필요한 라이브러리들을 Gemfile 안에 작성하고 <code class="language-plaintext highlighter-rouge">bundle install</code> 명령어로 Gemfile에 작성된 라이브러리들을 한번에 설치할 수 있다.</p> </blockquote> <p>clone한 프로젝트에 _config.yml 등의 파일들을 나에게 맞게 수정을 한 후 내 저장소에 PUSH 하기</p> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nv">$ </span>git init <span class="nv">$ </span>git add <span class="nb">.</span> <span class="nv">$ </span>git commit <span class="nt">-m</span> <span class="s2">"Initial commit"</span> <span class="c"># 깃 원격저장소를 위에서 만든 저장소로 설정</span> <span class="nv">$ </span>git remote add origin [email protected]:username/username.github.io.git <span class="c"># 원격 저장소에 PUSH</span> <span class="nv">$ </span>git push <span class="nt">-u</span> origin master</code></pre></figure> <p>일정 시간이 지난 후<br /> 브라우저로 “https://<strong><em>사용자이름</em></strong>.github.io/” 에 접속하면 지킬 테마가 적용된 블로그가 생긴것을 볼 수 있습니다.</p> <hr /> <h2 id="포스트-작성">포스트 작성</h2> <p>_posts 폴더에 포스팅 파일을 마크다운으로 작성합니다.</p> <p>이때 파일명은 <code class="language-plaintext highlighter-rouge">YEAR-MONTH-DAY-title.MARKUP</code> 형태로 작성을 해야 합니다.</p> <p>ex) 2018-10-05-hello.md</p> <p>파일을 작성 후 git을 이용해 PUSH하면 포스트가 작성된 것을 확인할 수 있습니다.</p> <figure class="highlight"><pre><code class="language-sh" data-lang="sh">git add <span class="nb">.</span> git commit <span class="nt">-m</span> <span class="s2">"hello posting"</span> git push</code></pre></figure> <hr /> <h2 id="머릿말front-matter-작성법">머릿말(Front Matter) 작성법</h2> <p>Jekyll에서 Front Matter는 MARKUP 해석할 때 사용하는 메타정보를 쓰는 것으로 파일의 첫 시작 부분에 <code class="language-plaintext highlighter-rouge">---</code>으로 시작해서 <code class="language-plaintext highlighter-rouge">---</code>를 끝으로 이 사이에 정보를 YAML 포멧으로 작성합니다.</p> <figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="nn">---</span> <span class="na">layout</span><span class="pi">:</span> <span class="s">default</span> <span class="na">title</span><span class="pi">:</span> <span class="s">Welcome to Jekyll</span> <span class="na">categories </span><span class="pi">:</span> <span class="pi">-</span> <span class="s">web</span> <span class="na">tags </span><span class="pi">:</span> <span class="pi">[</span><span class="nv">ruby</span><span class="pi">,</span> <span class="nv">jekyll</span><span class="pi">,</span> <span class="nv">git</span><span class="pi">]</span> <span class="na">date </span><span class="pi">:</span> <span class="s">2018-10-05 12:34</span> <span class="na">permalink</span><span class="pi">:</span> <span class="s">/:categories/:title/</span> <span class="nn">---</span></code></pre></figure> <ul> <li>layout : 사용할 레이아웃 파일(<code class="language-plaintext highlighter-rouge">_layouts</code> 폴더에 존재하는 파일)을 지정</li> <li>category, categories : 포스트에 하나 또는 여러 개의 카테고리를 지정할 수도 있다.</li> <li>tags : 포스트에 여러 개의 태그를 지정할 수도 있다.</li> <li>date : 파일명이 아닌 다른 날짜로 지정하여 사용할 수 있다.</li> <li>permalink : 페이지의 url 경로를 나타낸다.(기본설정: <code class="language-plaintext highlighter-rouge">/year/month/day/title.html</code>)</li> </ul> <hr /> <h2 id="마크다운markdown-작성법">마크다운(Markdown) 작성법</h2> <p><a href="https://daringfireball.net/projects/markdown/syntax" target="_blank">Markdown</a>은 2004년 존그루버에 의해 만들어진 텍스트기반 마크업언어로 웹 작성자를 위한 텍스트 - HTML 변환 도구입니다.<br /> Markdown을 사용하면 웹 페이지를 작성하는 HTML 코드를 알지 못해도 읽고 쓰기 쉬운 일반 텍스트 형식으로 작성한 다음 XHTML (또는 HTML)로 변환 할 수 있습니다.<br /> github의 저장소 README.md 파일 이나 위키 사이트 등에서 마크다운 문서를 사용합니다.</p> <h3 id="헤더-쓰기">헤더 쓰기</h3> <p>1~6 까지 지원(h1 ~ h6)</p> <figure class="highlight"><pre><code class="language-md" data-lang="md"><span class="gh"># 이건 `&lt;h1&gt;` 태그와 같습니다.</span> <span class="gu">## 이건 `&lt;h2&gt;` 태그와 같습니다.</span> <span class="gu">### 이건 `&lt;h3&gt;` 태그와 같습니다.</span></code></pre></figure> <p>결과 :</p> <blockquote> <h1 id="이건-h1-태그와-같습니다">이건 <code class="language-plaintext highlighter-rouge">&lt;h1&gt;</code> 태그와 같습니다.</h1> <h2 id="이건-h2-태그와-같습니다">이건 <code class="language-plaintext highlighter-rouge">&lt;h2&gt;</code> 태그와 같습니다.</h2> <h3 id="이건-h3-태그와-같습니다">이건 <code class="language-plaintext highlighter-rouge">&lt;h3&gt;</code> 태그와 같습니다.</h3> </blockquote> <hr /> <h3 id="개행">개행</h3> <p>마크다운에서는 단순히 엔터를 하면 줄바꿈이 되지 않습니다.<br /> 공백(스페이스바)이나 개행(엔터)을 두번이상 하여 줄바꿈을 합니다.</p> <figure class="highlight"><pre><code class="language-md" data-lang="md">문장 뒤에 스페이스바 2번 이상 띄운 후 엔터를 하면 한줄 내려간다. 문장 쓴 후 엔터 2번 이상 하면 문단이 나눠진다. 문장 뒤에 그냥 엔터를 하면 개행이 안된다. 이 문장은 위 문장에 붙어서 나온다.</code></pre></figure> <p>결과 :</p> <blockquote> <p>문장 뒤에 스페이스바 2번 이상 띄운 후 엔터를 하면 한줄 내려간다.<br /> 문장 쓴 후 엔터를 2번 이상 하면 문단이 나눠진다.</p> <p>문장 뒤에 그냥 엔터를 하면 개행이 안된다. 이 문장은 위 문장에 붙어서 나온다.</p> </blockquote> <hr /> <h3 id="문자-강조하기">문자 강조하기</h3> <p>글자 기울여쓰기(italic)는 ‘*‘이나 ‘_‘을 문장 앞뒤에 넣어 사용합니다.<br /> 굵은글씨(bold)는 ‘**‘이나 ‘__‘을 문장 앞뒤에 넣어 사용합니다.</p> <figure class="highlight"><pre><code class="language-md" data-lang="md"><span class="ge">*기울여진 글씨*</span> <span class="ge">_이것도 기울여진다_</span> <span class="gs">**굵은 글씨**</span> <span class="gs">__이것도 굵게쓰기__</span> <span class="gs">***굵고 기울여진 글씨**</span><span class="err">*</span> <span class="gs">___이것도 굵고 기울여진 글씨__</span>_</code></pre></figure> <p>결과 :</p> <blockquote> <p><em>기울여진 글씨</em><br /> <em>이것도 기울여진다</em></p> <p><strong>굵은 글씨</strong><br /> <strong>이것도 굵게쓰기</strong></p> <p><strong><em>굵고 기울여진 글씨</em></strong><br /> <em><strong>이것도 굵고 기울여진 글씨</strong></em></p> </blockquote> <hr /> <h3 id="인용구blockquote-쓰기">인용구(BlockQuote) 쓰기</h3> <p>이메일에서 사용하는 <code class="language-plaintext highlighter-rouge">&gt;</code> 블럭인용문자를 이용한다.</p> <figure class="highlight"><pre><code class="language-md" data-lang="md"><span class="gt">&gt; 첫번째 인용구</span> <span class="gt">&gt;&gt; 두번째 인용구</span></code></pre></figure> <p>결과 :</p> <blockquote> <p>첫번째 인용구</p> <blockquote> <p>두번째 인용구</p> </blockquote> </blockquote> <hr /> <h3 id="리스트-쓰기">리스트 쓰기</h3> <figure class="highlight"><pre><code class="language-md" data-lang="md"><span class="p">1.</span> 하나 <span class="p">2.</span> 둘 <span class="p"> 1.</span> 둘에 하나 <span class="p"> *</span> 1단계 <span class="p"> -</span> 2단계 <span class="p"> +</span> 3단계 <span class="p">-</span> 1단계 <span class="p">+</span> 1단계</code></pre></figure> <p>결과 :</p> <blockquote> <ol> <li>하나</li> <li>둘 <ol> <li>둘에 하나</li> </ol> </li> </ol> <ul> <li>1단계 <ul> <li>2단계 <ul> <li>3단계</li> </ul> </li> </ul> </li> <li>1단계</li> <li>1단계</li> </ul> </blockquote> <hr /> <h3 id="구분선-만들기">구분선 만들기</h3> <p>구분선을 그리고 싶으면 -, *, _ 를 3개 이상 입력을 합니다. 이 때 “- - -“와 같이 중간에 공백을 넣어도 상관없습니다.</p> <figure class="highlight"><pre><code class="language-md" data-lang="md"><span class="p">- - -</span> <span class="gs">____</span><span class="ge">__</span>_ <span class="p">*****</span></code></pre></figure> <p>결과 :</p> <blockquote> <hr /> <hr /> <hr /> </blockquote> <h3 id="링크">링크</h3> <figure class="highlight"><pre><code class="language-md" data-lang="md">링크: <span class="p">[</span><span class="nv">Google</span><span class="p">](</span><span class="sx">https://google.com</span> <span class="nn">"마우스 올리면 나오는 글자"</span><span class="p">)</span> 새창 링크: <span class="p">[</span><span class="nv">Google</span><span class="p">](</span><span class="sx">https://google.com</span> <span class="nn">"alt text"</span><span class="p">)</span>{:target="_blank"} </code></pre></figure> <p>결과 :</p> <blockquote> <p>링크: <a href="https://google.com" title="마우스 올리면 나오는 글자">Google</a><br /> 새창 링크: <a href="https://google.com" title="alt text" target="_blank">Google</a></p> </blockquote> <hr /> <h3 id="이미지-넣기">이미지 넣기</h3> <figure class="highlight"><pre><code class="language-md" data-lang="md"><span class="p">-</span> !<span class="p">[</span><span class="nv">마우스 올리면 나오는 글자</span><span class="p">](</span><span class="sx">https://wepplication.github.io/assets/img/image.png</span> <span class="p">)</span> <span class="p">-</span> !<span class="p">[</span><span class="nv">alt text</span><span class="p">](</span><span class="sx">http://username.github.io/assets/img/image.png</span><span class="p">)</span> <span class="p">-</span> !<span class="p">[</span><span class="nv">Image Alt 텍스트</span><span class="p">](</span><span class="sx">/assets/img/image.png</span><span class="p">)</span> <span class="p">-</span> !<span class="p">[</span><span class="nv">Image Alt 텍스트</span><span class="p">](</span><span class="sx">/assets/img/image.png</span><span class="p">)</span></code></pre></figure> <hr /> <h3 id="표-삽입하기">표 삽입하기</h3> <p>|(vertical bar) 와 -(hyphen/dash)을 이용해서 테이블을 생성할 수 있습니다.<br /> :(Colons)기호를 이용하여 테이블 내용을 정렬할 수 있습니다.</p> <figure class="highlight"><pre><code class="language-md" data-lang="md">| Header One | Header Two | Header Three | Header Four | | ---------- | :--------- | :----------: | ----------: | | Default | Left | Center | Right |</code></pre></figure> <p>결과 :</p> <blockquote> <table> <thead> <tr> <th>Header One</th> <th style="text-align: left">Header Two</th> <th style="text-align: center">Header Three</th> <th style="text-align: right">Header Four</th> </tr> </thead> <tbody> <tr> <td>Default</td> <td style="text-align: left">Left</td> <td style="text-align: center">Center</td> <td style="text-align: right">Right</td> </tr> </tbody> </table> </blockquote> <p><a href="http://www.tablesgenerator.com/markdown_tables" target="_blank">markdown table generator</a> 이 사이트를 통해 테이블 마크다운을 생성할 수 도 있습니다.</p> <hr /> <h3 id="특수기호-쓰기">특수기호 쓰기</h3> <p>마크다운에서 사용하는 예약어 같은 특수문자를 사용하려면 HTML코드를 이용하여 사용 할 수 있습니다.</p> <figure class="highlight"><pre><code class="language-text" data-lang="text">"(&amp;quot;) #(&amp;#35;) %(&amp;#37;) &amp;(&amp;amp;) '(&amp;#39;) *(&amp;#42;) &lt;(&amp;lt;) &gt;(&amp;gt;) `(&amp;#96;) " "(공백)(&amp;nbsp;)</code></pre></figure> <p>HTML 코드로 입력하시면 마크다운 문법을 무시하고 특수문자로 입력됩니다.<br /> <a href="http://www.umsiko.co.za/links/specchar.html" target="_blank">http://www.umsiko.co.za/links/specchar.html</a> 에서 HTML 코드를 찾아볼 수 있습니다.</p> <hr /> <h3 id="인라인-코드inline-code-쓰기">인라인 코드(inline code) 쓰기</h3> <p>코드의 앞뒤에 ‘(키보드 물결 표시 자판)을 사용하며 짧은 코드를 쓸 때 유용합니다.</p> <figure class="highlight"><pre><code class="language-md" data-lang="md">태그가 표현된다 : <span class="sb">`&lt;span&gt;hello&lt;/span&gt;`</span> 태그가 사라진다 : <span class="nt">&lt;span&gt;</span>hello<span class="nt">&lt;/span&gt;</span> </code></pre></figure> <p>결과 :</p> <blockquote> <p>태그가 표현된다 : <code class="language-plaintext highlighter-rouge">&lt;span&gt;hello&lt;/span&gt;</code><br /> 태그가 사라진다 : <span>hello</span></p> </blockquote> <hr /> <h3 id="여러줄-코드code-block-쓰기">여러줄 코드(code block) 쓰기</h3> <p>특정 언어를 지정하여 코드를 하이라이팅 할 경우는 코드 앞 뒤에 ```나 ~~~ 를 사용합니다.</p> <figure class="highlight"><pre><code class="language-md" data-lang="md"><span class="p">```</span><span class="nl">python </span><span class="n">x</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">x</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> <span class="c1"># indented four spaces </span> <span class="k">print</span><span class="p">(</span><span class="s">"x is 1."</span><span class="p">)</span> <span class="p">```</span></code></pre></figure> <p>결과 :</p> <blockquote> <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">x</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">x</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> <span class="c1"># indented four spaces </span> <span class="k">print</span><span class="p">(</span><span class="s">"x is 1."</span><span class="p">)</span> </code></pre></div> </div> </blockquote> <p>Jekyll 에는 Rouge 를 활용한 코드 구문 강조가 기본적으로 포함되어 있으며, 포스트에 코드 내용을 삽입하는 것 또한 간단합니다. 다음과 같이 전용 Liquid 태그를 사용하기만 하면 됩니다.</p> <p>Rouge를 이용하면 블로그에 코드를 붙여넣을 때 간단하게 syntax highlighting 기능을 이용할 수 있습니다. Jekyll은 syntax highlighting기능으로 Pygments도 지원했었는데 Jekyll 3(2016년 02월)부터 Pygments를 더이상 지원하지 않습니다.</p> <p>highlight 시작 태그 뒷부분에 c, java, javascript, python, ruby, go, html, css, shell 등의 언어 코드를 넣어 해당 언어에 맞게 하이라이팅합니다.<br /> 지원 리스트 보기 : <a href="https://github.com/jneen/rouge/wiki/List-of-supported-languages-and-lexers" target="_blank">Rouge 지원 언어 리스트</a></p> <figure class="highlight"><pre><code class="language-md" data-lang="md">{% highlight ruby %} def show @widget = Widget(params[:id]) respond_to do |format| format.html # show.html.erb format.json { render json: @widget } end end {% endhighlight %}</code></pre></figure> <p>결과 :</p> <figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="k">def</span> <span class="nf">show</span> <span class="vi">@widget</span> <span class="o">=</span> <span class="no">Widget</span><span class="p">(</span><span class="n">params</span><span class="p">[</span><span class="ss">:id</span><span class="p">])</span> <span class="n">respond_to</span> <span class="k">do</span> <span class="o">|</span><span class="nb">format</span><span class="o">|</span> <span class="nb">format</span><span class="p">.</span><span class="nf">html</span> <span class="c1"># show.html.erb</span> <span class="nb">format</span><span class="p">.</span><span class="nf">json</span> <span class="p">{</span> <span class="n">render</span> <span class="ss">json: </span><span class="vi">@widget</span> <span class="p">}</span> <span class="k">end</span> <span class="k">end</span></code></pre></figure> <p>highlight 시작 태그 뒷부분에 linenos 를 추가하여 코드 앞에 줄 번호를 표시할 수도 있습니다.</p> <hr /> <h2 id="다른-정적-사이트-생성기">다른 정적 사이트 생성기</h2> <p>많은 정적 사이트 생성기 들 중 대표적인 생성기는 아래와 같다.</p> <blockquote> <ul> <li><a href="https://nextjs.org" target="_blank">Next.js</a></li> <li><a href="https://www.gatsbyjs.org" target="_blank">Gatsby</a></li> <li><a href="https://gohugo.io" target="_blank">Hugo</a></li> <li><a href="https://hexo.io" target="_blank">Hexo</a></li> </ul> </blockquote> <h2 id="요약">요약</h2> <p><a href="https://jekyllrb-ko.github.io/docs/installation/" target="_blank">[루비 설치]</a></p> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># Jekyll과 Bundler 설치</span> <span class="nv">$ </span>gem <span class="nb">install </span>bundler jekyll</code></pre></figure> <p>깃허브에 “<strong><em>사용자이름</em></strong>.github.io”로 GitHub 저장소 생성</p> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># 마음에 드는 테마를 로컬 저장소로 clone</span> <span class="nv">$ </span>git clone 깃허브주소 프로젝트폴더명 <span class="c"># ex) git clone https://github.com/Phlow/feeling-responsive.git 사용자이름.github.io</span> <span class="nv">$ </span><span class="nb">cd </span>사용자이름.github.io <span class="c"># clone한 프로젝트의 git 삭제</span> <span class="nv">$ </span><span class="nb">rm</span> <span class="nt">-rf</span> .git <span class="c"># gem 라이브러리 설치</span> <span class="nv">$ </span>bundle <span class="nb">install</span> <span class="c"># jekyll 서버 실행</span> <span class="nv">$ </span>bundle <span class="nb">exec </span>jekyll serve</code></pre></figure> <p>clone한 테마 프로젝트에 _config.yml 등의 파일들을 나에게 맞게 수정을 한 후 내 저장소에 PUSH 하기</p> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nv">$ </span>git init <span class="nv">$ </span>git add <span class="nb">.</span> <span class="nv">$ </span>git commit <span class="nt">-m</span> <span class="s2">"Initial commit"</span> <span class="c"># 깃 원격저장소를 위에서 만든 저장소로 설정</span> <span class="nv">$ </span>git remote add origin [email protected]:사용자이름/사용자이름.github.io.git <span class="c"># 원격 저장소에 PUSH</span> <span class="nv">$ </span>git push <span class="nt">-u</span> origin master</code></pre></figure> <p>일정 시간이 지난 후<br /> “https://<strong><em>사용자이름</em></strong>.github.io/” 으로 사이트 접속</p> <hr /> <h2 id="참고자료">참고자료</h2> <p>Ruby : <a href="https://www.ruby-lang.org/en/downloads/" target="_blank">https://www.ruby-lang.org/en/downloads/</a></p> <p>RubyInstaller : <a href="https://rubyinstaller.org/downloads/" target="_blank">https://rubyinstaller.org/downloads/</a></p> <p>Jekyll : <a href="https://jekyllrb.com/" target="_blank">https://jekyllrb.com/</a></p> <p>Jekyll Documentation : <a href="https://jekyllrb.com/docs/" target="_blank">https://jekyllrb.com/docs/</a></p> <p>Jekyll Documentation 한글 번역 : <a href="https://jekyllrb-ko.github.io/" target="_blank">https://jekyllrb-ko.github.io/</a></p> <p>Jekyll Theme : <a href="http://jekyllthemes.org/" target="_blank">http://jekyllthemes.org/</a></p> <p>Markdown : <a href="https://daringfireball.net/projects/markdown/" target="_blank">https://daringfireball.net/projects/markdown/</a></p> <p>Liquid : <a href="https://shopify.github.io/liquid/" target="_blank">https://shopify.github.io/liquid/</a></p> <p>정적 사이트 생성기 리스트 : <a href="https://staticsitegenerators.net/" target="_blank">https://staticsitegenerators.net/</a></p> <p>Rouge Wiki : <a href="https://github.com/jneen/rouge/wiki/List-of-supported-languages-and-lexers" target="_blank">https://github.com/jneen/rouge/wiki/List-of-supported-languages-and-lexers</a></p> <h3 class="t60" id="관련글">관련글</h3> <ul class="side-nav"> <li><a href="https://wepplication.github.io/programming/analytics/">애널리틱스 &middot; <strong>애널리틱스를 이용해서 웹사이트 분석하기</strong></a></li> <li><a href="https://wepplication.github.io/programming/seo/">SEO &middot; <strong>검색엔진최적화(Search Engine Optimization, SEO)</strong></a></li> <li><a href="https://wepplication.github.io/programming/goorm-ide/">Cloud IDE &middot; <strong>구름 IDE로 Jekyll 클라우드 개발환경 세팅하기</strong></a></li> <li><a href="https://wepplication.github.io/programming/github-pages/">정적 웹호스팅 &middot; <strong>GitHub Pages를 이용한 무료 홈페이지 만들기</strong></a></li> <li class="text-right"><a href="https://wepplication.github.io/blog/archive/"><strong>More ›</strong></a></li> </ul> https://wepplication.github.io/programming/jekyll/ GitHub Pages를 이용한 무료 홈페이지 만들기 https://wepplication.github.io/programming/github-pages/ Tue, 02 Oct 2018 00:00:00 +0000 <!--more--> <h2 id="github-pages란">Github Pages란?</h2> <p>깃허브(Git Hub)는 깃(소프트웨어 개발에서 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템)을 좀 더 편하게 이용하도록 만든 깃 서버 웹 호스팅 서비스이고 오픈소스 소프트웨어의 중심지(hub) 역할을 하면서 오픈소스 프로젝트가 널리 퍼지는 데 크게 기여하고 있는 서비스입니다.<br /> 깃허브 페이지(GitHub Pages)는 이러한 깃허브에서 제공하는 정적 사이트 호스팅 서비스로 일반적인 HTML 콘텐츠를 지원하는 것 외에도 인기있는 정적 사이트 생성기인 Jekyll을 지원합니다.</p> <h2 id="github-가입하기">Github 가입하기</h2> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2018/10/github-pages/github-signup.png" alt="Github 가입창" /></td> </tr> <tr> <td><a href="http://github.com" target="_blank">http://github.com</a> 으로 접속하여 Username, Email, Password를 입력 후 Sign up for GitHub를 눌러 가입 한 후 이메일 인증을 거치면 가입이 끝이납니다.</td> </tr> </tbody> </table> <p>여기서 사용자이름(Username)은 이후 생성되는 깃허브 페이지 사이트의 도메인이 됩니다. (<strong><em>사용자이름</em></strong>.github.io)</p> <h2 id="github-저장소-생성하기">GitHub 저장소 생성하기</h2> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2018/10/github-pages/github-menu.png" alt="저장소 생성 메뉴" /></td> </tr> <tr> <td>우측 상단의 “+” 아이콘을 누른 후 “New repository”를 누릅니다.</td> </tr> </tbody> </table> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2018/10/github-pages/github-createrepo.png" alt="저장소 생성 폼" /></td> </tr> <tr> <td>Repository name에 원하는 저장소 이름을 누르고 Create repository 버튼을 눌러줍니다.</td> </tr> </tbody> </table> <blockquote> <p>특정 몇 명만 코드에 접근할 수 있는 프라이빗 저장소는 유료이며 무료로 만들경우 소스 코드가 모두 공개되니 개인정보가 보이지 않도록 주의 해야합니다.</p> </blockquote> <h2 id="로컬-저장소에-깃허브-저장소-복제하기">로컬 저장소에 깃허브 저장소 복제하기</h2> <p>프로젝트를 저장할 폴더로 이동하여 새 저장소를 복제하기</p> <figure class="highlight"><pre><code class="language-sh" data-lang="sh">git clone [email protected]:사용자이름/저장소이름.git</code></pre></figure> <p>이제 해당 프로젝트 폴더에 index.html 파일을 추가하여 별도의 서버 없이 포트폴리오 사이트 같은 간단한 사이트를 만들 수 있다.</p> <blockquote> <p>로컬 저장소를 <a href="https://c9.io/" target="_blank">Cloud9</a>, <a href="https://ide.goorm.io/" target="_blank">구름IDE</a> 같은 클라우드 개발툴을 이용하면 특정 컴퓨터가 아닌 어디서든 사용할 수 있다.</p> </blockquote> <h2 id="깃허브-저장소-push">깃허브 저장소 PUSH</h2> <p>변경사항 깃허브 저장소에 push하기</p> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nv">$ </span>git add <span class="nb">.</span> <span class="nv">$ </span>git commit <span class="nt">-m</span> <span class="s2">"first commit"</span> <span class="nv">$ </span>git push</code></pre></figure> <blockquote> <p>브라우저로 “https://github.com/<strong><em>사용자이름</em></strong>/<strong><em>저장소이름</em></strong>” 에 접속을 해보면 깃허브 저장소를 볼 수 있다.</p> </blockquote> <h2 id="github-pages-사용하기">Github Pages 사용하기</h2> <p>브라우저로 “https://github.com/<strong><em>사용자이름</em></strong>/<strong><em>저장소이름</em></strong>/settings” 에 접속을 하면 저장소 설정을 하실 수 있습니다.</p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2018/10/github-pages/github-pagesetting.png" alt="깃허브 페이지 설정" /></td> </tr> <tr> <td>하단에 있는 GitHub Pages &gt; Source에 None으로 된 선택창을 master branch로 변경 후 Save</td> </tr> </tbody> </table> <p>깃 페이지 소스 설정을 하면 저장소에 올린 파일들로 정적 사이트를 생성합니다.<br /> https://<strong><em>사용자이름</em></strong>.github.io/<strong><em>저장소이름</em></strong>/ 으로 접속하면 사이트를 볼 수 있습니다.</p> <p><strong>※ 파일 위치에 따른 URL</strong></p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2018/10/github-pages/github-filelist.png" alt="파일 목록" /></td> </tr> </tbody> </table> <p>/index.html 파일은 https://<strong><em>사용자이름</em></strong>.github.io/<strong><em>저장소이름</em></strong>/<br /> /aaa/index.html 파일은 https://<strong><em>사용자이름</em></strong>.github.io/<strong><em>저장소이름</em></strong>/aaa<br /> /bbb.html 파일은 https://<strong><em>사용자이름</em></strong>.github.io/<strong><em>저장소이름</em></strong>/bbb</p> <blockquote> <p>git push 후 바로 반영이 되지 않고 어느정도 시간이 지나야 반영된다.</p> </blockquote> <h2 id="github-pages-url-뒤에-저장소-이름없이-생성하기">GitHub Pages URL 뒤에 저장소 이름없이 생성하기</h2> <p>repository생성후 page를 활성화하면<br /> “https://<strong><em>사용자이름</em></strong>.github.io/<strong><em>저장소이름</em></strong>/” 으로 사이트가 생성된다.<br /> “https://<strong><em>사용자이름</em></strong>.github.io/” 주소로 바로 연결되게 하고 싶으면 깃허브 저장소 생성 시 Repository name에 “<strong><em>사용자이름</em></strong>.github.io”로 생성을 하면 된다.</p> <blockquote> <p>“<strong><em>사용자이름</em></strong>.github.io”로 저장소를 생성할 경우 별도로 깃허브 페이지 활성 설정을 하지 않아도 사이트가 생성된다.</p> </blockquote> <h2 id="github-pages-의-제한-사항">GitHub Pages 의 제한 사항</h2> <ul> <li>GitHub Pages source repositories have a recommended limit of 1GB .</li> <li>Published GitHub Pages sites may be no larger than 1 GB.</li> <li>GitHub Pages sites have a soft bandwidth limit of 100GB per month.</li> <li>GitHub Pages sites have a soft limit of 10 builds per hour. <blockquote> <p>GitHub Pages 소스 저장소의 권장 제한은 1GB입니다.<br /> 게시 된 GitHub 페이지 사이트는 1GB를 초과 할 수 없습니다.<br /> GitHub 페이지 사이트의 대역폭 제한은 한 달에 100GB입니다.<br /> GitHub 페이지 사이트의 builds 제한은 시간당 10회 입니다.</p> </blockquote> </li> </ul> <h2 id="기본적인-git-명령어">기본적인 Git 명령어</h2> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># git 사용자 정보 설정</span> git config user.name <span class="s2">"사용자 이름"</span> git config user.email 이메일주소</code></pre></figure> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># 현재 디렉토리에 git 저장소를 생성</span> git init</code></pre></figure> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># 수정한 파일들을 스테이징 영역에 올리기</span> git add .</code></pre></figure> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># 스테이징 영역에 올라가 있는 파일들을 커밋</span> git commit <span class="nt">-m</span> <span class="s2">"변경된 메시지 내용을 입력"</span></code></pre></figure> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># 원격저장소에 푸시 (-u는 원격저장소로부터 업데이트를 받은 후 push를 한다는 의미, origin과 master는 각각 리모트 저장소와 브랜치를 의미합니다.)</span> git push <span class="nt">-u</span> origin master <span class="c"># 강제 push(덮어쓰기)</span> git push <span class="nt">-f</span></code></pre></figure> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># 원격저장소를 복제하여 저장소를 생성</span> git clone 저장소주소</code></pre></figure> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># 새로운 원격 저장소를 추가</span> git remote add 이름 저장소주소</code></pre></figure> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># 원격 저장소를 제거</span> git remote <span class="nb">rm </span>이름</code></pre></figure> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># 무시할 파일을 .gitignore 에 추가하기 전에 git push 했을 경우</span> <span class="c"># 원격 저장소에 있는 .gitignore 파일들 제거하기</span> <span class="nv">$ </span>git <span class="nb">rm</span> <span class="nt">-r</span> <span class="nt">--cached</span> <span class="nb">.</span> <span class="nv">$ </span>git add <span class="nb">.</span> <span class="nv">$ </span>git commit <span class="nt">-m</span> <span class="s2">"Apply .gitignore"</span> <span class="nv">$ </span>git push</code></pre></figure> <h2 id="github-저장소-삭제하기">GitHub 저장소 삭제하기</h2> <p>브라우저로 “https://github.com/<strong><em>사용자이름</em></strong>/<strong><em>저장소이름</em></strong>/settings” 에 접속을 해서<br /> 하단에 있는 Danger Zone &gt; Delete this repository &gt; “Delete this repository” 버튼을 누른 후<br /> 팝업창에 저장소이름을 입력 후 “I understand the consequences, delete this repository” 버튼을 누른다.</p> <h2 id="tip--git-설치-없이-사용하기">TIP : git 설치 없이 사용하기</h2> <p>깃허브 저장소를 생성하면 깃허브 주소와 함께<br /> “We recommend every repository include a README, LICENSE, and .gitignore.” 라는 메세지를 볼 수 있다.<br /> 여기서 README 버튼을 클릭하면 텍스트 입력창이 나오는데</p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2018/10/github-pages/github_newrepo.png" alt="깃허브 저장소" /></td> </tr> <tr> <td>임의로 내용을 입력 후 하단에 “Commit new file”을 누른다.</td> </tr> </tbody> </table> <p>여기에 입력을 하여 저장소에 README 파일을 추가 할 수 있다.</p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2018/10/github-pages/github_createfile.png" alt="깃허브 파일추가" /></td> </tr> </tbody> </table> <p>이 후 “Create new file” 버튼으로 직접 파일 내용을 입력해 생성하거나 “Upload files” 버튼으로 파일을 업로드 할 수도 있다.</p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2018/10/github-pages/github_writefile.png" alt="깃허브 파일쓰기" /></td> </tr> </tbody> </table> <p>파일 내용 입력 화면의 상단 파일명 입력칸에 “폴더명/파일명.확장자”를 입력하여 폴더를 생성할 수도 있다.</p> <table> <tbody> <tr> <td><img src="https://wepplication.github.io/images/post/2018/10/github-pages/github_modfile.png" alt="깃허브 파일수정" /></td> </tr> </tbody> </table> <p>파일을 수정할 때는 깃허브 페이지에서 파일 내용을 조회 한 뒤 우측 상단 연필 모양의 아이콘을 눌러 수정할 수 있다.</p> <h2 id="유사-서비스">유사 서비스</h2> <p>깃허브 페이지와 같이 무료로 정적 웹 사이트 호스팅을 제공하는 서비스들이 많이 있다.</p> <blockquote> <ul> <li><a href="https://about.gitlab.com/stages-devops-lifecycle/pages/" target="_blank">Gitlab Pages</a></li> <li><a href="https://www.netlify.com" target="_blank">Netlify</a></li> <li><a href="https://neocities.org" target="_blank">Neocities</a></li> </ul> </blockquote> <h2 id="요약">요약</h2> <p>GitHub 저장소 생성</p> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># 로컬 저장소로 클론</span> git clone [email protected]:사용자이름/저장소이름.git</code></pre></figure> <p>로컬 저장소에 index.html 등(HTML, CSS, JS) 파일추가</p> <figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="c"># 원격 저장소에 PUSH</span> git add <span class="nb">.</span> git commit <span class="nt">-m</span> <span class="s2">"commit comment"</span> git push</code></pre></figure> <p>“https://github.com/<strong><em>사용자이름</em></strong>/<strong><em>저장소이름</em></strong>/settings” 에 접속<br /> GitHub Pages &gt; Source 항목에서 master branch로 선택 후 Save</p> <p>일정 시간이 지난 후<br /> “https://<strong><em>사용자이름</em></strong>.github.io/<strong><em>저장소이름</em></strong>/” 으로 사이트 접속</p> <p>※ 저장소 이름을 “<strong><em>사용자이름</em></strong>.github.io” 으로 생성했을 경우 “https://<strong><em>사용자이름</em></strong>.github.io/” 으로 사이트 접속</p> <h2 id="참고-자료">참고 자료</h2> <p>Git : <a href="https://git-scm.com/" target="_blank">https://git-scm.com/</a></p> <p>GitHub : <a href="https://github.com/" target="_blank">https://github.com/</a></p> <p>GitHub Help : <a href="https://help.github.com/" target="_blank">https://help.github.com/</a></p> <p>GitHub Pages : <a href="https://pages.github.com/" target="_blank">https://pages.github.com/</a></p> <h3 class="t60" id="관련글">관련글</h3> <ul class="side-nav"> <li><a href="https://wepplication.github.io/programming/analytics/">애널리틱스 &middot; <strong>애널리틱스를 이용해서 웹사이트 분석하기</strong></a></li> <li><a href="https://wepplication.github.io/programming/seo/">SEO &middot; <strong>검색엔진최적화(Search Engine Optimization, SEO)</strong></a></li> <li><a href="https://wepplication.github.io/programming/goorm-ide/">Cloud IDE &middot; <strong>구름 IDE로 Jekyll 클라우드 개발환경 세팅하기</strong></a></li> <li><a href="https://wepplication.github.io/programming/jekyll/">정적 사이트 생성기 &middot; <strong>Jekyll을 이용한 무료 블로그 만들기</strong></a></li> <li class="text-right"><a href="https://wepplication.github.io/blog/archive/"><strong>More ›</strong></a></li> </ul> https://wepplication.github.io/programming/github-pages/