'분류 전체보기' 카테고리의 글 목록 (5 Page) :: 테크니션
반응형

주식 api를 쓰다 보면 휴일을 입력 할때 데이터를 못받아 주는 경우가 있다

그래서 특정 날짜를 입력했을때 가장 가까운 영업일로 바꿔주고

한국시장은 일하는데 미국시장은 쉬는 1월 16일(월) 마틴루터킹 데이에서 각각 구분이 되는지 확인해 보았다

import pandas_market_calendars as mcal
import datetime

# define the Korea Exchange calendar
korea_calendar = mcal.get_calendar('XKRX')
AME_calendar = mcal.get_calendar('NYSE')
start_date = '2020-01-01'
end_date = '2025-12-31'
schedule_kr = korea_calendar.schedule(start_date=start_date, end_date=end_date)
business_days_kr = schedule_kr.index.date.tolist()
schedule_ame = AME_calendar.schedule(start_date=start_date, end_date=end_date)
business_days_ame = schedule_ame.index.date.tolist()

tdy = datetime.date(2023, 1, 16)
if tdy in business_days_kr:
    ytdy_kr = tdy
else:
    result_list = [x for x in business_days_kr if x < tdy]
    ytdy_kr = result_list[-1]

if tdy in business_days_ame:
    ytdy_ame = tdy
else:
    result_list = [x for x in business_days_ame if x < tdy]
    ytdy_ame = result_list[-1]
print(ytdy_kr)
print(ytdy_ame)

결과 :

2023-01-16
2023-01-13

1월 16일에서 가장 가까운 한국장 영업일은 당일이고

미국장은 그날 쉬기 때문에 1월 13일을 반환하였다

 

 

 

반응형
반응형
aws를 통해 만든 ec2 서버에서 웹을 만들고 IP 로 된 웹에 도메인을 등록하려면 다음 절차가 필요하다
  1. Route 53 검색 후 호스팅 영역생성
  2. 호스팅 영역 생성 설정
  3. 생성한 도메인의 레코드 생성
  4. 레코드 생성 설정
  5. 레코드 생성완료 & 가비아와 연결할 주소 확인
  6. My가비아 -> 구입도메인의 관리 탭 클릭
  7. 네임서버 설정
  8. 완료 ☆

그런데 실제 저 절차로 진행하니 안되서 새로 알아보니 포트번호 관련 프로세스 하나가 더 필요했다

웹을 가동하기 위한 포트번호(80, 443 외 하나 더) 를 aws 보안그룹에 등록하는데 

그 포트번호를 인식할수 잇는 다음 명령어를 서버 콘솔에 입력을 해 줘야 도메인과 연결이 된다

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port (포트번호)
반응형
반응형

백그라운드 실행(콘솔 종료 후에도 돌아가게)

 

nohup python main.py&

 

 

코드 수정을 위한 서버 종료하기 (강제 종료)

 

아래 명령어로 미리 pid (프로세스 번호) 본다

 

ps -ef | grep ‘main.py'

 

 아래 명령어로 특정 프로세스를 죽인다

 

kill -9 [pid값]

 

 

#다시 켜기

 

nohup python main.py &

반응형
반응형

리눅스는 다음과 같은 몇 가지 이유로 서버를 작성할 때 윈도우나 다른 GUI 기반 운영 체제보다 선호된다:

안정성: Linux는 안정성과 견고성으로 잘 알려져 있으며, 이는 다운타임 없이 지속적으로 실행해야 하는 서버에 매우 중요합니다. 많은 리눅스 배포판들은 가볍고 서버 환경에 최적화되어 안정성에 기여한다.

보안: 리눅스는 윈도우나 다른 GUI 기반 운영 체제보다 더 안전한 것으로 알려져 있다. 한 가지 이유는 리눅스가 윈도보다 사용자 기반이 작아 악성코드와 해커들에게 덜 매력적인 대상이 된다는 것이다.
또한 Linux 사용자는 방화벽과 같은 보안 기능을 더 잘 제어할 수 있으며 특정 보안 요구 사항을 충족하도록 사용자 정의할 수 있습니다.

오픈 소스: 리눅스는 오픈 소스 운영 체제로, 소스 코드는 누구나 자유롭게 사용할 수 있다. 이를 통해 개발자는 자신의 요구에 맞게 코드를 수정하고 사용자 정의할 수 있으므로 보다 맞춤형 솔루션이 가능합니다.
또한 리눅스의 오픈 소스 특성은 협업과 커뮤니티 지원을 촉진하여 문제를 보다 신속하게 해결할 수 있도록 지원합니다.

비용 효율적: 리눅스는 무료이고 오픈 소스이기 때문에 서버를 위한 비용 효율적인 솔루션입니다. 이렇게 하면 값비싼 라이센스를 구입할 필요가 없어지므로 대규모 서버 구축에 상당한 비용이 소요될 수 있습니다.

확장성: Linux는 확장성이 뛰어나므로 성능 저하 없이 대규모 배포를 처리할 수 있습니다. 따라서 서버 인프라를 신속하게 확장해야 하는 조직에 이상적인 솔루션입니다.

전반적으로 리눅스의 안정성, 보안, 오픈 소스 특성, 비용 효율성, 확장성은 윈도우나 다른 GUI 기반 운영 체제보다 서버 쓰기에 선호되는 운영 체제로 만든다.

반응형
반응형

농구에서 포인트와 리바운드는 중요한 통계이지만 선수의 전반적인 성과에 대한 부분적인 관점만 제공합니다. 

많은 점수를 얻은 플레이어가 그렇게 하기 위해 많은 수의 슛을 하는 경우 반드시 효율적인 득점자는 아닐 수 있습니다.(버럭신ㅜㅜ)

마찬가지로 많은 리바운드를 얻은 선수가 해당 리바운드를 점수로 전환하거나

상대 팀의 득점을 막을 수 없다면 반드시 팀 승리에 도움이 되지 않을 수 있습니다.

2차 통계는 설명에 도움이 될 수 있습니다.

이러한 유형의 요인에 대해 플레이어의 효율성, 효율성 및 팀의 성공에 대한 전반적인 기여도에 대한 통찰력을 제공할 수 있습니다.

코치, 스카우트, 분석가는 단순히 득점과 리바운드 이상을 살펴봄으로써 선수의 강점과 약점을 보다 완벽하게 파악하여

게임 전략, 선수 개발 및 인력 이동에 대해 더 많은 정보에 입각한 결정을 내리는 데 도움이 될 수 있습니다.

1. 플레이어 효율성 등급(PER)은 게임 또는 전체 기간 동안 플레이어의 전반적인 성과를 측정하려는 통계입니다. 포인트, 리바운드, 어시스트, 스틸, 블록 및 턴오버를 포함한 다양한 통계 범주를 고려하여 시즌을 구성합니다.

PER 계산 공식은 다소 복잡하지만 본질적으로 척도로 요약됩니다. 사용률(예: 선수가 코트에 있는 동안 사용하는 팀 소유권의 비율)도 고려하면서 분당 선수의 생산성을 평가합니다.

2. 실제 슈팅 비율(TS%): 이 통계는 선수의 슈팅 효율성을 다음과 같이 측정합니다. 필드 골 수, 자유투 수, 득점한 점수를 고려합니다. 선수의 총 득점을 총 필드 골 시도 및 자유투 시도로 나누어 계산합니다.

3. 공격 등급: 이 통계는 선수가 100개의 소유물을 획득할 때 획득한 점수를 측정합니다. 그들이 법정에 있다는 것입니다. 선수의 득점, 어시스트 및 슈팅 효율성을 고려합니다.

4. 수비 등급: 이 통계는 선수가 코트에 있는 100개의 소유물당 허용하는 점수를 측정합니다. . 선수가 자신의 위치를 ​​방어하고, 슛을 막고, 공을 가로채는 능력을 고려합니다.

5. 리바운드 비율: 이 통계는 선수가 리바운드한 놓친 슛의 비율을 측정합니다. 공격 리바운드와 수비 리바운드를 모두 고려합니다.

6. 어시스트 비율: 이 통계는 어시스트가 발생한 플레이어의 점유율을 측정합니다. 어시스트 수와 플레이어의 사용률을 모두 고려합니다.

특정 경기의 샘플을 확인해보자

 

  • 플레이어 효율성 등급(PER): 29.6
  • 실제 슈팅 비율(TS%): 68.4%
  • 공격력: 123.6
  • 수비력: 101.2
  • 리바운드율: 11.9%
  • 어시스트율: 43.2%

 

PER 29.6은 리그 평균인 15를 훨씬 상회하는 것으로 코트에서 가장 효과적인 선수 중 한 명임을 나타냅니다.

68.4%의 그의 TS%는 득점 기회를 최대한 활용하고 있음을 시사하고,

그의 공격 등급 123.6은 득점 결과에 크게 기여했음을 시사합니다.

수비 측면에서, 그의 101.2점은  득점 기회를 제한할 수 있었음을 시사하고,

11.9%의 리바운드율은 그가 보드에도 기여할 수 있었음을 시사한다.

어시스트율 43.2% 그가 팀원들에게도 득점 기회를 만들 있었음을 시사합니다.

반응형
반응형

스레드와 프로세스는 모두 실행 단위이지만 특성과 목적이 다릅니다.

프로세스는 운영 체제에서 실행되는 프로그램 또는 작업입니다.

자체 메모리 공간, 파일 및 네트워크 연결과 같은 시스템 리소스가 있으며 여러 스레드로 구성될 수 있습니다.

각 프로세스는 다른 프로세스와 완전히 격리되어 있습니다.

즉, 메시지 전달이나 공유 메모리와 같은 프로세스 간 통신 메커니즘을 거치지 않고는

다른 프로세스의 메모리나 리소스에 액세스하거나 수정할 수 없습니다.

---------------

다른 한편 한편 스레드는 프로세스 내에서 가벼운 실행 단위입니다.

스레드는 상위 프로세스와 동일한 메모리 및 리소스를 공유하므로

동일한 프로세스 내의 다른 스레드와 동일한 메모리 및 리소스에 액세스하고 수정할 수 있습니다.

프로세스 내의 스레드는 동시에 실행될 수 있으며 공유 메모리를 통해 서로 통신할 수 있습니다.

-----------

요약하면 프로세스는 자체 메모리와 시스템 리소스가 있는 독립적인 실행 단위인

반면 스레드는 프로세스 내에서 작동하고 동일한 프로세스 내의 다른 스레드와 동일한 메모리 및 리소스를 공유하는 경량 실행 단위입니다.

동일한 프로세스 내에서 여러 스레드가 작동할 수 있지만 각 프로세스는 다른 프로세스와 완전히 격리됩니다.

반응형
반응형

컴퓨터 아키텍처.

컴퓨터 아키텍처는 특정 기능을 수행할 수 있게 해주는 하드웨어와 소프트웨어를 포함하여 컴퓨터 시스템의 내부 구성 요소를 설계한 것입니다.

이제 컴퓨터 시스템의 기본 구성 요소에 대해 이야기해 보겠습니다.

컴퓨터 시스템은 일반적으로 CPU, 메모리, 입/출력 장치 및 시스템 버스로 구성됩니다.

CPU 또는 중앙 처리 장치는 명령 실행을 담당하는 컴퓨터의 두뇌입니다.

메모리 또는 RAM은 데이터와 명령을 일시적으로 저장하는 데 사용됩니다.

입력/출력 장치에는 키보드, 마우스, 프린터 및 모니터가 포함됩니다.

마지막으로 시스템 버스는 CPU, 메모리 및 I/O 장치 간에 데이터를 전송하는 데 사용됩니다.

-----------

다음으로 메모리 계층 구조에 대해 설명하겠습니다.

메모리 계층 구조는 성능을 최적화하기 위해 컴퓨터 시스템에서 메모리를 구성하는 방법입니다.

레지스터로 알려진 가장 빠르고 가장 비싼 수준에서

디스크 스토리지로 알려진 가장 느리고 가장 저렴한 수준까지 여러 수준으로 구성됩니다.

그 사이에는 속도와 비용의 균형을 제공하는 캐시 및 메인 메모리와 같은 수준이 있습니다.

-------------------------

계속해서 명령 세트 아키텍처(ISA)에 대해 이야기해 보겠습니다.

ISA는 CPU가 실행할 수 있는 명령 집합입니다. 각 명령은 고유한 이진 코드로 표시됩니다.

ISA에는 복합형과 축소형의 두 가지 유형이 있습니다.

복잡한 ISA에는 많은 수의 명령어가 있는 반면, 축소된 ISA에는 더 적은 수의 명령어가 있어 더 빠르게 실행할 수 있습니다.

--------------------

이제 파이프라이닝에 대해 알아보겠습니다.

파이프라이닝은 성능을 향상시키기 위해 CPU에서 사용되는 기술입니다.

여기에는 명령을 더 작은 단계로 나누고 동시에 처리하는 작업이 포함됩니다.

그렇게 함으로써 CPU는 한 번에 여러 명령을 처리하여 처리량을 높일 수 있습니다.

--------------------

계속해서 캐시에 대해 이야기해 보겠습니다.

캐시는 자주 액세스하는 데이터를 저장하는 작은 고속 메모리입니다.

자주 액세스하는 데이터를 캐시에 저장하면 CPU가 더 빠르게 액세스할 수 있으므로 명령을 실행하는 데 걸리는 시간이 줄어듭니다.

--------------

다음으로 가상 메모리에 대해 알아보겠습니다.

가상 메모리는 응용 프로그램에서 사용할 수 있는 사용 가능한 메모리의 양을 확장하기 위해 운영 체제에서 사용하는 기술입니다.

임시로 RAM에서 디스크 저장소로 데이터를 전송하고 다른 프로세스를 위해 RAM을 확보합니다.

------------

이제 멀티프로세싱과 병렬성에 대해 이야기해 보겠습니다.

다중 처리는 작업을 동시에 수행하기 위해 여러 CPU를 사용하는 것입니다.

반면 병렬 처리는 단일 CPU 내에서 여러 처리 장치를 사용하여 작업을 동시에 수행하는 것입니다.

----------

마지막으로 성능 평가에 대해 살펴보겠습니다.

성능 평가에는 컴퓨터 시스템의 속도와 효율성 측정이 포함됩니다.

 

반응형
반응형

python 을 일정 시간, 시각 동작 시키는 것은 schedule 모듈을 활용하거나 time을 활용한다

방법은 너무 많으니 찾아보기 바란다 

내가 하려는 것은 Python 으로 Flask를 구동 시켜서 html 페이지에 올라가는 데이터를 일정 주기로 바꿔서 올려주는 코드를 만들고 싶었다

python -> text -> python -> html 로 데이터가 전달이 되는데 html이 한번 구동 되면 

데이터 변동이 있어도 반영이 안되었다

그래서 html을 종료시키고 새로운 데이터로 첨부터 다시 저 루트로 데이터를 받아서 html에 새로 보여주는 방법을 찾아보았다

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run()

이렇게 실행하면 

이렇게 화면이 나오고 저 웹을 종료시키기 위해선 ctrl c를 직접 눌러줘야 한다

그래서 flask  구동 후 일정 시간 후에 시스템을 종료하는 코드를 작성하였다

import sys
from datetime import datetime
from flask import Flask, render_template, request
import os
import threading
import signal


def handle_alarm(signum, frame):
    sys.exit()
    # Flask 애플리케이션 종료

app = Flask(__name__)

# Define a route for the app
@app.route("/")
def index():
    
    return render_template('index.html',
                           )

if __name__ == '__main__':
    signal.signal(signal.SIGALRM, handle_alarm)
    signal.alarm(30)
    threading.Timer(30, lambda: None).start()
    app.run(host='0.0.0.0', port=8080, debug=True, use_reloader=False)

30초 후에 종료되는 코드이며 시간은 main 에서 초 단위로 조절이 가능하다

반응형
반응형

AI 관련주의 무빙을 보면 아 이제 무섭다는 생각이 든다

어쨋든 많은 사람들이 AI 서비스를 사용하고 있고 앞으로의 큰 변화를 이끌 것이다

AI의 구현을 위해서는 대규모 반복 연산이 필요하고 그래서 현재 운용중인 서비스도 자주 에러가 발생하고 있다

사람이 너무 몰려서 트래픽을 감당하지 못하고 있으며 미국인들이 자는 시간에는 그래도 좀 낫다는 말이 있다

그래서 대규모 반복연산에 필요한 GPU를 설계하는 엔비디아의 주가가 두배 가까이 올랐다

로직반도체 관련 회사가 반응을 했는데 메모리 반도체가 받을 수혜가 있을지 생각해 보았다

1. 컨텐츠의 폭발

저번 메모리 슈퍼사이클이 발생한 이유에 대해 알아보면 클라우드 및 서버 수요, 스마트폰 수요의 증가에 의해 발생했는데

결국은 유투브를 비롯한 OTT등 영상데이터의 폭증에 의해 만들어졌다

화제가 되는 AI가 이미지 생성과 chatgpt 인데 이 두가지를 활용하면

많은 사람들이 AI를 이용해 자기만의 컨텐츠를 만들어서 유투브에 올리고 이를 통해 수익화가 가능하지 않을까? 라는 생각과

기존의 컨텐츠 제작자들의 제작비용도 줄어들면 좀 더 많은 양의 컨텐츠를 찍어낼 수 있을 것이고 

영상 컨텐츠 보관을 위한 메모리반도체 수요도 더 많이 늘어날 것이다

같은 컨텐츠를 책과 영화 두개의 용량을 비교하면

평균적으로 이미지가 없는 표준 길이의 책은 약 100,000개의 단어를 포함하고

파일 크기는 수 메가바이트(MB)에서 수십 메가바이트 정도이지만

반면 영화는 일반적으로 수천 개의 비디오, 오디오 및 기타 데이터 프레임으로 구성되며

 해상도가 1080p인 고화질 영화의 파일 크기는 약 5~10GB인 반면 4K 영화의 파일 크기는 약 20~30GB 이상일 수 있다

이미 3분 안에 AI를 통해 영상을 만드는 모습을 보여주는 컨텐츠가 만들어지고 잇다

2. 연산이 가능한 메모리 반도체

연산장치 (CPU, GPU) 와 메모리, 디스크간 속도 차이에 따른 병목현상을 해결하는 움직임중에

사람의 신경 흐름과 유사한 구조로 바꾸기 위한 뉴로모픽 반도체라는게 있다

(왜 속도 차이가 나는지 설명하려면 폰노이만 컴퓨터 구조부터 공부해야 하는데 이건 설명 잘해주는 유투브 보세요 많습니다)

뉴로모픽 칩은 생물학적 뉴런의 구조와 기능을 시뮬레이션하도록 설계되었으며,

스파이크 뉴런, 시냅스 및 수상 돌기와 같은 인간의 신경세포 요소를 사용한다

이러한 요소는 메모리 및 처리 장치와 통합되어 칩이 뇌와 유사한 방식으로 정보를 처리하고 저장할 수 있도록 한다는 것이 골자인데

AI가 더 널리 쓰일수록 연산을 위한 반도체 수요가 늘어날 것이고

늘어난 수요가 연산능력을 탑재한 메모리반도체에 갈 수도 있다

아직 대중화는 안되었고 관련 대학교 연구주제에서나 볼 수 있지만

이미 많은 준비가 되어 있기 때문에 수요가 생긴다면 새로운 영역의 발굴이 이루어지지 않을까 한다

----------------------------------

위 글은 투자를 권유하는 글이 아닙니다

매수 매도는 모두 본인의 의지에 따라야 함을 알려드립니다

----------------------------------------------

반응형
반응형

대 AI 시대가 도래하였다. AI 가 창의적인 예술 분야는 넘보지 못할 것이라는 예상은 보기좋게 사라지게 되었다

많은 사람들이 저소득 직업들이 AI에 대체될거라 생각하는 경향이 있다 이 질문에 대한 답을 AI에게 던져보았다

 

고숙련 직업

AI는 상당한 금융, 의료 및 기술을 포함한 다양한 산업 분야의 고숙련 직업에 영향을 미칩니다. 예를 들어 AI 알고리즘은 이전에 고도로 숙련된 전문가가 수행했던 재무 분석 및 의료 진단과 같은 복잡한 작업을 자동화하는 데 사용됩니다. 이러한 자동화는 효율성과 정확성을 높이는 동시에 해당 분야의 일자리 손실로 이어집니다.

또한 AI는 다음과 같이 고도로 숙련된 전문가가 수행하는 일상적인 작업을 자동화하는 데에도 사용되고 있습니다. 데이터 입력 및 보고서 생성. 이러한 작업은 재무 분석이나 의료 진단만큼 복잡하지는 않지만 여전히 높은 수준의 기술과 교육이 필요합니다. 이러한 작업의 자동화는 효율성 증가로 이어지지만 해당 분야의 일자리 손실도 가져옵니다.

저숙련 직업

AI는 고숙련 직업에 상당한 영향을 미치고 있지만 또한 특히 제조 및 소매와 같은 산업에서 저숙련 일자리에 영향을 미치고 있습니다. 예를 들어, AI 알고리즘은 이전에 저숙련 작업자가 수행했던 조립 라인 작업 및 출납과 같은 작업을 자동화하는 데 사용됩니다. 이러한 자동화는 기업의 효율성 향상과 비용 절감으로 이어지고 있지만 해당 분야의 실직으로 이어지고 있습니다.

또한 AI는 저숙련 근로자가 수행하는 일상적인 작업을 자동화하는 데도 사용되고 있습니다. , 고객 서비스 및 데이터 입력과 같은 이러한 작업에는 높은 수준의 기술이나 교육이 필요하지 않을 수 있지만 여전히 많은 비즈니스에서 중요한 역할을 합니다. 이러한 작업의 자동화는 효율성 증가 및 비용 절감으로 이어지지만 이러한 분야의 일자리 손실도 가져옵니다.

결론

소득으로 나누는건 의미가 없다 공평하게 AI는 넘보고 있다

반응형

+ Recent posts