프로세스의 종류 프로세스에는 두 개의 타입이 있다. 첫 번째로는 Independent process, 두 번째로는 Co-operating process이다. independent processs는 다른 프로세스의 실행에 의해서 어떤 영향도 받지 않는 반면에 co-operating process는 다른 실행된 프로세스에게 영향을 받는다. 독립적인 프로세스가 효율적으로 보이겠지만 사실은 co-operative process가 연산 속도, 편의, 모듈화의 관점에서 더 유용하다. IPC(Inter process communication)은 프로세스들이 소통할 수 있도록 해준다. IPC의 종류 프로세스들이 소통할 수 있는 방법은 총 두 가지이다. 첫 번째로는 메모리 공유, 두 번째로는 메시지 전달 방식이다. 물론..
IT
메모리 특정 형식의 데이터 모음으로 정의할 수 있으며, 명령 및 처리된 데이터를 저장하는 데 사용된다. 프로그램이 실행된다면 프로그램에 접근하는 정보와 함께 프로그램이 메인 메모리 안에 있어야 한다. 메인 메모리 메인 메모리는 현대 컴퓨터 작동에 매우 중요하다. 메인 메모리는 수십만에서 수십억에 이르는 크기의 큰 단어 혹은 바이트 배열이다. 메인 메모리는 CPU 혹은 I/O 장치가 공유하는 정보의 저장소이다. 메인 메모리는 프로세서가 효과적으로 프로그램과 정보를 이용하도록 한다. 메인 메모리는 주로 RAM(Random Access Memory)로 알려져있다. 논리적 주소와 물리적 주소 논리적 주소는 CPU에 의해 생성이 된다. 논리적 주소는 가상 주소라고 불리기도 한다. 논리적 주소 공간은 프로세스의 사..
https://aws.amazon.com/ko/premiumsupport/knowledge-center/iot-core-publish-mqtt-messages-python/ Python을 사용하여 AWS IoT Core에 MQTT 메시지 게시 참고: AWS IoT에 연결할 사물을 생성할 필요는 없습니다. 하지만 사물을 활용하면 추가 보안 제어 및 플릿 인덱싱, 작업, 또는 디바이스 섀도우와 같은 다른 AWS IoT 기능을 사용할 수 있습니다. 1. aws.amazon.com Python을 통해서 어떻게 aws iot core mqtt subscribe하는지 궁금해서 검색해보니까 이런 게 떴다. 그런데 이 글에서는 publish하는 방법만 쓰여있고 subscribe하는 방법은 쓰여있지 않았다. 심지어 이 ..
캡스톤 프로젝트로 했다! 일단 문자 메시지를 보내려면 https://www.twilio.com/sms SMS Messaging API | Twilio Send and receive text messages with APIs powering 66+ billion messages a year. Add SMS to your app today. www.twilio.com 위의 링크에서 로그인 한 다음에 전송 할 전화번호와 api key를 발급 받아야 한다. 해외 뉴스를 받으려면 https://newsapi.org/docs/endpoints/everything Everything - Documentation - News API Everything /v2/everything Search through million..
api를 사용하다가 이상한 게 발견 되었다. FLAC stands for "Free Lossless Audio Condenser"' 정상적으로 출력되야하는 문장일텐데 html entity가 발견된 것이다. 이것을 어떻게 없애는지 궁금해서 찾아보니 매우 단순했다. html module을 import 해서 unescape를 해주면 된다. import html html.unescape("FLAC stands for "Free Lossless Audio Condenser"'")
뭐 사실은 거창한 건 없고.. 일을 하면서 오타쿠들을 기운 낼 수 있는 게 역시 최애의 대사 같은 거라서.. 지속적으로 컴퓨터 화면에 띄워주는 그런 명언(?) 프로그램을 만들어보고싶었다. 코드는 이렇다. import tkinter as tk import random OUTSIDE_COL = '#f9ebc8' INSIDE_COL = '#a0bcc2' def quote_flow(): quote = random.choice(quotes) tell, auth = quote.strip().split(',') canvas.itemconfig(label_quote, text=tell) canvas.itemconfig(label_author, text=auth) window.after(5000, quote_flow) ..
class NinizError(Exception): pass #Exception class 상속. override 하고싶으면 각자 커스터마이징. words = ['jordi', 'lion', 'niniz'] for i in words: if 'niniz' == i: raise NinizError(i) #NinizError 발생.
파이썬의 함수는 이와 같은 특징이 있다. 변수 및 자료구조에 할당 가능 함수 인수 전달 가능 함수 결과 반환 가능 즉, 파이썬의 함수는 그 자체만으로도 일급 함수라는 것이다. 이와 같은 특징을 코딩을 통해 확인하고자 한다. 흔히 우리가 보거나 만드는 factorial 기능을 가지는 함수를 보자. def factorial(num) -> int: if num == 1 : return 1 return num*factorial(num-1) 이 함수는 현재 return 값을 함수로 주고 있다. 그러면 변수에도 함수가 할당이 가능한지 확인해보자. var_func = factorial 이 때 파일을 실행해도 에러가 나지 않으며, VS Code에서 var_func위에 마우스를 올려 두면 var func : (num) ..
학습 알고리즘에 데이터를 넣기 전에, 데이터의 변수가 너무 많으면 안 된다. 데이터의 변수가 많으면 생기는 일로는 모델의 해석력이 떨어진다. 변수가 너무 많으면 어떤 게 영향을 주는지에 대한 해석이 힘들다는 뜻이다. 두 번째로는 모델 훈련시간이 매우 상승한다는 것이며 세 번째로는 차원의 저주가 있다. https://oi.readthedocs.io/en/latest/ml/curse_of_dimensionality.html 위 링크에 따르면 차원이 커짐에 따라 공간이 커지고, 그 공간 내에 모든 경우를 다 채우려면 더 많은 데이터가 필요하다. 이처럼 차원이 커짐에 따라 모든 경우를 다 파악하는데 필요한 데이터가 기하급수적으로 늘어나는 현상을 차원의 저주 라고 한다. 이를 위해서 특성 선택 방법론을 정하는 것..