<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>ga_0.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Tue, 23 Jan 2024 10:44:52 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <copyright>Copyright (C) 2019. ga_0.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/ga_0" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[SemiVL: Semi-Supervised Semantic Segmentation with
Vision-Language Guidance 논문리뷰]]></title>
            <link>https://velog.io/@ga_0/SemiVL-Semi-Supervised-Semantic-Segmentation-withVision-Language-Guidance-%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0</link>
            <guid>https://velog.io/@ga_0/SemiVL-Semi-Supervised-Semantic-Segmentation-withVision-Language-Guidance-%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0</guid>
            <pubDate>Tue, 23 Jan 2024 10:44:52 GMT</pubDate>
            <description><![CDATA[<h2 id="간략한-배경지식">간략한 배경지식</h2>
<ul>
<li>Semi-Supervised learning<ul>
<li>준지도 학습</li>
<li>라벨링된 적은 양의 데이터와 라벨링이 안된 많은 데이터가 있을 경우 
라벨링된 데이터는 지도학습, 안된 데이터는 비지도 학습하는 방법</li>
<li>총 loss = 지도학습 loss + 비지도학습 loss</li>
<li>예측 결과를 다음 학습의 데이터로 사용함</li>
</ul>
</li>
</ul>
<ul>
<li><p>Contrastive learning</p>
<ul>
<li>비지도 학습의 한 분야인 자기 주도 학습(모델 자체에서 데이터의 라벨을 생성하여 학습 - nlp에서 언어 마스킹, vision에서 이미지 회전 및 뒤집기 등) 모델이 학습에서 사용되는 방법론 중에 하나</li>
<li>학습된 표현 공간상에 비슷한 데이터는 가까이, 다른 데이터는 멀리 학습하는 것</li>
</ul>
</li>
<li><p>Consistency regularization (Consistency training) </p>
<ul>
<li>Semi-Supervised를 하기 위한 여러 방법론 들중 하나</li>
<li>라벨링 되지 않은 데이터 point에 작은 변화(perturbation)을 주어도 예측의 결과에는 일관성이 있을 것이라 가정함</li>
<li>애매한 데이터들에 대해 유연한 예측을 함</li>
</ul>
</li>
<li><p>VLM (비전-언어 모델)</p>
<ul>
<li>이미지와 언어를 모두 학습해, 더 나은 의미적 추론을 하려는 모델</li>
<li>비젼 모듈과 언어 모듈이 합쳐진 구조를 가짐</li>
<li>이미지에 대한 설명 캡션을 생성하거나,
텍스트를 통한 이미지 생성,
텍스트를 통한 이미지 검색 및 시각 탐색(언어로 로봇 작업 수행)
등이 진행됨  </li>
</ul>
</li>
</ul>
<h2 id="abstract">Abstract</h2>
<ul>
<li><p>문제</p>
<ul>
<li>Semi-Supervised Semantic Segmentation 분야의 이전 연구 들은 라벨링 비용을 낮추며 좋은 세그멘테이션 경계를 학습할 수 있지만, 비슷해 보이는 데이터는 클래스를 혼동하기 쉬움</li>
<li>비전-언어 모델(VLMs)은 이미지-캡션 데이터셋에 대해서 의미를 학습할 수 있지만, 이미지 수준(이미지 전체에 대한)의 훈련으로 인해 노이즈가 있는 세그멘테이션을 생성할 수 있음<br> 
</li>
</ul>
</li>
<li><p>SemiVL의 제안</p>
<ul>
<li>VLM + Semi-Supervised Semantic Segmentation
사전 학습된 VLM 통해 풍부한 이미지 정보로 더 나은 시멘틱(의미적) 결정 경계(semantic decision boundary)를 만들고자 함</li>
<li>VLM을 global에서 local 추론으로 조정하기 위해(전체적인 이미지 수준이 아닌, 각 라벨별 추론을 하기 위해) 공간적 미세 조정 전략(fine-tuning)을 도입</li>
<li>비전과 언어를 함께 고려하는 언어 안내 디코더를 설계
-&gt; 해당 디코더로 class의 라벨에 대한 언어 안내를 모델에 제공
<img src="https://velog.velcdn.com/images/ga_0/post/da214f53-1f87-4bb1-8bdb-86806e50de30/image.png" alt=""></li>
<li>성과 : 4개의 시맨틱 세그멘테이션 데이터셋에서 평가<ul>
<li>232개의 주석이 지정된 COCO에서 +13.5 mIoUfh SOTA</li>
<li>92개의 레이블이 있는 Pascal VOC에서 +6.1 mIoU
<img src="https://velog.velcdn.com/images/ga_0/post/b30b9cc5-0a66-4f93-bb4a-758e1af4f572/image.png" alt=""></li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="introduction">Introduction</h2>
<p>semantic segmentation 모델은 학습에 대규모 라벨링된 데이터에 의존성이 커서, 사람에 의한 라벨링이 필요함
  semi semantic segmentation은 라벨링 안된 이미지 데이터도 효과적으로 학습하고자 함
  이러한 노력으로 적대적 신경망 모델, 자기 훈련 모델이 존재함</p>
<p><img src="https://velog.velcdn.com/images/ga_0/post/bf3c3005-46ef-4703-bc07-791e31619415/image.png" alt=""></p>
<ul>
<li><p>현재 sota인 UniMatch 모델은 세그멘테이션 마스크는 잘 학습했으나, 비슷한 시각적 특징을 가진 세그먼트는 정확한 시맨틱 결정 경계를 학습하기 어려움. </p>
</li>
<li><p>CLIP [51]과 같은 VLM은 웹 규모의 이미지 캡션 데이터셋에서 훈련됨
데이터의 다양성과 고정된 클래스 라벨이 아닌 자연어 캡션은 VLM이 더 풍부한 의미 표현을 캡처할 수 있음. 
그러나 이미지 수준에서 훈련되어 그들의 특징이 잘 localize 되지 못함(각 세그먼트 마다 가지는 특징을 잘 훈련되지 못함)</p>
<ul>
<li>SimVL은 더 풍부한 의미를 캡처하기 위해, 우리는 Vision Language Models (VLM)의 가이드를 활용하여 Semi-Supervised Semantic Segmentation을 보완하는 것을 제안</li>
</ul>
</li>
</ul>
<p>이 연구에서는 세미-지도 훈련의 좋은 로컬라이제이션과 VLM(Vision-Language Models)의 풍부한 의미 이해를 어떻게 결합할지를 연구했습니다. 이를 기반으로, 우리는 세미VL(SemiVL)을 제안합니다. 이는 두 가지 강점을 결합하여 좋은 세그멘테이션 품질과 미세한 의미적 식별력을 달성합니다. 예를 들어, SemiVL은 그림 1e에서 소와 보트를 올바르게 세그멘트하고 분류합니다. 우리의 최고 지식으로는, SemiVL은 밀집 레이블의 부족 문제를 완화하기 위해 비전-언어 안내를 사용한 세미-지도 시맨틱 세그멘테이션에 대한 최초의 작업입니다. 이전의 VLM 시맨틱 세그멘테이션 작업(2.2절 참조)은 밀집 레이블이 없이 운영되거나[5, 63, 73] 성능을 제한하는 큰 비용이 드는 주석이 달린 세그멘테이션 데이터셋을 사용하였습니다[12, 65, 76]. 그 대신에, SemiVL은 몇 개의 레이블만 사용하여 세미-지도 환경에서 고품질 시맨틱 세그멘테이션을 학습할 수 있습니다.</p>
<h2 id="conclusion">Conclusion</h2>
<h4 id="참고">참고</h4>
<p><a href="https://sanghyu.tistory.com/177">https://sanghyu.tistory.com/177</a>
<a href="https://jimmy-ai.tistory.com/129">https://jimmy-ai.tistory.com/129</a>
<a href="https://daebaq27.tistory.com/97">https://daebaq27.tistory.com/97</a>
<a href="https://blog.est.ai/2020/11/ssl/">https://blog.est.ai/2020/11/ssl/</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[자료구조_그래프]]></title>
            <link>https://velog.io/@ga_0/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0%EA%B7%B8%EB%9E%98%ED%94%84</link>
            <guid>https://velog.io/@ga_0/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0%EA%B7%B8%EB%9E%98%ED%94%84</guid>
            <pubDate>Sun, 23 Oct 2022 11:59:53 GMT</pubDate>
            <description><![CDATA[<h3 id="그래프란">그래프란?</h3>
<ul>
<li><p>데이터 간 관계를 표현하기 위한 자료구조 중 하나</p>
</li>
<li><p>비선형 구조 + 트리의 일반적 개념
(트리도 일종의 그래프)</p>
<br/>
</li>
<li><p>그래프(G) = (V,E)의 쌍<br>V = 정점(vertex)의 집합<br>E = 간선(edge)의 집합  </p>
<br/></li>
<li><p>정점 =노드(N)와 노드를 연결하는 간선(E)을 하나로 모아 놓은 자료구조
<img src="https://velog.velcdn.com/images/ga_0/post/6a398d6a-c344-49ca-92b1-6025052f7453/image.png" alt=""></p>
</li>
</ul>
<hr>
<h3 id="그래프-구성요소">그래프 구성요소</h3>
<p>1) 정점 = 노드  </p>
<ul>
<li>독립된 개체로 동그라미로 표현  </li>
<li>일반적으로 숫자나 이름으로 구분  </li>
<li>데이터가 저장되어있음</li>
</ul>
<p>2) 간선 = link = branch  </p>
<ul>
<li>노드를 연결하는 선</li>
<li>위치 간의 관계</li>
</ul>
<p>3) 인접 정점(adjacent vertex)</p>
<ul>
<li>간선에 의 해 직접 연결된 정점</li>
</ul>
<p>4) 정점의 차수(degree)</p>
<ul>
<li>무방향 그래프에서 하나의 정점에 인접한 정점의 수</li>
<li>무방향 그래프에 존재하는 정점의 모든 차수의 합 = 그래프의 간선 수의 2배</li>
</ul>
<p>5) 진입 차수(in-degree) = 내차수  </p>
<ul>
<li>방향 그래프에서 외부에서 오는 간선의 수  </li>
</ul>
<p>6) 진출 차수(out-degree) = 외차수</p>
<ul>
<li>방향 그래픙에서 외부로 향하는 간선의 수  </li>
<li>방향 그래프에 있는 정점의 진입 차수 또는 진출 차수의 합 
= 방향 그래프의 간선의 수(내차수 + 외차수)</li>
</ul>
<p>7) 경로 길이(path length)</p>
<ul>
<li>경로를 구성하는 데 사용된 간선의 수</li>
</ul>
<p>8) 단순 경로(simple path)</p>
<ul>
<li>경로 중에서 반복되는 정점이 없는 경우</li>
</ul>
<p>9) 사이클(cycle)</p>
<ul>
<li>단순 경로의 시작 정점과 종료 정점이 동일한 경우</li>
</ul>
<hr>
<h3 id="그래프-특징">그래프 특징</h3>
<p><img src="https://velog.velcdn.com/images/ga_0/post/5251fb9c-1efb-4081-a7ab-2460ab9c763d/image.png" alt=""> </p>
<hr>
<h3 id="그래프-종류">그래프 종류</h3>
<p><img src="https://velog.velcdn.com/images/ga_0/post/1823f678-a7a1-4be1-b960-1228e0b420dc/image.png" alt=""></p>
<p>1) 무방향 그래프</p>
<ul>
<li>간선의 방향이 없음 
= 간선을 통해 양방향으로 갈 수 있음</li>
<li>A와 B를 연결하는 간선 = (A,B) = (B,A)</li>
</ul>
<p>2) 방향 그래프  </p>
<ul>
<li>간선에 방향이 있음  </li>
<li>A&gt;B로 가는 간선 = &lt;A,B&gt; != &lt;B,A&gt;  </li>
</ul>
<p>3) 가중치 그래프  </p>
<ul>
<li>간선에 비용 또는 가중치가 할당된 그래프</li>
<li>네트워크라고 함</li>
</ul>
<p>4) 루트없는 트리  </p>
<ul>
<li>간선을 통해 정점 간 잇는 방법이 한가지인 그래프<br>-&gt; 트리의 정의</li>
</ul>
<p>5) 이분 그래프</p>
<ul>
<li>그래프의 정점을 겹치지 않게 두 그룹으로 나눈 후 다른 그룹끼리만 간선이 존재하게 분할할 수 있는 그래프</li>
</ul>
<p>6) 사이클이 없는 방향 그래프</p>
<ul>
<li>정점에서 출발해 자기 자신으로 돌아오는 경로(사이클)가 없는 그래프</li>
</ul>
<p>7) 연결 그래프(Connected Graph)</p>
<ul>
<li>무방향 그래프에 있는 모든 정점쌍에 대해서 항상 경로가 존재하는 경우
(트리(Tree): 사이클을 가지지 않는 연결 그래프)</li>
</ul>
<p>8) 비연결 그래프(Disconnected Graph)</p>
<ul>
<li>무방향 그래프에서 특정 정점쌍 사이에 경로가 존재하지 않는 경우</li>
</ul>
<p>9) 사이클(Cycle)</p>
<ul>
<li>단순 경로의 시작 정점과 종료 정점이 동일한 경우</li>
<li>단순 경로(Simple Path): 경로 중에서 반복되는 정점이 없는 경우</li>
</ul>
<p>10) 완전 그래프(Complete Graph)</p>
<ul>
<li>그래프에 속해 있는 모든 정점이 서로 연결되어 있는 그래프</li>
<li>무방향 완전 그래프 
정점 수 =  n이면 간선의 수: n * (n-1) / 2</li>
</ul>
<hr>
<h3 id="그래프의-표현">그래프의 표현</h3>
<p><img src="https://velog.velcdn.com/images/ga_0/post/9f88eb58-2966-45d4-8105-d1da03293da9/image.png" alt=""></p>
<p>1) 인접 행렬</p>
<ul>
<li>가장 일반적 표현 방법  </li>
<li>2차원 배열로 정점 간의 간선의 존재 여부를 1 또는 0으로 표현</li>
<li>정점의 번호만 알면, 배열의 이넥스로 각 정점의 연결리스트에 쉽게 접근 가능  </li>
<li>무방향 그래프에 간선은 두 번 저장됨  </li>
</ul>
<p>2) 인접 리스트</p>
<ul>
<li>정점 개수만큼 리스트를 만들어 각각의 정점 리스트에 간선 추가</li>
<li>NxN 불린 행렬(Boolean Matrix)로써 matrix[i][j]가 true라면 i -&gt; j로의 간선이 있다는 뜻</li>
<li>무방향 그래프를 인접 행렬로 표현한다면 이 행렬은 대칭 행렬</li>
</ul>
<hr>
<h3 id="그래프의-선택">그래프의 선택</h3>
<p>1) 인접 리스트</p>
<ul>
<li>그래프 내에 적은 숫자의 간선만을 가지는 희소 그래프(Sparse Graph) 의 경우 사용  </li>
<li>장점
  어떤 노드에 인접한 노드들 을 쉽게 찾을 수 있음
  그래프에 존재하는 모든 간선의 수 는 O(N+E) 안에 알 수 있다. 
: 인접 리스트 전체를 조사함</li>
<li>단점
간선의 존재 여부와 정점의 차수: 정점 i의 리스트에 있는 노드의 수 즉, 정점 차수만큼의 시간이 필요</li>
</ul>
<p>2) 인접 행렬</p>
<ul>
<li>그래프에 간선이 많이 존재하는 밀집 그래프(Dense Graph) 의 경우</li>
<li>장점
두 정점을 연결하는 간선의 존재 여부 (M[i][j])를 O(1) 안에 즉시 알 수 있음
정점의 차수 는 O(N) 안에 알 수 있다. : 인접 배열의 i번 째 행 또는 열을 모두 더함</li>
<li>단점
어떤 노드에 인접한 노드들을 찾기 위해서는 모든 노드를 전부 순회해야함
그래프에 존재하는 모든 간선의 수는 O(N^2) 안에 알 수 있음
: 인접 행렬 전체를 조사함</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[algorithm_탐색]]></title>
            <link>https://velog.io/@ga_0/algorithm%ED%83%90%EC%83%89</link>
            <guid>https://velog.io/@ga_0/algorithm%ED%83%90%EC%83%89</guid>
            <pubDate>Sun, 16 Oct 2022 12:47:36 GMT</pubDate>
            <description><![CDATA[<h3 id="탐색">탐색</h3>
<ul>
<li>주어진 자료들 중에 원하는 조건에 해당하는 자료를 찾는 과정  <ul>
<li>주어진 자료들을 모아둔 공간(탐색 공간)에서 목표 값을 찾는 과정  </li>
</ul>
</li>
</ul>
<h3 id="모든-알고리즘의-3가지-공통-구성요소">모든 알고리즘의 3가지 공통 구성요소</h3>
<ol>
<li><p>탐색 목표<br>: 타겟 데이터(값)<br> -&gt; 탐색 성공 여부 판단의 기준  </p>
</li>
<li><p>탐색 공간<br>: 탐색 목표일 가능성이 있는 것을 모아 놓은 집합  </p>
</li>
</ol>
<ol start="3">
<li>탐색(검색) 알고리즘<br>: 탐색을 진행하며 따라야하는 특정 절차 및 지침을 모아둔 집합  </li>
</ol>
<h3 id="탐색-문제-해결방법">탐색 문제 해결방법</h3>
<h4 id="1-선형-탐색-알고리즘--순차-탐색-알고리즘">1. 선형 탐색 알고리즘 = 순차 탐색 알고리즘</h4>
<p><img src="https://velog.velcdn.com/images/ga_0/post/c6984630-6dfb-43c2-9350-4ac4a475e4b8/image.png" alt=""></p>
<ul>
<li>순서대로 하나씩 탐색하며 탐색 타겟 찾기
-&gt;원하는 값 발견시, 나머지는 안봄  </li>
<li>완전 탐색법 중 하나<br>(<a href="https://velog.io/@ga_0/algorithm%EC%99%84%EC%A0%84-%ED%83%90%EC%83%89">완전탐색? &lt;- 선형 검색 외에 완전탐색하는 방법들은 위 링크에서 다룸</a>)  <ul>
<li>시간 복잡도<br>최선 = O(1)  -&gt; 한번에 찾음 
최악 = O(n)  -&gt; 타겟 못 찾음</li>
</ul>
</li>
</ul>
<h4 id="2-이진이분-탐색-알고리즘">2. 이진(이분) 탐색 알고리즘</h4>
<p><img src="https://velog.velcdn.com/images/ga_0/post/a98897b4-7371-43b6-ad29-ee4f1acc122a/image.png" alt=""></p>
<ul>
<li>중간값 찾아서 -&gt; 왼쪽 오른쪽 구분<br>계속 중간값을 찾아 반씩 나눠서 탐색 </li>
<li>정렬된 리스트에서 특정 값 위치를 탐색하는 알고리즘  </li>
<li>시간 복잡도<br>최선 : O(1)  -&gt; 한번에 찾음
최악 : O(log2n) -&gt; 타겟 못찾음  </li>
</ul>
<p>-&gt; 보통 정렬된 리스트에는 이진탐색<br>-&gt; 정렬되지 않은  리스트에는 선형 탐색 사용 </p>
<h4 id="3-해시-탐색">3. 해시 탐색</h4>
<ul>
<li>해시 : 잘게 썬다, 자른다</li>
<li>선형/이진 탐색은 어떤 값이 어떤 인덱스에<br>들어있는지 정보가 없을 때 사용<br>-&gt; 데이터랑 데이터와 같는 첨자의 요소에 넣어두면 한번에 찾는게 가능하지 않을까? 란 아이디어가 떠오름<br>-&gt; 해시 탐색은 값-인덱스 미리 연결해두어 더 짧은 시간에 탐색 가능  </li>
</ul>
<ul>
<li><p>해시 탐색은 해시 함수를 사용하여<br> 1) 입력들을 분류 및 저장 
 <img src="https://velog.velcdn.com/images/ga_0/post/12073e0b-485c-41c6-bcaa-fb7c9a2acdaf/image.png" alt=""> 
 -&gt; 입력.분류하는 과정  </p>
<pre><code>= 해시테이블(미리 준비해둔 상자)에 입력/분류하여 담아두는 과정  </code></pre><p> 2) 요소를 탐색(검색)<br> 하는 두개의 알고리즘이 필요  </p>
</li>
<li><p>해시 값 충돌 (해시 값이 겹치는 경우)<br>-&gt; 해결방법으로 같은 해시 값을 가지면 해당 요소들을 연결 리스트로 만듦<br>-&gt; 해시 충돌시에 조사하게 되는 대체칸 = 번지 계열<br>-&gt; 번지 계열이 겹쳐 충돌일어날 경우 = 클러스터 발생  </p>
<ul>
<li>시간복잠도<br>최선 : O(1)<br>최악 : O(n)<br>검색 알고리즘 중에서 매우 속도가 빠른 알고리즘<br>해시함수의 질이 좋을 때 사용이 권장됨  </li>
</ul>
</li>
</ul>
<h4 id="4-이진-탐색-트리--bst">4. 이진 탐색 트리 = BST</h4>
<ul>
<li><p>정의
왼쪽 서브트리의 키값들은 root의 키값보다 작다
오른쪽 서브트리의 키값들은 root의 키값보다 크다
왼쪽, 오른쪽 서브트리들은 각각 모두 BST정의를 만족한다
BST의 모든 node들의 키값은 unique하다.
위의 4가지를 모두 만족해야 한다.</p>
</li>
<li><p>탐색 알고리즘
어떠한 BST에서 원하는 값을 찾고자할 때,</p>
<p>root값을 기준으로</p>
<p>원하는 값 &gt; root 키 값 : 오른쪽 서브트리로 이동
원하는 값 &lt; root 키 값 : 왼쪽 서브트리로 이동
원하는 값 = root 키 값 : 탐색 종료
이 것을 계속 반복해나가면 된다.
-&gt; 이진 탐색 트리는 트리 구조와 함께 
추후 게시물에서 추가적으로 다뤄<br>관련 링크 첨부 예정 + 관련 내용 수정 예정</p>
</li>
</ul>
<h4 id="참고">참고</h4>
<blockquote>
<p><a href="https://lucathree.github.io/algorithm/searchalgorithm/">탐색 알고리즘 - 선형탐색/이진탐색</a>
<a href="https://velog.io/@hyunjin3_3/%EC%99%84%EC%A0%84%ED%83%90%EC%83%89exhaustive-search-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%B0%B0%EC%97%B4array">[탐색&amp;자료구조] 👀완전탐색(exhaustive search) 알고리즘 + 📂배열(array)</a>
<a href="https://bba-dda.tistory.com/m/21">[알고리즘] 탐색 알고리즘 (선형, 이분, 해시, BST)</a>
<a href="https://hini7.tistory.com/m/121">[c++] 알고리즘 개념공부 :: 탐색 (선형 탐색, 이진 탐색, 해시 탐색)</a>
<a href="https://velog.io/@dlrmsghks7/%ED%83%90%EC%83%89-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EC%9D%84-%EC%95%8C%EC%95%84%EB%B4%85%EC%8B%9C%EB%8B%A4">탐색 알고리즘을 알아봅시다!!:)</a>
<a href=""></a></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[algorithm_완전 탐색]]></title>
            <link>https://velog.io/@ga_0/algorithm%EC%99%84%EC%A0%84-%ED%83%90%EC%83%89</link>
            <guid>https://velog.io/@ga_0/algorithm%EC%99%84%EC%A0%84-%ED%83%90%EC%83%89</guid>
            <pubDate>Sun, 16 Oct 2022 07:56:03 GMT</pubDate>
            <description><![CDATA[<h3 id="완전탐색">완전탐색</h3>
<blockquote>
<ul>
<li>가능한 모든 경우의 수를 조사하여 답을 구하는 방법  </li>
</ul>
</blockquote>
<p>문제를 완전탐색을 통해 풀어내고자 할 때<br>사용할 수 있는 완전탐색 기법의 종류가 몇개 있다  </p>
<h3 id="완전탐색-기법-종류">완전탐색 기법 종류</h3>
<blockquote>
<h4 id="1-brute-force">1. Brute Force</h4>
</blockquote>
<ul>
<li>반복문과 조건문 활용으로 모든 경우 테스트  </li>
</ul>
<blockquote>
<h4 id="2-bit-mask">2. Bit Mask</h4>
</blockquote>
<ul>
<li>각각 원소가 포함 된다 / 안된다 = 0 / 1<br>-&gt; 2진수 이용하는 컴퓨터 연산을 이용하는 방식<br><img src="https://velog.velcdn.com/images/ga_0/post/c8d278d8-b6b6-4087-86eb-81a47873cdd8/image.png" alt=""><br>-&gt; 우측에는 S에 포함되는 값인지 체킹하고 싶은 집합(S의 부분집합)<br>-&gt; s에 속하는 값이 우측 집합에 있으면 1, 없으면 0<br>-&gt; 좌측의 0, 1, 2, 5, 14, 31 은 비트마스크된 2진 표현을 10진수로 표현했을 때의 값  </li>
</ul>
<blockquote>
<h4 id="3-재귀-함수">3. 재귀 함수</h4>
</blockquote>
<ul>
<li><p>재귀<br>= 자기 자신을 호출한다  </p>
</li>
<li><p>예시<br>원소의 개수가 3인, S의 부분집합을 만드는 문제가 주어졌다면<br>{1,3,4}, {1,3,7}, {1,3,10}....이 될것<br>여기서 1은 고정시키고나머지 원소들을 넣는 것이기 때문에<br>1이 넣어진 상태로  {1, , }<br>-&gt; 재귀적으로 함수를 호출하여 그 다음 원소가 불러진다<br>-&gt; 이때 두번째 원소인 3을 찾기위해 1, 2가 S에 포함되는지 아닌지 판별하는 과정이 필요하다<br>-&gt; 이후에 3이 S에 포함되는 값인 3을 찾아 1, 3이 넣어진 상태로 {1,3, }
-&gt; 재귀적으로 함수를 또 호출하여 그 다음 원소인 4가 넣어지는 것이다 {1,3,4}</p>
<ul>
<li>이때 이렇게 원소를 하나씩 S에 속한다/속하지 않는다를 통해<br>속하면 재귀함수가 호출되고<br>속하지 않으면 거기서 재귀함수로 두번째 또는 세번째 원소가 호출되지 않고 있기 때문에<br>비트마스크와 같이 2가지 선택을 가질 때 유용하게 쓰임  </li>
</ul>
<blockquote>
<h4 id="4-순열">4. 순열</h4>
</blockquote>
<ul>
<li>임의의 수열 -&gt; 다른 순서로 나열하여 연산  </li>
<li>순열을 가진다는 것의 의미는<br>{1,2,3} 과 {3,2,1}이 다르다는 의미이다  </li>
<li>다음 순열을 구하면서 모든 순열을 구하며<br>완전 탐색이 진행된다  </li>
</ul>
<blockquote>
<h4 id="5-dfs-bfs">5. DFS/ BFS</h4>
</blockquote>
<ul>
<li>BFS = 너비 우선탐색<br>: 현재 정점과 인접한 정점을 우선으로 탐색<br>-&gt; 인접한 정점들을 모두 탐색한 이후에<br>-&gt; 인접한 정접들의 인접한 정점들을 탐색하는 방법  </li>
<li>DFS = 깊이 우선탐색<br>: 현재 정점과 인접한 정점을 탐색한 후<br>-&gt; 그 다음에 인접한 정잠을 탐색하여 끝까지 탐색하는 방식  </li>
<li>예시 (택배) -&gt; 완전 정확한 비유는 아님/ 감잡는 예시      <ul>
<li>단독주택 마을에서<br>골목길 끝에 길 부터 들어간뒤<br>차례로 택배 전달  </li>
<li>아파트에서<br>1층 의 101<del>109호 전달한뒤에<br>2층 의 201</del>209호 전달하는 택배 방식<br><img src="https://velog.velcdn.com/images/ga_0/post/01e28da3-97e1-4e5a-8267-6ed90912a3fa/image.gif" alt=""></li>
</ul>
</li>
</ul>
</li>
</ul>
<h5 id="참고-링크">참고 링크</h5>
<blockquote>
<p><a href="https://velog.io/@hyehyes/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%99%84%EC%A0%84%ED%83%90%EC%83%89">[알고리즘] 완전탐색 벨로그글</a><br><a href="https://velog.io/@yesjjin99/Algorithm-%EC%99%84%EC%A0%84%ED%83%90%EC%83%89">[Algorithm] 완전탐색 벨로그글 2</a><br><a href="https://hongjw1938.tistory.com/78">알고리즘 - 완전탐색(Exhaustive Search) 티스토리</a>  </p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[포트폴리오_]]></title>
            <link>https://velog.io/@ga_0/%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4</link>
            <guid>https://velog.io/@ga_0/%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4</guid>
            <pubDate>Fri, 26 Aug 2022 14:01:45 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[shell_00]]></title>
            <link>https://velog.io/@ga_0/shell00</link>
            <guid>https://velog.io/@ga_0/shell00</guid>
            <pubDate>Tue, 17 May 2022 13:02:05 GMT</pubDate>
            <description><![CDATA[<p>-. 심볼릭링크(Symbolic Link)파일
단순히 원본파일을 가리키도록 링크만 시켜둔 것
&quot;바로가기&quot;와 같은 것이며, 원본파일을 가리키고만 있으므로 원본파일의 크기와는 무관</p>
<blockquote>
<p>ln -s [원본 파일명] [심볼릭 링크 파일명]</p>
</blockquote>
<p>-. 하드링크(Hard Link)파일
원본파일과 다른 이름으로 존재하는 동일한 파일
하드링크에서는 원본파일과 링크파일 두개가 서로 다른 파일이기 때문에 둘중 하나를 삭데하더라도 나머지 하나는 그대로 남아 있음
또한 하드링크에서는 원본파일의 내용이 변경될 경우에는 링크파일의 내용 또한 자동으로 변경됨</p>
<blockquote>
<p>ln [원본 파일명] [링크 파일명]</p>
</blockquote>
<p>둘의 차이점 보려면 : 
ls -i [원본]
ls -i [링크]
inode number 값 확인해볼 것 (하드링크 파일은 원본 값과 동일)
<em><a href="https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&amp;blogId=dudwo567890&amp;logNo=130155339240">https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&amp;blogId=dudwo567890&amp;logNo=130155339240</a></em></p>
<hr>
<p>환경 변수란 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임
쉽게 이야기해서 각자 깊숙이 있는 응용프로그램을 쉽게 꺼내쓰기 위해서 미리 변수로 등록해 놓는 것</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[자바의 정석 ch2) 9 : 두 변수 바꾸기 ]]></title>
            <link>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch2-9-%EB%91%90-%EB%B3%80%EC%88%98-%EB%B0%94%EA%BE%B8%EA%B8%B0</link>
            <guid>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch2-9-%EB%91%90-%EB%B3%80%EC%88%98-%EB%B0%94%EA%BE%B8%EA%B8%B0</guid>
            <pubDate>Sun, 06 Mar 2022 18:55:19 GMT</pubDate>
            <description><![CDATA[<p>int x = 10 ,y = 20 ;</p>
<p>이렇게 되어 있는데 </p>
<p>x랑 y 값을 바꾸려면 어떻게 해야할까?</p>
<p>​</p>
<p>x 컵에 우유가, y 컵에 오렌지 쥬스가 들어있다  (컵 = 저장공간)</p>
<p>두개를 서로 내용물을 바꾸어 담으려면 </p>
<p>하나의 또다른 컵이 필요하다 = 이 컵을 tmp 라고 한다 </p>
<p>tmp컵에 x값인 우유(10)을 담아두고</p>
<p>x컵에 y값인 오렌지 쥬스(20)을 옮겨 담은뒤</p>
<p>tmp컵에 담긴 우유(10)을 y컵에 담으면 상황 종료 -!</p>
<p>이처럼 변수 tmp를 사용하면된다</p>
<p>​</p>
<p>int x = 10,  y=20 ;</p>
<p>int tmp ;    // 빈컵</p>
<p>​</p>
<p>tmp = x;      //tmp (템프? 템퍼?) 에 x 값을 저장하고 </p>
<p>x= y;            // x의 값을 y에 저장</p>
<p>y = tmp;     //tmp 값을 y에 저장</p>
<hr>
<p>실습</p>
<p><img src="https://images.velog.io/images/ga_0/post/46182471-649c-4844-9872-ebaab60e71dc/image.png" alt=""></p>
<p>밑에 println 은 저번에 배운 결합을 활용해서</p>
<p>결과가 도출되었을때 </p>
<p>어떤값이 x고 y인지 잘 모를 수 있으니</p>
<p>도출되었을때 x=, y= 형태로 나오게 함</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[자바의 정석 ch2) 7-8 : 문자와 문자열 ]]></title>
            <link>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch2-7-8-%EB%AC%B8%EC%9E%90%EC%99%80-%EB%AC%B8%EC%9E%90%EC%97%B4</link>
            <guid>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch2-7-8-%EB%AC%B8%EC%9E%90%EC%99%80-%EB%AC%B8%EC%9E%90%EC%97%B4</guid>
            <pubDate>Sun, 06 Mar 2022 18:54:20 GMT</pubDate>
            <description><![CDATA[<p>char ch = &#39;A&#39;;</p>
<p>문자는 캐릭터 타입 변수에 넣을 수 있음 </p>
<p>홑 따옴표 안에 문자를 넣어야함</p>
<p>​</p>
<p>char ch = &#39;AB&#39;  //에러</p>
<p>문자열이기 때문에 캐릭터 변수 타입에 들어가지 못하며</p>
<p>홑 따옴표 아닌 쌍 따옴표 사용해야함 </p>
<p>​</p>
<p>string s = &quot;ABC&quot;;</p>
<p>둘이상은 큰 따옴표로 해야하고</p>
<p>문자로 연속적으로 짜여있는 것을 문자열 or 문자열 리터럴이라고 부름 </p>
<p>이런 문자열을 사용하려면 스트링 변수 타입에 넣어야함 </p>
<p>​</p>
<p>스프링은 원래 자바에서 제공하는 class 여서</p>
<p>뉴 연산자를 써서 객체 생성해야하는데 이를 안함</p>
<p>string s2 = new String(&quot;AB&quot;);</p>
<p>​</p>
<p>근데 너무 자주 사용해서 </p>
<p>기본형 변수에 값 넣는 표현 허용</p>
<p>string s1 = &quot;AB&quot; </p>
<p>(위 코드와 아래 코드 거의 비슷하다고 보면 됨 = 악간 차이 있는데 이는 9장에서 배울 예정)</p>
<p>(아래 코드 형태로 거의 씀)</p>
<p>​</p>
<p>문자열은 </p>
<p>1) 연속된 문자열   을 의미하지만</p>
<pre><code> String s = &quot;ABC&quot;;</code></pre><p>2) 한 문자도 됨</p>
<pre><code> String s = &quot;A&quot;;</code></pre><p>3) 빈 문자도 됨</p>
<pre><code> String s = &quot;&quot;;   //string + 큰 따옴표 + 빈문자  ㅇㅋ

 char ch = &#39;&#39;;    //char + 작은 따옴표 + 빈문자  에러 </code></pre><p>4) 결합 형태 </p>
<pre><code> Srting s1 = &quot;A&quot; + &quot;B&quot;;  // &quot;AB&quot; 

 여기서 + 는 A랑 B를 결합하라는 뜻임 

 그래서 AB가 s1에 저장되는 것을 가르킴



  Srting s1 = &quot;&quot; + &quot;7&quot;;  // &quot;7&quot;

  빈문자열 + 숫자 를 하면

  숫자가 문자열로 변환된 다음에 대답되어 문자 7이 됨

  문자열은 문자하고만 결합될 수 있기 때문에 숫자를 문자로 변환 

  프로그래밍 하다보면 숫자를 문자로 바꿔야 하는 경우가 많은데 이를 방법으로 사용 가능함 </code></pre><p>​</p>
<p>   순차적으로 결합이 이루어지는데, 때문에 순서에 따라 전혀 다른 결과 값이 도출</p>
<p>   _1) 빈문자열 + 7 +7 </p>
<pre><code>       &quot;&quot; + 7 +7   &gt;&gt;  &quot;7&quot; + 7  &gt;&gt; &quot;7&quot; + &quot;7&quot;  &gt;&gt; &quot;77&quot;</code></pre><p>   _2) 7 + 7+ 빈문자열</p>
<pre><code>       7+ 7+ &quot;&quot;   &gt;&gt;   14 + &quot;&quot;  &gt;&gt; &quot;14&quot;</code></pre><p>​</p>
<p> ∴ 문자열 + any type  = 문자열
    any type + 문자열 = 문자열</p>
<hr>
<h3 id="실습">실습</h3>
<p><img src="https://images.velog.io/images/ga_0/post/7e7767da-7dfb-4406-9b4c-c5b8db62488c/image.png" alt="">
캐릭터 타입 변수에 A를 넣은뒤에 &gt; ch 출력하면 &gt; A가 출력된다</p>
<p>int 타입 변수에 A를 넣은 뒤에 &gt; i 를 출력하면 &gt; 65가 나오는데, 이는 A 문자코드가 출력되는 것이다</p>
<p><img src="https://images.velog.io/images/ga_0/post/1eab1cf8-40bf-406d-9958-d5934fa56809/image.png" alt=""></p>
<p>stirng을 쓰면</p>
<p>빈문자</p>
<p>문자열 모두 가능하고 + 사용해서 결합하면</p>
<p>콘솔 창에 나와있듯이 결합되어서 결과가 도출됨 
<img src="https://images.velog.io/images/ga_0/post/cde544cf-622c-47b0-8749-fd85d7b6b623/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[자바의 정석 ch2) 6: 리터럴 타입과 전미사]]></title>
            <link>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch2-6-%EB%A6%AC%ED%84%B0%EB%9F%B4-%ED%83%80%EC%9E%85%EA%B3%BC-%EC%A0%84%EB%AF%B8%EC%82%AC</link>
            <guid>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch2-6-%EB%A6%AC%ED%84%B0%EB%9F%B4-%ED%83%80%EC%9E%85%EA%B3%BC-%EC%A0%84%EB%AF%B8%EC%82%AC</guid>
            <pubDate>Sun, 06 Mar 2022 18:51:21 GMT</pubDate>
            <description><![CDATA[<p><img src="https://images.velog.io/images/ga_0/post/3d014f42-b301-4168-bce7-9bcb093cea45/image.png" alt=""></p>
<hr>
<p>예시로 살펴보기</p>
<p>​</p>
<p>1) boolean power = true ;</p>
<p>논리형이기 때문에 T/F만 가능</p>
<p>​</p>
<p>_boolean 이란</p>
<p><em>①영국의 수학자 조지 불(George Boole)이 창안한 불 대수의 이론과 규칙에 따른 연산에 관한 용어에 붙는 형용사.</em></p>
<p><em>②논리값을 다루는 연산에 관한 용어에 붙는 형용사. 불 대수는 X 또는 Y의 수치 계산이 아니라, 참 또는 거짓의 논리값을 다루기 때문에 이 용어가 쓰인다.</em></p>
<p><em>③일부 프로그램 언어에서의 기본적 데이터형의 하나. 많은 언어에서 참 또는 거짓의 논리값을 나타내는 불 데이터형을 직접 지원한다. 어떤 언어에서는 불값을 0(거짓)과 1(참)로 나타내는 정수 데이터형을 사용한다.</em></p>
<p>_<a href="https://terms.naver.com/entry.naver?docId=848662&amp;cid=42346&amp;categoryId=42346">[네이버 지식백과] 불 [Boolean] (IT용어사전, 한국정보통신기술협회)</a></p>
<p>​
2) char ch = &#39;A&#39;;</p>
<p>캐릭터 타입 변수에는 하나의 문자만 저장가능</p>
<p>문자는 작은 따옴표 사이에 넣어야 함 </p>
<p>​</p>
<p>3)String str = &quot;ABC&quot;;</p>
<p>스트링 타입 변수에는 여러 문자 저장가능</p>
<p>문자열은 큰 따옴표로 묶어줘야함</p>
<p>​</p>
<p>4) String str = &quot;A&quot;;</p>
<p>A 문자 하나 처럼 보여도 </p>
<p>큰따옴표로 묶이면 문자열임</p>
<p>​</p>
<p>5) 역슬래쉬 + n (| + n)</p>
<p>줄바꿈 문자 (개행문자)  라는 하나의 문자 </p>
<p>​</p>
<p>6) byte b = 127;</p>
<pre><code> byte b = 128;      //에러</code></pre><p>127은 정수인데 접미사가 없으니까 int 타입으로 사용됨</p>
<p>​</p>
<p>바이트, 숏 타입은 리터러리 없기 때문에 </p>
<p>int 접미사 사용 </p>
<p>바이트 사용할 수 있는 값 범위 내여야 함 (-128~127 까지 가능)</p>
<p>​</p>
<p>​</p>
<p>7) </p>
<p>int i = 100;                // 10진수</p>
<p>int oct = 0100;         // 8진수</p>
<p>int hex = 0x00;        // 16 진수</p>
<p>접두사 붙여서 정수형 리터럴 표현도 가능 </p>
<p>​</p>
<p>8) JDK 1.7버젼 부터 </p>
<p>0b0101 같이</p>
<p>0b + 정수형 리터럴 로 표현되면 </p>
<p>이진수를 나타냄 </p>
<p>​</p>
<p>9) long ㅣ = 10_000_000_000L;            // 100억 </p>
<p>int 타입 최대값은 20억 이라서 </p>
<p>이 이상은 long 타입에 넣어야함 </p>
<p>int 불가능하기 때문에 꼭 L 붙여야함</p>
<p>​</p>
<p>10) long ㅣ = 100;    </p>
<p>롱타입 변수 저장할때 int 접미사 사용가능해서</p>
<p>L 안붙이고, 생략 가능함 </p>
<p>​</p>
<p>11) float f = 3.14f;
double d = 3.14d;</p>
<p>실수형 f 접미사 필수</p>
<p>float 타입 변수를 double 타입에 넣지 못함 </p>
<p>실수형 d 접미사 생략 가능 </p>
<p>​</p>
<hr>
<p>퀴즈 </p>
<ol start="10">
<li>/&gt;     10.0에서 뒤에 0 생략 
실수 + 접미사 없음 = double</li>
</ol>
<p>​</p>
<p>.10<br>    /&gt;     0.10에서 앞에 0 생략
        실수 + 접미사 없음 = double</p>
<p>​</p>
<p>10f<br>    /&gt;    실수 + f 접미사    = float</p>
<p>​</p>
<p>le3<br>/&gt;    e는 10의 n제곱을 의미
    따라서 le3는 10의 세제곱 = 1000의미
    e는 실수형에서 사용됨
    실수형 + 접미사 없음 = double</p>
<hr>
<h3 id="변수와-리터널의-타입-불일치">변수와 리터널의 타입 불일치</h3>
<p>​</p>
<h4 id="1-변수---리터럴-인-경우-ㄱㅊ">1) 변수 &gt;  리터럴 인 경우 ㄱㅊ</h4>
<p>​</p>
<p>① int i = &#39;A&#39;;              // int &gt; char</p>
<p>문자 A가 정수 int에 들어가는게 아니라</p>
<p>A인 ~~ 65가 int에 들어감 </p>
<p>Q 근데,,,​, 이거 머선 내용 이 즤 ,,, 모름 </p>
<p>​</p>
<p>② long l = 123 ;               // long &gt; int</p>
<p>③ double d = 3.14f        // double &gt; float</p>
<p>​</p>
<h4 id="2-변수--리터럴-인-경우는-ㄴㄴ-에러">2) 변수 &lt; 리터럴 인 경우는 ㄴㄴ 에러</h4>
<p>​</p>
<p>① int i 30_0000_0000 ;   // int 범위인 -20억 ~ +20억 을 벗어남</p>
<p>​</p>
<p>② long l = 3.14 f;              // long &lt; float</p>
<p>롱타입이 8바이트고 float이 4바이트라서 괜찮을 것 같지만</p>
<p>실수형은 정수형보다 넓기 때문에 불가능 </p>
<p>​</p>
<p>③ float f = 3.14;               // float &lt; double</p>
<p>더블 타입 플롯 타입 저장 불가</p>
<p>접미사 생략 불가도 다름 </p>
<p>​</p>
<p>3) byte, short 변수에 int 리터럴 저장 가능 </p>
<p>byte랑 short는 리터럴이 없기 때문에</p>
<p>변수 타입 범위 내면 ㄱㅊ</p>
<p>​</p>
<p>① byte b = 100 ;       //byte 범위인 -128~+127에 속하기 때문에 int 리터럴 사용해서 가능</p>
<p>② byte b = 128;       //에러 byte 범위 벗어나서</p>
<p>​</p>
<hr>
<h3 id="실습">실습</h3>
<p>​</p>
<p>실습하려니까 </p>
<p>저번에 프로젝트 만들때 에러났던게 </p>
<p>이번에 또나서 !
<img src="https://images.velog.io/images/ga_0/post/c7df74c0-c425-4445-99ee-dea36d21a193/image.png" alt=""></p>
<p>검색 고고링 해보니까</p>
<p>프로젝트 만들때 모듈을 만들지 않고 </p>
<p>프로젝트를 만들어야 한다고 해서 </p>
<p>당장 실행에 옮기기</p>
<p><img src="https://images.velog.io/images/ga_0/post/2ccf6b1e-582e-4bd3-86f0-37585eaf2a63/image.png" alt=""></p>
<p>그렇게 해보니까 </p>
<p>에러 없이 프로젝트 생성 !! </p>
<p>_(근데 왜 모듈을 만들면 안되는건지,, class랑 module이랑 충돌인가..? 왜 ? 라는,,, 또 하나의 궁금증이 생김)</p>
<p>_(java에서 class랑 module이 정확히 어떤 의미를 갖는건지 내가 아직 잘 모르는것 같은데, </p>
<p>_이는 아마 앞으로 배우면서 자연스럽게 해결되는 점일 것 같아서 그때가서 배우기로 하고 일단 실습 ㄱ)</p>
<p>​
에러 없이 프로젝트 생성 !! </p>
<p>​</p>
<p>근데
<img src="https://images.velog.io/images/ga_0/post/a4eed8ac-760c-4701-91ee-098a5e22597f/image.png" alt=""></p>
<p>왜 오류가 나지...?! </p>
<p>라고 했는데 ㅋㅋㅋㅋㅋ</p>
<p>변수 타입을 출력하고 있었음 ㅎㅎ </p>
<p>변수인 d를 했어야 했는데 ㅎㅎㅎㅎㅎ;;</p>
<p><img src="https://images.velog.io/images/ga_0/post/3769b008-4002-4a2c-b789-a9a95e3a9cf6/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[자바의 정석 ch2) 4-5: 변수의 타입, 변수 상수 리터럴]]></title>
            <link>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch2-4-5-%EB%B3%80%EC%88%98%EC%9D%98-%ED%83%80%EC%9E%85-%EB%B3%80%EC%88%98-%EC%83%81%EC%88%98-%EB%A6%AC%ED%84%B0%EB%9F%B4</link>
            <guid>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch2-4-5-%EB%B3%80%EC%88%98%EC%9D%98-%ED%83%80%EC%9E%85-%EB%B3%80%EC%88%98-%EC%83%81%EC%88%98-%EB%A6%AC%ED%84%B0%EB%9F%B4</guid>
            <pubDate>Sun, 06 Mar 2022 18:44:22 GMT</pubDate>
            <description><![CDATA[<h4 id="1-변수의-타입">1. 변수의 타입</h4>
<p>  1)  저장할 값의 타입에 의해 변수의 타입 결정
  int age = 25;                    //정수타입  정수   &gt; 일치
  age = 3.14;                      // 정수타입   실수   &gt; 불일치 &gt; 실수 타입으로 변수 타입 정해야함</p>
<p>  2) 저장할 값의 타입과 일치하는 타입으로 변수 선언
  char ch = &#39;가&#39;;                          // 문자타입은 char 
  double pi = 3.14;                        // 실수 타입은 double</p>
<h4 id="2-값의-타입-기본형-8개">2. 값의 타입 (기본형: 8개)</h4>
<p>  1)  문자      :  char</p>
<p>  2)  숫자<br>① 정수 : byte, short, long, int
② 실수 (소수점 수)  : float, double</p>
<p>  3)  논리 ( true/ false)  : boolean </p>
<hr>
<h4 id="1-변수-variable">1. 변수 =variable</h4>
<p>하나의 값을 저장하기 위한 공간</p>
<p>int score = 100;</p>
<p>scoe = 200;</p>
<p>​</p>
<h4 id="2-상수--constant">2. 상수 = constant</h4>
<p>하나의 값을 저장하기 위한 공간 +  한번 값 저장하면, 값 변경 불가 (한 번만 값을 저장 가능한 변수)</p>
<p>final int  MAX = 100;    // MAX는 상수</p>
<p>MAX = 200;                    // 에러</p>
<p>​</p>
<h4 id="3-리터럴---literal">3. 리터럴 =  literal</h4>
<p>그 자체로 값을 의미하는 것 </p>
<p>기존의 상수</p>
<p>상수는 한번, 하나의 값만 저장 가능하기 때문에 리터럴 사용</p>
<p>​
<img src="https://images.velog.io/images/ga_0/post/610c1821-2f6b-4cc2-9992-4281e33795e6/image.png" alt=""></p>
<hr>
<h4 id="실습">실습</h4>
<p>​</p>
<p>1) 100 정상 출력
<img src="https://images.velog.io/images/ga_0/post/3c19faf7-6c96-47f6-af50-0ba1c0088389/image.png" alt=""></p>
<p>2) 200 정상 출력
<img src="https://images.velog.io/images/ga_0/post/d6c4e1d8-bf34-4cc3-a669-84b887287ac8/image.png" alt=""></p>
<p>3) final 통해서 상수로 지정 </p>
<p>score가 변수가 아닌 상수로 100이 됨</p>
<p>근데 밑에 200으로 score 바꾸려니까 에러 남 
<img src="https://images.velog.io/images/ga_0/post/a5642c3b-cf72-45fc-9f86-811dbe9732ef/image.png" alt=""></p>
<p>지역변수는 사용하기 전에 초기화를 해줘야함 </p>
<p>파란색 : 초기화</p>
<p>주황색 : 선언 
<img src="https://images.velog.io/images/ga_0/post/c2212417-0f0d-40f5-bf29-dc909eb239bf/image.png" alt="">
근데, 상수는 이렇게 한번에</p>
<p>초기화 및 선언 하는게 좋음 </p>
<p>(요즘 위처럼 상수 초기화, 선언 따로하기도 함)
<img src="https://images.velog.io/images/ga_0/post/6b1c28a4-02e6-4a78-ac77-85bbed389e06/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[자바의 정석 ch2) 2-3: 변수 선언과 저장]]></title>
            <link>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch2-2-3-%EB%B3%80%EC%88%98-%EC%84%A0%EC%96%B8%EA%B3%BC-%EC%A0%80%EC%9E%A5</link>
            <guid>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch2-2-3-%EB%B3%80%EC%88%98-%EC%84%A0%EC%96%B8%EA%B3%BC-%EC%A0%80%EC%9E%A5</guid>
            <pubDate>Thu, 03 Mar 2022 20:34:10 GMT</pubDate>
            <description><![CDATA[<h3 id="1-변수">1. 변수</h3>
<p>하나의 값을 저장할 수 있는 메모리 공간</p>
<p>​</p>
<p>그러나 아래 처럼 
메모리 공간이 숫자로 지정되어 있는 메모리 주소가 있음
메모리 주소 착오하기 쉬움 </p>
<p><img src="https://images.velog.io/images/ga_0/post/1c9454a7-12bb-4937-befa-b4d26496cea2/image.png" alt=""></p>
<p>그래서, 이를 age 등과 같은 특정 메모리 영역에
메모리 주소 대신에 이름을 이용해서 
메모리 값을 저장하고 읽을 수 있게 된 것이 바로 변수</p>
<p>변수는 하나의 값만 저장가능 하기 때문에
새로운 값이 오면 이전 값은 지워짐</p>
<h3 id="2-변수의-선언">2. 변수의 선언</h3>
<p>메모리 값지정하려면 변수 선언을 먼저 해줘야함</p>
<p>변수를 선언한다는 것은 값을 저장할 공간을 마련하는것 </p>
<p>​</p>
<p>변수 선언 방법)  변수타입 변수이름 ; </p>
<p>예시 ) int age ;        //정수타입의 변수 age를 선언 </p>
<p>변수 타입은 변수에 어떤 값을 저장하는지에 따라 달라짐</p>
<p>여기서 int는 정수를 의미한다 </p>
<p>세미콜론 까지 모두 잊지 말고 붙여줘야함</p>
<p>​</p>
<h3 id="3변수에-값-저장하기">3.변수에 값 저장하기</h3>
<p>int age;        //정수타입의 변수 age를 선언 </p>
<p>age = 25;     //변수 age에 25를 저장</p>
<p>(수학에서=는 등호이지만, 자바에서 =는 오른쪽의 값을 왼쪽에 저장하라는 것으로 대입연산자라고 함)</p>
<p>​</p>
<p>int age = 25; // 위 두줄 한줄로</p>
<p>(이는 age 메모리 공간인 ㅁ &gt; age ㅁ에 25 데이터가 들어가 있는 것)</p>
<p>​</p>
<p>변수에 처음으로 값을 저장하는 것 = 변수의 초기화</p>
<p>모든 변수는 적절한 값으로 초기화 하는 것이 좋음</p>
<p>그래서 보통은</p>
<p>int x = 0;                  // 변수 x를 선언후, 0으로 초기화</p>
<p>int y = 5;                  // 변수 y를 선언후, 5로 초기화</p>
<p>int x = 0; , y = 5;    //위 의 두줄을 한줄로</p>
<p>​</p>
<p>맨 아래에 위의 두줄을 한줄로 합칠 수 있을 때에는</p>
<p>변수 타입(int)이 같을때</p>
<p>콤마(,)로 연결시켜서 사용</p>
<p>​</p>
<p>변수의 종류에는</p>
<p>1) 클래스 변수 (6장 부터 사용)</p>
<p>2) 인스턴스 변수 (6장 부터 사용)</p>
<p>3) 지역 변수   (특히 영어로 자동 초기화 되지 않기 때문에, 꼭 초기화해야함 &gt; 안그럼 컴파일 시 에러남)</p>
<p>​</p>
<h3 id="4-변수의-값-읽어오기">4. 변수의 값 읽어오기</h3>
<p>변수의 값이 필요한 곳에 변수의 이름을 적는다</p>
<p>int year = 0, age = 14;</p>
<blockquote>
<p>year = age + 2000;
year 14 + 2000;
year = 2014;</p>
</blockquote>
<p>​</p>
<p>System.out.print(year); 가 실행되면</p>
<p>2014겠징?</p>
<p>​</p>
<p>age = age +1;      // 변수의 값을 1 증가시키는 방법 </p>
<blockquote>
<p>age = 14 +1;
age = 15;</p>
</blockquote>
<p>​</p>
<p>이후 코드
System.out.print(age); 가 실행되면
15 출력 됨</p>
<p>​</p>
<p>​</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[자바의 정석 ch2) 1-2: 글자 출력 print, 계산]]></title>
            <link>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch2-1-2-%EA%B8%80%EC%9E%90-%EC%B6%9C%EB%A0%A5-print-%EA%B3%84%EC%82%B0</link>
            <guid>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch2-1-2-%EA%B8%80%EC%9E%90-%EC%B6%9C%EB%A0%A5-print-%EA%B3%84%EC%82%B0</guid>
            <pubDate>Thu, 03 Mar 2022 19:44:58 GMT</pubDate>
            <description><![CDATA[<p><img src="https://images.velog.io/images/ga_0/post/242bcc7f-54df-43db-a901-19be0fe11265/image.png" alt="">
깃허브에서 다운받은 파일들이랑 충돌될까봐 _ch02로 파일 만들었음</p>
<p>자꾸 에러가 나서 _ch02랑 Ex2_1클래스 싹 지우고 다시 만들기 3번 정도 했는데</p>
<p>정상적으로 생성함 ! </p>
<p>(왜 에러났는지 몰라서, 나중에 또 에러가 나면 그때 한번 알아보기로)</p>
<p>​</p>
<p>단축기 사용해서 </p>
<p>자동완성,</p>
<p>행단위 복사 해서 </p>
<p>Hello 세번 출력함</p>
<hr>
<p>print( ) = 출력만 함 (줄바꿈 없음)</p>
<p>println( ) = 출력 후에 줄바꿈 함</p>
<p><img src="https://images.velog.io/images/ga_0/post/bdef318e-c28b-4cb9-bbce-7356bb835216/image.png" alt=""></p>
<hr>
<p>&quot; &quot; = 따옴 표 안에는 문자 취급한다
<img src="https://images.velog.io/images/ga_0/post/24e412c4-5e07-4e16-89b6-3f5385499289/image.png" alt=""></p>
<p>사칙연산 </p>
<ul>
<li><p>: 덧셈</p>
</li>
<li><p>: 뺄셈</p>
</li>
<li><p>: 곱셈</p>
</li>
</ul>
<p>/ : 나눗셉</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[자바의 정석 ch1) 13~16 : 이클립스 단축키, 자동완성기능, 주석]]></title>
            <link>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch1-1316-%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-%EB%8B%A8%EC%B6%95%ED%82%A4-%EC%9E%90%EB%8F%99%EC%99%84%EC%84%B1%EA%B8%B0%EB%8A%A5-%EC%A3%BC%EC%84%9D</link>
            <guid>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch1-1316-%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-%EB%8B%A8%EC%B6%95%ED%82%A4-%EC%9E%90%EB%8F%99%EC%99%84%EC%84%B1%EA%B8%B0%EB%8A%A5-%EC%A3%BC%EC%84%9D</guid>
            <pubDate>Thu, 03 Mar 2022 19:43:22 GMT</pubDate>
            <description><![CDATA[<ol>
<li><p>ctrl + shift + L    = 단축키 전체 목록 보기</p>
</li>
<li><p>ctrl + +/-             = 코드 화면 확대/축소</p>
</li>
<li><p>ctrl + D                = 한줄 삭제</p>
</li>
<li><p>ctrl + alt + 키보드 아래방향키    = 행단위 복사 
<img src="https://images.velog.io/images/ga_0/post/5d6b025f-2245-4983-94e2-0c06ea9fdf7d/image.png" alt=""></p>
</li>
<li><p>alt + shift+ A       = 멀티컬럼 편집 (한번 단축키 누르면 해제됨)
십자가 모양으로 커서 모양이 바뀌면 실행이 되는거고
클릭으로 선택할 부분들은 사진과 같이 표시된다
코드를 지우거나 입력 등이 모두 일괄적으로 처리되는 기능이다
<img src="https://images.velog.io/images/ga_0/post/5dffd9f5-413b-4e19-aa04-0389bfda1056/image.png" alt=""></p>
</li>
<li><p>alt + 키보드 위/아래     =  행단위 이동 (마우스 클릭 없이 이동 가능)
드래그해서 여러 행 이동도 가능</p>
</li>
</ol>
<ol start="7">
<li><p>tab /  tab + shift              =  들여쓰기 / 내어쓰기</p>
</li>
<li><p>ctrl + i                                = 자동으로 들여쓰기 </p>
</li>
<li><p>ctrl + /                               = 주석처리 (다시 한번 누르면 주석 해제)</p>
</li>
<li><p>/* 주석처리할 내용 */    = 많은 범위 주석 처리 (따옴표 안에는 적용 x)</p>
</li>
</ol>
<p>​</p>
<ol start="11">
<li>ctrl + space bar = 자동완성
사진처럼 sysout 을 치고 컨트롤 + 스페이스바를 누르면 System.out.println(); 자동으로 코드 완성이 됨
<img src="https://images.velog.io/images/ga_0/post/8da9ebb6-d08f-41da-ba68-366eaf914765/image.png" alt=""></li>
</ol>
<p>아래사진 보면 완성된 코드가 보여짐
<img src="https://images.velog.io/images/ga_0/post/7616d545-25ac-4b04-9cf5-605fa58e0f89/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[자바의 정석 ch1) 10-12 : 이클립스 설치 및 개발]]></title>
            <link>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch1-10-12-%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EA%B0%9C%EB%B0%9C</link>
            <guid>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch1-10-12-%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EA%B0%9C%EB%B0%9C</guid>
            <pubDate>Thu, 03 Mar 2022 19:40:05 GMT</pubDate>
            <description><![CDATA[<p>이클립스 설치를 완료하고, </p>
<p>Hello.java 파일을 만들어서 </p>
<p>Hello,world 메인 메서드를 입력했다 </p>
<p>​</p>
<p>프로그램을 모두 작성했으면, 컴파일 해야하는데 </p>
<p>이클립스에서는 자동으로 컴파일을 해주어서 </p>
<p>상단에 실행을 누르면 된다</p>
<p>​</p>
<p>콘솔창에 보면 Hello, world가 출력된 것으로 보아 </p>
<p>성공적으로 컴파일이 완료 되었다  </p>
<p><img src="https://images.velog.io/images/ga_0/post/28b6b213-7f89-41b3-80ff-6af7dcb650ee/image.png" alt=""></p>
<p>이클립스로 작성된 프로그램이 잘 실행됨</p>
<p>​</p>
<p>상단에 프로젝트 &gt; build automatically를 보면 체킹 되어있는 것을 확인할 수 있는데</p>
<p>이는 소스 파일을 저장할때 자동으로 컴파일 한다는 것이다.</p>
<p>원래 빌드는 소스파일로 부터 컴파일 하는 모든 과정을 말하는 것이다.</p>
<p>​</p>
<p>​</p>
<p>여기서 생성된 클래스 파일은  package explorer 뷰 에서 확인이 안되는데</p>
<p>이는 소스파일 중심으로 보여주기 때문에</p>
<p>클래스 파일은 navigator 뷰 로 확인가능하다
<img src="https://images.velog.io/images/ga_0/post/dca55fff-95df-4456-b12c-a824def841ad/image.png" alt="">  </p>
<p>이클립스는 소스파일과 클래스 파일을 다르게 저장하고 있음이 보여진다</p>
<p>​</p>
<p>아래 사진에서 주황색의 *표시는 아직 저장되어 있지 않은 것이 있다고 알려주는 것이다</p>
<p>노란색으로 표시해놓은 것들은 String이 string으로 오류가 났는데, 오류난 것을 알려주는 것이다</p>
<p>4번째줄 왼쪽에는 X표시가 되어있고 </p>
<p>소스 코드에는 빨간 밑줄이 표시된다</p>
<p>마우스를 가져다 놓으면 에러 메세지를 볼 수 있음 </p>
<p><img src="https://images.velog.io/images/ga_0/post/d4c8fa45-f98f-4e59-ae3a-0fe571fc6dee/image.png" alt=""></p>
<hr>
<h3 id="이클립스에서-자바-프로그램을-작성하는-순서">이클립스에서 자바 프로그램을 작성하는 순서</h3>
<p>​</p>
<ol>
<li><p>프로젝트 생성 </p>
<p>  메뉴에서 file&gt; new&gt; java project 
  <img src="https://images.velog.io/images/ga_0/post/f08a57df-0cad-4ecd-888f-3ec319738784/image.png" alt=""></p>
</li>
<li><p>클래스 생성</p>
<p>   프로젝트 이름 위에서 우클릭 &gt; new&gt; class</p>
<p>   <img src="https://images.velog.io/images/ga_0/post/86b0aa4d-4688-49fd-9af1-67211abac596/image.png" alt=""></p>
</li>
<li><p>소스파일 작성 후 저장 </p>
<p>  (그럼 자동으로 컴파일 됨)</p>
</li>
</ol>
<p>​</p>
<ol start="4">
<li><p>실행</p>
<p>  상단에 run (재생 버튼 처럼 생긴거)누르면 </p>
<p>  콘솔 창에 뜸 
  <img src="https://images.velog.io/images/ga_0/post/37cc57e3-b85f-4806-af83-4f23fb2b8528/image.png" alt="">  </p>
</li>
</ol>
<hr>
<h3 id="build-관련-메뉴-설명">Build 관련 메뉴 설명</h3>
<p><img src="https://images.velog.io/images/ga_0/post/7b0fa70c-c734-4e2e-9edd-583dbf4f79f3/image.png" alt=""></p>
<ol>
<li>빌드는 프로젝트 탭에 있음</li>
</ol>
<p>​</p>
<ol start="2">
<li>빌드 :  소스파일(*.java)로 부터 프로그램을 만들어내는 전 과정</li>
</ol>
<p>​</p>
<ol start="3">
<li>빌드 프로젝트 : 현재 프로젝트 빌드 (변경된 소스 파일만 새로 컴파일)</li>
</ol>
<p>​</p>
<ol start="4">
<li>빌드 all : workspace의 모든 프로젝트를 빌드</li>
</ol>
<p>​</p>
<ol start="5">
<li>클린 : 이전 빌드의 모두 삭제
모든 소스 파일 새로 컴파일 &gt; 오류 잡기 좋음</li>
</ol>
<p>​</p>
<ol start="6">
<li>빌드 오토매틱컬리 : 소스 파일 변경 후, 저장할 때마다 자동 컴파일
기본으로 그냥 설정 해놓는게 좋음 </li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[﻿자바의 정석 ch1) 8번, 9번 : 첫번째 자바프로그램 작성+ 자바 프로그램 실행 과정]]></title>
            <link>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch1-8%EB%B2%88-9%EB%B2%88-%EC%B2%AB%EB%B2%88%EC%A7%B8-%EC%9E%90%EB%B0%94%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EC%9E%91%EC%84%B1-%EC%9E%90%EB%B0%94-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EC%8B%A4%ED%96%89-%EA%B3%BC%EC%A0%95</link>
            <guid>https://velog.io/@ga_0/%EC%9E%90%EB%B0%94%EC%9D%98-%EC%A0%95%EC%84%9D-ch1-8%EB%B2%88-9%EB%B2%88-%EC%B2%AB%EB%B2%88%EC%A7%B8-%EC%9E%90%EB%B0%94%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EC%9E%91%EC%84%B1-%EC%9E%90%EB%B0%94-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EC%8B%A4%ED%96%89-%EA%B3%BC%EC%A0%95</guid>
            <pubDate>Thu, 24 Feb 2022 02:23:11 GMT</pubDate>
            <description><![CDATA[<p>c 드라이브 에서 jdk1.8 폴더 찾기
jdk1.8 폴더 내에 work 이름으로 새폴더 만들고</p>
<p>work 폴더 안에서 텍스트 문서 새로 만들기해서 Hello.java 파일 만들기
여기서 Hello 대소문자 지켜야 함</p>
<p>윈도우키 + r 키 눌러서
실행도구 에서 cmd 쳐서
컴파일 시도 ! (사람 언어를 기계어로 번역)</p>
<p>cd 는 change directory로 그 폴더로 들어가겠다는 것
자바의 정석 기초편 챕터1-89 첫번째 자바 프로그램 작성 강의를 따라서</p>
<p>path까지 했는데도 계속,,, 여전히,,, 오류
<img src="https://images.velog.io/images/ga_0/post/f5397855-c2b8-4960-b286-67d5d146401a/image.png" alt=""></p>
<p>컴파일 오류가 난다 ㅠ</p>
<p>시스템가서 path 등록까지 했는데, 컴파일 오류가 계속나서 </p>
<p>Hello.java 파일 메모장 내용까지 지우고 다시 하나하나 꼼꼼히 했는데도 개선이 안됨 </p>
<p>​</p>
<p>검색하여 문제의 원인 분석 결과는 유니코드(utf-8) 로 작성된 코드를
자바 컴파일에서 ms949방식으로 읽으려고 한게 문제</p>
<p><em>교재의 간단한 첫 예문부터 오류가 발생해서 당황하긴 했는데, 오류 메세지에 나와있는대로 문자 인코딩의 문제로 컴파일을 거부하고 있는 모습이다. 오류가 난 지점을 ^ 문자로 표시하는데 그 부분의 문자열이 인코딩 문제로 깨져보이는것을 알 수 있다.</em></p>
<p><em>컴퓨터에서 한글 문자는 역사적인 이유로 각각의 문자를 비트열로 부호화하는 방식(인코딩)이 몇가지가 되는데, 대표적으로 많이 쓰이는것들이 utf-8, euc-kr, cp949, ms949 정도 있다.호환성을 위해 어느곳이나 유니코드(utf-8 등)를 사용하는것이 좋다라고 생각해서 utf-8 인코딩으로 코드를 작성하였다.</em></p>
<p><em>위 문제는 utf-8로 인코딩된 코드를 자바 컴파일에서 한글 윈도우의 기본 인코딩을 따라서 ms949 방식으로 읽으려고 시도했지만 실패하여 발생한것이다. utf-8과 ms949와 같은 다른 한글 인코딩은 1바이트로 표시되는 영문자를 포함한 ascii 문자에서만 서로 호환성을 가질 뿐이라서 영문자들은 잘 표시되지만 한글은 알수 없는 엉뚱한 문자로 해석될 뿐이다.</em>
출처: (<a href="https://thelibraryofbabel.tistory.com/entry/)%5B%EC%9E%90%EB%B0%94-%EC%BB%B4%ED%8C%8C%EC%9D%BC%EC%8B%9C-%EC%9D%B8%EC%BD%94%EB%94%A9-%EB%AC%B8%EC%A0%9C">https://thelibraryofbabel.tistory.com/entry/)[자바-컴파일시-인코딩-문제</a> [바벨의 도서관]]</p>
<p>​</p>
<p>해결 방법은 그냥 한글을 지우는 것 ㅋㅋㅋㅋㅋㅋㅋ
자바의 정석 카페(<a href="https://cafe.naver.com/javachobostudy/166503)%EC%97%90%EC%84%9C">https://cafe.naver.com/javachobostudy/166503)에서</a>
나와 같은 에러가 나는 분이 계셨는데, 궁성쌤이 그냥 한글 지우라고 답변해주셔서
그냥 시원하게 삭- 제-! </p>
<p>​</p>
<p>지워도 되는 이유는 
// 화면에 글자를 출력한다 
이 부분이 주석부분으로 그냥 Hello world가 출력될 것이라고 설명해놓은 부분이기 때문이다. 
(멋쟁이 사자처럼 활동하면서 개발 환경에서 작업해봐서 다행이다...
왜 그냥 지우라는거지? 라는 생각을 하다가 혼자 가만히 생각해보니 // 블라블라는 주석이였던게 기억남)</p>
<p><img src="https://images.velog.io/images/ga_0/post/1ea3ec0e-0213-4163-9700-354486f3bea9/image.png" alt=""></p>
<p>그렇게 문제해결 -!</p>
<p><img src="https://images.velog.io/images/ga_0/post/8d0819a6-1f8c-47a5-8773-82cafda4b70a/image.png" alt=""></p>
<p>이걸로 3~40분을 잡아 먹었는데 ;;
역시 빠른 검색 능력으로 쑥쑥 넘어가려고 해봐야겠다...
내가 오타를 냈나? 이게 문젠가? 하면서 혼자 파고들면 학습이 배로 걸리는 것 같음 !</p>
<p>검색해보면 이게 문제여서 이렇게 쓰인걸 여기다가 써 넣어야함 
이라고 까진 안알려줌
밥상을 차려놨으니, 내가 떠먹어야되는데
아직은 떠먹는 능력은 부족한듯 ㅎ  </p>
<hr>
<p>java 개념들</p>
<p>​</p>
<ol>
<li>javac.exe 
자바의 컴파일러 : 사람이 작성한 문장을 기계어로 번역
(컴퓨터는 사람의 언어를 모르기 때문에 기계어로 번역 필요)
컴파일을 하면JVM이 이해할 수 있는 클래스 파일(<strong><strong><em>.class)이 생성된다
사람언어로 작성된 소스파일 (</em></strong></strong>.java)을 클래스 파일 (*****.class)로 변환되는 것</li>
</ol>
<p>​</p>
<ol start="2">
<li>java.exe
자바 인터프리터 :  자바 프로그램인 클래스 파일을 읽어서 실행 시킴</li>
</ol>
<p>​</p>
<ol start="3">
<li><p>클래스
자바 프로그램의 단위로 자바 프로그램은 클래스들로 구성되어 있다.
calss 작성법</p>
<pre><code> calss 클래스이름 {
 } </code></pre><p> <img src="https://images.velog.io/images/ga_0/post/6c85c4c8-a0d9-4a9f-8c90-c2c301f0017c/image.png" alt=""></p>
</li>
<li><p>main 매서드
자바 프로그램의 시작점으로
자바 프로그램을 시작하면 지정된 클래스 파일에서 메인 메서드를 찾아서 
첫 문장부터 순서대로 실행함
순서가 모두 끝나면 실행 종료 
서로 관련된 여러 문장을 하나로 묶어둔 것으로 다른 프로그래밍 언어의 함수와 같은 역할함<img src="https://images.velog.io/images/ga_0/post/e55bdf8c-b79f-4e52-a73d-092a05b59aa8/image.png" alt=""></p>
</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[질문_붓꽃분류_9월 28일]]></title>
            <link>https://velog.io/@ga_0/%EC%A7%88%EB%AC%B8%EB%B6%93%EA%BD%83%EB%B6%84%EB%A5%989%EC%9B%94-28%EC%9D%BC</link>
            <guid>https://velog.io/@ga_0/%EC%A7%88%EB%AC%B8%EB%B6%93%EA%BD%83%EB%B6%84%EB%A5%989%EC%9B%94-28%EC%9D%BC</guid>
            <pubDate>Wed, 29 Sep 2021 14:30:19 GMT</pubDate>
            <description><![CDATA[<h4 id="1">1</h4>
<p><img src="https://images.velog.io/images/ga_0/post/a016b3e4-785c-48a8-b431-d1db74a9a471/image.png" alt=""></p>
<p>ex1 에서, 이렇게 확인하는건 뭐였지? 
keys() 메서드 : iris에 어떤 정보 담겼나 확인 &lt;- 이걸로 한것 같아
그럼 dir(), keys() 둘다 같은 결과 인것 같은딩... 각각 언제 쓰냐?</p>
<h4 id="2">2</h4>
<p><img src="https://images.velog.io/images/ga_0/post/4079ca94-52a0-4053-82a3-3f5578d2b243/image.png" alt="">
데이터 프레임이 뭔가? 
아마 이렇게 잘 보여주는게 데이터 프레임이였던거 같아 
코드형식으로 행렬나오는게 아니라 ! 
맞즤~? </p>
<p>질문은 아니고 랜덤 seed에 관한 이야기
마지막으로 쓰인 random_state는 train데이터와 test데이터를 분리(split)하는데 적용되는 랜덤성을 결정합니다. 위에서 데이터를 출력했을때 라벨이 0부터 순서대로 정렬된 것을 보셨을 겁니다.</p>
<p>만약 이 데이터 그대로 학습용 데이터와 테스트용 데이터를 나눈다면 뒤쪽의 20%가 테스트용 데이터셋으로 만들어지기 때문에 테스트용 데이터셋은 라벨이 2인 데이터로만 구성됩니다.</p>
<p>이런 데이터셋을 테스트용으로 사용한다면 학습이 제대로 되었는지 확인할수가 없겠죠? 그래서 데이터를 분리할 때 랜덤으로 섞는 과정이 필요하고 random_state가 이 역할을 하게되는 것이죠.</p>
<p>컴퓨터에서의 랜덤은 아무리 랜덤이라고 해도 특정 로직에 따라 결정되는 랜덤이기 때문에 완벽한 랜덤이라고 할 수 없습니다.
그러한 랜덤을 조절할 수 있는 값이 바로 random_state, 또는 random_seed입니다. 이 값이 같다면 코드는 항상 같은 랜덤 결과를 나타냅니다.
랜덤인데 왜 같은 결과를 원하냐구요? 내가 실험한 결과를 다른 사람의 컴퓨터에서도 재현가능(reproducible) 하게 하려면 같은 랜덤시드가 필요할 때가 있답니다.
랜덤성을 조절하고 싶지 않다면, 해당 인자는 없어도 코드상의 문제는 없습니다.</p>
<h4 id="3">3</h4>
<p><img src="https://images.velog.io/images/ga_0/post/3f4b4a1e-ad2a-45e2-8333-917a5bcf650c/image.png" alt=""></p>
<h4 id="4">4</h4>
<p>SGD Classifier</p>
<h3 id="5">5</h3>
<p>랜덤하게 뽑는 것도 알고리즘인데, 랜덤하게 뽑지가 않아짐,,, ? &gt; 완전 랜덤이 아닌걸 이용하는 것 같음
랜덤 시드가 같으면 같은 결과가 나옴 -&gt; 왜?
랜덤 시드를 그럼 초기에 결정하는 기준은? -&gt; 없엉 ㅋㅋㅋㅋㅋ
컴퓨터 프로그램에서 발생하는 무작위 수는 사실 엄격한 의미의 무작위 수가 아니다. 
어떤 특정한 시작 숫자를 정해 주면 컴퓨터가 정해진 알고리즘에 의해 마치 난수처럼 보이는 수열을 생성한다. 이런 시작 숫자를 시드(seed)라고 한다. 일단 생성된 난수는 다음번 난수 생성을 위한 시드값이 된다. 따라서 시드값은 한 번만 정해주면 된다. 시드는 보통 현재 시각등을 이용하여 자동으로 정해지지만 사람이 수동으로 설정할 수도 있다. 특정한 시드값이 사용되면 그 다음에 만들어지는 난수들은 모두 예측할 수 있다. 이 책에서는 코드의 결과를 재현하기 위해 항상 시드를 설정한다</p>
<h4 id="6">6</h4>
<p><img src="https://images.velog.io/images/ga_0/post/b279137f-899e-4778-b1d1-367134e0f6bf/image.png" alt="">
axis off는 무슨의미지?</p>
<h4 id="7">7</h4>
<p><img src="https://images.velog.io/images/ga_0/post/0624db20-a262-4233-b808-b8925e0a057e/image.png" alt="">
for구문이 앞에오고, 그담에 if 아냐?</p>
<h4 id="8-프로젝트질문">8 프로젝트질문</h4>
<p>그리고 질문이 있는데 정확도랑 오차행렬이랑 둘 값을 비교해서 </p>
<ul>
<li>모델간 각 수치 비교해서 
제일 적절한 모델을 찾는거죠..?</li>
</ul>
<p>근데 어떻게 값이 나와야 좋은건지 모르겠어서..
0이라고 딱 안좋은거면 아 안좋네 ! 싶겠는데 
좋게 나오면, 뭔가 이상해서 좋게나왔나 싶고
안좋게 나오면 그냥 안좋은.. 모델과 성능 평가 척도 같구 ㅠㅠ</p>
<p>펀더멘털 12</p>
<h4 id="1-1">1</h4>
<p><img src="https://images.velog.io/images/ga_0/post/a7509625-10af-45fe-a561-7cd19765ca61/image.png" alt="">
formarray 함수 공부</p>
<p>formarray 함수 : NumPy 배열을 PIL 이미지로 변환하는 방법</p>
<h4 id="2-1">2</h4>
<p><img src="https://images.velog.io/images/ga_0/post/0fa56cdc-6681-4ad6-a2b9-ee7efe1e9459/image.png" alt=""></p>
<p>1) 여기서 rgb 순서 맞게 된건 어떻게 아랑?
2) 3번 반복하는 방식 아니면 어케 되는데?
3) 코드에서 pillow가 사용된건 어느 부분이지
&lt;&lt;&lt; order = f, c 넣어서 하는건데 
열로 들어가는걸 행으로 들어가게 해줘야해서 order로 하기</p>
<h4 id="3-1">3</h4>
<p><img src="https://images.velog.io/images/ga_0/post/a56604b9-57a9-4451-8d9d-0af95d3a34d3/image.png" alt="">
decode 뭐징?? 여기 코드 좀 뜯어서 다시 공부해야할것 같아</p>
<h3 id="4-1">4</h3>
<p><img src="https://images.velog.io/images/ga_0/post/e4d35ab4-9019-4bca-8e06-4e234044d15f/image.png" alt=""></p>
<p>1) cv.cvtColor?
2)mask = cv.inRange?</p>
<h3 id="5-1">5</h3>
<p>[픽셀, 픽셀, rgb]
[r, g, b]
인데 해당행렬 어 케 ... 
어디서 어떻게 넣고 빼오고 그러즤..?</p>
<h4 id="6-1">6</h4>
<p><img src="https://images.velog.io/images/ga_0/post/2a501d9c-9e06-4a9c-bc76-14bd759c3a43/image.png" alt="">
근데 왜 lower가 110이 아니라 100이지?</p>
<p> HSV 색 공간에서 색상(Hue) 값 110<del>130 사이, 채도(Saturation) 및 명도(Value) 값 50</del>255 사이의 색들을 파란색이라고 정의 -&gt;  [색상hue, 채도, 명도] 이렇게 배열 되는것 맞나?</p>
<p> 각각 픽셀 당 BGR, HSV 세 개의 색상 채널별 값을 가질 테기 때문에,
 -&gt; 여기도 이해안감</p>
<p> HVS 100까지 밖에 안되어있어서 어떻게 할래..?!!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[파이썬 문제 사이트]]></title>
            <link>https://velog.io/@ga_0/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%AC%B8%EC%A0%9C-%EC%82%AC%EC%9D%B4%ED%8A%B8</link>
            <guid>https://velog.io/@ga_0/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%AC%B8%EC%A0%9C-%EC%82%AC%EC%9D%B4%ED%8A%B8</guid>
            <pubDate>Thu, 09 Sep 2021 14:18:38 GMT</pubDate>
            <description><![CDATA[<ol>
<li>코드카데미</li>
</ol>
<p><a href="https://www.codecademy.com/catalog/language/python">https://www.codecademy.com/catalog/language/python</a></p>
<ol start="2">
<li>코딩도장</li>
</ol>
<p><a href="http://codingdojang.com/">http://codingdojang.com/</a></p>
<ol start="3">
<li>프로그래머스</li>
</ol>
<p><a href="https://programmers.co.kr/learn/challenges?tab=all_challenges">https://programmers.co.kr/learn/challenges?tab=all_challenges</a></p>
<ol start="4">
<li>백준</li>
</ol>
<p><a href="https://www.acmicpc.net/workbook/view/459">https://www.acmicpc.net/workbook/view/459</a></p>
<ol start="5">
<li>Cocode</li>
</ol>
<p><a href="https://cocode.dev/ko/courses/cocode/python-intro-robot/">https://cocode.dev/ko/courses/cocode/python-intro-robot/</a></p>
<ol start="6">
<li>초보자를 위한 파이썬 300제</li>
</ol>
<p><a href="https://wikidocs.net/book/922">https://wikidocs.net/book/922</a></p>
<hr>
<p>알고리즘 코딩 스터디를 진행하게 되었다 </p>
<p>정리해서 나중에 차근차근 다 올려봐야겠다</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[재잘재잘 ]]></title>
            <link>https://velog.io/@ga_0/%EC%9E%AC%EC%9E%98%EC%9E%AC%EC%9E%98</link>
            <guid>https://velog.io/@ga_0/%EC%9E%AC%EC%9E%98%EC%9E%AC%EC%9E%98</guid>
            <pubDate>Thu, 09 Sep 2021 13:47:51 GMT</pubDate>
            <description><![CDATA[<p>오랜만에 돌아온,,벨로그 포스팅 ㅎ 
그 사이에 필기시험도 보고~ 
자소서 쓰고 포트폴리오도 만들고 면접도 보고
코세라도 듣고 하면서 바쁜 나날들을 보내다가~
아이펠에 입과하면서 본격적으로 AI 여정을 시작했다.</p>
<p>파이썬 기초 문법에, 
리눅스와 우운투 환경 튜토리얼을 깨기, 
깃허브 맛보기들을 하면서 교육 3일차를 보내고 있다</p>
<p>내 담당 퍼실님하고 긴 시간 이야기 하면서 
내가 기획했던 아이디어에 대해서도 얘기하고, 
퍼실님은 어떤 삶을 살아오면서 어떻게 학습하였는가에 
대해서도 얘기나누고 왔는데 너무 좋은 시간이었다</p>
<p>아직도 불안함이 있지만 일단은 
내가 할 수 있는것부터 찾아가며 해보려고 한다 
6개월의 여정이 끝났을 때, 
퍼실님이 내 서비스에 대한 
ML을 찍먹정도는 해볼 수 있을 것이라고 하시면서,
강화학습에 대한 자신의 시작이 
자존심이 상했을 때 시작되었다는 이야기를 해주셨다 </p>
<p>사실 나도 엥 니가? 할때 
어 내가 하는 스타일을 동경하며 살아왔는데, 
이제는 나도 그때를 만들어야할 날이라고 생각이 들었다. </p>
<p>수연님이 11주차 동안 옥찬호님(?ㅎ 감히 이렇게 불러도 되는거 맞나)께 배우는 커리큘럼의 목표가 
ML에 대한 논문을 자신의 힘으로 읽을 수 있는거라던데 ㅠ </p>
<p>설호님께서 말씀해주신 트래킹 논문에 대해서 읽고 하면서 
내가 서비스를 구현해낼 수 있을까라는 
의구심이 들어버렸다 히힣히힣힣ㅎㅎ
근데 모 어떡해,, 포기할것도 아닌데 해야지 </p>
<p>뭐 얼마나 어려운지 나는 아직 모르니까
그냥 오늘은 일단 내가 할 수 있는 파이썬의 
if 와 for에 대해서 다시 공부하고 자려고 한다</p>
<p>이번주 주말까지 일정이 꽉 차있어서 공부할시간이 모자른데,,,
일단 내일이랑 주말에는 집와서 2시간씩은 코딩하는걸 목표 !! </p>
<p>그래도 코세라 좀 들어놓은게 많이 도움된다 ㅠㅠ 
그땐 진짜 너무 바쁘고 힘들었던 일정이라 진짜,, 
열심히 살고있는 내모습에 행복하지만 불행했는데 ㅋㅋㅋㅋㅋ</p>
<p>이제 또 ~ 성취감에 행복하면서, 
피곤하고 어려워서 스스로가 답답해서 불행한 
그 여정,,, 다시,, 시작 ㅎ </p>
<p>아 그리고 어차피 개발자의 길로 전향하는게 
죽을것 같이 힘들텐데 그럴바에야 엄청 죽어보자고 
AI를 택했다고 했었는데 
되게 변태적이라는 얘길들었다 
근데,,, 맘에 들어섴ㅋㅋㅋㅋ
스스로 진짜 변태같다는 생각을 했다ㅎ ,,, 
이건 누구에게도 말하지 못할 비밀이라 여기다 적어야지 </p>
<p>수연님 설호님하고 오늘 조금 오랜 대화 나누었는데, 
존경이드는 두 인물이라,, 
많이 배울 수 있을 것 같아서 기대되고 
어디가서 나도 그친구랑 일해볼만 할 것 같다는 생각이
들 수 있는 사람이 되어야 겠다는 다짐 
+신뢰를 줄 수 있는 팀원을 다짐했다 </p>
<p>최근에 진짜 한번도 못꾼 꿈을 꿨는데
너무 이상해서 검색해보니 귀인 + 도전에 좋은 결과라고 
되어있던데 그래서 이런 사람들을 만날 수 있었나 싶고
열심히해서 진짜 좋은 꿈으로 만들어야지
우리 퍼실님,, ㅎ 오프라인에서 만나면 꼭 싸인 받아야겠다 ㅎㅎ</p>
<p>더 자세한 이야기들을 쓰고 싶지만,, 
나중에 우연히 누가 볼지도 모르니까 
내 노트에만 적어둔 걸로 ㅎ 
그럼 이제 공부하자아</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[혼자공부하는 파이썬_d5]]></title>
            <link>https://velog.io/@ga_0/%ED%98%BC%EC%9E%90%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%ED%8C%8C%EC%9D%B4%EC%8D%ACd5</link>
            <guid>https://velog.io/@ga_0/%ED%98%BC%EC%9E%90%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%ED%8C%8C%EC%9D%B4%EC%8D%ACd5</guid>
            <pubDate>Mon, 26 Jul 2021 06:41:04 GMT</pubDate>
            <description><![CDATA[<p>ch 5 여러 함수와 문자열 이어서,,</p>
<h3 id="👏upper----lower--">👏upper ( ) , lower ( )</h3>
<blockquote>
<p>upper ( ) 함수 : 문자열의 알파벳 대문자
lower ( ) 함수 : 문자열의 알파벳 소문자로 만듦 
<img src="https://images.velog.io/images/ga_0/post/01ca2a58-307c-459b-a590-64f4023e60c5/image.png" alt=""></p>
</blockquote>
<h3 id="👏strip--">👏strip ( )</h3>
<blockquote>
<p>문자열 공백 제거하는 함수
strip ( ) : 양옆 공백 제거
rstrip ( ) : 오른쪽 공백 제거
lstrip ( ) : 왼쪽 공백 제거
<img src="https://images.velog.io/images/ga_0/post/ca1f32a7-ac97-4e3d-b3ca-30ad180da18b/image.png" alt="">✅print(a) : &quot;&quot;&quot; &quot;&quot;&quot; 사용해서 여러 문자열 작성하면 위아래 자동 줄 바꿈 + 띄어쓴 만큼 반영됨 
print(a.strip( )) : 함수를 사용하면, 자동 줄바꿈 + 띄어쓴 모든 공백 제거됨</p>
</blockquote>
<h3 id="👏isㅁㅁㅁ-">👏isㅁㅁㅁ( )</h3>
<blockquote>
<p>문자열 구성을 파악하는 함수 
isalnum( ) : 알파벳 or 숫자로만 구성되어 있는지 확인
isalpha( ) : 알파벳으로만
isspace( ) : 공백으로만 
islower( ) : 소문자로만 
issupper( ) : 대문자로만
isdentifier( ) : 식별자로 사용할 수 있는지 
isdecimal( ) : 정수 인지
isdigit( ) : 숫자로 인식될 수 있는지 
.
출력 결과는 T/F로 나옴
<img src="https://images.velog.io/images/ga_0/post/3fe8eb52-ec42-4991-8870-3c39140d5b32/image.png" alt=""></p>
</blockquote>
<h3 id="👏-find--">👏 find ( )</h3>
<blockquote>
<p>문자열 내부 특정문자의 위치 찾는 함수
find( ) : 왼쪽부터 찾아서 처음 등장하는 위치 찾음
rfind( ) : 오른쪽부터 찾아서 처음 등장하는 위치 찾음
<img src="https://images.velog.io/images/ga_0/post/d5aec3b0-8733-48f2-a8b4-a801238fbda5/image.png" alt=""></p>
</blockquote>
<h3 id="👏-in-연산자">👏 in 연산자</h3>
<blockquote>
<p>문자열 내부에 특정 문자열 있는지 확인하는 함수
<img src="https://images.velog.io/images/ga_0/post/33d09bff-3d1a-4f8f-91f5-247fb6c4d99f/image.png" alt=""></p>
</blockquote>
<h3 id="👏-split--">👏 split ( )</h3>
<blockquote>
<p>문자열을 특정한 문자로 자를 때 사용하는 함수
<img src="https://images.velog.io/images/ga_0/post/148d15f1-b394-4a89-8429-70dde36022ea/image.png" alt=""></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[혼자공부하는 파이썬 _d4]]></title>
            <link>https://velog.io/@ga_0/%ED%98%BC%EC%9E%90%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%ED%8C%8C%EC%9D%B4%EC%8D%AC-d-4</link>
            <guid>https://velog.io/@ga_0/%ED%98%BC%EC%9E%90%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%ED%8C%8C%EC%9D%B4%EC%8D%AC-d-4</guid>
            <pubDate>Fri, 23 Jul 2021 04:22:34 GMT</pubDate>
            <description><![CDATA[<h1 id="ch-5-여러-함수와-숫자-문자열">CH 5 여러 함수와 숫자, 문자열</h1>
<h3 id="👏-format---함수">👏 format ( ) 함수</h3>
<h4 id="1-기초">1. 기초</h4>
<p>format ( ) 함수는 문자열이 가지고 있는 함수 : 문자열로 출력 됨 </p>
<p>기본형태는 &quot;{ }&quot;. format (매개변수)
 ① 큰따옴표로 괄호 감싸고, 온점 찍는 것 유의
 ② 괄호의 갯수와 매개 변수의 갯수가 같아야 함</p>
<pre><code>IndexError 예외
{ } 기호의 갯수 = 매개변수 갯수 : 가능
{ } 기호의 갯수 &lt; 매개변수 갯수 : 가능
{ } 기호의 갯수 &gt; 매개변수 : 불가능 (인덱스에러)</code></pre><p><img src="https://images.velog.io/images/ga_0/post/4c53cb6a-13f6-4065-91e7-50abecfd2d0c/image.png" alt=""></p>
<h4 id="2-다양한-사용">2. 다양한 사용</h4>
<p><strong>1) 기초 ver.2</strong>
<img src="https://images.velog.io/images/ga_0/post/aad66416-095b-4a93-b8d5-07ae79ac73fd/image.png" alt=""></p>
<p><strong>2) 정수</strong></p>
<blockquote>
<p><strong>① 정수 int/ 특정 칸 출력 : 문자열</strong>
<img src="https://images.velog.io/images/ga_0/post/1612e9b8-5c68-4bfb-899b-914d62bf41cc/image.png" alt="">
.
<strong>② 정수 int/ 기호와 함께 출력 : 문자열</strong>
<img src="https://images.velog.io/images/ga_0/post/5b2d6fd9-2f1d-42d0-8641-e93d856d9ecb/image.png" alt="">
.
<strong>③ 정수 int/ 기호 + 특정 칸 조합 : 문자열</strong>
<img src="https://images.velog.io/images/ga_0/post/298c11ca-d7fd-423f-b939-f3a1cc22f64a/image.png" alt=""></p>
</blockquote>
<p><strong>3) 실수</strong></p>
<blockquote>
<p>① 실수 float/ 특정 칸 출력 : 문자열 
<img src="https://images.velog.io/images/ga_0/post/ef1e152a-990d-45bc-aa91-7423d49657f1/image.png" alt="">
.
*<em>② 실수 float/ 소수점 아래 자릿수 지정 출력 : 문자열 *</em>
<img src="https://images.velog.io/images/ga_0/post/b95ec5cd-ebf8-40ff-ab79-9f95ac6492a8/image.png" alt="">
.
*<em>③ 실수 float/ 의미 없는 소수점 제거 : 문자열 *</em>
파이썬은 1과 1.0을 다른 자료형으로 인식 &gt; 서로 다른 값으로 출력
<img src="https://images.velog.io/images/ga_0/post/45a330db-05d6-450a-96be-2cf03fce3ea0/image.png" alt="">
❗에러 : 위 코드를 응용해서, input을 사용해봄 
<img src="https://images.velog.io/images/ga_0/post/901c7ede-9320-4ba3-b007-798254192958/image.png" alt=""> 에러난 이유는 input( )함수의 리턴값의 자료형은 문자열 str인데, 의미없는 0을 지우는 {:g}의 기능은 숫자 자료형만 사용 가능! &gt;  즉, 3.00값을 입력했지만결과적으로는 &quot;3.00&quot;이라는 문자이기 때문에 숫자로 인식하여 소수점 제거가 불가능함 </p>
</blockquote>
]]></description>
        </item>
    </channel>
</rss>