<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Dev Krystal</title>
        <link>https://velog.io/</link>
        <description>🚀Be an active developer</description>
        <lastBuildDate>Tue, 26 Sep 2023 23:46:15 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>Dev Krystal</title>
            <url>https://images.velog.io/images/krystal_95/profile/0856085c-5701-4cae-9622-c5f74da284f8/KakaoTalk_20220124_185456953.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. Dev Krystal. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/krystal_95" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[React-Native] 배포하기]]></title>
            <link>https://velog.io/@krystal_95/React-Native-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@krystal_95/React-Native-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0</guid>
            <pubDate>Tue, 26 Sep 2023 23:46:15 GMT</pubDate>
            <description><![CDATA[<p><a href="https://ssilook.tistory.com/entry/React-Native-RN-Android-Studio%EB%A1%9C-APK-%EC%B6%94%EC%B6%9C%ED%95%98%EA%B8%B0">https://ssilook.tistory.com/entry/React-Native-RN-Android-Studio%EB%A1%9C-APK-%EC%B6%94%EC%B6%9C%ED%95%98%EA%B8%B0</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[React] react-router-dom v6 ]]></title>
            <link>https://velog.io/@krystal_95/React-react-router-dom-v6</link>
            <guid>https://velog.io/@krystal_95/React-react-router-dom-v6</guid>
            <pubDate>Fri, 17 Mar 2023 10:32:52 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@soryeongk/ReactRouterDomV6">https://velog.io/@soryeongk/ReactRouterDomV6</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[React] Create React App으로 리액트 프로젝트 시작하기]]></title>
            <link>https://velog.io/@krystal_95/React-Create-React-App%EC%9C%BC%EB%A1%9C-%EB%A6%AC%EC%95%A1%ED%8A%B8-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@krystal_95/React-Create-React-App%EC%9C%BC%EB%A1%9C-%EB%A6%AC%EC%95%A1%ED%8A%B8-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0</guid>
            <pubDate>Fri, 17 Mar 2023 08:38:55 GMT</pubDate>
            <description><![CDATA[<h2 id="1-create-react-app">1. create react app</h2>
<pre><code>npm install -g create-react-app
create-react-app flit
npm install -g yarn</code></pre><h2 id="2-git-연결">2. git 연결</h2>
<pre><code>git remote add origin https://github.com/IILLLLII/flit.git
git push --set-upstream origin master</code></pre><h2 id="3-chakra-ui-설치">3. Chakra UI 설치</h2>
<ol>
<li>Chakra UI 설치<pre><code>yarn add @chakra-ui/react @emotion/react @emotion/styled framer-motion</code></pre></li>
<li>App을 ChackraProvider로 감싸주기<pre><code class="language-javascript">import { ChakraProvider } from &#39;@chakra-ui/react&#39;;
</code></pre>
</li>
</ol>
<p>const root = ReactDOM.createRoot(document.getElementById(&#39;root&#39;));
root.render(
  <ChakraProvider>
    &lt;React.StrictMode&gt;
      <App />
    &lt;/React.StrictMode&gt;
  </ChakraProvider>
);</p>
<pre><code>
## 4. client 폴더 생성 및 package.json 생성

1. 프로젝트 폴더 내에 client 폴더를 생성하고 모든  파일을 이동시킨다.

2. package.json 파일을 생성하고 다음과 같이 입력한다.

``` json
{
    &quot;name&quot;: &quot;flit&quot;,
    &quot;version&quot;: &quot;1.0.0&quot;,
    &quot;scripts&quot;: {
        &quot;client&quot;: &quot;cd client &amp;&amp; yarn start&quot;,
        &quot;server&quot;: &quot;nodemon server.js&quot;,
        &quot;dev&quot;: &quot;concurrently --kill-others-on-fail \&quot;yarn server\&quot; \&quot;yarn client\&quot;&quot;
    },
    &quot;dependencies&quot;: {
        &quot;body-parser&quot;: &quot;^1.18.3&quot;,
        &quot;express&quot;: &quot;^4.18.2&quot;,
        &quot;nodemon&quot;: &quot;^2.0.21&quot;
    },
    &quot;devDependencies&quot;: {
        &quot;concurrently&quot;: &quot;^7.6.0&quot;
    }
}</code></pre><p>[22.03.17 추가] 다음과 같이 설치하는 방법도 괜찮을것 같다.</p>
<pre><code>npm install nodemon body-parser express </code></pre><ol start="3">
<li>server 구동은 nodemon server.js로 실행한다. server.js 파일을 생성하자<pre><code class="language-javascript">const express = require(&#39;express&#39;);
const bodyParser = require(&#39;body-parser&#39;);
const app = express();
const port = process.env.port || 5000;
</code></pre>
</li>
</ol>
<p>app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));</p>
<p>app.get(&#39;/api/hello&#39;, (req, res) =&gt; {
    res.send({message:&#39;Hello Express!!&#39;})
});</p>
<p>app.listen(port, () =&gt; console.log(<code>Listening in port ${port}</code>));</p>
<pre><code>
### 5. nodemon으로 서버 실행</code></pre><p>npm install -g nodemon</p>
<p>// node server.js 확인
node server.js
Listening in port 5000</p>
<p>// server 실행 방법
yarn server</p>
<p>// app &amp; sever 구동 방법
yarn dev</p>
<pre><code></code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[Qt] Qt Quick 프로젝트 배포]]></title>
            <link>https://velog.io/@krystal_95/Qt-Qt-Quick-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EB%B0%B0%ED%8F%AC</link>
            <guid>https://velog.io/@krystal_95/Qt-Qt-Quick-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EB%B0%B0%ED%8F%AC</guid>
            <pubDate>Sat, 11 Feb 2023 23:22:23 GMT</pubDate>
            <description><![CDATA[<ol>
<li><p>Release 모드로 빌드</p>
</li>
<li><p>실행 파일만 복사해서 빈 폴더에 옮긴다.</p>
</li>
<li><p>Qt 6.4.2(MinGW 11.2.0 64-bit) 실행</p>
<pre><code class="language-bash">cd [실행파일이 있는 경로]
windeployqt --qmldir [qml 경로] [실행파일]</code></pre>
</li>
<li><p>실행파일 만들기</p>
</li>
</ol>
<pre><code>binarycreator.exe -c config\config.xml -p packages setup.exe</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[react-native-nmap 설치]]></title>
            <link>https://velog.io/@krystal_95/react-native-nmap-%EC%84%A4%EC%B9%98</link>
            <guid>https://velog.io/@krystal_95/react-native-nmap-%EC%84%A4%EC%B9%98</guid>
            <pubDate>Mon, 16 Jan 2023 13:07:09 GMT</pubDate>
            <description><![CDATA[<h2 id="처음설치">처음설치</h2>
<pre><code>npm install react-native-nmap --save</code></pre><h2 id="dependency-오류-발생시--force로-강제설치">dependency 오류 발생시 -force로 강제설치</h2>
<pre><code>npm install react-native-nmap --save -force
</code></pre><h2 id="ios에서-에러날-build-error">ios에서 에러날 build error</h2>
<pre><code>** BUILD FAILED **


The following build commands failed:
    CompileC /Users/krystal/Library/Developer/Xcode/DerivedData/Flit_customer-hgxxxcoceyxgdsgyoxttyeccnfwe/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-nmap.build/Objects-normal/x86_64/RNNaverMapViewManager.o /Users/krystal/Flit_customer/node_modules/react-native-nmap/ios/reactNativeNMap/RNNaverMapViewManager.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target &#39;react-native-nmap&#39; from project &#39;Pods&#39;)
    CompileC /Users/krystal/Library/Developer/Xcode/DerivedData/Flit_customer-hgxxxcoceyxgdsgyoxttyeccnfwe/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-nmap.build/Objects-normal/x86_64/RNNaverMapView.o /Users/krystal/Flit_customer/node_modules/react-native-nmap/ios/reactNativeNMap/RNNaverMapView.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target &#39;react-native-nmap&#39; from project &#39;Pods&#39;)
(2 failures)
</code></pre><h2 id="해결방안">해결방안</h2>
<p>client/ios/Podfile 파일에
&quot;pod &#39;NMapsMap&#39;,&#39;3.10.1&quot;
NMapsMap 버전 추가</p>
<pre><code>pod &#39;NMapsMap&#39;,&#39;3.10.1&#39;</code></pre><h2 id="git-lfs-설치후-pod-install">git-lfs 설치후 pod install</h2>
<pre><code>$ brew install git-lfs
$ cd 프로젝트
$ git-lfs install

$ cd ios/
$ rm -rf Pods/
$ pod install</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[React Native] Create Project]]></title>
            <link>https://velog.io/@krystal_95/React-Native-Create-Project</link>
            <guid>https://velog.io/@krystal_95/React-Native-Create-Project</guid>
            <pubDate>Tue, 03 Jan 2023 15:38:36 GMT</pubDate>
            <description><![CDATA[<h2 id="1-새-프로젝트-생성">1. 새 프로젝트 생성</h2>
<pre><code class="language-bash">$ react-native init --version 0.68.2 Flit_customer</code></pre>
<blockquote>
<p>최종 버전 
Xcode = 14.1
java = 11.0.8
nvm = 0.33.11
npm = 8.11.0
node = 16.16.0
pod = 1.11.3
react-native-cli : 2.0.1
react-native = 0.68.2
ios simulator = 14.x 16.x
android simulator = 10.x(Q), 13.x(T)</p>
</blockquote>
<h2 id="2-ios-실행">2. iOS 실행</h2>
<pre><code class="language-bash">$ npm start
$ react-native run-ios
$ react-native run-ios --simulator=&quot;iPhone 12&quot;</code></pre>
<h2 id="3-android-실행">3. Android 실행</h2>
<pre><code class="language-bash">$ react-native run-android</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[React Native] Installation]]></title>
            <link>https://velog.io/@krystal_95/React-Native-Installation</link>
            <guid>https://velog.io/@krystal_95/React-Native-Installation</guid>
            <pubDate>Tue, 03 Jan 2023 05:33:10 GMT</pubDate>
            <description><![CDATA[<h2 id="1-nvm-설치">1. nvm 설치</h2>
<p><a href="https://gist.github.com/falsy/8aa42ae311a9adb50e2ca7d8702c9af1#nvmnode-version-manager-quick-start">NVM(Node Version Manager) Quick Start</a>
<a href="https://velog.io/@lieblichoi/Mac%EC%97%90%EC%84%9C-nvm-%EC%84%A4%EC%B9%98-%EB%B0%8F-%ED%99%98%EA%B2%BD-%EB%B3%80%EC%88%98-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0">Mac에서 nvm 설치 및 환경 변수 설정하기</a></p>
<pre><code class="language-bash"># sudo curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

$ brew reinstall nvm
$ nvm --version
0.33.11
$ nvm ls            

-&gt;       system
node -&gt; stable (-&gt; N/A) (default)
iojs -&gt; N/A (default)</code></pre>
<h2 id="2-nodejs-설치">2. node.js 설치</h2>
<blockquote>
<p>nvm으로 여러 버전의 nvm을 설치하여 사용할 수 있다.
node.js 설치 시 npm 자동 설치</p>
</blockquote>
<pre><code class="language-bash">$ nvm install 16.16.0
$ nvm use 16.16.0</code></pre>
<h2 id="3-npm-설치">3. npm 설치</h2>
<pre><code class="language-bash">$ npm --version
6.4.1</code></pre>
<h2 id="4-android-studio-설치">4. Android Studio 설치</h2>
<p><a href="https://developer.android.com/studio">https://developer.android.com/studio</a></p>
<h3 id="sdk-install">SDK Install</h3>
<p>SDK Manager &gt; Android SDK &gt; Android 10.0(Q) 설치</p>
<h3 id="virtual-device-manager">Virtual Device Manager</h3>
<p>Create device</p>
<h3 id=""></h3>
<pre><code class="language-bash">$ nano /Users/krystal/.zshrc</code></pre>
<pre><code>export ANDROID_HOME=/Users/krystal/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools</code></pre><pre><code class="language-bash">$ source ~/.zshrc
$ adb
Android Debug Bridge version 1.0.41
Version 33.0.3-8952118</code></pre>
<h2 id="5-java-설치">5. JAVA 설치</h2>
<p><a href="https://www.oracle.com/kr/java/technologies/javase/jdk11-archive-downloads.html">JDK 11 version 설치</a></p>
<p>jdk-11.0.8 version 설치</p>
<pre><code class="language-bash">$ java --version 
java 11.0.8 2020-07-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.8+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.8+10-LTS, mixed mode)</code></pre>
<h2 id="6-xcode-설치">6. XCode 설치</h2>
<p>App Store에서 XCode Application 설치</p>
<p>XCode &gt; Settings &gt; Locations &gt; Command Line Tolls가 설정 되어있는지 확인</p>
<h2 id="7-visual-studio-code-설치">7. Visual Studio Code 설치</h2>
<h2 id="8-cocoapod-설치">8. CocoaPod 설치</h2>
<pre><code class="language-bash">$ sudo gem install cocoapods -v 1.8.4
$  % pod --version
1.8.4</code></pre>
<h2 id="9react-natice-cli">9.React Natice CLI</h2>
<pre><code class="language-bash">$ npm install -g react-native-cli
$ react-native --version
react-native-cli: 2.0.1
react-native: n/a - not inside a React Native project directory</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[React] react-device-detect]]></title>
            <link>https://velog.io/@krystal_95/React-react-device-detect</link>
            <guid>https://velog.io/@krystal_95/React-react-device-detect</guid>
            <pubDate>Tue, 13 Dec 2022 03:40:16 GMT</pubDate>
            <description><![CDATA[<h3 id="1-패키지-설치">1. 패키지 설치</h3>
<pre><code class="language-bash">npm install react-device-detect --save</code></pre>
<h3 id="2-사용">2. 사용</h3>
<pre><code class="language-javascript">import {BrowserView, MobileView, isBrowser, isMobile} from &quot;react-device-detect&quot;;</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Mac] git 설정]]></title>
            <link>https://velog.io/@krystal_95/Mac-git-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@krystal_95/Mac-git-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Fri, 11 Nov 2022 17:11:02 GMT</pubDate>
            <description><![CDATA[<h3 id="1-homebrew">1. Homebrew</h3>
<p>Install homebrew if you don&#39;t already have it, then:</p>
<pre><code class="language-bash">$ brew install git</code></pre>
<h3 id="2-git-config-설정">2. git config 설정</h3>
<pre><code class="language-bash">$ git config --global user.name &quot;Krystal&quot;
$ git config --global user.email &quot;p.krystal95@gmail.com&quot;
$ git config --list</code></pre>
<h3 id="3-git-환경에-ssh-설치">3. git 환경에 ssh 설치</h3>
<pre><code class="language-bash">$ ssh-keygen
$ cat ~/.ssh/id_rsa.pub
// 공개키복사</code></pre>
<p>github 로그인 후 프로필에 들어가서 <code>Setting</code>.
<code>SSH and GPG Keys</code> 선택 SSH Key 등록</p>
<h3 id="4-clone-시-token-문제">4. clone 시 token 문제</h3>
<p><a href="https://hyeo-noo.tistory.com/184">https://hyeo-noo.tistory.com/184</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Mac] React native 환경 구축하기]]></title>
            <link>https://velog.io/@krystal_95/Mac-React-native-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@krystal_95/Mac-React-native-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0</guid>
            <pubDate>Fri, 11 Nov 2022 12:20:57 GMT</pubDate>
            <description><![CDATA[<h3 id="1-homebrew-설치">1. Homebrew 설치</h3>
<blockquote>
<p>Homebrew는 Mac에서 필요한 애플리케이션이나 개발 환경 등을 설치하는 데 유용하게 쓰인다.</p>
</blockquote>
<pre><code>$ /bin/bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&quot;
$ brew --version</code></pre><h3 id="2-nodejs-설치">2. Node.js 설치</h3>
<blockquote>
<p>React-Native는 JavaScript를 사용하기 때문에, JavaScript의 런타임인 Node.js를 설치해야한다.</p>
</blockquote>
<pre><code class="language-bash">$ brew install node
$ node --version
$ npm --version</code></pre>
<h3 id="3-watchman-설치">3. Watchman 설치</h3>
<blockquote>
<p>Watchman은 특정 폴더나 파일을 감시하여, 변화가 생길 경우 특정 동작을 수행하도록 설정하는 역할을 한다. React-Native에서 소스 코드의 추가, 변경이 발생하면 다시 빌드하기 위해 Watchman을 사용한다.</p>
</blockquote>
<pre><code class="language-bash">$ brew install watchman
$ watchman -v</code></pre>
<h3 id="4-react-native-cli-설치">4. React-Native CLI 설치</h3>
<pre><code class="language-bash">$ npm install -g react-native-cli
$ npx react-native --version</code></pre>
<h3 id="5-xcode-설치">5. XCode 설치</h3>
<blockquote>
<p>React-Native 로 iOS 앱을 빌드하기 위해서는 XCode 를 설치해야한다. 그리고 XCode Command Line Tools도 필요하다. XCode는 Homebrew 가 아니라 App Store에서 설치한다.</p>
</blockquote>
<hr>
<h4 id="참고링크">참고링크</h4>
<p><a href="https://choboit.tistory.com/83">https://choboit.tistory.com/83</a></p>
<h3 id="troble-shooting">Troble Shooting</h3>
<ul>
<li><p>react-script command 오류 발생 시 : <a href="https://velog.io/@soyoungdl/sh-react-scripts-command-not-found-%EB%A6%AC%EC%95%A1%ED%8A%B8">https://velog.io/@soyoungdl/sh-react-scripts-command-not-found-%EB%A6%AC%EC%95%A1%ED%8A%B8</a></p>
</li>
<li><p>npm install 실패 해결 : <a href="https://cocobi.tistory.com/114">https://cocobi.tistory.com/114</a></p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Slate] API Document Tool로 Slate 사용하기]]></title>
            <link>https://velog.io/@krystal_95/Slate-API-Document-Tool%EB%A1%9C-Slate-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@krystal_95/Slate-API-Document-Tool%EB%A1%9C-Slate-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0</guid>
            <pubDate>Thu, 13 Oct 2022 08:02:09 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>하나의 class를 온전히 혼자 맡아서 구현한 이후, 다른 팀원들에게 설명을 하거나 코드 정리가 나름대로 필요할 때 API 문서 작성의 필요성을 많이 느낀다.
 doxygen을 써보려고 했지만, 함수마다 주석을 다는것은 가독성을 해칠 것 같아 좋은 방법을 찾아 보던 중 Slate를 알게 되었다.</p>
</blockquote>
<hr>
<h3 id="slate란">Slate란?</h3>
<ul>
<li><p>Ruby 기반의 HTML 실시간 렌더링, 빌드 기능을 가진 애플리케이션이다. API Tooling할 때 쉽게 적용할 수 있는 장점이 있어서 선택하게 되었다.</p>
</li>
<li><p>/source 디렉토리의 Markdown 문서들을 기반으로 API 문서를 작성하면 Slate에서 반응형 웹으로 변환해준다.</p>
</li>
<li><p>실시간으로 마크다운 문서를 확인할 수 있고 배포를 위한 HTML 빌드 기능도 제공한다.</p>
</li>
<li><p>예시 페이지 : <a href="https://slatedocs.github.io/slate/#introduction">https://slatedocs.github.io/slate/#introduction</a></p>
</li>
</ul>
<h3 id="slate-install">Slate Install</h3>
<ul>
<li>어떤 운영체제에서도 개발이 가능하지만 개발 환경 구축은 Ubuntu가 익숙하기 때문에 나는 Ubuntu 20.04 에서 개발 환경을 구성했다.</li>
</ul>
<h4 id="1-ruby-bundler-설치">1. Ruby, Bundler 설치</h4>
<pre><code class="language-bash">$ cd ~
$ sudo apt-get install -y ruby-2.3.4-1.el6.x86_64.rpm
$ sudo apt-get install ruby-bundler
$ bundle install</code></pre>
<h4 id="2-nodejs-설치">2. Node.js 설치</h4>
<pre><code class="language-bash">$ sudo apt install nodejs
$ nodejs -v
$ sudo apt install npm</code></pre>
<h4 id="3-slate-설치">3. Slate 설치</h4>
<ul>
<li>slate github을 나의 리포지토리로 fork 해온다.
<a href="https://github.com/slatedocs/slate">https://github.com/slatedocs/slate</a>
<img src="https://velog.velcdn.com/images/krystal_95/post/d7f5e9b5-921d-4b60-ad33-ad01ee574135/image.png" alt=""><pre><code class="language-bash">$ git clone https://github.com/Krystalvv/slate.git
$ cd slate</code></pre>
</li>
</ul>
<h4 id="4-bundle-실행">4. Bundle 실행</h4>
<pre><code class="language-bash"># 코드를 받아오고 한번만 실행해주면 된다.
$ bundle install</code></pre>
<blockquote>
<p>Slate 설치가 완료되었으면 <code>/source/index.html.md</code>와 <code>/includes/*.html.md</code>를 작성하여 API 문서를 작성하면 된다.</p>
</blockquote>
<h4 id="5-slate-server-구동">5. Slate Server 구동</h4>
<pre><code class="language-bash">$ bundle exec middleman --watcher-force-polling</code></pre>
<h4 id="6-slate-build">6. Slate Build</h4>
<pre><code class="language-bash">$ bundle exec middleman build --clean</code></pre>
<ul>
<li>작성이 완료된 API 문서를 빌드하려면 아래와 같이 실행한다. /build 디렉토리에 진입점이 되는 index.html과 기타 파일들이 생성된다. 빌드된 파일들을 클라이언트에게 전달하거나 웹사이트에 배포하면 된다.</li>
</ul>
<hr>
<h3 id="⚠-trouble-shooting">⚠ trouble shooting</h3>
<p>번외로 Slate 사용을 위한 환경 구축 중에... 번거로운 일들이 많았다. 문제 해결은 아래 링크들을 참조했다.</p>
<ul>
<li><p>Type Error : <a href="https://stackoverflow.com/questions/70364903/superclass-mismatch-for-class-command">https://stackoverflow.com/questions/70364903/superclass-mismatch-for-class-command</a></p>
<pre><code class="language-bash">2186  sudo dpkg -r --force-depends ruby-thor
2187  gem install thor</code></pre>
</li>
<li><p>SSL Certificates 문제(https -&gt; http) : <a href="https://pinedance.github.io/blog/2017/11/02/how-to-bypass-SSL">https://pinedance.github.io/blog/2017/11/02/how-to-bypass-SSL</a></p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Synology GitLab '502' Error]]></title>
            <link>https://velog.io/@krystal_95/Synology-GitLab-502-Error</link>
            <guid>https://velog.io/@krystal_95/Synology-GitLab-502-Error</guid>
            <pubDate>Tue, 24 May 2022 10:20:06 GMT</pubDate>
            <description><![CDATA[<ol>
<li>Docker 실행 (Synology GitLab은 패키지 센터를 통하여 설치했다면 도커에 설치 됨)</li>
<li>비디오 형식 선택 -&gt; Gitlab 세부사항 보기</li>
<li>터미널 들어가기 생성 누르기</li>
<li>rm /home/git/gitlab/tmp/pids/unicorn.pid</li>
<li>그러면 gitlab이 재가동 됨, 접속 잘 됨</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[git clone Error]]></title>
            <link>https://velog.io/@krystal_95/git-clone-Error</link>
            <guid>https://velog.io/@krystal_95/git-clone-Error</guid>
            <pubDate>Wed, 18 May 2022 06:51:26 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fetch-pack: unexpected disconnect while reading sideband packet
fatal: protocol error: bad pack header</p>
</blockquote>
<pre><code class="language-bash">$ git clone http://github.com/large-repository --depth 1</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[자주 쓰는 명령어 모음]]></title>
            <link>https://velog.io/@krystal_95/%EC%9E%90%EC%A3%BC-%EC%93%B0%EB%8A%94-%EB%AA%85%EB%A0%B9%EC%96%B4-%EB%AA%A8%EC%9D%8C</link>
            <guid>https://velog.io/@krystal_95/%EC%9E%90%EC%A3%BC-%EC%93%B0%EB%8A%94-%EB%AA%85%EB%A0%B9%EC%96%B4-%EB%AA%A8%EC%9D%8C</guid>
            <pubDate>Fri, 15 Apr 2022 02:25:25 GMT</pubDate>
            <description><![CDATA[<h3 id="🍟-mount">🍟 Mount</h3>
<pre><code class="language-bash">sudo mount -o nolock 10.0.1.49:/home/bilab/AirTom/nfs /mnt/AirTom/nfs
sudo mount -o nolock 10.0.1.49:/home/bilab/HemoVista/nfs /mnt/HemoVista/nfs</code></pre>
<hr>
<h3 id="🍕-nfs">🍕 NFS</h3>
<p>Mount 경로 지정</p>
<pre><code class="language-bash">sudo nano /etc/exports</code></pre>
<p>NFS Server 재시작</p>
<pre><code class="language-bash">sudo service nfs-server restart</code></pre>
<hr>
<h3 id="🍔-리눅스-시간-변경">🍔 리눅스 시간 변경</h3>
<pre><code class="language-bash">sudo date -s 2021-01-01
sudo find ./ -exec touch {} \;</code></pre>
<hr>
<h3 id="🌭-vnc-server-시작">🌭 VNC Server 시작</h3>
<pre><code class="language-bash">vncserver -localhost no</code></pre>
<hr>
<h3 id="🧀-git">🧀 Git</h3>
<p>Clone</p>
<pre><code class="language-bash">git clone http://10.0.1.231:30000/AirTomR3.0/Mercy/Software.git
git clone http://10.0.1.231:30000/AirTomR3.0/Mercy/HemoSoftware.git</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[HTML 특수문자]]></title>
            <link>https://velog.io/@krystal_95/HTML-%ED%8A%B9%EC%88%98%EB%AC%B8%EC%9E%90</link>
            <guid>https://velog.io/@krystal_95/HTML-%ED%8A%B9%EC%88%98%EB%AC%B8%EC%9E%90</guid>
            <pubDate>Thu, 31 Mar 2022 08:08:26 GMT</pubDate>
            <description><![CDATA[<p><a href="https://dev.w3.org/html5/html-author/charref">https://dev.w3.org/html5/html-author/charref</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Ubuntu NFS 설정]]></title>
            <link>https://velog.io/@krystal_95/Ubuntu-NFS-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@krystal_95/Ubuntu-NFS-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Thu, 24 Mar 2022 02:47:37 GMT</pubDate>
            <description><![CDATA[<p>임베디드 리눅스 기반의 시스템을 개발하다 보니 빌드 후에 실행 파일을 일일히 옮기기가 귀찮아졌다.
처음 개발 환경을 인수인계 받았을 때에는 실행에 필요한 파일들을 직접 usb에 옮겨서 엎어치는 방법으로 디버깅을 해야하는 불편함이 있었는데, 이는 Samba로 윈도우에서 서버측과 클라이언트 측 폴더에 접근해서 복사하는 방법으로 개선하여 사용하고 있었다.
하지만 이보다 간편한 방법으로 파일 전송을 할 수 있는 수단이 필요했고, NFS로 파일 시스템을 연결하여 파일 공유를 하는 방법으로 구축하여 쾌적한 개발환경을 구축했다...!</p>
<h3 id="🎨-nfs-관련-우분투-서버-패키지-설치">🎨 NFS 관련 우분투 서버 패키지 설치</h3>
<h4 id="1-nfs-패키지-설치">1. NFS 패키지 설치</h4>
<p>프로젝트를 빌드하는 우분투 서버에 NFS 서버를 구축하기 위하여 패키지를 설치한다.</p>
<pre><code class="language-bash">$ sudo apt-get install nfs-common nfs-kernel-server rpcbind</code></pre>
<h4 id="2-공유-디렉토리-생성-및-권한-설정">2. 공유 디렉토리 생성 및 권한 설정</h4>
<p>서버의 전체 디렉토리를 공유해버리면 공유에 필요한 파일 외에 다른 폴더의 파일들도 삭제 / 변경의 우려가 있기 때문에 공유할 파일만 넣어놓을 디렉토리를 생성한다.</p>
<pre><code class="language-bash">$ mkdir ~/nfs
$ chmod 777 ~/nfs</code></pre>
<h4 id="3-etcexports-파일-수정">3. /etc/exports 파일 수정</h4>
<pre><code class="language-bash">$ sudo nano /etc/exports</code></pre>
<p><code>/home/(계정이름)/(프로젝트이름)/nfs *(rw,no_root_squash,async)</code>
공유 폴더 경로를 입력, 타겟 보드에서는 프로젝트 내의 nfs 폴더 외에 다른 폴더에는 접근 불가</p>
<p>:wq로 파일을 저장한다.</p>
<h4 id="4-nfs-서버-재실행">4. NFS 서버 재실행</h4>
<pre><code class="language-bash">$ sudo service nfs-server restart</code></pre>
<h3 id="💫-nfs-클라이언트-쪽에서-마운트하기">💫 NFS 클라이언트 쪽에서 마운트하기</h3>
<p>타겟보드인 임베디드 리눅스 기반의 시스템에서 마운트를 하기 위해 타겟 보드에서 네트워크 설정이 잘 되어 있는지 확인한다. ping 명령어를 통해 리눅스 서버와 연결이 잘 되어있는지 확인할 수 있다.</p>
<h4 id="1-리눅스-서버의-파일시스템을-마운트">1. 리눅스 서버의 파일시스템을 마운트</h4>
<pre><code class="language-bash">$ sudo mount -o nolock (NFS 서버의 IP 혹은 도메인 주소):/(공유 디렉토리[절대경로]) (NFS 클라이언트의 마운트 위치) </code></pre>
<h4 id="2-마운트-확인">2. 마운트 확인</h4>
<pre><code class="language-bash">$ df -h</code></pre>
<blockquote>
<p>⚠ 아래와 같은 마운트 에러 발생시 nfs  관련 패키지를 설치해준다. ⚠
<code>mount: /mnt/nfs: bad option; for several fylesystems (e.g. nfs, cifs) you might need a /sbin/mount. &lt;type&gt; helper program</code>.</p>
</blockquote>
<pre><code class="language-bash">$ sudo apt-get install nfs-common</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[QML 에서 undefined를 확인하는 방법]]></title>
            <link>https://velog.io/@krystal_95/QML-%EC%97%90%EC%84%9C-undefined%EB%A5%BC-%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95</link>
            <guid>https://velog.io/@krystal_95/QML-%EC%97%90%EC%84%9C-undefined%EB%A5%BC-%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95</guid>
            <pubDate>Mon, 07 Mar 2022 08:37:55 GMT</pubDate>
            <description><![CDATA[<p>QML는 JavaScript기반이므로 문자열로 확인, 처리하여야 한다. </p>
<p>QML에서 어떤 객체의 타입을 확인 할 때 JavaScript의 typeof를 이용하면된다.</p>
<p>typeof 연산자는 형식 정보를 문자열로 반환하는데 &quot;number&quot;, &quot;string&quot;, &quot;boolean&quot;, &quot;object&quot;, &quot;function&quot; 및 &quot;undefined&quot;의 6가지 값이 있다.</p>
<pre><code class="language-javascript">var context

if(typeof(context) == &quot;undefined&quot;)
{

}</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Linux] touch 명령어를 하위 폴더에 모두 적용]]></title>
            <link>https://velog.io/@krystal_95/Linux-touch-%EB%AA%85%EB%A0%B9%EC%96%B4%EB%A5%BC-%ED%95%98%EC%9C%84-%ED%8F%B4%EB%8D%94%EC%97%90-%EB%AA%A8%EB%91%90-%EC%A0%81%EC%9A%A9</link>
            <guid>https://velog.io/@krystal_95/Linux-touch-%EB%AA%85%EB%A0%B9%EC%96%B4%EB%A5%BC-%ED%95%98%EC%9C%84-%ED%8F%B4%EB%8D%94%EC%97%90-%EB%AA%A8%EB%91%90-%EC%A0%81%EC%9A%A9</guid>
            <pubDate>Wed, 16 Feb 2022 02:13:30 GMT</pubDate>
            <description><![CDATA[<p>리눅스 빌드를 할 때 시간을 과거로 돌린 후에 작업을 해야 하는 경우가 있는데,
그럴때마다 파일 시간과 시스템 시간이 맞지 않아 생기는 경고 때문에 빌드 프로세싱이 너무 느렸다.</p>
<p>이때 QT 컴파일러 파일들과 소스파일의 변경 시간을 touch -t 명령어로 변경해야하는데 하위 디렉토리까지 모두 바꿔주기 위해서 아래의 명령어를 실행한다.</p>
<pre><code class="language-bash"> find directory_name -exec touch {} \; </code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Ubuntu] VNC 설정]]></title>
            <link>https://velog.io/@krystal_95/Ubuntu-VNC-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@krystal_95/Ubuntu-VNC-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Mon, 24 Jan 2022 06:02:55 GMT</pubDate>
            <description><![CDATA[<h3 id="1-install-tigervnc-server">1. Install TigerVNC Server</h3>
<h4 id="🍕-tiger-vnc-패키지-설치">🍕 Tiger VNC 패키지 설치</h4>
<pre><code class="language-bash">$ sudo apt-get install tigervnc-standalone-server tigervnc-xorg-extension</code></pre>
<h4 id="🍕-vnc-암호-설정">🍕 VNC 암호 설정</h4>
<pre><code class="language-bash">$ vncpasswd</code></pre>
<pre><code class="language-bash">Password:
Verify:
Would you like to enter a view-only password (y/n)? n</code></pre>
<h4 id="🍕-vnc-서버-실행">🍕 VNC 서버 실행</h4>
<pre><code class="language-bash">$ vncserver -localhost no</code></pre>
<h4 id="🍕-실행중인-vnc-서버-확인">🍕 실행중인 VNC 서버 확인</h4>
<pre><code class="language-bash">$ vncserver -list </code></pre>
<h3 id="2-vnc-구성">2. VNC 구성</h3>
<h4 id="🍕-vnc-인스턴스-종료">🍕 VNC 인스턴스 종료</h4>
<pre><code class="language-bash">$ vncserver -kill :1</code></pre>
<h4 id="🍕-gnome-설정">🍕 Gnome 설정</h4>
<ul>
<li>.vnc 디렉토리 안에 xstartup을 생성하여 수행<pre><code class="language-bash">$ nano ~/.vnc/xstartup</code></pre>
아래의 스크립트 추가<pre><code class="language-bash">#!/bin/sh
exec /etc/vnc/xstartup
xrdb $HOME/.Xresources
vncconfig -iconic &amp;
dbus-launch --exit-with-session gnome-session &amp;</code></pre>
파일의 실행 권한 부여<pre><code class="language-bash">$ chmod u+x  ~/.vnc/xstartup </code></pre>
</li>
</ul>
<h3 id="3-vnc-client-접속">3. VNC Client 접속</h3>
<h4 id="🍕-vnc-viewer-실행">🍕 VNC Viewer 실행</h4>
<p><a href="https://www.realvnc.com/en/connect/download/viewer/">VNC Viewer Download</a></p>
<h4 id="🍕-vnc-viewer-접속">🍕 VNC Viewer 접속</h4>
<pre><code class="language-bash">bilab@bilab-desktop:~$ vncserver -list

TigerVNC server sessions:

X DISPLAY #    RFB PORT #    PROCESS ID
:1        5901        8207</code></pre>
<p>ex) <code>10.0.1.49::5901</code>로 접속</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Flutter] Window에 Flutter 설치]]></title>
            <link>https://velog.io/@krystal_95/Flutter-Window%EC%97%90-Flutter-%EC%84%A4%EC%B9%98</link>
            <guid>https://velog.io/@krystal_95/Flutter-Window%EC%97%90-Flutter-%EC%84%A4%EC%B9%98</guid>
            <pubDate>Mon, 24 Jan 2022 02:09:23 GMT</pubDate>
            <description><![CDATA[<h3 id="1-install-the-flutter-sdk">1. Install the Flutter SDK</h3>
<ul>
<li>Window 7 이후 version</li>
<li>400MB 이상의 여유 공간 / 10GB 이상의 여유공간(Android Studio를 위한)</li>
<li>git</li>
</ul>
<h4 id="🍕-get-the-flutter-sdk">🍕 Get the Flutter SDK</h4>
<ul>
<li><a href="https://docs.flutter.dev/get-started/install/windows#get-the-flutter-sdk">Download</a></li>
<li>압축 풀기 경로 ➡ <code>C:\src\flutter</code></li>
<li><code>flutter_console.bat</code> 실행</li>
</ul>
<h4 id="🍕-환경-변수-설정">🍕 환경 변수 설정</h4>
<ul>
<li>어느 경로에서나 플러터 명령어를 사용하려면 환경 변수 설정을 해줘야한다.</li>
<li>윈도우 검색창에 <code>시스템 환경 변수 편집</code> 검색</li>
<li>사용자 변수에서 변수 <code>Path</code>를 찾아 편집</li>
<li>Flutter SDK를 설치한 bin 경로 입력 (ex. <code>C:\src\flutter\flutter\bin</code>)<blockquote>
<p>flutter 명령어를 실행했을 때 cmd 창이 닫혀버리는 상황이 생길 수도 있다. 이는 윈도우 파워셀 정보가 path에 등록되지 않은 경우로 윈도우 파워셀의 버전에 문제가 없는데도 cmd 창이 닫힌다면, 환경변수 path 값에 아래 경로를 추가한다.
<code>C:\Windows\System32\WindowsPowerShell\v1.0</code></p>
</blockquote>
</li>
</ul>
<h4 id="🍕-flutter-doctor">🍕 Flutter Doctor</h4>
<ul>
<li>Flutter를 사용하기 위해 준비해야하는 list를 알 수 있다.</li>
</ul>
<h3 id="2-install-android-studio">2. Install Android Studio</h3>
<ul>
<li>Download and install <a href="https://developer.android.com/studio">Android Studio</a>.</li>
<li>Andriod Studio SDK 설치</li>
<li>Plug in ➡ Flutter 검색 후 Install(IDE Restart)</li>
<li>Project ➡ New Flutter Project를 선택할 수 있는지 확인</li>
</ul>
<h3 id="3-install-the-android-emulator">3. Install the Android Emulator</h3>
<ul>
<li>New Flutter Project 선택</li>
<li>SDK 경로 <code>C:\src\flutter\flutter\</code> 입력 후 프로젝트 이름 입력</li>
</ul>
<h4 id="🍔-get-android-emulator">🍔 Get Android Emulator</h4>
<ul>
<li>AVD 관리자로 이동(Phone+Andriod Icon)</li>
<li>Nexus 6 선택</li>
<li>▶ 버튼을 클릭하여 가상 장치 실행(실행 후에는 창 닫아도 됨)</li>
<li>Build 하여 Emulator에 App 나타나는지 확인<blockquote>
<p>⚠ License for package Android SDK Build-Tools not accepted.
Google Play licensing library가 설치되지 않아 생긴 이슈로 Tool ➡ SDK Manager ➡ SDK Tools 에서 Google Play licensing library 선택 후 설치</p>
</blockquote>
</li>
</ul>
]]></description>
        </item>
    </channel>
</rss>