<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>data-jangi.log</title>
        <link>https://velog.io/</link>
        <description>선한 영향력을 추구하는 데이터분석가 Mori입니다 :)</description>
        <lastBuildDate>Mon, 24 Oct 2022 12:02:14 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>data-jangi.log</title>
            <url>https://velog.velcdn.com/images/data-jangi/profile/bf19e817-545c-4cb9-b1fd-2873ae814312/social_profile.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. data-jangi.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/data-jangi" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[나를 위한 가이드] GIT & GITHUB]]></title>
            <link>https://velog.io/@data-jangi/%EB%82%98%EB%A5%BC-%EC%9C%84%ED%95%9C-%EA%B0%80%EC%9D%B4%EB%93%9C-GIT-GITHUB</link>
            <guid>https://velog.io/@data-jangi/%EB%82%98%EB%A5%BC-%EC%9C%84%ED%95%9C-%EA%B0%80%EC%9D%B4%EB%93%9C-GIT-GITHUB</guid>
            <pubDate>Mon, 24 Oct 2022 12:02:14 GMT</pubDate>
            <description><![CDATA[<h3 id="기존-정의">기존 정의</h3>
<p><strong>깃</strong> - 버전기록을 할 수 있는 언어(tool
<strong>깃허브</strong> - 프로젝트들을 각 로컬에서 원격으로 다른사람들과 공유/협업하면서 관리할 수 있는 서비스
<strong>레파지토리(Repository)</strong> - 로컬의 Git과 동기화를 해서 온라인으로 관리할 수 있는 <strong>원격저장소</strong>.
<strong>디렉토리(directory)</strong> - 폴더라고 이해</p>
<p>mkdir : make directory
cd : directory 이동
init : git의 initialization, git 로컬 저장소(working directory)로 생성하기
add : git의 버전 관리 시작, 인덱스(staging area 영역)에 기록시작</p>
<p>ls : 파일의 list 확인<br>origin : 원격 저장소의 닉네임과 같은 역할???
push : 로컬의 기록을 원격의 branch로 저장
clone : 원격의 기록을 로컬로 복제(clone)</p>
<h3 id="로컬">로컬</h3>
<h4 id="내퓨터에-로컬-저장소-만들기-feat-프로젝트-환경-만들기">내퓨터에 로컬 저장소 만들기 feat. 프로젝트 환경 만들기</h4>
<p>GIT으로 관리해보고 싶은 로컬 저장소를 만들어본후 git을 현재의 디렉토리에 심어놓는다.</p>
<pre><code>mkdir workplace
cd workplace
git init</code></pre><p>해당 디렉토리의 내용 확인</p>
<pre><code>ls -a</code></pre><p>(참고)모든 git 로컬 저장소눈 .git의 디렉토리를 가지고 있기때문에 .git의 디렉토리로 이동이 가능하다. </p>
<pre><code>cd .git</code></pre><p><img src="https://velog.velcdn.com/images/data-jangi/post/681da924-e88c-454f-b10e-30b571ce9f71/image.png" alt=""></p>
<h3 id="readmemd파일-생성">README.md파일 생성</h3>
<p>프로젝트 소개문으로 사용되는 readme.md파일을 생성한다</p>
<pre><code>cd .. #.git의 상위폴더인 ~/aiffel/workplace로 이동한다
echo &quot;# first-repository&quot; &gt;&gt; README.md</code></pre><p>다음과 같이 md파일이 잘 생성되었음을 알 수 있다.
<img src="https://velog.velcdn.com/images/data-jangi/post/95fd7a19-7880-4621-8b29-07ea2e9c0f85/image.png" alt=""></p>
<h3 id="git의-추적하고-있는-변화확인">git의 추적하고 있는 변화확인</h3>
<p>git status 해석 
master branch에 있고
commit은 안되있고
readme.md는 untrack되고 있다 </p>
<pre><code>git status </code></pre><p><img src="https://velog.velcdn.com/images/data-jangi/post/585dec7d-7ac3-4b04-9db2-c89c7345174d/image.png" alt=""></p>
<p>[참고]<a href="https://rogerdudler.github.io/git-guide/index.ko.html">https://rogerdudler.github.io/git-guide/index.ko.html</a></p>
<h3 id="git이-관리할-대상으로-파일-등록">git이 관리할 대상으로 파일 등록</h3>
<p><strong>버전관리 시작!!</strong>
프로젝트 상에서 불필요한 파일도 존재할때니까,, git에게 버전 관리가 필요한 파일은 명시적으로 지정할 수 있도록 하는 것. README.md 파일이 인덱스staging </p>
<pre><code>git add README.md</code></pre><p><img src="https://velog.velcdn.com/images/data-jangi/post/d131da8d-6cf9-44ad-b8cf-f31a1a86456f/image.png" alt=""></p>
<h3 id="로컬의-git에-원격에-있는-github-계정-정보-등록하기">로컬의 git에 원격에 있는 github 계정 정보 등록하기</h3>
<p>위의 해당 버전을 관리하는 계정 정보를 등록 할 수 있다. 다른사람이 이 작업은 누가 작업했는 알 수 있게 해주는 것</p>
<pre><code>$ git config --global user.email &quot;my-email@gmail.com&quot;
$ git config --global user.name &quot;my-username&quot;</code></pre><p>Git에 등록한 config의 정보를 모두 확인하기</p>
<pre><code>$ git config -l</code></pre><p><img src="https://velog.velcdn.com/images/data-jangi/post/17c0e9b8-df75-4eb6-9751-1d40820f8247/image.png" alt=""></p>
<h3 id="변경-사항-확정">변경 사항 확정</h3>
<pre><code>git commit -m &quot;커밋 메세지&quot;</code></pre><h3 id="로컬-저장소와-원격-저장소-연결하기">로컬 저장소와 원격 저장소 연결하기</h3>
<pre><code>git remote add origin 깃허브 원격 저장소 HTTPS 주소</code></pre><h3 id="로컬-저장소의-기록은-원격-저장소로-전송">로컬 저장소의 기록은 원격 저장소로 전송</h3>
<p>현재 로컬에 있는 버전 기록과 모든 파일들을 origin(원격 저장소)의 master brance로 push 즉, 밀어넣겠다. </p>
<pre><code>git config credential.helper store 
git push origin main</code></pre><p><img src="https://velog.velcdn.com/images/data-jangi/post/26b2c535-7fcc-4474-aa85-a624df39c6fc/image.png" alt=""></p>
<h2 id="원격-저장소">원격 저장소</h2>
<h3 id="원격-저장소의-내용을-로컬로-가지고-오기">원격 저장소의 내용을 로컬로 가지고 오기</h3>
<pre><code>git clone 깃허브 원격 저장소 HTTPS 주소</code></pre><p><img src="https://velog.velcdn.com/images/data-jangi/post/6ace4203-c490-40f8-89a9-7f71c848c226/image.png" alt="">
새로 생성해준 <code>project_from_rm_dir</code> 폴더안에 원격저장소를 clone하고 <code>ls</code>로 하위 폴더를 리스트업해보니 해당 원격저장소 AIFFEL-new_repository/가 잘 복사되었는지 확인이 가능했다!
<img src="https://velog.velcdn.com/images/data-jangi/post/2e1116d5-c7f5-408b-abbf-59332f7bd698/image.png" alt="">
해당 원격저장소로 이동해서 하위 내용을 다시 확인해보니 README.md가 잘 있다. 
<img src="https://velog.velcdn.com/images/data-jangi/post/0c885c7a-a649-4af0-a7f7-c6dab830a729/image.png" alt=""></p>
<h3 id="원격에서-가져온-파일을-수정해서-반영하기">원격에서 가져온 파일을 수정해서 반영하기</h3>
<p>작업을 완료한후에는 <code>git add</code>,<code>git commit -m</code>, <code>git push origin main</code>을 순차적으로 해야 원격의 파일에 내가 수정한 자료가 업데이트 된다. </p>
<pre><code>git add README.md
git commit -m &quot;커밋 메세지&quot;
git push origin main</code></pre><p><img src="https://velog.velcdn.com/images/data-jangi/post/ac89b3d0-be12-4e44-bd26-7df4c19c817a/image.png" alt="">
<img src="https://velog.velcdn.com/images/data-jangi/post/6afedf5d-4df8-491a-9489-736f0136159d/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[터미널, 콘솔, 쉘의 차이점 ]]></title>
            <link>https://velog.io/@data-jangi/%ED%84%B0%EB%AF%B8%EB%84%90-%EC%BD%98%EC%86%94-%EC%89%98%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90</link>
            <guid>https://velog.io/@data-jangi/%ED%84%B0%EB%AF%B8%EB%84%90-%EC%BD%98%EC%86%94-%EC%89%98%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90</guid>
            <pubDate>Wed, 19 Oct 2022 06:13:11 GMT</pubDate>
            <description><![CDATA[<p>딥러닝을 시작한다고 할때, 터미널을 이용하는 이유는 뭘까? 그냥 모델들만 배우고 학습을 하면 되는 것 아닐까? 버전 관리하는 git을 사용하려고? 
딥러닝은 수많은 파라미터들에 대한 튜닝과 모델에 대한 아키텍쳐를 수정하는 것 결국, 메모리 관리와 그래픽의 효율적인 관리가 필수적이다. 이런 관리는 shell 단위에서 가능하기 때문에 커맨드 라인 활용법 숙지가 필요한 부분이다.  </p>
<p>운영체제의 내부는 알맹이인 커널(kernel)과 껍데기인 셜(shell)로 이루어져있다.</p>
<blockquote>
<p>The <strong>shell</strong> is the program which actually processes commands and returns output. Most shells also manage foreground and background processes, command history and command line editing. These features (and many more) are standard in bash, the most common shell in modern linux systems.</p>
</blockquote>
<p>여기서 GUI shell은 window시작버튼, CLI shell은 cmd.exe와 powershell
쉘은 명령어를 전달하고 결과를 전달받는 프로그램으로 터미널위에 작동을 한다.
사용자가 명령어를 입력하면 쉘은 사용자가 입력한 명령어를 os로 전달하는 해석기라고 이해하면 된다.</p>
<blockquote>
<p>A <strong>terminal</strong> refers to a wrapper program which runs a shell.  </p>
</blockquote>
<p>터미널은 서버의 <strong>로컬 또는 원격</strong>으로 접속 할 수 있는 콘솔을 구현한 소프트웨어로 쉘을 실행하기 위한 포장(wrapper)프로그램이다.  </p>
<blockquote>
<p>The <strong>console</strong> is a special sort of terminal. Historically, the console was a single keyboard and monitor plugged into a dedicated serial console port on a computer used for direct communication at a low level with the operating system. Modern linux systems provide virtual consoles. These are accessed through key combinations (e.g. Alt+F1 or Ctrl+Alt+F1; the function key numbers different consoles) which are handled at low levels of the linux operating system -- this means that there is no special service which needs to be installed and configured to run. Interacting with the console is also done using a shell program.</p>
</blockquote>
<p>콘솔은 서버의 로컬장치에서 명령어를 작성할 수 있는 입출력 장치이다. 터미널이 로컬과 원격제어 환경이라면 콘솔은 물리적인 장치?라고 한다. </p>
<p>WINDOW OS를 사용해서 해당 커맨드를 연습해야하나 했는데 WSL2로 윈도우에서 우분투를 설치해서 리눅스 커맨드라인을 연습해보고자 한다.</p>
<p>[WSL2설치링크]<a href="https://www.lainyzine.com/ko/article/how-to-install-wsl2-and-use-linux-on-windows-10/">https://www.lainyzine.com/ko/article/how-to-install-wsl2-and-use-linux-on-windows-10/</a></p>
<p>[커맨드라인연습링크]<a href="https://tutorial.djangogirls.org/ko/intro_to_command_line/">https://tutorial.djangogirls.org/ko/intro_to_command_line/</a></p>
<p>[출처] <a href="https://blog.naver.com/PostView.naver?blogId=asianchairshot&amp;logNo=221383363419&amp;redirect=Dlog&amp;widgetTypeCall=true&amp;topReferer=https%3A%2F%2Flms.aiffel.io%2F&amp;directAccess=false">https://blog.naver.com/PostView.naver?blogId=asianchairshot&amp;logNo=221383363419&amp;redirect=Dlog&amp;widgetTypeCall=true&amp;topReferer=https%3A%2F%2Flms.aiffel.io%2F&amp;directAccess=false</a>
[출처] <a href="https://superuser.com/questions/144666/what-is-the-difference-between-shell-console-and-terminal">https://superuser.com/questions/144666/what-is-the-difference-between-shell-console-and-terminal</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[우분투?]]></title>
            <link>https://velog.io/@data-jangi/AIFFELWEEK1</link>
            <guid>https://velog.io/@data-jangi/AIFFELWEEK1</guid>
            <pubDate>Tue, 18 Oct 2022 15:42:31 GMT</pubDate>
            <description><![CDATA[<h3 id="운영체제os-operating-system란">운영체제(os; operating system)란?</h3>
<p>운영체제란 사용자가 컴퓨터 하드웨어를 모르더라도 컴퓨터를 쉽게 사용할 수 있도록 설계된 소프트웨어 인터페이스이다. 
종류는 대표적으로 1) Windows 운영체제와 2) Unix 운영체제가 있고, Unix 기반으로 개발된 2-1) 리눅스(Linux) 운영체제 2-2) 맥(Mac)운영체제 2-3) 안드로이드(Android) 운영체제가 있다.
<img src="https://velog.velcdn.com/images/data-jangi/post/f3b3edcd-5772-4f51-87f9-b31b5bb5ed06/image.png" alt="">
운영체제 = 커널은 아니지만 커널은 최고 관리자에게 권한을 위임받아 CPU, Memory, SDD를 통합관리하면서 그 연산자원을 분배하고 보안, 디바이스 인테페이스 추상화의 역할을 수행한다. </p>
<h3 id="리눅스란">리눅스란?</h3>
<p>위에서 잠깐 언급했지만, 리눅스는 유닉스 기반의 핵심 운영체제(os)이다. 소스코드가 공개된 <strong>무료 오픈소스</strong>이었기 때문에 전세계 개발자들이 리눅스 코드를 공유하고 공동으로 개발할 수 있어 개발자들 사이에서 인기가 많았다고 한다. 
<img src="https://velog.velcdn.com/images/data-jangi/post/79899868-835d-4fd2-88db-7d9305c3859a/image.png" alt=""></p>
<h3 id="우분투란">우분투란?</h3>
<p><img src="https://velog.velcdn.com/images/data-jangi/post/98c92448-12ef-4612-8a13-442e92048d4f/image.png" alt=""></p>
<p>리눅스는 수많은 개발자들이 용도에 맞게 튜닝하여 사용할 수 있어 다양한 배포판(리눅스 OS라고 칭함)들이 생겨 났고, 많은 업체들에서도 검증된 소프트웨어들을 자체적으로 패키지하여 배포한다고 한다. 아래와 같이 다양한 배포판들이 존재했다!!
<img src="https://velog.velcdn.com/images/data-jangi/post/4219554e-00f2-4982-8c62-a37f88def84c/image.png" alt=""></p>
<blockquote>
<p>각기 갖은 장단점으로 배포판들의 인기도를 나타낸 TIMELINE도 확인할 수 있다...</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/data-jangi/post/e83eacbc-9bf5-47a7-a81c-ccf781eff344/image.png" alt=""></p>
<p><strong>우분투</strong>는 리눅스(Linux) 배포판의 한 종류(Debian GNU Linux, RedHat Linux도 유명하다)인데, 인공지능 연구개발을 위해 주로 사용하는 운영체제라고 한다.</p>
<p>많은 개발자들이 애용하고 있어서 앞으로 사용하게 될 텐서플로우(Tensorflow) 등 머신러닝 라이브러리들이 가장 안정적으로 구동되는 환경이라고 한다.</p>
<h3 id="linux와-표준화">Linux와 표준화</h3>
<p>리눅스는 기본적으로 모든 배포판이 커널의 기능을 포함하고, 각종 API는 POSIX를 만족한다. 또한 시스템 관리 측면에서 유사한 기능을 가지고 있다.</p>
<p>하지만 배포판별로 시스템 관리 명령어의 이름이나 옵션이 다르다. 또한 관리 방법이나 API의 기능이 배포판마다 성능에 차이가 있을 수 있다. 이처럼 리눅스는 호환성과 다양성을 동시에 가지고 있다.</p>
<p>[출처-운영체제]<a href="https://jhnyang.tistory.com/m/16">https://jhnyang.tistory.com/m/16</a>
[출처] <a href="https://gaebom.tistory.com/m/50">https://gaebom.tistory.com/m/50</a> 
[출처] <a href="https://jminie.tistory.com/m/87">https://jminie.tistory.com/m/87</a>
[출처] <a href="https://secretpoten.tistory.com/m/31">https://secretpoten.tistory.com/m/31</a>
[출처] <a href="https://www.leafcats.com/m/186">https://www.leafcats.com/m/186</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[코딩도장] 32.lambda ]]></title>
            <link>https://velog.io/@data-jangi/%EC%BD%94%EB%94%A9%EB%8F%84%EC%9E%A5-32.lambda</link>
            <guid>https://velog.io/@data-jangi/%EC%BD%94%EB%94%A9%EB%8F%84%EC%9E%A5-32.lambda</guid>
            <pubDate>Sat, 15 Oct 2022 05:24:57 GMT</pubDate>
            <description><![CDATA[<h3 id="321-lambda-기본-사용법">32.1 lambda 기본 사용법</h3>
<h4 id="lambda-매개변수--식">lambda (매개변수) : (식)</h4>
<pre><code>def plus_ten(x):
    return x+10

lambda x : x+10</code></pre><h4 id="322-map과-같이-활용">32.2 map과 같이 활용</h4>
<p>map(lambda x: (매개변수)x (식1)str(x) if (조건식1)x%3==0 else (식2)x,a))</p>
<pre><code>#map
print(list(map(lambda x:x+10, [1,2,3])))

print(list(map(lambda x: str(x) if x%3==0 else x,a))</code></pre><h4 id="322-filter와-같이-활용">32.2 filter와 같이 활용</h4>
<pre><code>a = [1,4,8,7,12,14,17,27]

print(list(filter(lambda x:x%10 ==7 , a)))</code></pre><h4 id="324-연습문제--이미지-파일만-가져오기">32.4 연습문제 : 이미지 파일만 가져오기</h4>
<pre><code>files = [&#39;font&#39;, &#39;1.png&#39;, &#39;10.jpg&#39;, &#39;11.gif&#39;, &#39;2.jpg&#39;, &#39;3.png&#39;, &#39;table.xslx&#39;, &#39;spec.docx&#39;]
print(list(filter(lambda x: x.find(&#39;.png&#39;)==True or x.find(&#39;.jpg&#39;)==True , files )))
==========================

[&#39;1.png&#39;, &#39;10.jpg&#39;, &#39;2.jpg&#39;, &#39;3.png&#39;]</code></pre>]]></description>
        </item>
    </channel>
</rss>