반응형
반응형

Spiral Web using Matplotlib and NumPy

# Spiral Web using Matplotlib and NumPy

import numpy as np
import matplotlib.pyplot as plt

def draw_spiral_web():
    # Parameters
    num_lines = 50  # Number of radial lines
    num_circles = 10  # Number of concentric circles
    max_radius = 10  # Maximum radius of the spiral web

    # Generate theta for radial lines (angle from 0 to 2*pi)
    theta = np.linspace(0, 2 * np.pi, num_lines, endpoint=False)

    # Generate radii for concentric circles
    radii = np.linspace(0, max_radius, num_circles)

    # Create a figure
    fig, ax = plt.subplots(figsize=(6, 6), subplot_kw={'projection': 'polar'})
    ax.set_facecolor('black')  # Set background color to black
    ax.set_xticks([])  # Remove angular ticks
    ax.set_yticks([])  # Remove radial ticks

    # Draw radial lines
    for t in theta:
        ax.plot([t, t], [0, max_radius], color='cyan', linewidth=0.7)

    # Draw concentric circles
    for r in radii:
        ax.plot(np.linspace(0, 2 * np.pi, 100), [r] * 100, color='cyan', linewidth=0.7)

    # Add a spiral
    spiral_theta = np.linspace(0, 4 * np.pi, 500)  # 2 full rotations
    spiral_r = np.linspace(0, max_radius, 500)
    ax.plot(spiral_theta, spiral_r, color='yellow', linewidth=1)

    # Set aspect ratio and display the plot
    ax.set_ylim(0, max_radius)
    plt.show()

# Call the function to draw the spiral web
if __name__ == "__main__":
    draw_spiral_web()
반응형
반응형

사용자가 초 단위로 시간을 입력하면 카운트다운을 실행하는 간단한 Python 프로그램입니다.

time 모듈을 사용하여 매초 업데이트하며, 남은 시간을 출력합니다.

# 사용자가 초 단위로 시간을 입력하면 카운트다운을 실행하는 간단한 Python 프로그램입니다. 
# time 모듈을 사용하여 매초 업데이트하며, 남은 시간을 출력합니다.
import time

def countdown(seconds):
    """
    Counts down from the given number of seconds.
    
    :param seconds: Total seconds to count down
    """
    try:
        while seconds >= 0:
            mins, secs = divmod(seconds, 60)
            timer = f"{mins:02}:{secs:02}"  # Format as MM:SS
            
            # 매초마다 동일한 줄에 시간을 출력.
            # end="\r"를 사용하여 이전 출력 내용을 덮어씁니다.
            print(timer, end="\r")  # Print on the same line 
            
            time.sleep(1)  # Wait for 1 second
            seconds -= 1
        print("Time's up!")
    except KeyboardInterrupt:
        print("\nCountdown stopped.")

# Example: Enter seconds to countdown
if __name__ == "__main__":
    try:
        user_input = int(input("Enter the number of seconds for countdown: "))
        countdown(user_input)
    except ValueError:
        print("Please enter a valid integer.")
반응형
반응형

 

1.용기와 위험 관리 능력
2.데이터 자산의 수익화 이해
3.데이터 거버넌스와 윤리에 집중
4.지성과 감성의 균형 유지

IT 서비스 기업 아바나데(Avanade)가 발표한 ‘생성형 AI 준비도 보고서’에 따르면, 응답자의 90% 이상이 경쟁력 유지를 위해 올해 말까지 AI 중심 운영 모델로 전환해야 한다고 언급했다. 이 조사는 연간 매출 5억 달러 이상인 기업의 비즈니스 및 IT 임원 3,000명을 대상으로 실시됐다.

변화에 대응하기 위해서는 기존의 ‘직무 기술서’에는 없는 새로운 형태의 IT 리더십 기술과 비즈니스 통찰력이 필요하다. 디지털 시스템을 원활하게 운영하면서 경영진과 완벽한 비즈니스 파트너가 되는 것이 오늘날 IT 리더에게 요구되는 역량이다. 다음은 현재 복잡한 비즈니스 환경에서 성공하기 위해 새로운 기준을 구현하고 있는 리더의 주요 특성이다.

## 용기와 위험 관리 능력
과거에는 대담한 기술 아이디어를 구현하려면 상당한 재정적 투자가 필요했다. 오늘날은 생성형 AI 기술 발전으로 이전보다 훨씬 적은 비용으로도 구현이 가능해졌다. 하지만 비용이 감소했음에도 포괄적인 변화 프로그램의 필요성은 여전히 중요하다. 생성형 AI는 단순히 플러그 앤 플레이 솔루션이 아니다. 효과적인 IT 리더십에는 혁신에 대한 용기뿐만 아니라 변화 관리 원칙에 대한 깊은 이해도 필요하다. IT 리더는 기술이 신중하고 효과적으로 통합되도록 전략적 배치에 대한 현명한 조언을 조직에 제공해야 한다. 또한 생성형 AI가 가져오는 새로운 수준의 위험과 규정 준수 문제를 이해하기 위해 법무팀과의 긴밀하게 협력해야 한다.

## 데이터 자산의 수익화 이해
IT 리더는 단순한 기술 전문가가 아니라 데이터에 정통한 ‘데이터 상인’이다. 물리적 상품 대신 가치 있는 데이터, 인사이트, AI/ML 제품을 보유한 상점 주인을 상상해 보라. 이 상점 주인이 성공하려면 고객 니즈를 이해하고, 제품을 최신 상태로 유지하며 고품질로 잘 정리해야 한다. 분석과 컨설팅 같은 부가 가치 서비스를 데이터와 함께 제공하면 더욱 매력적일 수 있다. 이러한 마인드셋과 비즈니스 원칙을 적용함으로써 IT 리더는 새로운 수익원을 창출할 수 있다.

## 데이터 거버넌스와 윤리에 집중
AI가 보편화되면서 윤리적이고 책임감 있는 사용이 중요해졌다. 리더는 잘못된 데이터셋으로 AI 모델이 학습할 때 발생할 수 있는 편향이나 차별의 위험을 완화하기 위해 데이터 거버넌스 정책을 수립해야 한다. AI는 투명성이 핵심이다. 그래야 이해관계자들이 AI가 생성한 인사이트를 이해하고 검증할 수 있다. 기존의 문화, 구조, 거버넌스를 기반으로 프로그램을 구축함으로써 IT 리더는 윤리적 기준을 유지하고 혁신을 촉진하면서 AI의 복잡성을 헤쳐나갈 수 있다.

## 지성과 감성의 균형 유지
AI가 도입된 직장을 관리하려면 IT 리더는 지능 지수(IQ)와 감성 지수(EQ)의 균형을 유지해야 한다. IQ 측면에서는 AI가 중심이 되는 세상에 대한 비전을 갖고 있어야 하며, 직원들이 다른 복잡한 업무에 더 많은 시간을 할애하고 생산성을 높일 수 있도록 AI를 활용할 영역을 파악해야 한다. 더 중요한 것은 EQ다. 긍정적인 영향을 전파하고, 직원들의 참여를 유지하며, 변화하는 인력에 대한 불안감을 해소하고, 새로운 업무 방식과 사고방식에 초점을 맞춘 재교육을 돕기 위해 EQ와 인간 중심 기술이 필수적이다. 실제로 고급 분석으로 인해 이해하기 어려운 수준으로 방대한 양의 데이터가 생성되고 있다. 따라서 깊은 전문 지식이나 순수한 지능보다 부드러운 관리 기술이 더 중요해질 가능성이 높다.

 

https://www.cio.com/article/3614878/%ea%b8%b0%ea%b3%a0-%eb%b9%a0%eb%a5%b4%ea%b2%8c-%eb%b3%80%ed%99%94%ed%95%98%eb%8a%94-%ec%8b%9c%eb%8c%80%ec%97%90-%eb%8c%80%ec%9d%91%ed%95%98%eb%8a%94-it%eb%a6%ac%eb%8d%94%ec%9d%98-%ed%8a%b9%ec%a7%95.html

반응형
반응형

 

https://www.cio.com/article/3613520/%ec%b9%bc%eb%9f%bc-it-%eb%a6%ac%eb%8d%94%ec%9d%98-2025%eb%85%84-%eb%aa%a9%ed%91%9c-it-%ec%9d%b8%ec%8b%9d-%ed%9a%8c%eb%b3%b5%ec%9d%b4-%ec%9a%b0%ec%84%a0%ec%9d%b4%eb%8b%a4.html

 

칼럼 | IT 리더의 2025년 목표, ‘IT 인식 회복’이 우선이다

AI는 잠시 제쳐 두자. IT 리더는 2025년에 2가지 핵심 격차를 해소해야 한다. 경영진의 IT 비즈니스 가치 인식과 최종 사용자의 IT 솔루션 활용 능력이다.

www.cio.com

 

2025년이 다가옴에 따라 기업 경영진은 기술 트렌드와 기회를 실제로 이해하고 행동에 옮기는 데 잠시나마 관심을 기울이고 있다.

IT 트렌드 분석가들은 지난 3년간 ‘챗GPT’라는 용어가 모든 논의를 장악한 현실을 우려하고 있다.

물론 대부분의 이사회 구성원이 생성형 AI를 사용해 봤을 터다. AI는 클라이언트/서버나 클라우드 같은 이전의 혁신 기술과 다르다. 경영진의 마음 속에 확실히 자리잡는 데 성공했기 때문이다.

 

하지만 IT와 관련된 거의 모든 논의가 생성형 AI에 집중돼 있다는 점을 부인할 수 없다. 가트너가 2030년까지 모든 IT 지출에 AI 관련 요소가 포함될 것이라고 밝혔지만, CIO는 AI를 넘어서는 종합적인 기술 상상력을 발휘해야 한다.

기술 리더 40명에게 2025년 CIO가 주목해야 할 AI 이외의 기술 트렌드를 물었다. 결과는 다음과 같다.

기대치 격차 해소

CIO의 가치 창출 역량에 회의적인 시각이 점점 더 커지고 있다. 이 문제는 반드시 해결돼야 한다.

 

최근 맥킨지는 180페이지 분량의 기술 관련 백서에서 “대부분의 조직이 디지털 투자에서 기대했던 효과의 30% 미만을 달성했다”라고 언급했다.

IBM 비즈니스 가치 연구소가 최고 경영진 2,500명을 대상으로 실시한 설문조사에서는 CEO의 36%, CFO의 50%, 기술 리더의 47%만이 IT 조직이 기본적인 기술 서비스를 효과적으로 제공한다고 생각했다. 이는 10년 전과 비교해 큰 폭으로 하락한 수치다. 다시 말해 IT의 신뢰가 약화되고 있다는 의미다.

또한 스페인 바르셀로나에서 열린 가트너 IT 심포지엄/엑스포 2024에서는 “평균적으로 디지털 이니셔티브의 48%만이 성과 목표를 달성하거나 초과 달성한다”라고 밝혔다.

 

거시경제적으로 보면, 2000년 이후 IT 지출은 130% 증가한 반면 GDP는 29% 증가하는 데 그쳤다.

이런 상황에서 기대치 격차를 해소하려면 CIO가 직접 나서야 한다. CIO는 IT 기대치가 형성되는 핵심 영역에 직접 참여해 주요 이해관계자가 IT 지출의 목적, 이유, 대상을 이해할 수 있도록 해야 한다. 이때 다음 3가지 요소를 고려해야 한다.

  • 투명성: IT 예산이 얼마나, 어디에 사용되는지 명확히 공개한다.
  • 통제성: 예산 규모와 사용처에 대한 의사 결정 권한을 이해관계자와 공유한다.
  • 설명 책임: 특정 분야에 예산을 투자하는 이유와 근거를 명확히 제시한다.

IT가 제공하는 가치는 “중대한 보안 사고가 없었다” 또는 “지난해 가동 시간이 양호했다” 같은 일반적인 표현으로 설명할 수 없다. IT 투자 수익은 개별 부서, 이해관계자, 직원 수준으로 세분화돼야 한다. 이를 통해 이해관계자가 IT를 통해 얻는 가치를 인식하도록 해야 한다.

 

더욱이 CIO는 ‘기대치 충족’에서 ‘기대치 초과’로 나아가야 한다. 기술 리더 표본 집단의 의견에 따르면, 현재 ‘기대치를 초과’하는 IT 조직은 10% 미만이다.

기술 문해력 격차 해소

래리 어빙은 상무부 통신정보차관보(NTIA) 재직 7년 동안 대통령, 부통령, 상무장관의 주요 자문역을 맡으며 ‘디지털 격차(Digital Divide)’라는 용어를 만들었다. 그는 인터넷과 관련 기술에 공평하게 접근하는 국내외 정책을 지지했다. 최종 사용자에게 기술을 제공하는 것만으로는 충분하지 않으며, 기술을 생산적으로 활용하는 방법을 이해해야 한다는 것이다.

많은 CIO는 팀원들이 IT 업무 완료 시점을 오해하고 있다고 지적했다. 가령 한 프로젝트 관리자는 협업 플랫폼 출시 중에 팀에게 “완료되는 시점은 언제인가?”라고 물은 적이 있다. 팀은 만장일치로 “모든 직원의 데스크톱에 새로운 앱 아이콘이 설치됐을 때”라고 답했다.

 

오답이다. 정답은 모든 사용자가 앱을 통해 가치를 창출하는 방법을 알게 됐을 때다.

한 CIO는 타파웨어 파티(Tupperware parties)와 같은 사내 제품 체험회를 제안했다. 타파웨어 파티는 1950년대 주부들이 친구와 이웃을 초대해 타파웨어 용기 사용법을 시연하고 판매하는 가구 단위 제품 설명회였다. 이런 방식으로 사용자들에게 IT 서비스로 가치를 창출하는 방법을 직접 보여줄 수도 있다.

오픈AI 공동 설립자이자 현 대표인 그렉 브록만은 “단순히 기술을 만들어 세상에 내놓고 ‘우리 할 일은 끝났다. 나머지는 알아서 할 것’이라고 말하는 태도는 불충분하다”라고 지적했다.

 

오늘날 대부분의 기업에는 기술과 관련해 유해한 태도와 가정이 만연하다. 아놀드 슈워제너거는 “많은 사람이 인공지능을 걱정하지만, 나는 기본적인 무지를 더 걱정한다”라고 말한 바 있다.

CIO가 IT의 제공 가치를 개별화/맞춤화해 설명해야 하는 것처럼, 기술 이니셔티브와 관련된 교육도 개별화/맞춤화해야 한다.

미국 오하이오주 교통부 차관보 겸 CIO인 찰스 애쉬는 기술 문해력이 이해관계자 사이에 균등하지 않다는 점을 인식하고 있다. 이에 따라 기술을 잘 모르는 사용자부터 고급 기술 사용자까지 전체 스펙트럼을 고려해 IT 프로젝트를 맞춤화하고 있다.

 

IT의 가치 창출에의 평판을 개선하고 싶다면, 이런 접근 방식을 채택해야 한다.

반응형
반응형

pip install wifi-qrcode-generator

 

Python을 사용하여 Wi-Fi QR 코드를 생성하려면 qrcodePillow 라이브러리를 활용할 수 있습니다. Wi-Fi QR 코드의 데이터 형식은 다음과 같습니다:

 

import qrcode
from PIL import Image

def generate_wifi_qrcode(ssid, password, encryption="WPA", hidden=False, output_file="wifi_qrcode.png"):
    """
    Generates a Wi-Fi QR code and saves it as an image.
    
    :param ssid: The Wi-Fi network name (SSID)
    :param password: The Wi-Fi password
    :param encryption: Encryption type ('WPA', 'WEP', or 'nopass')
    :param hidden: Whether the network is hidden (True/False)
    :param output_file: Name of the output image file
    """
    # Format Wi-Fi QR code data
    wifi_data = f"WIFI:S:{ssid};T:{encryption};P:{password};H:{'true' if hidden else 'false'};;"
    
    # Generate QR code
    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=10,
        border=4,
    )
    qr.add_data(wifi_data)
    qr.make(fit=True)

    # Create and save the QR code image
    img = qr.make_image(fill_color="black", back_color="white")
    img.save(output_file)
    print(f"Wi-Fi QR code saved as {output_file}")

    # Open and show the image
    img.show()

# Example usage
generate_wifi_qrcode(
    ssid="MyWiFiNetwork",
    password="MySecurePassword",
    encryption="WPA",  # WPA/WEP/nopass
    hidden=False,       # Hidden network? True/False
    output_file="wifi_qrcode.png"
)

코드 설명

  1. Wi-Fi QR 코드 형식:
    • WIFI:S:<SSID>;T:<WPA/WEP/nopass>;P:<Password>;H:<Hidden (true/false)>;;
      • S: Wi-Fi 이름 (SSID)
      • T: 암호화 방식 (WPA, WEP, nopass)
      • P: 비밀번호
      • H: 네트워크 숨김 여부 (true 또는 false)
  2. QR 코드 생성:
    • **qrcode.QRCode**를 사용하여 데이터를 추가하고 이미지를 생성.
    • QR 코드는 기본적으로 검은색 fill_color와 흰색 back_color를 사용하여 생성.
  3. 결과 저장 및 표시:
    • 생성된 QR 코드를 wifi_qrcode.png로 저장.
    • **img.show()**를 사용하여 시스템 기본 이미지 뷰어에서 표시.

결과

  • wifi_qrcode.png 파일이 생성됩니다.
  • QR 코드를 스캔하면 자동으로 Wi-Fi 네트워크에 연결할 수 있습니다.

 

 


 

wifi_qrcode_generator

Generate a QR code for your WiFi network to let others quickly connect without needing to tell them your long and complicated password.

Installation

$ pip install wifi-qrcode-generator

Usage

CLI interactive mode

$ wifi-qrcode-generator

 

CLI non-interactive mode

$ wifi-qrcode-generator -s "Home WiFi" -p "very complicated password" -a WPA -o qr.png -P

Python API

#!/usr/bin/env python3
import wifi_qrcode_generator.generator

qr_code = wifi_qrcode_generator.generator.wifi_qrcode(
    ssid='Home WiFi', hidden=False, authentication_type='WPA', password='very complicated password'
)
qr_code.print_ascii()
qr_code.make_image().save('qr.png')

Dependencies

  • Pillow
  • qrcode

    wifi_qrcode_generator

    Generate a QR code for your WiFi network to let others quickly connect without needing to tell them your long and complicated password.
    $ pip install wifi-qrcode-generator
    
    Usage
    $ wifi-qrcode-generator
    
     Dependencies
    • Pillow
    • qrcode

      wifi_qrcode_generator

      Generate a QR code for your WiFi network to let others quickly connect without needing to tell them your long and complicated password.
      $ pip install wifi-qrcode-generator
      
      Usage
      $ wifi-qrcode-generator
      
       Dependencies
    • #!/usr/bin/env python3 import wifi_qrcode_generator.generator qr_code = wifi_qrcode_generator.generator.wifi_qrcode( ssid='Home WiFi', hidden=False, authentication_type='WPA', password='very complicated password' ) qr_code.print_ascii() qr_code.make_image().save('qr.png')
    • Python API
    • $ wifi-qrcode-generator -s "Home WiFi" -p "very complicated password" -a WPA -o qr.png -P
    • CLI non-interactive mode
    • CLI interactive mode
    • Installation
  • #!/usr/bin/env python3 import wifi_qrcode_generator.generator qr_code = wifi_qrcode_generator.generator.wifi_qrcode( ssid='Home WiFi', hidden=False, authentication_type='WPA', password='very complicated password' ) qr_code.print_ascii() qr_code.make_image().save('qr.png')
  • Python API
  • $ wifi-qrcode-generator -s "Home WiFi" -p "very complicated password" -a WPA -o qr.png -P
  • CLI non-interactive mode
  • CLI interactive mode
  • Installation

 

https://pypi.org/project/wifi-qrcode-generator/

 

wifi-qrcode-generator

Generate a QR code for your WiFi network to let others quickly connect.

pypi.org

 

반응형
반응형

Sunburst Chart

 

Sunburst Chart는 계층적 데이터를 시각화하는 데 사용되는 원형 차트입니다.

데이터의 루트는 중앙에 있고, 계층적으로 데이터를 표현하며, 내부에서 외부로 확장됩니다.

각 섹션은 데이터를 크기별로 구분하여 보여줍니다.

 

"""
    Sunburst Chart는 계층적 데이터를 시각화하는 데 사용되는 원형 차트입니다. 
    데이터의 루트는 중앙에 있고, 
    계층적으로 데이터를 표현하며, 내부에서 외부로 확장됩니다. 
    각 섹션은 데이터를 크기별로 구분하여 보여줍니다.
"""

import plotly.express as px
from PIL import Image

# 계층적 데이터 정의
data = dict(
    labels=["Root", "Child 1", "Child 2", "Grandchild 1", "Grandchild 2", "Grandchild 3"],
    parents=["", "Root", "Root", "Child 1", "Child 1", "Child 2"],
    values=[10, 5, 5, 2, 3, 5]
)

# Sunburst Chart 생성
fig = px.sunburst(
    data,
    names='labels',
    parents='parents',
    values='values',
    title="Sunburst Chart Example"
)

# fig.show()

# Sunburst Chart를 이미지로 저장
image_path = "sunburst_chart_001.png"
fig.write_image(image_path, width=800, height=600)
print(f"Sunburst chart saved as '{image_path}'")

# 저장된 이미지 출력
image = Image.open(image_path)
image.show()  # 기본 이미지 뷰어로 열기

 

 

 

반응형

+ Recent posts