<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>charming_12.log</title>
        <link>https://velog.io/</link>
        <description>조금 부족한 내 기억력을 위해</description>
        <lastBuildDate>Tue, 10 Aug 2021 16:07:47 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>charming_12.log</title>
            <url>https://images.velog.io/images/charming_12/profile/61da9acd-1c2d-4512-ab8f-66967e711121/살바도르달리 박물관(Teatre-Museu Dalí) 40.JPG</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. charming_12.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/charming_12" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Spring Batch 강의 수강]]></title>
            <link>https://velog.io/@charming_12/Spring-Batch-%EA%B0%95%EC%9D%98-%EC%88%98%EA%B0%95</link>
            <guid>https://velog.io/@charming_12/Spring-Batch-%EA%B0%95%EC%9D%98-%EC%88%98%EA%B0%95</guid>
            <pubDate>Tue, 10 Aug 2021 16:07:47 GMT</pubDate>
            <description><![CDATA[<p>📝** 1일차**</p>
<ul>
<li>실습환경 셋팅<ul>
<li>maven Project </li>
<li>maria DB</li>
</ul>
</li>
</ul>
<br/>


<p>업무에만 쓰던 오라클이 아닌,
mysql 계열 mariaDB를 써보니까 재밌었다 </p>
<pre><code>MariaDB [mysql]&gt; create database project; 

MariaDB [mysql]&gt; create user project identified by &#39;123456(비밀번호)&#39;;
👉 이름이 &#39;user&#39;이고 비밀번호가 &#39;123456&#39;인 사용자 추가 

MariaDB [mysql]&gt; grant all privileges on project.* to project@&#39;%&#39;;
👉 &#39;project&#39;란 DB의 모든 테이블에 대한 권한을 사용자 &#39;project&#39;에게 부여 (DB명과 사용자명을 동일하게 해놓으니 헷갈리네 ;)

MariaDB [mysql]&gt; exit


C:\Program Files\MariaDB 10.6\bin&gt;mysql -u project -p
👉 &#39;project&#39;에게 root 권한 부여

Enter password: ******
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.6.4-MariaDB mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type &#39;help;&#39; or &#39;\h&#39; for help. Type &#39;\c&#39; to clear the current input statement.



MariaDB [(none)]&gt; use project;
Database changed
👉 사용할 데이터베이스를 &#39;use [DATABASE명]&#39; 해줘야 한다는 거

MariaDB [project]&gt; create table board1 (
    -&gt; seq          int                  not null     primary key auto_increment,
    -&gt; subject      varchar(150)         not null,
    -&gt; writer       varchar(12)          not null,
    -&gt; mail         varchar(50),
    -&gt; password     varchar(12)          not null,
    -&gt; content      varchar(2000),
    -&gt; hit          int                  not null,
    -&gt; wip          varchar(15)          not null,
    -&gt; wdate        datetime             not null
    -&gt; );
Query OK, 0 rows affected (0.108 sec)

MariaDB [project]&gt; insert into board1 values (0, &#39;제목&#39;, &#39;이름&#39;, &#39;test@test.com&#39;, &#39;1234&#39;, &#39;내용&#39;, 0, &#39;000.000.000.000&#39;, now());
Query OK, 1 row affected (0.015 sec)

MariaDB [project]&gt; select * from board1;
+-----+---------+--------+---------------+----------+---------+-----+-----------------+---                          ------------------+
| seq | subject | writer | mail          | password | content | hit | wip             | wd                          ate               |
+-----+---------+--------+---------------+----------+---------+-----+-----------------+---                          ------------------+
|   1 | 제목    | 이름   | test@test.com | 1234     | 내용    |   0 | 000.000.000.000 | 20                          21-08-10 20:26:57 |
+-----+---------+--------+---------------+----------+---------+-----+-----------------+---                          ------------------+
1 row in set (0.011 sec)

</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[말이 되는 영문법 트레이닝]]></title>
            <link>https://velog.io/@charming_12/%EB%A7%90%EC%9D%B4-%EB%90%98%EB%8A%94-%EC%98%81%EB%AC%B8%EB%B2%95-%ED%8A%B8%EB%A0%88%EC%9D%B4%EB%8B%9D</link>
            <guid>https://velog.io/@charming_12/%EB%A7%90%EC%9D%B4-%EB%90%98%EB%8A%94-%EC%98%81%EB%AC%B8%EB%B2%95-%ED%8A%B8%EB%A0%88%EC%9D%B4%EB%8B%9D</guid>
            <pubDate>Sun, 04 Jul 2021 13:14:32 GMT</pubDate>
            <description><![CDATA[<p>It doesn&#39;t matter <strong>to</strong> me.
The couple don&#39;t <strong>get along well with</strong> each other, do they?
I don&#39;t eat seafood because it** smells fishy<strong>.
I drove there **with the help of</strong> my phone GPS.
I didn&#39;t know that she is so popular <strong>like that</strong>.
I washed the clothes several times but the stain didn&#39;t** come out<strong>.
We didn&#39;t order this. **Take it back</strong>, please.
I&#39;m a <strong>newcomer</strong> in this company.
It is a real <strong>time-saver</strong>.
<strong>We are strangers</strong> here.
He takes care of my dog while <strong>I&#39;m away</strong>.
The museum is *<em>on the outskirt of *</em>London.
　　
　</p>
<pre><code></code></pre><pre><code></code></pre><blockquote>
<p>상태의 변화 &#39;get&#39;</p>
</blockquote>
<p>You need to <strong>get *<em>your hands warm.
He *</em>gets</strong> out of control when he <strong>gets</strong> drunk.
Don&#39;t <strong>get</strong> me wrong. 오해하지 마.
I&#39;m going to <strong>get</strong> it right.
I got up early to <strong>get</strong> the kids ready for school.
You must to <strong>get</strong> your work done by today.
I&#39;m hungry. Let&#39;s <strong>get</strong> pizza** delivered**.</p>
<pre><code></code></pre><p>I don&#39;t feel like eating anything.
<strong>You look familiar</strong>. Have we met before?
<strong>It looks like</strong> we&#39;re out of gas.
I feel like I<strong>&#39;m walking on thin ice.</strong>
My office is a twenty-minut<strong>e</strong> <strong>drive</strong> <strong>from</strong> home.
It is a ten-minut<strong>e walk</strong>  from the subway station.
I <strong>will walk you to **the bus stop.
I</strong> drove** him to the airport.
I&#39;ll visit you** first thing** tomorrow morning.
She** took** five days <strong>off</strong> <strong>to travel to</strong> Spain.</p>
<p>People said the food tasted good but it didn&#39;t <strong>suit my taste</strong>.
The shirts fits you well.
<strong>How does it fit?</strong> Isn&#39;t it too tight?
Black <strong>doesn&#39;t suit</strong> you.
I think the bright colors <strong>suit you best</strong>.
<strong><em>What day suits you best?</em></strong> Thursday or Friday?
You two are <strong>a match made in heaven</strong>.
You are not my match. 내 적수가 아냐 넌
You will pay for it someday! 언젠가 대가를 치를거야
How much did you** spend on **this?</p>
<p>I <strong>talk in my sleep</strong> sometimes.
He often talks about others <strong>behind their backs</strong>.
She&#39;s <strong>punctual</strong> and always on time.
It is April now but it is a little <strong>chilly</strong> in the morning.</p>
<ul>
<li><strong>chilly</strong> [adj] : chilly weather or places are cold enough to make you feel uncomfortable</li>
</ul>
<p>He&#39;<strong>s out for a moment</strong>. 외출중야.
He&#39;<strong>s dozed off</strong> during the meeting.
<strong>Put</strong> your <strong>phone on vibration mode</strong> at the theater.
Turn left at the <strong>intersection</strong>.
He<strong>&#39;s at work</strong>. 근무중야.
I think I can make it <strong>by then</strong>.
I want <strong>everything ready</strong> by tomorrow.
I was sick <strong>in bed all day long</strong> yesterday.
Today was a very busy day <strong>as usual</strong>.
He <strong>is not in at the moment</strong>. 잠깐 자리 비웠어여.
There are various <strong>cultural facilities</strong> around here.
There was a restaurant here but <strong>it was gone</strong>.
There were so many <strong>ups and downs</strong> in his life.
It&#39;s almost <strong>the end of the year</strong>.
It is so <strong>humid</strong> and <strong>sticky</strong>. 장마 싫어여..
<strong>What day is it today? Is it Friday yet</strong>?
<strong>It was a really long day</strong>. 넘 힘들었다..
My friend <strong>gave me a ride</strong> here.
I can <strong>give</strong> you <strong>a</strong> <strong>ride</strong> there.
He <strong>offered</strong> me the job.
My mom sent me apples <strong>by parcel delivery</strong>.
We don&#39;t have much time <strong>left</strong>.
I don&#39;t have much <strong>cash with me</strong> now.
He&#39;<strong>s got</strong> a lot of <strong>pull</strong>.</p>
<ul>
<li><strong>pull</strong> [cn] : the ability to attract someone or have a powerful effect on them
She&#39;<strong>s got</strong> a lot of <strong>guts</strong>.</li>
<li><strong>guts</strong> : the courage and determination you need to do something difficult or unpleasant</li>
</ul>
<p><strong>You don&#39;t ack like yourself these days</strong>. 너답지않게 왜이래?
He <strong>takes good care of himself</strong>. 자기관리 잘하던데.
I <strong>was full of myself</strong> back then. 철이 없었져..</p>
<p>My <strong>weak point</strong> is that I <strong>can&#39;t treat others harshly</strong>.</p>
<blockquote>
<p>harshly[adj] : harsh conditions are difficult to live in and very uncomfortable</p>
</blockquote>
<p>I don&#39;t like summer because I can&#39;t stand <strong>the heat</strong>.
<strong>I was often breathless</strong>, so I had to quit smoking.
Before I choose my major, I had to consider my <strong>aptitude</strong>.</p>
<p>You must <strong>be out of your mind</strong>.
You must be kidding! It cannot be true.</p>
<p>My goal for this year is to <strong>get first place</strong> in my class.
It&#39;s not easy to pass <strong>the state exam</strong>.
It&#39;s almost impossible to <strong>get</strong> this <strong>stain out</strong>.</p>
<p>I often <strong>get away from</strong> the city to <strong>get rid of stress</strong>.
He will do <strong>anything</strong> to <strong>succeed in</strong> his life.
I&#39;<strong>m honored to</strong> be here.
I<strong>&#39;m sad to hear</strong> that.</p>
<p>He has no time to <strong>talk with</strong> you.
He has <strong>every</strong> reason to complain about it.</p>
<p>I <strong>was scolded by</strong> the teacher.</p>
<blockquote>
<p><strong>scold</strong> [v] : to angrily criticize someone, especially a child, about something they have done</p>
</blockquote>
<p>You<strong>&#39;re</strong> always forget<strong>ting</strong> things. 나한테 하는 말인가..?🙄</p>
<p>Summver vacation <strong>is coming to an end</strong>.</p>
<p>I don&#39;t like to et** canned food<strong>.
I bought a **used car</strong> at a low price.
I had a hard time <strong>paying off the loan</strong>.
I spend the weekend <strong>sitting around at home</strong>.
I&#39;m sorry <strong>for making a noise</strong>.
I didn&#39;t know <strong>how to deal with stress</strong>.
I don&#39;t know <strong>whom to trust</strong>.
Do you know what to do <strong>in case of fire</strong>?
He <strong>doesn&#39;t mind</strong> <strong>working late</strong> or working on holidays.
I regret <strong>saying such a thing</strong> to her.
He forgot <strong>borrowing some money **for me.
I&#39;m</strong> tired from** not getting enough sleep at night.
He&#39;s good at <strong>mimicking</strong> other people&#39;s voices.
I<strong>&#39;m accustomed to</strong> eating spicy food.
I<strong>&#39;m bitten by mosquitos</strong> a lot in summer.
<strong>I&#39;ve never seen you act like this before.</strong>
She has never met him** in person**.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[IT 용어 기록방]]></title>
            <link>https://velog.io/@charming_12/IT-%EC%9A%A9%EC%96%B4-%EA%B8%B0%EB%A1%9D%EB%B0%A9</link>
            <guid>https://velog.io/@charming_12/IT-%EC%9A%A9%EC%96%B4-%EA%B8%B0%EB%A1%9D%EB%B0%A9</guid>
            <pubDate>Sun, 20 Jun 2021 11:39:14 GMT</pubDate>
            <description><![CDATA[<p>IT 기술용어나 기억해두고 볼 키워드
&#39;IT좀 아는 사람&#39; 이 책 쏙쏙 들어온다 재밌옹 👍👍</p>
<p><strong>REST (Representational Safe Transferful) API</strong>
 : HTTP URI + HTTP Method</p>
<ul>
<li>HTTP와 URI기반으로 자원에 접근할 수 있도록 제공하는 App 개발 인터페이스</li>
<li>HTTP URI를 통해 제어할 자원을 명시 
 &amp; HTTP Method(GET,POST,PUT,DELETE)를 통해 해당 자원을 제어하는 명령을 내리는 방식의 아키텍쳐</li>
</ul>
<p><strong>맵리듀스 (MapReduce)</strong></p>
<ul>
<li>Map단계 : 친구들이 각 동네 주민을 세는 것(병렬로)</li>
<li>Reduce단계 : 친구들이 통보한 결과를 취합하는 것
ex) 한 도시의 인구를 일일이 센다고 가정했을때, 동네마다 친구를 한 명씩 투입해서 몇 사람이 사는지 세어달라고 한다. 친구들이 조사한 인구수를 알려주면 다 합해서 총 인원을 센다.
=&gt; Hadoop도 맵리듀스를 이용
(넷플, 이베이, 페이스북 등이 하둡을 이용)</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[진짜 미국식 영어1]]></title>
            <link>https://velog.io/@charming_12/%EC%A7%84%EC%A7%9C-%EB%AF%B8%EA%B5%AD%EC%8B%9D-%EC%98%81%EC%96%B41</link>
            <guid>https://velog.io/@charming_12/%EC%A7%84%EC%A7%9C-%EB%AF%B8%EA%B5%AD%EC%8B%9D-%EC%98%81%EC%96%B41</guid>
            <pubDate>Sun, 13 Jun 2021 04:10:44 GMT</pubDate>
            <description><![CDATA[<p><strong>넌 눈이 너무 높아.</strong>
You <strong>set the bar</strong> too high.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[1. '구글 클라우드 플랫폼 입문' 책보며 공부하기]]></title>
            <link>https://velog.io/@charming_12/1.-%EA%B5%AC%EA%B8%80-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%ED%94%8C%EB%9E%AB%ED%8F%BC-%EC%9E%85%EB%AC%B8-%EC%B1%85%EB%B3%B4%EB%A9%B0-%EA%B3%B5%EB%B6%80%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@charming_12/1.-%EA%B5%AC%EA%B8%80-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%ED%94%8C%EB%9E%AB%ED%8F%BC-%EC%9E%85%EB%AC%B8-%EC%B1%85%EB%B3%B4%EB%A9%B0-%EA%B3%B5%EB%B6%80%ED%95%98%EA%B8%B0</guid>
            <pubDate>Sat, 29 May 2021 13:35:29 GMT</pubDate>
            <description><![CDATA[<p>상반기 고과를 위한 목적으로 따는 GCP 자격증.
요즘 왜이렇게도 공부가 하기 싫은건지.. 
이 책을 e-BOOK으로 결제하고도 도서관에서 실물 책을 빌려오고도 
펴서 실습하기가 쉽지 않았다..ㅠ</p>
<p>드디어 5월의 마지막 주말에 몰아서 한 책을 끝내버리려고 책을 폈다.
다행히 정말 입문자를 위해 상세히 써준 책이라 너무 감사하다 ㅠㅠ
남들 다 하는 AWS보다 왠지모르게 Google의 많은 서비스를 이용하고 있는 유저로서, GCP를 따고 싶어서 도전했는데..
영어로 나오는 시험 문제와 AWS에 비해 준비/시험에 대한 상세 정보가 없어서 고군분투가 예상된다.</p>
<p>암튼, 회사에서 지원해줬던 GCP 속성강의를 본 뒤라 그런지
이 책의 상세한 설명들이 쏙쏙들이 이해됐다. 물론 그렇다고 다 기억나는건 아니지만... 어느정도 프로세스를 익혀가고 있달까..?</p>
<p>아래부터는 기억력이 좀 딸리는 내가 미래의 나에게 주는 메모장이다.
보고 또 봐야 하니까</p>
<blockquote>
<p><strong>GAE</strong> : Google App Engine
<strong>GCE</strong> : Google Compute Engine
<strong>GKE</strong> : Google Kubernetes Engine
<strong>GCP</strong> : Google Cloud Platform</p>
</blockquote>
<p>GCP가 제공하는 서비스는 App 개발과 실행에 필요한 컴포넌트를 추상화된 API 서비스로 제공한다.</p>
<blockquote>
<p><strong>PoP</strong> (Point of Presence) 
외부사용자가 GCP 리소스에 접근하는 경우, 출발지에서 가장 적합한 PoP을 경유하여 내부 네트워크를 통해서 목적지의 리소스에 도달.
GCP 위에 App을 배포하면 Google이 가진 내부 네트워크를 이용해 전 세계 사용자에게 app 서비스를 제공.</p>
</blockquote>
<blockquote>
<p><strong>Google Cloud SDK</strong> : GCE/GAE/Cloud Storage/BigQuery/CloudSQL/CloudDNS 등의 GCP 서비스를 관리하기 위한 도구와 라이브러리를 포함한 것
(※SDK : Software Development Kit)</p>
</blockquote>
<p><strong>Web app과 Native app</strong></p>
<ul>
<li>Web app : 
네트워크에 있는 웹 서버에서 처리가 이뤄진 다음, 처리 결과가 브라우저에표시
서버에 대한 네트워크 통신이 가능한 환경이라면 컴퓨터, 스마트폰, 태블릿 등 브라우저가 이용할 수 있는 단말기에서 플랫폼 상관없이 이용할 수 있음</li>
<li>Native app
app을 설치한 단말기나 컴퓨터에서 처리를 수행(즉, 실행하는 플랫폼의 H/W나 OS에 의존)
플랫폼의 고유 기능을 이용할 수 있는 개발의 자유도가 높고, 처리속도가 빠르지만 각 플랫폼마다 다르게 개발해야함</li>
</ul>
<blockquote>
<p><strong>HTTP</strong> (Hyper Text Transfer Protocol) 
 : 브라우저와 웹서버 사이에서 html 등의 콘텐츠 송수신에 이용되는 통신 프로토콜
(※ http통신은 데이터를 암호화하지 않기에 통신 경로중 어딘가에서 내용이 도청될 가능성 있음 =&gt; 암호화된 HTTPS 사용해야함)</p>
</blockquote>
<p>SQL의 명령어</p>
<p>1) DDL (Data Definition Language) : creat, drop, alter
2) DML (Data Manipulation Languate) : insert, update, delete, select 
3) DCL (Data Control Language) : 접근 제어, 상태관리, 권한 설정, 트랙잭션 처리 등</p>
<p>저장 프로시저(Stored Procedure) 
 : 여러 SQL문에서 비롯된 처리를 하나의 절차로 다시금 DB에 등록해두고 임의의 타이밍에 실행하는 구조</p>
<p>서버 가상화 관련해서 이해가 안되는데 뒤에서 배울때 다시 한번 확인해보자 (p.73-75 2.1.3 서버 가상화 기술의 기초)</p>
<blockquote>
<p><strong>웹 시스템에서 이용하는 주요 GCP 서비스</strong></p>
</blockquote>
<ol>
<li>가상머신에 접속가능한 저장소
1) 영구디스크 : 네트워키 경유로 접속
2) 로컬 SSD : 가상머신이 동작하는 물리 서버에 직결, IOPS 매우 높고 레이턴시 매우 낮음
(※ IOPS : 디스크가 1초에 처리할 수 있는 I/O 접근 횟수)</li>
</ol>
<blockquote>
<p>오브젝트 저장소인 <strong>Cloud Storage</strong>
전 세계에 엣지 캐시를 가지기 때문에 사용자가 어디에 있어도 오브젝트에 빠르게 접근할 수 있다
(※ 엣지 서버 캐시 : 이미지, HTML 및 Javascript 파일과 같은 정적 자산을 요청 클라이언트 시스템에 최대한 가깝게 이동시켜 웹 자원로드에 소요되는 시간을 줄일 수 있음
-&gt; 그럴싸한 설명이지만 정확한 것인지는 모르겠음</p>
</blockquote>
<ul>
<li>출처 : <a href="https://limelightkr.co.kr/cdn-%EC%97%A3%EC%A7%80-%EC%84%9C%EB%B2%84%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C/#:~:text=%EC%97%A3%EC%A7%80%20%EC%84%9C%EB%B2%84%20%EC%BA%90%EC%8B%9C%EB%8A%94%20%EC%9D%B4%EB%AF%B8%EC%A7%80,%EC%8B%9C%EA%B0%84%EC%9D%84%20%EC%A4%84%EC%9D%BC%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4">https://limelightkr.co.kr/cdn-%EC%97%A3%EC%A7%80-%EC%84%9C%EB%B2%84%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C/#:~:text=%EC%97%A3%EC%A7%80%20%EC%84%9C%EB%B2%84%20%EC%BA%90%EC%8B%9C%EB%8A%94%20%EC%9D%B4%EB%AF%B8%EC%A7%80,%EC%8B%9C%EA%B0%84%EC%9D%84%20%EC%A4%84%EC%9D%BC%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4</a>.)</li>
</ul>
<p>데이터 복제본을 여러 곳에 배치한 다음, 체크섬으로 데이터 부정합의 회복 기능을 사용하여 높은 확장성을 만들어냄.</p>
<p>1) Bucket : 오브젝트 저장하기 위한 바구니
2) Object : 버킷안에 저장하는 파일</p>
<p><strong>네트워크 설정</strong>
기본적으로 SSH, RDP, ICMP를 제외한 외부 네트워크에서 받는 모든 트래픽이 블록되어있음</p>
<ul>
<li>HTTP 트래픽 허용 : VM인스턴스에 &#39;http-server&#39; 태그가 붙음</li>
</ul>
<p><strong>$sudo apt-get -y update</strong>
: 게스트OS인 Debian 패키지 관리 시스템의 인덱스 업데이트
※ 패키지 관리 시스템 : app설치시에 발생하는 의존 관계를 한번에 관리하는 시스템</p>
<ul>
<li>YUM(Yellodog Updater Modified) : Red Hat 계열(CentOS, Fedora)의 배포판에서 이용되는 패키지 관리 시스템</li>
<li>yum 명령어로 저장소에서 패키지를 ㅐ려받아 app 설치, 삭제, 업데이트 등을 진행 (의존관계 확인하여 관련 패키지도 자동 설치됨)</li>
<li>APT(Advanced Packaging Tool) : Debian 계열(Ubuntu, Debian)의 배포판에서 이용되는 패키지 괄 ㅣ시스템</li>
</ul>
<blockquote>
<p><strong>Cloud SQL Proxy</strong>
 : VM인스턴스와 Cloud SQL 인스턴스 사이의 통신을 중계</p>
</blockquote>
<ul>
<li>VM인스턴스의 어플리케이션에서는 로컬호스트 UNIX 소켓을 거쳐서 Cloud SQL 인스턴스의 접속 이름으로 DB 접속
(송수신되는 데이터는 자동 암호화)</li>
<li>Cloud SQL Proxy, 인스턴스 연결 이름 : gcp-compute-engine-0523:asia-northeast3:websql</li>
</ul>
<p><strong>$ wget</strong> <a href="https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64">https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64</a> 
proxy 바이너리 파일을 내려받을려고 명령어를 치니까 &#39;-bash  : wget : command not found&#39; 가 떠서 wget을 인식못하는거 같았음
-&gt; $ sudo apt-get install wget 내려받음</p>
<blockquote>
<p>*<em>$ chmod +x cloud_sql_proxy
$ sudo chmod 777 /cloudsql
파일 권한 구분 : 읽기(4), 쓰기(2), 실행(1) *</em></p>
</blockquote>
<ul>
<li>777 : 소유자권한/그룹사용자권한/기타사용자권한 모두 읽기+쓰기+실행 권한 부여</li>
<li>rwxr-xr-x 1 jinny7595 jinny7595 15638195 Apr 21 21:26 cloud_sql_proxy</li>
</ul>
<p><strong>ACL (Access Control List)</strong>
 : 패킷 필터링 룰을 모은 목록</p>
<ul>
<li>패킷 : 네트워크를 흐르는 데이터 덩어리 (통신에 필요한 송/수신처의 IP주소와 포트번호 포함)</li>
</ul>
<p><strong>라우터</strong> : 두 개 이상의 다른 서브넷 사이의 패킷을 중계하기 위한 기기</p>
<blockquote>
<p><strong>부하 분산기(Load Balancer)</strong>
 : 클라이언트에서 요청을 일정 알고리즘에 따라 여러 서버로 분담시키는 부하 분산 전용 네트워크 기기</p>
</blockquote>
<ul>
<li>Round Robin : 요청을 균등하게 분담시키는 알고리즘</li>
<li>Health Check : 서버의 상태 확인<ul>
<li>SPOF (Single Point Of Failure) : 단일 장애점</li>
</ul>
</li>
</ul>
<p>*<em>OpenFlow *</em>: 네트워크 제어를 관리하는 컨트롤 플레인을 네트워크 기기에서 뗴어내 서버에 실행하는 소프트웨어로 구현
OpenFlow에서 네트워크 기기를 집중적으로 제어함으로써 단일 물리 네트워크에 마치 여러 네트워크가 존재하는 것처럼 보이게 함</p>
<p><strong>Name Resolving (이름 해결)</strong> : 도메인이름 &lt;-&gt; IP주소 변환</p>
<blockquote>
<p><strong>Docker</strong>
핫한 Docker에 대한 설명을 읽어보니까 현재 나의 상황과 대비대면서 너무 편리할 거 같은 기능이다
ex) 개발 협력사에게 운영중인 소스를 전달해야할때 환경설정파일을 Docker 이미지파일로 설정해서 전달해주면, 협력사원들은 Docker 이미지를 다운받아서 개발할 수 있는, 굉장히 효율적인 방법인거 같은데..</p>
</blockquote>
<p>1) App개발 : 개발한 Web app 소스코드를 Git에 저장 &amp; app 실행 모듈 빌드 준비 &amp; Dockerfile 생성(실행모듈과 app실행에 필요한 OS, Network, storage 등의 구성정보를 명시한 파일)</p>
<p>2) 테스트 :
git의 코드를 바탕으로 app 실행 모듈 빌드 
 ☞ Dockerfile을 사용해 실행모듈을 포함한 Docker 이미지(app실행에 필요한 인프라설정, 빌드가 끝난 실행 모듈=설치 이미지) 빌드 </p>
<p>3) 실제 운영환경으로 배포</p>
<blockquote>
<p><strong>Provisioning Tool(프로비저닝 도구)</strong>
 : 네트워크와 OS를 포함한 서버구성을 자동으로 구축하고 관리하거나 미들웨어나 app의 정의파일을 자동으로 만들고 여러 서버에 대해 app일괄 배포 등의 구성 관리를 위한 도구까지 다양함.</p>
</blockquote>
<blockquote>
<p> *<em>Immutable Infrastructure *</em>
app 실행환경을 변경할때 Dockerfile을 수정해서 새롭게 빌드한 Docker 이미지로 실행환경을 바꾸지, 직접 실행환경 인프라를 변경할 필요없는 방법</p>
</blockquote>
<blockquote>
<p><strong>Clustering (클러스터링)</strong>
여러 서버를 엮어서 이용자나 외부 시스템에 대해서 전체로 한 대의 컴퓨터인 것처럼 보이게 하는 기술
-&gt; 서버 한 대가 장애가 나더라도 시스템이 멈추지 않도록 여러 대의 서버를 엮는 것</p>
</blockquote>
<ul>
<li>장애 시스템 전환 방식
① Cold Standby : 구성/설정이 같은 서버 or 네트워크 기기를 백업으로 준비(전원 off)
② Hot Standby : 동일 구성의 서버를 동시에 운용, 장애 발생 시, 다른 한 대가 교대해서 처리를 이어서 계속하는 구성방식</li>
<li></li>
<li><em>Failover(페일오버)*</em> : 장애가 발생한 서버 or 네트워크 기기를 시스템에서 자동으로 분리해 예비기로 전환하는 것(by software)</li>
<li></li>
<li><ul>
<li>Health Check(상태확인) **: 운용 장비에서 장애가 발생하는 것을 감지하는 구조 (ex. ping 응답확인, 80포트 응답확인 등)</li>
</ul>
</li>
</ul>
<blockquote>
<p><strong>컨테이너 오케스트레이션 도구</strong>
 : 컨테이너의 시작/정지 등의 제어 &amp; 호스트끼리의 네트워크 접속과 스토리지 관리, 스케줄링 기능 등 컨테이너를 통합 관리할 수 있는 도구
 ex) Docker Engine, Apache Mesos/Marathon, Kubernetes</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[About Investment]]></title>
            <link>https://velog.io/@charming_12/About-Investment</link>
            <guid>https://velog.io/@charming_12/About-Investment</guid>
            <pubDate>Sat, 22 May 2021 14:43:11 GMT</pubDate>
            <description><![CDATA[<p><strong>Q1-1. Do you think investment is necessary? If so, when is the appropriate period you must do?</strong>
I think investment is necessary. All people have to do something whatever the investment way is.
Considering inflation, savings and installment savings are negative. I mean, we need to invest stocks. Although I don&#39;t know much about stocks and economy, I&#39;m investing in ETF. I think it is better than only saving money or open installment savings.</p>
<p>*<em>Q1-2. How big portion of investing is tolerable? *</em></p>
<ul>
<li>tolerable [adj] : a situation that is tolerable is not very good, but you are able to accept it </li>
<li>methodology [cn] : the set of methods and priniciples that you use when studying a particular subject or doing a particular kind of work </li>
</ul>
<p>It depends on the person. In my case, I&#39;m a quite Risk-taker person. and I organize my money plan. It&#39;s not a big deal. I just think how to plan ahead my money. I always keep a financial ledger. I use google spreadsheet tool. 
Recently, I decided to recognize my portfolio. It hasn&#39;t finished yet. 
First, I&#39;ve calculated the income I&#39;ll earn by this year. I divided into three ways : cash(savings), pensions, and stock. and set the ratio for each item. Stock is 60%, cash(savings) is 32% and the last one, pension is 8%. 
I put aside little amount of money every month in installment saving plan. and I try to save as much money as I can. I&#39;m well aware that not spending money is the best way to manage my money.
I&#39;ll have to start studying of ways to invest it if I want to see it grow.</p>
<ul>
<li>ledger [cn] : a book in which a business, bank, etc records how much money it receives and spends</li>
</ul>
<p>*<em>Q2-1. What type of investor you think you are? *</em></p>
<ul>
<li>Risk-averse : People who are not taking risks and prefer the safe way to make money</li>
<li>averse [adj] : unwilling to do something or not liking something</li>
<li>Risk-taker : People who are willing to take a risk to make a profit but not as much of risk-lovers. It&#39;s between averse-type and lover-type</li>
<li>Risk-lovers : Someone who is crazy to make a profit with a dangerous methodology such as DOGGY-COIN</li>
</ul>
<p><strong>Q3. If you are good with telling what type of investor you are, please identify the mothodology you are using.</strong></p>
<p><strong>Q4. Let say your darling failed with the investment. He/She lost most of their cash through their investment.
In that case, what is your reaction? (You are in a quite sincere relation.)</strong></p>
<p><strong>Q5. What do you guys think the most soundest investment method is?</strong>
I think that investing stocks is a good way. I hope people who invest in stocks at least study. </p>
<ul>
<li>sound [adj] : in good condition</li>
</ul>
<p><strong>Q6. What activity/experience is memorable in your life to enhance your self-development?</strong></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[묵혀놨던 나의 투두리스트]]></title>
            <link>https://velog.io/@charming_12/TODOLIST</link>
            <guid>https://velog.io/@charming_12/TODOLIST</guid>
            <pubDate>Sun, 16 May 2021 15:07:20 GMT</pubDate>
            <description><![CDATA[<p>주말마다 아침 7시부터 오후 5시까지 파리바게트에서 6개월동안 알바했다.
용돈벌기위해 시작했던 일이지만
다른 친구들에 비해 공부할 시간이 없어서 나름 쫄렸었던걸로 어렴풋이 기억난다.
그때 틈틈히 공부했던게 오히려 시간을 더 잘 활용한 것인지
그당시의 성적이 대학 4년중 제일 높았다.</p>
<p>그리고 그게 끝이었나부다....ㅎ</p>
<p>대학을 졸업한지도 8년이 지나고
3년동안 어떻게 다녔지 싶을 영어회화 학원도 그만둔지 5개월차고
너무나도 바쁜팀에서 정신없이 일하느라 집에 오면 아무것도 하기 싫은 사실+핑계로 인해 나의 투두리스트가 1년째 묵혀두고 있는거 같다.</p>
<p>이번 상반기 고과에 조금 더 좋은 점수를 위해,
그리고 비전공자인 사촌동생의 DS 로드맵을 나도 같이 알아보기 위해,
천천히 두드려가며 공부해야겠다😤</p>
<p>기억력이 좀 나쁜 나를 위해 시작한 이 블로그
여기에 계획, 정리, 실천하면서 하나하나씩 쌓아봐야겠다.</p>
<blockquote>
<p>묵혀놓은 단지 (전공관련)</p>
</blockquote>
<h3 id="이런저런-상식들-눈팅하기">이런저런 상식들 눈팅하기</h3>
<p>*<em>얄팍한 코딩사전 *</em>(<a href="https://www.youtube.com/channel/UC2nkWbaJt1KQDi2r2XclzTQ">https://www.youtube.com/channel/UC2nkWbaJt1KQDi2r2XclzTQ</a>)
주로 회사 업무에만 치우쳐 주변을 보지 못하던 나를 위한,
다양한 개념들에 대해 쉽게 이해할 수 있는 컨텐츠들 정독</p>
<h3 id="gcp-associate-certification-따기-">*<em>GCP Associate Certification 따기 *</em></h3>
<p>한번에 상반기 자격증 취득까지는 목표가 아니지만
일단 공부해서 자격증 시험까지 보는 것이 목표!</p>
<p>사실, GCP관련 강의를 한번 듣고 실습을 따라해보았지만 휘발된거 같다.ㅎ</p>
<p>이 블로그에서 배운거 정리해놓고 시험 준비를 해야겠다</p>
<p><strong>1. 코세라 강의</strong>
영어에 대한 울렁증은 없지만 저 많은 강의수와 용어에 대해 제대로 해석할 수 있을지 걱정이 된다...^^..</p>
<p>7일간 무료 사용할 수 있다고 하니, 일단 주말에 시작해야겠고만</p>
<p><strong>Google Cloud Product Fundamentals</strong>
(<a href="https://www.coursera.org/learn/google-cloud-product-fundamentals?action=enroll">https://www.coursera.org/learn/google-cloud-product-fundamentals?action=enroll</a>)
-&gt; 5시간이 필요</p>
<p>*<em>Preparing for the Google Cloud Associate Cloud Engineer Exam *</em>(<a href="https://www.coursera.org/learn/preparing-cloud-associate-cloud-engineer-exam?index=prod_all_products_term_optimization&amp;productDifficultyLevel=Beginner">https://www.coursera.org/learn/preparing-cloud-associate-cloud-engineer-exam?index=prod_all_products_term_optimization&amp;productDifficultyLevel=Beginner</a>)
-&gt; 8시간이 필요</p>
<p><strong>2. 유튜브 관련 동영상 12강</strong>
(<a href="https://www.youtube.com/watch?v=z6WOMYI-WiU&amp;list=PL1jdJcP6uQttVWZTd1X2x22kv32Rhkiyc">https://www.youtube.com/watch?v=z6WOMYI-WiU&amp;list=PL1jdJcP6uQttVWZTd1X2x22kv32Rhkiyc</a>)</p>
<p><strong>3. eBook으로 결제한 책 빠르게 훑기</strong></p>
<ol>
<li>&#39;구글 클라우드 플랫폼 입문 - 웹부터 머신러닝을 이용한 클라우드 애플리케이션까지&#39;</li>
<li>빠르게 훑어보는 구글 클라우드 </li>
</ol>
<h3 id="생존을-위한-sql-튜닝-공부">생존을 위한 SQL 튜닝 공부</h3>
<p>내가 운영하는 사이트는 DB서버와 인프라의 문제가 자주 발생한다
기하급수적으로 발생하는 데이터들 때문에...
이 팀에 오기전까지 개발자가 DBA만큼의 인프라, DB 지식을 알아야돼? 했는데... 생존을 위해 이것저것 줏어듣고 있다
이 공부는 사실 작년부터 내맘속에 떠들어댔던건데 아직까지 못한 내가 부끄럽지만, 시작이 반이니까!!!!!!</p>
<p>*<em>친절한 SQL 튜닝책으로 공부 *</em>
-&gt; 한번에 쏵 이해되지 않는다. 적어도 3번은 반복해서 읽고 습득할 것</p>
<p>화이팅!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[git 강의 요약]]></title>
            <link>https://velog.io/@charming_12/git-%EA%B0%95%EC%9D%98%EC%9A%94%EC%95%BD</link>
            <guid>https://velog.io/@charming_12/git-%EA%B0%95%EC%9D%98%EC%9A%94%EC%95%BD</guid>
            <pubDate>Sun, 16 May 2021 13:52:53 GMT</pubDate>
            <description><![CDATA[<p><strong>&#39;Git, GitLab의 이해와 실무 활용&#39; 란 강의를 듣고 정리</strong></p>
<blockquote>
<p>$git init</p>
</blockquote>
<ul>
<li>git의 핵심폴더인 .git 폴더 생성됨</li>
<li>git을 통해 해당 프로젝트에서 변경되는 파일들에 대한 추적/관리 가능
master라는 기본 브런치 생성됨</li>
</ul>
<p>​</p>
<blockquote>
<p>원격저장소 연결</p>
</blockquote>
<pre><code>$ git clone 연결할 git주소</code></pre><ul>
<li>1) clone 하기​</li>
</ul>
<pre><code>$ git remote add origin 연결할 git주소</code></pre><ul>
<li>2) 로컬저장소 생성 -&gt; 초기화(git init) -&gt; 원격저장소 연결 (git remote add)
​</li>
</ul>
<pre><code>$ git remote -v</code></pre><ul>
<li>원격저장소 상세정보 확인</li>
</ul>
<p>​</p>
<blockquote>
<p>작업디렉토리의 파일 상태</p>
</blockquote>
<p>1) Untracked
: 변경점을 발생했으나 git에 의해 관리되지 않은 파일, 단 한번도 staging area에 포함되지 않은 파일</p>
<pre><code>$ git add TestService.java</code></pre><ul>
<li>staging area에 추가</li>
</ul>
<pre><code>$ git status</code></pre><p>On branch master​
No commits yet​
Changes to be committed:
(use &quot;git rm - cached <file>…&quot; to unstage)
new file: TestService.java​​
　
　</p>
<pre><code>$ git commit
$ git commit -m &quot;&quot;</code></pre><p>로컬저장소에 영구 저장
​</p>
<pre><code>$ git commit - amend</code></pre><p>마지막 반영한 커밋메시지 수정하고 싶을때
​</p>
<pre><code>$ git revert commitID</code></pre><p>원복
​​</p>
<pre><code>$ git pull origin master</code></pre><p>원격저장소에 반영</p>
<pre><code>$ git push origin master</code></pre><p>원격저장소의 내용이 로컬저장소에 먼저 반영(update)​
​​</p>
<blockquote>
<p><strong>브랜치 branch</strong>
branch는 일종의 포인터, 커밋지점을 가리킨다.</p>
</blockquote>
<pre><code>$ git branch</code></pre><p>현재 브랜치를 확인하는 명령어
​</p>
<pre><code>$ git checkout feature-login</code></pre><p>브랜치 변경(이동)
​</p>
<pre><code>$ git log - all - graph</code></pre><pre><code>$ git checkout -b issue</code></pre><p>브랜치 생성과 동시에 이동
​</p>
<pre><code>$ git merge issue (master와 병합)</code></pre><p>브랜치 병합
: 기준이 되는 브랜치로 이동해서 병합해야 한다!
​- 3-Way Merge 방식으로 병합한다</p>
<p>​</p>
<pre><code>$ git branch -d issue</code></pre><p>브랜치 삭제</p>
<pre><code>$ git branch -v</code></pre><p>​</p>
<pre><code>$ git mergetool</code></pre><p>브랜치 충돌(conflict) 해결하기</p>
<p>1) 직접 merge하기
2) 툴사용하기</p>
<hr>
<blockquote>
<p>tag : 특정 시점의 소스코드 정보를 기록함</p>
</blockquote>
<pre><code>$git tag [태그명]</code></pre><p>lightweight 태그 생성</p>
<pre><code>$git tag -a [태그명] -m [태그메시지]</code></pre><p>annotated 태그 생성</p>
<pre><code>$git tag -a v1.0 -m &quot;Implemented login feature&quot;</code></pre><pre><code>$git log</code></pre><p>commit 56d68d751873b5a68216e1278fef7de78c608958 (HEAD -&gt; master, tag: v1.0, origin/master)</p>
<pre><code>$git show v1.0</code></pre><p>태그 상세정보 확인하기</p>
<pre><code>$git log - online</code></pre><p>태깅하고자 하는 커밋의 ID값 확인</p>
<pre><code>$git tag -a v0.1 24b56ff -m &quot;fix issue number-1&quot;</code></pre><p>커밋ID값을 인자로 태깅하기</p>
<blockquote>
<p>GitFlow 모델 </p>
</blockquote>
<p>1) feature
 : 기능을 개발하는 브랜치
 - 기능개발 완료 or 스프린트 주기 종료시, develop 브랜치로 merge후 삭제됨</p>
<p>2) release
 : 배포준비 브랜치
 - 배포가능 상태가 되면 master 브랜치로 병합 &amp; tag명시
 - 이슈에 대한 수정사항은 반드시 develop 브랜치에 병합해야 함</p>
<p>3) hotfixs
 : 긴급용(장애 및 버그발생 대응) 브랜치
 - master 브랜치로부터 분기, 이슈에 대한 수정후 master, develop 브랜치에 최종 반영되어야 함</p>
<p><strong>feature</strong></p>
<pre><code>$git flow feature start [개발할 기능명]</code></pre><pre><code>$ git branch</code></pre><p>develop</p>
<ul>
<li>feature/login
 master</li>
</ul>
<p>$vi LoginService.java
$git add LoginService.java
$git commit -m &quot;Commit#1 on feature/login branch&quot;
$git log</p>
<pre><code>$git flow feature finish [개발할 기능명]</code></pre><p>기능개발 완료</p>
<p>Fast-forward
 gitflow_test/LoginService.java | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 gitflow_test/LoginService.java
Deleted branch feature/login (was 694c031).
Summary of actions:</p>
<ul>
<li>The feature branch &#39;feature/login&#39; was merged into &#39;develop&#39;</li>
<li>Feature branch &#39;feature/login&#39; has been locally deleted</li>
<li>You are now on branch &#39;develop&#39;</li>
</ul>
<p><strong>release</strong></p>
<pre><code>$git flow release start [버전명]</code></pre><pre><code>$ git branch</code></pre><p>develop
 master</p>
<ul>
<li>release/1.0</li>
</ul>
<pre><code>$git flow release finish [버전명]</code></pre><p>Switched to branch &#39;master&#39;
Merge made by the &#39;recursive&#39; strategy.
 gitflow_test/LoginService.java | 1 +
 gitflow_test/MainService.java | 2 ++
 2 files changed, 3 insertions(+)
 create mode 100644 gitflow_test/LoginService.java
 create mode 100644 gitflow_test/MainService.java
Already on &#39;master&#39;
Switched to branch &#39;develop&#39;
Merge made by the &#39;recursive&#39; strategy.
 gitflow_test/MainService.java | 1 +
 1 file changed, 1 insertion(+)
Deleted branch release/1.0 (was af83558).
Summary of actions:</p>
<ul>
<li>Release branch &#39;release/1.0&#39; has been merged into &#39;master&#39;</li>
<li>The release was tagged &#39;1.0&#39;</li>
<li>Release tag &#39;1.0&#39; has been back-merged into &#39;develop&#39;</li>
<li>Release branch &#39;release/1.0&#39; has been locally deleted</li>
<li>You are now on branch &#39;develop&#39;</li>
</ul>
<pre><code>$ git log - oneline</code></pre><p>a3dd93a (HEAD -&gt; develop) Merge tag &#39;1.0&#39; into develop
7e90a02 (tag: 1.0, master) Merge branch &#39;release/1.0&#39;
af83558 Commit#3 on release/1.0 branch
668d973 Commit#2 on develop branch
694c031 Commit#1 on feature/login branch
62f2db4 A Developer : Commit 1 for AService</p>
<p><strong>hotfix</strong></p>
<pre><code>$git flow hotfix start issue#1
$git flow hotfix finish issue#1</code></pre><p>Switched to branch &#39;master&#39;
Merge made by the &#39;recursive&#39; strategy.
 gitflow_test/MainService.java | 1 +
 1 file changed, 1 insertion(+)
Switched to branch &#39;develop&#39;
Merge made by the &#39;recursive&#39; strategy.
 gitflow_test/MainService.java | 1 +
 1 file changed, 1 insertion(+)
Deleted branch hotfix/issue#1 (was 7242e4c).
Summary of actions:</p>
<ul>
<li>Hotfix branch &#39;hotfix/issue#1&#39; has been merged into &#39;master&#39;</li>
<li>The hotfix was tagged &#39;issue#1&#39;</li>
<li>Hotfix tag &#39;issue#1&#39; has been back-merged into &#39;develop&#39;</li>
<li>Hotfix branch &#39;hotfix/issue#1&#39; has been locally deleted</li>
<li>You are now on branch &#39;develop&#39;
​</li>
</ul>
]]></description>
        </item>
    </channel>
</rss>