<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>smartPro for IT</title>
    <link>https://smartpro.tistory.com/</link>
    <description>IT 정보, 알고리즘 풀이, 자격증 정보를 공유합니다.
알고리즘은 주로 백준 온라인 저지 문제를 Java로 풀어봅니다.</description>
    <language>ko</language>
    <pubDate>Wed, 8 Jul 2026 21:39:44 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>smart Pro</managingEditor>
    <item>
      <title>Python 개발자가 반드시 알아야 할 내장 라이브러리 6가지</title>
      <link>https://smartpro.tistory.com/68</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;171&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bahz99/btsK0p1NLS7/tEKBhxnXZwoMQaqjmrAVlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bahz99/btsK0p1NLS7/tEKBhxnXZwoMQaqjmrAVlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bahz99/btsK0p1NLS7/tEKBhxnXZwoMQaqjmrAVlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbahz99%2FbtsK0p1NLS7%2FtEKBhxnXZwoMQaqjmrAVlK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;553&quot; height=&quot;171&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;171&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Python은 강력한 내장 라이브러리를 제공하여 다양한 작업을 손쉽게 수행할 수 있도록 돕습니다. 특히 초급 개발자가 기본적으로 익혀야 할 핵심 모듈들이 있습니다. 이 글에서는 초급 개발자를 위한 설명과 실습 예제를 통해, Python 내장 라이브러리 7가지를 쉽게 이해할 수 있도록 도와드립니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. os - 파일 시스템 관리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;os 모듈은 파일이나 디렉터리를 다루고, 운영 체제와 상호작용할 때 사용됩니다. 초보자에게 유용한 주요 기능은 다음과 같습니다:&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;주요 기능&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;현재 디렉터리 가져오기&lt;/b&gt;: os.getcwd()&lt;/li&gt;
&lt;li&gt;&lt;b&gt;디렉터리 생성/삭제&lt;/b&gt;: os.makedirs(), os.rmdir()&lt;/li&gt;
&lt;li&gt;&lt;b&gt;파일 존재 여부 확인&lt;/b&gt;: os.path.exists()&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;실습 예제&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732798814997&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import os

# 현재 디렉터리 확인
current_dir = os.getcwd()
print(f&quot;현재 디렉터리: {current_dir}&quot;)

# 새 디렉터리 만들기
new_dir = &quot;example_folder&quot;
os.makedirs(new_dir, exist_ok=True)
print(f&quot;{new_dir} 디렉터리가 생성되었습니다!&quot;)

# 디렉터리 존재 여부 확인
if os.path.exists(new_dir):
    print(f&quot;{new_dir} 디렉터리가 존재합니다.&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. sys - 스크립트 제어&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sys 모듈은 Python 인터프리터와 직접 상호작용하며, 명령줄 인자 처리나 프로그램 종료 등의 작업에 유용합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;주요 기능&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;명령줄 인자 읽기&lt;/b&gt;: sys.argv&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Python 버전 확인&lt;/b&gt;: sys.version&lt;/li&gt;
&lt;li&gt;&lt;b&gt;프로그램 강제 종료&lt;/b&gt;: sys.exit()&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;실습 예제&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732798841223&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import sys

# 명령줄 인자 출력
print(f&quot;명령줄 인자: {sys.argv}&quot;)

# Python 버전 확인
print(f&quot;Python 버전: {sys.version}&quot;)

# 프로그램 강제 종료
print(&quot;프로그램 종료 전&quot;)
sys.exit()
print(&quot;이 코드는 실행되지 않습니다.&quot;)  # 출력되지 않음&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. datetime - 날짜와 시간 처리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;datetime은 날짜와 시간 관련 작업을 할 때 사용됩니다. 초보자가 알아야 할 기본 기능은 날짜/시간 확인과 포맷팅입니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;주요 기능&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;현재 날짜/시간 가져오기&lt;/b&gt;: datetime.now()&lt;/li&gt;
&lt;li&gt;&lt;b&gt;날짜 포맷 변환&lt;/b&gt;: strftime()&lt;/li&gt;
&lt;li&gt;&lt;b&gt;날짜 계산&lt;/b&gt;: timedelta&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;실습 예제&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732798879586&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from datetime import datetime, timedelta

# 현재 날짜와 시간
now = datetime.now()
print(f&quot;현재 시간: {now}&quot;)

# 날짜 포맷 변환 (YYYY-MM-DD)
formatted_date = now.strftime(&quot;%Y-%m-%d&quot;)
print(f&quot;포맷팅된 날짜: {formatted_date}&quot;)

# 날짜 계산 (3일 후)
future_date = now + timedelta(days=3)
print(f&quot;3일 후의 날짜: {future_date.strftime('%Y-%m-%d')}&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. collections - 효율적인 데이터 구조&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;collections 모듈은 데이터 관리에 유용한 다양한 자료 구조를 제공합니다. 초보자에게 추천하는 기능은 Counter와 defaultdict입니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;주요 기능&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Counter&lt;/b&gt;: 데이터 개수를 손쉽게 셀 수 있음&lt;/li&gt;
&lt;li&gt;&lt;b&gt;defaultdict&lt;/b&gt;: 키가 없는 경우에도 기본값을 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;실습 예제&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732798916987&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from collections import Counter, defaultdict

# Counter로 데이터 개수 세기
data = [&quot;apple&quot;, &quot;banana&quot;, &quot;apple&quot;, &quot;orange&quot;, &quot;banana&quot;, &quot;banana&quot;]
count = Counter(data)
print(f&quot;데이터 개수: {count}&quot;)

# defaultdict로 기본값 설정
fruit_count = defaultdict(int)
fruit_count[&quot;apple&quot;] += 1
fruit_count[&quot;banana&quot;] += 2
print(f&quot;기본값 활용: {fruit_count}&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. itertools - 반복문 최적화&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;itertools는 반복문을 효율적으로 처리할 수 있도록 다양한 함수들을 제공하는 라이브러리입니다. 수학적인 조합, 순열, 데카르트 곱 등을 간편하게 생성할 수 있어 복잡한 반복 작업을 단순화할 수 있습니다. 이 모듈은 특히 대규모 데이터나 반복 작업을 다룰 때 유용합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;주요 기능&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;product()&lt;/b&gt;: 두 개 이상의 리스트의 모든 가능한 조합(데카르트 곱)을 생성합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;permutations()&lt;/b&gt;: 주어진 요소들의 순열을 생성합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;combinations()&lt;/b&gt;: 주어진 요소들에서 중복 없이 조합을 생성합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;실습 예제&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732798946955&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import itertools

# 두 리스트의 모든 조합 생성
combinations = itertools.product([&quot;A&quot;, &quot;B&quot;], [1, 2])
for combo in combinations:
    print(combo)
    
# product 실행결과
('A', 1)
('A', 2)
('B', 1)
('B', 2)

# 'ABC'의 길이 2짜리 순열 생성
perms = itertools.permutations(&quot;ABC&quot;, 2)
for perm in perms:
    print(&quot;&quot;.join(perm))

# permutations 실행결과
AB
AC
BA
BC
CA
CB

# 'ABC'에서 2개를 선택하는 조합 생성
combs = itertools.combinations(&quot;ABC&quot;, 2)
for comb in combs:
    print(&quot;&quot;.join(comb))

# combinations 실행결과
AB
AC
BC&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. functools - 고급 함수 도구&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;functools는 고차 함수(higher-order function)와 관련된 강력한 도구를 제공합니다. 이 모듈을 활용하면 함수를 효율적으로 구성하거나 최적화할 수 있습니다. 자주 사용하는 함수 몇 가지와 함께 예제를 살펴보겠습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;주요 기능&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;lru_cache&lt;/b&gt;: 결과를 캐시하여 성능 최적화&lt;/li&gt;
&lt;li&gt;&lt;b&gt; partial&lt;/b&gt; : 함수의 인자를 고정하여 새로운 함수 생성&lt;/li&gt;
&lt;li&gt;&lt;b&gt; reduce&lt;/b&gt; - 반복 가능한 객체를 누적 처리&lt;/li&gt;
&lt;li&gt;&lt;b&gt; singledispatch&lt;/b&gt; - 함수의 인자 타입에 따라 다르게 동작하는 단일 분배 함수&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;실습 예제&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732799592297&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import functools

@functools.lru_cache(maxsize=None)  # 모든 호출 결과를 캐시
def fibonacci(n):
    if n &amp;lt; 2:
        return n
    return fibonacci(n - 1) + fibonacci(n - 2)

for i in range(10):
    print(f&quot;fibonacci({i}) = {fibonacci(i)}&quot;)

# lru_cache 실행결과
fibonacci(0) = 0
fibonacci(1) = 1
fibonacci(2) = 1
fibonacci(3) = 2
fibonacci(4) = 3
fibonacci(5) = 5
fibonacci(6) = 8
fibonacci(7) = 13
fibonacci(8) = 21
fibonacci(9) = 34



# int 함수의 base 인수를 2로 고정
binary_to_int = functools.partial(int, base=2)

print(binary_to_int(&quot;1010&quot;))  # 2진수 '1010'을 10진수로 변환
print(binary_to_int(&quot;1111&quot;))  # 2진수 '1111'을 10진수로 변환

# partial 실행결과
10
15


numbers = [1, 2, 3, 4, 5]

# 리스트의 모든 요소를 곱함
result = functools.reduce(lambda x, y: x * y, numbers)
print(f&quot;Result of multiplication: {result}&quot;)

# reduce 실행결과 : reduce는 리스트 [1, 2, 3, 4, 5]의 모든 요소를 순차적으로 곱해 120을 반환합니다. 1 * 2 * 3 * 4 * 5 = 120이 됩니다.
Result of multiplication: 120&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1732799887957&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from functools import singledispatch

@singledispatch
def process_data(data):
    print(f&quot;Unsupported type: {type(data)}&quot;)

@process_data.register(str)
def _(data):
    print(f&quot;Processing string: {data.upper()}&quot;)

@process_data.register(int)
def _(data):
    print(f&quot;Processing integer: {data * 10}&quot;)

@process_data.register(list)
def _(data):
    print(f&quot;Processing list: {', '.join(map(str, data))}&quot;)

process_data(&quot;hello&quot;)
process_data(5)
process_data([1, 2, 3])
process_data(3.14)


# singledispatch 실행결과 : singledispatch를 사용하면 인자의 타입에 따라 함수가 다르게 동작합니다. 문자열, 정수, 리스트는 각각 다른 처리를 받지만 float는 기본 함수가 호출됩니다.
Processing string: HELLO
Processing integer: 50
Processing list: 1, 2, 3
Unsupported type: &amp;lt;class 'float'&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;마무리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 글에서는 Python 개발자가 반드시 알아야 할 7가지 내장 라이브러리를 살펴보았습니다. 이 라이브러리들은 Python 개발을 효율적이고 강력하게 만들어주는 도구입니다. 초급자부터 중급자까지 누구나 쉽게 사용할 수 있는 기능들이며, 실제 프로젝트에서도 자주 사용됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 한 번 요약해보면:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;os&lt;/b&gt;: 파일 시스템과 운영 체제와의 상호작용&lt;/li&gt;
&lt;li&gt;&lt;b&gt;sys&lt;/b&gt;: Python 인터프리터와 명령줄 인자 관리&lt;/li&gt;
&lt;li&gt;&lt;b&gt;datetime&lt;/b&gt;: 날짜와 시간 처리&lt;/li&gt;
&lt;li&gt;&lt;b&gt;collections&lt;/b&gt;: 효율적인 데이터 구조 제공&lt;/li&gt;
&lt;li&gt;&lt;b&gt;itertools&lt;/b&gt;: 반복 작업을 최적화&lt;/li&gt;
&lt;li&gt;&lt;b&gt;functools&lt;/b&gt;: 고급 함수 도구 제공&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 라이브러리들을 자유롭게 활용할 수 있게 되면, Python 개발자로서의 역량이 한층 더 성장하게 될 것입니다. 이제 이 라이브러리들을 직접 사용해 보고, 다양한 프로젝트에 응용해 보세요. 반복적인 코드 작성이 줄어들고, 더 깔끔하고 효율적인 코드를 작성할 수 있을 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Python의 내장 라이브러리는 그 자체로 강력한 도구입니다. 이 도구들을 잘 활용하면 더 복잡하고 다양한 문제를 쉽고 빠르게 해결할 수 있습니다. 앞으로도 꾸준히 학습하고 실습하며 Python의 진정한 힘을 경험해 보세요!  &lt;/p&gt;</description>
      <category>프로그래밍 언어/Python</category>
      <category>collections</category>
      <category>datetime</category>
      <category>functools</category>
      <category>itertools</category>
      <category>OS</category>
      <category>Python</category>
      <category>sys</category>
      <category>오블완</category>
      <author>smart Pro</author>
      <guid isPermaLink="true">https://smartpro.tistory.com/68</guid>
      <comments>https://smartpro.tistory.com/68#entry68comment</comments>
      <pubDate>Thu, 28 Nov 2024 22:23:28 +0900</pubDate>
    </item>
    <item>
      <title>Python 문자열(str) 처리 가이드: 기초부터 고급까지</title>
      <link>https://smartpro.tistory.com/67</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;172&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhPO1R/btsKY3dfQY5/uhjjBKS5WnDBqLBiHU1MY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhPO1R/btsKY3dfQY5/uhjjBKS5WnDBqLBiHU1MY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhPO1R/btsKY3dfQY5/uhjjBKS5WnDBqLBiHU1MY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhPO1R%2FbtsKY3dfQY5%2FuhjjBKS5WnDBqLBiHU1MY0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;553&quot; height=&quot;172&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;172&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Python에서 문자열은 가장 기본적이면서도 강력한 데이터 타입 중 하나입니다. 문자열 처리의 기초 개념부터 고급 활용까지, 이 글에서 모두 다뤄보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 문자열이란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열(String)은 문자의 나열로, 작은따옴표(')나 큰따옴표(&quot;)로 감싸서 표현합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 줄 문자열은 큰 따옴표 3개로 감싸서 표현합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문자열 예제&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732713996343&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 작은따옴표와 큰따옴표로 문자열 생성
text1 = 'Hello'
text2 = &quot;World&quot;

# 여러 줄 문자열
multiline = &quot;&quot;&quot;이 문자열은 
여러 줄로 작성할 수 있습니다.&quot;&quot;&quot;
print(multiline)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 문자열 기본 연산&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Python에서는 문자열에 대해 다양한 연산을 지원합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1) 문자열 연결&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열을 연결하려면 + 연산자를 사용합니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732714067264&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;greeting = &quot;Hello, &quot; + &quot;Python!&quot;
print(greeting)  # Hello, Python!&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2) 문자열 반복&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열을 반복하려면 * 연산자를 사용합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1732714098626&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;repeat = &quot;Python! &quot; * 3
print(repeat)  # Python! Python! Python!&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3) 길이 확인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열의 길이는 len() 함수를 사용합니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732714118616&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;length = len(&quot;Python&quot;)
print(length)  # 6&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 문자열 슬라이싱과 인덱싱&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열은 인덱스를 사용하여 특정 위치의 문자에 접근하거나, 슬라이싱을 통해 부분 문자열을 가져올 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1) 인덱싱&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;문자열의 인덱스는 0부터 시작합니다. -1은 마지막 문자를 가져올 수 있습니다.&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732714152686&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;text = &quot;Python&quot;
print(text[0])  # 첫 번째 문자: 'P'
print(text[-1])  # 마지막 문자: 'n'&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2) 슬라이싱&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열의 범위를 시작인덱스:종료인덱스로 표현할 수 있씁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시작인덱스를 생략하면 0, 즉 처음부터 검색하며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;종료인덱스를 생략하면 마지막 문자까지 검색합니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732714192563&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;text = &quot;Hello, Python!&quot;
print(text[0:5])  # 'Hello'
print(text[:5])   # 처음부터 5번째 문자까지: 'Hello'
print(text[7:])   # 7번째 문자부터 끝까지: 'Python!'&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 문자열 메서드&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Python은 문자열 조작을 위한 다양한 메서드를 제공합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1) 문자열 변경&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;소문자 변경은 lower 함수를 사용하고 대문자 변경은 upper 함수를 사용합니다.&lt;/div&gt;
&lt;div&gt;문자열 대체는 replace 함수를 사용합니다.&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732714276078&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;text = &quot;Python is Fun&quot;
print(text.lower())  # 모두 소문자: 'python is fun'
print(text.upper())  # 모두 대문자: 'PYTHON IS FUN'
print(text.replace(&quot;Fun&quot;, &quot;Awesome&quot;))  # 특정 부분 대체: 'Python is Awesome'&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2) 문자열 검색&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;부분 문자열을 검색하여 해당 인덱스를 찾을 때는 find 함수를 이용합니다.&lt;/div&gt;
&lt;div&gt;특정 문자열로 시작하는 경우는 startswith 함수, 특정 문자열로 끝나는 경우는 endswith 함수를 사용합니다.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;pre id=&quot;code_1732714363266&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;text = &quot;Learn Python Programming&quot;
print(text.find(&quot;Python&quot;))  # 'Python'의 시작 인덱스: 6
print(text.startswith(&quot;Learn&quot;))  # 'Learn'으로 시작하는지 확인: True
print(text.endswith(&quot;ing&quot;))  # 'ing'으로 끝나는지 확인: True&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3) 공백 처리&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;trim 함수와 비슷하게 앞뒤 공백 제거는 strip 함수를 사용합니다.&lt;/div&gt;
&lt;div&gt;왼쪽 공백만 제거할 때는 lstrip 함수, 오른쪽 공백만 제거할 때는 rstrip 함수를 사용합니다.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732714431403&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;text = &quot;   Python   &quot;
print(text.strip())  # 앞뒤 공백 제거: 'Python'
print(text.lstrip())  # 왼쪽 공백 제거: 'Python   '
print(text.rstrip())  # 오른쪽 공백 제거: '   Python'&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4) 문자열 나누기와 결합&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;문자열을 delimeter 기준으로 분할하여 array(list형)에 저장할 때는 split 함수를 사용합니다.&lt;/div&gt;
&lt;div&gt;문자열끼리 연결할 때 delimeter를 중간에 넣고 싶을 때는 join 함수를 사용할 수 있습니다.&lt;/div&gt;
&lt;div&gt;공백 외에도 콤마(,), 마침표(.)로 문자열을 연결하거나 슬래쉬(/), 역슬래쉬(\) 등으로 path를 표현할 때도 사용하면 편합니다.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732714543397&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;text = &quot;apple,banana,orange&quot;
fruits = text.split(&quot;,&quot;)  # 콤마 기준으로 나누기
print(fruits)  # ['apple', 'banana', 'orange']

joined_text = &quot; &quot;.join(fruits)  # 리스트를 공백으로 연결
print(joined_text)  # 'apple banana orange'&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 고급 문자열 formatting&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1) f-string 사용&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Python 3.6 이상에서는 f-string을 사용해 간단하게 문자열을 포맷팅할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;%s를 여러 개 사용하지 않고 원하는 부분에 변수의 값을 넣을 때 유용하게 사용할 수 있어서 저도 자주 사용하는 편입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732714896071&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;name = &quot;Alice&quot;
age = 25
print(f&quot;My name is {name} and I'm {age} years old.&quot;)  # 'My name is Alice and I'm 25 years old.'&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2) .format() 사용&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;{} 부분을 format 함수의 파라미터로 전달한 문자열 또는 변수의 값으로 치환하는 함수입니다.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732714924816&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;greeting = &quot;Hello, {}!&quot;.format(&quot;Bob&quot;)
print(greeting)  # 'Hello, Bob!'&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. 문자열과 정규표현식&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정규표현식을 활용하면 패턴에 따라 문자열을 검색하거나 변환할 수 있습니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732714978367&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import re

text = &quot;My phone number is 123-456-7890.&quot;
pattern = r&quot;\d{3}-\d{3}-\d{4}&quot;

# 패턴 검색
match = re.search(pattern, text)
if match:
    print(match.group())  # '123-456-7890'&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;7. 문자열과 인코딩&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열은 encode()와 decode()를 사용해 인코딩과 디코딩이 가능합니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732715005074&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;text = &quot;안녕하세요&quot;
encoded = text.encode(&quot;utf-8&quot;)  # 문자열을 바이트로 인코딩
print(encoded)  # b'\xec\x95\x88\xeb\x85\x95\xed\x95\x98\xec\x84\xb8\xec\x9a\x94'

decoded = encoded.decode(&quot;utf-8&quot;)  # 바이트를 다시 문자열로 디코딩
print(decoded)  # '안녕하세요'&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;8. 문자열 처리 꿀팁&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;- 문자열 거꾸로 뒤집기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1732715040180&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;text = &quot;Python&quot;
print(text[::-1])  # 'nohtyP'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 특정 단어 개수 세기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1732715079627&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;text = &quot;apple banana apple orange apple&quot;
print(text.count(&quot;apple&quot;))  # 3&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 문자열 포함여부 확인&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 특정 문자열이 포함되어 있는지 확인할 때 in을 사용합니다. JAVA의 contains() 함수와 비슷하다고 보시면 됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1732715106299&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;text = &quot;&quot;&quot;Line 1
Line 2
Line 3&quot;&quot;&quot;
print(&quot;Line 2&quot; in text)  # True&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;마무리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열은 Python에서 매우 자주 사용되는 데이터 타입이며, 그 활용법도 무궁무진합니다. 이번 가이드를 통해 기초부터 고급 기능까지 폭넓게 익히셨길 바랍니다. 연습을 통해 문자열 조작에 더욱 익숙해지세요!  &lt;/p&gt;</description>
      <category>프로그래밍 언어/Python</category>
      <category>Python</category>
      <category>STR</category>
      <category>string</category>
      <category>문자열</category>
      <category>오블완</category>
      <category>정규식</category>
      <category>정규표현식</category>
      <category>티스토리챌린지</category>
      <author>smart Pro</author>
      <guid isPermaLink="true">https://smartpro.tistory.com/67</guid>
      <comments>https://smartpro.tistory.com/67#entry67comment</comments>
      <pubDate>Wed, 27 Nov 2024 22:47:50 +0900</pubDate>
    </item>
    <item>
      <title>Python 프로젝트를 체계적으로! 디렉터리 구조와 모듈 관리 방법</title>
      <link>https://smartpro.tistory.com/66</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;171&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ePNJvt/btsKWQyxyYJ/xfYvGESLMrab4PpaaPayy0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ePNJvt/btsKWQyxyYJ/xfYvGESLMrab4PpaaPayy0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ePNJvt/btsKWQyxyYJ/xfYvGESLMrab4PpaaPayy0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FePNJvt%2FbtsKWQyxyYJ%2FxfYvGESLMrab4PpaaPayy0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;553&quot; height=&quot;171&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;171&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Python 프로젝트를 효율적으로 관리하려면 체계적인 디렉터리 구조와 모듈 관리를 이해하는 것이 중요합니다. 이번 글에서는 디렉터리 구조와 함께, __init__.py 파일의 역할과 최신 Python 버전에서의 변화, 모듈 임포트 방식, 그리고 패키지 배포 방법까지 자세히 알아보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. Python 프로젝트 디렉터리 구조 예시&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;효율적인 Python 프로젝트는 명확하고 직관적인 디렉터리 구조를 갖추는 것이 핵심입니다. 다음은 일반적인 Python 프로젝트 디렉터리 구조의 예입니다:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1732628644323&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;my_project/
│
├── src/                # 메인 코드 디렉터리
│   ├── __init__.py     # 패키지 초기화 파일
│   ├── module1.py      # 첫 번째 모듈
│   └── module2.py      # 두 번째 모듈
│
├── tests/              # 테스트 코드
│   ├── __init__.py
│   └── test_module1.py
│
├── docs/               # 프로젝트 문서
│   └── README.md
│
├── setup.py            # 패키지 배포 설정 파일
├── pyproject.toml      # 빌드 시스템 구성 파일
├── requirements.txt    # 의존성 목록
└── .gitignore          # Git 무시 파일&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. __init__.py와 모듈의 개념&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;__init__.py 파일의 역할&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;__init__.py 파일은 디렉터리를 Python 패키지로 인식하게 하는 역할을 합니다.&lt;br /&gt;Python 3.3 이전 버전에서는 반드시 __init__.py가 있어야 패키지로 간주되었으나, &lt;b&gt;Python 3.3 이후부터는 __init__.py가 없어도 패키지로 인식&lt;/b&gt;됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만, 여전히 __init__.py는 다음과 같은 이유로 유용합니다:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; 1. 패키지 초기화&lt;/b&gt;: 모듈 간 공유 변수나 초기 설정을 정의할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; 2. 모듈 노출 제한&lt;/b&gt;: __all__ 리스트를 정의하여 특정 모듈만 노출할 수 있습니다&lt;/p&gt;
&lt;pre id=&quot;code_1732628677819&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# src/__init__.py
__all__ = ['module1']&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; 3. 명확한 패키지 구조&lt;/b&gt;: 디렉터리가 패키지임을 직관적으로 보여줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 상대 경로 vs 절대 경로 임포트&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1) 절대 경로 임포트&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최상위 디렉터리부터 전체 경로를 명시하는 방식으로, 가독성이 높고 충돌 가능성이 낮습니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732628744844&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# src/module1.py에서 module2 임포트
from src.module2 import some_function&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2) 상대 경로 임포트&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 파일 기준으로 경로를 지정하며, 프로젝트 구조가 변경될 경우 관리가 어려울 수 있습니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732628760719&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# src/module1.py에서 module2 임포트
from .module2 import some_function&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;권장 사항&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 &lt;b&gt;절대 경로 임포트를 권장&lt;/b&gt;합니다. 상대 경로는 모듈 간 참조가 강하게 연결될 때 사용하는 것이 적합합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 패키지 배포 기본 예제&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1) setup.py 설정 예시&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;setup.py는 전통적인 패키지 배포 스크립트입니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732628789208&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from setuptools import setup, find_packages

setup(
    name=&quot;my_project&quot;,
    version=&quot;0.1.0&quot;,
    packages=find_packages(where=&quot;src&quot;),
    package_dir={&quot;&quot;: &quot;src&quot;},
    install_requires=[
        &quot;numpy&amp;gt;=1.20.0&quot;
    ],
)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2) pyproject.toml 구성 예시&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근에는 pyproject.toml을 사용하는 것이 표준으로 자리 잡았습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1732628825104&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[build-system]
requires = [&quot;setuptools&quot;, &quot;wheel&quot;]
build-backend = &quot;setuptools.build_meta&quot;

[project]
name = &quot;my_project&quot;
version = &quot;0.1.0&quot;
dependencies = [&quot;numpy&amp;gt;=1.20.0&quot;]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;마무리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Python 프로젝트를 체계적으로 관리하려면 적절한 디렉터리 구조를 설정하고, __init__.py 파일의 필요 여부를 판단하며, 임포트 방식을 명확히 해야 합니다. 또한, 최신 배포 방식을 익혀 배포 프로세스를 간소화하세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 여러분의 Python 프로젝트를 더욱 깔끔하고 체계적으로 만들어 보세요!  &lt;/p&gt;</description>
      <category>프로그래밍 언어/Python</category>
      <category>pyproject.toml</category>
      <category>Python</category>
      <category>__init__.py</category>
      <category>디렉토리 구조</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <category>프로젝트 구조</category>
      <author>smart Pro</author>
      <guid isPermaLink="true">https://smartpro.tistory.com/66</guid>
      <comments>https://smartpro.tistory.com/66#entry66comment</comments>
      <pubDate>Tue, 26 Nov 2024 22:48:25 +0900</pubDate>
    </item>
    <item>
      <title>Python 파일 I/O와 JSON 데이터 처리 가이드</title>
      <link>https://smartpro.tistory.com/65</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;171&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dht9OJ/btsKWouzQoh/32r6XsCKONJqK0DGKk4KAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dht9OJ/btsKWouzQoh/32r6XsCKONJqK0DGKk4KAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dht9OJ/btsKWouzQoh/32r6XsCKONJqK0DGKk4KAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdht9OJ%2FbtsKWouzQoh%2F32r6XsCKONJqK0DGKk4KAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;554&quot; height=&quot;171&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;171&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Python은 파일을 읽고 쓰는 작업을 간단하게 처리할 수 있는 강력한 기능을 제공합니다. 이번 글에서는 &lt;b&gt;텍스트 파일&lt;/b&gt;, &lt;b&gt;CSV 파일&lt;/b&gt;, &lt;b&gt;JSON 파일&lt;/b&gt;과 같은 주요 파일 형식을 다루는 방법과 데이터를 효율적으로 처리하는 방법을 살펴보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. 파일 읽기와 쓰기의 기본: 텍스트 파일&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Python에서 텍스트 파일을 처리하려면 내장 함수 open()을 사용합니다. 안전한 파일 처리를 위해 &lt;b&gt;with 구문&lt;/b&gt;을 사용하는 것이 권장됩니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.1 텍스트 파일 읽기&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732535112816&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# sample.txt 파일 읽기 
with open(&quot;sample.txt&quot;, &quot;r&quot;, encoding=&quot;utf-8&quot;) as file:
    content = file.read()

print(content)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&quot;r&quot;&lt;/b&gt;: 읽기 모드&lt;/li&gt;
&lt;li&gt;&lt;b&gt;encoding=&quot;utf-8&quot;&lt;/b&gt;: 파일 인코딩 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.2 텍스트 파일 쓰기&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732535142913&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# sample.txt 파일에 내용 쓰기 
with open(&quot;sample.txt&quot;, &quot;w&quot;, encoding=&quot;utf-8&quot;) as file:
    file.write(&quot;Python으로 파일을 처리하는 예제입니다.&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&quot;w&quot;&lt;/b&gt;: 쓰기 모드(기존 내용 삭제).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&quot;a&quot;&lt;/b&gt;: 기존 내용에 추가(append).&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2. CSV 파일 처리&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CSV(Comma-Separated Values)는 데이터를 행(row)과 열(column)로 구성하여 저장하는 간단한 형식입니다. Python의 &lt;b&gt;csv 모듈&lt;/b&gt;과 &lt;b&gt;pandas 라이브러리&lt;/b&gt;를 활용하면 편리하게 처리할 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2.1 CSV 파일 읽기 (csv 모듈)&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732535217400&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import csv

with open(&quot;data.csv&quot;, &quot;r&quot;, encoding=&quot;utf-8&quot;) as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2.2 CSV 파일 쓰기&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732535357197&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import csv

data = [
    [&quot;Name&quot;, &quot;Age&quot;, &quot;City&quot;],
    [&quot;Alice&quot;, 30, &quot;New York&quot;],
    [&quot;Bob&quot;, 25, &quot;London&quot;],
    [&quot;Charlie&quot;, 35, &quot;Paris&quot;]
]

with open(&quot;data.csv&quot;, &quot;w&quot;, encoding=&quot;utf-8&quot;, newline=&quot;&quot;) as file:
    writer = csv.writer(file)
    writer.writerows(data)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;newline=&quot;&quot;&lt;/b&gt;: CSV 파일 작성 시 빈 줄 방지.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2.3 CSV 파일 처리 (pandas)&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732535850341&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import pandas as pd

# CSV 파일 읽기
df = pd.read_csv(&quot;data.csv&quot;)
print(df)

# CSV 파일 쓰기
df.to_csv(&quot;output.csv&quot;, index=False)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. JSON 파일 처리&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JSON(JavaScript Object Notation)은 데이터 교환 형식으로 널리 사용됩니다. Python의 &lt;b&gt;json 모듈&lt;/b&gt;을 사용하여 JSON 데이터를 쉽게 다룰 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3.1 JSON 파일 읽기&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732535927269&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import json

with open(&quot;data.json&quot;, &quot;r&quot;, encoding=&quot;utf-8&quot;) as file:
    data = json.load(file)
    print(data)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3.2 JSON 파일 쓰기&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732535965417&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import json

data = {&quot;name&quot;: &quot;Alice&quot;, &quot;age&quot;: 30, &quot;city&quot;: &quot;New York&quot;}
with open(&quot;data.json&quot;, &quot;w&quot;, encoding=&quot;utf-8&quot;) as file:
    json.dump(data, file, indent=4)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;indent=4&lt;/b&gt;: 보기 좋은 포맷으로 출력.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;4. 대용량 데이터 처리&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대용량 데이터 파일을 처리할 때는 메모리 사용량을 최소화하기 위해 한 줄씩 읽는 방식이 유용합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4.1 텍스트 파일 한 줄씩 읽기&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732536000159&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;with open(&quot;large_file.txt&quot;, &quot;r&quot;, encoding=&quot;utf-8&quot;) as file:
    for line in file:
        print(line.strip())&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4.2 CSV 파일 대용량 처리&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732536172919&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import pandas as pd

# 대용량 CSV 파일 읽기 
for chunk in pd.read_csv(&quot;large_data.csv&quot;, chunksize=1000):
    print(chunk.head())  # 첫 5행만 출력&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;chunksize&lt;/b&gt;: 한 번에 읽을 행 수를 지정.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;5. 파일 처리 시 유용한 팁&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;파일 존재 여부 확인&lt;/b&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1732536246788&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import os

if os.path.exists(&quot;sample.txt&quot;):
    print(&quot;파일이 존재합니다.&quot;)
else:
    print(&quot;파일이 없습니다.&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;예외 처리&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1732536314373&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;try:
    with open(&quot;sample.txt&quot;, &quot;r&quot;) as file:
        content = file.read()
except FileNotFoundError:
    print(&quot;파일을 찾을 수 없습니다.&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;6. 실전 예제: JSON 데이터를 CSV로 변환하기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 JSON 데이터를 읽어서 CSV 파일로 저장하는 예제입니다.&lt;/p&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732536550331&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import json
import csv

# JSON 파일 읽기
with open(&quot;data.json&quot;, &quot;r&quot;, encoding=&quot;utf-8&quot;) as file:
    data = json.load(file)

# CSV 파일 쓰기
with open(&quot;output.csv&quot;, &quot;w&quot;, encoding=&quot;utf-8&quot;, newline=&quot;&quot;) as file:
    writer = csv.writer(file)
    # 헤더 작성
    writer.writerow(data[0].keys())
    # 데이터 작성
    for row in data:
        writer.writerow(row.values())&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;결론&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Python은 파일 처리와 데이터 관리에서 강력한 도구를 제공합니다. 텍스트, CSV, JSON 등 다양한 형식을 다루는 기본기를 익히면 데이터 분석, 웹 개발, 자동화 작업에서 큰 도움이 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞으로도 실용적인 Python 예제를 통해 더욱 유용한 정보를 공유하겠습니다.  &lt;/p&gt;</description>
      <category>프로그래밍 언어/Python</category>
      <category>CSV</category>
      <category>json</category>
      <category>Python</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>smart Pro</author>
      <guid isPermaLink="true">https://smartpro.tistory.com/65</guid>
      <comments>https://smartpro.tistory.com/65#entry65comment</comments>
      <pubDate>Mon, 25 Nov 2024 21:10:53 +0900</pubDate>
    </item>
    <item>
      <title>Python 패키지 관리 도구, pip 완벽 가이드</title>
      <link>https://smartpro.tistory.com/64</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;171&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/R9Urx/btsKUk698lX/stbseqdukckQPfto32tu21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/R9Urx/btsKUk698lX/stbseqdukckQPfto32tu21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/R9Urx/btsKUk698lX/stbseqdukckQPfto32tu21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FR9Urx%2FbtsKUk698lX%2FstbseqdukckQPfto32tu21%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;554&quot; height=&quot;171&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;171&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Python 프로젝트를 진행할 때 필수적인 도구인 &lt;b&gt;Pip&lt;/b&gt;은 패키지를 설치하고 관리할 수 있는 표준 도구입니다. 이 글에서는 Pip 명령어의 기본 사용법부터 고급 활용법까지 단계별로 정리했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. Pip란 무엇인가?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Pip(Pip Installs Packages)은 Python 패키지를 설치, 관리, 제거할 수 있는 Python 표준 패키지 관리 도구입니다. PyPI(Python Package Index)와 같은 저장소에서 원하는 라이브러리를 손쉽게 설치할 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Pip 설치 확인&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732455534075&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip --version&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출력 예시:&lt;/p&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732455572097&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip 21.3.1 from /path/to/python (python 3.9)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2. Pip로 패키지 설치&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;기본 패키지 설치&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732455587820&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install &amp;lt;package_name&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;lt;package_name&amp;gt;: 설치할 패키지의 이름.&lt;/li&gt;
&lt;li&gt;예:&lt;br /&gt;numpy 패키지 설치&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1732455594744&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install numpy&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;특정 버전 설치&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732455609743&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install &amp;lt;package_name&amp;gt;==&amp;lt;version&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예:&lt;br /&gt;1.3.3 버전의 pandas 설치&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1732455617337&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install pandas==1.3.3&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;최소 특정 버전 설치&lt;/b&gt;&lt;/h3&gt;
&lt;div style=&quot;color: #333333; text-align: start;&quot;&gt;
&lt;pre id=&quot;code_1732455633856&quot; class=&quot;bash&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;pip install &amp;lt;package_name&amp;gt; &amp;gt;= &amp;lt;version&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예:
&lt;div&gt;
&lt;div&gt;1.3.3 이상 버전으로 설치&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1732455633857&quot; class=&quot;bash&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;pip install pandas&amp;gt;=1.3.3&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;최신 버전으로 업그레이드&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732455730407&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install --upgrade &amp;lt;package_name&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1732455738333&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install --upgrade pandas&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. 설치된 패키지 확인&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;전체 패키지 목록 조회&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732455772813&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip list&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;설치된 모든 패키지와 버전을 확인합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;특정 패키지 정보 확인&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732455784871&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip show &amp;lt;package_name&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1732455793753&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip show numpy&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출력 예시:&lt;/p&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732455805488&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Name: numpy
Version: 1.26.4
Summary: Fundamental package for array computing in Python
Home-page: https://numpy.org
Author: Travis E. Oliphant et al.
Author-email:
License: Copyright (c) 2005-2023, NumPy Developers.
All rights reserved.

## 이하 생략 ##&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;4. 패키지 삭제&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;기본 삭제&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732455955289&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip uninstall &amp;lt;package_name&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1732455962258&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip uninstall numpy&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;한 번에 여러 패키지 삭제&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732455972189&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip uninstall &amp;lt;package1&amp;gt; &amp;lt;package2&amp;gt; ...&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1732455978979&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip uninstall numpy pandas&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;5. requirements.txt 파일 활용&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;requirements.txt 파일은 프로젝트에서 사용하는 패키지와 해당 버전을 기록한 파일입니다. 이 파일을 사용하면 동일한 환경을 다른 시스템에서 쉽게 재현할 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;현재 패키지 목록 저장&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732456052709&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip freeze &amp;gt; requirements.txt&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현재 가상환경에 설치된 패키지와 버전을 requirements.txt에 저장합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;requirements.txt 파일로 패키지 설치&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732456071988&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install -r requirements.txt&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예:
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
위와 같은 내용의 requirements.txt 파일이 있다면, 해당 명령어로 파일에 기록된 모든 패키지가 설치됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1732456087984&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;numpy
pandas
requests==2.26.0&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;6. Pip 명령어 고급 활용&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;패키지 버전 확인&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732456120311&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install &amp;lt;package_name&amp;gt;==&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;== 뒤에 탭(tab)을 눌러 설치 가능한 모든 버전을 확인할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;캐시 삭제&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732456179846&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip cache purge&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;설치 과정에서 저장된 캐시를 정리합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;의존성 문제 해결&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732456231953&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip check&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;패키지 간의 의존성 충돌 여부를 확인합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;7. 주의 사항 및 팁&lt;/b&gt;&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;최신 Pip 사용하기&lt;/b&gt;&lt;br /&gt;오래된 Pip 버전은 호환성 문제를 일으킬 수 있습니다. 항상 최신 버전을 유지하세요.
&lt;div&gt;
&lt;pre id=&quot;code_1732456364555&quot; class=&quot;bash&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;pip install --upgrade pip&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;패키지 이름 철자 확인&lt;/b&gt;&lt;br /&gt;패키지 이름을 잘못 입력하면 No matching distribution found 오류가 발생할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;관리자 권한&lt;/b&gt;&lt;br /&gt;전역 패키지를 설치할 때는 관리자 권한이 필요할 수 있습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;macOS/Linux: sudo 명령어 사용.&lt;/li&gt;
&lt;li&gt;Windows: 명령 프롬프트를 &lt;b&gt;관리자 권한으로 실행&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;마무리&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Pip는 Python 개발의 기본 도구로, 효율적인 패키지 관리를 가능하게 합니다. 위 명령어를 활용하여 프로젝트 환경을 체계적으로 관리하고, 팀 작업 시에도 동일한 환경을 유지하세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 가이드를 참고해 Python 패키지 관리를 더욱 편리하게 해보세요!  &lt;/p&gt;</description>
      <category>프로그래밍 언어/Python</category>
      <category>PIP</category>
      <category>Python</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>smart Pro</author>
      <guid isPermaLink="true">https://smartpro.tistory.com/64</guid>
      <comments>https://smartpro.tistory.com/64#entry64comment</comments>
      <pubDate>Sun, 24 Nov 2024 22:54:54 +0900</pubDate>
    </item>
    <item>
      <title>Conda 가상환경(venv) 생성 및 관리 방법</title>
      <link>https://smartpro.tistory.com/63</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;171&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ca6ukR/btsKS2mb43z/8EbNKNzzhcy5EkjxWefyYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ca6ukR/btsKS2mb43z/8EbNKNzzhcy5EkjxWefyYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ca6ukR/btsKS2mb43z/8EbNKNzzhcy5EkjxWefyYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fca6ukR%2FbtsKS2mb43z%2F8EbNKNzzhcy5EkjxWefyYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;554&quot; height=&quot;171&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;171&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가상환경은 프로젝트마다 독립적인 Python 패키지를 관리할 수 있도록 도와주는 도구입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Conda는 이를 효율적으로 관리할 수 있는 강력한 명령어들을 제공합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 글에서는 Conda를 사용해 가상환경을 생성, 삭제, 목록 조회 등을 하는 방법을 정리했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. Conda 가상환경 생성&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;기본 명령어&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732361108614&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;conda create -n &amp;lt;env_name&amp;gt; python=&amp;lt;version&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;lt;env_name&amp;gt;: 생성할 가상환경의 이름을 지정합니다.&lt;/li&gt;
&lt;li&gt;python=&amp;lt;version&amp;gt;: 사용할 Python 버전을 지정합니다. 예를 들어, Python 3.9를 사용하려면 python=3.9라고 입력합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;예제&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732361124067&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;conda create -n my_env python=3.9&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이름이 my_env이고 Python 3.9를 사용하는 가상환경을 생성합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2. Conda 가상환경 활성화 및 비활성화&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;활성화 명령어&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;활성화되면 프롬프트 앞에 (env_name)이 표시됩니다.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732361138048&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;conda activate &amp;lt;env_name&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;예제&lt;/b&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;pre id=&quot;code_1732361148134&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;conda activate my_env&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;비활성화 명령어&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732361188599&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;(my_env) conda deactivate&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. Conda 가상환경 목록 조회&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 Conda로 생성된 가상환경 목록을 확인하려면 아래 명령어를 사용합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;명령어&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732361280445&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;conda env list&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또는&lt;/p&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732361287319&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;conda info --envs&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;출력 예시&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732361330531&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# conda environments:
#
base                  *  /path/to/anaconda3
my_env                   /path/to/anaconda3/envs/my_env
another_env              /path/to/anaconda3/envs/another_env&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;*: 현재 활성화된 환경을 나타냅니다.&lt;/li&gt;
&lt;li&gt;각 환경의 경로도 함께 표시됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;4. Conda 가상환경 삭제&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용하지 않는 가상환경은 아래 명령어로 삭제할 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;명령어&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732361343463&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;conda remove -n &amp;lt;env_name&amp;gt; --all&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;lt;env_name&amp;gt;: 삭제할 가상환경의 이름을 입력합니다.&lt;/li&gt;
&lt;li&gt;--all: 환경 내 모든 파일과 설정을 삭제합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;예제&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732361353756&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;conda remove -n my_env --all&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;5. Conda 가상환경 내 패키지 설치 및 삭제&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;패키지 설치&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732361362637&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;conda install &amp;lt;package_name&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 버전을 설치하려면 conda install &amp;lt;package_name&amp;gt;=&amp;lt;version&amp;gt;을 사용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예:&lt;/p&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732361371261&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;conda install numpy conda install pandas=1.3.3&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;패키지 삭제&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732361377947&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;conda remove &amp;lt;package_name&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;6. Conda 가상환경 내 패키지 목록 확인&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가상환경에 설치된 모든 패키지를 확인하려면 아래 명령어를 사용합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;명령어&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732361385145&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;conda list&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;7. Conda 가상환경 복제&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 환경을 복제하려면 다음 명령어를 사용합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;명령어&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732361393183&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;conda create --name &amp;lt;new_env_name&amp;gt; --clone &amp;lt;source_env_name&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;예제&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732361438785&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;conda create --name my_env_clone --clone my_env&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;my_env 환경을 my_env_clone이라는 이름으로 복제합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;8. Conda 가상환경을 파일로 내보내기 및 불러오기&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;환경 내보내기 (export)&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732361447160&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;conda env export &amp;gt; environment.yml&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현재 활성화된 가상환경의 설정과 패키지 정보를 environment.yml 파일로 저장합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;환경 불러오기 (import)&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1732361453515&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;conda env create -f environment.yml&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;내보낸 environment.yml 파일을 사용해 동일한 환경을 생성합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;마무리&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Conda는 간단한 명령어로 가상환경을 생성하고 관리할 수 있어 Python 프로젝트에서 필수적인 도구입니다. 특히 다중 프로젝트를 진행하거나 특정 패키지 버전을 유지해야 하는 경우 매우 유용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 명령어들을 적절히 활용하여 여러분의 Python 환경을 효율적으로 관리해 보세요!  &lt;/p&gt;</description>
      <category>프로그래밍 언어/Python</category>
      <category>conda</category>
      <category>Python</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>smart Pro</author>
      <guid isPermaLink="true">https://smartpro.tistory.com/63</guid>
      <comments>https://smartpro.tistory.com/63#entry63comment</comments>
      <pubDate>Sat, 23 Nov 2024 20:32:29 +0900</pubDate>
    </item>
    <item>
      <title>2022년 한국, 미국(연준) 기준금리 인상 및 23년 금리회의 일정</title>
      <link>https://smartpro.tistory.com/62</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;22년 12월 미국 연방준비은행에서 마지막 금리 인상을 50bp 빅스텝 인상하면서 기준금리가 4.25 ~ 4.5%가 되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2022년 한국과 미국의 기준금리를 정리해보았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1년 동안 4% 인상되었네요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;2022년 미국 금리&amp;gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 173px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center; height: 20px;&quot;&gt;&lt;b&gt;날짜&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center; height: 20px;&quot;&gt;변동폭&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center; height: 20px;&quot;&gt;기준금리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;22.03.15&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;+25bp&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;0.25 ~ 0.50%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;22.05.04&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;+50bp&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;0.75 ~ 1.00%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;22.06.15&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;+75bp&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;1.50 ~ 1.75%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;22.07.26&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;+75bp&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;2.25 ~ 2.50%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;22.09.20&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;+75bp&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;3.00 ~ 3.25%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;22.11.02&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;+75bp&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;3.75 ~ 4.00%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;22.12.14&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;+50bp&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;4.25 ~ 4.50%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;361&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bf5LJb/btrU1qqgqYo/B3Hbl3krPclGmNANN6Phi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bf5LJb/btrU1qqgqYo/B3Hbl3krPclGmNANN6Phi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bf5LJb/btrU1qqgqYo/B3Hbl3krPclGmNANN6Phi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbf5LJb%2FbtrU1qqgqYo%2FB3Hbl3krPclGmNANN6Phi1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;742&quot; height=&quot;361&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;361&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한국은 미국보다 조금 더 일찍 21년부터 금리인상을 시작했습니다.\&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;21년 8월 26일 0.75%, 21년 11월 25일 1% 이후로 인상한 기준금리입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1년 동안 2% 인상되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;2022년 한국 금리&amp;gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;날짜&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;b&gt;변동폭&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;b&gt;기준금리&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;2022.01.14&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;+25bp&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;1.25%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;2022.04.14&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;+25bp&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;1.50%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;2022.05.26&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;+25bp&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;1.75%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;2022.07.13&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;+50bp&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;2.25%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;2022.08.25&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;+25bp&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;2.50%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;2022.10.12&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;+50bp&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;3.00%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;2022.11.24&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;+25bp&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;3.25%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;358&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yuwR0/btrU7IQVVLm/5ZgBxGvPSIkGT8pgfkjdhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yuwR0/btrU7IQVVLm/5ZgBxGvPSIkGT8pgfkjdhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yuwR0/btrU7IQVVLm/5ZgBxGvPSIkGT8pgfkjdhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyuwR0%2FbtrU7IQVVLm%2F5ZgBxGvPSIkGT8pgfkjdhK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;742&quot; height=&quot;358&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;358&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;2023년 미국 기준금리 발표예정일&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 2월 1일(수)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 3월 22일(수)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 5월 3일(수)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 6월 14일(수)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 7월 26일(수)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 9월 20일(수)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 11월 1일(수)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 12월 13일(수)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;2023년 한국 통화정책방향 결정회의&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 1월 13일(금)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 2월 23일(목)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 4월 13일(목)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 5월 25일(목)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 7월 13일(목)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 8월 24일(목)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 10월 19일(목)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 11월 30일(목)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>뉴스/경제뉴스</category>
      <category>기준금리</category>
      <author>smart Pro</author>
      <guid isPermaLink="true">https://smartpro.tistory.com/62</guid>
      <comments>https://smartpro.tistory.com/62#entry62comment</comments>
      <pubDate>Sun, 1 Jan 2023 19:02:36 +0900</pubDate>
    </item>
    <item>
      <title>[DB] 데이터베이스 인덱스(Index) 정의, 종류, 설계  : SQL 검색성능 향상</title>
      <link>https://smartpro.tistory.com/61</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;171&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dQaZPi/btrLhgR6oak/yuo13X2tPuxt2SgZ4C2ekk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dQaZPi/btrLhgR6oak/yuo13X2tPuxt2SgZ4C2ekk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dQaZPi/btrLhgR6oak/yuo13X2tPuxt2SgZ4C2ekk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdQaZPi%2FbtrLhgR6oak%2Fyuo13X2tPuxt2SgZ4C2ekk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;553&quot; height=&quot;171&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;171&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;인덱스(Index)란?&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인덱스(Index)는 데이터 검색속도 향상을 위하여 테이블에 저장된 로우(row)를 식별가능하도록 저장한 데이터베이스 오브젝트입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 책을 볼 때 목차, 차례가 존재하는데 이것은 데이터베이스의 인덱스와 유사한 개념입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;목차부터 찾으면 원하는 정보가 몇 페이지에 있는지 금방 알 수 있고 어느 정보가 어떻게 구성되어 있는지 전체적으로 파악하기도 용이합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;B* Tree 기반 인덱스(Index)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인덱스(Index)는 Balanced Tree 기반 인덱스로 Root 블록, Branch 블록, Leaf 블록으로 구성되어 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Balanced Tree는 모든 Leaf 블록이 동일한 Depth를 유지하도록 하여 균형을 유지합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 데이터 검색을 최대 Depth 이하로 하기 때문에 검색속도를 보장받을 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 RDBMS에서 B* Tree를 채용하였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1319&quot; data-origin-height=&quot;678&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KkYAv/btrLiVF9oY3/cWaecSGyp1DRM1fpBsl8fK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KkYAv/btrLiVF9oY3/cWaecSGyp1DRM1fpBsl8fK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KkYAv/btrLiVF9oY3/cWaecSGyp1DRM1fpBsl8fK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKkYAv%2FbtrLiVF9oY3%2FcWaecSGyp1DRM1fpBsl8fK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1319&quot; height=&quot;678&quot; data-origin-width=&quot;1319&quot; data-origin-height=&quot;678&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Leaf Block에서 주황색 선 부분이 있어서 검색을 옆으로 할 수 있어서 매번 Root에서 검색해서 내려올 필요가 없기 때문에 인덱스가 존재하면 그만큼 속도가 더 빠릅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;인덱스(Index)의 종류&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인덱스는 데이터의 고유성을 확보하여 검색성능을 향상시키는 객체입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 컬럼의 데이터들을 정렬하여 별도의 공간에 데이터의 ROWID와 함께 저장합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인덱스에 어떤 것들이 있는지 알아보도록 하겠습니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; border: 1px solid #dcdcdc;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background: #f1f6fc;&quot;&gt;
&lt;td style=&quot;text-align: center; width: 11.2791%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;분류&amp;quot;}&quot;&gt;&lt;b&gt;분류&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 19.6512%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;Index 종류&amp;quot;}&quot;&gt;&lt;b&gt;Index 종류&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 68.9535%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;설 명&amp;quot;}&quot;&gt;&lt;b&gt;설 명&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 11.2791%;&quot; colspan=&quot;1&quot; rowspan=&quot;2&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;유일성&amp;quot;}&quot;&gt;
&lt;div&gt;유일성&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 19.6512%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;Unique Index&amp;quot;}&quot;&gt;Unique Index&lt;/td&gt;
&lt;td style=&quot;width: 68.9535%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;Index 키는 연관된 테이블의 하나의 행만 가리킴&amp;quot;}&quot;&gt;Index 키는 연관된 테이블의 하나의 행만 가리킴&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 19.6512%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;Non-Unique Index&amp;quot;}&quot;&gt;Non-Unique Index&lt;/td&gt;
&lt;td style=&quot;width: 68.9535%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;Index 키는 연관된 테이블의 여러 행을 가리킬 수 있음&amp;quot;}&quot;&gt;Index 키는 연관된 테이블의 여러 행을 가리킬 수 있음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 11.2791%;&quot; colspan=&quot;1&quot; rowspan=&quot;2&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;구성컬럼 수&amp;quot;}&quot;&gt;
&lt;div&gt;구성컬럼 수&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 19.6512%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;Single Index&amp;quot;}&quot;&gt;Single Index&lt;/td&gt;
&lt;td style=&quot;width: 68.9535%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;하나의 컬럼으로 구성된 Index&amp;quot;}&quot;&gt;하나의 컬럼으로 구성된 Index&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 19.6512%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;Composite Index&amp;quot;}&quot;&gt;Composite Index&lt;/td&gt;
&lt;td style=&quot;width: 68.9535%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;여러 개의 컬럼 조합으로 생성된 Index(32개까지 조합)&amp;quot;}&quot;&gt;여러 개의 컬럼 조합으로 생성된 Index(32개까지 조합)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 11.2791%;&quot; colspan=&quot;1&quot; rowspan=&quot;2&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;클러스터&amp;quot;}&quot;&gt;
&lt;div&gt;클러스터&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 19.6512%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;Clustered Index&amp;quot;}&quot;&gt;Clustered Index&lt;/td&gt;
&lt;td style=&quot;width: 68.9535%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;데이터의 레코드 순서가 Index 페이지의 정렬순서와 동일하거나 비슷하게 만들어진 index&amp;quot;}&quot;&gt;데이터의 레코드 순서가 Index 페이지의 정렬순서와 동일하거나 비슷하게 만들어진 index&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 19.6512%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;Non-Clustered Index&amp;quot;}&quot;&gt;Non-Clustered Index&lt;/td&gt;
&lt;td style=&quot;width: 68.9535%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;데이터 레코드의 물리적 순서가 Index의 엔트리 순서와 상관없이 저장되도록 구성된 Index&amp;quot;}&quot;&gt;데이터 레코드의 물리적 순서가 Index의 엔트리 순서와 상관없이 저장되도록 구성된 Index&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 11.2791%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;함수&amp;quot;}&quot;&gt;함수&lt;/td&gt;
&lt;td style=&quot;width: 19.6512%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;Function-Based Index&amp;quot;}&quot;&gt;Function-Based Index&lt;/td&gt;
&lt;td style=&quot;width: 68.9535%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;함수나 표현식의 계산값으로 인덱스 생성&amp;quot;}&quot;&gt;함수나 표현식의 계산값으로 인덱스 생성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 11.2791%;&quot; colspan=&quot;1&quot; rowspan=&quot;2&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;기타&amp;quot;}&quot;&gt;
&lt;div&gt;기타&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 19.6512%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;Bitmap Index&amp;quot;}&quot;&gt;Bitmap Index&lt;/td&gt;
&lt;td style=&quot;width: 68.9535%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;비트를 이용하여 컬럼값을 저장하고 ROWID를 자동으로 생성&amp;quot;}&quot;&gt;비트를 이용하여 컬럼값을 저장하고 ROWID를 자동으로 생성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 19.6512%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;Reverse key Index&amp;quot;}&quot;&gt;Reverse key Index&lt;/td&gt;
&lt;td style=&quot;width: 68.9535%;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;Index 컬럼의 순서는 유지하면서 해당 컬럼 값의 각 바이트 위치를 거꾸로 저장\n ex) 컬럼값 1234 -&amp;gt; 인덱스 4321&amp;quot;}&quot;&gt;Index 컬럼의 순서는 유지하면서 해당 컬럼 값의 각 바이트 위치를 거꾸로 저장&lt;br /&gt;ex) 컬럼값 1234 -&amp;gt; 인덱스 4321&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- ROWID : row를 식별하기 위해 갖는 물리적인 주소 정보&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Index Scan의 종류&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Query를 수행할 때 인덱스(Index)를 이용한 Scan에 어떤 종류가 있는지 알아보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Index Full Scan&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Index 전체를 탐색하는 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 사용컬럼들이 모두 하나의 인덱스에 존재&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- LIKE, IS NOT NULL 연산자 등 조건에서 가능(정렬 보장)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- INDEX 선두컬럼이 조건에 없으면 Table Full scan을 고려하지만 Table Full Scan보다 I/o를 줄일 수 있거나 정렬된 결과를 쉽게 없을 경우 선택&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Index Fast Full Scan&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Index 블록만을 스캔하여 원하는 데이터를 검색하는 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- SELECT 절, 조건절에 사용한 컬럼이 모두 인덱스로 구성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 데이터 정렬 미보장&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 병렬 수행 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Index Skip Scan&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 결합인덱스의 선행조건에 대한 조건이 없고 후행컬럼에 대한 조건만 있는 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;함수 기반 인덱스&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 컬럼에 함수를 적용한 상태로 생성한 인덱스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 장점 : 어플리케이션 수정 없이 성능향상 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 주의사항 : 데이터변경 시 처리비용이 크므로 자주 변경되는 컬럼 적용하지 않는 것이 좋음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;비트맵 인덱스&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- bit 값을 이용하여 컬럼값을 저장하고 ROWID를 자동 생성하는 인덱스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 많은 행을 가지며 Key 열은 적은 분포도(5 이하)를 가질 때 유리 (예: 성별, 결혼여부 등)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- OR 연산자를 포함하는 여러 개의 조건을 자주 사용할 때 유리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;인덱스(Index) 설계&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인덱스 선택 및 순서에 따라 인덱스를 이용한 스캔을 하므로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인덱스를 설계할 때부터 순서를 유의해서 만들어야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 조건절에 항상 또는 자주 사용되는 컬럼 선택&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- '='조건으로 자주 조회되는 컬럼들을 앞쪽 순서에 위치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 분포도가 좋은 컬럼 선정 (분포도 15% 이내)&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; border: 1px solid #dcdcdc;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background: #f1f6fc;&quot;&gt;
&lt;td style=&quot;text-align: center;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;설정기준&amp;quot;}&quot;&gt;&lt;b&gt;설정기준&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;설 명&amp;quot;}&quot;&gt;&lt;b&gt;설 명&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;정 도&amp;quot;}&quot;&gt;&lt;b&gt;정 도&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;카디널리티\n (Cardinality)&amp;quot;}&quot;&gt;카디널리티&lt;br /&gt;(Cardinality)&lt;/td&gt;
&lt;td data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;한 컬럼이 갖고 있는 값의 중복 정도가 낮을수록 좋음&amp;quot;}&quot;&gt;한 컬럼이 갖고 있는 값의 중복 정도가 낮을수록 좋음&lt;/td&gt;
&lt;td data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;높은수록 적합&amp;quot;}&quot;&gt;높은수록 적합&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;선택도\n (Selectivity)&amp;quot;}&quot;&gt;선택도&lt;br /&gt;(Selectivity)&lt;/td&gt;
&lt;td data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;특정 값을 얼마나 잘 선택하는지에 대한 지표\n 선택도 = 컬럼 특정값 row수 / 총 row수 X 100\n 선택도 = 컬럼 평균값 row수 / 총 row수 X 100&amp;quot;}&quot;&gt;특정 값을 얼마나 잘 선택하는지에 대한 지표&lt;br /&gt;선택도 = 컬럼 특정값 row수 / 총 row수 X 100&lt;br /&gt;선택도 = 컬럼 평균값 row수 / 총 row수 X 100&lt;/td&gt;
&lt;td data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;낮을수록 적합\n (5~10% 적정)&amp;quot;}&quot;&gt;낮을수록 적합&lt;br /&gt;(5~10% 적정)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;활용도&amp;quot;}&quot;&gt;활용도&lt;/td&gt;
&lt;td data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;해당 컬럼이 실제 작업에서 얼마나 활용되는지에 대한 값&amp;quot;}&quot;&gt;해당 컬럼이 실제 작업에서 얼마나 활용되는지에 대한 값&lt;/td&gt;
&lt;td data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;높을수록 적합&amp;quot;}&quot;&gt;높을수록 적합&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;중복도&amp;quot;}&quot;&gt;중복도&lt;/td&gt;
&lt;td data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;중복 인덱스 여부에 대한 값&amp;quot;}&quot;&gt;중복 인덱스 여부에 대한 값&lt;/td&gt;
&lt;td data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;없으수록 적합&amp;quot;}&quot;&gt;없을수록 적합&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;인덱스(Index) 설계절차&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인덱스 설계절차는 크게 3 부분으로 이루어져 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 접근경로 수집&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 반복 수행되는 접근경로 : Join 컬럼&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 분포도가 양호한 컬럼&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 조회조건에 사용되는 컬럼&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 자주 결합되어 사용되는 컬럼&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 데이터 정렬 순서와 그룹핑 컬럼&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 일련번호를 부여한 컬럼&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 통계 자료 추출 조건&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 조회 조건이나 조인조건 연산자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 분포도에 의한 후보 컬럼 선정&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 분포도 10~15% 선정 추천&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분포도(%) =&amp;nbsp; 데이터별 평균 row 수 / 테이블의 총 row수 X 100&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 컬럼 조합 및 순서 결정&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 항상 사용되는 컬럼을 선두컬럼 선정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 등치(=) 조건으로 사용되는 컬럼을 선행컬럼으로 선정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- ORDER BY, GROUP BY 순서 적용&lt;/p&gt;</description>
      <category>IT 기술/Database</category>
      <category>index</category>
      <category>Index Scan</category>
      <category>Index 설계</category>
      <category>인덱스</category>
      <category>인덱스 설계</category>
      <author>smart Pro</author>
      <guid isPermaLink="true">https://smartpro.tistory.com/61</guid>
      <comments>https://smartpro.tistory.com/61#entry61comment</comments>
      <pubDate>Sun, 4 Sep 2022 17:53:23 +0900</pubDate>
    </item>
    <item>
      <title>[Coin] 비트겟(Bitget) 가입방법/신원인증(KYC) : 영어버전</title>
      <link>https://smartpro.tistory.com/60</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;171&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A7L8T/btrK49LcIld/UHK0QHTikkvzlLUhoxiNBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A7L8T/btrK49LcIld/UHK0QHTikkvzlLUhoxiNBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A7L8T/btrK49LcIld/UHK0QHTikkvzlLUhoxiNBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA7L8T%2FbtrK49LcIld%2FUHK0QHTikkvzlLUhoxiNBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;554&quot; height=&quot;171&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;171&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비트코인, 이더리움, 리플, EOS, 에이다, 도지코인 등 암호화폐를 거래할 수 있는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;선물거래소인 비트겟의 가입방법과 신원인증(KYC) 방법을 알아보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;비트겟 거래소&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비트겟(Bitget)은 싱가포르에 있는 선물거래소로 거래수수료가 저렴하기로 유명합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;업비트처럼 코인을 현물로 살 수 있는 현물거래소(Spot)이 있고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코인을 롱(long) 또는 숏(short)으로 레버리지 최대 125배까지 사용하는 선물거래소(Futures)가 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Copy Trading으로 유명 코인트레이더의 매매를 copy하여 동일하게 매매할 수도 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작년까지 한글을 지원했지만 법으로 금지해서 현재는 영어버전으로 사용해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;코인 선물 거래&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현물은 싸게 사서 비싸게 파는 거래방법이며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;선물은 &lt;span style=&quot;color: #006dd7;&quot;&gt;현물처럼 싸게 사서 비싸게 파는 공매수인 롱(Long) 거래&lt;/span&gt;를 진행할 수 있고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;고점에서 코인을 빌려서 팔고 저점에서 사는 공매도인 숏(short) 거래&lt;/span&gt;를 진행할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 상승장은 롱으로 수익을 얻고 하락장은 숏으로 수익을 얻을 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;롱과 숏은 레버리지를 이용하여 1배부터 125배까지 사용할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;레버리지가 높은 고배 레버리지를 사용하시면 청산가격의 폭이 좁아서 쉽게 청산될 수 있으므로 주의하셔야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;코인 고수들은 10배 이하를 추천하니 참고하셔서 안전 매매를 하시기 바랍니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;격리(Isolated) 모드&lt;/b&gt;&lt;/span&gt;로 하시면 시드 전체를 사용하는 것이 아니라 실제로 매매한 돈만 사용하고 청산당하므로 계획적으로 매매하실 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;비트겟(Bitget) 회원 가입하기 (Sign Up)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;레퍼럴로 가입하시면 할인된 수수료로 거래가능하고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;미션을 달성할 때마다 쿠폰, 달러를 지급합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회원가입을 진행하시려면 아래 링크를 클릭하시기 바랍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;a href=&quot;https://www.bitget.com/en-GB/referral/register?from=uk-referral&amp;amp;clacCode=6XG0J3QU&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;회원가입하기 링크&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회원가입 페이지로 이동됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sign up 버튼을 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1499&quot; data-origin-height=&quot;561&quot;&gt;&lt;a href=&quot;https://www.bitget.com/en-GB/referral/register?from=uk-referral&amp;amp;amp;amp;clacCode=6XG0J3QU&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVftGr/btrK2nKw6YQ/kIuXPC428wa3InBfkAPoc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVftGr%2FbtrK2nKw6YQ%2FkIuXPC428wa3InBfkAPoc0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1499&quot; height=&quot;561&quot; data-origin-width=&quot;1499&quot; data-origin-height=&quot;561&quot;/&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이메일로 가입하는 방법 기준으로 설명드리겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 핸드폰 번호로 가입하시려면 우측 상단 Mobile Registration을 클릭하시면 Email이 Phone Number를 입력할 수 있는 칸으로 변경됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가입하실 이메일과 비밀번호를 입력하고 Sign up 버튼을 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이메일은 인증할 때마다 인증번호가 전송되므로 실제 이메일을 입력하셔야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비밀번호는 8자리 이상이어야 하고 최소 숫자 1개, 대문자 1개, 특수기호 1개를 입력하셔야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특수기호는 &lt;span style=&quot;background-color: #ffffff; color: #1e1e1e;&quot;&gt;~`!@#$%^&amp;amp;*()_-+={}[]|;:,&amp;lt;&amp;gt;.?/) 입력 가능합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1039&quot; data-origin-height=&quot;807&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cne17c/btrK4FYbJQq/JWyQ3ok5CMorjbrzzVCRFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cne17c/btrK4FYbJQq/JWyQ3ok5CMorjbrzzVCRFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cne17c/btrK4FYbJQq/JWyQ3ok5CMorjbrzzVCRFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcne17c%2FbtrK4FYbJQq%2FJWyQ3ok5CMorjbrzzVCRFk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1039&quot; height=&quot;807&quot; data-origin-width=&quot;1039&quot; data-origin-height=&quot;807&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Verfication 창이 뜨면 Click to verify를 마우스로 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;989&quot; data-origin-height=&quot;561&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Riw1Q/btrK3YX4704/UUvhY8fhwJIhwpkgkV7FkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Riw1Q/btrK3YX4704/UUvhY8fhwJIhwpkgkV7FkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Riw1Q/btrK3YX4704/UUvhY8fhwJIhwpkgkV7FkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRiw1Q%2FbtrK3YX4704%2FUUvhY8fhwJIhwpkgkV7FkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;989&quot; height=&quot;561&quot; data-origin-width=&quot;989&quot; data-origin-height=&quot;561&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Verify는 할 때마다 그림이 다르게 뜰겁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지시사항을 보고 따라하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Select in this order라고 되어 있는데 &quot;이 순서대로 선택하세요&quot; 라는 뜻이고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우측 상단 빨간 네모를 보시면 왕관, 네모, Y 순으로 되어 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 그 순서대로 아래 그림에서 왕관, 파란 네모, Y를 마우스로 하나씩 클릭하고 OK 버튼을 클릭하시면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;618&quot; data-origin-height=&quot;537&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bizb3W/btrK5DZFJVy/m2PM9y3t6sjAPRshTJSe5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bizb3W/btrK5DZFJVy/m2PM9y3t6sjAPRshTJSe5K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bizb3W/btrK5DZFJVy/m2PM9y3t6sjAPRshTJSe5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbizb3W%2FbtrK5DZFJVy%2Fm2PM9y3t6sjAPRshTJSe5K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;618&quot; height=&quot;537&quot; data-origin-width=&quot;618&quot; data-origin-height=&quot;537&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 다음 이메일 인증화면으로 넘어갑니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이메일로 로그인하셔서 메일로 받은 인증번호(숫자 6자리)를 입력하고 Complete Registration 버튼을 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 한참 기다려도 메일이 안 오시면 입력칸 아래에 있는 Send again을 클릭하시면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1012&quot; data-origin-height=&quot;571&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bweVhO/btrK552K9JM/8G7ErUKkzRChwss2AOjLPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bweVhO/btrK552K9JM/8G7ErUKkzRChwss2AOjLPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bweVhO/btrK552K9JM/8G7ErUKkzRChwss2AOjLPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbweVhO%2FbtrK552K9JM%2F8G7ErUKkzRChwss2AOjLPK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1012&quot; height=&quot;571&quot; data-origin-width=&quot;1012&quot; data-origin-height=&quot;571&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 회원가입이 완료되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;선물/현물거래소 메뉴&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상단 메뉴에서 Futures 메뉴를 클릭하시면 메뉴가 펼쳐집니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;거기서 첫번째에 있는 USDT-M Futues 메뉴를 클릭하시면 코인 선물거래(USDT로 거래) 화면으로 이동됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Spot 메뉴를 클릭하시면 코인 현물거래 화면으로 이동됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1836&quot; data-origin-height=&quot;779&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uWz9X/btrK1rl9DkV/NkY0UIN21lOdDck7Q9gRQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uWz9X/btrK1rl9DkV/NkY0UIN21lOdDck7Q9gRQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uWz9X/btrK1rl9DkV/NkY0UIN21lOdDck7Q9gRQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuWz9X%2FbtrK1rl9DkV%2FNkY0UIN21lOdDck7Q9gRQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1836&quot; height=&quot;779&quot; data-origin-width=&quot;1836&quot; data-origin-height=&quot;779&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;신원인증(KYC) 방법&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우측 상단 사람모양 아이콘을 클릭하면 메뉴가 펼쳐집니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Account Information 메뉴를 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1646&quot; data-origin-height=&quot;710&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ihwp4/btrK7CeF6m0/x3BBwetplwPfLCtZYRHCj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ihwp4/btrK7CeF6m0/x3BBwetplwPfLCtZYRHCj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ihwp4/btrK7CeF6m0/x3BBwetplwPfLCtZYRHCj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIhwp4%2FbtrK7CeF6m0%2Fx3BBwetplwPfLCtZYRHCj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1646&quot; height=&quot;710&quot; data-origin-width=&quot;1646&quot; data-origin-height=&quot;710&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래로 스크롤해보시면 맨 아래 좌측에 ID Verification이 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;거기서 Verification 버튼을 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1569&quot; data-origin-height=&quot;697&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAQxbc/btrK486EdfN/jtGxHkwmIFLba0Wy6Rts5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAQxbc/btrK486EdfN/jtGxHkwmIFLba0Wy6Rts5K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAQxbc/btrK486EdfN/jtGxHkwmIFLba0Wy6Rts5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAQxbc%2FbtrK486EdfN%2FjtGxHkwmIFLba0Wy6Rts5K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1569&quot; height=&quot;697&quot; data-origin-width=&quot;1569&quot; data-origin-height=&quot;697&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왼쪽에 있는 Individual Verification에 있는 Start Verification을 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1436&quot; data-origin-height=&quot;529&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/coKEM6/btrK49xIPAE/vFHLb0loyU7wSYL5I8kiF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/coKEM6/btrK49xIPAE/vFHLb0loyU7wSYL5I8kiF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/coKEM6/btrK49xIPAE/vFHLb0loyU7wSYL5I8kiF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcoKEM6%2FbtrK49xIPAE%2FvFHLb0loyU7wSYL5I8kiF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1436&quot; height=&quot;529&quot; data-origin-width=&quot;1436&quot; data-origin-height=&quot;529&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 기본적으로 Identity document type이 ID Card로 되어 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;First Name(이름), Last Name(성)을 입력하시고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Identity no.에 주민번호를 입력하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Date of Birth에 주민등록증에 있는 생일을 입력합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 주민등록증 앞면, 뒷면을 찍으셔서 앞면 사진은 첫번째 upload 버튼을 눌러서 올리시고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뒷면 사진은 두번째 upload 버튼을 눌러서 올리시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(이미지는 PNG, JPG, JPEG으로 하셔야 하고 2M byte 이하의 크기이어야 합니다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 마지막으로 셀카를 찍으셔야 하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한 손에 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&quot;bitget 오늘날짜&quot;를 적은 종이&lt;/span&gt;&lt;/b&gt;와 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;신분증&lt;/b&gt;&lt;/span&gt;을 들고 셀카를 찍어서 세번째 upload에 올리셔야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;종이와 신분증 하나라도 없으면 KYC 진행이 안 되니 참고하세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 주민등록증으로 하니 KYC 할 때 2~3일 정도가 소요되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 하단에 있는 Submit 버튼을 클릭하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1113&quot; data-origin-height=&quot;857&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnhPEo/btrK4XK4BkA/0bgf4H3mBvhl2Co37FXRf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnhPEo/btrK4XK4BkA/0bgf4H3mBvhl2Co37FXRf1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnhPEo/btrK4XK4BkA/0bgf4H3mBvhl2Co37FXRf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnhPEo%2FbtrK4XK4BkA%2F0bgf4H3mBvhl2Co37FXRf1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1113&quot; height=&quot;857&quot; data-origin-width=&quot;1113&quot; data-origin-height=&quot;857&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 개인적으로 여권으로 하는 게 조금 더 편했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무래도 싱가포르라서 그런지 신분증보다 여권으로 하는 게 KYC가 하루 안에 될 정도로 빨랐습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;Identity document type을 Passport로 변경합니다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 First name (이름), Last name(성)을 여권에 있는 철자 그대로 입력합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Identity no.에 여권번호를 입력합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Date of Birth에 여권에 있는 생일을 입력합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여권사진을 찍어서 첫번째 upload 버튼을 누르고 업로드합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 마지막으로 셀카를 찍으셔야 하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한 손에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&quot;bitget 오늘날짜&quot;를 적은 종이&lt;/span&gt;&lt;/b&gt;와&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;여권&lt;/b&gt;&lt;/span&gt;을 들고 셀카를 찍어서 두번째 upload에 올리셔야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;종이와 여권 하나라도 없으면 KYC 진행이 안 되니 참고하세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;721&quot; data-origin-height=&quot;880&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkx3gb/btrK3ZWZvQg/dti1lkJ78O94bVbJ4by980/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkx3gb/btrK3ZWZvQg/dti1lkJ78O94bVbJ4by980/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkx3gb/btrK3ZWZvQg/dti1lkJ78O94bVbJ4by980/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbkx3gb%2FbtrK3ZWZvQg%2Fdti1lkJ78O94bVbJ4by980%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;721&quot; height=&quot;880&quot; data-origin-width=&quot;721&quot; data-origin-height=&quot;880&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비트겟 거래소의 회원가입 방법과 신원인증(KYC)를 영어 버전 기준으로 설명드렸습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;성투하세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://smartpro.tistory.com/57&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2021.05.19 - [암호화폐] - [암호화폐] 업비트 가입방법 및 계좌등록 (코인거래소 1위)&lt;/a&gt;&lt;/p&gt;</description>
      <category>암호화폐</category>
      <category>bitget</category>
      <category>KYC</category>
      <category>비트겟</category>
      <category>선물</category>
      <category>선물거래소</category>
      <category>신원인증</category>
      <category>코인</category>
      <author>smart Pro</author>
      <guid isPermaLink="true">https://smartpro.tistory.com/60</guid>
      <comments>https://smartpro.tistory.com/60#entry60comment</comments>
      <pubDate>Wed, 31 Aug 2022 23:12:13 +0900</pubDate>
    </item>
    <item>
      <title>[ProDS] Brightics Studio 설치</title>
      <link>https://smartpro.tistory.com/59</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;171&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/psgtS/btrJrQHFjcS/mQ8wvHgFqjnBlB7S1KunAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/psgtS/btrJrQHFjcS/mQ8wvHgFqjnBlB7S1KunAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/psgtS/btrJrQHFjcS/mQ8wvHgFqjnBlB7S1KunAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpsgtS%2FbtrJrQHFjcS%2FmQ8wvHgFqjnBlB7S1KunAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;553&quot; height=&quot;171&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;171&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ProDS 자격증 실기 시험에 응시하려면 python, R, Brightics 중 1개를 선택해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 중 Brightics 설치방법을 알아보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Brightics 다운로드 페이지로 이동합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.brightics.ai/download&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.brightics.ai/download&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상단 메뉴 Downloads로 바로 이동하는 링크입니다.&lt;/p&gt;
&lt;figure id=&quot;og_1660222437663&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Brightics AI&quot; data-og-description=&quot;&quot; data-og-host=&quot;www.brightics.ai&quot; data-og-source-url=&quot;https://www.brightics.ai/download&quot; data-og-url=&quot;https://www.brightics.ai/download&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.brightics.ai/download&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.brightics.ai/download&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Brightics AI&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.brightics.ai&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Brightics Studio를 설치하면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OS에 맞게 다운로드 받으시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 Windows를 사ㅏ용하므로 Download(Windows)를 클릭하여 다운로드 받았습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1608&quot; data-origin-height=&quot;681&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CGvT8/btrJvQTI9Gy/o78E6GRsuHpKrYdkiaMmYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CGvT8/btrJvQTI9Gy/o78E6GRsuHpKrYdkiaMmYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CGvT8/btrJvQTI9Gy/o78E6GRsuHpKrYdkiaMmYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCGvT8%2FbtrJvQTI9Gy%2Fo78E6GRsuHpKrYdkiaMmYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1608&quot; height=&quot;681&quot; data-origin-width=&quot;1608&quot; data-origin-height=&quot;681&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다운로드하려면 로그인이 필요합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회원가입을 하고 로그인을 진행하고 다운로드 받습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1627&quot; data-origin-height=&quot;580&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqa1rr/btrJvRZnVtU/foXArtKEWTaitKn8NKw701/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqa1rr/btrJvRZnVtU/foXArtKEWTaitKn8NKw701/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqa1rr/btrJvRZnVtU/foXArtKEWTaitKn8NKw701/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbqa1rr%2FbtrJvRZnVtU%2FfoXArtKEWTaitKn8NKw701%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1627&quot; height=&quot;580&quot; data-origin-width=&quot;1627&quot; data-origin-height=&quot;580&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;용량이 대략 1.6GB로 큰 편이라서 다운로드 받는 시간이 많이 걸립니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엣지에서 다운로드 실패가 종종 발생하는 걸로 보이네요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;크롬으로 다운로드 하시는 것을 추천드립니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다운이 완료되면 다운받은 exe 파일을 실행합니다.&lt;/p&gt;
&lt;!-- 문제링크 --&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display:block&quot; data-ad-client=&quot;ca-pub-2369463050429613&quot; data-ad-slot=&quot;7070014033&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우즈에서 이런 화면이 나오면 추가정보를 클릭하세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;667&quot; data-origin-height=&quot;624&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ra2tY/btrJvGKeL3Q/Vq2iBlu0NAXQSYSeBs8s6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ra2tY/btrJvGKeL3Q/Vq2iBlu0NAXQSYSeBs8s6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ra2tY/btrJvGKeL3Q/Vq2iBlu0NAXQSYSeBs8s6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRa2tY%2FbtrJvGKeL3Q%2FVq2iBlu0NAXQSYSeBs8s6k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;667&quot; height=&quot;624&quot; data-origin-width=&quot;667&quot; data-origin-height=&quot;624&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 이렇게 실행 버튼이 생깁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행 버튼을 눌러줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;661&quot; data-origin-height=&quot;621&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cyIQeT/btrJvjPpFvH/0k8bCdFGHNFSD3vgalKpu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cyIQeT/btrJvjPpFvH/0k8bCdFGHNFSD3vgalKpu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cyIQeT/btrJvjPpFvH/0k8bCdFGHNFSD3vgalKpu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcyIQeT%2FbtrJvjPpFvH%2F0k8bCdFGHNFSD3vgalKpu0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;661&quot; height=&quot;621&quot; data-origin-width=&quot;661&quot; data-origin-height=&quot;621&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치프로그램이 실행됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 경로를 변경하지 않고 Start 버튼을 클릭했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경로변경이 필요하시면 Browse... 버튼으로 변경하시고 Start 버튼을 누르시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;476&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AdzMf/btrJrQ10OfW/ok3MNLX4wuKHePBlk5tWe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AdzMf/btrJrQ10OfW/ok3MNLX4wuKHePBlk5tWe1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AdzMf/btrJrQ10OfW/ok3MNLX4wuKHePBlk5tWe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAdzMf%2FbtrJrQ10OfW%2Fok3MNLX4wuKHePBlk5tWe1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;512&quot; height=&quot;476&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;476&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치가 완료되면 Brighitcs Studio Launcher가 실행됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1002&quot; data-origin-height=&quot;602&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qKviM/btrJyp2ejsU/jKgAkkW0CoNfL2eu8pUh31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qKviM/btrJyp2ejsU/jKgAkkW0CoNfL2eu8pUh31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qKviM/btrJyp2ejsU/jKgAkkW0CoNfL2eu8pUh31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqKviM%2FbtrJyp2ejsU%2FjKgAkkW0CoNfL2eu8pUh31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1002&quot; height=&quot;602&quot; data-origin-width=&quot;1002&quot; data-origin-height=&quot;602&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하단에 있는 Start All Services for ML 을 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 서비스들이 실행되고 크롬 브라우저가 실행되면서 Brightics 화면이 뜹니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1030&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mLKkt/btrJswomxxH/GFH6nTN1EQ5nT9RDkpQdi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mLKkt/btrJswomxxH/GFH6nTN1EQ5nT9RDkpQdi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mLKkt/btrJswomxxH/GFH6nTN1EQ5nT9RDkpQdi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmLKkt%2FbtrJswomxxH%2FGFH6nTN1EQ5nT9RDkpQdi0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1030&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1030&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 방화벽 관련 메시지가 뜨면 액세스 허용을 해주시면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;768&quot; data-origin-height=&quot;544&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dJ5Teb/btrJuZ4DZA9/1lQ63HjEf6FK3XfsfuJzIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dJ5Teb/btrJuZ4DZA9/1lQ63HjEf6FK3XfsfuJzIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dJ5Teb/btrJuZ4DZA9/1lQ63HjEf6FK3XfsfuJzIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdJ5Teb%2FbtrJuZ4DZA9%2F1lQ63HjEf6FK3XfsfuJzIk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;768&quot; height=&quot;544&quot; data-origin-width=&quot;768&quot; data-origin-height=&quot;544&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 문제분석 --&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display:block&quot; data-ad-client=&quot;ca-pub-2369463050429613&quot; data-ad-slot=&quot;5195014954&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;My Project 우측에 있는 + 버튼을 클릭해서 프로젝트를 생성해봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1030&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dDzQ7G/btrJvSjM9iW/EK6rKru4acdrVJ57Y7TRsK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dDzQ7G/btrJvSjM9iW/EK6rKru4acdrVJ57Y7TRsK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dDzQ7G/btrJvSjM9iW/EK6rKru4acdrVJ57Y7TRsK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdDzQ7G%2FbtrJvSjM9iW%2FEK6rKru4acdrVJ57Y7TRsK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1030&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1030&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트가 성공적으로 생성되었습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1030&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWx4R8/btrJyrFKqgK/MM7lxzAmKsGGQJWc6Adkh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWx4R8/btrJyrFKqgK/MM7lxzAmKsGGQJWc6Adkh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWx4R8/btrJyrFKqgK/MM7lxzAmKsGGQJWc6Adkh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWx4R8%2FbtrJyrFKqgK%2FMM7lxzAmKsGGQJWc6Adkh0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1030&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1030&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나중에 모델을 생성해서 분석하는 방법을 설명해드리도록 하겠습니다.&lt;/p&gt;
&lt;!-- 풀이 --&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display:block&quot; data-ad-client=&quot;ca-pub-2369463050429613&quot; data-ad-slot=&quot;9114364072&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;</description>
      <category>IT 기술/IT자격증</category>
      <category>brightics</category>
      <category>ProDS</category>
      <author>smart Pro</author>
      <guid isPermaLink="true">https://smartpro.tistory.com/59</guid>
      <comments>https://smartpro.tistory.com/59#entry59comment</comments>
      <pubDate>Thu, 11 Aug 2022 23:39:18 +0900</pubDate>
    </item>
  </channel>
</rss>