<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>u-g-1.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Thu, 21 Jul 2022 04:21:23 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>u-g-1.log</title>
            <url>https://velog.velcdn.com/images/u-g-1/profile/ef7acd33-75c0-4c3f-bf14-a9b4b66a2535/image.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. u-g-1.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/u-g-1" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[Git] 맥(Mac)에서 Git 설치하기]]></title>
            <link>https://velog.io/@u-g-1/Git-%EB%A7%A5Mac%EC%97%90%EC%84%9C-Git-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@u-g-1/Git-%EB%A7%A5Mac%EC%97%90%EC%84%9C-Git-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0</guid>
            <pubDate>Thu, 21 Jul 2022 04:21:23 GMT</pubDate>
            <description><![CDATA[<h2 id="homebrew-다운로드">Homebrew 다운로드</h2>
<ol>
<li>Git 홈페이지 접속</li>
</ol>
<p><a href="https://git-scm.com/">https://git-scm.com/</a> 링크를 클릭하여 Git 홈페이지에 접속 한다다.</p>
<ol start="2">
<li>Download for Mac 클릭</li>
</ol>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/60339434-fe00-4a41-9711-57ee501c48ce/image.png" alt=""></p>
<p>페이지 접속 오른쪽 컴퓨터 화면에 보이는 <code>Download for Mac</code> 을 클릭 한다.</p>
<ol start="3">
<li>homebrew 클릭</li>
</ol>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/84ac18ad-92ee-468e-89eb-d8dd2db0e2e4/image.png" alt=""></p>
<p>파란색 글씨로 된 <code>homebrew</code> 를 클릭하면 페이지가 이동 된다.</p>
<ol start="4">
<li>설치 명령어 복사</li>
</ol>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/0b66dacd-b4f2-4860-96cb-91d3a1cbab4f/image.png" alt=""></p>
<p>빨간색 화살표를 따라 <code>📋 아이콘</code> 을 클릭하면 설치 명령어가 복사 된다.</p>
<pre><code class="language-bash">/bin/bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&quot;</code></pre>
<ol start="5">
<li>터미널 열기</li>
</ol>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/95cfb3be-0229-40b1-a0a1-342904ce1f7a/image.png" alt=""></p>
<ol start="6">
<li>터미널에 명령어 붙여넣기</li>
</ol>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/b75b8857-ee68-499c-ad44-6eb1f513e085/image.png" alt=""></p>
<p>git 홈페이지에서 복사해두었던 homebrew 설치 명령어를 붙여 넣는다. 
Password: 문구가 출력되면 맥 로그인 비밀번호를 입력한다. 
설치가 시작 된다.</p>
<p>설치 완료 후 M1 코어를 사용자는 다음 명령어를 붙여넣는다.</p>
<pre><code>eval $(/opt/homebrew/bin/brew shellenv)</code></pre><p><img src="https://velog.velcdn.com/images/u-g-1/post/677e9313-a847-4dc5-b4ee-1d5a1bb6452c/image.png" alt=""></p>
<hr>
<h2 id="git-설치">Git 설치</h2>
<ol>
<li>터미널에 명령어 입력하기</li>
</ol>
<p>아래와 같은 명령어를 입력하여 git을 설치한다.</p>
<pre><code class="language-bash">brew install git</code></pre>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/086efb5d-3975-4bc0-9a94-bdfca8f09306/image.png" alt=""></p>
<p>설치가 완료되었다.</p>
<ol start="2">
<li>설치 버전 확인하기</li>
</ol>
<p>설치가 잘 됐는지 확인하기 위해서 아래와 같은 명령어를 입력 합니다.</p>
<pre><code class="language-bash">git --version</code></pre>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/88551d41-71b3-4b5d-af70-3421c9f6e1d0/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[안드로이드] 애완동물 사진 보기 앱 코딩 (Kotlin)]]></title>
            <link>https://velog.io/@u-g-1/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%95%A0%EC%99%84%EB%8F%99%EB%AC%BC-%EC%82%AC%EC%A7%84-%EB%B3%B4%EA%B8%B0-%EC%95%B1-%EC%BD%94%EB%94%A9-Kotlin</link>
            <guid>https://velog.io/@u-g-1/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%95%A0%EC%99%84%EB%8F%99%EB%AC%BC-%EC%82%AC%EC%A7%84-%EB%B3%B4%EA%B8%B0-%EC%95%B1-%EC%BD%94%EB%94%A9-Kotlin</guid>
            <pubDate>Tue, 19 Jul 2022 08:20:29 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/u-g-1/post/e7e17b70-f72d-4f6d-89c5-b3f3a45dbfcc/image.png" alt=""></p>
<blockquote>
<p>앱 설명 : 선택 시작 누를 시 아래 선택박스가 뜸, 선택 후 선택완료 버튼 클릭시 애완동물 이미지 출력</p>
</blockquote>
<hr>
<hr>
<h3 id="코드">코드</h3>
<hr>
<p>우선 사진 파일을 <code>drawable</code> 폴더에 붙여넣기 해놓는다. 확장자는 .png / .jpg 로 한다.</p>
<h4 id="🐰-activity_mainxml-구성">🐰 <code>activity_main.xml</code> 구성</h4>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/9cd0d58a-bd73-416f-b42c-4b8a028ce71d/image.png" alt=""></p>
<pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:app=&quot;http://schemas.android.com/apk/res-auto&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:orientation=&quot;vertical&quot;
    android:padding=&quot;20dp&quot;
    tools:context=&quot;.MainActivity&quot; &gt;


    &lt;TextView
        android:id=&quot;@+id/text1&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;선택을 시작하시겠습니까?&quot;
        android:textSize=&quot;20sp&quot;/&gt;

    &lt;CheckBox
        android:id=&quot;@+id/chkAgree&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;시작함&quot;/&gt;

    &lt;TextView
        android:id=&quot;@+id/text2&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;좋아하는 애완동물은?&quot;
        android:textSize=&quot;20sp&quot;
        android:visibility=&quot;invisible&quot;/&gt;

    &lt;RadioGroup
        android:id=&quot;@+id/Rgroup1&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:visibility=&quot;invisible&quot;&gt;

        &lt;RadioButton
            android:id=&quot;@+id/RdoDog&quot;
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:text=&quot;강아지&quot; /&gt;

        &lt;RadioButton
            android:id=&quot;@+id/RdoCat&quot;
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:text=&quot;고양이&quot; /&gt;

        &lt;RadioButton
            android:id=&quot;@+id/RdoRabbit&quot;
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:text=&quot;토끼&quot; /&gt;
    &lt;/RadioGroup&gt;

    &lt;Button
        android:id=&quot;@+id/BtnOK&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;선택완료&quot;
        android:visibility=&quot;invisible&quot;/&gt;

    &lt;ImageView
        android:id=&quot;@+id/ImgPet&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:visibility=&quot;invisible&quot; /&gt;



&lt;/LinearLayout&gt;</code></pre>
<hr>
<h4 id="🐰-mainctivitykt-코틀린-코드">🐰 <code>Mainctivity.kt</code> 코틀린 코드</h4>
<pre><code class="language-kotlin">package com.example.petimageapp

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.*

class MainActivity : AppCompatActivity() {

    lateinit var text1 : TextView
    lateinit var text2 : TextView
    lateinit var chkAgree : CheckBox
    lateinit var rGroup1 : RadioGroup
    lateinit var rdoDog : RadioButton
    lateinit var rdoCat : RadioButton
    lateinit var rdoRabbit : RadioButton
    lateinit var btnOK : Button
    lateinit var imgPet : ImageView


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = &quot;애완동물 사진 보기&quot;

        text1 = findViewById(R.id.text1)
        chkAgree = findViewById(R.id.chkAgree)

        text2 = findViewById(R.id.text2)
        rGroup1 = findViewById(R.id.Rgroup1)
        rdoDog = findViewById(R.id.RdoDog)
        rdoCat = findViewById(R.id.RdoCat)
        rdoRabbit = findViewById(R.id.RdoRabbit)

        btnOK = findViewById(R.id.BtnOK)
        imgPet = findViewById(R.id.ImgPet)

        // 위젯에 대응할 변수와 위젯 대응 완료
        // 시작함이 체크가 되었을 때 체크가 되면 보이고 안되면 보이지 않는 코드 작성

        // 체크박스가 선택의 변화가 있는지 확인
        chkAgree.setOnCheckedChangeListener { compoundButton, isChecked -&gt;
            if (chkAgree.isChecked == true) {
                text2.visibility = android.view.View.VISIBLE
                rGroup1.visibility = android.view.View.VISIBLE
                btnOK.visibility = android.view.View.VISIBLE
                imgPet.visibility = android.view.View.VISIBLE

            }else{
                text2.visibility = android.view.View.INVISIBLE
                rGroup1.visibility = android.view.View.INVISIBLE
                btnOK.visibility = android.view.View.INVISIBLE
                imgPet.visibility = android.view.View.INVISIBLE
            }
        }

        // 선택 완료 버튼이 클릭되면 클릭된 버튼에 따라서 이미지가 보여진다.
        btnOK.setOnClickListener {
            // 라디오그룹에 체크되어있는 버튼의 아이디를 가져온다.
            when(rGroup1.checkedRadioButtonId) {
                // 아이디에 맞는 이미지를 이미지뷰에 셋
                R.id.RdoDog -&gt; imgPet.setImageResource(R.drawable.dog)
                R.id.RdoCat -&gt; imgPet.setImageResource(R.drawable.cat)
                R.id.RdoRabbit -&gt; imgPet.setImageResource(R.drawable.rabbit)
                else -&gt; Toast.makeText(applicationContext, &quot;동물 먼저 선택하시오&quot;, Toast.LENGTH_SHORT)

            }
        }

    }
}</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[안드로이드스튜디오(AndroidStudio)] 체크박스와 토스트 메시지 (Kotlin) .2]]></title>
            <link>https://velog.io/@u-g-1/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4AndroidStudio-%EC%B2%B4%ED%81%AC%EB%B0%95%EC%8A%A4%EC%99%80-%ED%86%A0%EC%8A%A4%ED%8A%B8-%EB%A9%94%EC%8B%9C%EC%A7%80-Kotlin-.2</link>
            <guid>https://velog.io/@u-g-1/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4AndroidStudio-%EC%B2%B4%ED%81%AC%EB%B0%95%EC%8A%A4%EC%99%80-%ED%86%A0%EC%8A%A4%ED%8A%B8-%EB%A9%94%EC%8B%9C%EC%A7%80-Kotlin-.2</guid>
            <pubDate>Tue, 19 Jul 2022 05:24:12 GMT</pubDate>
            <description><![CDATA[<p>🐰 <code>activity_main.xml</code> 코드</p>
<p>체크박스 세개 생성</p>
<pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:app=&quot;http://schemas.android.com/apk/res-auto&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    tools:context=&quot;.MainActivity&quot;&gt;

    &lt;LinearLayout
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:orientation=&quot;horizontal&quot;
        app:layout_constraintBottom_toBottomOf=&quot;parent&quot;
        app:layout_constraintEnd_toEndOf=&quot;parent&quot;
        app:layout_constraintStart_toStartOf=&quot;parent&quot;
        app:layout_constraintTop_toTopOf=&quot;parent&quot;&gt;

        &lt;CheckBox
            android:id=&quot;@+id/checkApple&quot;
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:layout_weight=&quot;1&quot;
            android:text=&quot;사과&quot; /&gt;

        &lt;CheckBox
            android:id=&quot;@+id/checkOrange&quot;
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:layout_weight=&quot;1&quot;
            android:text=&quot;오렌지&quot; /&gt;

        &lt;CheckBox
            android:id=&quot;@+id/checkBanana&quot;
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:layout_weight=&quot;1&quot;
            android:text=&quot;바나나&quot; /&gt;
    &lt;/LinearLayout&gt;
&lt;/androidx.constraintlayout.widget.ConstraintLayout&gt;</code></pre>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/0db95449-e5c8-44ad-9d27-f9bddae87e22/image.png" alt=""></p>
<hr>
<p>🐰 <code>MainActivity.kt</code> 코드 ver.1</p>
<pre><code class="language-kotlin">class MainActivity : AppCompatActivity() {

    lateinit var checkApple : CheckBox
    lateinit var checkOrange : CheckBox
    lateinit var checkBanana : CheckBox



    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        checkApple = findViewById(R.id.checkApple)
        checkOrange = findViewById(R.id.checkOrange)
        checkBanana = findViewById(R.id.checkBanana)


        checkApple.setOnCheckedChangeListener { buttonView, isChecked -&gt;
            if (isChecked) { // 체크가 되었는지 확인
                // 되었으면 토스트 메시지 전송
                Toast.makeText(applicationContext, &quot;사과&quot;, Toast.LENGTH_SHORT).show()
            }
        }

        checkOrange.setOnCheckedChangeListener { buttonView, isChecked -&gt;
            if (isChecked) {
                Toast.makeText(applicationContext, &quot;오렌지&quot;, Toast.LENGTH_SHORT).show()
            }
        }

        checkBanana.setOnCheckedChangeListener { buttonView, isChecked -&gt;
            if (isChecked) {
                Toast.makeText(applicationContext, &quot;바나나&quot;, Toast.LENGTH_SHORT).show()
            }
        }
    }
}</code></pre>
<hr>
<p>🐰 <code>MainActivity.kt</code> 코드 ver.2 (listner 통합)</p>
<pre><code class="language-kotlin">class MainActivity : AppCompatActivity() {

    lateinit var checkApple : CheckBox
    lateinit var checkOrange : CheckBox
    lateinit var checkBanana : CheckBox

    // 리스너를 생성해서 통합
    // 변수 선언
    var listner = CompoundButton.OnCheckedChangeListener { buttonView, isChecked -&gt;
        if (isChecked){
            // 어떤 아이디인지 확인
            when(buttonView.id){
                R.id.checkApple -&gt; Toast.makeText(applicationContext, &quot;사과&quot;, Toast.LENGTH_SHORT).show()
                R.id.checkOrange -&gt; Toast.makeText(applicationContext, &quot;오랜지&quot;, Toast.LENGTH_SHORT).show()
                R.id.checkBanana -&gt; Toast.makeText(applicationContext, &quot;바나나&quot;, Toast.LENGTH_SHORT).show()

            }
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        checkApple = findViewById(R.id.checkApple)
        checkOrange = findViewById(R.id.checkOrange)
        checkBanana = findViewById(R.id.checkBanana)


        checkApple.setOnCheckedChangeListener (listner)

        checkOrange.setOnCheckedChangeListener (listner)

        checkBanana.setOnCheckedChangeListener (listner)
    }
}</code></pre>
<hr>
<p>🐰 결과</p>
<p>다음과 같이 토스트메시지가 뜬다</p>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/39678de8-2137-4b2d-9c44-c06d36381773/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[안드로이드스튜디오(AndroidStudio)] 체크박스와 토스트 메시지 (Kotlin) .1]]></title>
            <link>https://velog.io/@u-g-1/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4AndroidStudio-%EC%B2%B4%ED%81%AC%EB%B0%95%EC%8A%A4%EC%99%80-%ED%86%A0%EC%8A%A4%ED%8A%B8-%EB%A9%94%EC%8B%9C%EC%A7%80-Kotlin</link>
            <guid>https://velog.io/@u-g-1/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4AndroidStudio-%EC%B2%B4%ED%81%AC%EB%B0%95%EC%8A%A4%EC%99%80-%ED%86%A0%EC%8A%A4%ED%8A%B8-%EB%A9%94%EC%8B%9C%EC%A7%80-Kotlin</guid>
            <pubDate>Tue, 19 Jul 2022 05:00:33 GMT</pubDate>
            <description><![CDATA[<p>체크박스를 선택하면 토스트 메시지를 보여주는 앱을 만들어 본다. </p>
<hr>
<p>🐰 우선 체크박스의 Kotlin 처리 절차를 알아보자</p>
<ul>
<li>체크박스 변수 선언<pre><code class="language-kotlin">var mycheck : CheckBox</code></pre>
</li>
<li>변수에 체크박스 위젯 대입<pre><code class="language-kotlin">mycheck = findViewById&lt;CheckBox&gt;(R.id.android)</code></pre>
</li>
<li>체크박스가 변경될 때 동작하는 람다식 정의<pre><code class="language-kotlin">mycheck.setOnCheckedChangeListner {compoundButton, b -&gt;
  // 동작 내용 코딩
}</code></pre>
</li>
</ul>
<p>체크박스는 독립적으로 사용되기 때문에 한개의 위젯에 한개의 리스너를 추가해야 한다.</p>
<hr>
<p>🐰 토스트 메시지 코드도 알아보자</p>
<ul>
<li>toast : 화면 하단부에 메시지를 잠시동안 보여주는 방식<pre><code class="language-kotlin">Toast.makeText(Context context, String message, int duration).show()</code></pre>
<code>makeText</code> 라는 메소드를 사용하고 메시지가 뿌려질 <code>context</code>, 메시지 내용인 <code>message</code>, 기간 <code>duration</code> , <code>show()</code>로 보여주며 구성된다.</li>
</ul>
<hr>
]]></description>
        </item>
        <item>
            <title><![CDATA[[안드로이드] 텍스트뷰(TextView) Kotlin 코드로 XML 속성 설정]]></title>
            <link>https://velog.io/@u-g-1/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%B7%B0TextView-Kotlin-%EC%BD%94%EB%93%9C%EB%A1%9C-XML-%EC%86%8D%EC%84%B1-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@u-g-1/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%B7%B0TextView-Kotlin-%EC%BD%94%EB%93%9C%EB%A1%9C-XML-%EC%86%8D%EC%84%B1-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Tue, 19 Jul 2022 04:03:37 GMT</pubDate>
            <description><![CDATA[<p>🐰 <code>activity_main.xml</code> 파일에 TextView를 세개 생성해본다.</p>
<pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:app=&quot;http://schemas.android.com/apk/res-auto&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    tools:context=&quot;.MainActivity&quot;&gt;

    &lt;TextView
        android:id=&quot;@+id/textView1&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_marginTop=&quot;97dp&quot;
        android:layout_marginBottom=&quot;65dp&quot;
        android:text=&quot;TextView&quot;
        app:layout_constraintBottom_toTopOf=&quot;@+id/textView2&quot;
        app:layout_constraintEnd_toEndOf=&quot;parent&quot;
        app:layout_constraintHorizontal_bias=&quot;0.498&quot;
        app:layout_constraintStart_toStartOf=&quot;parent&quot;
        app:layout_constraintTop_toTopOf=&quot;parent&quot; /&gt;

    &lt;TextView
        android:id=&quot;@+id/textView2&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_marginBottom=&quot;72dp&quot;
        android:text=&quot;TextView&quot;
        app:layout_constraintBottom_toTopOf=&quot;@+id/textView3&quot;
        app:layout_constraintEnd_toEndOf=&quot;parent&quot;
        app:layout_constraintHorizontal_bias=&quot;0.498&quot;
        app:layout_constraintStart_toStartOf=&quot;parent&quot; /&gt;

    &lt;TextView
        android:id=&quot;@+id/textView3&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_marginBottom=&quot;440dp&quot;
        android:text=&quot;TextView&quot;
        app:layout_constraintBottom_toBottomOf=&quot;parent&quot;
        app:layout_constraintEnd_toEndOf=&quot;parent&quot;
        app:layout_constraintHorizontal_bias=&quot;0.498&quot;
        app:layout_constraintStart_toStartOf=&quot;parent&quot; /&gt;
&lt;/androidx.constraintlayout.widget.ConstraintLayout&gt;</code></pre>
<p>디자인 창에서는 다음과 같이 나타난다.
<img src="https://velog.velcdn.com/images/u-g-1/post/10d12091-b894-4ffa-9154-57a0bc71eab2/image.png" alt=""></p>
<hr>
<p>🐰 <code>MainActivity.kt</code>에서 코틀린 코드를 이용해 XML 속성을 변경해 줄 수 있다.</p>
<pre><code class="language-kotlin">package com.example.textviewapp

import android.graphics.Color
import android.graphics.Typeface
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        var tv1 : TextView //변수 생성
        var tv2 : TextView
        var tv3 : TextView

        tv1 = findViewById(R.id.textView1) // 변수 지정
        tv2 = findViewById(R.id.textView2)
        tv3 = findViewById(R.id.textView3)

        tv1.setText(&quot;안녕하세요&quot;) // 텍스트 변경
        tv1.setTextColor(Color.RED) // 색 변경
        tv2.setTextSize(30.0f) // 크기 지정
        tv2.setTypeface(Typeface.SERIF, Typeface.BOLD_ITALIC) // 글꼴 지정
        tv3.text = &quot;가나다라마바사아자차카타파하가나다라마바사아자차카타파하가나다라마바사아자차카타파하가나다라마바사아자차카타파하&quot; //setText 사용 없이 원하는 값 전달
        tv3.setSingleLine() 


    }
}</code></pre>
<p>AVD를 실행하면 다음과 같이 textView가 변경된 화면이 나타난다.
<img src="https://velog.velcdn.com/images/u-g-1/post/9be3afdc-97e7-41f3-bbe9-c2eed584d1d4/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[안드로이드]M1 맥에서 AVD 실행하기]]></title>
            <link>https://velog.io/@u-g-1/M1-%EB%A7%A5%EC%97%90%EC%84%9C-AVD-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@u-g-1/M1-%EB%A7%A5%EC%97%90%EC%84%9C-AVD-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0</guid>
            <pubDate>Mon, 18 Jul 2022 06:57:57 GMT</pubDate>
            <description><![CDATA[<p><a href="https://github.com/google/android-emulator-m1-preview/releases">https://github.com/google/android-emulator-m1-preview/releases</a></p>
<p>먼저, 구글에서 개발 중인 M1 칩 용 안드로이드 에뮬레이터 프리뷰 버전은 위의 깃헙을 통해 공개되고 있다.  위의 링크에 들어가서 release에 Assets 를 클릭하고 android-emulator-m1-preview.dmg 를 다운로드한다.</p>
<p> <img src="https://velog.velcdn.com/images/u-g-1/post/2f26106c-79e0-4eb3-ac45-1d8ec3c1ece1/image.png" alt=""></p>
<p>애뮬레이터 실행이 안되는 경우</p>
<p>맥 시스템 환경설정 - 보안 및 개인 정보보호 에서 허용을 눌러준다</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[안드로이드 스튜디오 4.1.1 버전 SDK 설정]]></title>
            <link>https://velog.io/@u-g-1/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-4.1.1-%EB%B2%84%EC%A0%84-SDK-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@u-g-1/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-4.1.1-%EB%B2%84%EC%A0%84-SDK-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Mon, 18 Jul 2022 06:51:04 GMT</pubDate>
            <description><![CDATA[<p>🐰 SDK Platforms 설정</p>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/9fada8ff-8e3e-43cc-a0d7-18ea2d32655c/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/705ae500-2d08-4bc4-bd10-12a0d043f7a9/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/45886816-9ee0-43a3-9ff2-6a0c0a5fe320/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/55951263-47d8-4c54-9d82-fe0d24336701/image.png" alt=""></p>
<p>밑으로 전부 헤제</p>
<hr>
<p>🐰 SDK Tools 설정</p>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/733f591d-5a08-4685-ab9d-06e01e97d441/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/4030e234-a8d9-415f-8a83-39141c5efed3/image.png" alt=""></p>
<hr>
<p>🐰 build.gradle 설정</p>
<pre><code>plugins {
    id &#39;com.android.application&#39;
    id &#39;kotlin-android&#39;
}

android {
    compileSdkVersion 29
    buildToolsVersion &quot;29.0.2&quot;

    defaultConfig {
        applicationId &quot;com.example.myapplication&quot;
        minSdkVersion 24
        targetSdkVersion 29
        versionCode 1
        versionName &quot;1.0&quot;

        testInstrumentationRunner &quot;androidx.test.runner.AndroidJUnitRunner&quot;
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile(&#39;proguard-android-optimize.txt&#39;), &#39;proguard-rules.pro&#39;
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = &#39;1.8&#39;
    }
}

dependencies {

    implementation &quot;org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version&quot;
    implementation &#39;androidx.core:core-ktx:1.2.0&#39;
    implementation &#39;androidx.appcompat:appcompat:1.3.0&#39;
    implementation &#39;com.google.android.material:material:1.1.0&#39;
    implementation &#39;androidx.constraintlayout:constraintlayout:1.1.3&#39;
    testImplementation &#39;junit:junit:4.+&#39;
    androidTestImplementation &#39;androidx.test.ext:junit:1.1.1&#39;
    androidTestImplementation &#39;androidx.test.espresso:espresso-core:3.2.0&#39;
}</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[Brackets] console 오류]]></title>
            <link>https://velog.io/@u-g-1/Brackets-console-%EC%98%A4%EB%A5%98</link>
            <guid>https://velog.io/@u-g-1/Brackets-console-%EC%98%A4%EB%A5%98</guid>
            <pubDate>Thu, 14 Jul 2022 13:27:03 GMT</pubDate>
            <description><![CDATA[<p>Brackets console 오류</p>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/15f9a276-635b-4da9-a693-19cf99176d9e/image.png" alt=""></p>
<p>🐰 오류 내용</p>
<pre><code>ERROR: Unexpected console statement. [no-console]    console.log(&#39;안녕하세요&#39;);
ERROR: &#39;console&#39; is not defined. [no-undef]    console.log(&#39;안녕하세요&#39;);</code></pre><hr>
<p>🐰 해결 방법
<img src="https://velog.velcdn.com/images/u-g-1/post/2a94977a-4572-486d-b5b1-0c3a3baf1c92/image.png" alt=""></p>
<p>다음과 같은 내용을 추가한다</p>
<pre><code>/*jslint devel: true */
/* eslint-disable no-console */
/*eslint no-undef: &quot;error&quot;*/
/*eslint-env node*/</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[안드로이드] Ch.02 코틀린(Kotlin)_02.코틀린 기본 문법]]></title>
            <link>https://velog.io/@u-g-1/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-Ch.02-%EC%BD%94%ED%8B%80%EB%A6%B0Kotlin02.%EC%BD%94%ED%8B%80%EB%A6%B0-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95</link>
            <guid>https://velog.io/@u-g-1/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-Ch.02-%EC%BD%94%ED%8B%80%EB%A6%B0Kotlin02.%EC%BD%94%ED%8B%80%EB%A6%B0-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95</guid>
            <pubDate>Tue, 05 Jul 2022 10:29:53 GMT</pubDate>
            <description><![CDATA[<h3 id="📖-변수와-데이터-형식">📖 변수와 데이터 형식</h3>
<ul>
<li><code>var (name) : (DataType)</code> : 변수 선언</li>
</ul>
<hr>
<h4 id="✒️-kotlin의-변수-선언-방식">✒️ Kotlin의 변수 선언 방식</h4>
<p>💻 실습</p>
<pre><code class="language-kotlin">fun main() {
var var1 : Int = 10
var var2 : Float = 10.1f
var var3 : Double = 10.2
var var4 : Char = &#39;안&#39;
var var5 : String = &quot;안드로이드&quot;
}</code></pre>
<ul>
<li>코틀린은 암시적 선언이 가능하다. 암시적 선언이란 변수의 데이터 형식을 지정하지 않고, 대입되는 값에 따라 자동으로 변수의 데이터 형식이 지정되는 것. 단, 초기화하지 않는 경우에는 데이터 형식을 반드시 명시해야 한다.</li>
</ul>
<p>💻 실습</p>
<pre><code class="language-kotlin">var var1 : 10
var var2 : 10.1f
var var3 : 10.2
var var4 : &#39;안&#39;
var var5 : &quot;안드로이드&quot;</code></pre>
<ul>
<li><code>var(variable)</code><ul>
<li>일반 변수를 선언할 때 사용</li>
<li>필요할 때마다 계속 다른 값을 대입 가능</li>
</ul>
</li>
<li><code>val(value)</code><ul>
<li>변수 선언과 동시에 값을 대입하거나, 초기화 없이 선언한 후에 한번만 값을 대입 가능</li>
<li>한 번 값을 대입하고 나면 값을 변경할 수 없음</li>
</ul>
</li>
</ul>
<hr>
<h4 id="✒️-데이터-형식-변환">✒️ 데이터 형식 변환</h4>
<ul>
<li>캐스팅 연산자 사용</li>
<li>Kotlin에서 제공하는 <code>toInt()</code>나 <code>toDouble()</code> 등의 정적 메소드 사용</li>
</ul>
<p>💻 실습</p>
<pre><code class="language-kotlin">var a : Int = &quot;100&quot;.toInt()
var b : Double = &quot;100.1&quot;.toDouble()</code></pre>
<hr>
<h4 id="✒️-null-사용">✒️ null 사용</h4>
<ul>
<li>Kotlin 은 기본적으로 변수에 null 값을 넣지 못함<ul>
<li>변수를 선언할 때 데이터 형식 뒤에 <code>?</code>를 붙여야 null 대입 가능</li>
</ul>
</li>
</ul>
<pre><code class="language-kotlin">var notNull : Int = null // 오류
var okNull : Int? = null // 정상</code></pre>
<ul>
<li>변수가 null 값이 아니라고 표시해야하는 경우<ul>
<li>!!로 나타냄</li>
</ul>
</li>
</ul>
<pre><code>var ary = ArrayList&lt;Int&gt;(1) // 1개짜리 배열 리스트
ary!!.add(100)</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[안드로이드] Ch.02 코틀린(Kotlin)_01.코틀린 개요 및 IntelliJ 설치와 개발환경 설정]]></title>
            <link>https://velog.io/@u-g-1/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-Ch.02-%EC%BD%94%ED%8B%80%EB%A6%B0Kotlin-01</link>
            <guid>https://velog.io/@u-g-1/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-Ch.02-%EC%BD%94%ED%8B%80%EB%A6%B0Kotlin-01</guid>
            <pubDate>Tue, 05 Jul 2022 06:26:19 GMT</pubDate>
            <description><![CDATA[<h3 id="1-코틀린의-개요">1. 코틀린의 개요</h3>
<ul>
<li>Java와 100% 상호 호환되므로 Java 코드와 완전히 대체 가능</li>
<li>Java보다 문법이 간결</li>
<li>프로그램의 안정성을 높여줌</li>
<li>var 또는 val 예약어를 통해 데이터 형식을 선언하지 않고 변수를 선언할 수 있음</li>
<li>IntelliJ IDEA 환경에서 개발</li>
<li>Kotlin 사이트 (<a href="https://play.kotlinlang.org/)%EC%97%90">https://play.kotlinlang.org/)에</a> 접속하여 별도의 설치 없이 개발</li>
<li>다운로드 : (<a href="https://www.jetbrains.com/ko-kr/idea/">https://www.jetbrains.com/ko-kr/idea/</a>)</li>
</ul>
<h3 id="2-m1-에서-intellij-다운로드">2. M1 에서 intelliJ 다운로드</h3>
<p>위 링크를 클릭하거나 intelliJ를 검색하면 다음과 같은 화면이 뜬다. 
<img src="https://velog.velcdn.com/images/u-g-1/post/10d3ed89-d717-4c95-b0b7-49291518eb8e/image.png" alt="">
다운로드를 클릭해준다.</p>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/9217afa7-76f4-4cf1-8337-af0b3544888a/image.png" alt=""></p>
<p>무료 버전으로 다운로드 해본다. Community 밑에 다운로드가 보인다. 다운로드 오른쪽에 있는 버튼을 누르면 사진처럼 <code>Apple Silicon</code> 을 선택할 수 있다. 바로 다운로드를 받아주고 실행하면 된다. </p>
<h3 id="3-intellij-실행">3. IntelliJ 실행</h3>
<p>응용 프로그램이 생성되었다. 아이콘을 클릭하면 다음과 같은 화면이 나온다.
<img src="https://velog.velcdn.com/images/u-g-1/post/2a0fd4f3-b7e6-4212-afc1-a28894a32d34/image.png" alt="">
왼쪽에 메뉴가 보인다
<img src="https://velog.velcdn.com/images/u-g-1/post/e1a24bb5-de55-4cce-89c7-22ef7cfa1c60/image.png" alt=""></p>
<p><code>Customize</code> 창에서 테마 변경도 가능하다.</p>
<h3 id="4-프로젝트-만들기">4. 프로젝트 만들기</h3>
<p><code>new project</code> 버튼을 눌러줍니다</p>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/9e6db1f8-843f-4f01-8686-38515010ab56/image.png" alt="">
<code>Language</code>를 <code>Kotlin</code> 으로 바꿔줬습니다.
<img src="https://velog.velcdn.com/images/u-g-1/post/c69047da-32a1-42a4-a915-8b7a3dc5b0f0/image.png" alt=""></p>
<p><code>JDK</code> 가 없다고 뜨는 분들은 따로 다운로드 받아줍니다.</p>
<p>이름과 저장 파일을 지정한 후에 <code>Create</code> 버튼을 클릭하면
<img src="https://velog.velcdn.com/images/u-g-1/post/f86fecf2-bc84-45bc-b457-f6f8f5ef0d22/image.png" alt="">
로딩이 잠시 된 후에
<img src="https://velog.velcdn.com/images/u-g-1/post/8171dfd8-9dc4-4f46-a2eb-e490600242d7/image.png" alt="">
실행이 됩니다. 실행된 UI를 보면 안드로이드 스튜디오와 유사한 모습을 볼 수 있다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[안드로이드] 안드로이드 스튜디오 빌드업 에러 해결, installed build tools revision 32.0.0 is corrupted~  오류]]></title>
            <link>https://velog.io/@u-g-1/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EB%B9%8C%EB%93%9C%EC%97%85-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0-installed-build-tools-revision-32.0.0-is-corrupted-%EC%98%A4%EB%A5%98</link>
            <guid>https://velog.io/@u-g-1/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EB%B9%8C%EB%93%9C%EC%97%85-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0-installed-build-tools-revision-32.0.0-is-corrupted-%EC%98%A4%EB%A5%98</guid>
            <pubDate>Mon, 04 Jul 2022 09:12:13 GMT</pubDate>
            <description><![CDATA[<p>기존 안드로이드 응용프로그램 삭제 후 안정 버전이라고 하는 4.1.1 버전으로 재 다운로드를 하였다. </p>
<p>실행을 하려 하는데 다음과 같은 오류가 뜬다.</p>
<pre><code>installed build tools revision 32.0.0 is corrupted. remove and install again using the sdk manager.</code></pre><p><img src="https://velog.velcdn.com/images/u-g-1/post/5369092a-7fde-4e83-8d9e-48fc3c012f0e/image.png" alt=""></p>
<p>구글에 검색해보니 안드로이드 스튜디오를 지웠다가 다른 버전으로 다운로드 하면서 생긴 SDK에 버전차이 때문인것 같다. </p>
<p>** 📖 1. Settings &gt;&gt; Appearance &amp; Behavior 카테고리 내 System Settings 클릭 &gt;&gt; Android SDK 클릭 &gt;&gt; SDK Platforms 를 확인해본다 **</p>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/80da8ae5-65f2-4d46-bf00-631427858558/image.png" alt=""></p>
<p>초기 설정에는 제일 윗쪽 체크박스인 <code>Android API 32</code>가 체크되어 있다. 해당 체크박스를 취소하고 사진에 나온것과 같이 설정해주면 되는데, 오른쪽 아래 <code>Show Package Details</code>를 눌러줘야 상세 설정이 보인다.</p>
<p>** 📖 2. Settings &gt;&gt; Appearance &amp; Behavior 카테고리 내 System Settings 클릭 &gt;&gt; Updates 클릭 &gt;&gt; Automatically check updates~ 라고 써있는 자동 업데이트 체크박스를 헤제 **</p>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/02c3dc96-4019-4d9a-8273-ab556d95a8f1/image.png" alt=""></p>
<p>** 📖 3. 안드로이드에서 Gradle Scripts 클릭 &gt;&gt; 두번째 build.gradle (Module:~.app)클릭 후 다음과 같이 설정 변경**</p>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/89ec610e-971d-479e-b408-5de21ebcf0d3/image.png" alt=""></p>
<p>** 📖 4. 아직도 오류가 나는 경우 : build.gradle (:app)에서 <code>buildToolsVersion</code> 을 <code>29.0.2</code>나 <code>29.0.3</code> 으로 변경**</p>
<p><img src="https://velog.velcdn.com/images/u-g-1/post/54243cb8-71b3-4abb-87eb-c99585e7b5e4/image.png" alt=""></p>
<p>하지만 나는 SDK와 build.gradle 설정을 마쳤음에도 다음과 같은 오류가 났다..
산넘어 산이다</p>
<pre><code>Invalid keystore format</code></pre><p><img src="https://velog.velcdn.com/images/u-g-1/post/23c5b8e7-f1a6-44b6-af0a-a55f2f659653/image.png" alt=""></p>
<p>** 📖 4. <code>compileSdkVersion</code> 과 <code>targetSdkVersion</code> 이 32로 되어 있는 부분을 27로 고쳐준다.  **</p>
<p>** 📖 5. build.gradle 변경 이후엔 상단에 파란색으로 떠있는 <code>Sync Now(싱크)</code> 를 눌러주어야 동기화가 완료된다.**</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Velog (벨로그) Markdown (마크다운) 사용법 ]]></title>
            <link>https://velog.io/@u-g-1/Velog%EB%B2%A8%EB%A1%9C%EA%B7%B8-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
            <guid>https://velog.io/@u-g-1/Velog%EB%B2%A8%EB%A1%9C%EA%B7%B8-%EC%82%AC%EC%9A%A9%EB%B2%95</guid>
            <pubDate>Mon, 04 Jul 2022 07:11:25 GMT</pubDate>
            <description><![CDATA[<p>코딩용 블로그로 벨로그를 처음 사용하면서 필용한 기초 사용법을 정리해 보았다. 앞으로 작성할 블로그들을 위해 연습겸 참고용으로 남겨 놓는다. </p>
<h3 id="🦊-코드블럭-code-block-백틱-backtick">🦊 코드블럭 (Code Block), 백틱 (backtick)</h3>
<ul>
<li><p>한 줄의 코드블럭은 이전 문장으로부터 엔터를 두 번 입력한 후 <code>Tab</code>을 이용해서 작성할 수 있다. </p>
</li>
<li><p><code>회색 박스</code>로 감싸진 부분은 백틱(backtick)(`)으로 감싸서 작성하면 된다.</p>
</li>
<li><p>백틱 하나 입력시 <code>`</code>  한 줄씩 블럭 처리, 
백틱 세개 입력시 <code>```</code>  여러 줄 한번에 블럭 처리</p>
</li>
</ul>
<ul>
<li>맥OS를 사용하는 사람이라면 자판에서 백틱을 찾을 수가 없다.
바로 (~)(₩)키와 혼용되어 사용되기 때문이다.
`(백틱)과 &#39;(홑따옴표)와 다르다.
이것은 바로 한/영 구분으로 인한 것이다.
한글인 상태에서는 (₩) 원화가 입력되고, 영어인 상태에서는 (`) 백틱이 입력되는 것이다.</li>
</ul>
<h3 id="🦊-제목-headers">🦊 제목 (headers)</h3>
<p>h1부터 h6을 이용해서 제목을 표현할 수 있다</p>
<pre><code>\# 첫 번째 수준 제목 (h1)
\## 두 번째 수준 제목 (h2)
\### 세 번째 수준 제목 (h3)
\#### 네 번째 수준 제목 (h4)
\##### 다섯 번째 수준 제목 (h5)
\###### 여섯 번째 수준 제목 (h6)</code></pre><h3 id="🦊-인용-blockquotes">🦊 인용 (Blockquotes)</h3>
<ul>
<li>이메일에서 사용하는 <code>&gt;</code>블록 인용문자를 사용한다.</li>
<li>인용문 안에서 <code>Tap</code>키를 이용하면 코드블록을 쉽게 작성할 수 있다.</li>
<li>계속 중첩이 가능하다.</li>
</ul>
<pre><code>&gt;    This is a first blockquotes.
&gt;&gt;         This is a second blockquotes.
&gt;&gt;&gt;         This is a third blockquotes.</code></pre><blockquote>
<p>   This is a first blockquotes.</p>
<blockquote>
<pre><code>    This is a second blockquotes.</code></pre><blockquote>
<pre><code>    This is a third blockquotes.</code></pre></blockquote>
</blockquote>
</blockquote>
<h3 id="🦊-코드-입력-syntax-highlighting">🦊 코드 입력 (Syntax Highlighting)</h3>
<ul>
<li>코드블럭 시작점에 사용하는 언어를 선언한다.</li>
<li>입력<pre><code>```java
public class helloWorld{ ...</code></pre></li>
<li>출력<pre><code class="language-java">public class helloWorld{
  public void main(String[] args) {
      System.out.println(&quot;Hello World&quot;);
  }
}</code></pre>
</li>
</ul>
<h3 id="🦊-가로선-넣기">🦊 가로선 넣기</h3>
<ul>
<li>아래 입력 모두 동일한 가로선이 나타난다.</li>
</ul>
<pre><code>* * *
***
*****
- - -
---
-----
_ _ _
___
_____</code></pre><hr>
<hr>
<hr>
<h3 id="🦊-글자-색상-font-color">🦊 글자 색상 (Font color)</h3>
<ul>
<li><p>색상이 하나인줄 알았겠지만 글자색, 글자배경색 두가지 변경이 가능하다.</p>
</li>
<li><p>글자색 color는 Html색상표를 이용하면 쉽게 작성할 수 있다.</p>
</li>
<li><p>위 방법 말고도 색상을 직접 넣고 싶다면 이곳 rgba를 보고 원하는 값을 넣어도 된다.</p>
</li>
<li><p>입력
```
<span style="color: red">Red Text</span>
<span style="background-color: rgba(242,179,188,0.5)">background</span> </p>
</li>
<li><p><em>background color | rgba(색상값, 투명도)이며 투명도는 0~1 사이의 값이 들어간다.*</em>
```</p>
</li>
<li><p>출력
<span style="color: red">Red Text</span>
<span style="background-color: rgba(242,179,188,0.5)">background</span></p>
</li>
</ul>
<h3 id="🦊-링크-links">🦊 링크 (Links)</h3>
<ul>
<li><p>인라인 링크
<code>[인라인 링크](https://velog.io/)</code>
<a href="https://velog.io/">인라인 링크</a></p>
</li>
<li><p>url 링크
<code>&lt;https://velog.io/&gt;</code>
<a href="https://velog.io/">https://velog.io/</a></p>
</li>
<li><p>참조 링크</p>
<pre><code></code></pre></li>
</ul>
<p><a href="https://velog.io/">velog</a></p>
<pre><code>[velog]:https://velog.io/

[velog]




### 🦊 강조 (Emphasis)
- 입력</code></pre><p><em>이탤릭</em>
<em>이탤릭</em>
<strong>볼드</strong>
<strong>볼드</strong>
<del>취소선</del></p>
<pre><code>
- 출력

*이탤릭*
_이탤릭_
**볼드**
__볼드__
~~취소선~~

### 🦊 기호 표시 (Backslash Escapes)
- 마크다운 문법에 있는 기호를 그대로 출력하고 싶다면, 역방향 슬래시 `\`를 앞에 붙여주면 된다.




### 테이블(Table)
- 수직선 기호(|)로 열을 구분할 수 있다
- 하이픈 기호(-)를 여러 개 붙여서 th와 tr을 구분할 수 있다.
- 콜론 기호(:)로 정렬을 표현할 수 있다.
- 입력</code></pre><table>
<thead>
<tr>
<th></th>
<th align="left">left</th>
<th align="center">center</th>
<th align="right">right</th>
</tr>
</thead>
<tbody><tr>
<td>row1</td>
<td align="left">l1</td>
<td align="center">c1</td>
<td align="right">r1</td>
</tr>
<tr>
<td>row2</td>
<td align="left">l2</td>
<td align="center">c2</td>
<td align="right">r2</td>
</tr>
<tr>
<td>row3</td>
<td align="left">l3</td>
<td align="center">c3</td>
<td align="right">r3</td>
</tr>
<tr>
<td>```</td>
<td align="left"></td>
<td align="center"></td>
<td align="right"></td>
</tr>
<tr>
<td>- 출력</td>
<td align="left"></td>
<td align="center"></td>
<td align="right"></td>
</tr>
</tbody></table>
<table>
<thead>
<tr>
<th></th>
<th align="left">left</th>
<th align="center">center</th>
<th align="right">right</th>
</tr>
</thead>
<tbody><tr>
<td>row1</td>
<td align="left">l1</td>
<td align="center">c1</td>
<td align="right">r1</td>
</tr>
<tr>
<td>row2</td>
<td align="left">l2</td>
<td align="center">c2</td>
<td align="right">r2</td>
</tr>
<tr>
<td>row3</td>
<td align="left">l3</td>
<td align="center">c3</td>
<td align="right">r3</td>
</tr>
</tbody></table>
<h3 id="🦊-이모지-단축키emoji">🦊 이모지 단축키(Emoji)</h3>
<ul>
<li><p>링크에서 복사+붙여넣기: <a href="https://kr.piliapp.com/twitter-symbols/">https://kr.piliapp.com/twitter-symbols/</a></p>
</li>
<li><p>MacOS <code>ctrl + cmd + space bar</code></p>
</li>
<li><p>Windows <code>window key + semi colon || window key + . (period)</code></p>
</li>
<li><p>Linux <code>(right click) select insert emoji</code></p>
</li>
</ul>
<h3 id="🦊-체크박스-check-box">🦊 체크박스 (Check Box)</h3>
<ul>
<li>*, +, - 기호 뒤에 띄어쓰기 이후 대괄호[]를 넣어 작성한다.</li>
<li>띄어쓰기를 하면 체크되지 않은 상태이고,</li>
<li>x를 입력해주면 체크된 상태가 된다.</li>
<li>입력
```</li>
<li><input disabled="" type="checkbox"> 체크되지 않은 박스</li>
<li><input checked="" disabled="" type="checkbox"> 체크된 박스
```</li>
<li>출력</li>
<li><input disabled="" type="checkbox"> 체크되지 않은 박스</li>
<li><input checked="" disabled="" type="checkbox"> 체크된 박스</li>
</ul>
]]></description>
        </item>
    </channel>
</rss>