<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>1:1 파이썬 초보</title>
    <link>https://univfinedust.tistory.com/</link>
    <description>✈️ AI, DataScience, Python, Stock
  samsung device solutions, dram process architecture engineer</description>
    <language>ko</language>
    <pubDate>Mon, 6 Apr 2026 03:39:44 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>우주미세먼지</managingEditor>
    <image>
      <title>1:1 파이썬 초보</title>
      <url>https://tistory1.daumcdn.net/tistory/8405627/attach/1d11e25f5c9c4490987592123e7a91bd</url>
      <link>https://univfinedust.tistory.com</link>
    </image>
    <item>
      <title>Python Decorator 이해</title>
      <link>https://univfinedust.tistory.com/3</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Python 문법을 배우다가 난감해지는 순간이 있다. Decorator(@)가 등장했을때.&lt;br /&gt;처음에 얘는 뭐지? 싶다. 막상 알고보면 쓸모도 있고, 아는척하기 좋다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  파이썬 데코레이터란? (Python Decorator)&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;되는 디자인 패턴.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;i&gt;본질: 데코레이터는 함수를 인수로 받아 추가 기능을 수행한 후 새로운 함수를 반환하는 함수&lt;/i&gt;*&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;사용법: 주로 @decorator_name 형태로 사용되며, 장식하고자 하는 함수 바로 위에 위치. 이는 my_function = decorator_name(my_function)과 동일한 의미. (@ 기호를 사용해도 되고, 선언하는 방식으로 써도된다.)&lt;/li&gt;
&lt;li&gt;목적: 코드의 재사용성을 높이고, 기존 함수 로직과 부가 기능(로깅, 권한 확인, 시간 측정 등)을 분리하여 가독성을 향상&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;뭐라는거야..?&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러니까 이렇게 이해하면 된다. 함수형 프로그래밍 언어에서 자주 쓰였던건데, 파이썬에서도 쓸 수 있게 구현된거다.&lt;br /&gt;뭐냐면, 내가 이미 만든 함수가 있을때 이 함수의 앞뒤에서 동작하는 &lt;b&gt;무언가&lt;/b&gt;를 추가하고 싶다.&lt;br /&gt;이럴때 데코레이터를 쓸 수 있다. 예를 들면 내가 함수에 입력한 변수의 유효성 검사 라던가 혹은, 내가 구현한 함수의 실행시간을 잰다던가 등의 작업을 할 수 있다.&lt;br /&gt;여기서 중요한건 Decorator는 &lt;b&gt;내가 적용할 함수&lt;/b&gt;를 인자로 받아야 한다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Decorator Example&lt;/h3&gt;
&lt;pre class=&quot;python&quot;&gt;&lt;code&gt;import time

def timer_decorator(func):
    &quot;&quot;&quot;
    func 함수 실행 시간을 측정하는 데코레이터
    &quot;&quot;&quot;
    def wrapper(*args, **kwargs):
        # 1. 추가 기능: 함수 실행 전 시간 기록
        start_time = time.time()

        # 2. 원래 함수 실행
        result = func(*args, **kwargs)

        # 3. 추가 기능: 함수 실행 후 시간 계산 및 출력
        end_time = time.time()
        execution_time = end_time - start_time
        print(f&quot;함수 '{func.__name__}'의 실행 시간: {execution_time:.4f} 초&quot;)

        # 4. 원래 함수의 결과 반환
        return result
    return wrapper

# 위에서 구현된 Decorator는 아래와 같이 적용할 수 있다.
@timer_decorator
def complex_calculation(n):
    &quot;&quot;&quot;
    시간이 오래 걸리는 복잡한 계산을 가정
    &quot;&quot;&quot;
    sum_val = 0
    for i in range(n):
        sum_val += i
    time.sleep(0.1)  # 0.1초 딜레이 추가
    return sum_val

# 함수를 호출하면 데코레이터가 추가한 시간 측정 로직이 자동으로 실행됩니다.
result = complex_calculation(1000000)

# 출력 결과 예시:
# 함수 'complex_calculation'의 실행 시간: 0.1XXX 초&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&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;데코레이터는 기존 함수나 메서드의 코드를 수정하지 않고 @decorator_name 구문을 사용하여 &lt;b&gt;추가적인 기능(장식)&lt;/b&gt; 을 쉽게 덧붙인다.&lt;/li&gt;
&lt;li&gt;본질적으로 데코레이터는 다른 함수를 입력으로 받아 부가 기능을 수행하는 새로운 함수를 반환하는 함수이며, 클로저(Closure)의 원리를 활용&lt;/li&gt;
&lt;li&gt;주요 사용 목적은 로깅, 권한 확인, 성능 측정 등 핵심 로직과 부가 기능을 분리하여 코드의 재사용성과 가독성을 크게 향상시키는 것&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Python</category>
      <category>Decorator</category>
      <category>python</category>
      <category>데코레이터</category>
      <category>파이썬</category>
      <author>우주미세먼지</author>
      <guid isPermaLink="true">https://univfinedust.tistory.com/3</guid>
      <comments>https://univfinedust.tistory.com/3#entry3comment</comments>
      <pubDate>Tue, 18 Nov 2025 21:55:08 +0900</pubDate>
    </item>
    <item>
      <title>티스토리(tistory) hELLO 스킨 적용 개발자 스킨</title>
      <link>https://univfinedust.tistory.com/2</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;앞으로 티스토리에 Python, AI, DataScience 등 관심사를 작성하려고 한다.&lt;br /&gt;기본 제공 템플릿은 별로라고 생각하던 찰나, Custom 스킨이 등록 가능한것을 발견하였다.&lt;br /&gt;이미 훌륭하신 분이 개발해놓은 예쁜 템플릿이 있어서 그걸 그대로 적용하였다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;✔️ hELLO 스킨 적용 방법&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://pronist.tistory.com/5&quot;&gt;https://pronist.tistory.com/5&lt;/a&gt; 접속&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pronist/hello/releases/download/4.10.5a/hELLO-dist.zip&quot;&gt;https://github.com/pronist/hello/releases/download/4.10.5a/hELLO-dist.zip&lt;/a&gt; 클릭&lt;/li&gt;
&lt;li&gt;zip 파일 받은것을 그대로 업로드 하면 된다.&lt;/li&gt;
&lt;li&gt;블로그 관리 -&amp;gt; &lt;b&gt;스킨 변경 클릭&lt;/b&gt;&lt;br /&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;219&quot; data-origin-height=&quot;89&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wipoA/dJMcabJmhXx/350kLj41FF6GyahRjNrKqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wipoA/dJMcabJmhXx/350kLj41FF6GyahRjNrKqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wipoA/dJMcabJmhXx/350kLj41FF6GyahRjNrKqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwipoA%2FdJMcabJmhXx%2F350kLj41FF6GyahRjNrKqk%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;219&quot; height=&quot;89&quot; data-origin-width=&quot;219&quot; data-origin-height=&quot;89&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;스킨 등록&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;917&quot; data-origin-height=&quot;126&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vmNYj/dJMcag4X1zR/pS2Qr95KjIT9VNYD63q7fK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vmNYj/dJMcag4X1zR/pS2Qr95KjIT9VNYD63q7fK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vmNYj/dJMcag4X1zR/pS2Qr95KjIT9VNYD63q7fK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvmNYj%2FdJMcag4X1zR%2FpS2Qr95KjIT9VNYD63q7fK%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;917&quot; height=&quot;126&quot; data-origin-width=&quot;917&quot; data-origin-height=&quot;126&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;6&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;파일 업로드 (이미지 폴더 안에있는것도 한번 더 업로드해야한다.)&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 파일목록에 images/ 폴더에 있는것도 업로드가 되면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;372&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bruyey/dJMcabP7CiQ/86sxwukq9WneyPYLEMD87k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bruyey/dJMcabP7CiQ/86sxwukq9WneyPYLEMD87k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bruyey/dJMcabP7CiQ/86sxwukq9WneyPYLEMD87k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbruyey%2FdJMcabP7CiQ%2F86sxwukq9WneyPYLEMD87k%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;373&quot; height=&quot;372&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;372&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;461&quot; data-origin-height=&quot;493&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mbDTQ/dJMcagjAXA1/yTk2cnyTZpl3CSxXCFTDK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mbDTQ/dJMcagjAXA1/yTk2cnyTZpl3CSxXCFTDK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mbDTQ/dJMcagjAXA1/yTk2cnyTZpl3CSxXCFTDK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmbDTQ%2FdJMcagjAXA1%2FyTk2cnyTZpl3CSxXCFTDK1%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;461&quot; height=&quot;493&quot; data-origin-width=&quot;461&quot; data-origin-height=&quot;493&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;7&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;적용 끝 !&lt;/li&gt;
&lt;/ol&gt;</description>
      <category>Util</category>
      <author>우주미세먼지</author>
      <guid isPermaLink="true">https://univfinedust.tistory.com/2</guid>
      <comments>https://univfinedust.tistory.com/2#entry2comment</comments>
      <pubDate>Tue, 18 Nov 2025 21:36:40 +0900</pubDate>
    </item>
  </channel>
</rss>