<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>sung-e-gkoght.log</title>
        <link>https://velog.io/</link>
        <description>Sung-E-Gkoght</description>
        <lastBuildDate>Fri, 31 Jul 2026 08:43:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>sung-e-gkoght.log</title>
            <url>https://velog.velcdn.com/images/sung-e-gkoght/profile/8eefb79f-63ba-4d3d-b980-6af6cba3453b/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. sung-e-gkoght.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/sung-e-gkoght" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[세 개 요약]]></title>
            <link>https://velog.io/@sung-e-gkoght/%EC%84%B8-%EA%B0%9C-%EC%9A%94%EC%95%BD</link>
            <guid>https://velog.io/@sung-e-gkoght/%EC%84%B8-%EA%B0%9C-%EC%9A%94%EC%95%BD</guid>
            <pubDate>Fri, 31 Jul 2026 08:43:00 GMT</pubDate>
            <description><![CDATA[<p>MS Word 등의 문서 작성 도구에 서식과 스타일을 그대로 복사하여 보고서의 <strong>[종합 결론]</strong> 장으로 즉시 사용할 수 있도록 구성된 정교한 보고서 문서 양식입니다. </p>
<hr>
<h1 id="특허-빅데이터-기반-반도체-핵심-단어망sna-종합-분석-보고서">특허 빅데이터 기반 반도체 핵심 단어망(SNA) 종합 분석 보고서</h1>
<h2 id="ⅰ-분석-개요-및-연구적-의의">Ⅰ. 분석 개요 및 연구적 의의</h2>
<p>본 보고서는 최근 5개년(2020년 ~ 2024년) 간 출원된 반도체/메모리 분야의 특허 청구항 빅데이터를 대상으로, 단순 출원 빈도 분석의 왜곡 한계를 극복하기 위해 설계된 <strong>3대 의미 네트워크(SNA) 대안 분석 기법(대안 A, B, C)</strong>을 적용하여 기술 생태계의 구조적 진화 경로를 실증적으로 규명하였다.</p>
<p>통계적 검정(K-S Test)을 통해 네트워크 연결 차수가 로그정규(Lognormal) 분포를 따름을 입증하고, 수치해석적으로 최적화된 누적 비중($R = 0.43539$)과 데이터 기반 코사인 임계치($\theta = 0.359050$)를 산출하여 분석의 학술적 객관성과 방어력을 극대화하였다. </p>
<hr>
<h2 id="ⅱ-3대-대안-분석-기법a-b-c의-통합적-관점-비교">Ⅱ. 3대 대안 분석 기법(A, B, C)의 통합적 관점 비교</h2>
<p>동일한 특허 말뭉치(Corpus)에 대해 세 가지 필터링 렌즈를 입체적으로 대입함으로써, 거시적 지형부터 미시적 골격에 이르는 다차원적 R&amp;D 인사이트를 도출하였다.</p>
<pre><code>[ PPMI 원본 데이터셋 ]
   ├── 대안 A (cs-method): 거시적 기술 도메인(대륙) 분할 및 대체/보완성 분석
   ├── 대안 B (Disparity Filter): 무작위 잡음 제거를 통한 독립된 세부 전문 공정망(아일랜드) 포착
   └── 대안 C (MST + Shortcuts): 원천 소재에서 후공정까지 끊김 없는 가치사슬(Spine) 및 기술 융합 추적</code></pre><ol>
<li><strong>대안 A (cs-method | 맥락 지도):</strong><ul>
<li><strong>분석 성과:</strong> 단어의 출현 스케일을 정규화하여 고빈도어 독점을 방지하고 &#39;동작 제어&#39;와 &#39;소재/공정&#39;이라는 양대 기술 대륙의 전반적인 구도와 대체 가능성을 조망하는 데 기여하였다.</li>
</ul>
</li>
<li><strong>대안 B (Disparity Filter | 미시 백본):</strong><ul>
<li><strong>분석 성과:</strong> 통계적 가설검정($p$-value)을 통해 전역적 배경 잡음을 제거하여 세부 아일랜드(Islands of Innovation)를 적출하였다. 이를 통해 독자적으로 작동하는 미시 공정 영역(예: 메모리 셀 제어 로직, 웨이퍼 이면 공정 등)의 고유한 전문 경계를 식별하였다.</li>
</ul>
</li>
<li><strong>대안 C (MST + Shortcuts | 유기적 가치사슬):</strong><ul>
<li><strong>분석 성과:</strong> 그래프의 단절을 영구히 차단하여 원천 소재(<code>sin</code>, <code>oxide</code>)에서 시작해 증착/식각 화학 가공을 거쳐 최종 외부 단자 결합 및 패키징(<code>bonding</code>, <code>die</code>)에 이르는 끊김 없는 기술적 선후 흐름(Spine)과 영역 간 우회로(Shortcuts)를 정밀하게 재현하였다.</li>
</ul>
</li>
</ol>
<hr>
<h2 id="ⅲ-최근-5개년20202024-기술-진화-실증-해석">Ⅲ. 최근 5개년(2020~2024) 기술 진화 실증 해석</h2>
<p>정량적 네트워크 위상 지표와 핵심 단어들의 연결 중심성(Degree Centrality) 시계열 트렌드를 교차 분석한 결과, 지난 5년간 반도체 기술 생태계는 다음과 같은 <strong>기술 패러다임 전이(Paradigm Shift)</strong> 과정을 거쳤음이 실증되었다.</p>
<h3 id="1-미시적-패러다임-전이-동작-알고리즘-rightarrow-구조-가공-rightarrow-소재공정-세분화">1. 미시적 패러다임 전이: [동작 알고리즘] $\rightarrow$ [구조 가공] $\rightarrow$ [소재/공정 세분화]</h3>
<ul>
<li><strong>동작 제어의 성숙 및 쇠퇴:</strong> 
2020년 최상위 허브 기술이었던 전기적 동작, 쓰기/읽기 제어 프로토콜(<code>operation</code>, <code>voltage</code>, <code>verify</code>, <code>program</code>)은 2024년으로 갈수록 중심성이 일제히 우하향하거나 하락 후 정체되었다. 이는 셀 제어 회로 설계 단계의 원천 특허 R&amp;D가 성숙기 및 안정화 단계에 도달했음을 보여준다.</li>
<li><strong>구조 및 형상 가공의 정점:</strong> 
물리적 3차원 채널 형성과 관련된 <code>form</code> 단어의 중심성이 2022년에 독보적인 피크($0.141$)를 찍었다. 이는 초고적층 3D NAND의 물리적 한계를 극복하기 위한 수직 홀 식각 및 물리적 아키텍처 성형 특허 R&amp;D가 2022년에 전격적으로 집중되었음을 반증한다.</li>
<li><strong>박막 가공 및 증착 시퀀스의 부상:</strong> 
구조 기틀 안착 이후, 고적층 산화막 신뢰성 및 나노미터 두께 제어 관련 기술어인 <code>oxide</code>가 매년 단 한 번의 꺾임 없이 상승하여 2024년 최상위 중심성($0.115$)을 확보하였으며, 증착 공정 단계를 다루는 <code>sequence</code> 역시 동반 우상향하였다. 이는 R&amp;D 흐름이 미시적 원자층 증착(ALD/CVD) 세분화 단계로 고도화되고 있음을 보여준다.</li>
</ul>
<h3 id="2-거시적-구조-지표-흐름-2022년의-중앙-집중-rightarrow-2024년의-플랫폼-대융합">2. 거시적 구조 지표 흐름: [2022년의 중앙 집중] $\rightarrow$ [2024년의 플랫폼 대융합]</h3>
<pre><code>■ 연도별 네트워크 위상 변화 요약
   - 2022년 : 밀도(0.0417) 및 군집도(0.532) 피크 ───&gt; 특정 기술(form) 중심의 고밀도 수렴/정렬
   - 2024년 : 아일랜드 수 급감(7-&gt;2), GCC 비중 급상승(14%-&gt;50%) ───&gt; 플랫폼 기반 거대 기술 융합 완성</code></pre><ul>
<li><strong>2022년 - 위상학적 수렴 및 긴밀성 극대화:</strong> 
네트워크 밀도($0.0417$)와 평균 군집계수($0.532$)가 피크를 달성하고 최대 신장 트리(MST)의 지름(Diameter)이 최소화($22$홉)되었다. R&amp;D 자원이 분산되지 않고 3차원 기하학적 형상 안정화라는 업계 공통의 지배적 난제 해결을 위해 하나의 구도로 수렴되었던 시기이다.</li>
<li><strong>2024년 - 표준화 및 플랫폼 대융합의 완성:</strong> 
Disparity Filter 백본 분석 상에서 독자적으로 파편화되어 떠돌던 소형 아일랜드(컴포넌트) 수가 7개에서 단 2개로 급감하고, 자이언트 컴포넌트(GCC)의 점유 비율이 $14.2%$에서 $50.0%$로 폭발적으로 도약하였다. 파편화되어 개별 연구되던 하부 단위 공정들이 마침내 하나의 표준화된 거대 통합 플랫폼 안으로 완전히 귀속·수렴되었음을 수학적으로 증명한다.</li>
</ul>
<hr>
<h2 id="ⅳ-전략적-rd-시사점-및-제언">Ⅳ. 전략적 R&amp;D 시사점 및 제언</h2>
<p>본 분석이 제공하는 시계열 및 위상 구조의 특성을 바탕으로, 당사의 R&amp;D 기획 및 IP(지식재산권) 확보를 위한 세 가지 전략적 제언을 기술한다.</p>
<ol>
<li><strong>[소재-박막 증착 공정 IP 장벽 구축]</strong>
현재 기술 주도권이 동작 알고리즘에서 원자/분자 수준의 박막 제어 및 시퀀스(<code>oxide</code>, <code>sequence</code>)로 이동했음이 명백히 입증되었다. 신규 R&amp;D 투자는 고종횡비 산화막 증착(ALD/CVD)의 균일도 제어 및 박막 가공성 확보 영역에 집중되어야 하며, 해당 도메인의 핵심 특허 장벽을 선제적으로 구축해야 한다.</li>
<li><strong>[기술 융합을 통한 구조적 공백지(Structural Holes) 선점]</strong>
대안 C의 MST 지형 분석에서 드러난 바와 같이, &#39;회로 동작(남반구)&#39;과 &#39;물리 가공(북반구)&#39; 사이의 가교 역할은 화학 전구체 및 가스류(<code>precursor</code>, <code>plasma</code>) 영역이 담당하고 있다. 두 영역 사이의 밀접도가 다소 낮은 경계면(구조적 틈새)을 집중 발굴하여, &quot;하드웨어 공정 한계를 우회 제어하는 알고리즘&quot; 등의 융합형 특허 포트폴리오를 설계한다면 독점적인 공백 기술권을 확보할 수 있다.</li>
<li><strong>[융합 플랫폼화에 대비한 특허 우회 설계 및 표준화 대응]</strong>
2024년 데이터가 보여주는 급격한 기술 수렴(GCC $50%$ 돌파) 현상은 기술의 표준화가 강력하게 진행 중임을 가리킨다. 플랫폼화가 완료된 통합 아키텍처 내에서 당사 특허가 고립되거나 침해 소송에 휘말리지 않도록, 융합의 핵심 인터페이스가 되는 단어(예: <code>mold</code>, <code>separation</code>, <code>alternation</code>)들의 결합 엣지를 선제 분석하여 우회 특허 설계와 표준 특허 대응 전략을 수립해야 한다.</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[빅데이터 분석기법들 ]]></title>
            <link>https://velog.io/@sung-e-gkoght/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D%EA%B8%B0%EB%B2%95%EB%93%A4</link>
            <guid>https://velog.io/@sung-e-gkoght/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D%EA%B8%B0%EB%B2%95%EB%93%A4</guid>
            <pubDate>Fri, 31 Jul 2026 05:18:23 GMT</pubDate>
            <description><![CDATA[<h1 id="사용한-빅데이터-분석-기법과-그-파이프라인">사용한 빅데이터 분석 기법과 그 파이프라인</h1>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/84d4c6eb-63bb-4561-b855-efe54af1958d/image.png" alt=""></p>
<h1 id="1-텍스트-마이닝">1. 텍스트 마이닝</h1>
<h2 id="1-1-개요">1-1 개요</h2>
<ul>
<li>텍스트 마이닝은 앞으로 진행할 빅데이터 분석의 기반이 된다. 단어를 spaCy API로 Parsing하고, 노이즈 제거를 위해 Mean TF-IDF vector와 정규화 섀넌 엔트로피, 불용어 사전을 활용했다.</li>
</ul>
<h2 id="1-2-텍스트-마이닝-설계">1-2 텍스트 마이닝 설계</h2>
<ul>
<li><p>우선 분석의 용이함을 위해, 개별 특허 항목에 대해영어로 작성된 대표청구항에 대해서만 텍스트 마이닝을 진행하였다.</p>
</li>
<li><p>텍스트 마이닝에서 &quot;중요한 기술은 명사형태로 존재할 것&quot;이라는 가정 하에 진행되었다. 이에 따라 spaCy API를 활용하여 명사와 고유명사 품사만 Parsing했다.</p>
<pre><code class="language-python">POS_WHITELIST = (&quot;NOUN&quot;, &quot;PROPN&quot;)
</code></pre>
</li>
</ul>
<p>if token.pos_ in POS_WHITELIST:
    lemma = token.lemma_
    if len(lemma) &gt;= 2 and lemma.isalpha():
        canonical_word = synonym_map.get(lemma, lemma)</p>
<pre><code>
- Mean TF-IDF와 섀넌 엔트로피를 통해 Parsing된 단어들을 수치화하고, 상한-하한 임계를 주어 유의미한 범위 내의 단어들을 filtering했다. 이때 임계치는 연구자의 반복을 통해 설정되었다.
```python
ENTROPY_RATIO_MAX = 0.73
ENTROPY_RATIO_MIN = 0.05
TFIDF_MEAN_MIN = 0.003
TFIDF_MEAN_MAX = 0.04</code></pre><ul>
<li>불용어사전을 사용하여, 미처 걸러지지 않은 이미 무의미한 단어들을 사전에 filtering했다. 여기에는 오타도 포함되어 있으며, 전치사 등과 모든 문서에 공통적으로 나오는 3D, NAND, FLASH, MEMORY 등의 단어도 포함된다. </li>
</ul>
<pre><code class="language-python">from sklearn.feature_extraction.text import ENGLISH_STOP_WORDS

CUSTOM_STOPWORDS = [
    &quot;anda&quot;, &quot;semiconductor&quot;, &quot;memory&quot;, &quot;device&quot;, &quot;flash&quot;, &quot;nand&quot;, &quot;vertical&quot;, &quot;processing&quot;,
    &quot;nonvolatile&quot;, &quot;dimensional&quot;, &quot;dimension&quot;, &quot;non&quot;, &quot;mention&quot;, &quot;kind&quot;, &quot;number&quot;, &quot;time&quot;,
    &quot;method&quot;, &quot;apparatus&quot;, &quot;device&quot;, &quot;step&quot;, &quot;comprise&quot;, &quot;comprising&quot;, &quot;include&quot;, &quot;including&quot;,
    &quot;formed&quot;, &quot;having&quot;, &quot;plurality&quot;, &quot;thereof&quot;, &quot;according&quot;, &quot;wherein&quot;, &quot;least&quot;, &quot;first&quot;, &quot;second&quot;,
    &quot;system&quot;, &quot;process&quot;, &quot;using&quot;, &quot;invention&quot;, &quot;claim&quot;, &quot;claims&quot;, &quot;embodiment&quot;, &quot;disclosure&quot;, &quot;mentioned&quot;,
    &quot;ha&quot;, &quot;andthe&quot;, &quot;andfirst&quot;, &quot;andwherein&quot;, &quot;andsecond&quot;, &quot;andat&quot;,
]

WHITELISTS = {&quot;via&quot;, &quot;through&quot;}

merged_stops = set(list(ENGLISH_STOP_WORDS.union(CUSTOM_STOPWORDS) - WHITELISTS))</code></pre>
<ul>
<li>다만 전치사이더라도, 기술적으로 중요한 단어, 가령 Through와 via는 TSV 기술의 핵심이므로, 다음의 조치를 취해 선별적으로 필터링했다.</li>
</ul>
<pre><code class="language-python">
# 1. 단수형 via 패턴: through + [어떤 단어든 0~3개] + via
# index=-1 은 매칭된 범위 중 가장 마지막 토큰(&quot;via&quot;)을 지칭합니다.
pattern_singular = [
    {&quot;LOWER&quot;: &quot;through&quot;},
    {&quot;OP&quot;: &quot;{0,3}&quot;},       # 0개부터 3개까지의 임의의 단어 매칭
    {&quot;LOWER&quot;: &quot;via&quot;}
]


# 2. 복수형 vias 패턴: through + [어떤 단어든 0~3개] + vias
# index=-1 은 매칭된 범위 중 가장 마지막 토큰(&quot;vias&quot;)을 지칭합니다.
pattern_plural = [
    {&quot;LOWER&quot;: &quot;through&quot;},
    {&quot;OP&quot;: &quot;{0,3}&quot;},       # 0개부터 3개까지의 임의의 단어 매칭
    {&quot;LOWER&quot;: &quot;vias&quot;}
]

ruler.add(patterns=[pattern_singular], attrs={&quot;TAG&quot;: &quot;NN&quot;, &quot;POS&quot;: &quot;NOUN&quot;}, index=0)
ruler.add(patterns=[pattern_singular], attrs={&quot;TAG&quot;: &quot;NN&quot;, &quot;POS&quot;: &quot;NOUN&quot;}, index=-1)
ruler.add(patterns=[pattern_plural], attrs={&quot;TAG&quot;: &quot;NN&quot;, &quot;POS&quot;: &quot;NOUN&quot;}, index=0)
ruler.add(patterns=[pattern_plural], attrs={&quot;TAG&quot;: &quot;NNS&quot;, &quot;POS&quot;: &quot;NOUN&quot;}, index=-1)
</code></pre>
<h2 id="1-3-텍스트-마이닝-결과">1-3 텍스트 마이닝 결과</h2>
<ul>
<li>본인은 스스로 제시한 기준에 따라 영어 대표청구항이 있는 2034개 문서를 바탕으로 154개 단어를 Parsing하였다. 각각은 모두 정규화 섀넌 엔트로피와 Mean TF-IDF를 계산하였다.</li>
<li>Filtering 이후에 단 한 개의 단어도 남지 않은 대표청구항이 11개 존재하였다.</li>
</ul>
<h1 id="2-토픽모델링">2. 토픽모델링</h1>
<ul>
<li><p>토픽모델링은 LDA Topic Modeling을 진행했다.</p>
</li>
<li><p>LDA Topic Modeling을 진행하기 위해 Gensim API를 활용하였으며, 다음 논문을 참고하였다: &quot;LDA, Top2Vec, BERTopic 모형의 토픽모델링 비교 연구&quot; - &quot;A Comparative Study on Topic Modeling of LDA, Top2Vec, and BERTopic Models Using LIS Journals in WoS&quot;</p>
<ul>
<li>Gensim API를 활용하여 토픽 모델링을 진행할 때 우리가 지정해야 하는 세 가지 하이퍼파라미터(Hyper-parameters)가 존재한다.</li>
</ul>
<ol>
<li>K: 토픽의 개수</li>
<li>α(alpha): 문서 - 토픽 밀도를 결정하며, 문서의 토픽 분포를 통제<ul>
<li>값이 크면 각 문서가 여러 개의 토픽을 골고루 가난하게 포함한다고 가정합니다.</li>
<li>값이 작으면 각 문서가 소수의 특정 토픽만 집중적으로 가진다고 가정합니다.</li>
</ul>
</li>
<li>η(eta): 토픽 - 단어 밀도를 결정하며, 토픽 내에서 단어의 분포를 통제<ul>
<li>값이 크면 각 토픽이 대다수의 단어를 포함하는 넓은 분포를 갖습니다.</li>
<li>값이 작으면 각 토픽이 소수의 핵심 단어로만 이루어진 뚜렷한 구성을 갖습니다.</li>
</ul>
</li>
</ol>
<ul>
<li>알맞은 K값을 찾기 위해 토픽 개수 별 $Perplexity, C_v, C_{uci}, C_{npmi}$를 계산한 뒤, 이를 바탕으로 최적의 K값을 찾고자 하였다.</li>
<li>α, η의 경우에는 Gensim API의 하이퍼파라미터 &#39;auto&#39;를 할당하여 default 상태에서 학습을 시작해(param = 1/K), 데이터를 통해 직접 하이퍼파라미터를 갱신(symmetric to asymmetric)하도록 했다.<ul>
<li>이 경우, 모델의 보편성을 해치지 않으면서, 적절한 값을 계산할 수 있다.</li>
</ul>
</li>
<li>우리는 다음과 같은 그래프를 얻어 K = 12로 정하였다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/359a5121-2a15-4b6b-830b-8643a5f74910/image.png" alt=""></p>
<ul>
<li>Perplexity는 모델이 실제 데이터를 얼마나 잘 예측하는지 나타내는 통계적 확률 지표이다. 모델이 문구나 다음 단어를 예측할 때 얼마나 혼란스러워하는지를 측정하며, 이는 낮을수록 좋다</li>
<li>Coherence($C_v$)는 특정 토픽 안에 포함된 상위 단어들이 서로 얼마나 의미적 유사도가 높고 일관성이 있는지를 측정하는 지표이다. 값이 높을수록 사람이 해석하기에 명확하고 논리적인 주제로 묶여 있음을 뜻한다.</li>
<li>$C_{uci}$와 $C_{npmi}$는 Coherence 보조지표로 Coherence 값이 모호할 때 활용할 수 있다.</li>
<li>일반적으로 Coherence가 높은 K를 선정하는 것이 일반적이며, Perplexity는 일반적으로 K가 증가할 때마다 하락하는 성질이 있기 때문에 Coherence보다 중요도가 낮다.</li>
<li>수치를 종합해보았을 때, K = 8 또는 K = 12가 유력하다. 우리 주제의 기술분류를 보다 세부적으로 보기 위해 K = 12를 선정하여 재차 모델링을 하고, 그 결과를 시각화하였다.</li>
</ul>
</li>
<li><p>다음은 K = 12의 분석 결과이다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/3b7d3380-f6ac-4b6e-8607-68ecf7330bb3/image.png" alt="">
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/73e8e581-f6c3-4d47-9a0c-3980c7eb0258/image.png" alt="">
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/053780a3-d80f-49c3-a362-6f0907592bcb/image.png" alt="">
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/1a7a4dae-20c1-4287-baeb-7f2c05366c16/image.png" alt=""></p>
</li>
<li><p>2010 ~ 2024년을 전체 분석한 다음, 연도별로 사후추적을 하여 선 그래프, 포트폴리오 선점도, 키워드 비중 분포를 확인해보았다.</p>
<ul>
<li>Topic 4, 12, 7이 많은 비중을 차지하면서, 주류 핵심 영역에 속하였다. 또한 Topic12은 2024년에 여타 토픽들보다 가장 많은 비중을 차지하였다.</li>
<li>토픽을 구성하는 단어들로 미루어볼 때, Topic12는 &quot;3D NAND FLASH의 전기적 검사 내지는 읽기-쓰기-기능 검사&quot;로 보인다.</li>
<li>또한 4, 12, 7에 이어 높은 비중을 가지고 있는 Topic6은 포트폴리오 산점도에서 신생/유망 영역에 속해있다.</li>
<li>주제를 유추해보면 &quot;3D NAND FLASH 주변회로 혹은 다이 수직 접합 기술&quot;으로 해석할 수 있을 것 같다. (CoP 구조 혹은 HBF로 해석 여지 존재)</li>
</ul>
</li>
</ul>
<h1 id="2-시계열-워드클라우드">2. 시계열 워드클라우드</h1>
<ul>
<li>시계열 워드클라우드는 토픽 모델링의 연장선으로 해석할 수도 있을 것 같다. 주제에 상관 없이 가장 TF-IDF 점수가 높은 상위 N개 단어를 추출하여 연도별로 전시하고 있다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/2b08058f-ee02-4095-ae11-9ef7cc9624a4/image.png" alt=""></p>
<h2 id="여러분-이거-뭔가-음인데-연도를-최근-5개년만-봐볼까요">여러분 이거 뭔가 음...인데 연도를 최근 5개년만 봐볼까요??</h2>
<h1 id="3-snasocial-network-analysis">3. SNA(Social Network Analysis)</h1>
<h2 id="3-1-네트워크-설계">3-1 네트워크 설계</h2>
<ul>
<li>SNA에서는 연구자가 직접 네트워크를 설계하고 노드(단어)간의 관계를 분석해야 한다.</li>
<li>네트워크를 구성하는 방법은 우선 텍스트 마이닝 과정을 통해 얻은 단어를 정점(Node, Vertex)로 정하고, 그렇게 얻은 단어들을 다시 대표청구항을 읽어 PPMI &gt; 0 인 단어들끼리 간선(Edge)을 이었다.</li>
<li>위와 같이 설계된 네트워크는 아직 간선 Filtering이 진행되지 않았으며, 후술할 내용에서 세 가지 방식으로 Fitering을 진행한다.</li>
</ul>
<h2 id="3-2-네트워크-필터링-방법">3-2 네트워크 필터링 방법</h2>
<ul>
<li>본 분석을 위해 다음의 논문과 학술지를 참고하였다.<ul>
<li>A Complex Network Approach to Distributional Semantic Models (Akira Utsumi)</li>
<li>Scale-free networks are rare (Anna D. Broido1, Aaron Clauset)</li>
<li>Network statistics and thresholding (Andrew Zalesky)</li>
</ul>
</li>
</ul>
<h3 id="3-2-1-disparity-filter">3-2-1 Disparity Filter</h3>
<ul>
<li>PPMI 값을 가중치로 하여, Disparity Filter를 적용했다. 유의수준은 경험적 수치에 의해 0.05%로 설정하였다.</li>
</ul>
<p>$$\alpha_{ij} = (1 - p_{ij})^{k_i - 1} &lt; 0.05$$ <em>($$k_i$$: 정점 $$i$$의 차수)</em></p>
<p>$$p_{ij} = \frac{w_{ij}}{s_i}$$ <em>(여기서 $w_{ij}$는 $i, j$ 사이의 PPMI 가중치, $s_i = \sum_{j} w_{ij}$는 노드 $i$의 강도)</em></p>
<ul>
<li>다음 수식을 통해 $$\alpha_{ij}$$를 계산하여 유의수준 아래의 가중치를 가진 간선만 남기고 모두 지워 네트워크를 구성한다.</li>
</ul>
<h3 id="3-2-2-mstmaximum-spanning-tree--m-strongest">3-2-2 MST(Maximum Spanning Tree) + M-Strongest</h3>
<ul>
<li>PPMI 값을 가중치로 한 다음, 각 가중치를 역수를 취하고 모든 합이 최소가 되도록 간선을 정리해(각 노드는 최소 한 개 이상 간선을 가지고 있다) Maximum Spanning Tree를 만든다.</li>
<li>가중치에 역수를 취하는 이유는, 가중치에 역수를 취한 뒤 Minimum Spanning Tree를 구하는 알고리즘을 적용할 수 있고, 그렇게 얻어진 Minimum Spanning Tree의 가중치를 다시 복원하면 최종적으로 Maximum Spanning Tree를 얻을 수 있기 때문이다. </li>
<li>모든 노드가 연결되어 있는 Maximum Spanning Tree를 구하여 뼈대를 구성하고, 이후 간선을 가중치 내림차순으로 정렬하여 상위 M개 간선을 추가하여 주변 노드 관계를 복원하였다(M-strongest).<ul>
<li>이때 M은 연구자의 반복, 경험적인 수치이다.</li>
</ul>
</li>
</ul>
<h3 id="3-2-3-cs-method">3-2-3 CS-Method</h3>
<ul>
<li>cs-method는 Akira Utsumi 박사가 고안한 국소적 상대 임계값(Local Relative Thresholding) 필터링 기법으로, 각 단어의 정보 규모(맥락 유사도 합)에 맞추어 개별적으로 임계 범위를 조정한다.</li>
<li>이를 통해 네트워크 전체의 희소성(Sparsity)을 보존하면서도 저빈도 단어의 고유한 의미론적 이웃들을 균형 있게 보존한다고 설명한다.</li>
<li>cs-method를 활용하기 위해 간선의 가중치를 단순 PPMI 수치로 두지 않고, PPMI 행렬을 구상하여 그 코사인 유사도를 맵을 계산했다. <ul>
<li>PPMI는 관계를 가지는 단어가 같은 대표청구항에 동시직접출현을 측정하지만, 코사인 유사도를 계산하면 두 단어가 서로 직접 만나지는 않았더라도 주변에 거느리는 문맥적 단어들의 패턴이 유사한 관계를 포착할 수 있다.</li>
<li>다만 동시출현정보가 약해지는 단점이 있다.</li>
</ul>
</li>
<li>PPMI 행렬은 단어 - 단어 행렬이고, 코사인 유사도 맵 또한 단어 - 단어의 행렬 형태이다. 이때 두 행렬 모두 대각성분은 1이 아닌 0으로 치환한다(i.e. Apple은 Apple과 항상 같이 출현한다)</li>
<li>구한 코사인 유사도 맵으로 CS-Method를 적용한다.</li>
</ul>
<p>$$\frac{\sum_{j=1}^{m_i} S_{ij}}{S_i} \ge R$$</p>
<p>$$S_i = \sum_{k \in V} S_{ik}$$</p>
<ul>
<li><p>PPMI 가중치를 정렬하여 그 관계가 상위 이웃인 노드들부터 $V_i^N$에 편입시키며 간선를 형성하되, 편입된 이웃들과의 유사도 누적합이 총 맥락 유사도 $S_i$의 지정된 비율 $R \in [0, 1]$을 돌파하는 지점 $m_i$에서 간선 추가를 중단한다.</p>
</li>
<li><p>이때, 너무 많은 하위 간선의 유입을 방지하기 위해 코사인 유사도 임계치를 설정해야 한다. 이 임계치는 $$S_i = \sum_{k \in V} S_{ik}$$에는 적용되지 않고, $$\sum_{j=1}^{m_i} S_{ij}$$에만 적용한다.</p>
<p>$$\frac{\sum_{p=1}^{m_i} S_{ij_p}^{,\text{filtered}}}{S_i} \ge R$$</p>
</li>
</ul>
<p> $$S_{ij}^{,\text{filtered}} = \begin{cases} S_{ij} &amp; \text{if } S_{ij} \ge \theta \ 0 &amp; \text{if } S_{ij} &lt; \theta \end{cases}$$</p>
<ul>
<li><p>본인은 이 임계치를 전체 코사인 유사도 중 사분위수 $$Q_3 = 75%$$ 영역(상위 25%)로 제한하였다. 현재 네트워크에서 그 값은 0.359050이었다.</p>
<table>
<thead>
<tr>
<th>항목</th>
<th>값</th>
</tr>
</thead>
<tbody><tr>
<td>count</td>
<td>24649.000000</td>
</tr>
<tr>
<td>mean</td>
<td>0.267528</td>
</tr>
<tr>
<td>std</td>
<td>0.158484</td>
</tr>
<tr>
<td>min</td>
<td>0.000000</td>
</tr>
<tr>
<td>25%</td>
<td>0.146385</td>
</tr>
<tr>
<td>50%</td>
<td>0.243722</td>
</tr>
<tr>
<td>75%</td>
<td>0.359050</td>
</tr>
<tr>
<td>90%</td>
<td>0.486065</td>
</tr>
<tr>
<td>95%</td>
<td>0.566116</td>
</tr>
<tr>
<td>99%</td>
<td>0.741542</td>
</tr>
<tr>
<td>max</td>
<td>0.910182</td>
</tr>
</tbody></table>
</li>
</ul>
<h4 id="r값-역산하기">R값 역산하기</h4>
<ul>
<li><p>본인은 R값을 선택하기 위해, 평균 차수 K를 구하여 R을 역산하고자 했다. 이를 위해 연구자는 현제 PPMI 네트워크를 설명하는 모델을 찾고자 하였고, 여러 시도 결과 현재 네트워크의 &quot;차수 - 확률 그래프 (Degree Distribution)&quot;가 로그정규분포에 근사할 수 있음을 바탕으로 평균 차수 K를 구하였다.</p>
</li>
<li><p>다음은 근사 과정이다. K-S 검정과 CCDF 분포를 통해 유의수준을 측정했으며, 귀무가설: &quot;PPMI 네트워크는 로그정규분포가 아니다&quot;를 기각하는 (즉, 로그정규분포이다) 결과를 얻었다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/05a133f8-d85a-4b9f-a7f5-c187c64fd417/image.png" alt=""></p>
<table>
<thead>
<tr>
<th>항목</th>
<th>값</th>
</tr>
</thead>
<tbody><tr>
<td>ks_statistic</td>
<td>0.04513464681932289</td>
</tr>
<tr>
<td>p_value</td>
<td>0.7926029568051501</td>
</tr>
<tr>
<td>sigma(shape)</td>
<td>0.4705548133779804</td>
</tr>
<tr>
<td>mu</td>
<td>3.5182788809624195</td>
</tr>
<tr>
<td>scale</td>
<td>33.72633145112545</td>
</tr>
<tr>
<td>decision</td>
<td>Allow (Log - normal is valid)</td>
</tr>
<tr>
<td>note</td>
<td>원시 데이터 그대로 사용됨</td>
</tr>
</tbody></table>
<ul>
<li><p>이때 얻어진 로그정규분포의 $$\mu=3.5182788809624195$$, $$\sigma=0.4705548133779804$$이었고, 이를 통해 평균차수 3.5182788809624195개를 얻을 수 있었다.</p>
</li>
<li><p>$\langle k(R) \rangle$은 비중 $R$ 값에 비례하여 단조 증가(Monotonically Increasing)하는 형태의 비선형 계단식 함수라는 사실을 바탕으로 R값을 Bisection Method를 통해 역산했다.</p>
<ul>
<li><p>초기 경계 $R_{\text{low}} = 0.01$, $R_{\text{high}} = 1.0$으로 정의합니다.</p>
</li>
<li><p>$R_{\text{mid}} = \frac{R_{\text{low}} + R_{\text{high}}}{2}$, $R_{\text{mid}}$ 값을 입력변수로 넣어 실제 cs-method 단어망 $G(R_{\text{mid}})$를 임시 구축</p>
</li>
<li><p>구축된 그래프로부터 계산된 실제 평균 차수 $\langle k(R_{\text{mid}}) \rangle$와 목표치 $\langle k \rangle_{\text{target}}$ 사이의 오차를 계산</p>
<ul>
<li>$$\text{Error} = \langle k(R_{\text{mid}}) \rangle - \langle k \rangle_{\text{target}}$$</li>
</ul>
</li>
<li><p>경계 갱신:</p>
<ul>
<li>만약 $\text{Error} &lt; 0$ : $$R_{\text{low}} \leftarrow R_{\text{mid}}$$</li>
<li>만약 $\text{Error} &gt; 0$ : $$R_{\text{high}} \leftarrow R_{\text{mid}}$$</li>
</ul>
</li>
<li><p>오차의 절대값 $|\text{Error}|$가 사전에 지정한 임계치(Tolerance, 예: <code>0.1</code>)보다 작아지거나, 최대 반복 횟수(Max Iteration)에 도달하면 탐색을 멈추고 최종 갱신된 $R_{\text{mid}}$를 <strong>최적의 $R^*$</strong>로 결정합니다.</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>Iter</th>
<th>Candidate R</th>
<th>Calculated</th>
<th>Difference</th>
</tr>
</thead>
<tbody><tr>
<td>1</td>
<td>0.50500</td>
<td>38.9554</td>
<td>+1.2807</td>
</tr>
<tr>
<td>2</td>
<td>0.25750</td>
<td>27.8344</td>
<td>-9.8403</td>
</tr>
<tr>
<td>3</td>
<td>0.38125</td>
<td>35.7325</td>
<td>-1.9423</td>
</tr>
<tr>
<td>4</td>
<td>0.44312</td>
<td>37.8471</td>
<td>+0.1724</td>
</tr>
<tr>
<td>5</td>
<td>0.41219</td>
<td>36.9809</td>
<td>-0.6938</td>
</tr>
<tr>
<td>6</td>
<td>0.42766</td>
<td>37.4777</td>
<td>-0.1970</td>
</tr>
<tr>
<td>7</td>
<td>0.43539</td>
<td>37.6815</td>
<td>+0.0068</td>
</tr>
</tbody></table>
<ul>
<li>최적의 R값: 0.43539 (실제 평균 차수: 37.6815, 오차: 0.0068) 를 도출하였다.</li>
<li>이 R값과 오차는 코사인 유사도 임계치에 영향을 받으며, $$\theta_{sim} = Q_3$$에서 다음의 결과를 경험적으로 도출할 수 있었다.</li>
</ul>
</li>
</ul>
<h4 id="cs-method-계산">CS-method 계산</h4>
<ul>
<li><p>이제 CS-method를 적용할 수 있다.</p>
<p>$$\frac{\sum_{p=1}^{m_i} S_{ij_p}^{,\text{filtered}}}{S_i} \ge 0.43539$$</p>
</li>
</ul>
<h2 id="3-3-각-필터링-방법을-통해-얻어진-그래프">3-3 각 필터링 방법을 통해 얻어진 그래프</h2>
<h3 id="3-3-1-disparity-filter">3-3-1 Disparity Filter</h3>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/04a40359-245f-4213-9622-7c17253d9c51/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/fada87bf-837d-48bf-85f9-0adeb7576b9e/image.png" alt=""></p>
<ul>
<li>아래는 수치해석 결과이다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/c7a39e66-3ff1-4063-85d6-a3304044ace9/image.png" alt=""></p>
<table>
<thead>
<tr>
<th>Year</th>
<th>Component_Count</th>
<th>GCC_Size_Ratio</th>
</tr>
</thead>
<tbody><tr>
<td>2020</td>
<td>9</td>
<td>0.2</td>
</tr>
<tr>
<td>2021</td>
<td>5</td>
<td>0.2</td>
</tr>
<tr>
<td>2022</td>
<td>6</td>
<td>0.1666666667</td>
</tr>
<tr>
<td>2023</td>
<td>7</td>
<td>0.1428571429</td>
</tr>
<tr>
<td>2024</td>
<td>2</td>
<td>0.5</td>
</tr>
</tbody></table>
<h4 id="①-대안-b-시계열-지표-및-테이블-해석-2024년의-거대-기술-대융합-standardization">① 대안 B 시계열 지표 및 테이블 해석: &quot;2024년의 거대 기술 대융합 (Standardization)&quot;</h4>
<ul>
<li><strong>2020년 ~ 2023년 (독립적 탐색 및 전문화 단계):</strong> <ul>
<li>이 시기에는 독립된 기술 아일랜드(컴포넌트) 개수가 <strong>최대 9개(2020년)에서 7개(2023년) 수준으로 높게 유지</strong>되었습니다. 반면, 가장 큰 컴포넌트의 크기 비중(GCC Ratio)은 <strong>$14% \sim 20%$ 수준으로 매우 낮았습니다.</strong></li>
<li>즉, 이 시기에는 [공정 가공], [동작 제어], [패키징] 등 각 세부 R&amp;D 영역이 서로 통계적으로 결합하지 못하고, <strong>각자 독립된 아일랜드 형태로 파편화되어 연구개발이 독립적으로 진행</strong>되었음을 의미합니다.</li>
</ul>
</li>
<li><strong>2024년의 특이점 (대융합 국면 전환):</strong><ul>
<li>하지만 2024년에 이르러 놀라운 수치적 전이가 일어납니다. 컴포넌트의 수가 <strong>7개에서 단 2개로 급감</strong>했고, 최대 컴포넌트의 비중(GCC)은 <strong>$14.2%$에서 $50.0%$로 폭발적으로 점프</strong>했습니다.</li>
<li>이는 파편화되어 각자 흐르던 하부 기술들이 2024년에 이르러 하나의 거대한 <strong>&#39;중앙 표준 기술 플랫폼&#39;</strong> 안으로 강력하게 흡수·통합되었음을 뜻합니다. 특허 장벽이 마침내 하나의 표준 아키텍처로 수렴했음을 보여주는 전형적인 정량적 패턴입니다.</li>
</ul>
</li>
</ul>
<h3 id="3-3-2-mst--m-strongest">3-3-2 MST + M-Strongest</h3>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/3bfb139a-1e59-4a60-8e44-d85f217b8c1d/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/8fba69f0-be09-42bb-8d93-e783eb286862/image.png" alt=""></p>
<ul>
<li>아래는 수치해석이다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/6574046a-11e6-4ca6-9e95-16b4eb81b42a/image.png" alt=""></p>
<table>
<thead>
<tr>
<th>Year</th>
<th>MST_Diameter</th>
<th>Avg_Path_Length</th>
</tr>
</thead>
<tbody><tr>
<td>2020</td>
<td>30</td>
<td>12.92309051</td>
</tr>
<tr>
<td>2021</td>
<td>29</td>
<td>12.23900661</td>
</tr>
<tr>
<td>2022</td>
<td>22</td>
<td>10.34671533</td>
</tr>
<tr>
<td>2023</td>
<td>24</td>
<td>10.79921351</td>
</tr>
<tr>
<td>2024</td>
<td>26</td>
<td>12.28781513</td>
</tr>
</tbody></table>
<h4 id="시계열-지표-및-테이블-해석-2022년의-중앙-집중화와-이후의-응용-다변화">시계열 지표 및 테이블 해석: &quot;2022년의 중앙 집중화와 이후의 응용 다변화&quot;</h4>
<ul>
<li><strong>2020년 ~ 2022년 (효율적 수렴 및 압축):</strong><ul>
<li>트리의 최장 지름(Diameter)이 <strong>30에서 22로 급감</strong>하고, 평균 경로 길이(Path Length) 역시 <strong>$12.9$에서 $10.3$으로 최소화</strong>되었습니다.</li>
<li>트리 위상학에서 지름과 평균 거리가 짧아졌다는 것은, 네트워크가 옆으로 길게 늘어선 형태가 아니라 <strong>특정 강력한 원천 노드를 중심으로 매우 촘촘하게 모여든 &#39;별 모양(Star-like) 구조&#39;</strong>로 변했음을 뜻합니다. 2022년은 핵심 기반 특허 선점을 위해 기술적 응집도를 최대로 끌어올렸던 해로 해석할 수 있습니다.</li>
</ul>
</li>
<li><strong>2023년 ~ 2024년 (응용/파생 기술의 분화 단계):</strong><ul>
<li>그 후, 2024년에 지름이 다시 <strong>26으로 늘어나고</strong> 평균 경로 길이도 <strong>$12.2$로 우상향</strong>합니다. </li>
<li>이는 2022년의 조밀한 코어 플랫폼 안착 이후, 이를 기반으로 하는 <strong>다양한 응용/파생 특허권들이 나뭇가지처럼 옆으로 길게 뻗어 나가기 시작했음(기술 영역의 확장 및 분화 단계 진입)</strong>을 증명합니다.</li>
</ul>
</li>
</ul>
<h3 id="3-3-3-cs-method">3-3-3 CS-method</h3>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/0b642241-2c00-4f39-8f5d-87ace8350332/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/a1a9537e-95c8-444d-a079-c401e74b0c56/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/9013bff6-6ac4-41b4-b02f-11ee0cdfcf42/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/a1b17695-6845-43f5-bef6-d3365549f276/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/d027f702-6873-42d1-8d3a-1636db808633/image.png" alt=""></p>
<ul>
<li><p>간선이 매우 많이 나와 시각적인 정렬을 도입했다. Mean TF-IDF가 높은 단어일수록 노드의 크기가 크고, 또 전체 레이아웃에서 중앙으로 몰릴수록 다른 그룹과의 간선이 많다는 의미이다.</p>
<ul>
<li><p>Group1(Red): Oxide, Silicon, Etch, Field, Deposition 등의 키워드가 타 그룹과 높은 연관성을 보인다.</p>
</li>
<li><p>Group2(Blue): Block, Level, bit, Drain, Operation,  Voltage, Transister 등의 키워드가 타 그룹과 높은 연관성을 보인다.</p>
</li>
<li><p>Group3(Yellow): Area, Metal, Opening, form, film 등의 키워드가 타 그룹과 높은 연관성을 보인다.</p>
</li>
</ul>
</li>
<li><p>아래는 수치해석이다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/aa31559c-b3e1-4a8f-84ed-0bbd0105f9c7/image.png" alt=""></p>
<h3 id="아래-ai-해설인데-조금-이상한-부분-있는듯-다시-돌려봐야될듯">아래 ai 해설인데 조금 이상한 부분 있는듯 다시 돌려봐야될듯?</h3>
<table>
<thead>
<tr>
<th>Year</th>
<th>Edges</th>
<th>Density</th>
<th>Avg_Clustering</th>
</tr>
</thead>
<tbody><tr>
<td>2020</td>
<td>508</td>
<td>0.0414829332</td>
<td>0.472286066</td>
</tr>
<tr>
<td>2021</td>
<td>424</td>
<td>0.03462355055</td>
<td>0.420182598</td>
</tr>
<tr>
<td>2022</td>
<td>511</td>
<td>0.04172791115</td>
<td>0.5321741952</td>
</tr>
<tr>
<td>2023</td>
<td>421</td>
<td>0.0343785726</td>
<td>0.4524758889</td>
</tr>
<tr>
<td>2024</td>
<td>426</td>
<td>0.03478686918</td>
<td>0.4672768285</td>
</tr>
</tbody></table>
<h4 id="미시적-기술어-트렌드-분석-꺾은선그래프-해석">미시적 기술어 트렌드 분석 (꺾은선그래프 해석)</h4>
<p>단어들의 중심성(Centrality) 변화 추이는 특허망 내에서 단어가 차지하는 영향력의 성쇠를 보여줍니다.</p>
<ul>
<li><strong>동작 및 전압 제어 기술의 쇠퇴 (<code>operation</code>, <code>verify</code>, <code>program</code>, <code>voltage</code>):</strong><ul>
<li>2020년에는 <code>operation</code>($0.135$), <code>voltage</code>($0.135$), <code>program</code>($0.11$) 등 메모리 동작 및 회로 알고리즘 관련 단어들이 최상위 허브를 지배했습니다.</li>
<li>그러나 이 단어들은 일부 주기적 스파이크(예: 2023년 <code>voltage</code> 상승)를 제외하면 <strong>전반적으로 중심성이 우하향하거나 하락 후 정체</strong>하는 양상을 보입니다. 전기적 제어 방식 특허들의 고도화 작업이 점차 안정화 단계에 접어들었음을 가리킵니다.</li>
</ul>
</li>
<li><strong>물리적 형상 및 공정 기술의 부상 (<code>form</code>, <code>oxide</code>, <code>sequence</code>):</strong><ul>
<li>반면, <strong><code>oxide</code> (절연/박막 산화막)</strong>는 2020년 최하위 수준($0.064$)에서 출발하여 <strong>매년 예외 없이 일관되게 상승하여 2024년 최상위 중심성($0.115$)</strong>에 도달했습니다.</li>
<li>공정 단계를 다루는 <strong><code>sequence</code></strong> 역시 2020년 최하위에서 출발하여 꾸준히 우상향하고 있습니다.</li>
<li>물리적 구조를 대변하는 <strong><code>form</code></strong>은 2020~2021년 평탄한 흐름을 보이다가 <strong>2022년에 최정점($0.141$)</strong>을 찍은 후 급락, 이후 다시 회복하는 다이내믹한 궤적을 보입니다.</li>
</ul>
</li>
</ul>
<h4 id="1단계-20202021년-전기적-제어-및-신뢰성-확보-중심">[1단계] 2020~2021년: 전기적 제어 및 신뢰성 확보 중심</h4>
<ul>
<li>이 시기는 메모리 동작 알고리즘 및 쓰기/읽기/검증 프로토콜(<code>operation</code>, <code>voltage</code>, <code>program</code>, <code>verify</code>)의 중심성이 매우 높았습니다. </li>
<li>적층 수가 올라가는 초기 단계에서 셀을 전기적으로 어떻게 세밀히 제어하고 열화 현상(신뢰성 문제)을 제어할 것인가에 특허 R&amp;D가 강력히 집중되어 있었습니다.</li>
</ul>
<h4 id="2단계-2022년-물리적-채널-형성과-구조-설계의-대융합-architectural-peak">[2단계] 2022년: 물리적 채널 형성과 구조 설계의 대융합 (Architectural Peak)</h4>
<ul>
<li>2022년은 <strong>전체 네트워크 밀도와 군집화가 피크를 이룬 시기</strong>이며, 동시에 <strong><code>form</code> (형상/구조 형성) 단어가 압도적인 중심성 피크</strong>를 찍은 시기입니다.</li>
<li>초고적층 3D NAND 구조에서 수직 채널 구멍(Hole)을 무너지지 않게 뚫고 게이트 구조를 물리적으로 어떻게 성형(Forming)할 것인가라는 <strong>물리적 아키텍처 공정 난제 해결을 위해 기술망 전체가 고밀도로 수렴</strong>했음을 보여줍니다.</li>
</ul>
<h4 id="3단계-20232024년-미시적-박막-소재-가공-및-증착-공정-고도화">[3단계] 2023~2024년: 미시적 박막 소재 가공 및 증착 공정 고도화</h4>
<ul>
<li>구조적 기틀(<code>form</code> 단계)이 안착된 2023년 이후부터는 다시 에지와 밀도가 다소 감소하며 기술이 다변화되는 가운데, <strong><code>oxide</code>와 <code>sequence</code>가 독보적인 주도권</strong>을 잡습니다.</li>
<li>이는 구조 형성을 넘어 채널 내부의 얇은 산화막(Tunnel Oxide, Blocking Oxide 등) 막질의 신뢰성을 극대화하기 위해 <strong>원자층 증착(ALD/CVD) 공정 시퀀스(<code>sequence</code>)와 나노미터 두께의 박막 가공 기술(<code>oxide</code>)에 집중</strong>하는 &#39;초미세 공정 가공 세분화 단계&#39;로 진입했음을 뜻합니다.</li>
</ul>
<h3 id="요약">요약</h3>
<p>결론적으로 본 분석 결과는 해당 메모리 기술이 <strong>&quot;동작 제어 회로 설계(2020) $\rightarrow$ 거시적 종횡비 채널 가공 및 구조 성형(2022) $\rightarrow$ 미시적 산화막 박막 증착 및 원자 수준 공정 제어(2024)&quot;</strong>의 경로로 R&amp;D의 질적 진화가 명확한 위상학적 증거를 남기며 진행되었음을 보여주는 우수한 분석 리포트입니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[빅데이터 분석 기법과 사용한 수학]]></title>
            <link>https://velog.io/@sung-e-gkoght/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EA%B8%B0%EB%B2%95%EA%B3%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-%EC%88%98%ED%95%99</link>
            <guid>https://velog.io/@sung-e-gkoght/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EA%B8%B0%EB%B2%95%EA%B3%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-%EC%88%98%ED%95%99</guid>
            <pubDate>Sun, 26 Jul 2026 14:54:07 GMT</pubDate>
            <description><![CDATA[<p>문서-단어 데이터, 즉 Bag-of-words 분석을 위해 등장한 수학 개념</p>
<ul>
<li>Mean TF-IDF (w) </li>
<li>정규화 섀넌 엔트로피(shannon entropy)</li>
<li>콜모고로프-스미르노프(K-S) 검정</li>
<li>CCDF(상보적 누적분포함수)</li>
<li>PPMI</li>
<li>COSINE SIMILARITY</li>
<li>utsumi cs-method</li>
<li>MST</li>
<li>Disparity Filter</li>
</ul>
<h1 id="mean-tf-idf와-h_norm정규화-섀넌-엔트로피-정의하기">Mean TF-IDF와 H_norm(정규화 섀넌 엔트로피) 정의하기</h1>
<h2 id="mean-tf-idf-w--단어w-기준">Mean TF-IDF (w) : 단어(w) 기준</h2>
<h4 id="수학적-증명">[수학적 증명]</h4>
<p>어떤 단어 $w$의 전 문서 출현 빈도 합을 $TF_{total}$, 문서 빈도를 $DF$, 전체 문서 수를 $N$이라 할 때, 평균 TF-IDF는 다음과 같이 유도됩니다.</p>
<p>$$\text{Mean TF-IDF}(w) = \frac{TF_{total}}{N} \times \log\left(\frac{N}{DF}\right)$$</p>
<p>여기서 단어의 총 출현 빈도($TF_{total}$)는 일반적으로 등장하는 문서 수($DF$)에 대략 비례합니다. (편의상 $TF_{total} \approx k \cdot DF$라고 두겠습니다.) 
또한, 전체 문서 대비 등장 비율을 $x = DF/N$ ($0 \le x \le 1$)이라고 하면 수식은 다음과 같이 변형됩니다.</p>
<p>$$\text{Mean TF-IDF}(x) \approx k \cdot x \log\left(\frac{1}{x}\right) = -k \cdot x \log x$$</p>
<p>이 함수 $f(x) = -x \log x$는 정보이론의 핵심인 이진 엔트로피 함수 형태와 같으며, 그래프를 그리면 다음과 같은 <strong>아치형($\cap$)</strong>을 그리게 됩니다.</p>
<ol>
<li><strong>왼쪽 끝 (극단적인 희귀어, $x \to 0$)</strong>: 
IDF 값은 매우 높지만, 단어 자체가 거의 등장하지 않으므로 ($DF \approx 1$), 전 문서 평균을 내면 <strong>평균 TF-IDF는 0에 수렴</strong>합니다.</li>
<li><strong>오른쪽 끝 (극단적인 상투어, $x \to 1$)</strong>: 
단어는 많이 등장하지만, 모든 문서에 다 나오기 때문에 IDF 값($\log(1)$)이 0이 되어 <strong>평균 TF-IDF는 다시 0에 수렴</strong>합니다.</li>
<li><strong>가운데 (중간 빈도어, $x \approx 0.368$)</strong>:
수학적으로 $x = 1/e$ (약 36.8%) 지점에서 <strong>평균 TF-IDF가 최고점(Peak)</strong>을 찍고 양옆으로 내려가는 뒤집어진 U자 곡선이 완성됩니다.</li>
</ol>
<h2 id="h_norm">H_norm</h2>
<h4 id="수학적-기호-정의">수학적 기호 정의</h4>
<ul>
<li>$N$ : 전체 문서의 개수 (<code>N_docs</code>)</li>
<li>$d$ : 개별 문서 ($d \in {1, 2, \dots, N}$)</li>
<li>$w_d$ : 특정 단어(term)가 문서 $d$에서 가지는 TF-IDF 가중치 (<code>weights</code>)</li>
<li>$W$ : 특정 단어의 모든 문서에 대한 가중치 총합 (<code>total_weight</code>), 즉 $W = \sum_{d=1}^{N} w_d$</li>
</ul>
<hr>
<h4 id="단계별-공식-적용">단계별 공식 적용</h4>
<p><strong>1단계: 가중치 확률 분포 ($p_d$) 계산</strong>
특정 단어가 전체 가중치 총합에서 각 문서에 기여하는 비율을 구합니다. (단, 가중치가 0보다 큰 문서 $d$에 대해서만 계산합니다.)
$$p_d = \frac{w_d}{W} = \frac{w_d}{\sum_{i=1}^{N} w_i} \quad (\text{단, } w_d &gt; 0)$$</p>
<p><strong>2단계: 섀넌 엔트로피 (Shannon Entropy, $H$) 계산</strong>
위에서 구한 확률 분포 $p_d$를 사용하여 해당 단어의 원시 엔트로피(Raw Entropy)를 구합니다.
$$H = -\sum_{d: w_d &gt; 0} p_d \log_2(p_d)$$</p>
<p><strong>3단계: 최대 엔트로피 (Maximum Entropy, $H_{\max}$) 계산</strong>
단어가 모든 문서($N$)에 균등하게 퍼져 있을 때 가질 수 있는 이론상의 최대 엔트로피입니다.
$$H_{\max} = \log_2(N)$$</p>
<p><strong>4단계: 정규화 섀넌 엔트로피 (Normalized Shannon Entropy, $H_{\text{norm}}$) 최종 공식</strong>
원시 엔트로피를 최대 엔트로피로 나누어 $0 \le H_{\text{norm}} \le 1$ 범위로 표준화합니다. (단, $N &gt; 1$ 일 때)</p>
<p>$$H_{\text{norm}} = \frac{H}{H_{\max}} = \frac{-\sum_{d: w_d &gt; 0} \left( \frac{w_d}{\sum_{i=1}^{N} w_i} \right) \log_2\left( \frac{w_d}{\sum_{i=1}^{N} w_i} \right)}{\log_2(N)}$$</p>
<p><em>(만약 $N \le 1$ 이거나 모든 문서에서 가중치가 0인 단어라면 $H_{\text{norm}} = 0.0$ 으로 처리됩니다.)</em></p>
<hr>
<h4 id="이-공식이-코드-내에서-가지는-의미">이 공식이 코드 내에서 가지는 의미</h4>
<ul>
<li><strong>$H_{\text{norm}} \approx 1$ (최댓값 부근):</strong> 해당 단어가 모든 문서에 매우 균등하게 골고루 등장하고 가중치도 비슷하다는 뜻입니다. (정보 분포가 매우 무질서함/퍼져 있음)</li>
<li><strong>$H_{\text{norm}} \approx 0$ (최솟값 부근):</strong> 해당 단어가 특정 한두 개의 문서에만 집중적으로 몰려서 등장한다는 뜻입니다. (정보 분포가 특정 문서에 매우 집중되어 있음)</li>
</ul>
<hr>
<h2 id="두-수치의-관계">두 수치의 관계</h2>
<p>평균 TF-IDF와 문서 빈도(DF)를 알면 아치형 곡선 위의 한 점이 결정됩니다. 하지만 <strong>동일한 곡선 상의 같은 점(즉, 평균 TF-IDF와 DF가 완전히 똑같은 두 단어)이라도 실제 분포 형태는 완전히 다를 수 있습니다.</strong> </p>
<p>평균 TF-IDF가 제공하지 못하는 <strong>&quot;단어 분포의 질적인 모양(Shape)&quot;</strong>을 섀넌 엔트로피가 추가로 알려줍니다.</p>
<h4 id="비교-예시">[비교 예시]</h4>
<p>총 문서 수 $N=100$인 데이터셋에서 두 단어 $W_A$와 $W_B$가 있습니다.</p>
<ul>
<li>두 단어 모두 10개 문서에 등장했습니다 ($DF = 10$). 즉, 둘 다 아치형 곡선 상에서 같은 $X$축 위치에 있습니다.</li>
<li>두 단어 모두 전체 문서에서의 총 출현 빈도가 20회입니다. 즉, 둘의 <strong>평균 TF-IDF 값은 완전히 똑같습니다.</strong> (곡선 상의 완전히 같은 점에 겹쳐서 위치합니다.)</li>
</ul>
<p>하지만 실제 문서별 단어 분포를 열어보면 다음과 같은 극적인 차이가 존재합니다.</p>
<ul>
<li><strong>단어 $W_A$ (골고루 등장하는 노이즈 단어)</strong>:<ul>
<li>등장한 10개의 문서에서 각각 <strong>정확히 2번씩</strong> 균일하게 쓰였습니다.</li>
<li><strong>섀넌 엔트로피 결과</strong>: 확률 벡터 $p$가 <code>[0.1, 0.1, ...]</code>로 완벽히 균등하므로 <strong>엔트로피가 매우 높게(High) 측정</strong>됩니다.</li>
</ul>
</li>
<li><strong>단어 $W_B$ (특정 문서에 집중된 핵심 기술 전문 용어)</strong>:<ul>
<li>단 1개의 문서에서 <strong>11번 폭발적으로 쓰이고</strong>, 나머지 9개 문서에서는 그냥 스치듯이 <strong>1번씩</strong> 쓰였습니다.</li>
<li><strong>섀넌 엔트로피 결과</strong>: 가중치가 1개 문서에 심하게 쏠려 있으므로 <strong>엔트로피가 매우 낮게(Low) 측정</strong>됩니다.</li>
</ul>
</li>
</ul>
<h4 id="추가-정보의-실무적-의의">[추가 정보의 실무적 의의]</h4>
<p>평균 TF-IDF만 사용하는 알고리즘은 곡선 상의 위치가 완벽히 일치하는 $W_A$와 $W_B$를 전혀 구분하지 못하고 둘 다 합격시키거나 탈락시킵니다.</p>
<p>그러나 <strong>섀넌 엔트로피 필터를 추가</strong>하면 다음과 같은 구분이 가능해집니다.</p>
<ul>
<li>&quot;평균 TF-IDF는 똑같이 높지만, 엔트로피가 높은 <strong>$W_A$</strong>는 특허 청구항에 의미 없이 상투적으로 들어간 <strong>도메인 소음</strong>이구나.&quot; $\to$ <strong>필터링 제거</strong></li>
<li>&quot;평균 TF-IDF가 같으면서 엔트로피가 낮은 <strong>$W_B$</strong>야말로 특정 특허 핵심 기술을 깊게 다루는 <strong>진짜 핵심 기술어</strong>구나.&quot; $\to$ <strong>토픽 모델링 단어로 최종 채택</strong></li>
</ul>
<hr>
<h1 id="콜모고로프-스미르노프k-s-검정과-ccdf상보적-누적분포함수">콜모고로프-스미르노프(K-S) 검정과 CCDF(상보적 누적분포함수)</h1>
<h2 id="k-s-검정-1형">K-S 검정 (1형)</h2>
<ul>
<li>데이터 집단의 경험적 누적 분포 함수(CDF)가 특정 이론 분포와 같은지, 또는 두 데이터 집단의 분포가 서로 같은지 비교하는 비모수적 통계 방법<ul>
<li>누적 분포 함수(CDF): 데이터가 작은 값부터 큰 값까지 누적되는 비율을 그래프로 나타낸 것입니다.</li>
<li>K-S 통계량(D): 비교하는 두 누적 분포 함수 사이에서 가장 큰 수직 거리(절대값 차이)를 측정합니다.</li>
<li>이 거리(D)가 임계값보다 크면, 두 분포가 서로 다르다는 결론(대립가설)을 채택합니다.</li>
</ul>
</li>
</ul>
<h4 id="수학적-정의-및-수식">수학적 정의 및 수식</h4>
<p>주어진 표본 데이터 $X = {X_1, X_2, \dots, X_n}$에 대해 경험적 누적분포함수(Empirical Cumulative Distribution Function, ECDF) $F_n(x)$는 다음과 같이 정의됩니다.
$$F_n(x) = \frac{1}{n} \sum_{i=1}^n \mathbb{I}<em>{(-\infty, x]}(X_i)$$
*(여기서 $\mathbb{I}</em>{(-\infty, x]}(X_i)$는 $X_i \le x$일 때 1, 그렇지 않으면 0을 갖는 지시함수)*</p>
<p>K-S 검정의 귀무가설 $H_0$는 &quot;표본의 실제 분포 $F(x)$와 가정된 이론적 누적분포함수 $F_0(x)$가 일치한다&quot;입니다. 검정 통계량 $D$는 실제 누적분포와 이론적 누적분포 간의 <strong>최대 수직 거리</strong>로 계산됩니다.
$$D = \sup_{x} |F_n(x) - F_0(x)|$$
<em>(여기서 $\sup$은 최소상한(Supremum)을 의미)</em></p>
<p>계산된 통계량 $D$가 표본 크기 $n$에 의해 도출되는 임계치보다 크거나 유의수준(p-value)이 임계치(주로 0.05) 미만인 경우 귀무가설 $H_0$를 기각하며, 반대로 p-value가 0.05 이상인 경우 해당 분포 모델을 적합한 모형으로 수용하게 됩니다.</p>
<h2 id="ccdf">CCDF</h2>
<ul>
<li>CCDF는 확률변수 $X$가 특정 값 $x$보다 크거나 같을 확률을 나타내는 함수입니다. </li>
<li>네트워크 과학에서 단어망의 연결수 분포(Degree Distribution)를 시각화할 때, 일반적인 확률밀도함수(PDF)를 사용하면 꼬리(Tail) 영역에 해당하는 거대 허브 노드들의 출현 확률이 매우 낮아 심한 노이즈가 발생합니다. </li>
<li>CCDF는 누적 확률을 사용하므로 우측 꼬리 영역의 변동성을 매끄럽게 보정(Smoothing)해 주며, 양대수(Log-Log) 스케일 상에서 헤비테일(Heavy-tail) 분포나 멱함수(Power-law)적 경향성을 시각적으로 왜곡 없이 검증하기 위한 표준 도구로 쓰입니다.</li>
</ul>
<h4 id="수학적-정의-및-수식-1">수학적 정의 및 수식</h4>
<p>확률변수 $X$의 누적분포함수를 $F(x) = P(X \le x)$라 할 때, 상보적 누적분포함수 $\bar{F}(x)$는 다음과 같이 정의됩니다.
$$\bar{F}(x) = P(X &gt; x) = 1 - F(x)$$</p>
<p>이산형 변수인 단어의 연결 차수 $k$ 분포에 대입하면, 차수가 $k$ 이상인 노드들의 누적 비율 $P(X \ge k)$는 다음과 같이 표현됩니다.
$$P(X \ge k) = \sum_{i=k}^{\infty} P(X = i)$$</p>
<p>양대수(Log-Log) 평면 상에서 CCDF 플롯을 그렸을 때 완만한 곡선을 그리며 떨어지는 양상은 로그정규(Lognormal) 분포 또는 멱함수 분포의 전형적인 기하학적 특성을 대변합니다.</p>
<h1 id="ppmi와-코사인-유사도">PPMI와 코사인 유사도</h1>
<ul>
<li>PPMI는 두 단어가 단순한 우연을 넘어 얼마나 정보이론적으로 강하게 연합되어 있는지를 측정하는 지표입니다. </li>
<li>기존의 점별 상호정보량(PMI)은 두 단어의 실제 동시출현 확률이 개별 단어의 독립 출현 확률의 곱보다 작을 때 음수($-\infty$) 값을 갖게 되는데, 이는 말뭉치가 충분치 않을 때 통계적으로 극도로 불안정한 수치를 보입니다. </li>
<li>PPMI는 이러한 음수 영역의 노이즈를 일괄적으로 0으로 수렴시켜 무의미한 우연적 공존 관계를 제거하고 실질적인 의미적 유착 관계만 보존합니다.</li>
</ul>
<h4 id="수학적-정의-및-수식-2">수학적 정의 및 수식</h4>
<p>두 단어 $w_i$와 $w_j$의 개별 출현 확률을 각각 $P(w_i)$, $P(w_j)$라 하고, 두 단어가 동일 문맥(특허 청구항 등) 내에서 동시 출현할 결합 확률을 $P(w_i, w_j)$라 할 때, PMI는 다음과 같습니다.
$$\text{PMI}(w_i, w_j) = \log_2 \frac{P(w_i, w_j)}{P(w_i)P(w_j)}$$</p>
<p>양의 상호정보량(PPMI)은 계산된 PMI 값과 0 중 최댓값을 취하는 맥스(Max) 연산으로 정의됩니다.
$$\text{PPMI}(w_i, w_j) = \max\left(\log_2 \frac{P(w_i, w_j)}{P(w_i)P(w_j)}, 0\right)$$</p>
<p>이 연산을 통해 동시 출현 빈도가 기대 이하인 무작위적 공존 관계는 원천적으로 차단됩니다.</p>
<h2 id="코사인-유사도">코사인 유사도</h2>
<ul>
<li>코사인 유사도는 다차원 벡터 공간에서 두 벡터 사이의 각도(Angle)를 측정하여 방향의 일치도를 도출하는 기법입니다. </li>
<li>의미 네트워크에서는 동시출현 빈도 자체를 엣지로 삼는 직접적 결합을 넘어, <strong>공동의 맥락을 공유하는 패러다임적 관계(Paradigmatic Relation)</strong>를 포착하기 위해 PPMI 벡터 간의 코사인 유사도를 연산합니다. </li>
<li>예를 들어 &#39;A 단어&#39;와 &#39;B 단어&#39;가 비록 같은 문장에 직접 동시출현한 적은 적더라도, 주변에 쓰이는 단어들의 패턴(맥락 행벡터)이 유사하다면 코사인 유사도는 높게 계산되어 두 단어가 의미적 유사 영역에 속함을 감지해 냅니다.</li>
</ul>
<h4 id="수학적-정의-및-수식-3">수학적 정의 및 수식</h4>
<p>$V \times V$ 차원의 PPMI 행렬에서 단어 $i$와 단어 $j$를 대변하는 문맥 행벡터를 각각 $\vec{u}<em>i$, $\vec{u}_j$라 할 때, 두 단어 사이의 코사인 유사도 $S</em>{ij}$는 다음과 같이 정의됩니다.
$$S_{ij} = \text{CosineSimilarity}(w_i, w_j) = \frac{\vec{u}<em>i \cdot \vec{u}_j}{|\vec{u}_i|_2 |\vec{u}_j|_2} = \frac{\sum</em>{k=1}^V u_{ik} u_{jk}}{\sqrt{\sum_{k=1}^V u_{ik}^2} \sqrt{\sum_{k=1}^V u_{jk}^2}}$$
<em>(여기서 $|\cdot|_2$는 벡터의 L2 노름(유클리드 길이)을 의미)</em></p>
<p>값이 1에 가까울수록 두 단어의 문맥적 분포가 동일함을 뜻하며, 0에 가까울수록 어떠한 의미적 연결 고리도 공유하지 않음을 뜻합니다.</p>
<h1 id="cs-method">cs-method</h1>
<h4 id="①-개요-및-학술적-의의">① 개요 및 학술적 의의</h4>
<ul>
<li>cs-method는 우치미 아키라 교수가 제안한 국소적 상대 임계값(Local Relative Thresholding) 필터링 기법입니다. </li>
<li>전역 임계값(Global Threshold) 방식은 빈도가 높고 사방에 연결된 단어들 중심으로만 네트워크를 조밀하게 만들고 저빈도 전문어들을 고립시키는 왜곡을 초래합니다. </li>
<li>cs-method는 각 단어의 정보 규모(맥락 유사도 합)에 맞추어 개별적으로 임계 범위를 조정하므로, 네트워크 전체의 희소성(Sparsity)을 보존하면서도 저빈도 단어의 고유한 의미론적 이웃들을 균형 있게 보존합니다.</li>
</ul>
<h4 id="②-수학적-정의-및-수식">② 수학적 정의 및 수식</h4>
<p>임의의 단어 $w_i$에 대해 사전 내 모든 단어와의 코사인 유사도 집합 $S_{ij}$를 구한 뒤, 이를 내림차순으로 정렬합니다. 단어 $w_i$가 우주 전체와 맺고 있는 총 맥락 유사도의 합 $S_i$는 다음과 같습니다.
$$S_i = \sum_{k \in V} S_{ik}$$</p>
<p>정렬된 단어들을 상위 이웃부터 순서대로 이웃 집합 $V_i^N$에 편입시키며 에지를 형성하되, 편입된 이웃들과의 유사도 누적합이 총 맥락 유사도 $S_i$의 지정된 비율 $R \in [0, 1]$을 돌파하는 지점 $m_i$에서 에지 추가를 중단합니다.
$$\frac{\sum_{j=1}^{m_i} S_{ij}}{S_i} \ge R$$</p>
<p>이 조건의 고유한 비대칭성 때문에 cs-method는 이론적으로 단방향(Directed) 관계성을 생성하며, 노드 고유의 왜곡 없는 국소 의미론을 추출해 냅니다.</p>
<h1 id="최대-신장-트리-maximum-spanning-tree-mst">최대 신장 트리 (Maximum Spanning Tree, MST)</h1>
<h4 id="①-개요-및-학술적-의의-1">① 개요 및 학술적 의의</h4>
<ul>
<li>최대 신장 트리(MST)는 그래프 이론을 기반으로, 전체 네트워크 내의 모든 노드를 단 하나의 분절이나 고립(Isolated Node) 없이 하나의 거대한 통로로 연결하면서, 에지 가중치의 합을 최대로 보존하는 순환이 없는(Acyclic) 최소 하부 그래프를 설계하는 기법입니다. </li>
<li>의미 네트워크 분석 시 임계값 조절 도중에 단어들이 외딴 섬처럼 고립되어 정보가 단절되는 구조적 붕괴를 영구적으로 방지하기 위해 사용되며, 도메인 기술의 가장 강력하고 유기적인 중심 뼈대(Semantic Spine)를 설계하는 데 특화되어 있습니다.</li>
</ul>
<h4 id="②-수학적-정의-및-수식-1">② 수학적 정의 및 수식</h4>
<ul>
<li><p>노드 집합 $V$와 에지 집합 $E$, 그리고 각 에지의 가중치 $w(e) &gt; 0$로 구성된 원본 연결망을 $G = (V, E)$라 할 때, 신장 트리(Spanning Tree) $T = (V, E_T)$는 원본 그래프의 모든 노드를 포함하되 순환(Cycle) 구조를 갖지 않는 부분 그래프입니다.</p>
</li>
<li><p>최대 신장 트리(MST)는 이 부분 그래프 $T$ 중 에지 가중치 합을 극대화하는 최적화 문제의 해로 정의됩니다.
$$\arg\max_{T} \sum_{e \in E_T} w(e)$$
$$\text{Subject to } T \text{ is a tree containing all } V$$</p>
</li>
</ul>
<p>수학적으로 Kruskal 또는 Prim 알고리즘을 변형하여 구현되며, 네트워크 연결을 $100%$ 보장하는 필수 뼈대 축으로 기능합니다.</p>
<hr>
<h1 id="7-디스패리티-필터-disparity-filter">7. 디스패리티 필터 (Disparity Filter)</h1>
<h4 id="①-개요-및-학술적-의의-2">① 개요 및 학술적 의의</h4>
<ul>
<li>디스패리티 필터는 세라노(Serrano) 등이 제안한 다중스케일 에지 희소화(Multiscale Backbone Extraction) 기법입니다. </li>
<li>글로벌 임계값을 일률적으로 적용하면 가중치 규모가 큰 강한 연결만 살아남고, 특정 하부 영역 내에서 국소적으로 매우 중요한 가교(Bridge) 역할을 하는 연결선들은 모조리 소거됩니다. </li>
<li>디스패리티 필터는 통계적 귀무가설 검정(p-value)을 통해 각 노드 관점에서 우연한 분배 수준을 벗어나는 통계적으로 유의미하게 강력한 에지만을 선택적으로 보존함으로써, 이질적인 스케일을 가진 핵심 마이너 백본(Minor Backbone)들을 온전히 살려냅니다.</li>
</ul>
<h4 id="②-수학적-정의-및-수식-2">② 수학적 정의 및 수식</h4>
<ul>
<li><p>임의의 노드 $i$가 인접한 에지들과 맺고 있는 가중치의 총합을 노드 강도 $s_i = \sum_{j} w_{ij}$라 하고, 차수를 $k_i$라 할 때, 특정 에지 $(i, j)$가 차지하는 가중치 비중은 $p_{ij} = \frac{w_{ij}}{s_i}$입니다.</p>
</li>
<li><p>귀무가설 $H_0$(&quot;노드 $i$의 강도가 $k_i$개의 에지 상에 완전히 무작위적으로 균일 분배되어 있다&quot;) 하에서, 특정 에지의 점유율이 실제 관측치 $p_{ij}$보다 크거나 같을 통계적 유의수준 $\alpha_{ij}$는 다음과 같은 누적 확률 적분식으로 계산됩니다.
$$\alpha_{ij} = \int_{p_{ij}}^1 (k_i - 1)(1 - x)^{k_i - 2} dx = (1 - p_{ij})^{k_i - 1}$$</p>
</li>
<li><p>에지의 양끝단 노드 $u$와 $v$에 대해 양쪽 관점에서의 검정값 중 어느 하나라도 사전에 지정한 유의수준 $\alpha$ (일반적으로 0.05 또는 0.01)보다 작다면, 해당 에지는 우연히 만들어진 관계가 아닌 통계적으로 유의미한 가치를 가진 결합으로 판정하여 최종 백본망에 보존합니다.
$$\min(\alpha_{uv}, \alpha_{vu}) &lt; \alpha$$</p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[검색식 작성하기]]></title>
            <link>https://velog.io/@sung-e-gkoght/%EA%B2%80%EC%83%89%EC%8B%9D-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@sung-e-gkoght/%EA%B2%80%EC%83%89%EC%8B%9D-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0</guid>
            <pubDate>Thu, 02 Jul 2026 07:57:41 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-javascript">(
  (
  &quot;NAND flash*&quot; OR &quot;vertical NAND*&quot; OR &quot;V-NAND&quot; OR &quot;VNAND&quot; OR &quot;낸드플래시&quot; OR 비휘발 OR non-volatile OR &quot;NAND&quot; OR 낸드 OR 저장장치 OR &quot;저장 엘리먼트&quot;
  )

  AND

  (
    stack* OR 스택 OR 스태킹 OR 스택한 OR 스택된 OR high-stack* OR multi-deck OR multi-layer OR 적층 OR 고단 OR 다단 OR overlap OR 오버랩 OR 겹친 OR 겹쳐 OR 중복 OR 수직 OR 다층 OR &quot;layered structure*&quot; OR &quot;multi-layer*&quot; OR &quot;three dimension*&quot; OR Layer-by-layer OR &quot;3D NAND&quot; OR &quot;삼차원 낸드&quot; OR vertical OR 수직낸드 OR GAA OR gate-all-around
  )

  AND

  (

      alignment OR 정렬 OR &quot;vertical channel&quot; OR 수직채널 OR &quot;channel hole&quot; OR 채널 ADJ2 홀 OR staircase OR 계단 OR Integrat OR double-stack* OR triple-stack* OR gate-stack*

    OR

      HAR OR high aspect ratio OR 고종횡비 OR &quot;Etching&quot; OR &quot;Etch&quot; OR &quot;에치&quot; OR &quot;에칭&quot; OR &quot;식각&quot; OR slit OR 슬릿 OR &quot;Cryogenic Etch&quot; OR &quot;Cryogenic Etching&quot; OR &quot;극저온 식각&quot; OR &quot;크라이오제닉 에치&quot; OR &quot;크라이오제닉 에칭&quot;

    OR

      &quot;Thin flim Deposition&quot; OR &quot;박막 공정&quot; OR &quot;박막 증착&quot; OR &quot;Mold Deposition&quot; OR &quot;몰드 증착&quot; OR &quot;Plasma Enhanced Chemical Vapor Deposition&quot; OR PE-CVD OR &quot;플라즈마 화학 기상 증착&quot; OR Oxide-Nitride OR 산화막-질화막 OR 옥사이드-나이트라이드 OR &quot;Blocking Oxide&quot; OR &quot;블로킹 옥사이드&quot; OR &quot;블로킹 산화막&quot; OR CTN OR &quot;Charge Trap Nitride&quot; OR &quot;차지 트랩 나이트라이드&quot; OR &quot;Tunnel Oxide&quot; OR &quot;터널 옥사이드&quot; OR &quot;터널 산화막&quot; OR &quot;Channel Poly-Si&quot; OR &quot;채널 다결정 실리콘&quot; OR &quot;Grain Boundary&quot; OR &quot;그레인 바운더리&quot; OR &quot;Core Oxide&quot; OR &quot;Sacrificial Material&quot; OR &quot;희생막&quot; OR &quot;희생물질&quot; OR &quot;Multi Level Contact&quot; OR &quot;다중 레벨 컨택트&quot; OR &quot;다중 레벨 콘택트&quot; OR &quot;멀티 레벨 컨택트&quot; OR &quot;멀티 레벨 콘택트&quot; OR &quot;Charge Trap Flash&quot; OR CTF OR &quot;차지 트랩 플래시&quot; OR &quot;Atomic Layer Deposition&quot; OR &quot;ALD&quot; OR &quot;원자층 증착&quot; OR &quot;Replacement Gate&quot; OR &quot;Gate Replacement&quot; OR &quot;게이트 치환&quot; OR Overlay OR 오버레이 OR &quot;오버레이 마크&quot;

    OR 

      &quot;BEOL&quot; OR Back-end-of-line OR Passivation OR 패시베이션 OR &quot;Word-line&quot; OR &quot;WL&quot; OR &quot;Bit-line&quot; OR &quot;BL&quot; OR &quot;워드라인&quot; OR &quot;비트라인&quot; 

    OR

    &quot;CUA&quot; OR &quot;CMOS Under the Array&quot; OR &quot;COP&quot; OR &quot;Core Over Periphery&quot; OR &quot;cell on peri&quot; OR &quot;cell under array&quot; OR &quot;cell on peripheral&quot; OR &quot;circuit under cell&quot; OR &quot;peripheral under cell&quot; OR &quot;PUC&quot;

    OR

    &quot;wafer bonding&quot; OR &quot;웨이퍼 본딩&quot; OR &quot;웨이퍼 접착&quot; OR wafer-to-wafer OR Die-to-Wafer OR WoW OR W2W OR &quot;hybrid bonding&quot; OR &quot;하이브리드 본딩&quot; OR &quot;direct bonding&quot; OR &quot;Cu-Cu bonding&quot; OR &quot;Cu-to-Cu Bonding&quot; OR &quot;구리 접합&quot; OR &quot;Cu-A Bonding&quot; OR Annealing OR 어닐링 OR &quot;Interconnection Pad&quot; OR &quot;인터커넥션 패드&quot;

  )
)
</code></pre>
<hr>
<h2 id="단어-추가-외에--의-사용-방식이나-adj2-추가-등의-기존-단어의-검색-방식을-변경중">단어 추가 외에, &quot; &quot;의 사용 방식이나 ADJ2 추가 등의 기존 단어의 검색 방식을 변경중</h2>
<pre><code class="language-javascript">(
  (
  &quot;NAND flash*&quot; OR &quot;vertical NAND*&quot; OR &quot;V-NAND&quot; OR &quot;VNAND&quot; OR &quot;낸드플래시&quot; OR 비휘발 OR non-volatile OR &quot;NAND&quot; OR 낸드 OR 저장장치 OR &quot;저장 엘리먼트&quot;
  )

  AND

  (
    stack* OR 스택 OR 스태킹 OR 스택한 OR 스택된 OR high-stack* OR multi-deck OR multi-layer OR 적층 OR 고단 OR 다단 OR overlap OR 오버랩 OR 겹친 OR 겹쳐 OR 중복 OR 수직 OR 다층 OR &quot;layered structure*&quot; OR &quot;multi-layer*&quot; OR &quot;three dimension*&quot; OR Layer-by-layer OR &quot;3D NAND&quot; OR &quot;삼차원 낸드&quot; OR vertical OR 수직낸드 OR GAA OR gate-all-around
  )

  AND

  (

      alignment OR 정렬 OR &quot;vertical channel&quot; OR 수직채널 OR &quot;channel hole&quot; OR 채널 ADJ2 홀 OR staircase OR 계단 OR Integrat OR double-stack* OR triple-stack* OR gate-stack*

    OR

      HAR OR high aspect ratio OR 고종횡비 OR &quot;Etching&quot; OR &quot;Etch&quot; OR &quot;에치&quot; OR &quot;에칭&quot; OR &quot;식각&quot; OR slit OR 슬릿 OR &quot;Cryogenic Etch&quot; OR &quot;Cryogenic Etching&quot; OR &quot;극저온 식각&quot; OR &quot;크라이오제닉 에치&quot; OR &quot;크라이오제닉 에칭&quot;

    OR

      &quot;Thin flim Deposition&quot; OR &quot;박막 공정&quot; OR &quot;박막 증착&quot; OR &quot;Mold Deposition&quot; OR &quot;몰드 증착&quot; OR&quot;Plasma Enhanced Chemical Vapor Deposition&quot; OR PE-CVD OR  &quot;플라즈마 화학 기상 증착&quot; OR Oxide-Nitride OR 산화막-질화막 OR 옥사이드-나이트라이드 OR &quot;Blocking Oxide&quot; OR &quot;블로킹 옥사이드&quot; OR &quot;블로킹 산화막&quot; OR CTN OR &quot;Charge Trap Nitride&quot; OR &quot;차지 트랩 나이트라이드&quot; OR &quot;Tunnel Oxide&quot; OR &quot;터널 옥사이드&quot; OR &quot;터널 산화막&quot; OR &quot;Channel Poly-Si&quot; OR &quot;채널 다결정 실리콘&quot; OR &quot;Grain Boundary&quot; OR &quot;그레인 바운더리&quot; OR &quot;Core Oxide&quot; OR &quot;Sacrificial Material&quot; OR &quot;희생막&quot; OR &quot;희생물질&quot; OR &quot;Multi Level Contact&quot; OR &quot;다중 레벨 컨택트&quot; OR &quot;다중 레벨 콘택트&quot; OR &quot;멀티 레벨 컨택트&quot; OR &quot;멀티 레벨 콘택트&quot; OR &quot;Charge Trap Flash&quot; OR CTF OR &quot;차지 트랩 플래시&quot; OR &quot;Atomic Layer Deposition&quot; OR &quot;ALD&quot; OR &quot;원자층 증착&quot; OR &quot;Replacement Gate&quot; OR &quot;Gate Replacement&quot; OR &quot;게이트 치환&quot; OR Overlay OR 오버레이 OR &quot;오버레이 마크&quot;



    OR 

      &quot;BEOL&quot; OR Back-end-of-line OR Passivation OR 패시베이션 OR &quot;Word-line&quot; OR &quot;WL&quot; OR &quot;Bit-line&quot; OR &quot;BL&quot; OR &quot;워드라인&quot; OR &quot;비트라인&quot; 

    OR

    &quot;CUA&quot; OR &quot;CMOS Under the Array&quot; OR &quot;COP&quot; OR &quot;Core Over Periphery&quot; OR &quot;cell on peri&quot; OR &quot;cell under array&quot; OR &quot;cell on peripheral&quot; OR &quot;circuit under cell&quot; OR &quot;peripheral under cell&quot; OR &quot;PUC&quot;

    OR

    &quot;wafer bonding&quot; OR &quot;웨이퍼 본딩&quot; OR &quot;웨이퍼 접착&quot; OR wafer-to-wafer OR Die-to-Wafer OR WoW OR W2W OR &quot;hybrid bonding&quot; OR &quot;하이브리드 본딩&quot; OR &quot;direct bonding&quot; OR &quot;Cu-Cu bonding&quot; OR &quot;Cu-to-Cu Bonding&quot; OR &quot;구리 접합&quot; OR &quot;Cu-A Bonding&quot; OR Annealing OR 어닐링 OR &quot;Interconnection Pad&quot; OR &quot;인터커넥션 패드&quot;

  )
)</code></pre>
<hr>
<h2 id="수정중">수정중</h2>
<pre><code class="language-javascript">(
  (
  &quot;NAND flash*&quot; OR &quot;vertical NAND*&quot; OR &quot;V-NAND&quot; OR &quot;VNAND&quot; OR &quot;낸드플래시&quot; OR 비휘발 OR non-volatile OR &quot;NAND&quot; OR 낸드 OR 저장장치 OR &quot;저장 엘리먼트&quot;
  )

  AND

  (
    stack* OR 스택 OR 스태킹 OR 스택한 OR 스택된 OR high-stack* OR multi-deck OR multi-layer OR 적층 OR 고단 OR 다단 OR overlap OR 오버랩 OR 겹친 OR 겹쳐 OR 중복 OR 수직 OR 다층 OR &quot;layered structure*&quot; OR &quot;multi-layer*&quot; OR &quot;three dimension*&quot; OR Layer-by-layer OR &quot;3D NAND&quot; OR &quot;삼차원 낸드&quot; OR vertical OR 수직낸드 OR GAA OR gate-all-around
  )

  AND

  (

      alignment OR 정렬 OR &quot;vertical channel&quot; OR 수직채널 OR &quot;channel hole&quot; OR 채널 ADJ2 홀 OR staircase OR 계단 OR Integrat OR double-stack* OR triple-stack* OR gate-stack*

    OR

      HAR OR high aspect ratio OR 고종횡비 OR &quot;Etching&quot; OR &quot;Etch&quot; OR &quot;에치&quot; OR &quot;에칭&quot; OR &quot;식각&quot; OR slit OR 슬릿 OR &quot;Cryogenic Etch&quot; OR &quot;Cryogenic Etching&quot; OR &quot;극저온 식각&quot; OR &quot;크라이오제닉 에치&quot; OR &quot;크라이오제닉 에칭&quot;

    OR

      &quot;Thin flim Deposition&quot; OR &quot;Mold Deposition&quot; OR &quot;Plasma Enhanced Chemical Vapor Deposition&quot; OR PE-CVD OR Oxide-Nitride OR  &quot;Blocking Oxide&quot; OR CTN OR &quot;Charge Trap Nitride&quot; OR &quot;Tunnel Oxide&quot; OR &quot;Channel Poly-Si&quot;  OR &quot;Grain Boundary&quot;  OR &quot;Core Oxide&quot; OR &quot;Sacrificial Material&quot; OR &quot;Multi Level Contact&quot;OR &quot;Charge Trap Flash&quot; OR CTF OR &quot;Atomic Layer Deposition&quot; OR &quot;ALD&quot; OR &quot;Replacement Gate&quot; OR &quot;Gate Replacement&quot; OR Overlay 
    OR
      &quot;박막 공정&quot; OR &quot;박막 증착&quot; OR &quot;몰드 증착&quot; OR &quot;몰드 디포지션&quot; OR &quot;플라즈마 화학 기상 증착&quot; OR 산화막-질화막 OR 옥사이드-나이트라이드 OR &quot;블로킹 옥사이드&quot; OR &quot;블로킹 산화막&quot; OR &quot;차지 트랩 질화막&quot; OR &quot;차지 트랩 나이트라이드&quot; OR &quot;터널 옥사이드&quot; OR &quot;터널 산화막&quot; OR &quot;채널 다결정 실리콘&quot; OR &quot;그레인 바운더리&quot; OR 희생막 OR 희생물질 OR &quot;다중 레벨 컨택트&quot; OR &quot;다중 레벨 콘택트&quot; OR &quot;멀티 레벨 컨택트&quot; OR &quot;멀티 레벨 콘택트&quot; OR &quot;차지 트랩 플래시&quot; OR &quot;원자층 증착&quot; OR &quot;게이트 치환&quot; OR 오버레이 OR &quot;오버레이 마크&quot;
    OR 
      박막 ADJ2 공정 OR 박막 ADJ2 증착 OR 몰드 ADJ2 증착 OR 몰드 ADJ2 디포지션 OR 플라즈마 ADJ2 화학 ADJ2 기상 ADJ2 증착 OR 산화막-질화막 OR 옥사이드-나이트라이드 OR 블로킹 ADJ2 옥사이드 OR 블로킹 ADJ2 산화막 OR 차지 ADJ2 트랩 ADJ2 질화막 OR 차지 ADJ2 트랩 ADJ2 나이트라이드 OR 터널 ADJ2 옥사이드 OR 터널 ADJ2 산화막 OR 채널 ADJ2 다결정 ADJ2 실리콘 OR 그레인 ADJ2 바운더리 OR 희생막 OR 희생물질 OR 다중 ADJ2 레벨 ADJ2 컨택트 OR 다중 ADJ2 레벨 ADJ2 콘택트 OR 멀티 ADJ2 레벨 ADJ2 컨택트 OR 멀티 ADJ2 레벨 ADJ2 콘택트 OR 차지 ADJ2 트랩 ADJ2 플래시 OR 원자층 ADJ2 증착 OR 게이트 ADJ2 치환 OR 오버레이 OR 오버레이 ADJ2 마크


    OR 

      &quot;BEOL&quot; OR Back-end-of-line OR Passivation OR 패시베이션 OR Word-line OR &quot;WL&quot; OR Bit-line OR &quot;BL&quot; OR 워드라인 OR 비트라인 

    OR

    &quot;CUA&quot; OR &quot;CMOS Under the Array&quot; OR &quot;COP&quot; OR &quot;Core Over Periphery&quot; OR &quot;cell on peri&quot; OR &quot;cell under array&quot; OR &quot;cell on peripheral&quot; OR &quot;circuit under cell&quot; OR &quot;peripheral under cell&quot; OR &quot;PUC&quot;

    OR

    &quot;wafer bonding&quot; OR bond ADJ2 wafer OR wafer-to-wafer OR Die-to-Wafer OR WoW OR W2W OR &quot;hybrid bonding&quot; OR &quot;direct bonding&quot; OR &quot;Cu-Cu bonding&quot; OR &quot;Cu-to-Cu Bonding&quot;  OR &quot;Cu-A Bonding&quot; OR Annealing  OR &quot;Interconnection Pad&quot; 
    OR
      &quot;웨이퍼 본딩&quot; OR &quot;웨이퍼 접착&quot; OR &quot;하이브리드 본딩&quot; OR &quot;구리 접합&quot; OR 어닐링 OR &quot;인터커넥션 패드&quot; OR 
    OR
       웨이퍼 ADJ2 본딩 OR 웨이퍼 ADJ2 접착 OR 하이브리드 ADJ2 본딩 OR 구리 ADJ2 접합 OR 어닐링 OR 인터커넥션 ADJ2 패드                                                             
  )
)</code></pre>
<h3 id="2364">2364</h3>
<h2 id="수정중2">수정중2</h2>
<pre><code class="language-javascript">(
  (
  &quot;NAND flash*&quot; OR 낸드플래시 OR &quot;낸드 플래시*&quot; OR 비휘발 OR non-volatile OR 저장장치 OR &quot;저장 엘리먼트&quot; OR SSD OR Solid-state-disk
  )

  AND

  (
    stack* OR 스택 OR 스태킹 OR 스택한 OR 스택된 OR high-stack* OR multi-deck OR multi-layer OR 적층 OR 고단 OR 다단 OR overlap OR 오버랩 OR 겹친 OR 겹쳐 OR 중복 OR 수직 OR 다층 OR &quot;layered structure*&quot; OR &quot;multi-layer*&quot; OR &quot;three dimension*&quot; OR Layer-by-layer OR &quot;3D NAND&quot; OR &quot;삼차원 낸드&quot; OR vertical OR 수직낸드 OR GAA OR gate-all-around OR &quot;vertical NAND*&quot;
  )

  AND

  (

      alignment OR 정렬 OR &quot;vertical channel&quot; OR 수직채널 OR &quot;channel hole&quot; OR 채널 ADJ2 홀 OR staircase OR 계단 OR Integrat OR double-stack* OR triple-stack* OR gate-stack*

    OR

      HAR OR high aspect ratio OR 고종횡비 OR &quot;Etching&quot; OR &quot;Etch&quot; OR 에치 OR 에칭 OR 식각 OR slit OR 슬릿 OR &quot;Cryogenic Etch&quot; OR &quot;Cryogenic Etching&quot; OR &quot;극저온 식각*&quot; OR &quot;크라이오제닉 에치*&quot; OR &quot;크라이오제닉 에칭*&quot;

    OR

      &quot;Thin flim Deposition&quot; OR &quot;Mold Deposition&quot; OR &quot;Plasma Enhanced Chemical Vapor Deposition&quot; OR PE-CVD OR Oxide-Nitride OR  &quot;Blocking Oxide&quot; OR CTN OR &quot;Charge Trap Nitride&quot; OR &quot;Tunnel Oxide&quot; OR &quot;Channel Poly-Si&quot;  OR &quot;Grain Boundary&quot;  OR &quot;Core Oxide&quot; OR &quot;Sacrificial Material&quot; OR &quot;Multi Level Contact&quot;OR &quot;Charge Trap Flash&quot; OR CTF OR &quot;Atomic Layer Deposition&quot; OR &quot;ALD&quot; OR &quot;Replacement Gate&quot; OR &quot;Gate Replacement&quot; OR Overlay 
    OR
      박막 ADJ2 공정 OR 박막 ADJ2 증착 OR 몰드 ADJ2 증착 OR 몰드 ADJ2 디포지션 OR 플라즈마 ADJ2 화학 ADJ2 기상 ADJ2 증착 OR 산화막-질화막 OR 옥사이드-나이트라이드 OR 블로킹 ADJ2 옥사이드 OR 블로킹 ADJ2 산화막 OR 차지 ADJ2 트랩 ADJ2 질화막 OR 차지 ADJ2 트랩 ADJ2 나이트라이드 OR 터널 ADJ2 옥사이드 OR 터널 ADJ2 산화막 OR 채널 ADJ2 다결정 ADJ2 실리콘 OR 그레인 ADJ2 바운더리 OR 희생막 OR 희생물질 OR 다중 ADJ2 레벨 ADJ2 컨택트 OR 다중 ADJ2 레벨 ADJ2 콘택트 OR 멀티 ADJ2 레벨 ADJ2 컨택트 OR 멀티 ADJ2 레벨 ADJ2 콘택트 OR 차지 ADJ2 트랩 ADJ2 플래시 OR 원자층 ADJ2 증착 OR 게이트 ADJ2 치환 OR 오버레이 OR 오버레이 ADJ2 마크


    OR 

      &quot;BEOL&quot; OR Back-end-of-line OR Passivation OR 패시베이션 OR Word-line OR &quot;WL&quot; OR Bit-line OR &quot;BL&quot; OR 워드라인 OR 비트라인 

    OR

    &quot;CUA&quot; OR &quot;CMOS Under the Array&quot; OR &quot;COP&quot; OR &quot;Core Over Periphery&quot; OR &quot;cell on peri&quot; OR &quot;cell under array&quot; OR &quot;cell on peripheral&quot; OR &quot;circuit under cell&quot; OR &quot;peripheral under cell&quot; OR &quot;PUC&quot;

    OR

    &quot;wafer bonding&quot; OR bond ADJ2 wafer OR wafer-to-wafer OR Die-to-Wafer OR WoW OR W2W OR &quot;hybrid bonding&quot;  OR &quot;direct bonding&quot; OR &quot;Cu-Cu bonding&quot; OR &quot;Cu-to-Cu Bonding&quot; OR &quot;Cu-A Bonding&quot; OR Annealing  OR &quot;Interconnection Pad&quot; 
    OR
       웨이퍼 ADJ2 본딩 OR 웨이퍼 ADJ2 접착 OR 하이브리드 ADJ2 본딩 OR 구리 ADJ2 접합 OR 어닐링 OR 인터커넥션 ADJ2 패드                                                             
  )
)</code></pre>
<h3 id="1635">1635</h3>
<h2 id="수정중3">수정중3</h2>
<pre><code class="language-javascript">(
  (
  &quot;NAND flash*&quot; OR V-NAND OR VNAND OR NAND OR 낸드 OR 낸드플래시 OR &quot;낸드 플래시*&quot; OR 비휘발 OR non-volatile OR 저장장치 OR &quot;저장 엘리먼트&quot; OR SSD OR Solid-state-disk
  )

  AND

  (
    stack* OR 스택 OR 스태킹 OR 스택한 OR 스택된 OR high-stack* OR multi-deck OR multi-layer OR 적층 OR 고단 OR 다단 OR overlap OR 오버랩 OR 겹친 OR 겹쳐 OR 중복 OR 수직 OR 다층 OR &quot;layered structure*&quot; OR &quot;multi-layer*&quot; OR &quot;three dimension*&quot; OR Layer-by-layer OR &quot;3D NAND&quot; OR &quot;삼차원 낸드&quot; OR vertical OR 수직낸드 OR GAA OR gate-all-around OR &quot;vertical NAND*&quot;
  )

  AND

  (

      alignment OR 정렬 OR &quot;vertical channel&quot; OR 수직채널 OR &quot;channel hole&quot; OR 채널 ADJ2 홀 OR staircase OR 계단 OR Integrat OR double-stack* OR triple-stack* OR gate-stack*

    OR

      HAR OR high aspect ratio OR 고종횡비 OR &quot;Etching&quot; OR &quot;Etch&quot; OR 에치 OR 에칭 OR 식각 OR slit OR 슬릿 OR &quot;Cryogenic Etch&quot; OR &quot;Cryogenic Etching&quot; OR &quot;극저온 식각*&quot; OR &quot;크라이오제닉 에치*&quot; OR &quot;크라이오제닉 에칭*&quot;

    OR

      &quot;Thin flim Deposition&quot; OR &quot;Mold Deposition&quot; OR &quot;Plasma Enhanced Chemical Vapor Deposition&quot; OR PE-CVD OR Oxide-Nitride OR  &quot;Blocking Oxide&quot; OR CTN OR &quot;Charge Trap Nitride&quot; OR &quot;Tunnel Oxide&quot; OR &quot;Channel Poly-Si&quot;  OR &quot;Grain Boundary&quot;  OR &quot;Core Oxide&quot; OR &quot;Sacrificial Material&quot; OR &quot;Multi Level Contact&quot;OR &quot;Charge Trap Flash&quot; OR CTF OR &quot;Atomic Layer Deposition&quot; OR &quot;ALD&quot; OR &quot;Replacement Gate&quot; OR &quot;Gate Replacement&quot; OR Overlay 
    OR
      박막 ADJ2 공정 OR 박막 ADJ2 증착 OR 몰드 ADJ2 증착 OR 몰드 ADJ2 디포지션 OR 플라즈마 ADJ2 화학 ADJ2 기상 ADJ2 증착 OR 산화막-질화막 OR 옥사이드-나이트라이드 OR 블로킹 ADJ2 옥사이드 OR 블로킹 ADJ2 산화막 OR 차지 ADJ2 트랩 ADJ2 질화막 OR 차지 ADJ2 트랩 ADJ2 나이트라이드 OR 터널 ADJ2 옥사이드 OR 터널 ADJ2 산화막 OR 채널 ADJ2 다결정 ADJ2 실리콘 OR 그레인 ADJ2 바운더리 OR 희생막 OR 희생물질 OR 다중 ADJ2 레벨 ADJ2 컨택트 OR 다중 ADJ2 레벨 ADJ2 콘택트 OR 멀티 ADJ2 레벨 ADJ2 컨택트 OR 멀티 ADJ2 레벨 ADJ2 콘택트 OR 차지 ADJ2 트랩 ADJ2 플래시 OR 원자층 ADJ2 증착 OR 게이트 ADJ2 치환 OR 오버레이 OR 오버레이 ADJ2 마크


    OR 

      &quot;BEOL&quot; OR Back-end-of-line OR Passivation OR 패시베이션 OR Word-line OR &quot;WL&quot; OR Bit-line OR &quot;BL&quot; OR 워드라인 OR 비트라인 

    OR

    &quot;CUA&quot; OR &quot;CMOS Under the Array&quot; OR &quot;COP&quot; OR &quot;Core Over Periphery&quot; OR &quot;cell on peri&quot; OR &quot;cell under array&quot; OR &quot;cell on peripheral&quot; OR &quot;circuit under cell&quot; OR &quot;peripheral under cell&quot; OR &quot;PUC&quot;

    OR

    &quot;wafer bonding&quot; OR bond ADJ2 wafer OR wafer-to-wafer OR Die-to-Wafer OR WoW OR W2W OR &quot;hybrid bonding&quot;  OR &quot;direct bonding&quot; OR &quot;Cu-Cu bonding&quot; OR &quot;Cu-to-Cu Bonding&quot; OR &quot;Cu-A Bonding&quot; OR Annealing  OR &quot;Interconnection Pad&quot; 
    OR
       웨이퍼 ADJ2 본딩 OR 웨이퍼 ADJ2 접착 OR 하이브리드 ADJ2 본딩 OR 구리 ADJ2 접합 OR 어닐링 OR 인터커넥션 ADJ2 패드                                                             
  )
)</code></pre>
<h3 id="2706">2706</h3>
<p>Cell Feature Size(효과가 없는 듯...), 모듈1에 <strong>Nonvolatile</strong> 추가 및 구조 변경(비휘발 주메모리 방지)</p>
<pre><code class="language-javascript">(
  (
  &quot;NAND flash*&quot; OR V-NAND OR VNAND OR NAND OR 낸드 OR 낸드플래시 OR &quot;낸드 플래시*&quot; OR 비휘발 OR (non-volatile OR Nonvolatile) NEAR5 Memory OR 저장장치 OR &quot;저장 엘리먼트*&quot; OR SSD OR Solid-state-disk
  )

  AND

  (
    stack* OR 스택 OR 스태킹 OR 스택한 OR 스택된 OR high-stack* OR multi-deck OR multi-layer OR 적층 OR 고단 OR 다단 OR overlap OR 오버랩 OR 겹친 OR 겹쳐 OR 중복 OR 수직 OR 다층 OR &quot;layered structure*&quot; OR &quot;multi-layer*&quot; OR &quot;three dimension*&quot; OR Layer-by-layer OR &quot;3D NAND&quot; OR &quot;삼차원 낸드&quot; OR vertical OR 수직낸드 OR GAA OR gate-all-around OR &quot;vertical NAND*&quot;
  )

  AND

  (

      alignment OR 정렬 OR &quot;vertical channel&quot; OR 수직채널 OR &quot;channel hole&quot; OR 채널 ADJ2 홀 OR staircase OR 계단 OR Integrat OR double-stack* OR triple-stack* OR gate-stack*

    OR

      HAR OR high aspect ratio OR 고종횡비 OR &quot;Etching&quot; OR &quot;Etch&quot; OR 에치 OR 에칭 OR 식각 OR slit OR 슬릿 OR &quot;Cryogenic Etch&quot; OR &quot;Cryogenic Etching&quot; OR &quot;극저온 식각*&quot; OR &quot;크라이오제닉 에치*&quot; OR &quot;크라이오제닉 에칭*&quot;

    OR

      &quot;Thin flim Deposition&quot; OR &quot;Mold Deposition&quot; OR &quot;Plasma Enhanced Chemical Vapor Deposition&quot; OR PE-CVD OR Oxide-Nitride OR  &quot;Blocking Oxide&quot; OR CTN OR &quot;Charge Trap Nitride&quot; OR &quot;Tunnel Oxide&quot; OR &quot;Channel Poly-Si&quot;  OR &quot;Grain Boundary&quot;  OR &quot;Core Oxide&quot; OR &quot;Sacrificial Material&quot; OR &quot;Multi Level Contact&quot;OR &quot;Charge Trap Flash&quot; OR CTF OR &quot;Atomic Layer Deposition&quot; OR &quot;ALD&quot; OR &quot;Replacement Gate&quot; OR &quot;Gate Replacement&quot; OR Overlay 
    OR
      박막 ADJ2 공정 OR 박막 ADJ2 증착 OR 몰드 ADJ2 증착 OR 몰드 ADJ2 디포지션 OR 플라즈마 ADJ2 화학 ADJ2 기상 ADJ2 증착 OR 산화막-질화막 OR 옥사이드-나이트라이드 OR 블로킹 ADJ2 옥사이드 OR 블로킹 ADJ2 산화막 OR 차지 ADJ2 트랩 ADJ2 질화막 OR 차지 ADJ2 트랩 ADJ2 나이트라이드 OR 터널 ADJ2 옥사이드 OR 터널 ADJ2 산화막 OR 채널 ADJ2 다결정 ADJ2 실리콘 OR 그레인 ADJ2 바운더리 OR 희생막 OR 희생물질 OR 다중 ADJ2 레벨 ADJ2 컨택트 OR 다중 ADJ2 레벨 ADJ2 콘택트 OR 멀티 ADJ2 레벨 ADJ2 컨택트 OR 멀티 ADJ2 레벨 ADJ2 콘택트 OR 차지 ADJ2 트랩 ADJ2 플래시 OR 원자층 ADJ2 증착 OR 게이트 ADJ2 치환 OR 오버레이 OR 오버레이 ADJ2 마크


    OR 

      &quot;BEOL&quot; OR Back-end-of-line OR Passivation OR 패시베이션 OR Word-line OR &quot;WL&quot; OR Bit-line OR &quot;BL&quot; OR 워드라인 OR 비트라인 

    OR

    &quot;CUA&quot; OR &quot;CMOS Under the Array&quot; OR &quot;COP&quot; OR &quot;Core Over Periphery&quot; OR &quot;cell on peri&quot; OR &quot;cell under array&quot; OR &quot;cell on peripheral&quot; OR &quot;circuit under cell&quot; OR &quot;peripheral under cell&quot; OR &quot;PUC&quot; OR cell NEAR2 feature NEAR2 size

    OR

    &quot;wafer bonding&quot; OR bond ADJ2 wafer OR wafer-to-wafer OR Die-to-Wafer OR WoW OR W2W OR &quot;hybrid bonding&quot;  OR &quot;direct bonding&quot; OR &quot;Cu-Cu bonding&quot; OR &quot;Cu-to-Cu Bonding&quot; OR &quot;Cu-A Bonding&quot; OR Annealing  OR &quot;Interconnection Pad&quot; 
    OR
       웨이퍼 ADJ2 본딩 OR 웨이퍼 ADJ2 접착 OR 하이브리드 ADJ2 본딩 OR 구리 ADJ2 접합 OR 어닐링 OR 인터커넥션 ADJ2 패드                                                             
  )
)</code></pre>
<h3 id="3190">3190</h3>
<h2 id="수정중4">수정중4</h2>
<p>bit-line, word-line 말고 bit line, word line 추가하기(-가 띄어쓰기 대체까지는 안 되는 모양이다), Solid State Disk도 추가(효과가 그닥..)</p>
<pre><code class="language-javascript">(
  (
  &quot;NAND flash*&quot; OR V-NAND OR VNAND OR NAND OR 낸드 OR 낸드플래시 OR &quot;낸드 플래시*&quot; OR 비휘발 OR (non-volatile OR Nonvolatile) NEAR5 Memory OR 저장장치 OR &quot;저장 엘리먼트*&quot; OR SSD OR Solid-state-disk OR &quot;Solid State Disk&quot;
  )

  AND

  (
    stack* OR 스택 OR 스태킹 OR 스택한 OR 스택된 OR high-stack* OR multi-deck OR multi-layer OR 적층 OR 고단 OR 다단 OR overlap OR 오버랩 OR 겹친 OR 겹쳐 OR 중복 OR 수직 OR 다층 OR &quot;layered structure*&quot; OR &quot;multi-layer*&quot; OR &quot;three dimension*&quot; OR Layer-by-layer OR &quot;3D NAND&quot; OR &quot;삼차원 낸드&quot; OR vertical OR 수직낸드 OR GAA OR gate-all-around OR &quot;vertical NAND*&quot;
  )

  AND

  (

      alignment OR 정렬 OR &quot;vertical channel&quot; OR 수직채널 OR &quot;channel hole&quot; OR 채널 ADJ2 홀 OR staircase OR 계단 OR Integrat OR double-stack* OR triple-stack* OR gate-stack* 

    OR

      HAR OR high aspect ratio OR 고종횡비 OR &quot;Etching&quot; OR &quot;Etch&quot; OR 에치 OR 에칭 OR 식각 OR slit OR 슬릿 OR &quot;Cryogenic Etch&quot; OR &quot;Cryogenic Etching&quot; OR &quot;극저온 식각*&quot; OR &quot;크라이오제닉 에치*&quot; OR &quot;크라이오제닉 에칭*&quot;

    OR

      &quot;Thin flim Deposition&quot; OR &quot;Mold Deposition&quot; OR &quot;Plasma Enhanced Chemical Vapor Deposition&quot; OR PE-CVD OR Oxide-Nitride OR  &quot;Blocking Oxide&quot; OR CTN OR &quot;Charge Trap Nitride&quot; OR &quot;Tunnel Oxide&quot; OR &quot;Channel Poly-Si&quot;  OR &quot;Grain Boundary&quot;  OR &quot;Core Oxide&quot; OR &quot;Sacrificial Material&quot; OR &quot;Multi Level Contact&quot;OR &quot;Charge Trap Flash&quot; OR CTF OR &quot;Atomic Layer Deposition&quot; OR &quot;ALD&quot; OR &quot;Replacement Gate&quot; OR &quot;Gate Replacement&quot; OR Overlay 
    OR
      박막 ADJ2 공정 OR 박막 ADJ2 증착 OR 몰드 ADJ2 증착 OR 몰드 ADJ2 디포지션 OR 플라즈마 ADJ2 화학 ADJ2 기상 ADJ2 증착 OR 산화막-질화막 OR 옥사이드-나이트라이드 OR 블로킹 ADJ2 옥사이드 OR 블로킹 ADJ2 산화막 OR 차지 ADJ2 트랩 ADJ2 질화막 OR 차지 ADJ2 트랩 ADJ2 나이트라이드 OR 터널 ADJ2 옥사이드 OR 터널 ADJ2 산화막 OR 채널 ADJ2 다결정 ADJ2 실리콘 OR 그레인 ADJ2 바운더리 OR 희생막 OR 희생물질 OR 다중 ADJ2 레벨 ADJ2 컨택트 OR 다중 ADJ2 레벨 ADJ2 콘택트 OR 멀티 ADJ2 레벨 ADJ2 컨택트 OR 멀티 ADJ2 레벨 ADJ2 콘택트 OR 차지 ADJ2 트랩 ADJ2 플래시 OR 원자층 ADJ2 증착 OR 게이트 ADJ2 치환 OR 오버레이 OR 오버레이 ADJ2 마크


    OR 

      &quot;BEOL&quot; OR Back-end-of-line OR &quot;Back end of line&quot; OR Passivation OR 패시베이션 OR Word-line OR &quot;Word line*&quot; OR &quot;WL&quot; OR &quot;WLs&quot; OR Bit-line OR &quot;Bit Line*&quot; OR &quot;BL&quot; or &quot;BLs&quot; OR 워드라인 OR 비트라인 

    OR

    &quot;CUA&quot; OR &quot;CMOS Under the Array&quot; OR &quot;COP&quot; OR &quot;Core Over Periphery&quot; OR &quot;cell on peri&quot; OR &quot;cell under array&quot; OR &quot;cell on peripheral&quot; OR &quot;circuit under cell&quot; OR &quot;peripheral under cell&quot; OR &quot;PUC&quot; OR cell NEAR2 feature NEAR2 size

    OR

    &quot;wafer bonding&quot; OR bond ADJ2 wafer OR wafer-to-wafer OR Die-to-Wafer OR WoW OR W2W OR &quot;hybrid bonding&quot;  OR &quot;direct bonding&quot; OR &quot;Cu-Cu bonding&quot; OR &quot;Cu-to-Cu Bonding&quot; OR &quot;Cu-A Bonding&quot; OR Annealing  OR &quot;Interconnection Pad&quot; 
    OR
       웨이퍼 ADJ2 본딩 OR 웨이퍼 ADJ2 접착 OR 하이브리드 ADJ2 본딩 OR 구리 ADJ2 접합 OR 어닐링 OR 인터커넥션 ADJ2 패드                                                             
  )
)</code></pre>
<h3 id="4071">4071</h3>
<h2 id="수정중5">수정중5</h2>
<p>ssd 삭제(인공지능 모델이나, 환경공학 등에서 겹치는 말이 꽤 있는 것 같다), 모듈2의 다층 구조에서 layer라는 키워드에 대한 구조 변경 및 모듈 3에 layer 및 Film 추가, 모듈2 vertical 삭제, 삼차원 낸드*를 삼차원으로 변경 및 3차원 등 추가</p>
<pre><code class="language-javascript">(
  (
  &quot;NAND flash*&quot; OR V-NAND OR VNAND OR NAND OR 낸드 OR 낸드플래시 OR &quot;낸드 플래시*&quot; OR 비휘발 OR (non-volatile OR Nonvolatile) NEAR5 Memory OR 저장장치 OR &quot;저장 엘리먼트*&quot; OR Solid-state-disk OR &quot;Solid State Disk&quot;
  )

  AND

  (
    stack* OR 스택 OR 스태킹 OR 스택한 OR 스택된 OR 적층 OR 고단 OR 다단 OR overlap OR 오버랩 OR 겹친 OR 겹쳐 OR 중복 OR 수직 OR 다층 OR &quot;layered structure*&quot; OR &quot;three dimension*&quot; OR Layer ADJ by ADJ layer OR &quot;3D NAND*&quot; OR 삼차원 OR 3차원 OR 수직낸드 OR GAA OR gate-all-around OR &quot;vertical NAND*&quot; 
  )

  AND

  (

      alignment OR 정렬 OR &quot;vertical channel&quot; OR 수직채널 OR &quot;channel hole&quot; OR 채널 ADJ2 홀 OR staircase OR 계단 OR Integrat OR double-stack* OR triple-stack* OR gate-stack* 

    OR

      HAR OR high aspect ratio OR 고종횡비 OR &quot;Etching&quot; OR &quot;Etch&quot; OR 에치 OR 에칭 OR 식각 OR slit OR 슬릿 OR &quot;Cryogenic Etch&quot; OR &quot;Cryogenic Etching&quot; OR &quot;극저온 식각*&quot; OR &quot;크라이오제닉 에치*&quot; OR &quot;크라이오제닉 에칭*&quot;

    OR

      Film OR Layer OR &quot;Thin flim Deposition&quot; OR &quot;Mold Deposition&quot; OR &quot;Plasma Enhanced Chemical Vapor Deposition&quot; OR PE-CVD OR Oxide-Nitride OR  &quot;Blocking Oxide&quot; OR CTN OR &quot;Charge Trap Nitride&quot; OR &quot;Tunnel Oxide&quot; OR &quot;Channel Poly-Si&quot;  OR &quot;Grain Boundary&quot;  OR &quot;Core Oxide&quot; OR &quot;Sacrificial Material&quot; OR &quot;Multi Level Contact&quot;OR &quot;Charge Trap Flash&quot; OR CTF OR &quot;Atomic Layer Deposition&quot; OR &quot;ALD&quot; OR &quot;Replacement Gate&quot; OR &quot;Gate Replacement&quot; OR Overlay 
    OR
      박막 ADJ2 공정 OR 박막 ADJ2 증착 OR 몰드 ADJ2 증착 OR 몰드 ADJ2 디포지션 OR 플라즈마 ADJ2 화학 ADJ2 기상 ADJ2 증착 OR 산화막-질화막 OR 옥사이드-나이트라이드 OR 블로킹 ADJ2 옥사이드 OR 블로킹 ADJ2 산화막 OR 차지 ADJ2 트랩 ADJ2 질화막 OR 차지 ADJ2 트랩 ADJ2 나이트라이드 OR 터널 ADJ2 옥사이드 OR 터널 ADJ2 산화막 OR 채널 ADJ2 다결정 ADJ2 실리콘 OR 그레인 ADJ2 바운더리 OR 희생막 OR 희생물질 OR 다중 ADJ2 레벨 ADJ2 컨택트 OR 다중 ADJ2 레벨 ADJ2 콘택트 OR 멀티 ADJ2 레벨 ADJ2 컨택트 OR 멀티 ADJ2 레벨 ADJ2 콘택트 OR 차지 ADJ2 트랩 ADJ2 플래시 OR 원자층 ADJ2 증착 OR 게이트 ADJ2 치환 OR 오버레이 OR 오버레이 ADJ2 마크


    OR 

      &quot;BEOL&quot; OR Back-end-of-line OR &quot;Back end of line&quot; OR Passivation OR 패시베이션 OR Word-line OR &quot;Word line*&quot; OR &quot;WL&quot; OR &quot;WLs&quot; OR Bit-line OR &quot;Bit Line*&quot; OR &quot;BL&quot; or &quot;BLs&quot; OR 워드라인 OR 비트라인 

    OR

    &quot;CUA&quot; OR &quot;CMOS Under the Array&quot; OR &quot;COP&quot; OR &quot;Core Over Periphery&quot; OR &quot;cell on peri&quot; OR &quot;cell under array&quot; OR &quot;cell on peripheral&quot; OR &quot;circuit under cell&quot; OR &quot;peripheral under cell&quot; OR &quot;PUC&quot; OR cell NEAR2 feature NEAR2 size

    OR

    &quot;wafer bonding&quot; OR bond ADJ2 wafer OR wafer-to-wafer OR Die-to-Wafer OR WoW OR W2W OR &quot;hybrid bonding&quot;  OR &quot;direct bonding&quot; OR &quot;Cu-Cu bonding&quot; OR &quot;Cu-to-Cu Bonding&quot; OR &quot;Cu-A Bonding&quot; OR Annealing  OR &quot;Interconnection Pad&quot;  
    OR
       웨이퍼 ADJ2 본딩 OR 웨이퍼 ADJ2 접착 OR 하이브리드 ADJ2 본딩 OR 구리 ADJ2 접합 OR 어닐링 OR 인터커넥션 ADJ2 패드                                                             
  )
)
</code></pre>
<h3 id="4586">4586</h3>
<h2 id="수정중6">수정중6</h2>
<p>모듈2 구조 일부 수정, 3D 및 4D를 구조에 추가, 식각 단계의 plug 추가 및 증착 단계의 유의어 및 공정 키워드(stitching) 추가, 웨이퍼 접합부에서 키워드 추가, 리소그래피 추가 layer 및 필름 제거, 유전체 관련 단어 추가</p>
<pre><code class="language-javascript">(
  (
  &quot;NAND flash*&quot; OR V-NAND OR VNAND OR NAND OR 낸드 OR 낸드플래시 OR &quot;낸드 플래시*&quot; OR 비휘발 OR (non-volatile OR Nonvolatile) NEAR5 Memory OR 저장장치 OR &quot;저장 엘리먼트*&quot; OR Solid-state-disk OR &quot;Solid State Disk&quot;
  )

  AND

  (
    stack* OR 스택 OR 스태킹 OR 스택한 OR 스택된 OR 적층 OR 고단 OR 다단 OR overlap OR 오버랩 OR 겹친 OR 겹쳐 OR 중복 OR 다층 OR &quot;layered structure*&quot; OR &quot;three dimension*&quot; OR Layer ADJ by ADJ layer OR &quot;3D NAND*&quot; OR 삼차원 OR 3차원 OR 수직 ADJ 낸드 OR GAA OR gate-all-around OR &quot;vertical NAND*&quot; OR 3D OR 4D OR 4차원 OR 사차원 OR (Multi OR Dual OR Double OR Tri) ADJ (deck OR Tier OR layer)
  )

  AND

  (

      alignment OR 정렬 OR &quot;vertical channel&quot; OR 수직채널 OR &quot;channel hole&quot; OR 채널 ADJ2 홀 OR staircase OR 계단 OR Integrat OR gate-stack* 

    OR

      HAR OR high aspect ratio OR 고종횡비 OR &quot;Etching&quot; OR &quot;Etch&quot; OR 에치 OR 에칭 OR 식각 OR slit OR 슬릿 OR &quot;Cryogenic Etch&quot; OR &quot;Cryogenic Etching&quot; OR &quot;극저온 식각*&quot; OR &quot;크라이오제닉 에치*&quot; OR &quot;크라이오제닉 에칭*&quot; OR 2-plug OR 3-plug OR &quot;2단 플러그*&quot; OR &quot;3단 플러그*&quot; OR 식각가스 OR Lithography OR 리소그래피

    OR

      dielect OR Ferroelect OR High-K OR &quot;Thin flim Deposition&quot; OR &quot;Mold Deposition&quot; OR Stitching OR &quot;Plasma Enhanced Chemical Vapor Deposition&quot; OR PE-CVD OR Oxide-Nitride OR  &quot;Blocking Oxide&quot; OR CTN OR &quot;Charge Trap Nitride&quot; OR &quot;Tunnel Oxide&quot; OR &quot;Channel Poly-Si&quot;  OR &quot;Grain Boundary&quot;  OR &quot;Core Oxide&quot; OR &quot;Sacrificial Material&quot; OR &quot;Multi Level Contact&quot;OR &quot;Charge Trap Flash&quot; OR CTF OR &quot;Atomic Layer Deposition&quot; OR &quot;ALD&quot; OR &quot;Replacement Gate&quot; OR &quot;Gate Replacement&quot; OR Overlay 
    OR
      유전층 OR 유전막 OR 유전체 OR 강유전 OR 고유전 OR 박막 ADJ2 공정 OR 박막 ADJ2 증착 OR 몰드 ADJ2 증착 OR 몰드 ADJ2 디포지션 OR 스티칭 OR 플라즈마 ADJ2 화학 ADJ2 기상 ADJ2 증착 OR 산화막-질화막 OR 옥사이드-나이트라이드 OR 블로킹 ADJ2 옥사이드 OR 블로킹 ADJ2 산화막 OR 차지 ADJ2 트랩 ADJ2 질화막 OR 차지 ADJ2 트랩 ADJ2 나이트라이드 OR 터널 ADJ2 옥사이드 OR 터널 ADJ2 산화막 OR 채널 ADJ2 다결정 ADJ2 실리콘 OR 그레인 ADJ2 바운더리 OR 희생막 OR 희생물질 OR 다중 ADJ2 레벨 ADJ2 컨택트 OR 다중 ADJ2 레벨 ADJ2 콘택트 OR 멀티 ADJ2 레벨 ADJ2 컨택트 OR 멀티 ADJ2 레벨 ADJ2 콘택트 OR 차지 ADJ2 트랩 ADJ2 플래시 OR 원자층 ADJ2 증착 OR 게이트 ADJ2 치환 OR 오버레이 OR 오버레이 ADJ2 마크


    OR 

      &quot;BEOL&quot; OR Back-end-of-line OR &quot;Back end of line&quot; OR Passivation OR 패시베이션 OR Word-line OR &quot;Word line*&quot; OR &quot;WL&quot; OR &quot;WLs&quot; OR Bit-line OR &quot;Bit Line*&quot; OR &quot;BL&quot; or &quot;BLs&quot; OR 워드라인 OR 비트라인 

    OR

    &quot;CUA&quot; OR &quot;CMOS Under the Array&quot; OR &quot;COP&quot; OR &quot;Core Over Periphery&quot; OR &quot;cell on peri&quot; OR &quot;cell under array&quot; OR &quot;cell on peripheral&quot; OR &quot;circuit under cell&quot; OR &quot;peripheral under cell&quot; OR &quot;PUC&quot; OR cell NEAR2 feature NEAR2 size OR (주변 OR 배열 OR 어레이) NEAR2 셀

    OR

    &quot;wafer bonding&quot; OR bond ADJ2 wafer OR wafer-to-wafer OR &quot;wafer to wafer&quot; OR Die-to-Wafer OR &quot;Die to wafer&quot; OR WoW OR W2W OR &quot;hybrid bonding&quot;  OR &quot;direct bonding&quot; OR &quot;Cu-Cu bonding&quot; OR &quot;Cu-to-Cu Bonding&quot; OR &quot;Cu-A Bonding&quot; OR Annealing  OR &quot;Interconnection Pad&quot; OR &quot;bonding Interface&quot; OR &quot;die stacking&quot;
    OR
       웨이퍼 ADJ2 본딩 OR 웨이퍼 ADJ2 접착 OR &quot;웨이퍼 대 웨이퍼&quot; OR &quot;다이 대 웨이퍼&quot; OR 하이브리드 ADJ2 본딩 OR 구리 ADJ2 접합 OR 어닐링 OR 인터커넥션 ADJ2 패드 OR 본딩계면 OR 다이적층                                                              
  )
)
</code></pre>
<h3 id="3844">3844</h3>
<h2 id="수정중7-구조-변경-1-near5-2or1-near5-3">수정중7: 구조 변경 (1 NEAR5 2)OR(1 NEAR5 3)</h2>
<pre><code class="language-javascript">(
  (
  &quot;NAND flash*&quot; OR V-NAND OR VNAND OR NAND OR 낸드 OR 낸드플래시 OR &quot;낸드 플래시*&quot; OR 비휘발 OR (non-volatile OR Nonvolatile) NEAR5 Memory OR 저장장치 OR &quot;저장 엘리먼트*&quot; OR Solid-state-disk OR &quot;Solid State Disk&quot;
  )

  NEAR5

  (
    stack* OR 스택 OR 스태킹 OR 스택한 OR 스택된 OR 적층 OR 고단 OR 다단 OR overlap OR 오버랩 OR 겹친 OR 겹쳐 OR 중복 OR 다층 OR &quot;layered structure*&quot; OR &quot;three dimension*&quot; OR Layer ADJ by ADJ layer OR &quot;3D NAND*&quot; OR 삼차원 OR 3차원 OR 수직 ADJ 낸드 OR GAA OR gate-all-around OR &quot;vertical NAND*&quot; OR 3D OR 4D OR 4차원 OR 사차원 OR (Multi OR Dual OR Double OR Tri) ADJ (deck OR Tier OR layer)
  )
)

OR

(
  (
  &quot;NAND flash*&quot; OR V-NAND OR VNAND OR NAND OR 낸드 OR 낸드플래시 OR &quot;낸드 플래시*&quot; OR 비휘발 OR (non-volatile OR Nonvolatile) NEAR5 Memory OR 저장장치 OR &quot;저장 엘리먼트*&quot; OR Solid-state-disk OR &quot;Solid State Disk&quot;
  )

  NEAR5

  (
      alignment OR 정렬 OR &quot;vertical channel&quot; OR 수직채널 OR &quot;channel hole&quot; OR 채널 ADJ2 홀 OR staircase OR 계단 OR Integrat OR gate-stack* 

    OR

      HAR OR high aspect ratio OR 고종횡비 OR &quot;Etching&quot; OR &quot;Etch&quot; OR 에치 OR 에칭 OR 식각 OR slit OR 슬릿 OR &quot;Cryogenic Etch&quot; OR &quot;Cryogenic Etching&quot; OR &quot;극저온 식각*&quot; OR &quot;크라이오제닉 에치*&quot; OR &quot;크라이오제닉 에칭*&quot; OR 2-plug OR 3-plug OR &quot;2단 플러그*&quot; OR &quot;3단 플러그*&quot; OR 식각가스 OR Lithography OR 리소그래피

    OR

      dielect OR Ferroelect OR High-K OR &quot;Thin flim Deposition&quot; OR &quot;Mold Deposition&quot; OR Stitching OR &quot;Plasma Enhanced Chemical Vapor Deposition&quot; OR PE-CVD OR Oxide-Nitride OR  &quot;Blocking Oxide&quot; OR CTN OR &quot;Charge Trap Nitride&quot; OR &quot;Tunnel Oxide&quot; OR &quot;Channel Poly-Si&quot;  OR &quot;Grain Boundary&quot;  OR &quot;Core Oxide&quot; OR &quot;Sacrificial Material&quot; OR &quot;Multi Level Contact&quot;OR &quot;Charge Trap Flash&quot; OR CTF OR &quot;Atomic Layer Deposition&quot; OR &quot;ALD&quot; OR &quot;Replacement Gate&quot; OR &quot;Gate Replacement&quot; OR Overlay 
    OR
      유전층 OR 유전막 OR 유전체 OR 강유전 OR 고유전 OR 박막 ADJ2 공정 OR 박막 ADJ2 증착 OR 몰드 ADJ2 증착 OR 몰드 ADJ2 디포지션 OR 스티칭 OR 플라즈마 ADJ2 화학 ADJ2 기상 ADJ2 증착 OR 산화막-질화막 OR 옥사이드-나이트라이드 OR 블로킹 ADJ2 옥사이드 OR 블로킹 ADJ2 산화막 OR 차지 ADJ2 트랩 ADJ2 질화막 OR 차지 ADJ2 트랩 ADJ2 나이트라이드 OR 터널 ADJ2 옥사이드 OR 터널 ADJ2 산화막 OR 채널 ADJ2 다결정 ADJ2 실리콘 OR 그레인 ADJ2 바운더리 OR 희생막 OR 희생물질 OR 다중 ADJ2 레벨 ADJ2 컨택트 OR 다중 ADJ2 레벨 ADJ2 콘택트 OR 멀티 ADJ2 레벨 ADJ2 컨택트 OR 멀티 ADJ2 레벨 ADJ2 콘택트 OR 차지 ADJ2 트랩 ADJ2 플래시 OR 원자층 ADJ2 증착 OR 게이트 ADJ2 치환 OR 오버레이 OR 오버레이 ADJ2 마크


    OR 

      &quot;BEOL&quot; OR Back-end-of-line OR &quot;Back end of line&quot; OR Passivation OR 패시베이션 OR Word-line OR &quot;Word line*&quot; OR &quot;WL&quot; OR &quot;WLs&quot; OR Bit-line OR &quot;Bit Line*&quot; OR &quot;BL&quot; or &quot;BLs&quot; OR 워드라인 OR 비트라인 

    OR

    &quot;CUA&quot; OR &quot;CMOS Under the Array&quot; OR &quot;COP&quot; OR &quot;Core Over Periphery&quot; OR &quot;cell on peri&quot; OR &quot;cell under array&quot; OR &quot;cell on peripheral&quot; OR &quot;circuit under cell&quot; OR &quot;peripheral under cell&quot; OR &quot;PUC&quot; OR cell NEAR2 feature NEAR2 size OR (주변 OR 배열 OR 어레이) NEAR2 셀

    OR

    &quot;wafer bonding&quot; OR bond ADJ2 wafer OR wafer-to-wafer OR &quot;wafer to wafer&quot; OR Die-to-Wafer OR &quot;Die to wafer&quot; OR WoW OR W2W OR &quot;hybrid bonding&quot;  OR &quot;direct bonding&quot; OR &quot;Cu-Cu bonding&quot; OR &quot;Cu-to-Cu Bonding&quot; OR &quot;Cu-A Bonding&quot; OR Annealing  OR &quot;Interconnection Pad&quot; OR &quot;bonding Interface&quot; OR &quot;die stacking&quot;
    OR
       웨이퍼 ADJ2 본딩 OR 웨이퍼 ADJ2 접착 OR &quot;웨이퍼 대 웨이퍼&quot; OR &quot;다이 대 웨이퍼&quot; OR 하이브리드 ADJ2 본딩 OR 구리 ADJ2 접합 OR 어닐링 OR 인터커넥션 ADJ2 패드 OR 본딩계면 OR 다이적층                                                              
  )
)</code></pre>
<h3 id="5533개가-나왔다">5533개가 나왔다</h3>
<h2 id="수정-a">수정-a</h2>
<ul>
<li>검색량을 늘리기 위해 키워드를 추가하다보니 설계-공정-소자 기술까지 포함해버렸다.</li>
<li>패키징 관련 기술들로 전체적인 수정을 해야할 것 같다.</li>
</ul>
<pre><code class="language-javascript">(
    (
        NAND ADJ2 flash OR 낸드플래시 OR 비휘발 OR &quot;non-volatile&quot; OR non-volatile OR 낸드플레쉬 OR NAND ADJ2 flash* OR NAND OR 낸드 OR 낸드 ADJ2 플래시* OR 
        (
            non-volatile OR Nonvolatile
        )
         NEAR5 Memory OR 저장장치 OR 저장 ADJ2 엘리먼트* OR Solid-state-disk OR Solid ADJ2 State ADJ2 Disk
    )
     NEAR5 
    (
        128단 OR 128층 OR 128-layer OR 128 ADJ2 tier OR high ADJ2 stack OR multi-deck OR multi-layer OR 176 ADJ2 layer OR 232 ADJ2 layer OR 적층 OR 고단 OR 다단 OR overlap OR 오버랩 OR 겹친 OR 겹쳐 OR 중복 OR 수직* OR 다층* OR layered ADJ2 structure OR 스택* OR stack* OR alignment OR vertical ADJ2 channel OR staircase OR stack* OR 스택 OR 스태킹 OR 스택한 OR 스택된 OR 수직 OR 다층 OR layered ADJ2 structure* OR three ADJ2 dimension* OR Layer ADJ by ADJ layer OR 3D ADJ2 NAND* OR 삼차원 ADJ2 낸드* OR 수직낸드 OR GAA OR gate-all-around OR vertical ADJ2 NAND*
    )
)
 OR 
(
    (
        NAND ADJ2 flash OR 낸드플래시 OR 비휘발 OR &quot;non-volatile&quot; OR non-volatile OR 낸드플레쉬 OR NAND ADJ2 flash* OR NAND OR 낸드 OR 낸드 ADJ2 플래시* OR 
        (
            non-volatile OR Nonvolatile
        )
         NEAR5 Memory OR 저장장치 OR 저장 ADJ2 엘리먼트* OR Solid-state-disk OR Solid ADJ2 State ADJ2 Disk
    )
     NEAR5 
    (
        &quot;die stacking&quot; OR &quot;stacked die&quot; OR &quot;multi-die package&quot; OR &quot;multi chip package&quot; OR MCP OR &quot;package stacking&quot; OR &quot;stacked package&quot; OR &quot;NAND package&quot; OR &quot;memory package&quot; OR &quot;thin die&quot; OR &quot;die attach&quot; OR &quot;die bonding&quot; OR &quot;wire bonding&quot; OR &quot;bonding wire&quot; OR &quot;flip chip&quot; OR &quot;connection pad&quot; OR &quot;bonding pad&quot; OR &quot;redistribution layer&quot; OR RDL OR &quot;through mold via&quot; OR TMV OR &quot;wafer bonding&quot; OR &quot;wafer-to-wafer bonding&quot; OR &quot;die-to-wafer bonding&quot; OR &quot;hybrid bonding&quot; OR &quot;direct bonding&quot; OR &quot;Cu-Cu bonding&quot; OR &quot;bonding interface&quot; OR &quot;bonding alignment&quot; OR &quot;interconnection pad&quot; OR &quot;TSV&quot; OR &quot;Through Silicon Via&quot; OR &quot;Epoxy Molding Compound&quot; OR &quot;EMC&quot; OR &quot;다이 적층&quot; OR &quot;적층 다이&quot; OR &quot;멀티 다이 패키지&quot; OR &quot;멀티칩 패키지&quot; OR &quot;패키지 적층&quot; OR &quot;적층 패키지&quot; OR &quot;낸드 패키지&quot; OR &quot;메모리 패키지&quot; OR &quot;박형 다이&quot; OR &quot;다이 접착&quot; OR &quot;다이 본딩&quot; OR &quot;와이어 본딩&quot; OR &quot;본딩 와이어&quot; OR 플립칩 OR &quot;접속 패드&quot; OR &quot;본딩 패드&quot; OR 재배선층 OR 몰드 ADJ 관통 ADJ (전극 OR 비아) OR &quot;웨이퍼 본딩&quot; OR &quot;웨이퍼 대 웨이퍼 본딩&quot; OR &quot;다이 대 웨이퍼 본딩&quot; OR &quot;하이브리드 본딩&quot; OR &quot;직접 본딩&quot; OR &quot;구리-구리 접합&quot; OR &quot;본딩 계면&quot; OR &quot;본딩 정렬&quot; OR &quot;인터커넥션 패드&quot; OR  실리콘 ADJ 관통 ADJ (전극 OR 비아) OR 에폭시 ADJ 몰딩 ADJ 컴파운드 OR &quot;die inspection&quot; OR &quot;stacked die inspection&quot; OR &quot;die crack inspection&quot; OR &quot;die shift inspection&quot; OR &quot;die alignment inspection&quot; OR &quot;bonding inspection&quot; OR &quot;bonding defect&quot; OR &quot;bonding void&quot; OR &quot;interface defect&quot; OR &quot;bonding alignment inspection&quot; OR &quot;delamination inspection&quot; OR &quot;package inspection&quot; OR &quot;package test&quot; OR &quot;package warpage inspection&quot; OR &quot;mold void inspection&quot; OR &quot;interconnect inspection&quot; OR &quot;open defect&quot; OR &quot;short defect&quot; OR &quot;electrical test&quot; OR &quot;X-ray inspection&quot; OR &quot;X-ray CT&quot; OR &quot;acoustic microscopy&quot; OR &quot;scanning acoustic microscopy&quot; OR SAM OR &quot;infrared inspection&quot; OR &quot;non-destructive inspection&quot; OR &quot;non-destructive test&quot; OR &quot;다이 검사&quot; OR &quot;적층 다이 검사&quot; OR &quot;다이 균열 검사&quot; OR &quot;다이 위치 이동 검사&quot; OR &quot;다이 정렬 검사&quot; OR &quot;본딩 검사&quot; OR &quot;접합 검사&quot; OR &quot;본딩 불량&quot; OR &quot;접합 불량&quot; OR &quot;본딩 보이드&quot; OR &quot;계면 결함&quot; OR &quot;본딩 정렬 검사&quot; OR &quot;박리 검사&quot; OR &quot;패키지 검사&quot; OR &quot;패키지 시험&quot; OR &quot;패키지 휨 검사&quot; OR &quot;몰드 보이드 검사&quot; OR &quot;접속 검사&quot; OR &quot;오픈 불량&quot; OR &quot;쇼트 불량&quot; OR &quot;전기적 검사&quot; OR &quot;X선 검사&quot; OR &quot;엑스레이 검사&quot; OR &quot;X선 CT&quot; OR &quot;초음파 현미경&quot; OR &quot;초음파 검사&quot; OR &quot;적외선 검사&quot; OR &quot;비파괴 검사&quot; OR &quot;비파괴 시험&quot;
    )
)</code></pre>
<pre><code class="language-javascript">&quot;die stacking&quot; OR &quot;stacked die&quot; OR &quot;multi chip package&quot; OR MCP OR &quot;stacked package&quot; OR &quot;NAND package&quot; OR &quot;memory package&quot; OR &quot;die attach&quot; OR &quot;메모리 패키지&quot; OR &quot;wire bonding&quot; OR &quot;bonding wire&quot; OR &quot;flip chip&quot; OR interconnection OR interconnect OR &quot;connection pad&quot; OR &quot;bonding pad&quot; OR &quot;redistribution layer&quot; OR RDL OR &quot;와이어 본딩&quot; OR 상호연결 OR 인터커넥션 OR &quot;본딩 패드&quot; OR &quot;wafer bonding&quot; OR &quot;wafer-to-wafer bonding&quot; OR &quot;hybrid bonding&quot; OR &quot;direct bonding&quot; OR &quot;bonding interface&quot; OR &quot;bonding pad&quot; OR &quot;웨이퍼 본딩&quot; OR &quot;하이브리드 본딩&quot; OR &quot;본딩 계면&quot; OR &quot;본딩 패드&quot; OR &quot;stress control&quot; OR &quot;mold warpage&quot; OR delamination OR crack OR &quot;웨이퍼 박막화&quot; OR 백그라인딩 OR &quot;박형 다이&quot; OR &quot;초박형 다이&quot; OR &quot;다이 휨&quot; OR &quot;패키지 휨&quot; OR &quot;응력 제어&quot; OR &quot;몰드 휨&quot; OR 박리 OR 균열 OR &quot;die inspection&quot; OR &quot;stacked die inspection&quot; OR &quot;die crack inspection&quot; OR &quot;die shift inspection&quot; OR &quot;die alignment inspection&quot; OR &quot;다이 검사&quot; OR &quot;적층 다이 검사&quot; OR &quot;다이 균열 검사&quot; OR &quot;다이 위치 이동 검사&quot; OR &quot;다이 정렬 검사&quot; OR &quot;bonding inspection&quot; OR &quot;bonding defect&quot; OR &quot;bonding void&quot; OR &quot;interface defect&quot; OR &quot;bonding alignment inspection&quot; OR &quot;delamination inspection&quot; OR &quot;본딩 검사&quot; OR &quot;접합 검사&quot; OR &quot;본딩 불량&quot; OR &quot;접합 불량&quot; OR &quot;본딩 보이드&quot; OR &quot;계면 결함&quot; OR &quot;본딩 정렬 검사&quot; OR &quot;박리 검사&quot; OR &quot;package inspection&quot; OR &quot;package test&quot; OR &quot;package warpage inspection&quot; OR &quot;mold void inspection&quot; OR &quot;interconnect inspection&quot; OR &quot;open defect&quot; OR &quot;short defect&quot; OR &quot;electrical test&quot; OR &quot;패키지 검사&quot; OR &quot;패키지 시험&quot; OR &quot;패키지 휨 검사&quot; OR &quot;몰드 보이드 검사&quot; OR &quot;접속 검사&quot; OR &quot;오픈 불량&quot; OR &quot;쇼트 불량&quot; OR &quot;전기적 검사&quot; OR &quot;X-ray inspection&quot; OR &quot;X-ray CT&quot; OR &quot;acoustic microscopy&quot; OR &quot;scanning acoustic microscopy&quot; OR SAM OR &quot;infrared inspection&quot; OR &quot;non-destructive inspection&quot; OR &quot;non-destructive test&quot; OR &quot;X선 검사&quot; OR &quot;엑스레이 검사&quot; OR &quot;X선 CT&quot; OR &quot;초음파 현미경&quot; OR &quot;초음파 검사&quot; OR &quot;적외선 검사&quot; OR &quot;비파괴 검사&quot; OR &quot;비파괴 시험&quot; OR 엘립소메트리 OR ellipsometry OR 리플렉토메트리 OR Reflectometry OR &quot;소나 스캔&quot; OR &quot;Sonar scan&quot; OR 인터페로메트리 OR interferometry OR OCD OR &quot;optical critical dimension&quot; OR CD-SEM OR &quot;critical dimension-scanning electron miicroscope&quot; OR XPS OR &quot;x-ray photoelectron spectroscopy&quot; OR XRF OR &quot; x-ray Fluorescence spectroscopy&quot; OR XRR OR &quot;specular x-ray reflectivity&quot; OR XRD OR &quot;x-ray diffraction&quot; OR FT-IR OR &quot;fourier transform infrared spectrometer&quot; OR Rs OR &quot;resistence of sheet&quot; OR &quot;TW 측정&quot; OR &quot;thermal wave&quot; OR &quot;박막 강도 측정&quot; OR &quot;박막 경도 측정&quot; OR &quot;휨 측정&quot; OR warpage OR &quot;BF 검사&quot; OR &quot;DF 검사&quot; OR &quot;bright field inspection&quot; OR &quot;dark field inspection&quot; OR &quot;Particle Counter&quot; OR &quot;매크로 검사&quot; OR &quot;macro inspection&quot; OR &quot;전자빔 검사&quot; OR &quot;electron beam inspection&quot; OR &quot;Package Stack&quot; OR &quot;패키지 적층 패키지&quot; OR &quot;적층 패키지&quot; OR &quot; PoP&quot; OR &quot;package on package&quot; OR &quot;칩 적층&quot; OR &quot;Chip Stack&quot; OR &quot;wire bonding&quot; OR &quot;system in package&quot; OR SiP OR SoC OR &quot;system on chip&quot; OR &quot;Chiplet&quot; OR &quot;layout&quot;)
)</code></pre>
<h1 id="최종으로-만드는-중">최종으로 만드는 중</h1>
<pre><code class="language-javascript">(
   (
      NAND*  낸드* ((non-volatile  Nonvolatile  비휘발*) AND (Memory  메모리 )) &quot;Solid State Disk*&quot;
   )
    AND
   (
      stack*  스택*  스태킹  적층*  고단*  다단*  고층*  overlap  오버랩  겹친* 겹쳐* 다층*  &quot;layered structure*&quot;  &quot;three dimension*&quot;  Layer-by-layer 3D* 삼차원*  3차원*  &quot;3 차원*&quot;  수직*  Vertical  GAA  gate-all-around  Gate ADJ All ADJ Around staircase  계단*  VNAND  V-NAND Integrat* 집적* 버티컬
   )
    AND
   (
      (Multi* Dual* Double* Tri* Quad* 멀티 듀얼 트라이 트리플 쿼드 쿼드러플) ADJ (deck Tier layer Stack Structure 덱 티어 레이어 단 스택 구조) assembly 조립 bonding 접합







      defect*  detect*  void  crack  die  Bonding   &quot;bonding interface&quot;  &quot;bonding pad&quot;  &quot;bonding wire&quot;  &quot;Chip Stack&quot;  &quot;connection pad&quot;  &quot;interconnect pad&quot;   delamination   &quot;die attach&quot;  &quot;die stacking&quot;  &quot;electrical test&quot;  &quot;electron beam inspection&quot;  ellipsometry  &quot;flip chip&quot;  interferometry  MCP  &quot;memory package&quot;  &quot;multi chip package&quot;  &quot;NAND package&quot;  &quot;non-destructive inspection&quot;  OCD  &quot;optical critical dimension&quot;  Bowing  Tapering  Tilting  &quot;package on package&quot;  &quot;package test&quot;  &quot;Particle Counter&quot;  &quot;PoP&quot;  RDL  &quot;redistribution layer&quot;  &quot;Sheet resistance&quot;  &quot;SAM&quot;  &quot;Scanning Acoustic Microscope&quot;  SiP  &quot;stacked die&quot;  &quot;stacked package&quot;  &quot;stress control&quot;  &quot;system in package&quot;  &quot;direct bonding&quot;  &quot;hybrid bonding&quot;  warpage  &quot;wire bonding&quot;  &quot;X-ray CT&quot;  &quot;x-ray diffraction&quot;  &quot;X-ray inspection&quot;  &quot;x-ray photoelectron spectroscopy&quot;  XPS  XRD  XRF  profile  결함  크랙  균열  보이드  검사  계측  (본딩  접합  접착) ADJ2 ((인터페이스  계면)  (패드  와이어  배선))  칩 ADJ2 스택  (연결  인터커넥션  상호연결) ADJ2 (패드  Aluminium  알루미늄)  박리  다이 ADJ2 (부착  접착  접합  스택  스태킹)  (직접  다이렉트  하이브리드  구리) ADJ2 (본딩  접합  접착)  (전기  일렉트릭) ADJ2 (검사  테스트  시험)  (전자  일렉트론) ADJ2 (빔  광선) ADJ2 (검사  인스펙션)  타원계측법  타원편광분석법  플립칩  간섭법  멀티 ADJ2 칩 ADJ2 패키지  다중 ADJ2 칩 ADJ2 패키지  메모리 ADJ2 패키지  낸드 ADJ2 패키지  비파괴검사  광학적 ADJ2 임계 ADJ2 치수  광학적 ADJ2 선폭 ADJ2 측정  휨  테이퍼링  틸팅  기울*  패키지 ADJ2 위 ADJ2 패키지  패키지 ADJ2 온 ADJ2 패키지  패키지 (검사  테스트  시험)  파티클 ADJ2 카운터  오염 ADJ2 물질 ADJ2 측정  재배선층  면저항  초음파 ADJ2 탐상 ADJ2 현미경  시스템 ADJ2 인 ADJ2 패키지  계면 ADJ2 결함  엑스레이*  X선*  프로파일  응력
    )
)








      OR 결함 OR 크랙 OR 균열 OR 보이드 OR 검사 OR 계측 OR (본딩 OR 접합 OR 접착) ADJ2 ((인터페이스 OR 계면) OR (패드 OR 와이어 OR 배선)) OR 칩 ADJ2 스택 OR (연결 OR 인터커넥션 OR 상호연결) ADJ2 (패드 OR Aluminium OR 알루미늄) OR 박리 OR 다이 ADJ2 (부착 OR 접착 OR 접합 OR 스택 OR 스태킹) OR (직접 OR 다이렉트 OR 하이브리드 OR 구리) ADJ2 (본딩 OR 접합 OR 접착) OR (전기 OR 일렉트릭) ADJ2 (검사 OR 테스트 OR 시험) OR (전자 OR 일렉트론) ADJ2 (빔 OR 광선) ADJ2 (검사 OR 인스펙션) OR 타원계측법 OR 타원편광분석법 OR 플립칩 OR 간섭법 OR 멀티 ADJ2 칩 ADJ2 패키지 OR 다중 ADJ2 칩 ADJ2 패키지 OR 메모리 ADJ2 패키지 OR 낸드 ADJ2 패키지 OR 비파괴검사 OR 광학적 ADJ2 임계 ADJ2 치수 OR 광학적 ADJ2 선폭 ADJ2 측정 OR 휨 OR 테이퍼링 OR 틸팅 OR 기울* OR 패키지 ADJ2 위 ADJ2 패키지 OR 패키지 ADJ2 온 ADJ2 패키지 OR 패키지 (검사 OR 테스트 OR 시험) OR 파티클 ADJ2 카운터 OR 오염 ADJ2 물질 ADJ2 측정 OR 재배선층 OR 면저항 OR 초음파 ADJ2 탐상 ADJ2 현미경 OR 시스템 ADJ2 인 ADJ2 패키지 OR 계면 ADJ2 결함 OR 엑스레이* OR X선* OR 프로파일 OR 응력
    )
)</code></pre>
<p>(본딩 OR 접합 OR 접착) ADJ2 ((인터페이스 OR 계면) OR (패드 OR 와이어 OR 배선)) OR 칩 ADJ2 스택 OR (연결 OR 인터커넥션 OR 상호연결) ADJ2 (패드 OR Aluminium OR 알루미늄) OR 크랙 OR 균열 OR 박리 OR 다이 ADJ2 (부착 OR 접착 OR 접합 OR 스택 OR 스태킹) OR (직접 OR 다이렉트 OR 하이브리드 OR 구리) ADJ2 (본딩 OR 접합 OR 접착) OR (전기 OR 일렉트릭) ADJ2 (검사 OR 테스트 OR 시험) OR (전자 OR 일렉트론) ADJ2 (빔 OR 광선) ADJ2 (검사 OR 인스펙션) OR 타원계측법 OR 타원편광분석법 OR 플립칩 OR 간섭법 OR &quot;멀티 칩 패키지&quot; OR &quot;다중 칩 패키지&quot; OR &quot;메모리 패키지&quot; OR &quot;낸드 패키지&quot; OR 비파괴검사 OR &quot;광학적 임계 치수&quot; OR &quot;광학적 선폭 측정&quot; OR 휨 OR 테이퍼링 OR 틸팅 OR 기울* OR &quot;패키지 위 패키지&quot; OR &quot;패키지 온 패키지&quot; OR 패키지 (검사 OR 테스트 OR 시험) OR &quot;파티클 카운터&quot; OR &quot;오염 물질 측정&quot; OR 재배선층 OR 면저항 OR &quot;초음파 탐상 현미경&quot; OR &quot;시스템 인 패키지&quot; OR &quot;계면 결함&quot;</p>
<p>   )
)</p>
<p>제일 간단하게</p>
<p>(낸드 AND 적층조립기술) OR (낸드 AND 3D AND 검사기술)</p>
<p>낸드 AND (적층조립기술 OR (3D AND 검사기술))</p>
<hr>
<p><code>(낸드 AND 3D AND (적층조립기술 OR 검사기술))</code></p>
<h1 id="최종">최종</h1>
<pre><code class="language-javascript">(
    NAND* 낸드* 
    (
        (
            non-volatile Nonvolatile 비휘발*
        )
         AND 
        (
            Memory 메모리
        )
    )
     &quot;NVM&quot;
)
 AND 
(
    stack* 스택* 스태킹 적층* 고단* 다단* 고층* overlap 오버랩 겹친* 겹쳐* 다층* &quot;layered structure*&quot; &quot;three dimension*&quot; Layer-by-layer 3D* 삼차원* 3차원* &quot;3 차원*&quot; 수직* Vertical GAA gate-all-around Gate ADJ All ADJ Around staircase 계단* VNAND V-NAND Integrat* 집적* 버티컬
)
 AND 
(
    (
        bonding 접착 접합 glue bond 본딩 attach 조립 어셈* assembl* die chip 다이 칩 &quot;플립칩&quot; &quot;Flip Chip&quot; packag* 패키*
    )
     OR 
    (
        defect* detect* void warpage test* inspect* delamination crack profile tilting tapering bowing necking &quot;Rs&quot; &quot;stress control&quot; ellipsometry interferometry OCD &quot;optical critical dimension&quot; &quot;Particle Counter&quot; &quot;X-ray CT&quot; &quot;SAM&quot; &quot;x-ray photoelectron spectroscopy&quot; XPS XRF XRD &quot;x-ray diffraction&quot; 검사 계측 측정 결함 휨 박리 균열 &quot;응력 제어*&quot; 타원계측법 타원편광분석법 프로파일 틸트 틸팅 보잉 네킹 테이퍼링
    )
)</code></pre>
<h1 id="최종2">최종2</h1>
<pre><code class="language-javascript">(
    NAND* 낸드* 
    (
        (
            non-volatile Nonvolatile 비휘발*
        )
         AND 
        (
            Memory 메모리
        )
    )
     &quot;NVM&quot;
)
 AND 
(
    stack* 스택* 스태킹 적층* 고단* 다단* 고층* overlap 오버랩 겹친* 겹쳐* 다층* &quot;layered structure*&quot; &quot;three dimension*&quot; Layer-by-layer 3D* 삼차원* 3차원* &quot;3 차원*&quot; 수직* Vertical GAA gate-all-around Gate ADJ All ADJ Around staircase 계단* VNAND V-NAND Integrat* 집적* 버티컬
)
 AND 
(
    (
        bonding 접착 접합 glue bond 본딩 attach 조립 어셈* assembl* die chip 다이 칩 &quot;플립칩&quot; &quot;Flip Chip&quot; packag* 패키* &quot;COP&quot; &quot;PUC&quot; &quot;Cell on Peri&quot; &quot;Peri under Cell&quot; 
    )
     OR 
    (
        defect* detect* void warpage test* inspect* delamination crack profile tilting tapering bowing necking &quot;Rs&quot; &quot;stress control&quot; ellipsometry interferometry OCD &quot;optical critical dimension&quot; &quot;Particle Counter&quot; &quot;X-ray CT&quot; &quot;SAM&quot; &quot;x-ray photoelectron spectroscopy&quot; XPS XRF XRD &quot;x-ray diffraction&quot; 검사 계측 측정 결함 휨 박리 균열 &quot;응력 제어*&quot; 타원계측법 타원편광분석법 프로파일 틸트 틸팅 보잉 네킹 테이퍼링
    )
)</code></pre>
<h1 id="최종3">최종3</h1>
<pre><code class="language-javascript">(
    (
        NAND* 낸드* 
        (
            (
                non-volatile Nonvolatile 비휘발*
            )
             NEAR5 
            (
                Memory FLASH 메모리
            )
        )
         &quot;NVM&quot;
    )
     AND 
    (
        &quot;three dimension*&quot; 3D* 삼차원* 3차원* &quot;3 차원*&quot; 수직* Vertical VNAND V-NAND Integrat* 집적* 버티컬
    )
)
 and 
(
    (
        (
            stack* 스택 적층 쌓* 스테킹 스태킹 적층 다층 multi-lay* multilay* stack* OR deck OR layer* OR tier* OR &quot;three-dimensional&quot; OR 3D OR &quot;3-dimensional&quot; OR 삼차원 OR 3차원 OR 적층* OR 스택* OR 스태킹 OR 고단* OR 다단* OR 다층* OR 고층* OR 수직* OR vertical OR overlap OR 오버랩 OR 겹친* OR staircase OR 계단* 덱*
        )

        (
            GAA 
            (
                gate ADJ2 all ADJ2 around
            )
             CTF 
            (
                charge ADJ trap ADJ 
                (
                    flash nitride
                )
            )
             &quot;Grain Boundar*&quot;
        )

        (
            (
                &quot;WL&quot; &quot;Word line*&quot; 워드라인 &quot;워드 라인*&quot; word-line 워드-라인
            )
        )

        (
            gate 게이트 door 채널-홀 채널홀 식각 에칭 etch* 
            (
                (
                    Gate 게이트
                )
                 NEAR 
                (
                    Replace* 치환
                )
            )
             Slit* 슬릿 &quot;channel hole*&quot;
        )

        (
            staircase 층구조 층계 계단*
        )

        (
            CONTACT 접촉 배선 도선 전선 케이블
        )

        (
            (
                (
                    &quot;CUA&quot; Hybrid Wafer
                )
                 NEAR3 
                (
                    bond* 본딩
                )
            )
             TSV 
            (
                through adj3 
                (
                    via electrode hole
                )
            )

            (
                관통 adj3 
                (
                    비아 전극 홀
                )
            )
             &quot;COP&quot; &quot;PUC&quot;
        )
    )
     OR 
    (


        (
            &quot;memory test&quot; OR &quot;electrical test&quot; OR &quot;wafer test&quot; OR &quot;probe test&quot; OR &quot;wafer probe&quot; OR &quot;die sort&quot; OR &quot;sort test&quot; OR &quot;final test&quot; OR &quot;device test&quot; OR &quot;test circuit&quot; OR &quot;test mode&quot; OR &quot;test pattern&quot; OR &quot;built-in self-test&quot; OR BIST OR MBIST OR &quot;self test&quot; OR &quot;test controller&quot; OR &quot;test signal&quot; OR &quot;test operation&quot; OR &quot;test method&quot; OR &quot;fail bit&quot; OR &quot;fail bit count&quot; OR FBC OR &quot;fail bit map&quot; OR &quot;bad block&quot; OR &quot;redundancy test&quot; OR &quot;repair test&quot; OR &quot;ECC test&quot; OR &quot;read margin test&quot; OR 메모리테스트 OR 전기적검사 OR 웨이퍼테스트 OR 프로브테스트 OR 테스트회로 OR memory-test Prob-test BIST
        )

        (
            program OR programming OR &quot;program operation&quot; OR read OR &quot;read operation&quot; OR erase OR &quot;erase operation&quot; OR P/E OR &quot;program erase&quot; OR &quot;program/erase&quot; OR &quot;program verify&quot; OR &quot;erase verify&quot; OR &quot;read verify&quot; OR &quot;threshold voltage&quot; OR Vth OR &quot;threshold voltage distribution&quot; OR &quot;voltage distribution&quot; OR &quot;read voltage&quot; OR &quot;program voltage&quot; OR &quot;erase voltage&quot; OR &quot;pass voltage&quot; OR &quot;verify voltage&quot; OR ISPP OR &quot;incremental step pulse programming&quot; OR &quot;program speed&quot; OR &quot;erase speed&quot; OR &quot;read disturb&quot; OR &quot;program disturb&quot; OR &quot;erase disturb&quot; OR 동작특성 OR 프로그램 OR 읽기 OR 소거 OR 문턱전압 OR Program-Read-Erase
        )

        (
            retention OR &quot;data retention&quot; OR &quot;charge retention&quot; OR &quot;retention loss&quot; OR disturb OR &quot;read disturb&quot; OR &quot;program disturb&quot; OR &quot;erase disturb&quot; OR &quot;pass disturb&quot; OR &quot;cell disturb&quot; OR endurance OR &quot;cycling endurance&quot; OR &quot;P/E cycle&quot; OR &quot;program erase cycle&quot; OR cycling OR &quot;wear out&quot; OR degradation OR &quot;threshold voltage shift&quot; OR &quot;Vth shift&quot; OR &quot;charge loss&quot; OR leakage OR &quot;trap loss&quot; OR reliability OR &quot;reliability test&quot; OR lifetime OR &quot;read stress&quot; OR &quot;program stress&quot; OR &quot;erase stress&quot; OR 보존특성 OR 리텐션 OR 디스터브 OR 내구성 OR 신뢰성 OR 열화 OR Retention 보존 유지 Disturb interfer 방해 간섭 Endurance 내구
        )

        (
            defect OR &quot;defect inspection&quot; OR inspection OR failure OR &quot;failure analysis&quot; OR &quot;fault analysis&quot; OR &quot;fail analysis&quot; OR &quot;defect analysis&quot; OR &quot;failure mechanism&quot; OR abnormality OR &quot;abnormal cell&quot; OR &quot;bad cell&quot; OR &quot;defective cell&quot; OR &quot;process defect&quot; OR &quot;structural defect&quot; OR void OR crack OR seam OR residue OR bridge OR short OR open OR &quot;leakage path&quot; OR misalignment OR &quot;overlay error&quot; OR &quot;critical defect&quot; OR &quot;yield loss&quot; OR &quot;yield analysis&quot; OR 불량 OR 결함 OR 결함검사 OR 고장분석 OR 불량분석 OR 수율 OR 누설 Defect-inspection 결함 Failure-Analysis
        )
    )
)</code></pre>
<pre><code class="language-javascript">(
   (
      (
         NAND* 낸드* 
         (
            (
               non-volatile Nonvolatile 비휘발*
            )
             NEAR5 
            (
               Memory FLASH 메모리
            )
         )
          &quot;NVM&quot;
      )
       AND 
      (
         &quot;three dimension*&quot; Layer-by-layer 3D* 삼차원* 3차원* &quot;3 차원*&quot; 수직* Vertical VNAND V-NAND Integrat* 집적* 버티컬
      )
   )
    AND 
   (
      (
         stack* OR stacking OR stacked OR &quot;stack structure&quot; OR deck OR &quot;multi-deck&quot; OR &quot;deck structure&quot; OR layer* OR layered OR &quot;layered structure&quot; OR tier* OR &quot;multi-tier&quot; OR 적층* OR 스택* OR 스태킹 OR 고단* OR 다단* OR 다층* OR 고층* OR overlap OR 오버랩 OR 겹친* OR 겹쳐* OR &quot;복수 층&quot;
      )
       OR 
      (
         &quot;word line&quot; OR word-line OR WL OR 워드라인 OR &quot;워드 라인&quot; OR gate OR &quot;gate layer&quot; OR &quot;gate electrode&quot; OR &quot;control gate&quot; OR &quot;gate stack&quot; OR &quot;gate structure&quot; OR &quot;gate material&quot; OR &quot;metal gate&quot; OR &quot;replacement gate&quot; OR &quot;gate replacement&quot; OR &quot;dummy gate&quot; OR &quot;sacrificial gate&quot; OR &quot;gate all around&quot; OR GAA OR gate-around OR &quot;select gate&quot; OR &quot;string select line&quot; OR SSL OR SGD OR &quot;ground select line&quot; OR GSL OR SGS OR &quot;tungsten gate&quot; OR &quot;conductive layer&quot; OR 전극층 OR 게이트 OR 게이트층 OR 제어게이트 OR 도전층
      )
       OR 
      (
         &quot;channel hole&quot; OR &quot;memory hole&quot; OR &quot;hole etch&quot; OR &quot;channel hole etch&quot; OR &quot;memory hole etch&quot; OR &quot;vertical hole&quot; OR &quot;high aspect ratio hole&quot; OR &quot;HAR etch&quot; OR &quot;deep hole etch&quot; OR &quot;anisotropic etch&quot; OR &quot;dry etch&quot; OR &quot;plasma etch&quot; OR &quot;reactive ion etch&quot; OR RIE OR etching OR etch* OR &quot;channel opening&quot; OR &quot;hole opening&quot; OR &quot;pillar hole&quot; OR &quot;through stack hole&quot; OR 채널홀 OR 채널-홀 OR 메모리홀 OR 식각 OR 에칭 OR 고종횡비 OR 플라즈마식각
      )
       OR 
      (
         staircase OR stair-case OR &quot;stair step&quot; OR &quot;step structure&quot; OR &quot;stepped structure&quot; OR stepwise OR terrace OR &quot;terrace structure&quot; OR &quot;landing pad&quot; OR &quot;contact pad&quot; OR &quot;pad region&quot; OR &quot;staircase region&quot; OR &quot;step region&quot; OR &quot;word line staircase&quot; OR &quot;deck staircase&quot; OR &quot;staircase etch&quot; OR &quot;step etch&quot; OR trimming OR &quot;photoresist trimming&quot; OR &quot;repeated etch&quot; OR etch-back OR 층계 OR 계단 OR 계단구조 OR 층구조 OR 패드부 OR 접촉패드
      )
       OR 
      (
         bonding OR &quot;wafer bonding&quot; OR &quot;hybrid bonding&quot; OR &quot;direct bonding&quot; OR &quot;Cu bonding&quot; OR &quot;Cu-Cu bonding&quot; OR &quot;copper bonding&quot; OR &quot;metal bonding&quot; OR &quot;oxide bonding&quot; OR &quot;dielectric bonding&quot; OR &quot;face-to-face bonding&quot; OR &quot;wafer-to-wafer bonding&quot; OR &quot;die-to-wafer bonding&quot; OR &quot;chip-to-wafer bonding&quot; OR CUA OR &quot;CMOS under array&quot; OR &quot;CMOS under cell&quot; OR &quot;peripheral under cell&quot; OR &quot;peri under cell&quot; OR &quot;circuit under array&quot; OR &quot;bonding interface&quot; OR &quot;bonding pad&quot; OR &quot;interconnect bonding&quot; OR 접합 OR 웨이퍼본딩 OR 하이브리드본딩 OR 구리접합
      )
       OR 
      (
         interconnect OR wiring OR &quot;metal line&quot; OR metallization OR routing OR &quot;conductive line&quot; OR &quot;bit line&quot; OR &quot;source line&quot; OR &quot;common source line&quot; OR contact OR &quot;contact plug&quot; OR &quot;contact hole&quot; OR via OR &quot;via plug&quot; OR &quot;vertical contact&quot; OR &quot;word line contact&quot; OR &quot;bit line contact&quot; OR &quot;source contact&quot; OR &quot;drain contact&quot; OR &quot;through array contact&quot; OR TAC OR &quot;local interconnect&quot; OR &quot;contact pad&quot; OR &quot;landing pad&quot; OR &quot;tungsten plug&quot; OR &quot;metal plug&quot; OR 배선 OR 금속배선 OR 콘택트 OR 접촉홀 OR 비아 OR 플러그 OR 소스라인 OR 비트라인
      )
       OR 
      (
         &quot;memory test&quot; OR &quot;electrical test&quot; OR &quot;wafer test&quot; OR &quot;probe test&quot; OR &quot;wafer probe&quot; OR &quot;die sort&quot; OR &quot;sort test&quot; OR &quot;final test&quot; OR &quot;device test&quot; OR &quot;test circuit&quot; OR &quot;test mode&quot; OR &quot;test pattern&quot; OR &quot;built-in self-test&quot; OR BIST OR MBIST OR &quot;self test&quot; OR &quot;test controller&quot; OR &quot;test signal&quot; OR &quot;test operation&quot; OR &quot;test method&quot; OR &quot;fail bit&quot; OR &quot;fail bit count&quot; OR FBC OR &quot;fail bit map&quot; OR &quot;bad block&quot; OR &quot;redundancy test&quot; OR &quot;repair test&quot; OR &quot;ECC test&quot; OR &quot;read margin test&quot; OR 메모리테스트 OR 전기적검사 OR 웨이퍼테스트 OR 프로브테스트 OR 테스트회로
      )
       OR 
      (
         program OR programming OR &quot;program operation&quot; OR read OR &quot;read operation&quot; OR erase OR &quot;erase operation&quot; OR P/E OR &quot;program erase&quot; OR &quot;program/erase&quot; OR &quot;program verify&quot; OR &quot;erase verify&quot; OR &quot;read verify&quot; OR &quot;threshold voltage&quot; OR Vth OR &quot;threshold voltage distribution&quot; OR &quot;voltage distribution&quot; OR &quot;read voltage&quot; OR &quot;program voltage&quot; OR &quot;erase voltage&quot; OR &quot;pass voltage&quot; OR &quot;verify voltage&quot; OR ISPP OR &quot;incremental step pulse programming&quot; OR &quot;program speed&quot; OR &quot;erase speed&quot; OR &quot;read disturb&quot; OR &quot;program disturb&quot; OR &quot;erase disturb&quot; OR 동작특성 OR 프로그램 OR 읽기 OR 소거 OR 문턱전압
      )
       OR 
      (
         retention OR &quot;data retention&quot; OR &quot;charge retention&quot; OR &quot;retention loss&quot; OR disturb OR &quot;read disturb&quot; OR &quot;program disturb&quot; OR &quot;erase disturb&quot; OR &quot;pass disturb&quot; OR &quot;cell disturb&quot; OR endurance OR &quot;cycling endurance&quot; OR &quot;P/E cycle&quot; OR &quot;program erase cycle&quot; OR cycling OR &quot;wear out&quot; OR degradation OR &quot;threshold voltage shift&quot; OR &quot;Vth shift&quot; OR &quot;charge loss&quot; OR leakage OR &quot;trap loss&quot; OR reliability OR &quot;reliability test&quot; OR lifetime OR &quot;read stress&quot; OR &quot;program stress&quot; OR &quot;erase stress&quot; OR 보존특성 OR 리텐션 OR 디스터브 OR 내구성 OR 신뢰성 OR 열화
      )
       OR 
      (
         defect OR &quot;defect inspection&quot; OR inspection OR failure OR &quot;failure analysis&quot; OR &quot;fault analysis&quot; OR &quot;fail analysis&quot; OR &quot;defect analysis&quot; OR &quot;failure mechanism&quot; OR abnormality OR &quot;abnormal cell&quot; OR &quot;bad cell&quot; OR &quot;defective cell&quot; OR &quot;process defect&quot; OR &quot;structural defect&quot; OR void OR crack OR seam OR residue OR bridge OR short OR open OR &quot;leakage path&quot; OR misalignment OR &quot;overlay error&quot; OR &quot;critical defect&quot; OR &quot;yield loss&quot; OR &quot;yield analysis&quot; OR 불량 OR 결함 OR 결함검사 OR 고장분석 OR 불량분석 OR 수율 OR 누설
      )
   )
)
 not 
(
   (
      &quot;3D NAND&quot; OR &quot;three dimensional NAND&quot; OR &quot;three-dimensional NAND&quot; OR &quot;vertical NAND&quot; OR &quot;V-NAND&quot; OR VNAND OR &quot;3D flash memory&quot; OR &quot;three dimensional flash memory&quot; OR &quot;three-dimensional flash memory&quot; OR &quot;vertical flash memory&quot; OR &quot;stacked NAND&quot; OR &quot;NAND string&quot; OR &quot;vertical string&quot; OR &quot;charge trap memory&quot; OR &quot;charge trapping memory&quot; OR BiCS OR &quot;BiCS FLASH&quot; OR &quot;replacement gate NAND&quot; OR &quot;vertical channel memory&quot; OR &quot;three dimensional memory device&quot; OR &quot;three-dimensional memory device&quot; OR &quot;3D memory device&quot; OR &quot;vertical memory device&quot; OR &quot;stacked memory device&quot; OR &quot;three dimensional semiconductor memory&quot; OR &quot;three-dimensional semiconductor memory&quot; OR &quot;three dimensional semiconductor memory device&quot; OR &quot;three-dimensional semiconductor memory device&quot; OR &quot;three dimensional semiconductor device&quot; OR &quot;three-dimensional semiconductor device&quot; OR &quot;vertical nonvolatile memory&quot; OR &quot;vertical non-volatile memory&quot; OR &quot;3D nonvolatile memory&quot; OR &quot;3D non-volatile memory&quot; OR &quot;three dimensional nonvolatile memory&quot; OR &quot;three-dimensional nonvolatile memory&quot; OR &quot;three dimensional non-volatile memory&quot; OR &quot;three-dimensional non-volatile memory&quot; OR &quot;stacked nonvolatile memory&quot; OR &quot;stacked non-volatile memory&quot; OR &quot;3차원 낸드&quot; OR &quot;3D 낸드&quot; OR &quot;수직 낸드&quot; OR 브이낸드 OR &quot;적층 낸드&quot; OR &quot;수직형 플래시&quot; OR &quot;적층형 플래시&quot; OR &quot;낸드 스트링&quot; OR &quot;수직 스트링&quot; OR &quot;전하 트랩 메모리&quot; OR &quot;3차원 메모리 장치&quot; OR &quot;수직형 메모리 장치&quot; OR &quot;적층형 메모리 장치&quot; OR &quot;3차원 반도체 메모리&quot; OR &quot;3차원 반도체 장치&quot; OR &quot;수직형 비휘발성 메모리&quot; OR &quot;3차원 비휘발성 메모리&quot; OR &quot;적층형 비휘발성 메모리&quot; OR 
      (
         (
            &quot;nonvolatile memory&quot; OR &quot;non-volatile memory&quot; OR &quot;비휘발성 메모리&quot;
         )
          AND 
         (
            NAND OR &quot;NAND flash&quot; OR &quot;3D&quot; OR &quot;three dimensional&quot; OR &quot;three-dimensional&quot; OR vertical OR &quot;vertical channel&quot; OR &quot;vertical string&quot; OR &quot;NAND string&quot; OR &quot;charge trap&quot; OR &quot;charge trapping&quot; OR &quot;word line stack&quot; OR &quot;gate stack&quot; OR staircase OR &quot;replacement gate&quot; OR &quot;memory hole&quot; OR &quot;channel hole&quot; OR &quot;selection gate&quot; OR 낸드 OR &quot;3차원&quot; OR 수직 OR &quot;수직 채널&quot; OR &quot;수직 스트링&quot; OR &quot;낸드 스트링&quot; OR &quot;전하 트랩&quot; OR 스테어케이스 OR &quot;계단 구조&quot; OR &quot;게이트 치환&quot; OR &quot;메모리홀&quot; OR &quot;채널홀&quot; OR &quot;선택게이트&quot;
         )
      )
   )
    AND 
   (
      stack OR stacked OR stacking OR layer OR layers OR tier OR tiers OR deck OR decks OR &quot;multi deck&quot; OR &quot;multi-deck&quot; OR &quot;dual deck&quot; OR &quot;triple deck&quot; OR &quot;memory stack&quot; OR &quot;cell stack&quot; OR &quot;gate stack&quot; OR &quot;word line stack&quot; OR &quot;wordline stack&quot; OR &quot;stack structure&quot; OR &quot;stacked structure&quot; OR &quot;vertical stack&quot; OR &quot;multi-layer stack&quot; OR &quot;multilayer stack&quot; OR &quot;plurality of layers&quot; OR &quot;plurality of word lines&quot; OR &quot;stacked gate electrodes&quot; OR &quot;alternating layers&quot; OR &quot;alternating stack&quot; OR &quot;oxide nitride stack&quot; OR &quot;ON stack&quot; OR &quot;oxide-nitride stack&quot; OR &quot;sacrificial layer&quot; OR &quot;sacrificial pattern&quot; OR &quot;replacement gate&quot; OR &quot;gate replacement&quot; OR staircase OR &quot;staircase structure&quot; OR &quot;step structure&quot; OR &quot;stepped structure&quot; OR &quot;terrace structure&quot; OR &quot;contact staircase&quot; OR &quot;word line contact&quot; OR &quot;WL contact&quot; OR &quot;channel hole&quot; OR &quot;memory hole&quot; OR &quot;vertical channel&quot; OR &quot;selection gate&quot; OR &quot;gate electrode&quot; OR &quot;gap fill&quot; OR liner OR &quot;seam mitigation&quot; OR fabricating OR fabrication OR manufacturing OR manufacture OR process OR etch OR etching OR &quot;dry etch&quot; OR deposition OR lithography OR patterning OR planarization OR CMP OR bonding OR inspection OR test OR testing OR metrology OR defect OR &quot;wafer bonding&quot; OR &quot;wafer-to-wafer bonding&quot; OR &quot;hybrid bonding&quot; OR &quot;direct bonding&quot; OR &quot;bonding interface&quot; OR &quot;bonding pad&quot; OR &quot;CMOS directly bonded to array&quot; OR CBA OR &quot;CMOS bonded array&quot; OR &quot;die stacking&quot; OR &quot;stacked die&quot; OR &quot;die stack&quot; OR &quot;multi-die package&quot; OR &quot;multi chip package&quot; OR MCP OR &quot;stacked package&quot; OR &quot;NAND package&quot; OR &quot;flash memory package&quot; OR &quot;memory package&quot; OR &quot;die attach&quot; OR &quot;wire bonding&quot; OR &quot;bonding wire&quot; OR &quot;flip chip&quot; OR &quot;redistribution layer&quot; OR RDL OR &quot;package test&quot; OR &quot;X-ray inspection&quot; OR &quot;X-ray CT&quot; OR &quot;scanning acoustic microscopy&quot; OR SAM OR &quot;non-destructive inspection&quot; OR warpage OR delamination OR crack OR &quot;stress control&quot; OR 적층 OR 고적층 OR 초고적층 OR 다층 OR 스택 OR &quot;메모리 스택&quot; OR &quot;셀 스택&quot; OR &quot;게이트 스택&quot; OR &quot;워드라인 스택&quot; OR멀티덱 OR 이중덱 OR &quot;계단 구조&quot; OR 스테어케이스 OR &quot;스텝 구조&quot; OR &quot;테라스 구조&quot; OR 희생층 OR &quot;교대 적층&quot; OR &quot;게이트 치환&quot; OR &quot;워드라인 접촉&quot; OR &quot;채널홀&quot; OR &quot;메모리홀&quot; OR &quot;수직 채널&quot; OR &quot;선택게이트&quot; OR &quot;갭필&quot; OR 제조 OR 공정 OR 식각 OR 건식식각 OR 증착 OR 리소그래피 OR 패터닝 OR 평탄화 OR 본딩 OR 검사 OR 계측 OR 결함 OR &quot;웨이퍼 본딩&quot; OR &quot;하이브리드 본딩&quot; OR &quot;직접 본딩&quot; OR &quot;본딩 계면&quot; OR &quot;본딩 패드&quot; OR &quot;다이 적층&quot; OR &quot;칩 적층&quot; OR &quot;메모리 패키지&quot; OR &quot;다이 어태치&quot; OR &quot;와이어 본딩&quot; OR &quot;플립칩&quot; OR &quot;패키지 검사&quot; OR &quot;비파괴 검사&quot; OR 휨 OR 박리 OR 균열 OR &quot;응력 제어&quot;
   )
    NOT 
   (
      firmware OR &quot;firmware verification&quot; OR &quot;secure firmware&quot; OR BMC OR &quot;baseboard management controller&quot; OR SoC OR &quot;system on chip&quot; OR sensor OR thermopile OR infrared OR vehicle OR &quot;industrial vehicle&quot; OR &quot;driver identity&quot; OR authentication OR encrypting OR encryption OR encrypted OR &quot;security processor&quot; OR &quot;photo-magnetic&quot; OR photomagnetic OR encoder OR &quot;virtual reality&quot; OR &quot;augmented reality&quot; OR rendering OR &quot;neural memory&quot; OR &quot;analog neural&quot; OR &quot;deep learning&quot; OR &quot;power management&quot; OR &quot;tiering data&quot; OR &quot;data tiering&quot; OR &quot;read frequency&quot; OR &quot;read voltage self-adaptive&quot; OR &quot;super-resolution&quot; OR &quot;image reconstruction&quot; OR &quot;static data identification&quot; OR &quot;compressed storage&quot; OR &quot;terahertz&quot; OR &quot;BIC super-surface&quot; OR &quot;super-surface filter&quot; OR &quot;computational storage&quot; OR &quot;DiskANN&quot; OR &quot;target object&quot; OR &quot;3D control model&quot; OR &quot;marine organism&quot; OR &quot;organism classification&quot; OR &quot;neural network&quot; OR &quot;programmable logic IC&quot; OR &quot;logic drive&quot; OR &quot;DRAM + NAND&quot; OR &quot;DRAM-NAND&quot; OR &quot;high bandwidth memory&quot; OR HBM OR &quot;solid state drive&quot; OR SSD OR &quot;die collision&quot; OR &quot;NAND die collision&quot; OR &quot;performance optimization&quot; OR &quot;voltage regulation allocation&quot; OR &quot;erase method thereof&quot; OR &quot;operating method for memory device&quot; OR &quot;operation method thereof&quot;
   )
)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[03주차] 할당(==대입 or 지정), input( ), print( )]]></title>
            <link>https://velog.io/@sung-e-gkoght/03%EC%A3%BC%EC%B0%A8-%ED%95%A0%EB%8B%B9-%EB%8C%80%EC%9E%85-%EC%A7%80%EC%A0%95</link>
            <guid>https://velog.io/@sung-e-gkoght/03%EC%A3%BC%EC%B0%A8-%ED%95%A0%EB%8B%B9-%EB%8C%80%EC%9E%85-%EC%A7%80%EC%A0%95</guid>
            <pubDate>Wed, 30 Nov 2022 08:19:49 GMT</pubDate>
            <description><![CDATA[<h1 id="0-서론">0. 서론</h1>
<p>원래는 자료형을 이전에 따로 했어야 하지만 학회가 중간고사 이후로 시작을 한 이유로 학기가 끝날 때까지 제 시간을 맞추지 못할 것 같아서 잠시 뺐다가, 꼭 넣어야 할 것 같아서 상대적으로 양이 적은 03주차에 내용을 넣게 되었습니다.</p>
<p>이전에도 간간히 나왔지만 하나의 자료로 구성하는 게 더 좋다고 생각했습니다.</p>
<br>

<h1 id="1-assignment-할당대입">1. assignment: 할당(대입)</h1>
<p>&quot;할당&quot;이라는 말이 일상적으로 쓰는 말은 아닌데, 쉽게 생각하면 여기서는 &quot;대입&quot;과 비슷합니다.</p>
<blockquote>
<p>변수에 값을 할당(지정)한다.</p>
</blockquote>
<p><a href="https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Numeric-types#2-1-%EC%A0%95%EC%88%98%ED%98%95integer-types">Numeric types</a>에서 한 번 할당을 소개한 적이 있었는데요, &quot;=&quot;를 사용해서 표현했습니다.</p>
<p>변수라는 건 &quot;(메모리에) 값을 저장하는 공간&quot;입니다.</p>
<blockquote>
<p>변수란 값을 저장하는 공간이다.</p>
</blockquote>
<p>&quot;=&quot;은 값을 할당합니다.</p>
<pre><code>변수 = 식</code></pre><p>&quot;=&quot;의 우측에 있는 식을 먼저 계산하여 나온 값을 변수에다가 할당(대입)합니다. </p>
<pre><code class="language-python">a = &#39;a&#39;            # a == &#39;a&#39;
b = &#39;7&#39; + &#39; 5&#39;     # b == &#39;7 5&#39;
x = 1 + 2        # x == 3
y = 2            # y == 2</code></pre>
<br>



<h1 id="2-동시에-할당-값의-교환">2. 동시에 할당(+ 값의 교환)</h1>
<p>Python은 할당을 동시에 할 수 있습니다. 더하여, Python 3는 Sequence의 원소를 동시 할당으로 다른 변수에 할당 가능합니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/6b2daf57-5cae-414e-92f8-89a627b98592/image.png" alt=""></p>
<p>변수에 값을 차례대로 할당했습니다.</p>
<pre><code class="language-python">x = 1
y = 2</code></pre>
<p>위와 같다고 할 수 있습니다.
이 동시 할당이 유용한 점은 두 변수의 _값을 교환_하는 경우입니다.</p>
<br>

<p>만약 아래와 같이 한다면 어떤 문제가 발생할까요?</p>
<pre><code class="language-python">x = y
y = x</code></pre>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/374ab87d-318e-4342-ab51-00a4d864cf35/image.png" alt=""></p>
<pre><code class="language-python">x = y    # x의 값이 1에서 y(의 값)로 이미 바뀜
y = x    # 원래 생각하던 x의 값이 아니라 y(의 값)기 y에 할당</code></pre>
<p>새로운 x, y에 기존의 x,y의 값을 대입해주어야 하는데, 기존의 x값( 1 )은 이미 사라져버린 상태입니다. 
이 때문에 y에는 x값을, x에는 y값을 서로 할당해주는 방법은 더미 변수를 만드는 것입니다.</p>
<pre><code class="language-python">t = x
x = y
y = t</code></pre>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/f66dc52d-a4e7-461e-bb09-d5c5b82d5bdc/image.png" alt=""></p>
<p>기존의 x값을 변수 t에 미리 따로 저장(할당)하고, x에는 y의 값을, y에는 t(== 기존의 x값)를 할당해주면 값이 완벽히 교환된 것을 알 수 있습니다.</p>
<p><strong>위의 방법은 많은 프로그래밍 언어에서 동작합니다.</strong> (더미라고 할 수 있는) 새로운 변수를 하나 만드는 것은 어느 언어에서나 가능하기 때문입니다.</p>
<p>다만 Python에는 동시 할당을 이용해서 값을 교환할 수도 있습니다.</p>
<pre><code class="language-python">x = 1
y = 2

x,y = y,x</code></pre>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/281e0408-9cbb-4951-8840-c384673fa01a/image.png" alt=""></p>
<p>잘 작동합니다.</p>
<br>

<p>+
sequence의 값도 할당이 가능합니다. 보통 리스트나 튜플처럼 명시적인 원소를 변수에 저장할 때 사용합니다.</p>
<pre><code class="language-python">t, u, v = [1, 2, 3]

x, y, z = (4, 5, 6)        # 여기서 t,u,v와 x,y,z는 tuple로 인정받지 않습니다. </code></pre>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/7aa2fc39-d7a6-4155-a6ff-52163ea217f7/image.png" alt=""></p>
<p>원래는 list에 list, tuple에 tuple로 하는 것이 맞겠지만, Python은 이렇게만 해도 할당이 가능합니다. 주의해야 할 것은 길이가 다르면 안됩니다.</p>
<pre><code class="language-python">u, v = [1, 2, 3]
w, x, y, z = (4, 5, 6)</code></pre>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/199da765-8e4d-44f7-b247-567dac49c648/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/65da4968-880c-4b0b-afa0-389654b9aab3/image.png" alt=""></p>
<p>이런 이유로 길이가 명확하고 짧은 게 아니라면 자주 사용할 수 있을 지는 의문입니다. 대신 Sequence는 &quot;반복문&quot;에서 더 편리하게 다룰 수 있습니다.</p>
<h1 id="3-input-함수와-print-함수">3. input( )함수와 print( )함수</h1>
<p>키보드 입력과 모니터 출력을 담당하는 내장함수(built-in function)입니다. 내장함수라는 말은 Python이 이 함수를 알고 있어서 따로 작성하거나 외부에서 가져오지 않아도 문제없이 동작합니다.</p>
<p>원래는 함수 파트에서 설명할 생각이었지만, 매우 기본적인 함수이기도 하고 연습문제를 풀 때 알아야 할 점이 있기 때문입니다.</p>
<p>그리고 함수의 설명은 원래 <a href="https://docs.python.org/3.11/index.html">Python document</a>에서 보는 것이 맞지만, IDLE에서도 간단히 볼 수 있어서 IDLE를 활용했습니다.</p>
<h2 id="31---input-">3.1 - Input( )</h2>
<p>Input( ) 함수는 사용자의 키보드 입력을 받습니다. 그리고 입력 받는 데이터를 문자열(string)으로 type을 바꿔서 돌려줍니다(return).</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/3f1bc35c-6c80-4da6-9aee-d06edc842367/image.png" alt=""></p>
<p>설명을 보시면</p>
<blockquote>
<p>표준 입력으로부터 문자열을 읽는다. 뒤따라오는 개행문자는 제거한다. </p>
</blockquote>
<ul>
<li><p>표준입력 == 키보드 입력</p>
</li>
<li><p>뒤따라오는 개행문자: 입력할 때 Enter를 누르는데 이때 개행문자가 함께 전달됩니다. Input( ) 함수는 이 개행문자를 제거하고 입력값을 받는다는 의미입니다.</p>
</li>
</ul>
<pre><code class="language-python">x = input(&quot;Enter what you want&quot;)    # 괄호 안의 문자열을 화면에 출력하고 입력을 받습니다.

type(x)                                # x의 data type을 확인</code></pre>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/deb9934f-1d22-4648-be21-743bd2905f1c/image.png" alt=""></p>
<pre><code>괄호 안의 문자열을 출력하고 입력을 받는다</code></pre><p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/7dff2275-b7ab-45e7-bc07-389643cf103b/image.png" alt=""></p>
<pre><code>정수 100 입력</code></pre><p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/93c6604d-a83a-43cd-946e-df41d9eb3d71/image.png" alt=""></p>
<pre><code>x에 저장된 값의 data type을 확인해보았더니 문자열이다. </code></pre><p>입력할 때 정수 100을 입력했는데, x에 저장된 값의 data type을 확인해보니 str이라고 나옵니다. 이는 문자열이라는 뜻입니다. </p>
<p>만약 항상 정수를 입력한다고 가정했을 때 어떻게 x에 정수를 저장할 수 있을까요?</p>
<p>이때 형(type)변환을 이용합니다. <a href="https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-String-types#3-1-4-%ED%83%80%EC%9E%85-%EB%B3%80%ED%99%94%EB%A5%BC-%EC%9C%84%ED%95%9C-%EB%82%B4%EC%9E%A5%ED%95%A8%EC%88%98built-in-function">타입 변화를 위한 내장함수(built-in function)</a></p>
<pre><code class="language-python">x = int(input(&quot;What you want&quot;))

type(x)</code></pre>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/fa405601-ffd5-4dbb-b308-f5793aadac3a/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/49bcc9eb-4726-4959-b6c8-b20cb5395e44/image.png" alt=""></p>
<p>값이 int type이라는 걸 확인할 수 있습니다.</p>
<h2 id="32---print-">3.2 - print( )</h2>
<p>print( ) 함수는 기본적으로 여러 개의 인자를 출력할 수 있습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/28fff858-3eb6-4e49-b41f-8dff310f3fdc/image.png" alt=""></p>
<ul>
<li><p>value, ..., 부분에서 여러 개의 인자를 출력할 수 있다는 걸 의미합니다.</p>
</li>
<li><p>sep : 쉼표로 인자들(values)를 구분하는데, 출력할 때 인자 사이를 어떻게 출력할 지 정합니다. 즉, 쉼표를 무엇으로 출력할 지 결정하는 옵션(option)입니다. 기본값(Default)은 공백 한 칸 &quot; &quot; 입니다.</p>
</li>
<li><p>end : values 출력을 마치고 맨 끝에 출력할 내용을 결정하는 옵션(option)입니다. 기본 값은 개행문자 \n입니다. 다만 구 버전의 Python과 달리 지금은 end=&quot;&quot;(null, 아무 값도 주지 않음)로 설정해도 개행이 한 번은 무조건 됩니다. 물론 그렇게 큰 의미는 없습니다.</p>
</li>
</ul>
<pre><code class="language-python">print(&quot;중요한 것은&quot;, &quot;꺾이지 않는 마음&quot;)</code></pre>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/5833c343-6f33-4e61-81ad-402139487aa9/image.png" alt=""></p>
<p>그런데 두 문자열의 끝과 시작에 공백(&quot; &quot;)이 없었는데 출력의 결과는 이미 띄어쓰기가 적용되어 있습니다. 그리고 사실 여기서 보이지는 않지만 개행도 되어있습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/38ee8b6f-8212-4f47-a6f0-4f503a238767/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[03주차] 반복문]]></title>
            <link>https://velog.io/@sung-e-gkoght/03%EC%A3%BC%EC%B0%A8-%EB%B0%98%EB%B3%B5%EB%AC%B8</link>
            <guid>https://velog.io/@sung-e-gkoght/03%EC%A3%BC%EC%B0%A8-%EB%B0%98%EB%B3%B5%EB%AC%B8</guid>
            <pubDate>Tue, 29 Nov 2022 06:37:08 GMT</pubDate>
            <description><![CDATA[<h1 id="0-for문-while문">0. for문, while문</h1>
<p>반복문은 말 그대로 자기 내용을 반복합니다. Python의 반복문에는 두 가지 종류가 있습니다. 하나는 for문(for statement)이고, 나머지 하나는 while문(while statement)입니다. 차례로 알아보도록 하겠습니다.</p>
<br>

<p><strong>필수 자료</strong></p>
<p><a href="https://dojang.io/course/view.php?id=7">https://dojang.io/course/view.php?id=7</a></p>
<p>이 링크의 unit16, unit17를 꼭 읽어보시고 따라해보시기를 바랍니다. 
더하여, 퀴즈(16.4, 17.4)가 있는데 회원가입 하시고 수강등록 하시면 풀 수 있습니다. 꼭 풀어봐주세요:)</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/870ee2ed-1ec7-45a4-a678-d89a21f46646/image.png" alt=""></p>
<h1 id="1-for문">1. for문</h1>
<p>for문은 정해진 횟수를 반복하는 데 유용합니다. 그리고 이 for문은 이전에 배운 sequence를 이용합니다.</p>
<p><a href="https://wikidocs.net/22">https://wikidocs.net/22</a></p>
<pre><code>for 변수 in 시퀀스:
    수행할 문장1
    수행할 문장2
    ...</code></pre><p>이전에 배운 시퀀스(sequence) 타입으로는 다음 네 가지가 있습니다.</p>
<ul>
<li>문자열 </li>
<li>리스트</li>
<li>튜플</li>
<li>range</li>
</ul>
<p>하나씩 예시를 보도록 하겠습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/cc7a96aa-9ab5-4394-aae4-46b02f134efd/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/b1844916-b3d6-460e-92ce-4bb585c840de/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/7c9ca4a2-3a40-48ca-b48b-a1d2973bc457/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/cf9b9481-c0d0-40f1-a22c-7063ca0b79d6/image.png" alt=""></p>
<p>i, j, k등의 변수에 sequence의 원소가 하나씩 저장되면서 블록(block)을 실행하는 것을 알 수 있습니다.</p>
<br>


<p>여기서 가장 보편적으로 사용하는 것은 <em>range</em>입니다. 기본적으로 for문은 반복문인데, 원하는 횟수만큼 반복이 편리하고 range를 사용해도 인덱스 접근이 가능하기 때문입니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/9ebb4cd0-057a-4bb6-91f0-28264ff358d5/image.png" alt=""></p>
<p>range의 경우는 굉장히 자주 쓰입니다. range가 아래와 같이 적용됩니다.</p>
<p>변수에 range의 원소를 하나 저장하고 for문을 실행하는데, 더이상 지정할 원소가 없을 때까지 실행합니다.</p>
<pre><code class="language-python">for i in range(2,5): # for i in range(~)가 가장 일반적인 쓰임이다.
    print(i)</code></pre>
<p>일반적으로 for문은 range와 함께 _정해진 횟수를 반복_할 때 사용합니다.</p>
<p>실행 결과는 다음과 같습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/ea1902ef-8acb-440e-b256-fb77eaa5de1d/image.png" alt=""></p>
<p>보시면 i에 range(2, 5)의 원소가 저장되는 것을 볼 수 있습니다. </p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/feb172ca-c126-4505-a96c-bb49efe44bd8/image.png" alt=""></p>
<br>


<h1 id="2-while문">2. while문</h1>
<p>while문은 횟수가 정해지지 않은 반복을 수행할 때 유용합니다. 횟수는 모르지만 특정 조건을 만족할 때마다 반복하도록 합니다.</p>
<p><a href="https://wikidocs.net/21">https://wikidocs.net/21</a></p>
<pre><code>while &lt;조건식&gt;:
    &lt;수행할 문장1&gt;
    &lt;수행할 문장2&gt;
    &lt;수행할 문장3&gt;
    ...</code></pre><p>우선 조건식을 계산해서 True라면 블록(block)을 실행하고 False라면 실행하지 않습니다. True일 때 실행을 하고 나서 다시 조건식을 계산하는데, True일 때마다, 즉 False가 나오기 전까지 계속 반복합니다. </p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/2ff81cbe-286e-4376-9ce8-2b191d840a86/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/f81a5308-c54d-441e-9ffb-c4991186eb73/image.png" alt=""></p>
<ul>
<li><p>x = input( ) : input( )함수는 사용자의 입력(키보드)을 받는 함수입니다. 괄호 안에 문자열을 넣으면 해당 문자열을 출력하고 입력(키보드)을 받습니다. input( )함수는 입력된 값을 문자열로 바꿔서 돌려줍니다(return). 그리고 그 값을 x에 저장했습니다.</p>
</li>
<li><p>x = int(x) : 형(type)변환입니다. x에는 문자열이 저장되어 있는데, 아래 코드를 보면 x를 숫자와 비교(x &lt; 10)하고 있습니다. 가능하게 하려면 문자열 x를 int x로 바꿔주어야 합니다. 사용자가 숫자 형태의 문자열만 입력한다고 가정하면, 우측의 int(x)를 먼저 실행한 뒤 x에 지정합니다. </p>
</li>
<li><p>while (x &lt; 10): : x이 10보다 작으면 블록을 실행합니다. </p>
</li>
<li><p>print(x) : x를 출력합니다(모니터).</p>
</li>
<li><p>x += 1 : x = x + 1로 x에 1을 더한 뒤에 그 값을 x의 새로운 값으로 정합니다.</p>
</li>
</ul>
<p>여기서 x += 1 은 반드시 있어야 합니다. 만약 아래와 같이 조건이 코드 상에서 영원히 True라면 무한반복(infinite-loop)에 빠지게 됩니다.  </p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/ce40ceda-76eb-4401-869f-7a6f437768d9/image.png" alt=""></p>
<p>조금 극단적이지만 1이 0보다 크다는 것은 print(1)과는 전혀 무관합니다. 결국 1 &gt; 0은 영원히 True이므로 사용자가 직접 종료(Ctrl + c)하지 않는 이상 반복이 끝나지 않습니다.
위에서 x += 1이 필수인 이유도 다음과 같습니다.</p>
<h2 id="횟수가-정해지지-않은-for-횟수가-정해진-while">횟수가 정해지지 않은 for, 횟수가 정해진 while</h2>
<p>그런데 생각해보니 Python에서는 for range문의 횟수가 정해지지 않거나 while문의 횟수가 정해져도 괜찮습니다. 오히려 while은 일반적으로 횟수를 정하고 쓰는 경우도 더러 있습니다.</p>
<h3 id="횟수가-정해지지-않은-for">횟수가 정해지지 않은 for</h3>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/eab1ca54-90b8-423e-a868-c3720387bea2/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/0a603293-1c35-4fda-8857-974e131d4115/image.png" alt=""></p>
<h3 id="횟수가-정해진-while">횟수가 정해진 while</h3>
<p>while문도 for문(특히 for i in range)처럼 정해진 횟수만큼을 반복할 수 있습니다. </p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/4182cc8c-2706-4559-9453-ee140cfa8136/image.png" alt=""></p>
<ul>
<li>초기식 i를 설정 = range(start,</li>
<li>while의 조건으로 i의 범위 설정 = range(start, stop,</li>
<li>block에 i의 증감 설정 = range(start, stop, step)</li>
</ul>
<p><strong>i의 증감을 반드시 블록에 지정</strong>해주어야 합니다. 그렇지 않으면 무한반복(infinite loop)하게 됩니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[03주차] 조건문]]></title>
            <link>https://velog.io/@sung-e-gkoght/03%EC%A3%BC%EC%B0%A8-%EC%A1%B0%EA%B1%B4%EB%AC%B8</link>
            <guid>https://velog.io/@sung-e-gkoght/03%EC%A3%BC%EC%B0%A8-%EC%A1%B0%EA%B1%B4%EB%AC%B8</guid>
            <pubDate>Tue, 29 Nov 2022 01:23:46 GMT</pubDate>
            <description><![CDATA[<h1 id="0-flow-control">0. flow control</h1>
<p>프로그램에는 실행에 순서가 있습니다. Python도 보통 위에서부터 아래로, 차례대로 실행하죠. 프로그램의 실행 순서나 흐름을 flow control(또는 flow of control)이라고 합니다. Python은 순차적인 flow control을 바꾸기 위해 if문(statement)과 while 문(statement)을 제공합니다. if문은 조건문의 일종이고 while은 반복문의 일종입니다.</p>
<p>물론 반복문인 while을 flow control 변경에 사용하는 경우는 거의 없습니다. 보통은 조건문으로 해결하죠. 이 글에서 다룰 내용은 &quot;조건문이 무엇인가&quot;입니다.</p>
<h1 id="1-조건문">1. 조건문</h1>
<p>조건문이란 무엇일까요.</p>
<p>조건문은 특정 조건과 그 조건일때만 실행되는 코드를 의미합니다.</p>
<p>여기서 조건의 결과는 Boolean입니다. 만약 조건이 True라면 실행하고, False라면 실행하지 않죠. 대다수의 경우에 조건은 논리식이지만, 때때로 논리식이 아닐 수도 있기 때문에 단순히 조건이라고 하도록 하겠습니다.</p>
<p>그 조건일때만 실행되는 코드는 <strong>블록(block)</strong>입니다. 일반적으로 조건문, 반복문, 함수는 &quot; : &quot;를 사용하는데, &quot; : &quot; 를 적고 다음줄부터 코드를 작성할 때는 들여쓰기가 필요합니다. 이때 그 다음줄부터 들여쓰기가 끝날 때까지(dedent, indent의 반대) 작성되는 걸 우리는 &quot;블록(block)&quot;이라고 부릅니다.</p>
<p>Python은 &#39;만약&#39;이라는 부분을 &#39;if&#39;라는 <em>keyword</em>를 사용합니다. keyword란 이미 특정한 기능을 수행하도록 정해진 문법의 일부입니다. 이 keyword로는 변수의 이름을 정할 수 없습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/9c6c37b5-1b4c-4c8a-9670-1c840b5b13b3/image.jpeg" alt=""></p>
<p>조건문의 기본적인 형태입니다. &#39;if&#39;를 통해 a가 b보다 클 경우 a를 출력하는 조건문입니다. 조건에 맞지 않다면 블록의 내용은 넘어갑니다.
이때 a는 b보다 작기 때문에 a &gt; b는 False, print(a)는 실행되지 않습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/e52eb9c3-b7db-4e4f-ba3f-669ddb3452e5/image.jpeg" alt=""></p>
<p>이번에는 &#39;else&#39;라는 keyword를 추가했습니다. &#39;else&#39;로 서술하는 조건문은 &#39;if&#39;나 아래에서 볼 &#39;elif&#39;의 조건에 해당하지 않은 나머지 모든 경우에 대해 서술하는 조건문입니다. 기억해야 할 것은 <strong>자기 위에 있는</strong> 조건입니다.
여기서는 &#39;if&#39;의 논리식(a &gt; b)에 해당하지 않는 모든 경우가 a &lt;= b 이므로 print(a)가 성립하겠네요. 
다만 else는 &#39;그 외 나머지&#39;의 개념이기 때문이라 조건을 적지 않습니다. (#는 주석)</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/2acdb2fd-4255-4eef-be4c-2dec4d67187b/image.jpeg" alt="">
그런데 조건문을 더 세분화할 수 있습니다. &#39;elif&#39; keyword는 else와 if의 결합이라고 볼 수 있습니다. &quot;else의 경우 중에서 if의 조건에 해당하는 경우&quot;입니다. 여기서 elif 조건문은 a &gt; b가 아닌 나머지 a &lt;= b 중에서 a &lt; b인 경우일 때 print(b)가 실행되는 것입니다. 
! 그리고 여기서 else는 <strong>자기 위에 있는</strong> 모든 조건에 벗어나는 경우이므로 a &gt; b도 아니고, a &lt; b도 아닌 경우입니다. 여기서 남은 경우는 a = b 뿐이네요.</p>
<br>

<p>코드로 보면 다음과 같습니다.</p>
<pre><code class="language-python">a = 1
b = 2
if (a &gt; b):
    print(a)
elif (a &lt; b):
    print(b)
else:
    print(a)</code></pre>
<p>주의하셔야 할 것은 <strong>들여쓰기</strong>를 잘 맞춰야 합니다.</p>
<p><a href="https://wikidocs.net/20#_1">https://wikidocs.net/20#_1</a></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/f47b6a24-a03d-4896-ae7e-9eaaad02b07f/image.png" alt=""></p>
<p>위에는 블록(block)에 잘못된 들여쓰기가 없습니다. if의 블록인 print(a), elif의 블록인 print(b), print(a)의 블록인 print(a) 모두 들여쓰기가 되어 있습니다 (블록이 한 줄짜리 코드만 되는 건 아닙니다). 그리고 if, elif, else 끼리도 들여쓰기에 문제가 없습니다.</p>
<p>하지만 아래는 일정하지 못한 들여쓰기가 에러를 일으킵니다. (보통 들여쓰기는 일정하게 넣기만 하면 문제가 없습니다)</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/a3e0d05c-0cc0-44e3-93ff-676a2b7d59af/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/4e409332-725e-43b0-a39a-2431e06559ef/image.png" alt=""></p>
<p>참고로 조건문은 해당 조건에 알맞는 걸 실행하면, 다른 조건문은 확인하지 않습니다. 그림에서 elif가 맞다면 해당 내용을 실행하고 그 아래 else 조건문은 확인하지 않습니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/82bc3405-4aad-42ae-a5f8-2cde9e69fda5/image.jpeg" alt=""></p>
<h1 id="2-이중-조건문">2. 이중 조건문</h1>
<br>

<p>딱히 더 특별한 것은 없습니다. 조건문 안에 조건문이 있는 형태이기 때문입니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/105e370a-9f8c-4818-bbef-bba40d6c321e/image.png" alt=""></p>
<p>조건문의 내용으로 조건문이 있는 형태입니다. 위의 사진은 a &gt; c를 실행해서 True값이 나왔기 때문에 아래 블록을 실행하는데, 블록의 내용이 다시 조건문으로 되어 있습니다. 마찬가지로 a &gt; b이기 때문에 print(a)를 실행하고 모든 조건문(첫 번째 if가 성공, 두 번째 if가 성공)이 종료되었습니다. </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[02주차] Boolean]]></title>
            <link>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Boolean</link>
            <guid>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Boolean</guid>
            <pubDate>Mon, 21 Nov 2022 05:05:15 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/8cfa40b9-0a78-4049-b8af-f3eca92d2fb2/image.png" alt=""></p>
<h1 id="3-5-boolean">3-5. Boolean</h1>
<p>Boolean이라는 명칭은 영국의 수학자 조지 불(George boole)이 그 유래입니다. 그는 논리학에서 Boolean Algebra(불 대수)를 고안한 것으로 유명합니다. 논리학의 기본 개념인 True와 False, 우리말로 참과 거짓을 가지고 마치 수학처럼 계산할 수 있는 체계를 만든 것입니다. 그래서 프로그래밍 언어에서는 이 두 값의 type으로 boole의 이름을 따서 Boolean이라고 부릅니다. 
<br></p>
<p>물론 항상 Boolean으로 부르는 건 아니고, 보편적인 이름이 있습니다. &quot;Logical&quot;, 즉 &quot;논리&quot;가 일반적인 표현입니다. 논리식(Logical expression)나 논리 연산자(Logical operator)같이 말이죠.</p>
<ul>
<li>논리식: Logical expression &lt;=&gt; Boolean expression</li>
<li>논리 연산자: Logical operator &lt;=&gt; Boolean operator<br>

</li>
</ul>
<p>Python에서도 Boolean이 있습니다. 기본적으로 Boolean(s)은 True와 False를 대표합니다. True와 False는 Boolean Values라고 부릅니다. (프로그래밍 언어에서 Boolean Values는 사실 거의 숫자입니다.) 그리고 이와 관련해서 Boolean Values를 연산하는 방법인 &quot;Boolean Operations&quot;와 수를 비교하여 True 또는 False의 결과는 내놓는 &quot;Comparisons&quot;가 있습니다. </p>
<br>

<p>이제부터 저희가 알아볼 개념입니다.</p>
<ul>
<li>Boolean Values</li>
<li>Boolean Operations</li>
<li>Comparisons</li>
</ul>
<p>(참고로 boolean은 줄여서 bool이라고 적기 때문에 &#39;불&#39;이라고 읽으시면 될 것 같습니다:)</p>
<br>

<h2 id="3-5-1-boolean-values">3-5-1. Boolean Values</h2>
<p>사실 Boolean은 Integer의 하위 항목입니다. 이게 무슨 뜻이냐면, False는 0이고, True는 0이 아닌 값입니다. Python은 True와 False를 상수(constants)로 지정해두었습니다.</p>
<ul>
<li>True : 1</li>
<li>False: 0</li>
</ul>
<p>실제로 True와 False를 연산할 수 있습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/94d4308d-9646-4b61-abfd-a576e6771276/image.png" alt=""></p>
<p>False로 나누었더니 아예 0으로 나누는 에러가 발생했다고 말해줍니다.
보시는 것처럼, True와 False 모두 Boolean type이었는데, 묵시
type 변환때 배웠던 int( ) 함수를 이용해서 각자의 값을 확인할 수 있습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/79954fa8-7883-42d8-8d5d-9ed8aaa72c1e/image.png" alt=""></p>
<p>type 변환은 반대로도 가능합니다. Bool( ) 내장함수(built-in function)을 이용합니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/1170be81-8a02-41fd-af0f-d986ba18a72a/image.png" alt=""></p>
<p>0이 아닌 값은 True, 0인 값은 False로 바뀌는 걸 볼 수 있습니다.</p>
<br>

<p>그런데 사실 저희가 배우는 단계에서 0이냐 1이냐의 문제보단 활용이 더 중요합니다. 지금은 그렇구나 하고 넘기셔도 괜찮을 것 같아요!</p>
<br>

<h2 id="3-5-2-boolean-operations">3-5-2. Boolean Operations</h2>
<p>공식 문서에서는 세 가지 불 연산(Boolean Operations)이 존재합니다. </p>
<p>불 연산(Boolean Operations)은 불 연산자(Boolean Operators)로 표현합니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/e77038a6-8605-43ec-82ae-da23c7d2f429/image.jpeg" alt="">     </p>
<pre><code>        (precedence는 우선순위입니다. 예시로 not x and y는 (not x) and y와 같습니다.)</code></pre><br>
<br>

<ol>
<li>x <strong>and</strong> y</li>
</ol>
<blockquote>
<p>and 연산자의 <strong>모든</strong> 피연산자가 True일 때, 다음 Operation의 값은 True가 됩니다.</p>
</blockquote>
<blockquote>
<p>x가 True이고, y가 True라면 x <strong>and</strong> y는 True이다.</p>
</blockquote>
<p>이 경우 x가 True이고 y도 True일 경우 Operation이 True를 내놓습니다.</p>
<br>


<ol start="2">
<li>x <strong>or</strong> y</li>
</ol>
<blockquote>
<p>or 연산자의 피연산자 중 <strong>단 하나라도</strong> True라면, 다음 Operation의 값은 True가 됩니다.</p>
</blockquote>
<blockquote>
<p>x가 True이거나, y가 True라면 x <strong>or</strong> y는 True이다.</p>
</blockquote>
<p>이 경우 x 또는 y 중 하나라도 True일 경우 Operation이 True를 내놓습니다.</p>
<ol start="3">
<li><strong>not</strong> x</li>
</ol>
<blockquote>
<p>not 연산자의 피연산자가 False일 경우, 다음 Operation의 값은 True가 됩니다.</p>
</blockquote>
<blockquote>
<p>x를 부정했을 때 True라면 <strong>not</strong> x는 True이다.</p>
</blockquote>
<p>이 경우 x가 False일 경우 Operation이 True를 내놓습니다.</p>
<p>여기서 &quot;부정&quot;이라는 말은 이런 의미입니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/7a4daeaf-b129-45af-be6b-17426ad1990b/image.jpeg" alt=""><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/5fb6be33-7998-4847-88b8-020cbfb16145/image.jpeg" alt=""></p>
<p>일상에서 쓰는 &quot;반대&quot;와 다릅니다!</p>
<br>

<h2 id="3-5-3-comparisons">3-5-3. Comparisons</h2>
<p>Comparisons은 &quot;비교&quot;입니다. 이미 여러분이 알고 있는 개념입니다.</p>
<ul>
<li>x &lt; y : x보다 y가 크다</li>
<li>x &lt;= y: x보다 y가 크거가 같다</li>
<li>x &gt; y : x가 y보다 크다</li>
<li>x &gt;= y: x가 y보다 크거가 같다</li>
<li>x == y: x와 y가 같다</li>
<li>x != y: x와 y가 다르다</li>
</ul>
<p>위의 비교가 맞다면 True, 틀리다면 False를 내줍니다.</p>
<br>

<p>+
Boolean Operations가 일반적으로 True와 False를 가지는 x, y 간 연산이었다면,
Comparisons는 True(==1)와 False(==0)를 포함해서 비교 가능한 x, y 간 연산이 가능합니다.</p>
<ul>
<li>Boolean Operations의 x, y : 논리식</li>
<li>Comparisions의 x, y &amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp : 식</li>
<li>논리식 ⊂ 식 <ul>
<li>불 연산 Boolean Operations ⊂ 불 식 Boolean expressions == 논리식 Logical expressions</li>
</ul>
</li>
</ul>
<p>(나중에 가능하면 expression에 대해서도 자료를 올려보도록 하겠습니다ㅠ)
<br></p>
<hr>
<p>지금까지의 요약:
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/0e4e5be0-d3f7-4a75-9581-e4073c94b426/image.jpeg" alt=""></p>
<pre><code>in, not in은 아직 배우지 않는 연산자입니다.</code></pre><hr>
<br>



<h2 id="3-5-4-단축계산short-circuit-evaluation">3-5-4. 단축계산(short-circuit evaluation)</h2>
<p>단축계산은 앞부분을 보고 뒤를 더 고려할 필요 없이 계산하는 것을 말합니다. 이미 앞부분에서 답이 결정되어버리는 계산입니다.</p>
<ul>
<li>Left-to-Right: 왼쪽부터 오른쪽으로 계산</li>
<li>Right-to-Left: 오른쪽부터 왼쪽으로 계산</li>
</ul>
<p>단축계산에서 살펴볼 and, or, 그리고 Comparisons operators는 모두 Left-to-Right입니다. 인간도 그렇고, 컴퓨터도 그렇습니다. 여기서 프로그래밍 언어는 시간을 아끼고 효율적인 검증을 위해 &quot;단축계산&quot;이라는 개념을 택했습니다. (물론 논리학에도 있습니다.)</p>
<br>

<ol>
<li>and의 단축계산<blockquote>
<p>and 연산자의 <strong>모든</strong> 피연산자가 True일 때, 다음 Operation의 값은 True가 됩니다.</p>
</blockquote>
</li>
</ol>
<p>만약 다음과 같은 식이 있다고 가정해봅시다.</p>
<pre><code>w and x and y and z </code></pre><p>만약 이 경우에 z만 False이고 나머지는 모두 True였다면, 이 논리식의 결과는 False일 것입니다. 왜냐하면 and의 경우 모든 피연산자(w, x, y, z)가 True인 경우에만 연산 결과가 True이기 때문입니다.</p>
<p>그런데 만약 식을 다음과 같이 적으면 어떨까요?</p>
<pre><code>z and w and x and y</code></pre><p>왼쪽부터 차례대로 읽는데, 벌써부터 False가 나오게 됩니다. 뒤는 볼 것도 없이 이 식의 값은 False가 되겠죠.</p>
<p>and 단축연산은 다음과 같이 활용합니다.</p>
<blockquote>
<p>False가 나올 확률이 높은 논리식(z)을 왼쪽에 둔다</p>
</blockquote>
<p>이렇게 하면 불필요한 계산을 줄일 수 있습니다.</p>
<br>

<ol start="2">
<li>or의 단축계산</li>
</ol>
<blockquote>
<p>or 연산자의 피연산자 중 <strong>단 하나라도</strong> True라면, 다음 Operation의 값은 True가 됩니다.</p>
</blockquote>
<p>이번엔 논리식이 이렇게 있다고 해봅시다.</p>
<pre><code>z or w or x or y</code></pre><p>조건은 여전히 같다고 한다면(z만 False), 이 논리식의 값은 True입니다. 왜냐하면 or의 경우 피연산자(w, x, y, z) 중 단 하나라도 True라면 연산결과가 True이기 때문입니다. 여기서는 무려 세 개나 True입니다.</p>
<p>그런데 만약 이렇게 적는다면 어떨까요?</p>
<pre><code>w or x or y or z</code></pre><p>왼쪽부터 차례대로 읽는데, 처음부터 True라면 이미 True일 테니 훨씬 효율적입니다.</p>
<p>or 단축연산은 다음과 같이 활용합니다.</p>
<blockquote>
<p>True가 나올 확률이 높은 논리식(w, x, y)을 왼쪽에 둔다.</p>
</blockquote>
<br>

<ol start="3">
<li>Comparisons의 단축계산</li>
</ol>
<p>단축계산을 하려면 적어도 연산이 두 개 이상 있어야 가능하겠죠? 단축할 게 있어야 하니까요.</p>
<p>비교 연산자가 두 개 이상인 Comparisons는 사실 and 연산자를 활용하여 표현이 가능합니다.</p>
<p>예를 들어 봅시다.</p>
<pre><code>a &lt; b &lt; c</code></pre><p>그대로 읽어보면 &quot;a보다 b가 &#39;크고&#39; b보다 c가 크다&quot;입니다.</p>
<pre><code>a &lt; b and b &lt; c</code></pre><p>로 고칠 수 있는 셈이죠. 다른 경우도 마찬가지입니다.</p>
<pre><code>a &lt; b and b == c # a &lt; b == c
a != b and b &gt; c # a != b &gt; c
a &gt;= b and b &lt; c and ... # a &gt;= b and b &lt; c and ...
.
.
.</code></pre><p>이렇게 생각한다면 and에서 했던 것처럼 한다면 단축계산을 활용할 수 있습니다.</p>
<pre><code>a &lt; b &lt; c</code></pre><p>b &lt; c가 False가 나올 확률이 크다면 다음과 같이 바꾸는 거죠.</p>
<pre><code>c &gt; b &gt; a </code></pre><blockquote>
<p>False가 나올 확률이 높은 논리식(b &lt; c)을 왼쪽에 둔다</p>
</blockquote>
<p>한 번에 생각하기 어려울 수 있기 때문에 and로 쪼개서 생각한 후 나중에 다시 합치는 방법을 이용해도 나쁘지 않을 것 같습니다.</p>
<hr>
<h3 id="-truth-value-testing">+ Truth Value Testing</h3>
<p>원래는 생각을 안했지만, 조건문과 반복문 전에 미리 알고 가면 도움이 될까 싶어서 넣었습니다. 그런데 다시 생각해보니 지금 보면 오히려 학습 흥미 저해가 생길 것 같아서 나중에 심심하시면 읽어보시라고 링크를 첨부합니다...</p>
<p><a href="https://docs.python.org/3/library/stdtypes.html#truth-value-testing">https://docs.python.org/3/library/stdtypes.html#truth-value-testing</a></p>
<hr>
<br>

<p>출처: <a href="https://docs.python.org/3/">https://docs.python.org/3/</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[02주차] Range]]></title>
            <link>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Range</link>
            <guid>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Range</guid>
            <pubDate>Sun, 20 Nov 2022 17:07:33 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/01a5d2f4-804d-419e-8735-153a55cf7995/image.png" alt=""></p>
<h1 id="3-4-범위range">3-4. 범위(Range)</h1>
<p>번역은 범위인데, 실제로는 &quot;정수 범위&quot;인 것 같습니다. 전공기초 수업 때 사용했던 교재에서도 그렇게 적혀 있네요. 다만 실제로 말할 때는 모두들 range라고 합니다.</p>
<p>아래는 공식 문서에서 설명하는 Range입니다.</p>
<blockquote>
<p>The range type represents an immutable sequence of numbers and is commonly used for looping a specific number of times in for loops.</p>
</blockquote>
<p>여기서 &quot;보통 for 반복문에서 정해진 횟수만큼 반복할 때 사용한다&quot;(is commonly used for looping a specific number of times in for loops)라고 되어있는데, 이 부분이 나름 중요한 부분인 것 같습니다. 실제로 굉장히 자주 쓰이기 때문입니다. </p>
<p>다만 여기에서 for 반복문을 알아보지는 않도록 하겠습니다.</p>
<p>이제부터 범위(range)에 대해 알아보도록 하겠습니다.</p>
<h2 id="3-4-1-범위range의-의미와-표현">3-4-1. 범위(Range)의 의미와 표현</h2>
<p>Range는 수정 불가능한 sequence입니다. 수의 범위와 증감 정도를 표현합니다.</p>
<p>Range를 표현하는 방법은 다음과 같습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/3a9499a5-98bc-4e5e-861b-cbfd08e694ef/image.png" alt=""></p>
<p>그런데 이렇게만 보면 이게 뭔가 싶을 겁니다...</p>
<p>리스트(list)에서 배웠던 list( ) 함수를 이용해서 보도록 하겠습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/aeca05e3-87e8-4f45-9668-e533e54fd50e/image.png" alt=""></p>
<p>각 의미를 살펴보면 다음과 같습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/02f8b490-8e7f-443d-a5b3-f33d2f54853f/image.jpeg" alt=""></p>
<p>슬라이싱할 때처럼 <strong>stop 전까지만 범위로 포함</strong>되는 걸 기억해주세요.</p>
<p>Range인 이유는 저장할 때 start, stop, step만 저장하고 필요에 따라 중간 항목을 계산을 하기 때문입니다.</p>
<blockquote>
<p>as it only stores the start, stop and step values, calculating individual items and subranges as needed</p>
</blockquote>
<h2 id="3-4-2-범위range의-인덱싱과-슬라이싱">3-4-2. 범위(Range)의 인덱싱과 슬라이싱</h2>
<p>생긴 것과 다르게 인덱싱과 슬라이싱이 가능합니다.</p>
<p><a href="https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Sequence-types#3-sequence-types">[02주차] Sequence types</a>에서 봤던 것처럼 Range는 덧셈과 곱셈을 제외하고는 나머지 모든 sequence 공통 연산이 가능합니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/84311c7c-3bc3-4669-86ce-b758d7bc7a4f/image.png" alt=""></p>
<p>r을 리스트(list)로 바꿔보면 알기 쉽습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/48d80bee-875b-4b98-9d59-7c9007cbd89f/image.png" alt=""></p>
<ul>
<li><p>index가 5일 때 원소는 10인 것을 알 수 있습니다. (index는 0부터 시작합니다!)</p>
</li>
<li><p>index가 처음부터 5 전까지는 [0, 2, 4, 6, 8]인 것을 알 수 있습니다. step값은 원래와 같이 step = 2이고 r[:5]로 표현했으므로 동일한 start값(start = 0)인 range는 range(0, 10, 2)입니다.</p>
</li>
</ul>
<br>

<p>그런데 사실 range를 인덱싱하고 슬라이싱할 일이 아마 많지는 않을 것 같아요...?</p>
<h4 id="공식-문서에서-제공하고-있는-range의-examples">공식 문서에서 제공하고 있는 range의 examples</h4>
<p><strong><a href="https://docs.python.org/3/library/stdtypes.html#ranges">https://docs.python.org/3/library/stdtypes.html#ranges</a></strong></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[02주차] Tuple]]></title>
            <link>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Tuple</link>
            <guid>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Tuple</guid>
            <pubDate>Sun, 20 Nov 2022 16:12:59 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/d4c6135a-b401-4e66-98c6-81e3646cb2b1/image.png" alt=""></p>
<h1 id="3-3-튜플tuple">3-3. 튜플(Tuple)</h1>
<p>튜플(tuple)은 리스트(list)와 비슷하지만, <strong>한 번 정의되면 수정할 수 없다</strong>라는 특징을 지니고 있습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/31191ff8-66e3-4f65-9afc-84c973048602/image.png" alt=""></p>
<p>리스트(list)에서는 수정이 됐었지만, 튜플(tuple)에서는 수정하려고 하면 에러가 발생합니다.</p>
<p>다음은 공식 문서에서 설명하는 tuple입니다.</p>
<blockquote>
<p>Tuples are immutable sequences, typically used to store collections of heterogeneous data (such as the 2-tuples produced by the enumerate() built-in). Tuples are also used for cases where an immutable sequence of homogeneous data is needed (such as allowing storage in a set or dict instance).</p>
</blockquote>
<p>지금부터 tuple에 대해서 알아보도록 하겠습니다.</p>
<h2 id="3-3-1-튜플tuple의-의미와-표현-방법">3-3-1. 튜플(Tuple)의 의미와 표현 방법</h2>
<p>튜플(tuple)은 앞서 말했던 것처럼 수정이 불가능한 sequence입니다.</p>
<p>튜플은 기본적으로 소괄호&quot;( )&quot;로 감싸서 표현합니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/5db52bc2-a21f-4f2a-b24b-e33ce97107f1/image.png" alt=""></p>
<p>list( )와 마찬가지로 tuple( )도 존재합니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/49997994-2d8c-4c0b-9b7e-20235be5044b/image.png" alt=""></p>
<p>(종종 사진으로 나왔는데 (&#39;1&#39;, &#39;2&#39;, &#39;3&#39;)의 원소는 숫자 형태의 문자입니다. 절대 숫자가 아닙니다.)</p>
<p>이렇게도 표현이 가능합니다. 다만 실제로 다음과 같이 표현할 경우 헷갈릴 수 있어 잘 쓰진 않습니다. </p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/79cfa283-528a-44ce-b249-bbd5a40a996f/image.png" alt=""></p>
<p><strong>주의하셔야 할 점은 원소가 한 개 뿐인 튜플(tuple)은 꼭 원소 뒤에 &quot; , &quot;를 붙여주셔야 합니다. 이는 소괄호를 이용해서 튜플을 표현할 때도 마찬가지입니다.</strong></p>
<p>다만 이렇게 하시면 안됩니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/51762f9a-8fc7-4020-9b2e-332e93c4b124/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/243cab5b-ecfd-4e3a-83d5-682cda7cc97b/image.png" alt=""></p>
<p>함수의 ( ) 안에서 &quot; , &quot;는 인자를 구분하는 데 쓰이기 때문입니다. 쉽게 말해서 1, 2, 3을 튜플(tuple)로 인식하지 않고 1과 2와 3 각각으로 본다는 뜻입니다. 두 함수 모두 한 개만 있으면 되는데 세 개나 들어가서 에러가 생겼습니다.</p>
<br>

<h2 id="3-3-2-튜플tuple의-연산">3-3-2. 튜플(Tuple)의 연산</h2>
<p>튜플(tuple)도 연산이 가능합니다.</p>
<ol>
<li>덧셈</li>
</ol>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/e5140137-f0bb-4837-84c6-2bd6ccf03809/image.png" alt=""></p>
<p>a와 b의 원소를 모두 포함하는 새로운 튜플(tuple)을 만들어냅니다. </p>
<br>

<ol start="2">
<li>곱셈</li>
</ol>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/487afffa-82cd-458e-8b3a-829bcdcf55a4/image.png" alt=""></p>
<br>

<p>+len( ) 내장함수(built-in function)으로 튜플(tuple)의 길이 구하기</p>
<p>리스트(list)와 마찬가지입니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/389b7880-67c6-4c58-b698-7050edbc6a5d/image.png" alt=""></p>
<p>원소의 개수로도 볼 수 있습니다.</p>
<br>

<h2 id="3-3-3-튜플tuple의-얕은-복사와-깊은-복사">3-3-3. 튜플(Tuple)의 얕은 복사와 깊은 복사</h2>
<p>튜플(tuple)에서 얕은 복사와 깊은 복사를 따질 수 있을까요?</p>
<p>개념은 있겠지만 튜플(tuple)에서는 의미가 없을 겁니다. 얕은 복사가 문제인 이유는 어떤 리스트(list)의 원소 하나를 바꿨더니 원치 않는 리스트(list)의 원소까지 바뀌어버리는 경우 때문이었는데, 애초에 튜플(tuple)은 수정이 불가능하기 때문입니다.</p>
<br>

<h2 id="3-3-4-튜플tuple을-사용하는-이유">3-3-4. 튜플(Tuple)을 사용하는 이유</h2>
<p><a href="https://stackoverflow.com/questions/1708510/list-vs-tuple-when-to-use-each">https://stackoverflow.com/questions/1708510/list-vs-tuple-when-to-use-each</a></p>
<p>+개인적으로 가장 큰 이유는 우선 수정이 불가능하다는 점인 것 같습니다. 
다시 말하자면 &quot;정보 보호&quot;가 가능하다는 점입니다.</p>
<p>예를 들어 학번 정보를 기억한다고 해봅시다. 사실은 리스트(list)에 저장해도 되지만, 튜플(tuple)에 저장하면 더 안전하게 저장할 수 있습니다. 학번은 불변성을 지니기 때문입니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[02주차] List]]></title>
            <link>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-List</link>
            <guid>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-List</guid>
            <pubDate>Sun, 20 Nov 2022 09:15:32 GMT</pubDate>
            <description><![CDATA[<h1 id="3-2-리스트list">3-2. 리스트(List)</h1>
<p>파이썬에서 다루는 List는 조금 특별합니다. 다음은 list의 특징입니다.</p>
<ul>
<li>길이: 가변</li>
<li>원소 수정: 가능</li>
<li>원소의 데이터 타입: 달라도 됨</li>
</ul>
<p>여기서 원소(elements)란 무엇일까요.</p>
<p>문자열(String)에서도 나왔었는데, 원소라는 건 일종의 구성요소입니다. 문자열의 원소가 문자였던 것처럼 말입니다. </p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/a481d584-08eb-40fa-9ba6-a359d577465e/image.jpeg" alt=""></p>
<p>아래는 공식 문서에서 설명하는 list입니다.</p>
<blockquote>
<p>Lists are mutable sequences, <a href="https://stackoverflow.com/questions/19733666/what-is-homogenous-in-python-list-documentation">typically used to store collections of homogeneous items</a> (where the precise degree of similarity will vary by application).</p>
</blockquote>
<p>지금부터 list에 대해 알아보도록 하겠습니다.</p>
<h2 id="3-2-1-리스트list의-의미와-표현방법">3-2-1. 리스트(List)의 의미와 표현방법</h2>
<p>List는 수정이 가능한 sequence입니다. 여러 sequence 중 수정이 가능한 건 list가 유일합니다.</p>
<p>list의 가장 기본적인 표현은 다음과 같이 대괄호&quot;[ ]&quot;로 나타냅니다. 내부 원소는 쉼표로 구분합니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/3650dd35-d024-4f1a-a6e6-17102304a57c/image.png" alt=""></p>
<p>또는 list( ) 내장함수(built-in function)를 이용하는 방법도 있습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/fd8c70fd-9b71-4b07-9f80-7df803581de5/image.png" alt=""></p>
<p>보통은 리스트(list)가 아닌 대상을 리스트(list)로 만들 때 사용합니다. 대상은 iterable인데, 여기서 배우는 sequence types는 전부 iterable입니다.</p>
<br>

<p>요약+
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/de6b9d0f-5ef1-4d0d-bb8f-b8ab11e576fe/image.jpeg" alt=""></p>
<h2 id="3-2-2-리스트list의-인덱싱과-슬라이싱">3-2-2. 리스트(List)의 인덱싱과 슬라이싱</h2>
<p>이미 위에서 보았듯이, 리스트도 인덱싱과 슬라이싱이 가능합니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/3650dd35-d024-4f1a-a6e6-17102304a57c/image.png" alt=""></p>
<p>문자열에서 했던 것과 굉장히 비슷한데, 다른 점이라면 슬라이싱을 했을 때 리스트(list)가 나온다는 점뿐인 것 같습니다. </p>
<h2 id="3-2-3-리스트list의-원소-수정-feat-인덱싱-기법과-슬라이싱-기법">3-2-3. 리스트(List)의 원소 수정 (feat. 인덱싱 기법과 슬라이싱 기법)</h2>
<p>list는 직접 원소를 수정하는 게 가능합니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/15e2eb1f-9a7e-45eb-b05c-a088d588f8c0/image.png" alt=""></p>
<p>사진을 보시면 원래 drinks 리스트의 0번째 원소는 &quot;milk&quot;였습니다.</p>
<pre><code class="language-python">drinks[0] = &quot;water&quot; # drinks의 0번째 인덱스의 원소를 &quot;water&quot;로 지정하다</code></pre>
<p>이후 인덱싱 표현을 통해 &quot;water&quot;로 바꾼 것을 보실 수가 있습니다.</p>
<p>그렇다면 슬라이싱으로 하면 어떤 결과가 나타날까요?</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/35204438-9bdf-41c9-a2e3-0c993c54f6b1/image.png" alt=""></p>
<p>0번째부터 2번째 전까지를 &quot;coke&quot;로 바꾸었습니다. 물론 꼭 한 개로 바꿀 수만 있는 것은 아닙니다.</p>
<p>같은 수의 원소를 가진 리스트도 가능하고,
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/4cfecf93-d684-48b8-b93b-bf092cb7c01c/image.png" alt=""></p>
<p>더 많은 원소를 가진 리스트도 가능합니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/41e8dac4-5c9b-487c-8d0c-d1eead64caf0/image.png" alt=""></p>
<p>원소가 하나도 없으면 &quot;빈 리스트&quot;라고 하는 데요, 이걸 활용하면 삭제도 가능할 것 같습니다. 
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/a02316a1-7961-4ddc-96f3-c981d17868f1/image.png" alt=""></p>
<p>그런데 리스트(list)가 아닌 문자열(string)을 입력한 경우에는 어떻게 될까요?</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/ea2551d0-4992-4cbd-8e69-47fb18e64b73/image.png" alt=""></p>
<p>string type의 &quot;coke&quot;로 지정을 했더니 &quot;coke&quot;의 문자 하나하나가 모두 drinks의 원소가 되는 모습을 볼 수 있습니다. </p>
<p>수식의 의미는 다음가 같았던 것입니다.</p>
<pre><code class="language-python">drinks[0:2] = [&#39;c&#39;, &#39;o&#39;, &#39;k&#39;, &#39;e&#39;]</code></pre>
<p>위에서 본 list( ) 함수로 &quot;coke&quot;를 바꾸어보니 실제로 다음과 같이 나오네요.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/b9f27fa6-8d92-4160-9625-dfa0170622b4/image.png" alt=""></p>
<br>

<h2 id="3-2-4-리스트list의-연산">3-2-4. 리스트(List)의 연산</h2>
<p>List 또한 string처럼 연산이 가능합니다.</p>
<ol>
<li>덧셈</li>
</ol>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/62c21660-f30a-41fe-860f-3ede5486716b/image.png" alt=""></p>
<p>두 리스트의 원소를 모두 포함하는 새로운 리스트를 만들어냅니다.</p>
<br>

<ol start="2">
<li>곱셈</li>
</ol>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/453d9774-857c-4a7c-8069-29a990a7a7cf/image.png" alt=""></p>
<p>내부 원소를 곱한 횟수만큼 반복하는 새로운 리스트를 만들어냅니다.</p>
<p>두 경우 모두 string types를 배울 때와 유사합니다.</p>
<br>

<p>+추가로 list에서는 꽤 자주 사용하는 내장함수(built-in function)이 있습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/70035c59-9f6e-4835-bac2-0a4c0c62c2f8/image.png" alt=""></p>
<p>len( ) 함수는 리스트(list)뿐만 아니라 모든 sequence types와 string types의 길이를 구해줍니다. 원소의 개수라고 볼 수 있겠네요.</p>
<h2 id="3-2-5-얕은-복사와-깊은-복사">3-2-5. 얕은 복사와 깊은 복사</h2>
<p>얕은 복사와 깊은 복사는 리스트를 복사할 때 중요한 개념입니다. 심화적인 개념보다는 간단하게 설명해보도록 하겠습니다.</p>
<p>경험적으로 알아보았던 &quot;=&quot; 기호는 지정문(assignment statement)를 만드는 데 사용합니다. </p>
<br>

<p>먼저 a에 [1, 2, 3]을 지정했습니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/2dc45e61-4aad-4054-b4bf-eb6085c39615/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/689bebb9-53d0-45c9-9866-4d61102a8ece/image.jpeg" alt=""></p>
<p>그런 다음 b에 a를 지정합니다. 통상적으로는 a가 가진 값을 지정합니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/35c6df7c-64a9-4f06-8b58-cd181eccca65/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/7cb0c5db-5f6b-4ef1-84bf-1390e9bd7d13/image.jpeg" alt=""></p>
<p>그런데 사실 이건 틀렸습니다. b는 a가 가리키고 있던 대상과 똑같이 생긴 다른 대상을 가리키는 것이 아닙니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/ac089cf8-9fd7-4f9a-9a5c-9fe20dd96115/image.jpeg" alt=""></p>
<p><strong>다만 b는 a가 가리키는 대상과 같은 대상을 가리키는 것입니다.</strong></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/35c6df7c-64a9-4f06-8b58-cd181eccca65/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/6a51e023-9ca2-4fda-b7ea-9c09cea27ca4/image.jpeg" alt=""></p>
<p>예시를 하나 봅시다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/98388612-0fe0-4c4e-aa8d-c4cb8ddd4a56/image.png" alt=""></p>
<p>실제로 b에 접근하여 수정한 적은 없지만, b가 변한 것을 볼 수 있습니다.</p>
<p>위와 같이 b에 a를 지정하는 경우를 &#39;얕은 복사&#39;라고 합니다. 보기에는 b에 a의 내용을 복사한 것처럼 보이지만 실상은 a가 가리키는 대상을 b도 함께 가리키는 경우입니다.</p>
<br>

<p>그렇다면 이와 반대되는 &#39;깊은 복사&#39;는 저희가 원하는 진짜 복사입니다. 
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/7cb0c5db-5f6b-4ef1-84bf-1390e9bd7d13/image.jpeg" alt=""></p>
<p>이렇게 하는 방법 중 가장 간단한 방법은 슬라이싱을 활용하는 방법입니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/12b67046-fb3e-4fe5-9882-b21153e66395/image.png" alt=""></p>
<p>슬라이싱은 내부 원소를 모두 복사해서, 원래 대상과 같은 data type의 데이터를 줍니다. </p>
<pre><code>a = [1, 2, 3]
b = a[:]</code></pre><p>위의 경우엔 list type의 데이터를 슬라이싱했으므로 위의 코드는 아래와 같습니다.</p>
<pre><code>a = [1, 2, 3]
b = [1, 2, 3]</code></pre><p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/7cb0c5db-5f6b-4ef1-84bf-1390e9bd7d13/image.jpeg" alt=""></p>
<br>

<h2 id="3-2-6-리스트list-관련-함수">3-2-6. 리스트(List) 관련 함수</h2>
<p><a href="https://wikidocs.net/14#del">https://wikidocs.net/14#del</a></p>
<p><a href="https://wikidocs.net/14#_11">https://wikidocs.net/14#_11</a></p>
<p><strong>String때와 마찬가지로 꼭 한 번씩 따라서 입력해보시기를 바랍니다</strong></p>
<hr>
<p>참고: 
<a href="https://docs.python.org/3/index.html">https://docs.python.org/3/index.html</a>
<a href="https://wikidocs.net/14#del">https://wikidocs.net/14#del</a>
<a href="https://wikidocs.net/14#_11">https://wikidocs.net/14#_11</a>
프로그래밍의 정석: 파이썬 - 도경구</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[02주차] String]]></title>
            <link>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-String-types</link>
            <guid>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-String-types</guid>
            <pubDate>Wed, 16 Nov 2022 11:19:31 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/9c044e09-f40b-484a-9fea-f06bee950a34/image.png" alt=""></p>
<h1 id="3-1-문자열string">3-1. 문자열(String)</h1>
<p>Python은 문자열을 비교적 자유롭게 다룰 수 있습니다!</p>
<ul>
<li>문자열 식</li>
<li>문자열 인덱싱과 슬라이싱</li>
</ul>
<p>문자열이 기본적으로 무엇인지, 어떤 역할을 할 수 있는지 알아보고, 위의 두 내용을 설명해드리도록 하겠습니다.</p>
<h2 id="3-1-1-문자열string의-의미와-표현방법">3-1-1. 문자열(String)의 의미와 표현방법</h2>
<p>아래 요약입니다. 서술이 장황하고 어려워서 요약만 보셔도 될 것 같아요...</p>
<blockquote>
<p>문자열은 문자의 나열이다. Python은 문자의 개념을 짧은 문자열로 설명한다.</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/b5ce8b17-6ae7-4b52-9e89-c93a98c20389/image.png" alt=""></p>
<hr>
<hr>
<p>문자열은 그 이름대로 &quot;문자의 나열&quot;입니다. 사실 &quot;문자의 나열이 뭐가 특별한가?&quot;라고 궁금해하실 수 있습니다. 하다보면서 그렇게 느낄 수도 있는 부분이죠. </p>
<p>다른 언어에서는 문자와 문자열이 분명히 다릅니다. 단일 문자(Character)가 홑따옴표( &#39; )로 둘러쌓여 있으면 그게 문자(여기서 말하는 문자는 Character literals)이고, 문자가 쌍따옴표( &quot; ) 안에 나열되어 있다면 그건 문자열(String, String literals)입니다. </p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/8dda68c4-670b-4385-9345-3ad6b46542c3/image.png" alt=""></p>
<p><strong>그러나</strong> Python에서는 그렇지 않습니다. ( &#39; )든  ( &quot; )든 모두 문자나 문자열을 표현하는 데 사용할 수 있고, 실제로 Python의 관점에서는 string밖에 없습니다. 아래는 IBM에서 제공하는 C언어 문서와 Python측에서 제공하는 Python 공식 문서의 일부입니다.</p>
<p><a href="https://www.ibm.com/docs/ko/i/7.4?topic=tokens-literals#conref">https://www.ibm.com/docs/ko/i/7.4?topic=tokens-literals#conref</a>
이곳의 항목에는 Character literals라는 항목이 있지만,</p>
<p><a href="https://docs.python.org/3.10/reference/lexical_analysis.html#literals">https://docs.python.org/3.10/reference/lexical_analysis.html#literals</a>
이곳의 항목에는 Character literals라는 항목은 없습니다. 오히려 String literals 부분에 shortstring이라는 용어가 있는데요, 이건 BNF표기법을 알아야 하기 때문에 이 이상으로 알아보긴 어려울 것 같습니다.</p>
<p>다만 문자(Character literals)라는 강의에서 포기하긴 어려울 것 같습니다. 이따가 문자열도 일종의 sequence라는 사실을 배울텐데, 그때 shortstring이라는 말보다는 문자라고 말하는 게 더 쉽지 않을까 하는 생각이 들었습니다. </p>
<blockquote>
<p>문자의 나열은 문자열이다. 그러므로 문자열은 문자 하나하나가 나열되어 있다.</p>
</blockquote>
<p>이미 말 자체에서부터 이해하기 쉬우니까요.</p>
<p>그래서 아예 literals라는 말도 빼고 그냥 &quot;문자&quot;라는 말을 넣어서 설명할게요.</p>
<hr>
<hr>
<p>기억하셔야 할 것은 네 가지입니다!</p>
<ul>
<li>문자열은 문자들을 &#39; 로 감싸서 만들 수 있다.</li>
<li>문자열은 문자들을 &quot; 로 감싸서 만들 수 있다.</li>
<li>문자열은 문자들을 &quot;&quot;&quot; 로 감싸서 만들 수 있다.</li>
<li>escape 문자가 무엇이고 어떤 역할을 하는가.</li>
</ul>
<p>문자열에 대한 예시를 보도록 하겠습니다.</p>
<p>우선 아무런 따옴표도 넣지 않은 경우입니다. 이전에 배웠던 숫자형(Numeric data types)는 그냥 입력하거나 계산식을 넣어도 문제가 없지만, 문자나 문자열을 넣는 경우에는 그렇지 않습니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/33adef75-eebf-4add-a7ea-37d441084498/image.png" alt=""></p>
<p>invald syntax라고 하면서 문법이 잘못 되었음을 말해주고 있습니다.
<br>
이번엔 일반적으로 문자열(string)을 표현할 때 사용하는 쌍따옴표( &quot; )로 감싸서 입력해본 경우입니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/d06426cf-e783-430c-b315-1671a0653ae0/image.png" alt=""></p>
<p>오류가 나지 않습니다. 출력 결과에서 홑따옴표( &#39; )로 나오기는 하지만 문제라고 할 만한 것이 보이지 않습니다. 출력할 때 특별한 경우가 없다면 홑따옴표가 기본(default)로 설정되어 있는 모양입니다.
<br>
다음에는 일반적으로 문자(Character를 표현할 때 썼던 ( &#39; )로 감싸서 입력해본 경우입니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/e97787f7-f6ee-48d0-8982-e70f1616282b/image.png" alt=""></p>
<p>마찬가지로 아무런 문제가 발생하지 않습니다.
<br>
+필요할 지는 모르겠지만 문자열 안에 &#39;나 &quot;를 넣고 싶은 경우도 있을 겁니다.</p>
<pre><code>I&#39;m strong</code></pre><p>이라는 문장을 문자열로 만들어볼까요?
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/4e05ff51-0235-49bf-aed3-5b8be253d0da/image.png" alt=""></p>
<p>&#39; 와 &quot; 모두 문자열을 표현하는 데 사용이 가능하기 때문에, 가장 바깥쪽을 &quot;로 감싸주기만 한다면 문제가 없습니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/6ce65e03-60be-4a10-8ab4-c1bf90e0e645/image.png" alt=""></p>
<p>일부로 하나를 더 넣어도 다른 점은 없습니다. 사용자가 따로 명령을 내리지 않았지만, 문자열을 만드는 기능을 잃고 일반적인 문자가 된 것을 볼 수 있습니다.</p>
<p>그런데 만약</p>
<pre><code>I&#39;m &quot;very&quot; strong</code></pre><p>을 출력하고 싶다면 어떻게 해야 될까요?</p>
<p>이럴때 우리는 &quot;&quot; 문자(탈출문자, escape character)를 사용합니다. windows 유저라면 원화 표시로 보이고 Mac 유저라면 Back-slash로 보입니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/e37daa2c-5f21-4cfe-abae-58fe3dca7d78/image.png" alt=""> <img src="https://velog.velcdn.com/images/sung-e-gkoght/post/3a404966-ab18-46ab-a770-95ff4cd5be37/image.png" alt=""></p>
<pre><code>\&quot;</code></pre><p>이것의 의미는, 원래 &#39; 는 문자열을 만드는 문자였습니다. 그런데 앞에 escape 문자를 붙여서, 이름처럼 원래 기능에서 탈출(escape)했다는 뜻입니다. 그 결과로 일반적인 문자가 되어 양 끝의 &quot;와는 다른 문자가 된 것이죠. 참고로</p>
<pre><code>\&quot;  이 자체가 하나의 문자입니다.</code></pre><p>원래 기능에서 탈출했다고 하면 기능을 잃어버리는 것으로 생각할 수도 있지만, 그 반대가 오히려 더 많습니다. 대표적인 두 가지만 보여주고 다음 내용으로 넘어가도록 하겠습니다.</p>
<ul>
<li>\n : 개행문자 - newline</li>
<li>\t : 탭 문자 - vertical tab (tab은 이전에 들여쓰기에서 본 적이 있습니다)</li>
</ul>
<p>escape 문자의 활용은 여기서 끝이 아닙니다. 다음 예시를 봅시다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/ca231e41-526d-44e1-aba2-8dbd80dcaebf/image.png" alt=""></p>
<pre><code>&quot;I&#39;m
very
strong&quot;</code></pre><p>원래 한 줄이었던 문자열을 세 줄로 만드려고 했습니다. 그런데 에러가 발생했다고 말해주고 있습니다.</p>
<p>Python에서 문자열은 &#39; 또는 &quot; 로 시작을 했다면 그 줄(line)에서 각각 &#39; 또는 &quot; 로 다시 닫아주어야 합니다. 그래야만 인식이 됩니다. 해결방법은 두 가지로, escape 문자를 사용하는 방법과 &quot;&quot;&quot;으로 여닫는 것입니다.</p>
<ol>
<li><p>escape문자 사용
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/a0bd5e0f-e4c6-40cd-ba52-c94267075f62/image.png" alt=""></p>
</li>
<li><p>&quot;&quot;&quot;으로 여닫기
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/61a8eec6-84e6-4202-97e4-e2435d2302cc/image.png" alt=""></p>
</li>
</ol>
<p>두 방법의 차이점은 \n를 포함하냐 포함하지 않느냐로 볼 수 있습니다. 필요에 따라 선택하면 될 것 같습니다.
(&quot;그럼 도대체 1번은 왜 쓰는 건가?&quot; 라는 의문이 생길 수 있습니다. 그 이유는 한 줄에 너무 많은 내용이 들어가는 경우입니다. 그렇게 되면 화면에 한 번에 표시할 수 없어져버리는 일이 종종 생깁니다. 이럴 경우에 가독성을 위해 escape문자(\)를 사용할 수 있습니다.)</p>
<p>(더하여 \는 문자열이 아니라 코드를 짤 때도 줄바꿈을 도와줄 수 있는데, 이 부분에 대해서는 Python 기본 문법 추가자료를 구성하고 있습니다,,, 다만 시간이 없어서 언제 올라갈 수 있을지는 모르겠습니다,,,)
<br></p>
<h2 id="3-1-2-문자열string식evaluation">3-1-2. 문자열(string)식(evaluation)</h2>
<p>Python은 문자열(string)에 다음과 같은 연산이 가능합니다.</p>
<ul>
<li>덧셈</li>
<li>곱셈</li>
</ul>
<ol>
<li><p><strong>덧셈( + )</strong>
예를 들어서 다음의 두 문자열이 있다고 해봅시다.</p>
<p> &quot;중요한 것은&quot;
 &quot;꺾이지 않는 마음&quot;</p>
</li>
</ol>
<p>두 문자열을 이용해</p>
<pre><code>&quot;중요한 것은 꺾이지 않는 마음&quot;</code></pre><p>을 만들어봅시다. 뭔가 두 문자열을 이어붙인 것 같지 않나요?</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/a3ec8e5e-7d6b-499b-b6cb-82092a303c12/image.png" alt=""></p>
<p>다음과 같이 이어붙일 때 &quot;+&quot; 연산자를 이용합니다. (+가 문자열이라는 뜻이 아닙니다.)</p>
<p>그런데 중간에 띄어쓰기가 없습니다. &quot;+&quot;가 알아서 띄어쓰기를 해줄 수는 없거든요. 두 문자열을 수정 가능하다면</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/ef5b76b5-3c66-4ee1-b3d3-3fb196f41fca/image.png" alt=""></p>
<p>&quot;꺾이지 않는 마음&quot;을 &quot; 꺽이지 않는 마음&quot;으로 바꾸어주면 되고(또는 &quot;중요한 것은 &quot;), 수정이 불가능하다면</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/73358946-2984-41df-98d8-6a1705f71c29/image.png" alt=""></p>
<p>이렇게 만들어줄 수도 있습니다. 그런데 &quot;와 &quot; 사이에 스페이스바 한 번을 입력했는데 그대로 남아있습니다! 왜냐하면 띄어쓰기를 포함한 <strong>공백문자(White-space character)</strong>도 문자입니다. 개행을 할 때 누르는 &quot;Enter&quot;키도 눈에 보이지는 않지만 실제로 프로그램 안에 존재한답니다. 문자는 원래 &#39;나 &quot;와 함께 입력하지 않으면 오류가 났지만, 공백문자는 괜찮습니다.</p>
<ol start="2">
<li><strong>곱셈( * )</strong></li>
</ol>
<pre><code>&quot;중요한 것은 꺾이지 않는 마음&quot;</code></pre><p>이라는 문자열을 만들어내는 데 성공했습니다. 이 문자열을 세 번이나 출력하고 싶으시다면 어떻게 해야 할까요?</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/c38cb18f-0a1e-4086-91e6-bd3bb10020e8/image.png" alt=""></p>
<p>&quot;*&quot; 연산자를 사용하여 세 번을 반복할 수 있었습니다. 이걸 세 줄에 걸쳐서 출력한다고 하면</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/1ce94b7f-10dd-4481-9942-56c248a76c1b/image.png" alt=""> <img src="https://velog.velcdn.com/images/sung-e-gkoght/post/8cf50fa9-f437-431e-bd84-5163b57e05a9/image.png" alt=""></p>
<p>개행문자를 활용해서 시도할 수 있었습니다. 다만, print( )함수 없이 입력하면 개행문자가 적용되지 않는 걸 보실 수 있는데, REPL은 내용 자체를 보여주고 print( )는 표준출력을 해주기 때문입니다.</p>
<br>

<h2 id="3-1-3-문자열-인덱싱indexing과-슬라이싱slicing">3-1-3. 문자열 인덱싱(indexing)과 슬라이싱(slicing)</h2>
<p>문자열(string)을 변수(variable)에 저장하면 어떻게 될까요?</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/fdaf162d-7df5-49a3-8331-a3f0371c1c44/image.png" alt=""></p>
<p>내용 자체를 보기 위해 print( )함수를 사용하지 않고 출력해보았습니다. 다행히 큰 변화가 없어 보입니다. 그런데 정말 갑자기 세 번째 글자를 출력하고 싶어졌습니다! 어떻게 해야 할까요?</p>
<ol>
<li>우리는 <strong>sequence타입에서 원소 하나를 지정해서 그 값을 받는 것을 인덱싱(indexing)</strong>이라고 부릅니다. 문자열은 sequence타입에 속하고 문자열의 원소는 문자라고 할 수 있습니다! 문자열에 대괄호 [ index ]를 해주는 것으로 인덱싱할 수 있습니다. 여기서 <strong>인덱스(index)는 어떤 문자열에 속한 문자의 위치</strong>입니다.</li>
</ol>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/48f5d08b-bf53-44ca-b192-602b7ccd7dc9/image.png" alt=""></p>
<p>그런데 뭔가 이상합니다. 세 번째 위치의 문자는 분명 &#39;한&#39;일 것이라고 생각했는데, 공백문자가 나온 것일까요.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/8e465dbb-9c68-4bed-8735-c60eb1f27b5c/image.png" alt=""></p>
<p>그 이유는 사실 인덱스(index)의 시작이 0부터 시작하기 때문입니다! 1번째, 2번째, 3번째, ... 으로 가지 않고 0번째, 1번째, 2번째, 3번째, ... 인 셈이죠.</p>
<pre><code>a[3]</code></pre><p>그래서 사실 위의 코드는 a에 저장된 sequence의 &quot;4번째&quot; 원소를 지정했던 것이죠. 추가로 사진에서 볼 수 있듯이 Python은 음수 index도 지원합니다.</p>
<pre><code>&quot;중요한 것은 꺾이지 않는 마음&quot;</code></pre><p>그런데 이번엔 &quot;꺾이지 않는 마음&quot;을 값으로 받고 싶어졌습니다. 이건 어떻게 해야 할까요?</p>
<ol start="2">
<li>우리는 <strong>sequence타입에서 특정 인덱스 범위에 있는 원소들을 복사해서 가져오는 것을 슬라이싱(slicing)</strong>이라고 합니다. 인덱싱과 마찬가지인데, 차이점은 범위가 다르다는 것이죠.</li>
</ol>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/4f8bfb7d-4566-495f-9593-b04407821d1c/image.png" alt=""></p>
<p>&#39;꺾&#39;은 7번째 index, &#39;음&#39;은 15번째 index이니 7번부터 15번까지라는 의미에서</p>
<pre><code>a[7:15]</code></pre><p>를 입력했는데, 15번 index의 원소 &#39;음&#39;은 함께 출력되지 않았습니다. </p>
<pre><code>[x:y]</code></pre><p>그 이유는 위와 같이 슬라이싱할 때 x번째부터 y번째 &quot;전까지&quot;이기 때문입니다. 그러니 &#39;음&#39;은 포함되지 않았던 것이죠. 이럴때는 어떻게 해야 할까요?</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/cd3a9cef-6760-43f1-922d-045060c704c4/image.png" alt=""></p>
<p>y을 지정하지 않는다면 대상 sequence의 끝까지 복사하게 됩니다. 여기서 대상 sequence는 a( = &quot;중요한 것은 꺾이지 않는 마음&quot;)이므로 &#39;꺾&#39;부터 시작해서 끝까지 복사한 것이죠. 물론 이 반대도 가능합니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/b967405b-8d86-4324-ba1d-4a727e840db8/image.png" alt=""></p>
<p>주의하셔야 할 점은 slicing이라는 표현 때문에 원본에서 &quot;잘라놓는다&quot;라고 오해할 수 있는데, 원본은 유지된다는 점입니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/ca81f951-dbc5-45a6-bc93-7b719681d31c/image.png" alt=""></p>
<p>참고로 b를 출력할 때 띄어쓰기가 있는 이유는 print( ) 함수가 출력할 대상을 &quot;,&quot;로 구분하는데, 기본적으로 띄어쓰기 한 칸을 해주기 때문입니다:)</p>
<p>인덱싱과 슬라이싱은 문자열뿐만 아니라 다른 sequence 타입의 데이터에도 사용 가능합니다. 꼭 기억해주셨으면 좋겠습니다.</p>
<br>

<h2 id="3-1-4-타입-변화를-위한-내장함수built-in-function">3-1-4. 타입 변화를 위한 내장함수(built-in function)</h2>
<p>Numeric types와 String은 서로 타입 변화가 가능합니다. </p>
<h3 id="i-string-to-numeric-types">i) String to Numeric types</h3>
<p>먼저 다음과 같은 방법으로 integer와 float을 string으로 바꿀 수 있습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/c3acf38b-c782-4612-a469-28bf47ff5e49/image.png" alt=""></p>
<p>변환하려는 대상이 정수(나 실수이기만 하다면 바꿀 수 있습니다.</p>
<h3 id="ii-numeric-types-to-string">ii) Numeric types to String</h3>
<p>String을 integer나 float으로 바꾸는 데에는 제약이 있습니다.</p>
<ol>
<li>string to integer
integer로 바꿀 때는 문자열이 정수(integer)로 이루어져 있어야 합니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/8770954e-e1c3-4a49-9007-ea2646d3d31d/image.png" alt=""></li>
</ol>
<p>정수가 아니라면 에러가 납니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/1fcb0763-1c31-4fd0-83fd-729c82f01a62/image.png" alt=""></p>
<ol start="2">
<li>string to float
float으로 바꿀 때는 문자열이 정수(integer) 또는 실수(float)로 이루어져 있어야 합니다. 정수인 경우는 묵시적으로 실수로 바꾸어 줍니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/3bbe5f29-75aa-44e8-ad5b-17357edef4f4/image.png" alt=""></li>
</ol>
<p>정수나 실수가 아니라면 에러가 납니다.  <img src="https://velog.velcdn.com/images/sung-e-gkoght/post/41fe6cf6-9373-4580-90d4-bd7c61e1091b/image.png" alt=""></p>
<ol start="3">
<li>추가로 문자열이 수식의 모양을 띄는 경우 헷갈릴 수 있습니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/4da4b568-8c5e-445c-b95a-81a2ec322436/image.png" alt="">
이 경우는 그저 연산자 모양의 문자가 있는 것일 뿐 실제 연산자가 아닙니다.</li>
</ol>
<h3 id="-integer---float">+) integer &lt;-&gt; float</h3>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/edcf6fb0-969c-49c8-a90a-9383e70f3490/image.png" alt="">
 사실 잘 쓰지는 않는 것 같습니다. 첫 번째의 float -&gt; integer의 경우는 데이터가 손실되고, 두 번째의 integer -&gt; float의 경우는 특별할 게 없으니까요.</p>
<br>

<h2 id="3-1-5-문자열-관련-함수">3-1-5. 문자열 관련 함수</h2>
<p><a href="https://wikidocs.net/13#_20">https://wikidocs.net/13#_20</a></p>
<p>위의 링크에서 11개의 문자열 관련 내장 함수(Built-in function)을 설명하고 있습니다. 이미 설명과 사용법이 모두 나와 있기 때문에, 시험을 보는 게 아니라면 외우기를 바라지는 않습니다. 언제든지 찾아볼 수 있기 때문이죠. </p>
<p><strong>대신 꼭 한 번씩 따라서 입력해보시기를 바랍니다.</strong></p>
<hr>
<p>사진 출처: 
<a href="https://www.programiz.com/python-programming/list">https://www.programiz.com/python-programming/list</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[02주차] Numeric types]]></title>
            <link>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Numeric-types</link>
            <guid>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Numeric-types</guid>
            <pubDate>Wed, 16 Nov 2022 10:56:51 GMT</pubDate>
            <description><![CDATA[<h1 id="2-numeric-types숫자형">2. Numeric types(숫자형)</h1>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/50873522-fe6d-433a-9555-961ec6e73122/image.png" alt=""></p>
<p>숫자형에서는 차례로 정수(integer), 실수(float) data types를 다룹니다. 위 사진의 Complex Number는 복소수로 저희에게는 필요가 없습니다. 심지어 아예 안다루는 교재도 더러 있기 때문에 여기서도 다루지 않도록 하겠습니다.</p>
<h2 id="2-1-정수형integer-types">2-1. 정수형(integer types)</h2>
<p>정수형(integer types)는 말 그대로 어떤 대상이 정수인(혹은 정수의 성질을 가지는) 것을 말합니다.</p>
<p>다음은 정수형(integer types)의 기본적인 특징입니다.</p>
<ul>
<li>사칙연산이 가능하다</li>
<li>숫자간 비교가 가능하다</li>
</ul>
<p>굉장히 당연한 내용입니다만, 실수는 정말 때때로 오차가 나는 경우가 있습니다.</p>
<p>우선 정수형(integer types)의 사칙에 대해서 알아보도록 하겠습니다.</p>
<ol>
<li><strong>덧셈( + )</strong></li>
</ol>
<p>Python은 덧셈을 &quot;+&quot; 연산자(operator)로 합니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/d29d9421-e7bd-48d6-8e1d-42648ea2ee5c/image.png" alt=""></p>
<p>a = 127, b = -27 에서 a와 b는 변수(variable), &quot;=&quot;는 할당 연산자(assignment operator)입니다. a와 b에 각각 127과 -27을 저장한다고 보시면 됩니다. 그렇게 되면 a와 b는 127과 -27의 값을 가지게 되는 것이죠.</p>
<p>그렇다면 c = a + b는 어떻게 될까요? 먼저 a와 b를 더하고, 그 값을 변수 c에 저장합니다. 그러면 c는 a와 b를 더한 값인 100을 가지게 되었겠죠.</p>
<p>print( )함수로 c를 출력해보면 100이 나오는 것을 확인할 수 있습니다. print( )는 괄호 안의 내용을 모니터에 출력해주는 함수인데, 변수가 들어간 경우에는 변수에 저장된 값을 출력해줍니다.</p>
<p>같은 느낌으로 뺄셈도 해보겠습니다.</p>
<ol start="2">
<li><strong>뺄셈( - )</strong></li>
</ol>
<p>Python은 뺄셈을 &quot;-&quot; 연산자(operator)로 합니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/3954d452-4399-453d-bf21-6ab6481a842e/image.png" alt=""></p>
<p>마찬가지로 a에 57을 저장하고, b에 12를 저장한 뒤에 print( )함수로 a-b의 값을 출력했습니다. 값을 출력하는 것보다 a-b를 계산하는 우선순위가 더 높아서 print(a-b)도 가능했습니다.</p>
<ol start="3">
<li><strong>곱셈( * )</strong></li>
</ol>
<p>Python에서 곱셈은 &quot;*&quot; 연산자(operator)를 사용합니다. 이는 사실 Python뿐만 아니라 다른 언어들도 보통 *을 사용합니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/b615ae7f-de51-4f72-ac77-85a734ba5359/image.png" alt=""></p>
<p>위에서 보여드렸던 곱셈과 뺄셈의 틀에서 벗어나지 않습니다.</p>
<ol start="4">
<li><strong>나눗셈( / )</strong></li>
</ol>
<p>Python에서 나눗셈은 오직 &quot; / &quot; 연산자(operator)만 사용합니다. Python의 나눗셈은 몇 가지 특징이 있습니다.</p>
<ul>
<li>&quot; / &quot; 연산자를 사용한다.</li>
<li>0으로 나눌 수 없다.</li>
<li>계산의 값은 묵시적으로 실수로 바뀐다.</li>
</ul>
<p>먼저 정수를 0으로 나눠보도록 하겠습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/85d9ae91-1fd6-48fa-b730-56da3ae3bebf/image.png" alt=""></p>
<p>에러가 발생합니다. 0으로 나눌 때 발생하는 에러를 ZeroDivisionError라고 합니다.</p>
<p>0을 0으로 나누어도 같을까요?</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/c8529ba4-1563-4a26-874c-952bd6b03149/image.png" alt=""></p>
<p>마찬가지입니다.</p>
<p>대신 0을 0이 아닌 다른 정수로 나누는 것은 가능합니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/b8c44d1b-048a-4787-8e9e-e5df436ddbb4/image.png" alt=""></p>
<p>그런데 계산의 값이 뭔가 신기하지 않나요? 왜 -0.0으로 나올까요?</p>
<p>다음 예시를 보도록 하죠.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/4985b839-e59d-40af-b048-1107fc4b07d4/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/a01bc324-d800-472f-b01c-ffda0ce1a85c/image.png" alt=""></p>
<p>위의 예시는 당연한 것처럼 보입니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/15a7cd59-2d53-48e9-844b-0deeb9705b12/image.png" alt=""></p>
<p>그런데 같은 정수형(integer types)끼리 나누었고, 또 나누어 떨어지는 수끼리 나누었음에도 결과값은 실수입니다.</p>
<p>다음과 같이 Python에서 나눗셈은 식의 계산 결과를 실수형(float types)으로 바꾸어 돌려줍니다. (type( ) 함수는 data types를 return해주는 함수입니다.)
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/9401973f-cff5-4db6-889c-b4f5872c770b/image.png" alt=""></p>
<p>(왜 0.0인 건 알겠는데, 왜 -0.0일까요? 그건 가능하면 나중에 정규 이외의 자료로 올려드리도록 하겠습니다. 혹시나 궁금하시다면 <a href="https://stackoverflow.com/questions/4083401/negative-zero-in-python">https://stackoverflow.com/questions/4083401/negative-zero-in-python</a>)</p>
<ol start="5">
<li><strong>제곱( ** )</strong></li>
</ol>
<p>Python은 제곱 연산자를 지원합니다. &quot;**&quot; 연산자(operator)를 사용합니다</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/d5a98e14-42f6-4564-bb43-6d7946007bc1/image.png" alt=""></p>
<p>주의하셔야 할 것은 제곱 연산자가 &quot;우결합(right-to-left)&quot;라는 것입니다. 사칙연산은 같은 연산 순서일 때{(곱셈 == 나눗셈) &gt; (덧셈 == 뺄셈)} 왼쪽에서 오른쪽으로 계산하지만, 제곱은 오른쪽에서 왼쪽으로 계산합니다. 말이 조금 어려워졌지만, 저희가 배운 수학에서도 이런 순서는 같다는 걸 떠올리실 수 있습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/68ea7ea7-57c5-42e3-acfc-9e3f84664e36/image.png" alt=""></p>
<ol start="6">
<li><strong>나머지( % )</strong></li>
</ol>
<p>아마 평소에 나머지 연산자(mod, modulo)는 볼 일이 거의 없었을 겁니다. mod라고도 부르는데 정확히는 modulo로, 컴퓨터과학에선 중요합니다. 물론 이 자체로 어려운 건 없습니다. 단순히 두 수를 나누었을 때 나머지를 계산해주는 연산자(operator)이기 때문입니다.</p>
<p>&quot;%&quot; 연산자(operator)를 사용합니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/8085998b-093f-41fc-a20f-042147e60faa/image.png" alt=""></p>
<p>사실 저희가 쓰고 있는 jupyter notebook 화면은 결과값 출력을 명령하지 않아도 해주었습니다. 정말 갑자기 계산이 하고 싶어졌을 때 계산기처럼 쓰면 좋지 않을까요? </p>
<p>그런데 실수 계산에서는 계산기처럼 쓰는 것을 조심해야 합니다.</p>
<h2 id="2-2-실수형float-types">2-2. 실수형(float types)</h2>
<p>실수도 사칙연산과 제곱, 나머지 연산은 물론이고 비교연산까지 모두 다 가능합니다. 그런데 앞서 정수형(integer types)의 성질이라고 하면서 &quot;실수는 때때로 오차가 발생한다&quot;라는 말을 했었는데요, 이게 무슨 의미일까요?</p>
<p>실수는 &quot;기본적으로는 가능하지만 <strong>실수 오차</strong>로 인해 오류가 발생할 수 있다&quot;라고 할 수 있습니다. 지금부터 <strong>실수 오차</strong>가 무엇인지 살펴보도록 하겠습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/b05b94c9-16dd-4c97-954f-2cd9aad7e944/image.png" alt=""></p>
<p>&quot; == &quot; 기호는 나중에 boolean data types에서 보실 수 있는데, &quot;두 대상이 논리적으로 같은가&quot;를 묻습니다. 0.1과 0.1은 당연히 같으니 &quot;참&quot;, &quot;진실&quot;이라는 뜻에서 (==이) True를 return했고, jupyter notebook이 그 return값을 보여주네요.</p>
<p>그런데 이것도 같아야 되는 거 아닌가요?</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/a62de69a-f295-47e8-bdba-22db32337754/image.png" alt=""></p>
<pre><code>1 - 0.9 = 0.1</code></pre><p>저희가 알고 있는 상식입니다. &quot;==&quot; 연산자(operator)는 &quot;논리적으로 같은가&quot;를 확인해주니 분명 True를 return할 것이라고 예상했죠. 그런데 논리적으로 다르다고 False를 보여줍니다.</p>
<pre><code>1 - 0.9 = ?</code></pre><p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/9a18e902-c9f2-45a6-a3ab-dcaac446b2e4/image.png" alt=""></p>
<p>0.1이 나올 줄 알았는데, 그보다 조금 못미치는 실수가 나왔습니다. 이게 도대체 어떻게 된 일일까요?</p>
<p>간단히 설명하면 컴퓨터는 0과 1, 이진수(binary, binary number)를 사용한다는 걸 들어보신 적 있으실 겁니다. 우리 인간은 십진수(decimal, decimal number)를 사용하죠. 정수 부분만큼은 이진수로 십진수를 모두 표현 가능하지만, 문제는 소수 부분을 완전히 표현하는 게 불가능하다는 것이었습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/436535c8-84eb-42ea-9978-622909750830/image.png" alt=""></p>
<pre><code>출처: 프로그래밍의 정석 : 파이썬 (도경구 교수님)</code></pre><p>사진을 보시면 아무리 0과 1을 더해보아도 0.1이 나오지 않는다는 걸 보실 수 있습니다. 우리는 이러한 오차를 <strong>실수 오차(floating point error)</strong>라고 합니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/75e356ab-b2e3-4eab-93ec-110f6de2fc7e/image.png" alt=""></p>
<p>어느 프로그래밍 언어에서든지 실수는 표현하거나 저장할 수 있는 수의 범위가 한정되어 있습니다. 위의 사진은 실수의 밀도(floating point density)입니다. 정확한 영어 표현을 찾지 못했지만, 통상적으로 density라는 표현의 사용합니다. 그 뜻에서부터 한정된 실수들이 어떻게 밀집되어 있는지 나타내죠. 왼쪽으로 갈수록 촘촘해지고, 오른쪽으로 갈수록 널널해집니다.</p>
<ul>
<li>매우 큰 실수일수록 연산에 오차가 발생하기 쉽다는 사실을 기억해주세요.</li>
</ul>
<p>.
.
.</p>
<hr>
<br>
<br>
실수의 범위가 구체적으로 어떻게 정의되어 있는지 궁금하신 분들을 위해 추가 자료를 제작하고 있습니다... 되려 추가 자료 구성시간때문에 메인 업로드가 늦는 점 죄송합니다...]]></description>
        </item>
        <item>
            <title><![CDATA[[02주차] Sequence types]]></title>
            <link>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Sequence-types</link>
            <guid>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Sequence-types</guid>
            <pubDate>Wed, 16 Nov 2022 05:09:44 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/e6cc2827-1ed3-470e-810b-f1c6ba745365/image.png" alt=""></p>
<h1 id="3-sequence-types">3. Sequence types</h1>
<p>Python 공식 문서에서는 Sequence types에 대해 다음과 같이 말하고 있습니다.</p>
<blockquote>
<p>There are three basic sequence types: lists, tuples, and range objects. Additional sequence types tailored for processing of binary data and text strings are described in dedicated sections.</p>
</blockquote>
<p>기본적인 sequence types는 lists, tuples, 그리고 range가 있다고 합니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/8e6efc11-1229-4026-a7d6-e335374f7744/image.jpeg" alt=""></p>
<p>Sequence types와 유사하게 Text suqueunce type도 존재합니다. 문자열(String)이 그에 속하는데, Sequence types의 하위의 개념이 아니라 동등하게 중요한 개념입니다.</p>
<p>공식 문서에서 말하는 String 입니다.</p>
<blockquote>
<p>Textual data in Python is handled with str objects, or strings. Strings are immutable sequences of Unicode code points.</p>
</blockquote>
<p>아래는 공식 문서에서 보여주는 몇 가지 연산입니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/bdb95187-77b6-47f8-8554-e025ca10910c/image.png" alt=""></p>
<p><strong>이 연산은 거의 모든 sequence types에서 동일하게 적용됩니다.</strong> (세 번째와 네 번째는 Range에서 적용되지 않습니다)</p>
<p>대신 무작정 다 외우는 게 중요하다고 생각하지 않습니다
다만 언제든지 찾아볼 수 있는 능력을 키워주셨으면 좋겠습니다:)
(그런데 사실 거의 다 쓰긴 해서 아마 나중엔 거의 다 외우실 겁니다.)</p>
<p>지금부터 하나씩 살펴보도록 하겠습니다.</p>
<h1 id="3-1-string">3-1. <a href="https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-String-types">String</a></h1>
<h1 id="3-2-list">3-2. <a href="https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-List">list</a></h1>
<h1 id="3-3-tuple">3-3. <a href="https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Tuple">tuple</a></h1>
<h1 id="3-4-range">3-4. <a href="https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Range">range</a></h1>
]]></description>
        </item>
        <item>
            <title><![CDATA[[02주차] Python 자료형(Data types)]]></title>
            <link>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Python-%EC%9E%90%EB%A3%8C%ED%98%95Data-types</link>
            <guid>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Python-%EC%9E%90%EB%A3%8C%ED%98%95Data-types</guid>
            <pubDate>Tue, 15 Nov 2022 18:59:43 GMT</pubDate>
            <description><![CDATA[<h1 id="0-서론">0. 서론</h1>
<p><del>제가 02주차 자료를 제작하기 전에 기본 문법을 다 익히지 않고 어떻게 해야 자료형(Data types), 조건문(if statement), 반복문(loop statement)를 설명할 수 있을지 고민했습니다. 그러던 와중에 Python document에서 튜토리얼이 있는 것을 봤는데, 이 내용이면 가능할 것 같다는 생각이 들어 해당 자료에 설명을 더해 재구성했습니다. 그래서 만약에 내용에 이해가 안되는 부분이 있다면 단톡방에 질문을 주셔도 좋고, <a href="https://docs.python.org/3.10/tutorial/index.html">Python document의 튜토리얼</a>을 보셔도 될 것 같습니다!</del></p>
<br>

<p><strong>수정:</strong></p>
<p><strong><a href="https://wikidocs.net/11">https://wikidocs.net/11</a></strong></p>
<p>wikidocs 사이트의 &quot;점프 투 파이썬&quot;이라는 교재입니다. 1학년 1학기 때 교수님 한 분이 추천하셨던 교재이기도 합니다. 본문 내용인 숫자형(Numeric data types)를 구성하고 보니, 이것 이상으로 간결하게 만드는 게 쉽지 않을 것 같다고 생각하게 되었습니다ㅠ... 
저 개인적으로는 위의 교재를 꼭 보셨으면 합니다. 구체적인 원리가 담겨있는 것은 아니지만, 애당초 입문용책이라 저 책으로 Python을 처음 배우시는 건 꽤 도움이 될 것이라 믿습니다. 
다만 내용상 겹치거나 빈약해지는 것을 막기 위해 <em>이곳에는 더 어려운 내용들이 포함될 것 같습니다.</em> (그 예시가 정수의 나눗셈과 실수 오차입니다.)  </p>
<h1 id="1-data-types란">1. Data types란?</h1>
<p>Data types는 뭘까요?</p>
<p>수학을 배웠다면 -2, -1, 0, 1, 2는 정수(integer)이고, 1.1, 3.7, -2.5는 실수(float)라는 걸 아실 겁니다. Data types에는 이런 정수(integer)나 실수(float)가 포함되어 있습니다. 어떤 대상의 유형을 의미하죠. </p>
<pre><code>Python의 Types of Data(Data types): Numeric, Sequence, ... 
types of Numeric(Numeric types): integer, float, ... &lt;- 일반적으로 말하는 Data Types
-2, -1, 0, 1, 2 등의 type: integer
1.1, 3.7, -2.5 등의 type: float</code></pre><p>다음은 data types의 정의입니다.</p>
<blockquote>
<p>Data types are the classification or categorization of data items.</p>
</blockquote>
<p>사실 대상의 유형이라고 하면 너무 추상적입니다. 유형이 한 두 가지도 아닌데, 어떻게 그걸 그냥 Data types이라고 설명할 수 있을까요. 다행히도 Python에는 Data types가 정의되어 있습니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/aed8107b-98bf-47b1-bc9c-aeabb370c1f9/image.png" alt=""></p>
<p>Data types는 크게 다섯 가지로 나뉩니다.</p>
<ul>
<li>Numeric</li>
<li>Dictionary</li>
<li>Boolean</li>
<li>Set </li>
<li>Sequence</li>
</ul>
<p>(이 부분에 대해서는 <a href="https://wikidocs.net/11">https://wikidocs.net/11</a> 한 번씩 읽어보시면 더 도움될 것 같습니다.)</p>
<p>알아볼 순서는 다음과 같습니다.</p>
<h1 id="2-numeric-types">2. <a href="https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Numeric-types">Numeric types</a></h1>
<h1 id="3-sequence-types">3. <a href="https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Sequence-types">Sequence types</a></h1>
<h1 id="4-set-types">4. Set types</h1>
<h1 id="5-dictionary-types">5. Dictionary types</h1>
<h1 id="6-boolean-types">6. <a href="https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Boolean">Boolean types</a></h1>
]]></description>
        </item>
        <item>
            <title><![CDATA[[02주차] Python 시작]]></title>
            <link>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Python-%EC%8B%9C%EC%9E%91</link>
            <guid>https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Python-%EC%8B%9C%EC%9E%91</guid>
            <pubDate>Sun, 13 Nov 2022 08:13:08 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/6ef23a42-ed90-4b8c-913d-5ed8b61137e5/image.png" alt=""></p>
<h1 id="0-1-jupyter-notebook-설치">0-1. Jupyter notebook 설치</h1>
<p>만약 파이썬을 설치했다면, Jupyter notebook을 설치할 수 있습니다.</p>
<p>cmd를 실행해서 아래를 입력합니다. </p>
<pre><code class="language-cmd">pip install notebook</code></pre>
<p>기다리면 설치가 됩니다.</p>
<p>(과정. 그저 넣어본 내용이고, 읽지 말아주세요... 아래로 넘기면 jupyter notebook 실행이 나옵니다.)</p>
<pre><code class="language-cmd">Microsoft Windows [Version 10.0.19043.2251]
(c) Microsoft Corporation. All rights reserved.

C:\Users\user_name&gt;pip install notebook
Collecting notebook
  Downloading notebook-6.5.2-py3-none-any.whl (439 kB)
     ---------------------------------------- 439.1/439.1 kB 6.8 MB/s eta 0:00:00
Collecting Send2Trash&gt;=1.8.0
  Downloading Send2Trash-1.8.0-py3-none-any.whl (18 kB)
Collecting prometheus-client
  Downloading prometheus_client-0.15.0-py3-none-any.whl (60 kB)
     ---------------------------------------- 60.1/60.1 kB 3.3 MB/s eta 0:00:00
Collecting terminado&gt;=0.8.3
  Downloading terminado-0.17.0-py3-none-any.whl (16 kB)
Collecting tornado&gt;=6.1
  Downloading tornado-6.2-cp37-abi3-win_amd64.whl (425 kB)
     ---------------------------------------- 425.3/425.3 kB 8.8 MB/s eta 0:00:00
Collecting jupyter-core&gt;=4.6.1
  Downloading jupyter_core-5.0.0-py3-none-any.whl (91 kB)
     ---------------------------------------- 91.1/91.1 kB ? eta 0:00:00
Collecting ipython-genutils
  Downloading ipython_genutils-0.2.0-py2.py3-none-any.whl (26 kB)
Collecting nbconvert&gt;=5
  Downloading nbconvert-7.2.4-py3-none-any.whl (273 kB)
     ---------------------------------------- 273.2/273.2 kB 17.5 MB/s eta 0:00:00
Collecting traitlets&gt;=4.2.1
  Downloading traitlets-5.5.0-py3-none-any.whl (107 kB)
     ---------------------------------------- 107.4/107.4 kB 6.5 MB/s eta 0:00:00
Collecting jinja2
  Downloading Jinja2-3.1.2-py3-none-any.whl (133 kB)
     ---------------------------------------- 133.1/133.1 kB 7.7 MB/s eta 0:00:00
Collecting argon2-cffi
  Downloading argon2_cffi-21.3.0-py3-none-any.whl (14 kB)
Collecting nest-asyncio&gt;=1.5
  Downloading nest_asyncio-1.5.6-py3-none-any.whl (5.2 kB)
Collecting pyzmq&gt;=17
  Downloading pyzmq-24.0.1-cp310-cp310-win_amd64.whl (992 kB)
     ---------------------------------------- 992.7/992.7 kB 10.5 MB/s eta 0:00:00
Collecting jupyter-client&gt;=5.3.4
  Downloading jupyter_client-7.4.5-py3-none-any.whl (132 kB)
     ---------------------------------------- 132.3/132.3 kB ? eta 0:00:00
Collecting ipykernel
  Downloading ipykernel-6.17.1-py3-none-any.whl (138 kB)
     ---------------------------------------- 138.6/138.6 kB ? eta 0:00:00
Collecting nbclassic&gt;=0.4.7
  Downloading nbclassic-0.4.8-py3-none-any.whl (9.8 MB)
     ---------------------------------------- 9.8/9.8 MB 10.4 MB/s eta 0:00:00
Collecting nbformat
  Downloading nbformat-5.7.0-py3-none-any.whl (77 kB)
     ---------------------------------------- 77.1/77.1 kB 4.5 MB/s eta 0:00:00
Collecting python-dateutil&gt;=2.8.2
  Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
     ---------------------------------------- 247.7/247.7 kB 7.7 MB/s eta 0:00:00
Collecting entrypoints
  Downloading entrypoints-0.4-py3-none-any.whl (5.3 kB)
Collecting platformdirs
  Downloading platformdirs-2.5.4-py3-none-any.whl (14 kB)
Collecting pywin32&gt;=1.0
  Downloading pywin32-305-cp310-cp310-win_amd64.whl (12.1 MB)
     ---------------------------------------- 12.1/12.1 MB 7.4 MB/s eta 0:00:00
Collecting notebook-shim&gt;=0.1.0
  Downloading notebook_shim-0.2.2-py3-none-any.whl (13 kB)
Collecting jupyter-server&gt;=1.8
  Downloading jupyter_server-1.23.1-py3-none-any.whl (346 kB)
     ---------------------------------------- 346.4/346.4 kB 21.0 MB/s eta 0:00:00
Collecting nbclient&gt;=0.5.0
  Downloading nbclient-0.7.0-py3-none-any.whl (71 kB)
     ---------------------------------------- 71.9/71.9 kB 3.9 MB/s eta 0:00:00
Collecting pygments&gt;=2.4.1
  Downloading Pygments-2.13.0-py3-none-any.whl (1.1 MB)
     ---------------------------------------- 1.1/1.1 MB 8.7 MB/s eta 0:00:00
Collecting beautifulsoup4
  Downloading beautifulsoup4-4.11.1-py3-none-any.whl (128 kB)
     ---------------------------------------- 128.2/128.2 kB ? eta 0:00:00
Collecting pandocfilters&gt;=1.4.1
  Downloading pandocfilters-1.5.0-py2.py3-none-any.whl (8.7 kB)
Collecting markupsafe&gt;=2.0
  Downloading MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl (17 kB)
Collecting tinycss2
  Downloading tinycss2-1.2.1-py3-none-any.whl (21 kB)
Collecting packaging
  Downloading packaging-21.3-py3-none-any.whl (40 kB)
     ---------------------------------------- 40.8/40.8 kB 2.0 MB/s eta 0:00:00
Collecting defusedxml
  Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB)
Collecting jupyterlab-pygments
  Downloading jupyterlab_pygments-0.2.2-py2.py3-none-any.whl (21 kB)
Collecting mistune&lt;3,&gt;=2.0.3
  Downloading mistune-2.0.4-py2.py3-none-any.whl (24 kB)
Collecting bleach
  Downloading bleach-5.0.1-py3-none-any.whl (160 kB)
     ---------------------------------------- 160.9/160.9 kB 9.4 MB/s eta 0:00:00
Collecting fastjsonschema
  Downloading fastjsonschema-2.16.2-py3-none-any.whl (22 kB)
Collecting jsonschema&gt;=2.6
  Downloading jsonschema-4.17.0-py3-none-any.whl (83 kB)
     ---------------------------------------- 83.8/83.8 kB 4.6 MB/s eta 0:00:00
Collecting pywinpty&gt;=1.1.0
  Downloading pywinpty-2.0.9-cp310-none-win_amd64.whl (1.4 MB)
     ---------------------------------------- 1.4/1.4 MB 8.9 MB/s eta 0:00:00
Collecting argon2-cffi-bindings
  Downloading argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl (30 kB)
Collecting matplotlib-inline&gt;=0.1
  Downloading matplotlib_inline-0.1.6-py3-none-any.whl (9.4 kB)
Collecting psutil
  Downloading psutil-5.9.4-cp36-abi3-win_amd64.whl (252 kB)
     ---------------------------------------- 252.5/252.5 kB 7.6 MB/s eta 0:00:00
Collecting ipython&gt;=7.23.1
  Downloading ipython-8.6.0-py3-none-any.whl (761 kB)
     ---------------------------------------- 761.1/761.1 kB 9.6 MB/s eta 0:00:00
Collecting debugpy&gt;=1.0
  Downloading debugpy-1.6.3-cp310-cp310-win_amd64.whl (4.6 MB)
     ---------------------------------------- 4.6/4.6 MB 10.5 MB/s eta 0:00:00
Collecting decorator
  Downloading decorator-5.1.1-py3-none-any.whl (9.1 kB)
Collecting colorama
  Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Collecting jedi&gt;=0.16
  Downloading jedi-0.18.1-py2.py3-none-any.whl (1.6 MB)
     ---------------------------------------- 1.6/1.6 MB 10.0 MB/s eta 0:00:00
Collecting pickleshare
  Downloading pickleshare-0.7.5-py2.py3-none-any.whl (6.9 kB)
Collecting prompt-toolkit&lt;3.1.0,&gt;3.0.1
  Downloading prompt_toolkit-3.0.32-py3-none-any.whl (382 kB)
     ---------------------------------------- 382.8/382.8 kB 12.0 MB/s eta 0:00:00
Collecting stack-data
  Downloading stack_data-0.6.1-py3-none-any.whl (24 kB)
Collecting backcall
  Downloading backcall-0.2.0-py2.py3-none-any.whl (11 kB)
Collecting pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,&gt;=0.14.0
  Downloading pyrsistent-0.19.2-cp310-cp310-win_amd64.whl (62 kB)
     ---------------------------------------- 62.8/62.8 kB 3.5 MB/s eta 0:00:00
Collecting attrs&gt;=17.4.0
  Downloading attrs-22.1.0-py2.py3-none-any.whl (58 kB)
     ---------------------------------------- 58.8/58.8 kB ? eta 0:00:00
Collecting websocket-client
  Downloading websocket_client-1.4.2-py3-none-any.whl (55 kB)
     ---------------------------------------- 55.3/55.3 kB ? eta 0:00:00
Collecting anyio&lt;4,&gt;=3.1.0
  Downloading anyio-3.6.2-py3-none-any.whl (80 kB)
     ---------------------------------------- 80.6/80.6 kB 4.4 MB/s eta 0:00:00
Collecting six&gt;=1.5
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting cffi&gt;=1.0.1
  Downloading cffi-1.15.1-cp310-cp310-win_amd64.whl (179 kB)
     ---------------------------------------- 179.1/179.1 kB 10.6 MB/s eta 0:00:00
Collecting soupsieve&gt;1.2
  Downloading soupsieve-2.3.2.post1-py3-none-any.whl (37 kB)
Collecting webencodings
  Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB)
Collecting pyparsing!=3.0.5,&gt;=2.0.2
  Downloading pyparsing-3.0.9-py3-none-any.whl (98 kB)
     ---------------------------------------- 98.3/98.3 kB 5.5 MB/s eta 0:00:00
Collecting sniffio&gt;=1.1
  Downloading sniffio-1.3.0-py3-none-any.whl (10 kB)
Collecting idna&gt;=2.8
  Downloading idna-3.4-py3-none-any.whl (61 kB)
     ---------------------------------------- 61.5/61.5 kB 3.2 MB/s eta 0:00:00
Collecting pycparser
  Downloading pycparser-2.21-py2.py3-none-any.whl (118 kB)
     ---------------------------------------- 118.7/118.7 kB 6.8 MB/s eta 0:00:00
Collecting parso&lt;0.9.0,&gt;=0.8.0
  Downloading parso-0.8.3-py2.py3-none-any.whl (100 kB)
     ---------------------------------------- 100.8/100.8 kB ? eta 0:00:00
Collecting wcwidth
  Downloading wcwidth-0.2.5-py2.py3-none-any.whl (30 kB)
Collecting asttokens&gt;=2.1.0
  Downloading asttokens-2.1.0-py2.py3-none-any.whl (26 kB)
Collecting pure-eval
  Downloading pure_eval-0.2.2-py3-none-any.whl (11 kB)
Collecting executing&gt;=1.2.0
  Downloading executing-1.2.0-py2.py3-none-any.whl (24 kB)
Installing collected packages: webencodings, wcwidth, Send2Trash, pywin32, pure-eval, pickleshare, mistune, ipython-genutils, fastjsonschema, executing, backcall, websocket-client, traitlets, tornado, tinycss2, soupsieve, sniffio, six, pyzmq, pywinpty, pyrsistent, pyparsing, pygments, pycparser, psutil, prompt-toolkit, prometheus-client, platformdirs, parso, pandocfilters, nest-asyncio, markupsafe, jupyterlab-pygments, idna, entrypoints, defusedxml, decorator, debugpy, colorama, attrs, terminado, python-dateutil, packaging, matplotlib-inline, jupyter-core, jsonschema, jinja2, jedi, cffi, bleach, beautifulsoup4, asttokens, anyio, stack-data, nbformat, jupyter-client, argon2-cffi-bindings, nbclient, ipython, argon2-cffi, nbconvert, ipykernel, jupyter-server, notebook-shim, nbclassic, notebook
Successfully installed Send2Trash-1.8.0 anyio-3.6.2 argon2-cffi-21.3.0 argon2-cffi-bindings-21.2.0 asttokens-2.1.0 attrs-22.1.0 backcall-0.2.0 beautifulsoup4-4.11.1 bleach-5.0.1 cffi-1.15.1 colorama-0.4.6 debugpy-1.6.3 decorator-5.1.1 defusedxml-0.7.1 entrypoints-0.4 executing-1.2.0 fastjsonschema-2.16.2 idna-3.4 ipykernel-6.17.1 ipython-8.6.0 ipython-genutils-0.2.0 jedi-0.18.1 jinja2-3.1.2 jsonschema-4.17.0 jupyter-client-7.4.5 jupyter-core-5.0.0 jupyter-server-1.23.1 jupyterlab-pygments-0.2.2 markupsafe-2.1.1 matplotlib-inline-0.1.6 mistune-2.0.4 nbclassic-0.4.8 nbclient-0.7.0 nbconvert-7.2.4 nbformat-5.7.0 nest-asyncio-1.5.6 notebook-6.5.2 notebook-shim-0.2.2 packaging-21.3 pandocfilters-1.5.0 parso-0.8.3 pickleshare-0.7.5 platformdirs-2.5.4 prometheus-client-0.15.0 prompt-toolkit-3.0.32 psutil-5.9.4 pure-eval-0.2.2 pycparser-2.21 pygments-2.13.0 pyparsing-3.0.9 pyrsistent-0.19.2 python-dateutil-2.8.2 pywin32-305 pywinpty-2.0.9 pyzmq-24.0.1 six-1.16.0 sniffio-1.3.0 soupsieve-2.3.2.post1 stack-data-0.6.1 terminado-0.17.0 tinycss2-1.2.1 tornado-6.2 traitlets-5.5.0 wcwidth-0.2.5 webencodings-0.5.1 websocket-client-1.4.2

C:\Users\user_name&gt;</code></pre>
<p>실행은 아래를 입력하는 것으로 가능합니다.</p>
<pre><code class="language-cmd">jupyter notebook</code></pre>
<p>(참고)</p>
<pre><code class="language-cmd">C:\Users\user_name&gt;jupyter notebook
[I 15:04:31.635 NotebookApp] Writing notebook server cookie secret to C:\Users\user_name\AppData\Roaming\jupyter\runtime\notebook_cookie_secret
[I 15:04:33.074 NotebookApp] Serving notebooks from local directory: C:\Users\hjkl2
[I 15:04:33.075 NotebookApp] Jupyter Notebook 6.5.2 is running at:
[I 15:04:33.075 NotebookApp] http://localhost:8888/?token=ee6bfb9dcecb9e63c8124d8406478895a85d0d69271af218
[I 15:04:33.075 NotebookApp]  or http://127.0.0.1:8888/?token=ee6bfb9dcecb9e63c8124d8406478895a85d0d69271af218
[I 15:04:33.075 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 15:04:33.207 NotebookApp]

    To access the notebook, open this file in a browser:
        file:///C:/Users/hjkl2/AppData/Roaming/jupyter/runtime/nbserver-22508-open.html
    Or copy and paste one of these URLs:
        http://localhost:8888/?token=ee6bfb9dcecb9e63c8124d8406478895a85d0d69271af218
     or http://127.0.0.1:8888/?token=ee6bfb9dcecb9e63c8124d8406478895a85d0d69271af218
</code></pre>
<p>그러면 다음과 같이 실행이 됩니다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/52410d33-b80b-4a61-a0b3-27541c59d11c/image.png" alt=""></p>
<p><strong>중요: DOS창(cmd) 끄시면 안됩니다! 여러분의 cmd를 보시면 커서가 깜빡이고 있는 걸 확인하실 수 있는데, 이건 계속 실행중이라는 의미입니다! &quot;웹 브라우저에서 켜졌으니 이건 꺼야지&quot; 하시면 jupyter notebook도 함께 종료됩니다!</strong></p>
<p>jupyter notebook은 기본값으로 설정된 웹 브라우저에서 열립니다.
기본 웹 브라우저 설정은 다음과 같습니다.</p>
<ol>
<li><p>기본 앱 검색
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/4bf5ffb2-dbab-4776-8e77-bc489c1da679/image.png" alt=""></p>
</li>
<li><p>웹 브라우저 클릭
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/8e63e5ab-447a-47d2-9fbf-61a36f6f0649/image.png" alt=""></p>
</li>
</ol>
<p>원하시는 웹 브라우저를 클릭하시면 됩니다. 저는 현재 Chrome를 사용하고 있네요.</p>
<p>(<a href="https://enthan.tistory.com/7">주피터 노트북(Jupyter notebook) 구글 크롬으로 설정하는 3가지 방법</a>) </p>
<h1 id="0-2-jupyter-notebook-시작-준비">0-2. Jupyter notebook 시작 준비</h1>
<p>우선 앞으로 작성할 Python코드를 모아놓을 새로운 폴더를 하나 만듭니다.</p>
<p>만드는 이유는 Jupyter notebook의 시작 경로가 </p>
<pre><code>C:\Users\user_name</code></pre><p>입니다. 사용자 경로에 코드들이 하나둘씩 쌓이게 되면, 나중에 꽤 불편해지기 때문입니다. 이유가 이뿐만은 아닙니다. Jupyter notebook에서 작업하는 내용은 비록 웹 브라우저 상에서 수행하지만 실제 여러분의 컴퓨터와 연결되어 있습니다. <strong>다시 말해 파일을 잘못 삭제하면 여러분의 컴퓨터에 저장되어 있는 바로 그 파일이 삭제되어버립니다.</strong> 그러니 모든 작업을 따로 만들어둔 폴더에서 수행하면 컴퓨터를 망가뜨릴 일도 없지 않을까요?</p>
<ol>
<li><p>우측에 보시면 new 항목이 있는데, 거기서 폴더를 만들 수 있습니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/aff81bf9-be2a-4a31-bd0a-665da1f772a0/image.png" alt=""></p>
</li>
<li><p>그러면 Untitled folder가 아래 파일들 사이에 생기는데, 찾기 어려울 땐 &quot;몇 초 전&quot; 또는 &quot;몇 분 전&quot;에 생긴 파일을 찾아보시면 될 것 같습니다!
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/45d6d2ed-5b61-4087-99d9-c5975f47dec1/image.png" alt=""></p>
</li>
<li><p>파일명 좌측의 체크박스를 클릭하면 위에 Rename이 생겨난 것을 볼 수 있습니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/31562473-ca67-4cad-a41f-86543e7372e9/image.png" alt=""></p>
</li>
<li><p>클릭하면 이렇게 뜨는데, 저는 HYAI Python으로 수정하도록 하겠습니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/b048bbcf-e7f7-4285-b625-0cfb1620b399/image.png" alt="">
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/397be6ff-521a-4b48-b2d3-b1050959ba6e/image.png" alt=""></p>
</li>
</ol>
<p>그런데 사실 앞서 Jupyter notebook과 여러분의 컴퓨터는 연결되어 있다는 식의 말을 했습니다. 그렇다면 여러분이 만약 본인의 컴퓨터에서 시작 경로에 들어가 폴더를 만들어도 되지 않을까요?</p>
<br>

<p>시작 경로에 들어갔더니 HYAI Python이라는 이름의 폴더가 있는 것을 볼 수 있습니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/1d1e71c6-e14e-43d3-816c-6a42023174d9/image.png" alt=""></p>
<p>HYAI Python2를 새로 만들고, HYAI Python를 HYAI Python3로 이름을 바꾸어보았습니다.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/ba740c76-3d4a-47b4-b8d1-6c4945acb037/image.png" alt=""></p>
<p>그리고 나서 Jupyter notebook에서 확인을 해보았더니 다음과 같이 나오네요!
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/f135dbea-44fa-4c22-83a3-7194a3dd3d0e/image.png" alt=""></p>
<p><del>오늘 2주차 연습문제는 HYAI Python2에, 3주차 연습문제는 HYAI Python3에 저장하도록 하겠습니다:)</del></p>
<p>Python 프로그램 작성은 New 버튼을 클릭하면 Python3을 누르시면 가능합니다!</p>
<p>이제 2주차 본격적인 내용을 살펴보도록 하겠습니다!</p>
<p><del>[[02주차] 기본 문법()]</del>
<a href="https://velog.io/@sung-e-gkoght/02%EC%A3%BC%EC%B0%A8-Python-%EC%9E%90%EB%A3%8C%ED%98%95Data-types">[02주차] 자료형</a>
<del>[[02주차] 조건문()]
[[02주차] 반복문()]</del></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[PIP이란?]]></title>
            <link>https://velog.io/@sung-e-gkoght/PIP%EC%9D%B4%EB%9E%80</link>
            <guid>https://velog.io/@sung-e-gkoght/PIP%EC%9D%B4%EB%9E%80</guid>
            <pubDate>Sun, 06 Nov 2022 17:32:52 GMT</pubDate>
            <description><![CDATA[<p>이 글은 pip 사용이 되지 않는 분들을 위한 글이지 읽지 않으셔도 됩니다.</p>
<p>더하여, \가 window환경이라면 원화 표시로 보이실 텐데, 이게 백슬래쉬( /의 좌우반전 모양 )과 똑같으니 걱정하지 않아도 괜찮습니다. </p>
<h2 id="pip이란">PIP이란?</h2>
<p>pip 명령어를 사용하기 전에 pip이 무엇인지 알고 사용하자.</p>
<p>pip는 *Package Installer for Python의 약자로, 어떻게 보면 이게 pip의 정의로는 충분하다.</p>
<blockquote>
<p>pip: Package Installer for Python</p>
</blockquote>
<p>그런데 패키지는 무엇일까?
여기서 말하는 패키지는 매우 간단하다. 프로그램의 기능 구현 단위는 보통 함수(function)로 시작한다. 함수가 모이면 모듈이 되고, 그 모듈이 모이면 패키지라고 부른다. 물론 각각에 더 많은 설명을 부여할 수 있지만, 이 관계는 어느 곳에서나 공통적이다.</p>
<blockquote>
<p>함수(function) &lt; 모듈(module) &lt; 패키지(package)</p>
</blockquote>
<h2 id="pip의-경로">PIP의 경로?</h2>
<p>만약 당신의 컴퓨터에 python이 설치되어 있는 상태라면, 그 폴더 안에 pip도 함께 있을 것이다. 다만, 위키백과의 서술에 따르면 2.7.9 버전과 3.4 버전 이후로 기본 포함이라고 하니, 그 이전 버전에도 있는 지는 의문이다.</p>
<p>아무튼 pip의 설치 경로(pip이 설치된 위치)는 다음과 같다.</p>
<pre><code>C:\Users\&lt;user_name&gt;\AppData\Local\Programs\Python\Python&lt;version&gt;\Scripts</code></pre><p><user_name>은 컴퓨터 사용자 본인의 이름이다. 윈도우 + E 키를 눌러 파일 탐색기에 들어가면, 상단부터 폴더 경로(디렉터리) 막대가 있을 것이다. 좌측의 아랫방향 화살표를 누르면...</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/34f24931-9ddc-43af-926f-90eb15526c06/image.jpg" alt=""></p>
<p>화살표로 가리키는 곳이 <user_name> 부분이다. </p>
<p>&lt;version&gt;부분은 만약 3.10.2버전이라고 한다면 310가 들어가고, 3.9.4버전이라고 한다면 39가 들어간다. 이후 차례로 찾아가서 들어가면 된다.</p>
<p>파일 탐색기에서 경로를 복사하는 방법은 파일 탐색기의 경로 부분을 마우스 우클릭하면 &quot;경로를 텍스트로 복사&quot;할 수 있다. </p>
<p>이걸 알려준 이유는 다음과 같다.</p>
<h2 id="pip은는-내부-또는-외부-명령-실행할-수-있는-프로그램-또는-배치파일이-아닙니다">&#39;pip&#39;은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치파일이 아닙니다.</h2>
<p>사실상 이 포스팅의 목적이다.</p>
<p>이 에러의 원인은 보통 둘 중 하나이다. (클릭하면 해당 부분으로 바로 넘어간다.)</p>
<ol>
<li><a href="https://velog.io/@sung-e-gkoght/PIP%EC%9D%B4%EB%9E%80#1-%ED%99%98%EA%B2%BD-%EB%B3%80%EC%88%98%EC%97%90-%EA%B2%BD%EB%A1%9C-%EB%93%B1%EB%A1%9D%ED%95%98%EA%B8%B0">pip이 설치되어 있지만, 환경 변수에 등록되어 있지 않은 경우</a></li>
<li><a href="https://velog.io/@sung-e-gkoght/PIP%EC%9D%B4%EB%9E%80#2-pip-%EC%84%A4%EC%B9%98">pip이 설치되어 있지 않은 경우</a></li>
</ol>
<p>아래 내용은 안봐도 된다. Python 설치에서 이어지는 부분일 뿐, 앞으로 배우는 내용에 큰 영향을 주지 않는다.</p>
<br>

<h2 id="0-환경-변수란">0. 환경 변수란?</h2>
<p>환경 변수란 무엇일까?</p>
<p>위키피디아(Wikipedia)는 환경 변수를</p>
<blockquote>
<p>환경 변수는 프로세스*가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임이다. </p>
</blockquote>
<p>라고 말하고 있다. 이게 무슨 뜻일까.</p>
<br>

<p>기억해야 할 것은 다음과 같다. </p>
<blockquote>
<p>사용자가 프로그램을 실행하면, 사용자 입장에서는 본인이 프로그램을 실행하지만 <strong>실제로는 운영체제(OS)가 그 프로그램을 실행</strong>해준다는 것이다.</p>
</blockquote>
<p>예를 들어, 우리가 설치해둔 파이썬을 직접/간접 실행해본다고 하자.
직접 실행한다는 말은 IDLE가 설치된 경로에 직접 가서 실행하거나 IDLE를 가리키고 있는 바로가기를 실행한다는 말이다. 
간접 실행한다는 말은 직접 실행의 반대를 말한다.</p>
<h3 id="0-1-사용자가-프로그램을-직접-실행하는-경우">0-1. 사용자가 프로그램을 직접 실행하는 경우</h3>
<p>시작에서 IDLE를 검색한 뒤에 파일 위치를 열어본다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/16e02ec5-8bdf-4cda-b81b-982c247157ed/image.png" alt=""></p>
<p>막상 들어갔더니 보이는 것은 &quot;실행파일&quot;이 아니라 &quot;바로가기&quot;이다. 
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/024ae28f-bccf-4c5b-a090-d943886e14ba/image.png" alt=""></p>
<p>바로가기가 무엇을 가리키고 있는지 보도록 하자.</p>
<p>우클릭 -&gt; 속성에 들어가면 대상(T)라는 항목이 보일 것이다. 이것이 바로가기가 가리키고 있는 정확한 파일 혹은 그 경로이다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/a2599247-4a5a-4bed-b689-d334aa5d0c21/image.png" alt=""></p>
<p>대상이 경로라면 해당 경로로 이동하고, 파일이면 실행하게 된다.</p>
<p>대상이 위치한 경로까지 이동해서 실행해도 되지만, 너무 길어지니 바로가기를 더블클릭해서 대상을 실행해보자. 아마 문제 없이 실행될 것이다.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/718fc3ba-4a9a-4d73-8d36-241dc418902f/image.png" alt=""></p>
<br>

<p>위와 같이 우리(사용자)가 직접 프로그램이 설치된 경로로 가서 프로그램을 실행하면, 이미 설치가 되어 있는 경로에서 프로그램을 사용자가 실행했기 때문에 OS도 이 프로그램이 어디에 있는지 알 수 있다. 그렇기 때문에 OS도 문제 없이 실행할 수 있다.
.
.
.</p>
<h3 id="0-2-사용자가-직접-실행하지-않는-경우">0-2. 사용자가 직접 실행하지 않는 경우</h3>
<p>그런데 만약 cmd에서 아래 사진과 같이 실행해보자.</p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/13c594d2-e56f-4647-b680-be95ba5afe0d/image.png" alt=""></p>
<p>원래는 cmd에서도 직접 경로로 이동해서 파일을 실행할 수 있다. 그런데 위의 사진은 어디로 경로를 이동하지도 않고 단지 Python을 입력한 것만으로 파이썬이 실행되는 걸 확인할 수 있다. (안 된다면 다음 사진으로) </p>
<br>

<p>도대체 OS는 파이썬이 어디에 있는 줄 알고 실행한 걸까.</p>
<p><strong>OS는 이때 환경 변수 중 Path를 참조하여 Python을 실행한 것이다.</strong></p>
<p>즉, 환경 변수라고 하는 것은 OS가 프로그램을 실행하기 위해 참조하는 변수이다. Path에는 경로가 변수로 저장되는 것이다.</p>
<pre><code>참고로, 정확히 말하면 프로그램이 아니라 프로세스가 정확한 표현이지만
둘의 관계를 배우지 않은 지금으로서는 더 익숙한 표현으로 설명했다.</code></pre><p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/4672f66e-6235-4d8b-86b4-510b039dae9a/image.png" alt=""></p>
<p><strong>Python 설치</strong>에서 선택하는 것이 좋다고 한 이유가 다음과 같다. 
만약 체크하지 않았다면 cmd에서 Python 명령어는 실행되지 않았을 것이다. 또 번거롭게 추가해야 된다... 추가하는 방법은 <a href="https://velog.io/@sung-e-gkoght/PIP%EC%9D%B4%EB%9E%80#2-pip-%EC%84%A4%EC%B9%98">1-1. Add Python ~ to Path</a>에 나와 있다.</p>
<blockquote>
<p>환경 변수란 OS가 프로세스를 실행하기 위해 참조하는 변수이다.</p>
</blockquote>
<blockquote>
<p>Path는 프로세스를 실행하기 위한 <strong>경로</strong>를 저장하고 있는 환경 변수의 일종이다.</p>
</blockquote>
<blockquote>
<p>참고: <a href="https://m.blog.naver.com/zxwnstn/221521038431">https://m.blog.naver.com/zxwnstn/221521038431</a></p>
</blockquote>
<br>

<h2 id="1-환경-변수에-경로-등록하기">1. 환경 변수에 경로 등록하기</h2>
<br>

<p>앞서 pip이 설치되는 경로를 보여주었는데, 등록하는 방법은 다음과 같다.</p>
<br>

<ol>
<li>시작에서 <strong>고급 시스템 설정 보기</strong> 검색 (시작은 좌측 하단 윈도우 모양)</li>
</ol>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/3678af09-b612-463c-bb3a-1eba1a8e47d8/image.png" alt=""></p>
<ol start="2">
<li>환경 변수 설정(<strong>환경 변수(N)...</strong>)에 들어가기</li>
</ol>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/59188582-07b3-47a5-bc98-08b2032594b6/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/5e13fbf3-0301-4f1b-b1bb-b6d20edc6e43/image.png" alt=""></p>
<ol start="3">
<li>환경 변수 목록에서 Path를 찾아서 더블클릭</li>
</ol>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/df69c85d-700e-4fc7-a6f3-06b02b035a4b/image.png" alt=""></p>
<ol start="4">
<li><strong>새로 만들기(N)</strong> 클릭 후 위의 <a href="https://velog.io/@sung-e-gkoght/PIP%EC%9D%B4%EB%9E%80#pip%EC%9D%98-%EA%B2%BD%EB%A1%9C"><em>PIP의 경로</em></a> 파트에서 알아본 디렉터리 경로를 공란에 복사한 뒤 확인.</li>
</ol>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/5c2a33f8-a34e-4fca-b82d-718553817d8a/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/c3aa59e1-eb79-4df7-9e48-bfd74a47212b/image.png" alt=""></p>
<ol start="5">
<li>cmd에서 pip을 입력했을 때 명령어 설명이 나온다면 정상. (시작에서 cmd 검색)</li>
</ol>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/71091fd6-d881-4757-b88c-1f061a1c7b95/image.png" alt=""></p>
<p>그런데 만약 pip의 경로를 찾는데 pip이 없는 경우라면 아래와 같이 pip을 설치해서 해결한다.</p>
<br>

<h3 id="1-1-add-python--to-path">1-1. Add Python ~ to Path</h3>
<p>환경 변수를 추가하는 방법은 위와 동일하다. 다만 새로 만들어야 할 내용은 다음과 같다.</p>
<pre><code>:\Users\&lt;user_name&gt;\AppData\Local\Programs\Python\Python&lt;version&gt;\

잘 보면 pip을 환경 변수에 등록할 때에서 Scripts\만 뺐다는 걸 알 수 있다.</code></pre><br>    


<h2 id="2-pip-설치">2. pip 설치</h2>
<p>pip은 cmd상에서 실행할 수 있는 명령어지만 동시에 python으로 작성된 파일이기도 하다. 설치 방법은 다음과 같다.</p>
<br>

<ol>
<li>cmd에 들어간다</li>
</ol>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/11622a02-e911-4371-8dc5-322c26f39d48/image.png" alt=""></p>
<ol start="2">
<li>아래 커맨드를 복사해서 붙여넣는다. cmd에 붙여넣는 방법은 마우스 좌클릭이다.</li>
</ol>
<pre><code>curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py</code></pre><p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/b93bf6c8-80c2-4a12-ba7d-b9469ca449b0/image.png" alt=""></p>
<pre><code>작성자는 이미 설치가 되어있을 뿐더러 사진으로 보여줄 만한 내용이 없어서 이제부터는 글만 읽고 따라오면 됩니다. 
혹시 설치 도중에 무언가 묻고 있다면 그냥 엔터 누르시면 됩니다.</code></pre><ol start="3">
<li><p>설치가 완료되었다면 다음 커맨드를 입력합니다. </p>
<p> 3.1 python2 버전 사용자의 경우 (python 2.x.x)</p>
<pre><code> python2 get-pip.py</code></pre><p> 3.2 python3 버전 사용자의 경우 (python 3.x.x)</p>
<pre><code> python3 get-pip.py</code></pre><p> 3.3 작성자는 사용자가 가지고 있는 최신 버전의 경우로 알고 있는데 확신이 없네요ㅠ</p>
<pre><code> py get-pip.py</code></pre></li>
</ol>
<br>

<ol start="4">
<li>실행(설치)가 끝났다면 pip을 입력해서 1번 사례에서 했던 것처럼 설명이 나오는지 확인해봅시다.</li>
</ol>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/71091fd6-d881-4757-b88c-1f061a1c7b95/image.png" alt=""></p>
<br>



<hr>
<br>


<p>참고:
<a href="https://pip.pypa.io/en/stable/">pip</a>
<a href="https://www.w3schools.com/python/python_pip.asp">Pythin PIP</a>
<a href="https://dorudoru.tistory.com/2030">PIP 명령어 정리</a>
<a href="https://healthdevelop.tistory.com/entry/Python-pip%EC%9D%80%EB%8A%94-%EB%82%B4%EB%B6%80-%EB%98%90%EB%8A%94-%EC%99%B8%EB%B6%80-%EB%AA%85%EB%A0%B9-%EC%8B%A4%ED%96%89%ED%95%A0-%EC%88%98-%EC%9E%88%EB%8A%94-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EB%98%90%EB%8A%94-%EB%B0%B0%EC%B9%98-%ED%8C%8C%EC%9D%BC%EC%9D%B4-%EC%95%84%EB%8B%99%EB%8B%88%EB%8B%A4-%EC%98%A4%EB%A5%98%ED%95%B4%EA%B2%B0">&#39;pip&#39;은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치파일이 아닙니다.(1)</a>
<a href="https://blog.naver.com/PostView.naver?blogId=jaeyoon_95&amp;logNo=222228697034&amp;parentCategoryNo=&amp;categoryNo=94&amp;viewDate=&amp;isShowPopularPosts=true&amp;from=search">&#39;pip&#39;은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치파일이 아닙니다.(2)</a>
<a href="https://pip.pypa.io/en/stable/installation/">Installation</a>
<a href="https://heytech.tistory.com/318">[Python] pip 개념 및 설치 방법(pip, pip3)</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[01주차] IDE, Jupyter Notebook, Colab]]></title>
            <link>https://velog.io/@sung-e-gkoght/01%EC%A3%BC%EC%B0%A8-IDE-Colab-Jupyter-Notebook</link>
            <guid>https://velog.io/@sung-e-gkoght/01%EC%A3%BC%EC%B0%A8-IDE-Colab-Jupyter-Notebook</guid>
            <pubDate>Wed, 02 Nov 2022 14:31:52 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/e92007b1-a538-497d-a3fa-02990e7b63eb/image.png" alt=""></p>
<h3 id="파이썬을-설치했는데-어떻게-실행해서-사용하는-걸까">파이썬을 설치했는데, 어떻게 실행해서 사용하는 걸까?</h3>
<h1 id="01-ide">01. IDE</h1>
<h3 id="ide--integrated-development-environment">IDE : Integrated Development Environment</h3>
<p>IDE는 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어이다. - <a href="https://ko.wikipedia.org/wiki/%ED%86%B5%ED%95%A9_%EA%B0%9C%EB%B0%9C_%ED%99%98%EA%B2%BD">위키피디아</a></p>
<p>IDLE는 IDE의 한 종류인데, 기본적으로 제공되는 IDE라 기능 부분에서 다른 IDE에 비해 약한 면모가 있다.</p>
<p>IDLE : Integrated Development and Learning Environment</p>
<p>IDLE 찾아보기: <a href="https://velog.io/@sung-e-gkoght/Python-%EC%84%A4%EC%B9%98#python-%EC%84%A4%EC%B9%98-%ED%99%95%EC%9D%B8">Python 설치</a></p>
<p>IDLE을 실행하고 Ctrl N을 눌러 새로운 프로그램 작성창을 열어보자.
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/23167fc5-a61b-4d81-bea4-24c30851f0ec/image.png" alt=""></p>
<p>좌측은 인터프리터 실행창, 우측은 프로그램 작성창이다.</p>
<p>코드를 작성할 수도 있고, 하이라이트 부분을 보면 Debug 항목이 있는 것을 알 수 있다. 
<img src="https://velog.velcdn.com/images/sung-e-gkoght/post/fede5708-ce4e-4261-9d35-c91be3f17de7/image.png" alt=""></p>
<p>프로그램 실행 중 오류가 발생하면 입출력창에서 뭐가 잘못되었는지 알려주기도 한다.</p>
<h3 id="파이썬의-ide가-idle만-있는-것은-아니다">파이썬의 IDE가 IDLE만 있는 것은 아니다.</h3>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/c1f5bfaf-d32d-42e1-b801-32db29f79429/image.png" alt=""></p>
<h1 id="02-jupyter-notebook">02. Jupyter Notebook</h1>
<h3 id="브라우저-기반으로-코딩을-가능하게-한다">브라우저 기반으로 코딩을 가능하게 한다.</h3>
<p>사실 파이썬 IDE는 여러가지이다. PTVS이나 Pydev, PyCharm등 여러 IDE가 존재한다. 여러 IDE 중 우리의 관심사는 <strong>Jupyter Notebook</strong>이다.</p>
<p>Jupyter Notebook은 다음과 같다: <a href="https://sdc-james.gitbook.io/onebook/2.-1/1.6./1.1.1.-jupyter-notebook">Jupyter Notebook</a></p>
<p>요약하자면</p>
<ul>
<li>우선 IDE로서 여러 기능을 제공한다.</li>
<li>브라우저 상에서 실행 가능하다.</li>
<li>셀 단위로 프로그래밍이 가능하다.</li>
</ul>
<p>등이 있다.</p>
<p><strong>확장자</strong></p>
<ul>
<li>Jupyter Notebook은 .ipynb 확장자를 사용한다.</li>
<li>일반 파이썬 프로그램은 .py 확장자를 사용하며, .py로 작성된 코드를 Jupyter Notebook에서 실행하기 위해서는 .ipynb로 확장자를 바꿔주는 확장자 변경 프로그램을 이용하면 된다.</li>
</ul>
<p>Jupyter Notebook의 설치 방법은 cmd에서 아래 둘 중 하나를 입력하는 것으로 설치할 수 있다. </p>
<pre><code>pip install jupyter


pip install notebook</code></pre><br>

<p>실행 방법은 마찬가지로 cmd에서 아래를 입력하는 것으로 실행 하능하다.</p>
<pre><code>jupyter notebook</code></pre><p>이때 열리는 브라우저는 기본으로 설정되어 있는 브라우저이며, jupyter notebook을 실행하는 중에 cmd를 종료하면 함께 종료되니 주의하도록 한다. </p>
<br>

<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/06ba212a-031c-403f-a6a0-e5d081270398/image.png" alt=""></p>
<h1 id="03-colab">03. Colab</h1>
<h3 id="클라우드-기반의-jupyter-notebook-개발-환경">클라우드 기반의 Jupyter Notebook 개발 환경</h3>
<p><strong>Colab은 Jupyter Notebook에 클라우드의 특징을 더했다고 볼 수 있다</strong></p>
<p>장점:</p>
<ul>
<li>일반 Jupyter Notebook보다 더 좋은 기능을 제공한다.</li>
<li>구글의 컴퓨터를 이용할 수 있기 때문에 큰 데이터를 처리할 때 빠른 연산을 기대할 수 있다.</li>
<li>클라우드 기반이기 때문에 공동 작업이 편하다</li>
</ul>
<p>단점:</p>
<ul>
<li><p>세션 유지시간(로그인 유지)이 12시간이기 때문에 만약 12시간이 지나면 세션이 알아서 끊겨 작업 중이던 데이터가 날아갈 수 있다.</p>
<ul>
<li><strong>꼭 .ipynb 확장자로 소스코드를 구글 드라이브에 저장해놓자</strong> </li>
</ul>
<p>(출처: 파이썬&amp;인공지능&amp;COS Pro 2급)</p>
</li>
</ul>
<p>더하여, <a href="https://colab.research.google.com/?hl=ko#scrollTo=-gE-Ez1qtyIA">Colab</a>의 경우 인공지능 프로그래밍 개발에 유용하다:)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[01주차] Python Indentation(들여쓰기)]]></title>
            <link>https://velog.io/@sung-e-gkoght/01%EC%A3%BC%EC%B0%A8-Python-Syntax</link>
            <guid>https://velog.io/@sung-e-gkoght/01%EC%A3%BC%EC%B0%A8-Python-Syntax</guid>
            <pubDate>Wed, 02 Nov 2022 13:43:39 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/67757638-d3da-4982-8cd8-0a0d1c4d4aa2/image.png" alt=""></p>
<h1 id="python-syntax">Python Syntax</h1>
<p><strong>문법(Syntax)</strong>는 우리가 일상생활에서 쓰는 한국어의 문법과 같은 것이다. <strong>단, 한국어를 포함한 사람의 언어는 문법이 조금 틀려도 괜찮지만, 프로그래밍 언어의 문법은 조금만 틀려도 프로그램이 절대 실행되지 않는다.</strong></p>
<h2 id="파이썬-문법syntax의-특징">&quot;파이썬 문법(Syntax)의 특징&quot;</h2>
<h3 id="--들여쓰기indentation로-함수의-영역scope를-구분표시한다">-&gt; 들여쓰기(indentation)로 함수의 영역(scope)를 구분(표시)한다.</h3>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/6cf13b20-4146-454b-b16c-8d0bfe07bd51/image.png" alt=""></p>
<p>기본적인 파이썬 함수의 정의 방법이다. &lt;와 &gt;는 쓰지 않는다.</p>
<pre><code class="language-python">def function_name(parameter):
    variable = parameter
    while (variable &gt; 5):
        variable = variable - 1
        variable = variable - 2
    return variable</code></pre>
<p>아직 함수를 배우지 않았기 때문에 들여쓰기 위주로 코드를 읽어보면</p>
<pre><code class="language-python"> def function_name(parameter):</code></pre>
<p>아래로 모두 들여쓰기가 된 것을 볼 수 있다.</p>
<pre><code class="language-python">def function_name(parameter):
////variable = parameter
////while (variable &gt; 5):
     ////variable = variable - 1
    ////variable = variable - 2
////return variable</code></pre>
<p>이는 이 함수의 <strong>블록(block)</strong>이 저 한 번의 들여쓰기(////)만큼 있는 곳까지 <strong>유효</strong>하다는 의미이다.</p>
<ul>
<li>////은 임의로 붙인 기호이니 실제 프로그래밍 할 때는 붙이면 안된다. /가 4개인 이유는 보통 들여쓰기를 할 때 tab키를 누르는데, 파이썬의 일반적인 설정에서 그 크기가 띄어쓰기 4번과 같기 때문이다.</li>
</ul>
<p>만약 다음과 같이 코드를 작성했다고 해보자.</p>
<pre><code class="language-python">def function_name(parameter):
    variable = parameter
    while (variable &gt; 5):
        variable = variable - 1
        variable = variable - 2
    return variable
variable2 = parameter &lt;- 이 부분은 함수 블록에 포함되지 않는다</code></pre>
<p> 이 경우에 아래 부분은 <strong>함수의 블록에 포함되지 않는다.</strong></p>
<pre><code class="language-python"> variable2 = parameter</code></pre>
<p> 그렇게 된다면 프로그램에서 variable2가 할당(=)받는 parameter는 인터프리터가 알 수가 없어 오류가 발생한다.</p>
<br/>

<p>그런데 저 while 아래에는 들여쓰기가 하나 더 존재한다. 이건 누구의 내용일까?</p>
<pre><code class="language-python">////while (variable &gt; 5):
    ////variable = variable - 1
    ////variable = variable - 2</code></pre>
<p>그 주인은 다음과 같다.</p>
<pre><code class="language-python">////while (variable &gt; 5):</code></pre>
<p>이때 while 또한 함수(function_name(parameter))의 내용에 포함되기 때문에 결론적으로는 이것도 함수의 블록이라고 할 수 있는 것이다. (while이 무엇인지는 나중에 알 수 있다)</p>
<pre><code class="language-python">def function_name(parameter):
////variable = parameter
////while (variable &gt; 5):
     ////variable = variable - 1
    ////variable = variable - 2
////return variable</code></pre>
<pre><code class="language-python">def function_name(parameter):
    variable = parameter
    while (variable &gt; 5):
        variable = variable - 1
        variable = variable - 2
    return variable</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[01주차] Python]]></title>
            <link>https://velog.io/@sung-e-gkoght/01%EC%A3%BC%EC%B0%A8-Python</link>
            <guid>https://velog.io/@sung-e-gkoght/01%EC%A3%BC%EC%B0%A8-Python</guid>
            <pubDate>Wed, 02 Nov 2022 12:34:43 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/f3b6b494-8a85-4f6c-9cef-1388e59143fa/image.png" alt=""></p>
<h1 id="01-python이란">01. Python이란?</h1>
<br/>
1989년에 네덜란드의 귀도 반 로섬(Guido Van Rossom)이 구현 시작, 1991년에 처음 개발된 High-Level 프로그래밍 언어이다.

<br/>
<br/>
<br/>

<h1 id="02-python의-특징">02. Python의 특징</h1>
<ol>
<li><p>인터프리터(interpreter) 형식의 언어이다.</p>
<ul>
<li><p>컴파일을 통한 목적 파일 생성 없이, 명령어를 한 줄씩 바로 실행하는 방법이다.</p>
</li>
<li><p>인터프리터(interpreter)라고 하는 것은 가상 컴퓨터(소프트웨어)로 프로그램을 실행할 수 있도록 해주는 번역가 역할을 한다. (아래 사진에 스크립트 언어라고 되어 있는데, 이는 인터프리어 언어의 세부 계열로 인터프리터 언어와 작동 방식의 개념은 같다.)</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/sung-e-gkoght/post/5104e3c2-4a17-4f77-8583-4c27426eaa64/image.png" alt=""> </p>
<ul>
<li>장점:<ul>
<li>컴파일 과정 없이 바로 결과를 확인할 수 있다.<ul>
<li>운영체제(OS)에 비교적 독립적이다.</li>
</ul>
</li>
</ul>
</li>
<li>단점:<ul>
<li>실행 속도가 컴파일 언어에 비해 느리다.<ul>
<li>보안에 취약하다.</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ol>
<ol start="2">
<li><p>동적 타이핑(Dynamic typing)형식이다.</p>
<ul>
<li><p>이건 지금 당장 알 필요는 없을 뿐더러, 정적 타이핑 언어를 직접 체험해봐야 체감이 쉬우니 넘어가도 좋다 :)</p>
</li>
<li><p>동적 바인딩(Dynamic binding)이라고도 할 수 있다.</p>
</li>
<li><p>변수와 타입을 연결(binding)을 프로그램 실행 시간(runtime)에 수행하는 것이다.</p>
</li>
</ul>
</li>
</ol>
<br/>
<br/>

<h2 id="02---1-why-python">02 - 1. why Python</h2>
<h3 id="기고-왜-파이썬python인가"><a href="https://blog.b2en.com/323">[기고] 왜 파이썬(Python)인가?</a></h3>
<br>
<br>

<h1 id="03-python-library">03. Python Library</h1>
<br>


<p><strong>라이브러리(Library)</strong>란: <a href="https://aliencoder.tistory.com/20">https://aliencoder.tistory.com/20</a></p>
<ul>
<li><p>요약은 <strong>모듈 &lt;= 패키지 &lt;= 라이브러리</strong>이다.</p>
</li>
<li><p><a href="https://losskatsu.github.io/programming/function-module-package/#3-%ED%8C%A8%ED%82%A4%EC%A7%80%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC">모듈과 패키지의 구체적 설명</a></p>
<ul>
<li>아마 처음 코딩을 접한다면 지금 당장은 낯설 수 있다.</li>
</ul>
</li>
<li><p>간단히 말하자면, 라이브러리(Library)란 일종의 단위인 셈이다. </p>
<ul>
<li>모듈을 모아서 패키지를 만들고, 패키지를 모아서 라이브러리를 구성한다.</li>
</ul>
</li>
<li><p>이때 라이브러리와 패키지는 종종 혼용해서 쓰는 편인데, &quot;파이썬 라이브러리를 불러온다&quot;라는 말을 &quot;파이썬 패키지를 불러온다&quot;라고도 말한다.</p>
<br>

</li>
</ul>
<h2 id="그런데-무엇을-왜-모아놓은-걸까">그런데 무엇을, 왜 모아놓은 걸까?</h2>
<pre><code>아래 나와있지만
결론만 말하면 프로그래밍을 할 때 필요한 기능을 모아 놓은 것이며, 
특히 라이브러리로 만드는 이유는 라이브러리의 특징으로 거기에 속한 함수들 중\
사용되는 것만 실행 파일에 포함(즉, 용량을 줄인다)하기 때문이다.</code></pre><h2 id="03---1-python-standard-library">03 - 1. Python Standard Library</h2>
<p><strong>표준 라이브러리(Standard Library)</strong>라고 하면 보통 해당 언어가 기본적으로 특정한 기능을 구현해서 라이브러리 형태로 프로그래밍 환경*과 함께 전달하는 것이다. 왜 이렇게 하는 걸까?</p>
<ul>
<li>예를 들어 사용자가 키보드로 문자를 입력하면 화면에 띄워주는 프로그램을 만들어본다고 하자.<ul>
<li>프로그램은 입력을 받을 수 있어야 한다.</li>
<li>입력을 받는 다는 것은 action event를 처리 가능해야 한다.
...
...
...</li>
<li>프로그램은 입력 받는 내용을 화면에 출력해야 한다.</li>
<li>화면에 출력한다는 것은 하드웨어를 조작한다는 것이다.</li>
<li>하드웨어 조작을 위해선 커널 권한을 얻어야 한다.
...
...
...</li>
</ul>
</li>
<li>벌써부터 어렵다. 개인의 프로그래머가 방대한 컴퓨터의 모든 지식을 학습해서 필요한 기능을 하나씩 구현한다는 게 가능할까?</li>
<li>그 뿐만 아니라 OS(e.g. Windows, Mac, Linux, ...)의 종류나 CPU의 구조(e.g. intel AMD, ARM)마다 같은 기능이더라도 방식이 조금씩 달라서 기능 구현을 위한 코드도 달라질 수밖에 없다. 언제 다 만들지? </li>
</ul>
<p>이러한 부분을 해결하기 위해 <strong>표준 라이브러리(Standard Library)</strong>가 존재한다.
여기서 <strong>표준</strong>이라고 하는 부분은 코딩을 위한 환경<em>을 설치할 때 *</em>내부에 포함**되는 라이브러리를 의미한다. 쉽게 사용할 수 있도록 함께 제공하는 것이다.</p>
<p>그렇다면 <strong>파이썬 표준 라이브러리(Python Standard Library)</strong>라고 하는 것은 <strong>파이썬(Python) 언어로 프로그래밍 할 때 자주 쓰일 법한 기능들을 모아놓은 표준 라이브러리(Standard Library)</strong>인 셈이다.</p>
<p>*(프로그래밍/코딩을 위한 환경을 설치한다고 하는 것은 우리가 파이썬을 공식 홈페이지에서 설치하는 것이라고 생각해도 좋다)</p>
<br>

<p>다음은 파이썬 공식 문서(documentation)의 링크이다.</p>
<p><a href="https://docs.python.org/3/index.html">https://docs.python.org/3/index.html</a></p>
<p><strong>Library reference</strong> 부분에서 라이브러리에 대한 설명과 목록을 볼 수 있다.</p>
<ul>
<li>파이썬 언어의 핵심적인 함수나 모듈 등을 알고 싶다면 <strong>Language reference</strong>로 들어가면 된다.</li>
</ul>
<p>좌측 상단에 언어 설정이 있으니, 한국어로 설정해서 여러군데 읽어보면 도움이 될 것이다. </p>
<br>



<p>사진 출처: <a href="https://velog.io/@damiano1027">https://velog.io/@damiano1027</a></p>
<p>(근데 사실 인터프리터 언어도 작은 의미에서 컴파일이 있긴 한데... 이건 패스)</p>
]]></description>
        </item>
    </channel>
</rss>