scribblinganything의 등록된 링크

 scribblinganything로 등록된 티스토리 포스트 수는 694건입니다.

정보이득이란? 지니불순도, 엔트로피, 분류오차 예제 풀이, 파이썬 코드 풀이(Information Gain, Gini Impurity, Entrophy, Classification Error)#2 [내부링크]

목차 엔트로피를 사용해서 정보이득 풀이 및 파이썬 검증 앞서 포스트에서 정보이득(Information Gain)과 지니 불순도(Gini Impurity)를 사용해서 정보 이득을 구하는 방법에 대해 알아보았습니다(https://scribblinganything.tistory.com/719). 이번 포스트는 엔트로피(Entrophy)와 분류오차(Classification Error)를 사용해서 정보이득을 구하는 방법에 대해 알아보겠습니다. 우선 엔트로피 입니다. 정보 이론에서는 엔트로피를 확률 분포의 함수로 정의합니다. 엔트로피는 주어진 확률 분포에서 발생할 수 있는 모든 사건의 가능성을 고려하여 평균적으로 필요한 정보의 양을 측정합니다. 불확실성이 높을수록 엔트로피는 큰 값을 가지며, 불확실성이 낮을수록 ..

정보이득이란? 지니불순도, 엔트로피, 분류오차 예제 풀이, 파이썬 코드 풀이(Information Gain, Gini Impurity, Entrophy, Classification Error)#1 [내부링크]

정보이득이란(Information Gain)? 정보 이득(Information Gain)은 정보 이론과 머신 러닝에서 사용되는 개념으로, 주어진 속성이나 특성을 기준으로 데이터를 분할할 때 얻을 수 있는 정보의 양을 측정하는 지표입니다. 정보 이득은 데이터 분할 전후의 불확실성 감소량을 측정하여 해당 속성이나 특성이 분류 작업에 얼마나 유용한지를 평가하는 데 사용됩니다. 정보 이득은 지니불순도, 엔트로피, 분류오차(Gini Impurity, Entrophy, Classification Error)라고 불리는 개념을 기반으로 계산됩니다. 엔트로피는 주어진 데이터 집합의 혼잡도나 불확실성을 나타내는 지표로, 값이 작을수록 데이터가 분류되어 정돈되어 있다는 의미를 가지고 있습니다. 따라서 정보 이득은 주어진 ..

공분산 행렬이란? 예제로 값 구해보기(Covariance Matrix), 파이썬 코드 [내부링크]

목차 공분산 행렬(Covariance Matrix)이란? 공분산 행렬이란 아래와 같이 수식(Equation)을 정의합니다. 행렬로 표기를 하고 시그마(Σ)로 표기합니다. 시그마(Σ)는 이산 적분식과 다르니 확실히 구분해서 생각해야 합니다. 하나의 문자로 사용됩니다. 공분산 행렬은 저의 경우 기계학습의 PCA(Principal Component Analysis) 계산에서 사용되어 공부를 하게 되었습니다. 그 외에도 다양한 분야에서 공분산 수식으로 처리하는 경우들이 있습니다. 그림1과 같이 데이터셋(Dataset)을 통해 공분산을 만드는 방법에 대해 생각해보겠습니다. 데이터셋의 n행은 샘플들의 개수로 볼수 있고 d는 차원 값 또는 Feature라고 부르는 개수 입니다. 예를 들면 학생 4명에 대한 키와 몸무..

[머신러닝] K mean clustering이란? 예제로 이해하기(클러스터링) [내부링크]

목차 K mean clustering이란? 위 그림1과 같이 무게 별로 측정한 샘플이 12개가 있다고 생각해 보겠습니다. 이를 3개의 Cluster로 나눈다고 생각하면 우리는 인직하는 그대로 쉽게 3개로 나눌수 있을 것입니다. 하지만 컴퓨터 프로그램이 위 분류를 진행하려면 어떻게 해야할 까요? Clustering 분류 방법 중 하나가 K mean Clustering입니다. 이번 포스터에서는 K mean Clustering에 대해 알아보겠습니다. K는 Cluster의 수를 의미합니다. 간단하게 각 클러스터의 평균으로 분류하겠다는 의미입니다. K mean clustering 예제로 알고리즘 만들기 1. 그림1을 분류할 덩어리인 Cluster의 수 k 값을 결정합니다. k 값 결정은 포스트 뒤쪽에서 설명 드리..

[머신러닝]SVM(Support Vector Machines)이란? 예제와 수식풀이 [내부링크]

목차 SVM(Support Vector Machines)이란? SVM이란 간단하게 Dicision Boundary를 만들어주는 것을 의미 합니다. Margin Maximal Margin Classifier Training Data와 Boundary 사이 가장 짧은 거리를 Margin이라고 합니다. 위 그림에서 파란색 화살표를 의미 합니다. 양쪽의 파란색 화살표의 길이가 동일할 때 마진(Margin)의 크기가 가장 큽니다. 이를 Maximal Margin Classifier라고 합니다. 녹색선은 아래와 같이 수식으로 표현될 수 있습니다. 결국 두 벡터의 내적(Dot Product)식이 됩니다. W벡터에 정사영되는 크기가 C로 일정한 x 벡터는 녹색 점선을 가리키는 벡터가 됩니다. 최종적으로 그림3의 노란색..

[머신러닝]Correlation이란? Covariance 차이, 수식, 사용 목적(피어슨 상관관계) [내부링크]

목차 피어슨 상관관계(Pearson's Correlation)이란? 수식(Equation) 앞서 포스트에서 공분산(Covariance)에 대해 설명하였습니다(https://scribblinganything.tistory.com/714). 공분산의 특성은 아래와 같았습니다. 1. 공분산을 통해서 Postive, Negative, No trend의 관계를 확인할 수 있다. 2. 공분산의 결과 값 Cov[X,Y]의 크기를 통해서 공분산 정도가 크다라고 판단할 수는 없다. 3. 공분산 자체의 의미는 중요하지 않고 Correlation을 계산하기 위한 단계로 사용된다. 위 특성 처럼 Covariance와 두 데이터 간의 관계를 해석하는데 어려움이 있어서 Correlation을 사용합니다. Correlation의 ..

[머신러닝] 공분산(Covariance)란? 특징 및 사용 목적 [내부링크]

목차 [머신러닝] Covariance란? 그림1과 같이 한반에 학생에 대한 몸무게에 대한 샘플 값들을 위와 같이 가져왔다고 가정하겠습니다. 이때 평균을 x에 바로 표기된 점이라고 하면 샘플의 분산(Variance)는 아래와 같이 구할 수 있습니다. 분산이란 결국 평균 값에서 어느정도 벗어났는지를 계산하는 것입니다. 샘플의 분산 수식이 위와 같이 나오는 이유는 아래 링크에 자세하게 설명하였으니 참조하시길 바랍니다(https://scribblinganything.tistory.com/687). 이번에는 동일 학생으로 부터 키를 측정했다고 생각해보겠습니다. 이때 몸무게와 키의 측정 값으로 부터 유의미한 분석값이 있지 않을까 하는 고민에서 발생한 개념이 공분산(Covariance)입니다. 공분산은 수식1과 같이..

[머신러닝] 랜덤포레스트란? 쉬운예제로 이해하기(Random Forest, Bagging, Bootstrap) [내부링크]

목차 랜덤포레스트(Random Forest)란? Random Forest 는 Forest의 의미가 주듯이 트리를 모은 숲을 의미 합니다. 트리의 의미에 대해 알고 싶다면 아래 블로그 글부터 순차적으로 확인하시길 바랍니다(https://scribblinganything.tistory.com/709). 랜덤 포레스트를 사용하는 목적은 트리의 특성에 있습니다. 트리는 Training Data에서 높은 정확도(Accuracy)를 가지지만 Testing Data에서는 정확도가 떨어집니다(Inaccuracy). 랜덤포레스트는 이러한 트리들을 랜덤하게 형성해서 정확도(Accuracy)를 높이는 목적으로 사용됩니다. 랜덤포레스트(Random Forest) 모델 생성 테이블1은 데이터셋으로 과자, 채소, 피자를 하루에 ..

[머신러닝]Regression Tree 가지치기(Prune) 예제로 쉽게 이해하기(Cost Complexity/Weakest Link Prunning) [내부링크]

목차 Regression Tree 가지치기란? 앞서 회기형 트리에 대해서 배워보았습니다(https://scribblinganything.tistory.com/711). 회기형 트리(Regression Tree)를 만들때 모든 Training Data에 대해 세분화 해서 Node를 만들어서 분류를 하게 되면 Overfitting이 발생한다고 하였습니다. 이렇게 만들어진 트리 모델을 Test Data에 대입해 보면 Overfitting에서 RSS 값이 높게 나올 수 있습니다. 즉, Overfitting에 의해 Variance가 높아지는 것입니다. 그림1과 같이 하루 약 섭취에 대한 효과의 데이터를 통해 회귀 트리(Regression Tree)를 오른쪽과 같이 만들 수 있습니다. 만드는 방법은 앞전 포스트를 ..

[머신러닝] Regression Tree란? 예제로 쉽게 이해하기 [내부링크]

목차 Regression Tree란? 그림1은 약 하루 섭취 정량이 100%일 경우 섭취량에 따른 효과를 그래프로 그린 것입니다. 기울기와 절편 두 개의 베타(Beta) 파라미터로 표현하는 선형 회기식(Linear Regression)으로 위 그래프를 예측하기 힘듭니다. 그래서 사용하는 방식이 Regression Tree 입니다. Tree 방식에 대한 이해가 부족하면 Regression Tree 를 이해하기 힘드므로 Decision Tree(https://scribblinganything.tistory.com/709) 글을 먼저 보고 오시길 바랍니다. Classification Tree와 회기 트리(Regression Tree) 차이 두 트리 구조의 가장 큰 차이는 Leaf Node에 의해 결정됩니다. ..

[Classification] Decision Tree 예제 설명 #2 (노드 순서 정하기) [내부링크]

목차 앞 시간 포스트(https://scribblinganything.tistory.com/709)에 이어서 이번에는 나이(Numeric value)에 대한 지니 불순도(Gini Impurity)를 계산해보겠습니다. Decision Tree : Gini Impurity 예제로 알아보기 나이의 지니 불순도(Gini Impurity)를 구하기 위해 나이순으로 테이블을 정렬합니다. 위 테이블과 같이 7에서 83으로 작은 수에서 큰수로 정렬합니다. 다음으로 위와 같이 나이들의 평균 값을 구해줍니다. 다음으로 그림1과 같이 평균을 경계로 수식1을 적용해서 지니 불순도(Gini Impurity)를 구합니다. "나이

[Classification] Decision Tree 예제 설명 #1 (Gini Impurity) [내부링크]

목차 Decision Tree란? Decision Tree란 위 그림과 같이 배고픔 Statement을 통해서 Decision을 진행합니다. 이때 Statement의 True와 False에 따라 다음 행동을 결정합니다. Statement True / False 위와 같이 Decision Tree의 결과가 카테고리로 결정 되면 Classification Tree라고 합니다. 결과가 밥을 몇 그릇 먹을지와 같은 숫자의 형태의 경우 이를 Regression Tree라고 합니다. Classification Tree Regression Tree 결과를 카테고리와 숫자를 섞은 형태의 Tree 사용도 상관 없습니다. 위와 같은 트리의 특징은 아래와 같습니다. 1. Numeric Threhold는 다르게 설정 가능 2..

가우시안 나이브 베이즈 이론이란? 스팸메일예제로 쉽게 이해하기(Gaussian Naive Bayes) [내부링크]

목차 가우시안 나이브 베이즈 이론이란(Gaussian Naive Bayes)? 앞서 포스트에서 Multinomial Naive Bayes Claasifier에 대해 배워 보았습니다(https://scribblinganything.tistory.com/707). 이번 가우시안 나이브 베이즈 이론은 Multinomial Naive Bayes Claasifier의 연장선상에서 배우는 개념이라 혹시 앞에 포스트를 보지 않으셨다면 보시고 오시길 추천 드립니다. 수식1의 Naive Bayes 이론을 사용해서 수식2를 전개 하였습니다. 수식2를 통해 우도(Likelihood)의 확률 값를 구할 수 있었습니다. 기존에 확률 값 p를 스팸 메일의 n 개 중에 "A"라는 문구가 들어간 개수 m을 찾아서 구하는 방식이었다면..

Multinomial Naive Bayes Classifier 수식 및 스팸 메일 예제로 이해하기(Laplace estimator) [내부링크]

목차 Bayes’ Theorem 베에즈 이론에 대해 알아보겠습니다. P(A|B) : Posterior P(A) : Prior P(B|A) : Likelihood P(B) : Normalizing Constant Bayes 이론은 사전 확률(prior probability)과 사후 확률(posterior probability)을 사용하여 어떤 사건이 발생할 확률을 계산합니다. 사전 확률은 사건이 발생하기 전에 이미 알고 있는 정보를 바탕으로 계산되며, 사후 확률은 사건이 발생한 후 추가 정보를 토대로 계산됩니다. 간단히 말하자면 training data set으로 P(A|B)와 P(B)를 알아내고 P(B|A)를 구하는 것입니다. 구하고자 하는 값은 위와 같습니다. 해당 값이 무엇인지는 아래 예제를 한번 해..

[로지스틱회귀]로짓, 우도, 오즈비 란?(Logit, Log odds, Likelihood function, Logistic Regression) [내부링크]

목차 Logistic Regression logit(로지스틱회귀 로짓)이란? 앞서 포스트에서 로지스틱 회귀에 대해 간단히 알아보았습니다([머신러닝]로지스틱회귀란?(Logistic Regression, 시그모이드 함수) (tistory.com)). 이번에는 로지스틱 회귀의 다양한 특성에 대해 알아보겠습니다. 로지스틱 회귀분석(Logistic Regression)은 분류(Classification) 모델 중 하나로, 기존에 Linear Regression으로 모델을 예측하기 힘든 Category로 분류해야하는 경우 사용합니다. 로지스틱 회귀는 시그모이드 함수 형태를 사용해서 수식1과 같이 나옵니다. 로지스틱 회귀분석에서 "logit"이란, 로지스틱 회귀모델에서 선형 예측식을 구성하는 항으로, 로그 오즈(lo..

SGD, BGD, mini BGD란? 차이를 예제로 쉽게 이해하기(Stochastic Gradient Descent, Batch, Epoch, Iteration) [내부링크]

목차 SGD란?(Stochastic Gradient Descent) SGD(Stochastic Gradient Descent)는 머신 러닝에서 가장 많이 사용되는 최적화 알고리즘 중 하나입니다. 이 알고리즘은 모델의 파라미터(Parameter)를 조정하여 손실 함수 값이 가장 적게나오는 지점을 찾아서 그때의 파라미터를 사용해서 모델을 만들어 냅니다. SGD의 특징은 전체 데이터셋을 한 번에 학습하는 대신 데이터셋을 무작위로 섞은 후 일정 크기 데이터 포인트에 대해 모델을 학습시킵니다. 이렇게 하면 학습이 더욱 빠르게 수렴하고, 더욱 미세한 변화도 파악할 수 있습니다. 여기서 중요한 용어 3가지가 나옵니다. Batch-Size(배치 사이즈) 위 그림에서 녹색에 해당하는 부분입니다. SGD에서 데이터를 처리..

로지스틱 회기 Gradient 수식 풀이(Logistic Regression, Equation) [내부링크]

목차 로지스틱 회기 Gradient 수식 풀이: 로지스틱 Logistic Regression은 위와 같이 시그모이드(Sigmoid) 함수 형태를 따릅니다. 수식은 다음과 같습니다. 입력 값이 많아지면 아래 수식2와 같이 표현 될 수 있습니다. p(x)는 확률 값으로 0~1 사이로 표현 될 수 있습니다. 로지스틱 회기 Gradient 수식 풀이: Cost Function & Gradient 확률값의 Cost Function은 CE(Cross Entropy)로 표현 합니다. 엔트로피의 개념은 아래 링크를 참조하시길 바랍니다(https://scribblinganything.tistory.com/700). 크로스 엔트로피는 기존의 엔트로피에 자신의 예측치를 넣은 값으로 예측치와 실제 값이 맞을 확률이 높아 질수..

선형회기 Gradient 수식 풀이(편미분, equation, Linear Regression) [내부링크]

목차 이번 포스트에서는 선형회기의 Gradient 구하는 방법을 수식으로 전개해보겠습니다. 선형회기 Gradient 수식 풀이: 선형회기식 선형 회기란 위 그래프와 같이 데이터가 주어져있을 때 데이터 셋을 대표하는 모델링을 하는 것입니다. 위와 같은 모델은 수식1과 같이 간단한 1차원 수식으로 전개 됩니다. 이때 베타 파라미터(parameter) 값을 찾는 것이 선형회기 이론입니다. 위 수식은 하나의 입력에 대한 출력이고 다차원으로 가면 아래와 같이 수식을 쓸 수 있습니다. 위와 같은 수식을 Linear Regression Hypothesis라고 합니다. 선형회기 Gradient 수식 풀이: Cost Function & Gradient Loss 함수 또는 Cost 함수는 수식2의 예측 값의 오차가 얼마나..

[머신러닝]민감도, 특이도, F1-Score란?(Sensitivity, Specificity) [내부링크]

목차 민감도, 특이도란?(Sensitivity, Specificity) 민감도(sensitivity)는 모델이 양성 클래스(positive class)를 정확하게 예측한 비율을 의미하며, 특이도(specificity)는 모델이 음성 클래스(negative class)를 정확하게 예측한 비율을 의미합니다. True Positive (TP): 100개 (실제 스팸인데 스팸으로 예측한 경우) False Positive (FP): 30개 (실제 정상 메일인데 스팸으로 예측한 경우) True Negative (TN): 850개 (실제 정상 메일인데 정상 메일로 예측한 경우) False Negative (FN): 20개 (실제 스팸인데 정상 메일로 예측한 경우) Positive = TP + FN : 120개 (실제..

Classification 모델 성능 검증: Accuracy, Precision/Recall, ROC-AUC(예제 실습, 파이썬) [내부링크]

목차 Classification 모델 성능 검증: Accuracy 머신러닝에서 Accuracy, Precision/Recall, ROC-AUC는 분류 문제의 성능을 평가하는 지표들입니다. 이러한 지표들은 모델의 예측 결과를 실제값과 비교하여 얼마나 잘 예측하는지 측정합니다. Accuracy (정확도)란 전체 데이터 중에서 모델이 올바르게 분류한 데이터의 비율입니다. 정확도는 가장 직관적인 지표이지만, 클래스 간 데이터의 분포가 불균형할 경우 잘못된 성능 평가를 할 수 있습니다. 간단히 말해 실제 데이터 수에서 바르게 예측한 비율입니다. 정확도 = (올바르게 분류된 데이터 수) / (전체 데이터 수) Accuracy 예제 Accuracy를 이해하기 위한 간단한 예제를 드리겠습니다. 이진 분류 문제를 가정해..

엔트로피(Entropy)란? 파이썬 엔트로피 예제 실습 [내부링크]

목차 엔트로피(Entropy)란? 엔트로피는 머신러닝에서 데이터셋의 불확실성을 나타내는 척도입니다. 엔트로피를 계산하기 위해서는 데이터셋에서 각 클래스가 발생할 확률을 알아야 합니다. 수식으로 표현하면 다음과 같습니다. 여기서 H(X)는 데이터셋 X의 엔트로피를 나타내며, p(x)는 데이터셋 X에서 클래스 x가 발생할 확률을 나타냅니다. 이 식은 다음과 같이 해석할 수 있습니다. 데이터셋에서 각 클래스가 발생할 확률을 곱한 후, 이를 로그로 변환하고 음수로 바꾼 값들을 모두 더한 것입니다. 수식1에서 log2를 사용하는 이유는 확률의 특성과 관련이 있습니다. 우선, 확률은 항상 0과 1 사이의 값을 가집니다. 하지만, 이러한 확률을 곱하면 값이 매우 작아질 수 있습니다. 예를 들어, 0.001과 0.00..

[머신러닝] k-fold cross validation이란? 파이썬 예제 실습 [내부링크]

목차 [머신러닝] k-fold cross validation이란? k-fold 교차 검증(k-fold cross validation)은 머신러닝에서 모델의 성능을 측정하고 검증하는 기술 중 하나입니다. 이 방법은 데이터 세트를 k개의 부분집합으로 분할하고, 이 중 하나를 검증 데이터(validation data)로 사용하고, 나머지 k-1개의 부분집합을 학습 데이터(training data)로 사용하여 모델을 학습시키는 과정을 k번 반복하는 것입니다. 이 과정에서 k개의 모델이 생성되고 각각의 모델은 서로 다른 검증 데이터로 성능을 측정합니다. 이렇게 측정된 성능 지표를 k번 평균하여 최종 성능 지표를 계산합니다. 위 그림의 경우 5-fold cross validation을 수행합니다. 데이터 세트는 5..

[머신러닝] 편형(Bias)와 분산(Variance)란? 파이썬 예제 코드로 이해하기(Trade off) [내부링크]

[머신러닝] 편형(Bias)와 분산(Variance)란? 머신러닝에서 편향(bias)과 분산(variance)은 모델의 성능과 일반화 능력에 영향을 주는 두 가지 주요 요소입니다. 이 두 가지는 모델의 예측 오차를 계산하는 데사용 합니다. **바는 평균을 의미 하고 삿갓은 추정값을 의미합니다. 1. 편향(bias) : 편향은 모델이 실제 데이터와 얼마나 차이가 있는지를 나타내는 척도입니다. 높은 편향을 가진 모델은 학습 데이터에 대해서도 부정확한 예측을 하는 경향이 있습니다. 이는 모델이 너무 단순하거나, 데이터의 복잡한 패턴을 충분히 학습하지 못한 경우 발생합니다. 이를 과소적합(underfitting)이라고도 합니다. 2. 분산(variance) : 분산은 모델이 학습 데이터의 작은 변화에 얼마나 민..

[선형대수학] 행렬 고유값과 고유벡터란? 수식풀이, 파이썬으로 예제 검증(Eigen value, eigen vector, python) [내부링크]

목차 [선형대수학] 행렬 고유값과 고유벡터란? 선형대수학에서, 고유값(eigenvalue)과 고유벡터(eigenvector)는 선형변환(linear transformation)에 대한 중요한 개념입니다. 선형변환은 벡터를 다른 벡터로 변환하는 연산입니다. 예를 들어, 2차원 벡터를 회전하는 변환이나, 3차원 벡터를 축소시키는 변환 등이 있습니다. 이때 고유값과 고유벡터는 선형변환에 대한 특별한 속성을 가지고 있습니다. 고유벡터는 선형변환을 적용해도 방향이 변하지 않는 벡터를 말합니다. 다시 말해서, 어떤 선형변환을 적용하더라도 그 벡터가 향하는 방향은 변하지 않습니다. 수식으로는 다음과 같이 표현할 수 있습니다. Av = λv, 수식1 여기서 A는 선형변환, v는 고유벡터, λ는 고유값입니다. 동일한 벡..

[머신러닝]일반화(Generalization), 과적합(Overfitting, Underfitting)이란? 파이썬 코드 예제(그래프 포함) [내부링크]

목차 일반화(Generalization), 과적합(Overfitting, Underfitting) 이란? 일반화(Generalization) 머신러닝에서 Generalization(일반화)은 모델이 학습 데이터에 대해 학습한 후, 이전에 본 적 없는 새로운 데이터에 대해 정확하게 예측할 수 있는 능력을 말합니다. 예를 들어 앞서 선형 회기(Linear Regression)에서 가지고 있는 데이터 셋을 사용해서 파라미터들을 유추해서 모델링을 만들어 이 후에 발생하는 입력에 대한 출력을 예측 가능하게 하는 것을 의미합니다. 과적합(Overfitting/Underfitting) 일반적으로 머신러닝 모델을 학습시키는 과정에서는, 훈련 데이터셋을 사용하여 모델의 가중치(Weights)를 조정하고 최적화를 수행합니..

[Python] 원핫인코딩(One Hot Encoding)이란? 쉬운 예제로 실습하기 [내부링크]

목차 원핫인코딩(One Hot Encoding)이란? 원 핫 인코딩(One Hot Encoding)은 카테고리 변수(Categorical Variable)를 머신러닝에서 처리할 수 있는 Binary 벡터(Vector) 값으로 변환해주는 방법을 말 합니다. 선형 회기 예를 들어 설명하겠습니다. 위 수식1은 다중 선형 회기 수식입니다. X, Y 값은 사용자가 가지고 있는 데이터 셋의 값입니다. 만일 입력 값 중에 하나가 색상의 값으로 빨강, 노랑, 파랑 색으로 들어오면 해당 입력은 범주형 변수(Categorical variable)이므로 Binary로 변환해야 합니다. 그래서 아래와 같이 표현할 수 있습니다. 빨강 [1 0 0], 파랑 [0 1 0], 노랑 [0 0 1] 로 벡터 값으로 변환해서 처리 할 수..

[Python] Multi Linear Regression 실습 3차원 모델 그리기 (Boston House Price 주택 가격 추정, 다수 선형 회기) [내부링크]

목차 파이썬 Multi Linear Regression 실습 #1 보스톤 주택 가격에 관련된 값들을 서버에서 받아서 dataframe으로 넣어 줍니다. 예제 코드>> import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/rasbt/python-machine-learning-book-3rd-edition/master/ch10/housing.data.txt', header=None, sep='\s+') df.columns = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV'] print(df.hea..

선형회기 R제곱 통계값이란?(Linear Regression, R2, R^2, R Square) [내부링크]

목차 선형회기 R제곱 통계값이란?(Linear Regression, R2, R^2) R제곱 통계값은 선형 회기 모델이 종속 변수에 대한 모델링을 얼마나 잘 표현해주었는지를 알려주는 적합도입니다. 결정계수라고 불리는 R제곱 값은 전체 변동량 중에서 선형 회기 모델에 의해 표현 되어지는 비율을 얘기합니다. 수식으로 표현하면 아래와 같습니다. 수식1에서 RSS는 Sum of Squared Residual 로 SSR로 표현하기도 합니다. RSS는 실제 데이터 값에서 추정값을 빼고 제곱을 취한 값으로 이를 Residual이라고 합니다. 수식1에서 TSS는 Total Sum of Square로 데이터 값에서 평균을 빼고 제곱을 취한 값입니다. TSS의 의미는 선형회기 모델이 만들어지기 전에 데이터의 예측 예러를 가..

통계 가설검정, 귀무/대립 가설, 유의수준, p-value(Hypothesis Test, Null, Alternative)이란? 선형회기(Linear Regression) 수식 적용 [내부링크]

목차 통계 가설 검정, 귀무/대립 가설, 유의수준, p-value란? 가설 검증/검정(Hypothesis Tests)는 말 그대로 가설을 검증하는 이론입니다. 다만 느낌적으로 풀어내는 것이 아닌 수식적으로 풀어내는 것입니다. 예를 들어 동일한 크기의 소리를 발생하는 스피커를 제작 하는 회사가 있다고 가정하겠습니다. 해당 소리 크기는 10 pascal에 맞춰서 나온다고 합니다. 이중에서 샘플 n개를 뽑아서 실제 샘플의 스피커들이 10 pascal에 맞추는지 확인하는 것이 가설 검증이라고 합니다. 검증을 위해 2가지 가설을 세울 수 있습니다. 귀무가설(Null Hypothesis) : 반대로 기각하려는 가설 H0 대립가설(Alternative Hypothesis) : 증명하려는 가설 H1 가설 검증은 일반적..

통계 신뢰 구간(Confidence Interval)이란? 선형회기 적용 수식 풀이 [내부링크]

목차 통계 신뢰 구간(Confidence Interval)이란? 선형회기에서 신뢰구간(Confidence Interval)이 어떻게 동작하는지 알아보기 전에 통계학에서 신뢰 구간을 어떻게 정의하고 수식으로 전개하는지에 대해 알아보겠습니다. 그림1과 같이 모집단(Population)의 평균과 분산이 노란색 박스와 같이 이루어 져있을 경우 모집단에서 일부 샘플 n개를 가져와서 표본집단(Sample)을 만들 경우 해당 표본 집단은 정규분포의 확률 구조를 따른다고 앞서 배웠습니다. 이때 정규분포(Normal Distribution)의 특성을 알려주는 평균과 분산의 값은 그림1의 파란색 박스와 같습니다. 파란색 원의 표준 분포는 수식1과 같이 표기 해줍니다. 신뢰 구간을 얘기 하기 전에 표준 정균 분포(Stand..

선형회기와 표준 오차(Linear Regression, Standard Error) [내부링크]

목차 표준 오차(Standard Error)란? 표준 오차를 이해하기 위해서는 기본적인 모집단(Population)과 표본 집단(Sample)에 대한 평균, 분산, 표준 분산에 대해 이해가 필요 합니다. 해당 카테고리에 내용들을 정리해 놓았으니 참조하시길 바랍니다. 그림과 같이 모집단에서 중복 순열로 샘플들을 뽑아내면 각 샘플에서의 평균을 구할 수 있습니다. 모집단의 평균기호에 바 기호를 붙여서 샘플의 평균 기호를 표기하였습니다. 여기서 샘플들의 평균을 모아서 아래와 같이 평균을 내면 모집단의 평균이 됩니다. 그리고 표본 집단의 평균으로 분선을 구하였더니 수식2와 같이 모집단의 분산에 n으로 나눠준 값이 나왔습니다. 앞서 포스터(https://scribblinganything.tistory.com/687..

t 분포란? 자유도 n-1 사용 이유 쉽게 풀이(t-distribution) [내부링크]

목차 t 분포(t-distribution)란? 앞서 포스트에서 표본(Sample) 집단에서의 표본 평균, 표본 분산을 구하는 방법에 대해 알아보았습니다. 모(Population) 집단에서 표본 집단을 가지고 표준 정규 분포(Standard Normal Distribution)으로 만들면 아래와 같이 나옵니다. 수식1과 같이 X를 표준화하면 표준 정규 분포를 얻을 수 있습니다. 하지만 여기서 문제는 모집단의 표준편차(σ)를 구하기가 힘들다는 것입니다. 표본을 사용하는 이유가 모집단으로 데이터를 다 처리하기 힘들기 때문에 표본을 만든 것이기 때문에 수식1과 같이 모집단의 표준편차를 사용해서 정립하는 것이 현실에 맞지 않기 때문입니다. 그래서 모집단의 표준편차가 아닌 표본 집단의 표준편차(S)를 사용해서 표준..

정규 분포란? 표준화(X, Z값 변환) 쉽게 정리하기(수식, 테이블, Normal Distribution, Standard Distribution) [내부링크]

목차 정규분포란(Normal Distribution)? 그림1과 같이 벨 모양과 같이 생긴 형태의 그래프를 정규분포 그래프라고 합니다. 정규분포는 평균값(μ)과 분산(σ^2)에 의해 그래프 특성이 결정 됩니다. 평균에 의해 벨의 중심점이 결정됩니다. 그리고 분산 값에 의해 퍼짐 정도가 결정 됩니다. 그래프의 수식은 위 수식1과 같이 결정 됩니다. 또는 간단하게 아래 수식2와 같이 표현합니다. 평균(Mean)과 분산(Variance)만 있으면 그래프를 그릴 수 있기 때문입니다. 정규분포를 사용하는 이유와 언제 사용 하나? 사실 고등학교때는 무턱대고 위 수식으로 문제를 푸는 것에 집중했지만 사회를 나와서 이과를 다니다 보니 산업의 많은 분야에서 정규분포를 사용함을 알았습니다. 제가 생각하는 정규분포의 이용은..

모집단과 표본집단의 평균,분산,표준편차, n-1로 나누는 이유, 수식 정리(mean, variance, standard deviation) [내부링크]

목차 모집단(Population)과 표본집단(Sample) 수식 정리 모집단/표본집단 평균(Population / Sample Mean) 모집단/표본집단 분산(Population / Sample Variance) 모집단/표본집단 표준편차(Population / Sample Standard Deviation) 모집단이란 실제 가지고 있는 모든 데이터 샘플을 의미 합니다. 표본 집단은 모집단 중에 일부를 샘플로 취해서 모집단의 평균, 분산, 표준 분산을 추정하는 목적으로 사용 됩니다. 표본집단(Sample) n-1 샘플로 나누는 이유 우선 수식을 떠나서 개념적으로 쉽게 이해해보도록 하겠습니다. 표본 집단을 사용하는 사용자가 N개의 모집단 데이터에서 n개의 샘플을 가져온다고 생각해보겠습니다. 여기서 우리는 평..

[머신러닝]소프트맥스 회귀란?(Softmax Regression) [내부링크]

목차 해당 포스트(Machine Learning)는 유투브 혁펜하임의 강의 내용을 듣고 제 생각대로 정리한 내용이라 틀린 내용이 있을 수 도 있습니다. Machine Learning 소프트 맥스 회귀란? 앞서 로지스틱 회귀 이론에 대해 알아보았습니다(https://scribblinganything.tistory.com/682). 로지스틱 회귀란 입력 값을 받고 이 값이 해당 라벨에 포함되는지를 확률적인 값으로 출력 해주었습니다. 예제로 여자 사람의 사진일 경우 1에 가까운 값을 출력 하고 그 외는 0에 가까운 값을 출력하는 로직이었습니다. 소프트 맥스 회기란 앞서 로지스틱이 하나의 출력만을 구분 지었다면 이번에는 출력을 벡터(Vector) 형식으로 보내서 여자 사람, 남자 사람, 고양이 등을 벡터에 값으..

베이즈 이론(Bayes Theorem)이란? 수식, 사용목적, 쉽게 이해하기 [내부링크]

목차 베이즈 이론(Bayes Theorem)이란? 베이즈 이론을 이해하기 위해서는 조건부 확률에 대해 이해하여야 합니다. 수식1을 조건부 확률(Conditional Probability)라고 합니다. A라는 사건이 발생했을 때의 조건에서의 B라는 사건이 발생할 확률입니다. 동일하게 B라는 사건이 발생했을 때의 조건에서 A라는 사건이 발생할 확률은 수식2와 같이 표현할 수 있습니다. 수식1과 수식2를 이용하면 아래와 같이 구할 수 있습니다. 수식3을 이용해서 아래와 같은 수식을 만들어 낼 수 있습니다. 위 수식4가 이번 포스터의 목적인 베이즈(Bayes) 이론의 수식 입니다. 여기서 수식4에 대한 명명을 아래와 같이 하고 있습니다. P(B|A) : 사후 확률(Posterior) P(B) : 사전 확률(Pr..

[Python]복잡한 미분함수 파이썬으로 구하기(사인 Sine/Cosine, 로그 Log/ln) [내부링크]

목차 파이썬으로 다항식 미분하기 미분식을 파이썬으로 구할 때 sympy 라는 라이브러리를 이용하면 쉽게 구할 수 있습니다. 아래 예제를 통해 쉽게 이해해보도록 하겠습니다. 수식1을 미분하는 코드는 아래와 같습니다. 예제 코드>> import sympy as sp x = sp.Symbol('x') y = (x-7)*(x+36.2) print(sp.diff(y,x)) 3번 라인: x라는 변수에 대해 미분을 하기위해 symbol 함수로 x를 설정합니다. 4번 라인: 전체 수식을 정의합니다. 6번 라인: 미분 함수 diff를 넣고 식과 미분할 변수를 입력값으로 넣어 줍니다. 결과>> 2*x + 29.2 이번 예제는 아래와 같이 다항식에 또다른 다항식을 나눠서 일반적으로 구하기 힘든 형태의 미분 식을 만들었습니다..

마르코브(Markov Chain) 체인이란? 파이썬(Python) 예제 실습 [내부링크]

목차 마르코브(Markov Chain) 체인이란? 마르코브 체인은 통계적(Stochastic) 모델로 다음 상태의 사건이 발생할 확률에 대해 정의 합니다. 마르코브 체인을 설명할 때 중요한 요소는 아래의 두가지 입니다. 현재 상태(Current State) 다음 행동(Next Action) 마르코브 체인의 핵심은 각 이벤트의 확률은 이전 상태(State)에만 영향을 받는 다는 것입니다. 이것이 가능한 이유는 현재 상태가 과거의 확률적인 정보를 다 포함하고 있기 때문입니다. 예를 들어 위 그림1과 같이 음식을 먹을 확률이 정해져 있을 경우 현재 상황이 3월 20일인 상태(State)로 가정하고 20일에 한식을 먹고 3월 21일에 한식을 먹을 확률을 행렬로 표현하면 아래와 같습니다. 그림2의 행(Row)이 ..

[머신러닝]로지스틱회귀란?(Logistic Regression, 시그모이드 함수) [내부링크]

목차 해당 포스트(Machine Learning)는 유투브 혁펜하임의 강의 내용을 듣고 제 생각대로 정리한 내용이라 틀린 내용이 있을 수 도 있습니다. Machine Learning 로지스틱회귀란?(What is Logistic Regression?) 앞서 퍼셉트론(Perceptron)에 대해 살펴 보았습니다(https://scribblinganything.tistory.com/674). 퍼셉트론이란 활성화 함수에 스텝 함수를 넣어서 -1 아니면 1이 되게 출력을 하였습니다. 로지스틱 회귀는 퍼셉트론과 유사한데 활성화 함수에 넣는 값이 Step Function이 아닌 시그모이드 함수(Sigmoid Function)를 넣어서 출력을 처리 합니다. 위 그림과 같은 형태가 시그모이드 함수의 그래프 입니다. 그..

[선형대수학] 행렬의 Rank란? (Matrix) [내부링크]

해당 포스트(Linear Algebra)는 유투브 혁펜하임의 강의 내용을 듣고 제 생각대로 정리한 내용이라 틀린 내용이 있을 수 도 있습니다. [선형대수학] 행렬의 Rank란? (Matrix) 행렬에서 rank의 의미는 행렬이 가지는 독립적인 Column이나 Row의 수를 의미 합니다. 독립(Independent)의 의미는 https://scribblinganything.tistory.com/676 포스트를 통해 참조 하시면 됩니다. 독립적인 벡터가 결국 표현할 수 있는 차원의 수를 의미 했습니다. 그렇기 때문에 독립적인 Column의 수는 Rank이고 Rank의 개수가 Column Space를 표현하는 차원의 수를 의미 합니다. 예를 들어 알아보겠습니다. 위 수식1의 독립 Column 벡터의 수는 앞서..

[선형대수학]직교행렬, Orthogonal, Orthonormal의 의미, 역행렬, 항등행렬, 대각행렬(Inverse, Identity, Diagonal Matrix) [내부링크]

목차 해당 포스트(Linear Algebra)는 유투브 혁펜하임의 강의 내용을 듣고 제 생각대로 정리한 내용이라 틀린 내용이 있을 수 도 있습니다. 직교행렬(Orthogonal Matrix)이란? 위 벡터(Vector)들은 Orthonormal 벡터라고 불립니다. Orthonormal은 서로가 직각을 이뤄서 Orthogonal 하고 Normalized 되어서 크기가 1인 벡터를 의미 합니다. Orthogonal 행렬이란 이러한 Orthonormal 한 벡터를 모은 행렬을 의미합니다. 위 수식1로 직교행렬을 만들면 위 수식2와 같이 만들 수 있습니다. 역행렬(Orthogonal)과 항등행렬(Identity)이란? 수식3과 같이 어떤 함수에 항등행렬을 곱하면 자기 자신이 나오게 만들어 주는 행렬을 항등행렬이..

[Python] 머신러닝 Keras MNIST, CIFAR10 데이터셋이란? 실습 [내부링크]

목차 파이썬 Tensorflow의 MNIST 이란? 앞서 포스트에서 데이터셋(Dataset)에 대해 알아보았습니다. MNIST는 텐서플로우(Tensorflow) 라이브러리에서 제공하는 데이터셋 입니다. 위와 같은 손으로 쓴 듯한 숫자 정보를 MNIST에서 가지고 있습니다. 그래서 해당 데이터를 이용해서 머신러닝(Machine Learning) 사용자들은 학습을 통해 해당 숫자를 구분하는 연습을 할 수 있습니다. 그리고 MNIST는 Modified National Institute of Standards and Technology 의 약자로 해당 기관에서 이미지 프로세싱(Image Processing) 학습을 위해 데이터를 제공 합니다. 위 그림과 같은 흑백의 경우 하나의 픽셀이 0~255의 값을 가지고 ..

[머신러닝]데이터 세트(Dataset)란? sklearn iris 예제로 알아보기 [내부링크]

목차 Machine Learning 데이터 세트(Dataset)란? 기계학습의 핵심은 데이터를 통해 학습을 하기 때문에 데이터란 기계학습의 근간이라고 할 수 있습니다. 머신러닝을 사용하는 사용자들 간에 데이터의 통일을 위해 암묵적인 합의에 대해 얘기할까 합니다. 데이터 셋은 아래의 2가지 요소로 크게 분류 할 수 있습니다. 행(Row) : Example 열(Column) : Features 아래의 간단한 예제를 통해 쉽게 이해할 수 있습니다. 녹색에 해당하는 행 부분이 예제(Example)이고 열로 표현되는 노란색 부분이 특징(Feature)을 의미합니다. 일반적인 데이터 셋이 그림1과 같이 구성됩니다. 그렇지 않은 경우도 가끔 있으니 데이터셋을 사용하실때 항상 데이터를 확인하셔야 합니다. 그림으로 표현..

머신러닝이란? 분류하기와 간단한 정리글(Machine Learning, Supervised/Unsupervised/Reinforcement Learning) [내부링크]

목차 Machine Learning이란? 분류 하기 위키피디아에서는 위 그림과 같이 AI > ML > Deep Learning 으로 관계를 정의합니다. 머신 러닝이라 함은 1959년에 Samuel에 의해 아래와 같이 정의합니다. Machine Learning: field of study that gives computers the ability to learn without being explicitly programmed 즉, 프로그램된 동작이 아닌 스스로 학습해서 행동하는 것을 머신 러닝이라고 합니다. 그 뒤에 Tom Mitchell 이라는 분이 1988년에 3가지 요소로 머신러닝을 다시 정의하였습니다. Learn from Experience With respect to some class of Ta..

[선형대수학]선형 독립이란? 직교와의 차이, 기저(Linearly independent, Orthogonality, Basis) [내부링크]

해당 포스트(Linear Algebra)는 유투브 혁펜하임의 강의 내용을 듣고 제 생각대로 정리한 내용이라 틀린 내용이 있을 수 도 있습니다. [선형대수학]선형 독립이란? 직교와의 차이 수식1과 같이 선형 조합(Linear Combination)으로 표현한 벡터(Vector)의 합이 0이되지 않는 조합으로만 이루어 진다면 이는 선형 독립 벡터(Linearly Independent Vector)라고 합니다. 예를 들어 수식2와 같은 벡터는 스칼라를 1과 -1/3으로 곱해서 더하면 0이기 때문에 선형독립이 아닌 벡터 입니다. 수식3과 같은 경우는 스칼라(Scalar) 값을 바꿔도 0을 만들 수 없기 때문에 x, y 벡터(Vector)는 선형 독립입니다. 선형 독립과 직교의 차이와 특성 그림과 같이 a, c와..

[선형대수학]행렬(Matrix) 곱셈의 의미, Span, Linear Combination: 내적(Dot Product),Rank1,열공간(Column Space),행공간(Row Space) [내부링크]

해당 포스트(Linear Algebra)는 유투브 혁펜하임의 강의 내용을 듣고 제 생각대로 정리한 내용이라 틀린 내용이 있을 수 도 있습니다. 행렬(Matrix) 곱셈의 의미 : 내적(Dot Product) X와 Y라는 행렬이 있습니다. X는 1 x n의 행벡터 x1~xn으로 구성되어 있습니다. Y는 n x 1의 열벡터 y1~yn으로 구성되어 있습니다. XY의 행렬곱은 수식1과 같이 정의 됩니다. 곱에 의한 수식을 보면 앞서 내적에서 공부한 내적 수식의 형태로 표현이 될 수 있음을 알 수 있습니다(https://scribblinganything.tistory.com/671). 즉, 행렬의 벡터들은 서로의 상관 관계를 알려주는 내적으로 곱이 표현됨을 알 수 있습니다. 행렬(Matrix) 곱셈의 의미 : R..

[머신러닝]퍼셉트론(Perceptron)이란? (MLP(Multi Layer), 활성화 함수, 사용목적, 풀이) [내부링크]

목차 해당 포스트(Machine Learning)는 유투브 혁펜하임의 강의 내용을 듣고 제 생각대로 정리한 내용이라 틀린 내용이 있을 수 도 있습니다. Deep Learning 퍼셉트론(Perceptron)이란? 앞서 포스트에서 신경망(NN, Neural Network)에 대해 알아보았습니다(https://scribblinganything.tistory.com/672). 해당 도식은 단순히 입력의 합을 출력으로 보내주었습니다. 퍼셉트론(Perceptron)은 기존의 입력이 출력으로 가는 활성화 함수(Acitivation Function)에 Step 함수와 같은 값을 넣어서 입력이 음수이면 -1을 양수이면 +1을 출력 해줍니다. 퍼셉트론(Perceptron)을 사용하는 이유(목적)은 0, 1과 같이 Dis..

[선형대수학] 놈(Norm)이란? 벡터 길이측정(Vector, l1, l2, Infinity) [내부링크]

목차 해당 포스트(Linear Algebra)는 유투브 혁펜하임의 강의 내용을 듣고 제 생각대로 정리한 내용이라 틀린 내용이 있을 수 도 있습니다. Norm(놈)이란? 저희가 벡터(Vector)의 길이를 잴 때 사용하는 Norm은 2-Norm, L2-Norm 이라고도 부릅니다. 위와 같이 x벡터의 Norm은 아래와 같이 구할 수 있습니다. 위 수식1과 같이 2의 제곱으로 표현되기 때문에 2-Norm 이라고도 불립니다. 그리고 일반적인 벡터의 크기는 2-Norm으로 구해집니다. 수식1과 같이 절대값 아래에 2를 넣거나 생략이 가능 합니다. 1-Norm, P-Norm, Infinity-Norn 이란? 1 Norm은 수식1에서 2를 단순히 1로 바꾸기만 하면 됩니다. 위 수식2를 참조하시면 됩니다. 동일한 방..

[머신러닝] 인공 신경망이란?(ANN, Artificial Neural Network), 예제 풀이(Example) [내부링크]

목차 해당 포스트(Machine Learning)는 유투브 혁펜하임의 강의 내용을 듣고 제 생각대로 정리한 내용이라 틀린 내용이 있을 수 도 있습니다. 인공 신경망(ANN, Artificial Neural Network)이란? 위와 같이 몸무게 데이터와 수명과의 관계알려주는 데이터를 그림1과 같이 모았습니다. 이때 몸무게 데이터는 x값으로 그리고 수명 데이터는 y 데이터로 표기 해줍니다. 이를 선형대수학의 행렬(Matrix)과 벡터(Vector)로 표현하면 아래와 같습니다. 최종적으로 Loss 함수를 최소화(https://scribblinganything.tistory.com/670) 하는 x벡터 값을 찾는 것이 머신 러닝의 모델링 방법인 것입니다. 그리고 수식2와 같이 a, b 변수를 찾는 선형식이기 ..

[선형대수학] 내적이란?(Dot product), 수식, 정규화, 단위 벡터(Normalize,Unit vector) [내부링크]

목차 해당 포스트(Linear Algebra)는 유투브 혁펜하임의 강의 내용을 듣고 제 생각대로 정리한 내용이라 틀린 내용이 있을 수 도 있습니다. 내적이란?(Dot product) 수식은 위와 같이 간단합니다. 예를 들어 [1 3], [2 4] 벡터의 내적은 위 수식에 따르면 2+12= 14가 됩니다. 내적의 의미에 대해 살펴 보겠습니다. 벡터의 크기를 알려 줄때는 위 수식2와 같이 || || 로 표기 합니다. 위 수식 2는 고등학교때 나오는 수식으로 좌표계에서 임의의 벡터에 대해 그려보면 수식2와 같이 증명이 됨을 알 수 있습니다. 수식2는 수식3으로 설명이 됩니다. x크기에 cosΘ를 곱한 것은 위 그림에서 노란선의 점선과 마주치는 곳까지의 y벡터 값이 됩니다. 즉 내적의 수식을 통해 의미를 살펴 ..

[머신러닝]경사하강법 미분 수식 풀이(Gradient Descent), 벡터 미분, Loss 함수, 학습률(Learning rate, Newton-Raphson) [내부링크]

목차 해당 포스트(Linear Algebra)는 유투브 혁펜하임의 강의 내용을 듣고 제 생각대로 정리한 내용이라 틀린 내용이 있을 수 도 있습니다. 선형 회기 Loss 함수 최소 값 찾기 앞서 포스트에서 선형회기(Linear Regression)에 대해 알아보았고(https://scribblinganything.tistory.com/668) 회기 모델을 만들기 위해 위 수식1을 최소화 하는 것이 데이터를 대표하는 모델이라는 것에 대해 확인하였습니다. 수식1은 Loss Function으로 2차 방정식입니다. f(x) 값이 작을 수록 loss 가 작아지는 것입니다. 찾고 싶은 값은 x 벡터(vector) 값입니다. 여기서 a는 기울기 b는 절편의 값입니다. 나머지 y벡터와 A 행렬은 이미 알고 있는 데이터 ..

[선형대수학]행렬의 전치, 컬레복소수, 성질, 대칭(Transpose, Complex Conjugate, Symetric) [내부링크]

목차 해당 포스트(Linear Algebra)는 유투브 혁펜하임의 강의 내용을 듣고 제 생각대로 정리한 내용이라 틀린 내용이 있을 수 도 있습니다. 행렬의 전치(Transpose)란? 전치 또는 트랜스포즈라고 불리는개념은 위와 같이 행렬의 인자들을 대각선(Diagonal) 사선을 중심으로 바꿔주는 것입니다. 인자값의 관점에서 보면 행과 렬을 뒤집는 개념입니다. 표기는 위와 같이 T를 행렬 위에 붙여 줍니다. 행렬의 전치(Transpose) 성질 위 성질 대부분은 쉽게 이해가 가는데 성질3의 경우 두개의 행렬 곱을 전치 하는 경우 행렬의 위치가 바뀌니 이 부분을 주의할 필요가 있습니다. Symmetrix Matrix 위 그림과 같이 Digonal 성분을 제외하고 나머지 원소들이 Digonal선을 대칭으로 ..

[머신러닝] 선형회기 행렬, 벡터로 풀이(Linear Regression) [내부링크]

목차 해당 포스트(Linear Algebra)는 유투브 혁펜하임의 강의 내용을 듣고 제 생각대로 정리한 내용이라 틀린 내용이 있을 수 도 있습니다. 선형회기(Linear Regression) 란? 여러개의 데이터 셋이 있는 경우 데이터들 간에 상관 관계를 선형적으로 표현하기 위해 사용하는 알고리즘이 선형회기 입니다. 예를 들어 약 100명의 사람들의 키와 몸무게에 대한 정보를 가져옵니다. 데이터들이 위에서 검정색으로 표기된 점들입니다. 그리고 빨간 색 라인이 선형 회기 알고리즘으로 키와 몸무게 사이의 관계를 잘 표현한 모델이 되는 것입니다. 선형대수학으로 위 모델을 만드는 방식은 아래와 같습니다. x 값은 몸무게이고 y 값은 키 입니다. 여기서 x값과 y 값은 이미 알고 있는 값이고 a, b 벡터(Vec..

[선형대수학] 정의, 행렬, 벡터, 성질, 연립일차방정식 (Matrix, Vector, linear system equation) [내부링크]

목차 해당 포스트(Linear Algebra)는 유투브 혁펜하임의 강의 내용을 듣고 제 생각대로 정리한 내용이라 틀린 내용이 있을 수 도 있습니다. 선형대수학(Linear Algebra)이란? 위와 같은 선형 방적식을 아래와 같이 행렬(Matrix)과 벡터(Vector)로 표현하는 수학을 선형대수학이라고 합니다. 다양한 수식을 선형(Linear)으로 평면의 형태로 표현하고 대수학의 의미는 평면의 매트릭스로 대신해서 표현하는 수학이라는 의미 입니다. 행렬(Matrix)과 벡터(Vector), 연립 1차 방정식이란? 우선 연립 일차 방정식(System of linear equation)은 수식1과 같은 1차 방정식을 사용해서 x,y와 같은 변수 값을 구하는 방정식을 의미 합니다. 행렬과 벡터는 기본의 정의를..

Q-Learning이란?(Epsilon-Greedy, gamma Discount factor, learning rate) [내부링크]

목차 해당 포스트(Reinforcement Learning)는 유투브 혁펜하임의 강의 내용을 듣고 제 생각대로 정리한 내용이라 틀린 내용이 있을 수 도 있습니다. Q-Learning이란? Q Learning 이란 강화 학습 알고리즘(Reinforcement Learning Algorithm)으로 보상을 받기 까지의 모델이 없는 상태에서 확률적인 동작으로 보상까지의 Quality를 찾는 과정입니다. 예를 들어 경로를 알려 주는 지도가 없는 경우에 부산에서 출발하는 사람이 있다고 생각하겠습니다. 서울에 도착하면 100원을 원주에 도착하면 80원을 보상을 준다고 가정하겠습니다. 여기서는 A10을 서울, A20을 원주로 가정하겠습니다. 위 테이블은 도시를 하나씩 이동할 때마다 State가 변하고(시간의 흐름),..

[Python] sklearn 정규 분포 만들기(StandardScaler), 그래프 비교 [내부링크]

목차 파이썬 sklearn StandardScaler란? 빅데이터를 처리할때 일반적인 분포 데이터를 정규 분포의 데이터로 정규화(Normalization)하는 일들이 필요 합니다. 정규 분포란 평균(mean)이 0이고 분산(Variance)가 1인 데이터를 의미합니다. 분산에 대한 수식은 아래 링크를 참조하시길 바랍니다. https://scribblinganything.tistory.com/265 평균 제곱, 분산,자유도 (Mean Square, Variance,DOF) 이란? (의미, 계산법) 평균 제곱 (Mean Square) 이란? 평균제곱이란 아래와 같은 수식으로 전개 된다. mean-square 란 신호의 평균 힘(Strength) 또는 파워(Power)를 측정 한 값이다. 그림1은 자동차 진동..

[Python] sklearn 파이프라인(Pipeline) + ColumnTransformers [내부링크]

목차 파이썬 sklearn 파이프라인(Pipeline) 이란? ColumnTransformers는 강력한 기능이지만 Column(열)을 단계별 스텝(Multiple step)으로 처리해야하는 경우 충분하지 않습니다. 파이프라인(Pipeline) 기능은 여러개의 transformer를 체인 형식으로 연결해서 복잡한 프로세스를 단계별로 처리하게 도와 줍니다. 앞서 배운 ConlumnTransformer 함수도 파이프 라인의 체인에 넣을 수 있습니다. 이번 포스트에서 사용할 예제는 아래와 같은 구조로 사용합니다. 그림과 같이 3x5의 행렬에 Non 값을 랜덤하게 넣습니다. 해당 데이터를 원하는 형식으로 가공하는데 ColumnTransformer를 사용해서 가공 합니다. 이때 사용자가 원하는 열부분만을 선택해서..

[Python] 로그 그래프 그리기, numpy log1p, log, log10 함수 비교 [내부링크]

목차 파이썬 numpy log1p vs log vs log10 함수 차이 사실 이부분은 코드와 결과를 수식으로 보여주면 정말 쉽게 이해가 됩니다. 하나씩 예제 코드와 함께 수식으로 정리하겠습니다. 전체 코드는 글 하단에서 다운 받을 수 있습니다. 예제 코드1>> import numpy as np x = np.exp(3) y= np.log(x) print(y) 결과>> 3.0 주석>> 위 수식은 x에 e 지수 값을 넣고 y는 ln으로 출력을 받습니다. 그래서 e^3이므로 y는 3이 출력 됩니다. 예제 코드2>> import numpy as np x = np.exp(3) y= np.log1p(x) print(y) 결과>> 3.048587351573742 주석>> log1p 함수는 입력값에 1을 추가로 더한 ..

[Python] 컴퓨터 화면 설정한 시간 별로 캡쳐하기(Screen Capture, ImageGrab) [내부링크]

목차 이번 포스트는 파이썬을 사용해서 사용자가 원하는 주기로 컴퓨터 화면을 캡쳐하는 프로그램을 만들어 보겠습니다. 그리고 화면 캡처를 진행하는 동안 컴퓨터를 자유롭게 동작하기 위해 프로그램이 백그라운드로 돌아 갈 수 있게 쓰레딩(Threading, 스레드)를 사용해보겠습니다. 소스 코드는 마지막에 다운로드 할 수 있습니다. [Python] 컴퓨터 화면 설정한 시간 별로 캡쳐하기 #1 예제 코드>> from PIL import ImageGrab pic_cnt = 0 def screen_capture(): img = ImageGrab.grab() img.save("image_{}.png".format(pic_cnt)) screen_capture() 결과>> 프로그램을 실행 시킨 폴더에 위와 같이 image_..

[Python] sklearn ColumnTransformer이란? 예제 실습(SimpleImputer, fit_transform) [내부링크]

목차 파이썬 ColumnTransformer 란? 파이썬의 머신러닝(Machine Learning)과 데이터 사이언스(Data Science) 파이프라인(Pipeline)에서 데이터 프로세싱(Data Processing)은 가장 시간과 노력이 많이 들어가는 일입니다. 일반적으로 현장에서 가져온 데이터들은 정형화 되지 않고 Machine learning 모델에 적용하기 힘든 형태 입니다. 일부 빠진 값들 표준화 되지 않은 값들 포맷에 맞지 않은 형태의 값들 중복되는 값들 위와 같은 형태들이 모델 적용이 어려운 raw data 들입니다. Sklearn의 ColumnTransformer는 위와 같이 처리가 어려운 값들을 파이프라인(Pipeline) 과정으로 사용자가 머신러닝(Machine Learning)에 ..

Z 변환이란? (ROC, 수식 유도, Transform,Z-Domain, 라플라스 차이) [내부링크]

목차 해당 포스트는 유투브 혁펜하임을 참조해서 작성하였습니다. Z 변환(Z Transform)이란? 수식 풀이 Z변환이란 앞서 라플라스 변환을 연속이 아닌 이산/불연속(Discrete)에서 처리하는 변환 방식입니다. 앞서 포스트에서 라플라스(Laplace) 변환은 기본 함수에서 시그마 지수가 포함된 값을 넣어서 해당 전달함수가 수렴되는 영역(ROC, Regions of Convergence)을 찾았습니다. 이와 마찬가지로 Z변환도 일반 이산 주파수 변환에서 아래와 같이 r^(-n)을 넣어서 수렴 영역을 찾아 줍니다. Z변환은 위와 같이 기존의 이산 푸리에 변환에서 오메가 변수 이외에 r이라는 변수를 가지는 변환입니다. r과 Ω 를 아래와 같이 정의를 합니다. 수식2를 수식1에 정의해서 Z 변환 수식을 아..

라플라스 변환이란? 사용 이유와 ROC(Region of Convergence), a+bj [내부링크]

목차 해당 포스트는 유투브 혁펜하임을 참조해서 작성하였습니다. 라플라스 변환(Laplace Transform)이란? 라플라스 변환은 간단하게 설명 드리면 푸리에 변환(Fourier Transform)의 확장 버전입니다. 위 수식1은 푸리에 변환 수식입니다. 라플라스는 위와 같이 기존의 푸리에 변환에서 시그마(sigma, σ)를 지수로 추가해서 오메가의 식만이 아닌 시그마와 오메가의 식으로 만든 것입니다. s= σ+jω 로 변환해서 우리가 잘알고 있는 라플라스 변환 식을 위와 같이 만들 수 있습니다. 역푸리에변환에 앞서처럼 시그마 지수를 곱하고 위와 같이 전개 하면 역라플라스(Inverse Laplace) 변환에 대한 식을 수식4와 같이 구할 수 있습니다. 라플라스 사용 이유와 ROC(Region of C..

[실제 사용 후기] WH-1000XM5 무선 노이즈 캔슬링 헤드폰 [내부링크]

목차 [제품 리뷰] WH-1000XM5 무선 노이즈 캔슬링 헤드폰, 장단점 질렀습니다...... 사고 싶다 생각만하다가 이번에 여행을 가게 되서 비행기에서 조용히 음악을 듣고 싶어서 ANC(Active Noise Cancellation) 중 최강이라는 소니(Sony)의 WH-1000XM5를 구매하게 되었습니다. 사실 WH-1000XM4와 WH-CH710N 도 같이 고민을 하긴 했는데 WH-CH710N는 생각보다 노이즈 캔슬링 기능이 약하다는 리뷰가 있어서 자금을 조금 더 보태서 WH-1000XM5로 사게 되었습니다. 사실 글재주가 없어서 전문가와 같이 리뷰는 어렵겠지만 제가 실제 사용해보고 느낀 점들을 정리해보겠습니다. 장점을 정리하면 아래와 같습니다. 1. 강력한 노이즈 캔슬링 제가 헤드폰(Headph..

[Python] Numpy where 함수란? 예제 실습 [내부링크]

목차 파이썬 Numpy where 함수란? 파이썬 numpy.where() 함수는 조건에 맞는 입력 어레이(array) 값의 인덱스(index) 값을 알려줍니다. Syntax는 아래와 같습니다. numpy.where(condition[, x, y]) 조건문이 만족(True)할 경우 x값을 False 일 경우 y를 출력 해줍니다. 조건만 있을 경우 조건의 입력 값에 index를 출력 해줍니다. 파이썬 Numpy where 예제 실습#1 예제 코드>> import numpy as np a_var = np.array([[1, 2, 3], [4, 5, 6]]) print("raw_data") print(a_var) print ("5와 같거나 작은 index 값") indices = np.where(a_var> ..

[Python] sklearn 경사하강법(Gradient Descent)란? 사용방법 및 예제 실습(SGD) [내부링크]

목차 파이썬 Gradient Descent란? 선형 회기(Linear Regression)는 데이터 셋(Data set)을 대표하는 하나의 선을 구하는 작업이었습니다. 즉, Y = a x X + b에서 기울기 값 a와 절편 값 b를 구하였습니다. 이때 사용된 방식은 RSS(Residual Sum of Squares)이었습니다. 잔차 제곱 방식라고 불리는 예측되는 선형회기 선과 실제 데이터 셋의 제곱 합이 최소가 되게 만드는 선형회기 선을 만드는 작업입니다. 그림에서 파란색선의 제곱의 합을 RSS(Residual Sum of Squares)라고 하고 RSS(Residual Sum of Squares)가 가장 작은 지점의 기울기와 절편을 구하는 알고리즘은 OLS(Ordinary Least Sqaures)라고..

DFT(이산 푸리에 변환) 매트릭스, FFT, Cyclic Convolution [내부링크]

목차 해당 포스트는 유투브 혁펜하임을 참조해서 작성하였습니다. DFT Matrix(이산 푸리에 변환 매트릭스) 앞서 포스트에서 DFT(Discrete Fourier Transform) 전개에 대해 알아보았습니다(https://scribblinganything.tistory.com/653). 위 수식(1)에서 3개의 포인트 입력 값을 넣고 3개의 출력 값을 받는 형식을 행렬(matrix)로 만들어 보겠습니다. 3개의 입출력은 k=0, 1, 2 로 생각할 수 있습니다. 수식(1)을 3개의 입출력으로 행렬로 표현하면 위와 같습니다. Orthogonal Matrix 는 Orthonormal 한 벡터(Vector) 값을 Column으로 가지는 행렬을 의미합니다. 즉, 크기는 1로 만들고 서로 직교성을 가지게 만들..

[Python] sklearn train_test_split 사용법, Syntax, 예제 [내부링크]

목차 파이썬 sklearn train_test_split 란? Sklearn train_test_split 함수는 데이터(Dataset)를 트레이닝 데이터와 테스트 데이터로 아래와 같이 분류 해줍니다. Training data Test data 머신 러닝(Machine Learning) 알고리즘은 데이터를 분석해서 Performance를 높이는 방식입니다. 머신러닝 모델을 만들었다고 가정을 하면 이 모델이 정상적인 Performance를 보이는지 확인하는 작업이 필요 합니다. 사용자가 가지고 있는 데이터를 Training 과 Test 데이터로 분리 합니다. 그리고 Training 데이터를 사용해서 머신러닝 모델을 만듭니다. 그리고 해당 모델을 Test 데이터로 검증해봅니다. 이때 Sklearn train..

주파수 분석장치의 이산 푸리에 변환(DFT, Discrete Fourier Transform)의 수식과 정의 [내부링크]

목차 해당 포스트는 유투브 혁펜하임을 참조해서 작성하였습니다. 이산 푸리에 변환(DFT, Discrete Fourier Transform)이란? 제가 사용하는 분석장치가 주파수 변환해서 분석하는 장치인데 공업 수학 신호처리를 공부하게 된 근본적인 이유가 이번 포스트의 DFT(이산 푸리에 변환)과 FFT(Fast Fourier Transform)을 이해하기 위해서 였습니다. 앞 시간에 공부한 연속 시간 푸리에 변환(CTFT, Continuous Fourier Transform)은 연속(Continous)한 측정 입력 값을 연속적(Continous)인 출력 주파수로 변환하였습니다(https://scribblinganything.tistory.com/644). 그리고 다음으로 이산 시간 푸리에 변환(DTFT,..

[무선청소기리뷰]발뮤다(Balmuda, C01A) 청소기(사용 후기) [내부링크]

목차 발무다(Balmuda, C01A) 무선 청소기 1년 사용 후기 사실 이번 무선 청소기는 디자인의 깔끔한 때문에 구매하게 되었는데 실제 1년간 사용해 보니 디자인 적인 측면 이외에도 기능적으로도 유용해서 리뷰글을 작성하게 되었습니다. 장점은 아래와 같습니다. 1. 조작이 간단하다. 사진처럼 청소기 봉의 끝단에 전원 버튼이 있어 간단하게 버튼을 눌러서 동작할 수 있습니다. 모드 선택도 단순히 길게 눌러서 변경이 가능합니다. 저와 같이 기능이 너무 많아 복잡한거 싫어하는 사람에게는 최적입니다. 2. 움직임이 자유롭다. 영상의 그림처럼 청소기 머리 부분의 회전이 부드럽게 움직이기 때문에 좁은 공간이나 벽면에 맞춰서 청소기를 움직일 수 있습니다. 3. 사용하지 않을 때 공간을 많이 차지하지 않음 위 사진은 ..

[Python] sklearn 설치 및 기본 회귀 모델 예제 실습(Linear Regression) [내부링크]

목차 sklearn 설치 하기 저는 Visual Studio에서 파이썬 실습을 하고 있기 때문에 Visual Studio에서 sklearn을 설치하도록 하겠습니다. PS D:\Python\test05> pip install sklearn Requirement already satisfied: sklearn in c:\users\forgo\appdata\local\programs\python\python38\lib\site-packages (0.0.post1) [notice] A new release of pip available: 22.2.2 -> 22.3.1 [notice] To update, run: c:\users\forgo\appdata\local\programs\python\python38\py..

이산 시간 푸리에 변환 수식 전개하기(Discrete Time Fourier Transform) [내부링크]

목차 해당 포스트는 유투브 혁펜하임을 참조해서 작성하였습니다. 이산 시간 푸리에 변환(DTFT) 수식 전개하기 앞장에서 이산 시간 푸리에 시리즈(Discrete Time Fourier Series, DTFS)의 수식 및 전개 방식에 대해 알아보았습니다. 이번에는 앞서 DTFS의 계수를 통해 DTFT를 구하는 방법에 대해 알아보겠습니다. 수식(1)은 푸리에 시리즈(Discrete Time Fourier Series, DTFS) 계수에서 1/N을 계수쪽으로 넘긴 수식입니다. 변환과 시리즈의 차이는 변환은 비주기(Non periodic, aperodic) 함수까지 신호를 처리할 수 있다는 점입니다. 즉, 수식(1)에서 N 값을 무한대로 보내 보겠습니다. 이때 발생하는 일과 조건을 아래와 같이 걸겠습니다. 1...

이산 시간 푸리에 시리즈란? 계수 값 유도하기(Discrete Time Fourier Series, ak, DTFS) [내부링크]

목차 해당 글은 유투브 혁펜하임을 참조해서 작성했습니다. 이산 시간 푸리에 시리즈란(Discrete Time Fourier Series, DTFS)? 앞서 연속 시간 푸리에 시리즈는 테일러 시리즈와 유사하게 사인 함수의 합으로 수식(1)과 같이 표현 됨을 알아보았습니다. 그리고 푸리에 시리즈의 계수(coefficient) 값은 오일러 함수가 서로 직교성(orthogonality)을 가지는 성질을 이용해서 내적을 통해 유도 해냈습니다https://scribblinganything.tistory.com/634. 이산 푸리에 시리즈(Discrete Time Fourier Series, DTFS)도 유사하게 구할 수 있습니다. 우선 DTFS를 표현하기 위해 주기를 표현 해야하는데 이산 도메인은 CTFS에서 ω를..

[라즈베리파이]웹 제어로 LED켜고 끄기(web server, remote control, flask) [내부링크]

목차 Raspberry Pi 웹서버에서 LED 제어하기 이번에는 보드의 GPIO23번 핀에 LED를 연결하고 flask를 사용해서 웹서버를 구동합니다. 외부에 노트북을 사용해서 해당 웹서버(Web server)에 접속하고 브라우저에 나온 버튼을 클릭하여 LED를 켜고 끄는 시험을 해보겠습니다. 하드웨어 연결은 아래와 같이 합니다. 원래 GPIO23번 핀과 GND 사이에 1kohm 저항(Resistor)을 둬서 LED를 보호해야 하나 귀찮아서 다이렉트로 연결했습니다. LED를 오래 쓰실려면 꼭 저항을 직렬로 연결해주세요 전체 코드>> #!/usr/bin/python3 from flask import Flask, render_template_string import RPi.GPIO as GPIO GPIO.s..

[라즈베리파이] Polling과 Interrupt로 입력 신호 받기(폴링, 인터럽트) [내부링크]

Raspbeery Pi Polling으로 입력 신호 받기 폴링(Polling) 방식은 지속적으로 해당 입력 신호쪽에 값을 기다리면서 값이 들어올때 값을 처리하는 방식입니다. 그렇기 때문에 비효율적인 방식입니다. 아래는 폴링(Polling) 방식의 특징입니다. 폴링을 시행하면 보드의 다른 코드를 진행할 수 없음 지속적으로 모니터링하여서 전력을 상대적으로 많이 사용 실제 폴링으로 동작하는 예제 코드를 통해 쉽게 이해해 보도록 하겠습니다. 해당 코드는 라즈베리파이 보드에서 나가는 5V신호와 접지(Ground) 신호를 저항 10kohm으로 GPIO23번 핀에 연결했다가 떨어뜨렸다가 하는 식으로 마치 버튼을 동작하는 것처럼 조작해서 이를 카운트하는 코드 입니다. 카운트 값은 print로 보드에서 확인할 수 있습니..

[라즈베리파이] GPIO란? LED 켜기&끄기, 핀맵(Pinmap, Pinout) [내부링크]

목차 Raspberry Pi GPIO란? 핀맵 라즈베리파이(Raspberry Pi)와 같은 임베디드(Embedded) 보드는 내부에 MCU 칩이 있고 칩을 프로 그램해서 외부 장치들로 부터 센서의 신호를 읽거나 제어를 위해 출력 신호를 보냅니다. 이때 입출력 신호를 주고 받을 수 있는 핀들을 GPIO(General Purpose Input/Output)이라고 합니다. 외부 장치와 입출력 신호를 주고 받는 핀 GPIO 핀 제어를 위해 임베디드 보드 내에 레지스터(Register)에 값을 입력하여 사용 일반적으로 LED 구동 전력 정도의 파워를 공급 제가 가지고 있는 라즈베리파이 4 보드의 핀맵(Pin Map)은 아래와 같습니다. Raspberry LED 켜기&끄기(하드웨어) 이번에는 앞서 핀아웃을 사용해서..

[Python]엑셀의 동일한 값 몇 개 인지 카운트 Pandas에서 쉽게 처리하기(판다스, 숫자, 텍스트, 중복 삭제) [내부링크]

목차 파이썬 Excel의 동일한 값 개수 세기 이번에는 제목 그대로 엑셀의 동일한 값의 개수를 Count 하는 방법에 대해 알아보겠습니다. 처음에는 엑셀(Excel)로 처리하려고 하였지만 방법을 찾기가 어려워서 파이썬(Python)의 판다스(Pandas) 한줄로 간단하게 해결 하였습니다. 우선 저에게 주어진 과제는 아래와 같습니다. 위와 같이 엑셀 파일에 지역명이 텍스트로 적혀있는데 동일 지역명을 검출하고 각 지역명이 몇개로 구성되었는지를 확인하는 것이었습니다. 위는 간략한 예제이고 실제 값은 몇 천개 정도 있었습니다. 위와 같은 과제는 사실 엑셀로 처리하기 쉽지 않습니다. 그래서 저는 간단하게 아래와 같이 파이썬을 사용해서 처리하였습니다. 전체 코드>> import pandas as pd df = pd..

[푸리에 변환]미분, 적분 방정식 주파수 변환 문제 풀이 [내부링크]

목차 해당 포스트는 유투브 혁펜하임을 참조해서 작성하였습니다. 미분식 dx(t)/dt 푸리에 변환(Fourier Transform)하기 미분식 dx(t)/dt를 푸리에 변환 수식으로 전개해서 푸는 방법 보다는 역푸리에변환(Inverse Fourier Transform)을 이용해서 쉽게 풀이할 수 있습니다. 수식(1)은 역푸리에 변환 수식입니다. 푸리에 변환은 1대1 변환이 가능하기 때문에 역푸리에 변환값을 구하면 변환 전 값을 알 수 있습니다. 수식(1)을 t에 대해 미분하겠습니다. 수식(1)의 우변은 오메가(ω)로 적분 되기 때문에 오일러 지수의 t 부분만 미분을 하면 됩니다. 수식(2)에서 빨간색 부분이 미분식에 1대1 매칭이므로 미분식에 대한 푸리에 변환 값은 jwX(w)가 됩니다. 미분식 dx(t..

공분산, 상관 계수, 정규화, Cross correlation, Convolution, Coherence란? 비교 분석(통계, 신호처리) [내부링크]

목차 공분산(Covariance)이란? 두 개의 확률 변수 사이에 상관성을 방향과 크기로 표현하는 방식입니다. 수식(1)과 같이 각 i 포인트에서 x와 y 값이 평균에서 떨어진 정도를 곱한 값입니다. x, y의 편차 정도가 비슷할 수록 곱에 의한 값이 커집니다. 그리고 편차의 방향이 하나는 양수 하나는 음수일 경우 방향은 반대로 표기 되고 같은 방향으로 진행되면 양수로 표기 됩니다. 예를 들어 한 학급에서 학생의 키와 몸무게를 측정하고 키와 몸무게의 공분산을 확인할 경우 전체 키 평균은 170cm이고 몸무게가 68kg 일때 A학생의 키가 175cm이고 몸무게가 70kg이면 (175-170) x (70-68) 을 계산해서 다른 학생들과 합해 주는 것이 공분산입니다. 위 그림(1)과 그림(2)를 비교하면 그..

[Python] Pyside 메뉴바 만들기(Menu bar) [내부링크]

목차 파이썬 Pyside 메뉴바 만들기(Menu bar) GUI 프로그램을 보면 파일 저장, 불러오기 등 이러한 기능을 위쪽 상단에 메뉴 선택으로 만들어져 있음을 볼 수 있습니다. 이번 포스트는 Menu drop을 어떻게 만드는지를 알아보겠습니다. 우선 전체 코드로 결과와 함께 보여 드리고 주석으로 설명 드리겠습니다. 전체 코드>> from PySide6.QtWidgets import QMainWindow, QApplication, QLabel, QToolBar, QStatusBar, QCheckBox from PySide6.QtGui import QAction, QIcon, QKeySequence from PySide6.QtCore import Qt, QSize import sys class Qt_Ex..

푸리에 변환 테이블(Impulse, 델타함수, 컨볼루전, 컬레복소수, Duality) 증명 [내부링크]

목차 해당 포스트는 유투브 혁펜하임을 참조해서 작성하였습니다. 이번 내용은 주로 사용하는 함수의 푸리에 변환 값을 확인해 보겠습니다. 푸리에 변환은 아래 수식(1)과 같습니다. 변환 방법은 링크를 참조하시면 됩니다(https://scribblinganything.tistory.com/635). 델타함수(Delta Function, Impulse Fuction) 푸리에 변환 δ(t) 함수는 위와 같이 0에서 임펄스(Impluse)인 신호 입니다. 이를 푸리에 변환(Fourier Transform)을 하게 되면 아래와 같습니다. 무한대 적분이라도 나머지 구간에서는 0이고 0에서 무한대 임펄스 적분이므로 해당 값은 1이 됩니다. 즉, 모든 주파영역에 1의 값을 가집니다. x(t-t0)함수 푸리에 변환 역푸리에..

[Python] Pyside 레이아웃 설정, 수직, 수평, 겹치기, 그리드(Layout, Vertical, Horizontal, Stack, Grid) [내부링크]

목차 Pyside는 최신 Pyside6를 사용했음을 알려드립니다. 파이썬 Pyside 레이아웃 설정: 수직(Vertical) 이번 포스트에서는 레이아웃(Layout) 설정에 대해 알아보겠습니다. 수직 레이아웃은 QVBoxLayout 객체를 사용해서 설정합니다. 아래 전체 예제 코드와 결과를 확인하고 코드에 대한 설명을 드리도록 하겠습니다. 수직 배치 예제 코드>> import sys from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout from PySide6.QtGui import QPalette, QColor from PySide6.QtCore import QSize class Set_color(QWidget): de..

푸리에변환 수식의 의미, 사각파 변환, 신호와 주파수 간의 관계(Fourier Transformer, FT, Square function) [내부링크]

목차 해당 글은 유투브 혁펜하임을 참조하였습니다. 푸리에변환 수식의 의미, 신호와 주파수 간의 관계(Fourier Transformer, FT) 수식 1은 푸리에변환 수식(Equation)이고 수식 2는 인버스(역) 푸리에 변환입니다. 수식의 전개는 링크를 참조하시길 바랍니다(https://scribblinganything.tistory.com/635). 앞서 수식 전개에서 설명하였듯이 푸리에 변환은 1대 1 변환이 가능 합니다. 즉, 시계 함수(Time Domain Function)에서 주파수 함수(Frequency Domain Function)로 상호 변환이 가능 합니다. 이번 시간에는 수식1의 의미에 대해 알아보겠습니다. 수식3은 벡터 내적 공간 (Vector Inner Product Space)을..

[Python] PySide 라벨 위치, 폰트, 글자 크기(Pont, Size, Type) [내부링크]

목차 파이썬 PySide 라벨 위치, 폰트, 글자 크기 이번 포스트에서는 파이썬의 PySide에서 라벨을 생성하고 라벨의 위치를 조정하는 방법과 폰트를 설정하는 방법과 폰트 사이지를 변경하는 방법에 대해 알아보겠습니다. 간단한 예제로 확인해보겠습니다. 아래 예제는 라벨에 텍스트를 입력하고 텍스트를 왼쪽 상단에 배치하고 폰트는 이탈리안으로 설정하고 크기는 11로 설정하였습니다. 예제 코드>> from PySide6.QtWidgets import QMainWindow, QApplication,QLabel from PySide6.QtCore import Qt, QSize import sys class Qt_Ex(QMainWindow): def __init__(self): super().__init__() se..

[Python] PySide 위젯 종류 및 기능(Widget) [내부링크]

목차 파이썬 PySide 위젯 종류 및 기능(Widget) 이번 포스트는 각 종 체크 박스, 라벨, 버튼, 다이얼, 스위치 등 다양한 위젯에 대해 알아보겠습니다. 각 위쳇을 실제로 구현 해보고 기능에 대해 설명하도록 하겠습니다. 위젯의 상세 사용은 이 후 포스트에서 기록하도록 하겠습니다. 전체 구성 코드>> from PySide6.QtWidgets import ( QApplication, QCheckBox, QComboBox, QDateEdit, QDateTimeEdit, QDial, QDoubleSpinBox, QFontComboBox, QLabel, QLCDNumber, QLineEdit, QMainWindow, QProgressBar, QPushButton, QRadioButton, QSlider,..

[Python] PySide 라벨 키보드 이벤트 (Lable, Keyboard, Event) [내부링크]

목차 파이썬 PySide 라벨 키보드 이벤트 (Lable, Keyboard, Event) 앞서 포스트에서 마우스(Mouse) 클릭 별 이벤트 발생 시 특정 함수나 기능을 실행시키는 방법에 대해 알아보았습니다. 이번 포스트에서는 라벨(Label)에 텍스트 입력(Text Input) 창을 만들고 텍스트에 입력창에 텍스트를 입력 시 해당 입력을 즉각적으로 표기하는 방법에 대해 알아보겠습니다. 예제를 통해 쉽게 알아보겠습니다. 예제 코드>> from PySide6.QtWidgets import QApplication, QMainWindow, QLabel, QLineEdit, QVBoxLayout, QWidget from PySide6.QtCore import QSize import sys class Qt_Ex(..

푸리에 변환이란? 수식, 푸리에시리즈 비교(Fourier Transform, Series, Difference) [내부링크]

목차 해당 글은 유투브 혁펜하임을 참조하였습니다. 푸리에 변환(Fourier Transform)이란? 기존의 푸리에 시리즈(Fourier Series)는 주기(Period)를 가지는 신호를 사인파(주파수신호)의 합으로 표현한 것이었습니다. 푸리에 변환은 비주기 신호(Aperiodic)까지 확장해서 시간 함수를 주파수 함수로 변환해주는 것입니다. 특징으로는 푸리에 시리즈는 주기 값(T)에 관한 정의가 되지 않으면 1대1변환이 완벽하게 되지 않지만 푸리에 변환은 주기가 없는 신호까지 포함하기 때문에 1대1 변환이 가능합니다. 즉, 시간 함수를 주파수 함수 변환으로 이를 다시 역변환해서 시간 함수로 1 대 1 변환이 가능하다는 의미입니다. 비주기 신호까지 변환 가능 1대1 변환 가능 수학적으로 비주기 신호를 ..

푸리에 시리즈 계수 ak 값 유도하고 의미 알아보기(Fourier Series, coefficient) [내부링크]

목차 해당 글은 유투브 혁펜하임을 참조해서 작성했습니다. 푸리에 시리즈 계수 ak 값 유도 앞서 푸리에 시리즈(Fourier Series)의 정의와 수식에 대해 알아보았습니다(https://scribblinganything.tistory.com/629). 푸리에 시리즈의 수식은 아래와 같습니다. 이번 포스트에서는 an의 값을 구하는 방법에 대해 알아보겠습니다. 여기서 a0는 시작점 상수 값으로 유도에는 필요가 없어서 삭제하고 진행하겠습니다. 식(1)은 x라는 T0 주기를 가지는 신호를 푸리에시리즈 변환을 통해서 표현했습니다. 식(1)을 오일러 지수와 내적(Inner Product) 해주겠습니다. 내적을 하는 이유는 내적 수식을 적용해서 결과 값으로 an(푸리에 계수)를 구할 수 있었기 때문입니다. 물론 ..

[Python] PySide 마우스 이벤트 동작(Mouse event) [내부링크]

목차 파이썬 PySide 마우스 클릭 이벤트 앞서 포스트의 내용처럼 마우스(Mouse) 설정을 class 내에서 진행하도록 하겠습니다. 마우스 관련 내용 이 외에 이해가 안되신다면 PySide 카테고리의 다른 글들을 보시면 쉽게 이해할 수 있습니다. 마우스 이벤트(Mouse event)는 QPushButton 함수에서 관리합니다. 우선 간단하게 아래에 마우스 클릭 시에 Hello 메세지를 전달하는 코드를 작성해보겠습니다. 마우스가 클릭하는 경우 인터럽트(Interrupt)가 발생해서 PySide GUI가 반응합니다. 예제 코드>> from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton from PySide6.QtCore import QS..

[Python] PySide 기본 동작 방식, QMainWindow 설정 [내부링크]

목차 파이썬 PySide6 기본 동작 방식 PySide는 데스크탑용 Application GUI를 파이썬으로 만들어 주는 라이브러리입니다. 이번 포스트에서는 간단한 윈도우창(Windows)을 만들어 보고 PySide가 동작하는 방법에 대해 알아보겠습니다. PySide는 현재 6버전까지 나온 상태로 최신 버전을 사용해서 설계해 보겠습니다. 코드 실행 이전에 아래와 같이 PySide6를 설치 해줍니다. pip install pyside6 이제 아래 기본 코드를 실행하고 코드의 동작 방법에 대해 알아보겠습니다. PySide 기본 코드>> from PySide6.QtWidgets import QApplication, QWidget import sys app = QApplication(sys.argv) windo..

[Python] 파이썬 클래스 상속과 Super 사용 방법(Class) [내부링크]

목차 [Python] 파이썬 클래스 상속과 Super이란? 파이썬은 클래스(Class)간에 상속이 가능 합니다. 부모 클래스를 상속 받은 자식 클래스는 부모 클래스의 메소도(Method)를 사용할 수 있게 됩니다. super 함수는 자식 클래스와 객체 값을 받아서 부모 클래스의 함수에 접근하는 방식 입니다. 아래 예제를 통해 쉽게 이해해 보도록 하겠습니다. 예제 코드>> class F(): def __init__(self): print("Father") def how_old(self): print("I'm 55") class S(F): def __init__(self): print("Son") def who(self): print("I'm Son") a_var = S() a_var.how_old() a_..

[PySide6] PyQt란? Hello World 출력하기 [내부링크]

목차 오늘 부터 Qt/PySide2를 공부해볼까 합니다. 감사합니다. PyQt란? PyQt 는 파이썬(Python)의 Qt GUI 프레임워크를 사용하는 라이브러리 입니다. Qt 자체는 C++ 베이스로 작성되었습니다. 하지만 파이썬에서 구동 시 C++ Compile 등에 소모되는 시간을 줄여서 빠르게 빌드되는 특징이 있습니다. 그리고 현재 Qt Designer라는 프로그램을 제공하고 있는데 해당 프로그램을 사용해서 시각적으로 빠르게 GUI를 제작할 수 있는 특징이 있습니다. 위 이미지는 Qt Designer의 이미지로 차후에는 위 프로그램을 사용해서 디자인할 계획 입니다. Hello World 출력하기 아래와 같이 pip install로 Qt/PySide2를 설치 해줍니다. pip install pysid..

푸리에 급수를 사용하는 이유 (고유함수(eigen function), Fourier series, 통신, 필터, LTI) [내부링크]

목차 해당 글은 유투브 혁펜하임 강의 내용을 참조로 작성하였습니다. 푸리에 급수와 고유 함수 푸리에 급수를 실제 우리 생활에 사용하는 주요 이유를 알기 위해서 우선 수학적인 수식으로 푸리에 급수(Fourier Series)와 고유함수(Eigen Function)과 시간불변 선형 시스템(Linear Time Invariant)에 대해 이해를 해야합니다. 앞서 공업수학 포스트들에서 푸리에 급수(Fourier Series)와 시불변 선형 시스템(Linear Time Invariant)에 대해서는 설명을 하였습니다. 푸리에 시리즈는 위와 같이 어떠한 주기함수 f를 Sinusoidal 주기 함수의 합으로 표현할 수 있습니다. 여기서 오일러 함수 e를 아래와 같이 시불변 선형 시스템(Linear Time Invar..

벡터, 내적공간 이란? (Vector, Inner product space) [내부링크]

목차 해당 포스트는 혁펜하임 유투브 강의를 기반으로 작성하였습니다. 벡터(Vector)란? 거리, 무게, 속력 등과 같이 크기 정보만을 가지는 1차원의 양(Quantity)을 스칼라(Scalar)라고 합니다. 벡터란 2 개 이상의 요소들로 어떠한 양을 가지는 의미 합니다. 아래와 같은 양은 벡터 입니다. 크기, 방향의 양을 가지는 벡터 : 힘, 모멘트, 변위, 속도, 가속도, 운동량, 열유동 실수, 복소수, 함수의 양을 가지는 벡터 : 좌표, 벡터 함수, 오일러 함수 대수적 성질을 공리로 사용한 벡터 공간 내의 대상을 추사화 : 무한 실수 수열,연속함수, 행렬(matrix) 벡터를 수식으로 정리하면 아래와 같습니다. Addition: Given two elements x, y in X, one can f..

[Python] tkinter 로고(아이콘) 삭제하거나 바꾸기(logo, icon, remove, change) [내부링크]

목차 파이썬 tkinter 아이콘(icon) 변경하기 바로 예제 코드로 알아보겠습니다. 예제 코드>> from tkinter import * root = Tk() photo = PhotoImage(file = 'Famtech_Logo.png') root.wm_iconphoto(False, photo) root.title("FAMTECH") root.mainloop() 4번 라인: 변경할 아이콘 이미지를 가져 옵니다. 5번 라인: 아이콘 이미지를 적용합니다. 결과>> 파이썬 tkinter 아이콘(icon) 삭제하기 파이썬(Python) tkinter 아이콘을 삭제하는 작업은 번거롭습니다. 바로 삭제하는 방법은 없기 때문에 주변색에 투명하게 통과되는 이미지가 필요 합니다 해당 이미지는 아래 링크의 사이트에서..

[Python] 파이썬 실행파일(exe) 만들기(Pyinstaller, Batch file) [내부링크]

목차 Pyinstaller 설치하기 파이썬으로 작성한 코드를 파이썬 툴이 없는 환경에서 실행파일 만으로 실행하고 싶을 때 사용하는 방법입니다. 우선 실행 파일을 만들기 위해서는 pyinstaller 라는 라이브러리 설치가 필요 합니다. 아래와 같이 설치를 진행합니다. pip install pyinstaller 실행 파일 만들기(Exe file generation) 이번에 설치는 앞서 작성한 GPS파일(nmea)을 cvs 파일로 변환하는 예제 파이썬 코드를 변환할 생각 입니다. 해당 코드를 링크를 참조 하십시오(https://scribblinganything.tistory.com/625) 설치는 아래와 같이 간단한 명령으로 완료 됩니다. pyinstaller 파이썬파일명 제가 작성한 파일명은 nmea_to..

[Python]GPS파일(nmea)에서 위도, 경도, 속도, 시간 정보 읽어서 csv에 저장하기(Latitude, Longitude, Speed, Time) [내부링크]

목차 GPS파일(nmea) Parsing 하기 예제 nmea파일>> $GPRMC,054900,A,3708.8127,N,12724.8667,E,000.0,252.0,311022,007.9,W*69 $PVRCT,56035757821,054900,311022*5F $GPGGA,054900,3708.8127,N,12724.8667,E,1,08,1.2,144.0,M,22.9,M,,*44 $GPGSA,A,3,10,12,15,22,23,24,25,,32,,,,2.0,1.2,1.6*33 $GPGSV,3,1,10,10,70,262,39,12,51,098,46,15,12,108,36,22,20,295,43*74 $GPGSV,3,2,10,23,56,181,40,24,36,052,41,25,48,156,43,31,00,000..

[Python] flask와 sqlite 연동, 웹에 글 쓰고 데이터베이스에 넣기(GET, POST, form) [내부링크]

목차 [Python] flask와 sqlite 연동: Database Write 하기: 예제1 혹시 전체 코드에 대해 자세히 알고 싶으시면 sqlite 카테고리의 글을 처음부터 보시면 쉽게 따라 오실 수 있습니다. 앞서 포스트에서는 flask와 sqlite를 연동해서 데이터베이스의 값을 읽어 오거나 HTTP GET을 사용해서 특정 ID의 DB값을 읽어 오는 방법에 대해 알아 보았습니다(https://scribblinganything.tistory.com/623). 이번 포스트에서는 두가지 예제에 대해 실행하겠습니다. 특정 페이지 접속 시 파이썬 코드에 저장되어 있는 리스트 값을 데이터베이스에 올리기 웹페이지에 직접 데이터베이스에 올릴 값 입력해서 flask와 sqlite 연동으로 DB에 저장하기 우선 첫..

[Python] flask와 sqlite 연동 검색(GET, response) [내부링크]

목차 [Python] flask와 sqlite 연동 검색 기본 준비 앞서 시간에는 flask와 sqlite를 연동(Connect)해서 flask의 웹서버를 가동해서 웹 브라우져(web browser)에서 sqlite의 데이터베이스(DB, Database)에 있는 내용을 모두 읽어 오는 예제를 시행해 보았습니다(https://scribblinganything.tistory.com/619). 동일 내용을 라즈베리파이(Raspberry Pi) 리눅스 환경에서도 시행한 예제가 있으니 궁금하시면 참조 하세요 이번 포스트에서는 REST API 를 중에 GET 을 사용해서 웹 페이지(Web Page)에 특정 id 값을 입력 하고 해당 id에 해당하는 데이터 베이스 값을 검색(Search) 하고 이를 페이지에 출력하는..

내적, 외적이란?(Inner, Outer Product, vector, scalar) [내부링크]

목차 내적 이란?(Inner Product) 내적이란 곱한다는 의미 입니다. 벡터(Vector)에서 내적의 개념은 두 개의 벡터에서 방향이 일치하는 정도를 곱하는 것입니다. 위 그림에서 a와 b 벡터에서 a 벡터에[서 b벡터와 방향이 일치하는 부분은 a x cosΘ로 표현이 가능합니다. 이를 수식으로 표현하면 아래와 같습니다. 만일 두 벡터의 값이 직교성(Orthogonality)를 가지면 90도의 차이로 접점이 없다는 의미로 내적은 0이 됩니다. 그리고 최종 값은 스칼라(Scalar)로 나옵니다. 예를 들어 아래와 같은 벡터 값은 직교성을 가집니다. 즉 두 벡터의 내적은 0이 됩니다. 위와 같이 방향이 일치하는 벡터는 그냥 곱해서 3이 됩니다. 외적 이란?(Outer Product) 외적이란 내적과 달..

푸리에 급수란?(수식, 정의, Continuous Time Fourier Series) [내부링크]

목차 해당 내용은 혁펜하임의 신시 유투브를 통해 공부하고 작성하였습니다. 푸리에 급수란(Continuous Time Fourier Series)? 테일러 시리즈(Taylor Series)는 어떠한 함수(Function)를 다항식(Polynomial)의 합으로 표현한 시리즈 입니다. 수식으로 위와 같이 표현 됩니다. 푸리에 시리즈(Frouier Series)는 어떠한 주기 함수(Periodic Function)를 사인파(Sinusoids)의 합으로 표현하는 시리즈 입니다. 위와 같이 T0라는 주기를 가지는 함수는 T0에 매치되는 주파수 w0의 Harmonic 주파수로 구성됩니다. 하모닉(Harmonic) 주파수란 기본 주파수(Fundamental Frequency)의 정수배 되는 주파수 입니다. 예를 들어..

[라즈베리파이] flask와 sqlite 연동해서 데이터베이스 값 웹 출력 [내부링크]

목차 [라즈베리파이] flask와 sqlite 연동해서 데이터베이스 값 웹 출력 앞서 라즈베리파이(Raspberry Pi)를 통해 웹서버를 운용했고 flask를 사용해서 웹브라우져(Web Browser)로 확인해보았습니다. 이번 시간에는 SQLite 데이터베이스(DB, Database)를 사용해서 테이블의 값을 읽어서 웹 하면에 출력하는 예제를 실행해 보겠습니다. 사실 이번 내용은 이미 윈도우 환경(Window OS)에서 구현해보고 실행도 해보았습니다(https://scribblinganything.tistory.com/619). 아무래도 라즈베리파이(Raspberry Pi)에서 구현하고 실행하는 것은 윈도우에 비하면 불편하기 때문에 윈도우에서 먼저 검증을 하고 확인하는 작업을 라즈베리파이(Raspber..

[Python]flask와 sqlite(데이터베이스) 연결하고 웹화면에 띄우기 [내부링크]

목차 파이썬 flask, SQLite 연결하기(기본 준비) 앞서 시간에는 flask 사용 방법과 SQLite 사용 방법에 대해 살펴 보았습니다. 이번 포스트는 flask로 웹 서버(Web server)를 구동하고 해당 웹서버를 통해서 SQLite DB(Data base)에 접급하여 값을 불러오는(읽어오는) 방법에 대해 알아보겠습니다. 언제나 그렇듯이 코드는 최대한 단순하게 작성해서 어떻게 사용하는지에 대해서만 알아보겠습니다. 우선 코드를 실행하기 위해 아래와 같은 준비가 되어 있어야 합니다. 1. DB 파일 생성하기: 아래와 같이 employee라는 테이블(Table)로 SQLite Database를 형성합니다. 테이블 생성 및 값 넣는 방법은 https://scribblinganything.tistor..

미분방정식(Homogeneous, Particular, LCCDE) [내부링크]

목차 해당 포스트는 유투브 혁펜하임을 통해 공부하여 작성하였습니다. 미분방정식(Homogeneous, Particular, LCCDE)이란? 앞서 포스트에서 왜 미분방정식을 사용하고 현실 세계에서 어떻게 적용되는지에 대해 알아보았습니다. 이번 시간에는 현실 세상(물리, 전자)에서 나오는 미분방정식 형태인 LCCDE(Linear Constant Coefficient Differential Equation)에 대해 알아보고 해당 미분 방정식의 근을 구하는 방법에 대해 알아 보겠습니다. LCCDE(Linear Constant Coefficient Differential Equation)을 수식으로 전개하면 위와 같습니다. 입력과 출력 값이 미분형태로 표현이 되고 각 미분은 시간에 상관 없는(Constant C..

미분 방정식을 사용하는 이유? (Why need Differential equation?) [내부링크]

목차 해당 포스트는 유투브 혁펜하임 강의 내용을 참조해서 만들었습니다. 물리계에서의 미적 방적식 위 그림과 같이 차가 왼쪽으로 이동한다고 생각해보겠습니다. 이때 발생하는 힘은 위와 같이 앞으로 이동하기 위해 운전자가 넣은 힘 f(t)와 차량에서 발생하는 마찰력 ρv(t)이 있습니다. 마찰력은 마찰계수 로우(rou)와 속도에 비례해서 증가합니다. 운전자가 넣은 힘과 차량에서 발생하는 마찰력을 빼면 뉴턴(Newton)의 2법칙 운동의 법칙에 의해 ma 무게와 가속도에 비례한 힘의 값만 남습니다. 이를 수식으로 전개하면 아래와 같습니다. 위 수식에서 입력 힘의 값 f(t)를 입력으로 생각해서 x(t)로 변환하고 출력 y(t)으로 속도 값 v(t)을 생각해서 변환하면 아래와 같습니다. 즉, 출력과 입력의 관계가..

[라즈베리파이] flask 기본 웹 서버 실행하기(외부에서 접속해보기) [내부링크]

목차 [라즈베리파이] flask 기본 웹 서버 실행하기 말 그대로 아래의 파이썬(Python) Flask 기본 코드를 실행하고 외부의 윈도우(Window) PC에서 해당 IP로 접속하는 시험을 진행하겠습니다. 실행할 코드는 아래와 같습니다. 예제 코드>> from flask import Flask web_gui = Flask(__name__) @web_gui.route('/') def hello_fnc(): return 'Hello' if __name__ == "__main__": web_gui.run(host='0.0.0.0', debug=True, port=9999) flask 실행에 대한 내용은 블로그 flask 카테고리에 자세히 설명 되어 있으니 참조 하시면 됩니다. 1. 예제 코드를 아래와 같이..

[라플라스변환] 변환 공식, Step Function 변환 예제(Laplace, 스텝 함수) [내부링크]

목차 해당 내용은 Michel van Biezen 이란 분의 유투브를 통해 공부해서 작성합니다. [라플라스변환] 수학적 공식 이번에는 라플라스 변환(Laplace Transform)의 수학적 공식/정의(Mathematical definition)에 대해 알아보겠습니다. 위와 같이 f(t) 함수는 변환을 거쳐서 라플라스 s 형태로 표현 됩니다. 즉, 기존의 시간 도메인(Time Domain)에서 주파수 도메인(s, Frequency Domain)으로의 변환을 의미 합니다. s는 시그마와 오메가의 합 형태로 표현 됩니다. 변환 공식은 위와 같이 exponenetial 오일러 지수를 곱해서 적분하는 형태입니다. 여기서 중요한 부분은 적분을 0시간에서 진행하는 점입니다. 이는 모든 현상을 0의 지점부터 신호를 ..

[라플라스 변환] Laplace Transform 이란? 기본 개념 익히기 [내부링크]

목차 해당 내용은 Michel van Biezen 이란 분의 유투브를 통해 공부해서 작성합니다. [라플라스 변환] Laplace Transform 이란? 갑자기 라플라스(Laplace transform)의 원리가 궁금해져서 생각을 정리할 겸 포스트를 작성하게 되었습니다. 라플라스 변환의 기본 정의는 시간 도메인(Time domain)의 함수(Function)를 복소수 주파수 도메인(Complex Frequency Domain)의 함수로 변환해주는 수학적인 장치(Tool) 입니다. 해당 정의에 대한 증명 및 전개는 향후 포스트에서 하나씩 작성하겠습니다. 이번 시간에는 라플라스 변환의 정의 및 특성에 대해 살펴 보겠습니다. 라플라스 변환(Laplace transform)을 다시 정의 하면 시간 영역에서의 미..

[Python] 지수 함수, 댐핑 사인 그래프 그리기(matplotlib, exponential, Damped Sine) [내부링크]

목차 파이썬 지수 함수 그래프 그리기(matplotlib, Exponential Function Graph) 이번에는 지수 함수(Exponential function)을 파이썬(Python) Matplotlib 라이브러리와 numpy 라이브러리를 사용해서 그리는 방법에 대해 알아보겠습니다. 코드는 단순하기 때문에 아래 예제를 통해 쉽게 알아보겠습니다. 예제 코드>> import matplotlib.pyplot as plt import numpy as np x = np.linspace(-0.2,2,10000) y = np.exp(-3*x) #그래프 설정 fig = plt.figure() plt.plot(x,y, 'b-') plt.title('Exponential Wave', color='b') plt.xl..

[Python] Sqlalchemy로 데이터베이스 읽기, 조건문 설정하기 [내부링크]

목차 파이썬 Sqlalchemy로 Database 값 전체 불러오기 SQLite의 데이터 값 전체 선택은 select 함수로 함수 니다. 그리고 이를 실행시키고 DB값을 출력 하면 됩니다. 아래 예제를 통해 쉽게 이해해 보겠습니다. 예제의 DB는 앞서 포스트에서 미리 만들어놓은 아래 DB값을 사용하겠습니다.(아래 테이블 참조) 예제 코드>> from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String engine = create_engine('sqlite:///sales.db', echo = True) meta = MetaData() company = Table( 'sales', meta, Column('id', Intege..

라그랑주 보간법, 2 , 3 points 도함수 구하기(미분, derivative, differentiation, Lagrange) [내부링크]

목차 도함수(Derivative) 구하기 도함수는 간단하게 함수를 미분하여 나온 미분 함수 입니다. 일반적인 미분법은 2개의 포인트(2 Points)를 사용해서 구합니다. 2 Points 는 다시 크게 Forward와 Backword로 구분됩니다. 위 그림과 같이 h 값이 양수이고 오른편에서의 기울기를 가져오는 방법이 forward 입니다. 수식은 위와 같이 표기 합니다. Backward 2 Points는 위 그림에서 왼편에서 시작된 값으로 h가 음수를 사용해서 0에 가깝게 가져와서 기울기를 가져 옵니다. 수식은 위와 같이 표기 합니다. 라그랑주 보간법 , 3 points 도함수 구하기 라그랑지 보간법(Lagrange Interpolation)의 수식에 대해 여기서는 상세하게 다루지 않습니다. 다만 3 ..

[Python] SQLAlchemcy란? 테이블 생성, 데이터 입력(SQLite, ORM) [내부링크]

목차 파이썬 ORM이란? SQLAlchemcy 란? ORM(Object Relational MApper)이라는 이름에서 알 수 있듯이 모든 기능이 객체(Object)로 동작합니다. 즉, 객체 내의 사용법만 알면 쉽게 Database를 생성, 수정, 삭제가 가능 합니다. 참고로 ORM은 서로 연결되지 않는 시스템 (여기서는 SQLite 데이터베이스와 파이썬)을 Mapping 시켜주는 객체 언어 입니다. 앞서 SQLite를 명령어를 직접 입력해서 파이썬으로 DB를 생성하는 방법에 대해 알아보았습니다. SQLAlchemy는 SQL 툴킷으로 ORM(Object Relational MApper)입니다. 파이썬 라이브러리로 내부의 클래스를 사용해서 쉽게 데이터베이스에 맴핑(Mapping)이 가능 합니다. SQLAl..

[Python] Sine파 그래프 그리기(Matplotlib, 여러개 사인파 한그래프 표기) [내부링크]

목차 파이썬 Sine파 그래프 그리기 우선 파이썬의 Matplotlib으로 사인파형(Sinusoidal waveform)을 그리는 기본적인 코드에 대해 알아 보겠습니다. 설명은 아래 예제 코드로 진행하겠습니다. 예제 코드>> import matplotlib.pyplot as plt import numpy as np x = np.linspace(-np.pi,np.pi,100) y = np.sin(x) #그래프 설정 fig = plt.figure() plt.plot(x,y, 'b-') plt.title('Sine Wave', color='b') plt.xlabel('X') plt.ylabel('Sin(x)') plt.grid() plt.axhline(y=0, color='k') plt.axvline(x=0,..

Memoryless, Causal, BIBO System의 정의(메모리리스, 인과, 유계 입력 출력, Stability) [내부링크]

목차 본 포스트는 유투브 헥펜하임의 내용을 참조로 작성하였습니다. Memoryless 시스템이란? 앞서 임펄스 응답(Impulse Response) h(t)에 대해 알아보았습니다. h(t)는 0초에서 임펄스 입력 값 δ(t)이 들어갔을 때의 응답이 었습니다. Memoryless(무기억) 시스템이란 임펄스 입력이 들어가고 즉각 반응하는 시스템을 의미 합니다. 예를 들어 스위치를 누르면 LED가 바로 켜지는 시스템을 무기억 시스템으로 볼 수 있습니다. 반대로 입력이 출력의 과거나 미래에 영향을 준다면 Memoryless 시스템이 아닌 것입니다. 위 그림과 같이 2번 응답만이 Memoryless 응답입니다. 1번과 3번에 응답이 있다면 해당 응답은 Memoryless 시스템이 아닙니다. Casual 시스템이란..

연속시간 컨볼루션이란?(Continuous Time Convolution) [내부링크]

목차 해당 내용은 혁편하임 신시 강의를 참조해서 작성하였습니다. 연속 시간의 임펄스(Impulse) 함수로 표현하기 앞서 이산 시간(Discrete time)에서의 임펄스 함수로 컨볼루션(Convolution)을 표현하는 방법에 대해 알아보았습니다. 연속시간(Coninuous time)에 대해 컨볼루션을 표현하기 위해서는 연속 시간에서의 임펄스 함수가 필요 합니다. 연속시간에서의 임펄스 함수는 위와 같이 박스 형태로 표현되고 델타()가 0으로 가까워 지면서 이산 시간의 임펄스 함수처럼 선에 가깝게 변하게 됩니다. 위와 같이 x(t) 함수를 임펄스 막대기로 표기가 가능 합니다. x(t)는 위와 같이 수식으로 정리될 수 있습니다. 여기서 델타(δ)에 델타(Δ)를 곱합 값은 사각형의 넓이가 아닌 높이 정보입..

[Python] 내장 함수란? 확인 방법 (아래 밑줄 2개, underscore, __init__, __repr__) [내부링크]

목차 파이썬 내장 함수란? 파이썬이란 객체 지향 언어(OOP, Object Oriented Programming)으로 변수 선언이나 내부에 함수들은 실제 클래스로 이루어져 있습니다. 그리고 각 클래스에는 메소드(Method)라는 함수로 특성 기능을 수행할 수 있습니다. 여기서 언더스코어(Underscore, 밑줄) 두 개로 표기된 함수를 가끔 보신적이 있습니다. 이는 클래스가 가진 자체 내장 함수라고 생각하시면 됩니다. 예제 코드>> var_a = 7 print(type(var_a)) print(repr(var_a)) 결과>> 7 위에 예제 코드에서 var_a를 7이라는 정수(integer)로 선언 합니다. 그리고 type으로 확인 결과 int 라는 클래스 임을 알 수 있습니다. 그리고 Class int..

[Python] SQLite, CSV 쓰고 읽기, DB에 옮기기 [내부링크]

파이썬 CSV 쓰기 csv 작성은 csv.writer 함수로 실행합니다. 아래 예제를 통해 쉽게 이해해 보겠습니다. 예제 코드>> def wr_csv(data): with open('data.csv', 'w', newline='') as file: writer = csv.writer(file) writer.writerows(data) 위와 같이 함수를 작성해서 실행합니다. data.csv 라는 파일을 만들고 입력할 값을 여러개의 list 값을 묶어서 입력 합니다. 한줄만 입력하고 싶을 경우 writerow 함수와 리스트 값 하나만 입력 하면됩니다. 파이썬 CSV 읽고 데이터베이스에 쓰기 CSV 읽기 방법도 쓰기와 유사합니다. 이번에는 csv.reader 함수를 사용해서 실행하겠습니다. 읽은 값은 SQLi..

컨볼루션이란? (LTI 시스템, 임펄스 신호 응답, Convolution, Impulse) [내부링크]

목차 이번 포스트는 혁펜하임 신시 컨볼루션 내용을 참조해서 작성하였습니다. 콘볼루션(컨볼루션, Convolution)을 이해하기 위해서는 LTI와 Impulse 신호와 응답에 대해 이해하여야 합니다. LTI는 앞 포스트에서 설명하였으니 참조 하시길 바랍니다. Impulse 신호 및 응답 임펄스 신호는 이산(Discrete) 신호와 연속(Continuous) 신호에 따라 아래와 같이 표현 됩니다. 이산 임펄스(Impulse) 신호 연속 임펄스(Impulse) 신호 위와 같이 Impulse 신호에 대해 정의를 내릴 수 있습니다. 그리고 Impulse 신호는 적분시 1이 나옵니다. 해당 특징은 아래와 같이 수식으로 정리 됩니다. 임펄스(Impulse) 응답이란? Impulse 응답이란 말 그대로 Impulse..

[Python] SQLite 데이터 하나 쓰기, 여러개 쓰기 삭제하기 조건걸기(Write, Delete) [내부링크]

목차 파이썬 SQLite DB 하나 쓰기, 여러개 쓰기 앞서 데이터베이스에 내용을 입력하는 방법에 대해 알아보았지만 복습 차원에서 정리하면 아래와 같습니다. INSERT INTO 테이블명 VALUES(입력값) 여러개 값을 입력할 경우 리스트로 값을 입력하고 sqlite 코드는 executemany로 시행합니다. sqlite 명령어는 하나의 입력 방식과 동일 합니다. 실제 아래 예제를 통해 쉽게 이해해 보겠습니다. 예제 코드>> import sqlite3 from sqlite3 import Error def connection(): try: con = sqlite3.connect('test2.db') return con except Error: print(Error) def create_table(con)..

에너지 신호와 전력 신호 구분법(Energy, Power) [내부링크]

목차 이번 포스트는 유투브 채널 혁펜하임의 신시 강의 내용을 참고로 작성하였습니다. 강의는 아래 링크를 통해 확인할 수 있습니다.(https://www.youtube.com/watch?v=Zy4QRMD6mC0&list=PL_iJu012NOxcDuKgSjTKJZJd3bQtkAyZU&index=7 ) 에너지 신호, 전력 신호 수식(Equation) 에너지(Energy)란 전력/파워(Power) 값을 시간에 따라 적분한 값입니다. 전기 분야나 기계 분야 등 세상에 존재하는 파워를 살펴 보면 제곱의 형태로 표현 됩니다. 예를 들어 전력(Electric Power)는 전류의 제곱이거나 전압의 제곱에 비례합니다. 그래서 파워 값은 제곱의 형태로 표현 됩니다. 에너지 신호란 위에 에너지 수식이 수렴하면 에너지 신호라..

[Python] SQLite 테이블 if not 으로 검색 후 생성, 삭제(drop, delete) [내부링크]

목차 SQLite에 대한 기본적인 내용을 확인하고 싶으시면 블로그에 데이터베이스(Database)의 SQLite 카테고리에서 처음부터 확인하시면 됩니다. 파이썬 SQLite 테이블 검색 후 생성하기 SQLite 구문에서 if not exists 을 사용하면 해당 내용이 없을 경우 특정 명령을 실행하게 할 수 있습니다. 명령어 if not exists 찾는내용 아래 예제는 특정 테이블을 찾고 없을 경우 6개의 테이블을 새로 생성하는 예제 입니다. 예제 코드>> import sqlite3 from sqlite3 import Error def connection(): try: con = sqlite3.connect('test0.db') return con except Error: print(Error) def..

LTI(Linear Time Invariant)란? 특징과 문제 풀이 [내부링크]

목차 LTI(Linear Time Invariant)란? LTI란 선형적(Linear)이고 시간에 불변(Time Invariant)한 시스템을 의미 합니다. 선형이란 아래의 두 특성을 가진 성질을 의미 합니다. Scaling Additivity 위 두가지 성질을 합쳐서 Superposition(중첩)의 성질이라고 부릅니다. 시불변(Time Invariant)란 시간에 관계없이 특정 입력에 대해서 동일 출력이 나옴을 의미 합니다. LTI 수식으로 풀이 하기: 선형성 검증 중첩(Superpostion) 성질에 대해 정리해보겠습니다. 위와 같이 f라는 시스템에 x1, x2입력을 넣고 a1, a2 배수를 했을 때 출력도 동일하게 배수와 합으로 표현되면 선형 시스템이라고 부릅니다. 선형 증명 예제1>> 위 시스템..

[Python] SQLite DB불러오기 (Select, Fetch) [내부링크]

목차 파이썬 SQLite DB불러오기 앞 포스트에서 테이블을 만들고 데이터를 저장하는 방법에 대해 알아보았습니다(https://scribblinganything.tistory.com/597). 이번 포스트는 저장된 DB를 읽는 방법에 대해 알아보겠습니다. 우선 SQLite에서 모든 데이터를 부를 때 아래와 같은 명령어를 사용합니다. SELECT * FROM 테이블명 테이블에 있는 모든 데이터(별표)를 선택하겠다는 의미 입니다. 그리고 fetchall 함수로 데이터를 불러 옵니다. 아래 파이썬 예제로 쉽게 이해해 보겠습니다. 현재 SQLite 데이터 베이스에는 아래와 같은 정보가 포함되어 있습니다. 예제 코드>> import sqlite3 from sqlite3 import Error def connect..

[Python] SQLite 데이터베이스에 값 입력하기, 변경하기(Insert, Update) [내부링크]

목차 파이썬 SQLite 데이터베이스에 값 입력(Insert) 앞서 포스트에서 SQLite를 사용해서 DB를 생성하고 테이블을 만드는 방법에 대해 알아보았습니다(https://scribblinganything.tistory.com/596). 이번 포스트는 앞서 생성한 테이블에 내용을 입력하는 방법에 대해 알아보겠습니다. 데이터 입력을 위해서 파이썬 함수 execute로 SQLite 명령을 실행하고 commit으로 변경 내용을 저장합니다. SQLite에서 데이터 입력은 INSERT INTO 테이블명 으로 실행 합니다. 상세 내용은 아래 예제를 통해 이해해 보겠습니다. 예제 코드>> import sqlite3 from sqlite3 import Error def connection(): try: con = ..

[Python] SQLite DB만들기, 테이블 생성하기(memory, file, table) [내부링크]

목차 SQLite DB 생성하기 앞서 포스트에서 SQLite는 상대적으로 가벼운 데이터베이스(Database)로 DB를 메모리 영역에 생성하거나 파일에 생성합니다. 생성은 connect 함수로 실행합니다. 아래 입력 값에 따라 메모리 또는 파일에 데이터베이스를 생성합니다. 생성 함수: connect 입력 값: ":memory:", "파일명" 예제 코드>> import sqlite3 from sqlite3 import Error try: con = sqlite3.connect(':memory:') # con = sqlite3.connect('test.db') print("DB created in memory") except Error: print(Error) finally: con.close() 5번 라인..

[Python]SQL이란? 파이썬에서 SQLite 연결하기(connect) [내부링크]

[Python] SQL이란? SQL(Structured Query Language)는 데이터베이스(DB, Database)의 데이터를 검색, 갱신, 관리의 기능을 구현하게 정의된 프로그래밍 언어(Programming Language)입니다. SQL는 유료와 무료 등 여러가지 버젼이 있는 데 궁극 적인 목표는 최대한 방대한 데이터베이스를 효율적이고 빠르게 처리하는 것이 목적입니다. 언어(명령어)는 크게 아래와 같이 분류 됩니다. DDL(Data Defition Language) Create Table Drop Table Alter Table DML(Data Manipulation Language) Insert Delete Update Select DCL(Data Control Language) [Pytho..

CGI란? 간단한 예제 리눅스 라즈베리파이에서 실행하기(파이썬, Python, linux, rasberrypi) [내부링크]

목차 CGI란? CGI란 Common Gateway Interface의 약자로 HTML 문서의 수동적인 정보 전달 보완을 위해서 만들어진 동적 변환 방식으로 CGI는 동적으로 동작하기 위해 정한 표준 규약(Protocol) 입니다. 동작 순서는 아래와 같습니다. 1. 클라이언트(Client)가 웹 브라우져(Web Browser)를 통해 동적인 웹 문서를 요청 합니다. 2. 웹 서버(Web Server)에서는 동적 웹 문서에 대해 CGI 프로그램 스크립트에게 CGI를 요청 합니다. 3. CGI 스크립트에 프로그램된 동적인 동작을 웹 서버를 통해 웹 브라우져로 전달 합니다. 즉, CGI를 웹서버에서 실행하기 위해서는 웹서버에 CGI에 대한 정의가 있어야 하고 CGI Script가 따로 작성되어 정의된 방식에..

[라즈베리파이] 웹 서버(Web Server)란? 아파치(Apache) 설치 및 실행하기 [내부링크]

목차 웹 서버(Web Server)란? 웹 서버는 Client가 웹 브라우져(Web Browser)를 통해 접속해서 데이터를 요청하면 해당 요청에 맞춰 제공해주는 인터넷 프로그램입니다. 클라이언트(Client)와 서버(Server) 사이는 HTTP 라는 정해진 프로토콜(Protocol)로 통신 합니다. 아래는 라즈베리파이(Raspberry Pi)에서 가장 많이 사용하는 대표적인 웹 서버 소프트웨어 입니다. Apache Lighttpd nginx 이번 포스트에서는 Apache를 설치해서 사용해볼 예정입니다. 사용자도 많고 다양한 언어를 지원하기 때문에 사용이 용이 합니다. 서버를 운용하기 위해서는 웹 응용 프레임워크로 코드를 작성해야 하는데 대표적인 프로그램 언어는 아래와 같습니다. Java Javascr..

윈도우 컴퓨터 화면에 갤럭시 탭 화면 공유하기 (강의 유용한 기능) [내부링크]

목차 윈도우(Window) PC에서의 설정 1. 윈도우 검색창에 시스템을 아래와 같이 검색하고 실행합니다. 2. 아래 그림과 같이 "이 PC에 화면 표시"를 클릭 합니다. 아래와 같이 활성화 되지 않았다면 선택적 기능을 클릭 후 무선 디스플레이를 설치 합니다. 설치가 완료 되면 아래와 같이 활성화 됩니다. 3. 아래와 같이 안전한 네트워크... 를 설정하고 파란색으로 된 "이 PC에 표시하기 위해 연결 앱 시작"을 클릭 합니다. 4. 클릭 후 아래와 같은 화면이 나오는데 이때 마우스를 위쪽으로 올려서 오른쪽 상단에 화살표를 클릭해서 화면을 축소 합니다. 그렇지 않으면 추후에 탭화면 미러링으로만 고정되기 때문입니다. 갤럭시 탭(Galaxy Tab)에서의 설정 현재 1. 아래 그림과 같이 Smart View..

힘, 에너지, 일, 파워, 일률, 순간에너지, 평균에너지란? 수식(Force, Power, Energy, Work, Equation) [내부링크]

목차 해당 내용은 유투브 강의 혁펜하임의 강의를 기초해서 정리한 자료 입니다. 힘(Force)이란? 우선 힘(Force)에 대한 정의 부터 파워(Power), 에너지(Energy), 일(Work)에 대한 정의가 이루어 집니다. 힘은 위와 같은 수식으로 시편의 무게에 가속도를 곱하는 것으로 뉴턴(Newton)에 의해 "정의"된 값입니다. 즉, 힘에 대한 정의는 위와 같이 약속이 된 것입니다. 단위는 N 또는 kgf을 사용합니다. 단위: N, kgf 일(Work)이란? 일이란 물체가 이동하는 방향으로의 힘에 물체가 이동한 거리를 곱한 값입니다. 단위는 Nm 또는 J을 사용 합니다. 단위: Nm, J 에너지(Energy)이란? 흔히 운동에너지, 위치에너지에 대한 얘기를 들어보셨을 겁니다. 에너지란 물체에 일(..

DC 션트 저항이란? 사용 방법(DC Current Shunt) [내부링크]

목차 DC 션트 저항(DC Current Shunt)이란? 일반적으로 작은 전류를 측정할 때는 전류계를 사용해서 측정이 가능하지만 큰 전류(10A 이상)를 측정할 때 Shunt 저항을 사용 합니다. Shunt 저항은 고전류 측정을 위해 제작된 특수 저항입니다. Shunt 저항은 위 그림과 같이 일반적으로 부하(Load)와 직렬로 연결합니다. 그리고 Shunt 저항에 병렬로 전류계를 연결합니다. Shunt 저항은 위 그림처럼 볼트로 연결할 수 있는 구조로 되어 있습니다. 볼트를 통해서 굵은 전선을 연결할 수 있고 가운데 작은 볼트로 Voltmeter와 연결할 수 있는 구조를 가집니다. 그리고 Shunt 저항은 Ground에 가깝게 연결해서 전압 강하를 최소화 해줍니다. 위 저항은 무라타 션트 저항인데 저항..

오일러 공식(Euler's formula) 사용 예제 [내부링크]

목차 해당 내용은 유투브 강의 혁펜하임의 강의를 기초해서 정리한 자료 입니다. 앞서 오일러 공식의 정의와 어떻게 유도를 했는지에 대해 알아보았습니다(https://scribblinganything.tistory.com/588). 이번 시간에는 오일러 공식을 사용해서 어떤 수학적 이점과 실제 사용 예제에 대해 알아보겠습니다. 오일러 공식(Euler's formula) 사용 예제 #1 위 그림과 같이 복소수 값을 지수 형태로 표현할 수 있습니다. 즉, 아래와 같이 여러가지 복수의 곱을 쉽게 덧셈으로 바꿔서 사용할 수 있습니다. 오일러 공식(Euler's formula) 사용 예제 #2 위 예제는 a(t), b(t)를 통신으로 보낼 때 cos(t)와 90위상 차이가 나는 -sin(t)에 묶어서 보내고 송신부에..

[공업수학]오일러 공식(e^(jΘ) = cosΘ+jsinΘ) 이해하고 유도하기(Euler's Formula, Maclaurin Series) [내부링크]

목차 맥클로린 급수(Maclaurin Series) SinΘ, CosΘ 유도 모든 신호는 맥클로린(Maclaurin Series) 급수로 표현이 가능 합니다. 위와 같은 형태로 신호는 표현이 가능 합니다. C0, C1, C2.... 값들은 아래와 같이 미분으로 표현이 가능 합니다. 위 수식을 이용해서 Sin과 Cos을 아래와 같이 구할 수 있습니다. 이번에는 아래 지수함수를 맥클로린(Maclaurin Series) 급수로 표현해보겠습니다. 위 지수함수를 수식(1)에 대입하면 아래와 같이 구할 수 있습니다. 앞서 식(2)과 식(3)을 사용하면 식(4)를 아래와 같이 표현할 수 있습니다. 오일러 공식(Euler's Formula) 속성 식(5)는 cosΘ와 sinΘ로 이루어지기 때문에 Θ를 각으로 생각하면 ..

[Linux]리눅스 find로 파일 검색하기(size, exec, name, 별표* 사용) [내부링크]

목차 리눅스 파일 찾기 명령어 및 사용방법 리눅스에서 파일을 찾는(Search) 방법은 주로 find 명령을 사용 합니다. 사용 방법은 아래와 같이 단순 합니다. find 검색위치폴더 옵션 찾을파일이름 검색위치 폴더의 경우 입력하지 않으면 전체 폴더에서 검색을 시행 합니다. 그리고 찾을 파일 이름에서는 윈도우에서 모르는 문자를 대체 하듯 사용 할 수 있습니다. 옵션은 아래와 같습니다. -name : 찾을 파일 검색 -perm : 파일 권한으로 검색 -type : 형태가 같은 파일 검색 -link : 링크 개수가 일치하는 파일 검색 -size: 사이즈로 검색, 파일 사이즈는 b(블록), c(바이트), k(킬로바이트), w(워드단위, 2바이트) -user : 사용자로 검색 -exec : 검색된 파일에 추가 ..

[라즈베리파이]Raspbery Pi에서 파이썬 처음 실행해보기(Python) [내부링크]

파이썬(Python)이란? 파이썬은 인터프리터(Interpreter) 언어로 C언어와 같이 컴파일러(Compiler)를 사용하는 언어와는 효율성에서 다릅니다. 인터프리터는 간단하게 말하자면 해당 프로그램에 대해 말 그대로 해석을 해서 바로 실행을 시킬 수 있습니다. 하지만 C와 같은 컴파일러의 언어들은 컴파일(Compile)이라는 단계를 거쳐서 프로그램을 컴퓨터가 이해할 수 있는 명령어로 변환해서 실행을 해야 합니다. 대신 컴파일은 인터프리터 처럼 미리 해석을 위한 처리가 필요 없어서 언어 자체가 가볍고 사용자가 상대적으로 효율 적이고 빠른 코드를 작성할 수 있습니다. 물론 최근에 파이썬도 다양한 라이브러리가 제공 되어 효율적이고 빠른 코드를 사용자 어플리케이션(Application)에 맞춰 제작을 해주..

[전기전자]캐패시터, 콘덴서, 캐패시턴스, 리액턴스란?(Capacitor, Capacitance, Condensor, Reactance) [내부링크]

목차 [전기전자]캐패시터, 콘덴서란? 캐패시터(Capacitor), 콘덴서(Condensor)는 동일한 말입니다. 간단하게 설명하면 전하를 저장할 수 있는 장치 입니다. 위 사진은 다양한 종류의 캐패시터 입니다. 위 그림은 전자 회로도로 직류 전원과 캐패시터가 연결되었을 때 입니다. 위 그림처럼 캐패시터의 판에 전하가 저장됩니다. 그리고 판사이에 유전체(Dielectric)가 있어서 전류가 흐를 수는 없습니다. [전기전자]캐패시턴스 란? 앞서 회로에서 Capacitor가 저장할 수 있는 정도를 수식으로 표현하면 아래와 같습니다. Q = C x V 여기서 Q는 전기량으로 클롬이라고 하고 단위는 C를 사용합니다. C는 캐패시턴스(Capacitance)를 의미 합니다. 캐패시턴스는 캐패시터의 능력이라고 볼 수..

[Linux]리눅스 쉘스크립트란? 사용 방법, 예제(Shell Script, 셸) [내부링크]

목차 리눅스(Linux) 쉘스크립트란? 쉘스크립트(Shell Script, 셸스크립트)는 Shell 명령어들을 텍스트 파일이 모아서 실행해주는 개념이라고 생각하시면 됩니다. C언어나 파이썬(Python)과 같이 코드를 위에서 아래로 순차적으로 실행합니다. 이때 실행하는 명령어들이 Shell이라는 차이가 있습니다. Shell Script를 사용하는 장점은 컴파일이 필요없이 리눅스(Linux) 환경에서 셀을 인터프리터(Interpreter)로 바로 해석해서 실행해주는 장점이 있어서 간단한 명령을 구현할 때 주로 사용합니다. 리눅스(Linux) 셸스크립트 사용 방법 스크립트 텍스트 파일은 아래와 같이 시작 합니다. #!/bin/bash #!의 의미는 해당 스크립트(텍스트) 파일은 실행 파일로 인식 시킵니다. ..

PWM(Pulse Width Modulation)제어란? [내부링크]

목차 PWM(Pulse Width Modulation)제어란? PWM 제어란 전자 장치에 전달되는 평균 파워양을 펄스의 너비(Width)를 조절해서 원하는 값으로 전달하는 제어 방식을 의미합니다. 예를 들어 5V 전압을 유지하는 DC 전원이 있다면 위 그림과 같이 50%의 Width로 전달 된다면 평균은 2.5V가 전자 장치로 전달되게 됩니다. 위와 같이 Width로 평균전압 전달을 제어하는 방법을 PWM 제어라고 합니다. PWM(Pulse Width Modulation)제어 예제 위 그림과 같이 DC 모터(Motor)가 스위치(Switch)를 사이에 두고 배터리와 연결되어 있습니다. 모터의 속도는 아래와 같이 정의 됩니다. R는 모터 내부의 기생 저항이고 파이는 자속입니다. 여기서 V(전압) 값을 조절..

[Linux]리눅스 환경변수, 쉘이란?(Shell, echo, env, export, bashrc, Environment variable) [내부링크]

목차 리눅스 환경변수, 쉘이란?(Shell, Environment variable) 환경 변수란 리눅스 사용자가 로그인할 때 자동으로 셸/쉘(Shell)이 실행되면서 사용환경을 구축합니다. 이때 Shell을 환경변수(Environment variable)라고 합니다. 간단하게 예를 들면 스마트 아파트에 사용자가 들어가면 사용자를 인식해서 기본적으로 에어컨으로 온도를 조절 해주고 커튼을 열어주고 공기 청정기를 켜주는 시스템이 있다고 생각하면 각 사용자마다 설정해 놓은 스마트 기능이 다를 것입니다. 여기서 에어컨이나 청정기와 같은 장치를 Shell이라고 생각하시고 아파트는 리눅스 시스템이라고 생각하시면 됩니다. 리눅스를 시작하면 모든 사용자들이 대부분 공통적으로 실행되는 환경 변수들이 있는데 해당 환경 변수..

[Linux]리눅스 프로세스 포그라운드, 백그라운드란? 사용방법(foreground, background, kill, ps, process) [내부링크]

목차 리눅스 포그라운드, 백그라운드란(foreground, background)? 리눅스는 쉘(셸, Shell) 명령어로 프로세스가 실행됩니다. 이때 Shell 은 기본적으로 포그라운드(Foregournd)로 실행됩니다. 포그라운드는 명령어가 프롬프트를 빠져나오지 못하고 프로세스가 완료 되거나 다른 입력을 기다려야 합니다. 반면에 백그라운드(Background)는 명령어가 Shell Prompt를 빠져나와서 프로세스를 진행하고 Shell에서 다른 작업을 할 수 있게 됩니다. Shell이 기본적으로 포그라운드에 실행되는 데 명령어 끝에 &(And) 기호를 붙이면 백그라운드에서 동작 합니다. & 또는 이미 진행중인 프로세스에 bg 명령을 입력 해서 Background로 변경하고 이 것을 다시 fg를 입력해서..

[Linux]리눅스 시스템 자원, 메모리, 프로세스 사용량 확인하기(모니터링) [내부링크]

목차 시스템 자원(System Resource) 관리 확인하기 시스템 자원 관리 명령어는 아래와 같습니다. top top 명령어를 입력하면 아래와 같은 결과를 확인할 수 있습니다. 1번 줄 : 동작 시간, 사용자 수, 부하 평균값 2번 줄 : 전체 프로세서 수, 동작, 슬립, 중단, 좀비 프로세스의 개수 3번 줄 : CPU의 가동을 백분률로 표기 4번 줄 : 메모리 정보 5번 줄 : SWAP 공간 정보 이하 : 프로세스 정보 메모리 자원(Memory Resource) 관리 확인하기 메모리 자원에 대한 상세 내용은 free 명령어로 확인 가능 합니다. free 프로세스 자원(Process Resource) 관리 확인하기 프로세스는 ps 명령어로 확인 가능 합니다. ps 명령어는 아래의 옵션과 함께 사용할 ..

[Linux]리눅스 grep 정규식으로 검색하기(|, regex, search) [내부링크]

목차 [Linux]리눅스 grep 검색이란? 리눅스에서 grep을 사용해서 쉽게 검색을 할 수 있습니다. grep은 정규 표현식(Regular expression)을 사용하기 때문에 간단한 정규 표현식을 사용한다면 검색이 용이 합니다. 이번 시간에 grep의 옵션 및 기본 정규 표현식 사용 방법 및 간단한 예제 실습을 진행해 보겠습니다. 우선 grep의 사용방법은 아래와 같습니다. grep 옵션 '정규표현식' 파일명 옵션은 아래와 같습니다. -i : 대소문자 구분 없이 검색 -n : 일치하는 줄과 그 줄 번호를 같이 보여줌 정규 표현식 기본 표현 아래는 정규 표현식 사용의 기본 표현을 정리한 내용입니다. * : 별표 앞의 문자가 0개 이상 존재 . : 하나의 문자 ^ : 시작하는 문자와 대응 $ : 끝 ..

[Linux] 리눅스 사용자 권한 정의 및 변경(chomod, read, write, execute, 읽기, 쓰기, 실행) [내부링크]

목차 [Linux] 리눅스 사용자 권한이란? 간단하게 유닉스나 리눅스 체계에서는 파일이나 디렉터리를 사용할때 접속되어 있는 사람에 따라 권한이 다르게 설정 되어 있습니다. 우선 사용자는 아래와 같이 3가지로 분류됩니다. 소유자(Owner) 그룹(Group) 기타(Others) 아래와 같이 ls -a로 파일의 권한까지 확인할 수 있습니다. 파일이나 디렉터리 앞단에 -나 d로 시작하는 권한에 대한 내용을 확인할 수 있습니다. 의미는 아래와 같습니다. - : 파일 d : 디렉터리 그 뒤에 총 9개의 권한 공간이 있는데 각 3, 3, 3 로 나워서 소유자, 그룹, 기타가 가지는 권한에 대해 정의 합니다. 권한은 3개의 비트로 표현되고 의미는 아래와 같습니다. 괄호안의 숫자가 2진수로 표현한것이고 그 앞에 숫자는..

[Linux] 리눅스 파일 생성, 삭제, 이동, 복사 사용법(touch, cat, cp, rm, mv) [내부링크]

목차 리눅스(Linux) 파일 생성 : touch, cat 리눅스에서 파일을 만드는 방법은 다양하게 있습니다. 다양한 텍스트 에디터(vi, vim, nano 등)이 있지만 이번 장에는 간단하게 파일을 형성하는 touch 와 cat에 대해 알아 보겠습니다. touch는 빈 파일을 쉽게 만들어 줄 수 있습니다. cat는 내용을 입력해서 만들 수 있습니다. touch 사용법>> touch 생성할파일명 결과>> cat 사용법>> cat > 생성할파일명 내용입력후 Ctrl+D로 종료 cat 읽을파일명 cat는 > 로 파일을 생성과 동시에 내용을 입력합니다. 그리고 입력완료 후 Ctrl+D키를 눌러서 입력을 마칩니다. 출력은 cat에 읽을 파일명을 입력하시면 됩니다. 결과>> 리눅스(Linux) 파일 이동: mv ..

[Linux]리눅스 ls, cd, pwd 명령어(파일 목록 보기, 디렉토리 이동 위치) [내부링크]

목차 [Linux]리눅스 ls 파일 목록 확인하기 리눅스의 ls는 예전 도스(Dos)에서 dir과 유사 합니다. ls를 사용하면 현재 위치에서의 파일의 목록을 확인할 수 있습니다. 아래는 가장 기본이 되는 옵션을 사용한 명령입니다. ls -l 파일 목록 제일 앞 단에 drwxr-xr-x 는 파일이나 디렉터리(Directory)에 대한 권한(Permission)에 대한 정보 입니다. 제일 앞에 d 는 디렉터리를 의미하고 -는 파일이고 c는 캐릭터 디바이스 s는 네트워크 소켓 파일 l은 링크 파일 입니다. rwx는 읽기, 쓰기, 실행하기에 대한 권한입니다. -rw-r--r-- 의 의미는 해당 파일은 유저(User)는 읽기, 쓰기의 권한이 있고 그룹(Group)은 읽기 권한만, 방문자(Other)도 읽기 권한..

[라즈베리파이]VNC로 윈도우PC에서 원격제어하기(GUI, 그래픽) [내부링크]

목차 앞서 과정에서 Putty를 사용해서 Text 기반의 원격 제어(Remote Control) 방법에 대해 알아보았습니다(https://scribblinganything.tistory.com/574). 이번 시간에는 Graphic으로 직접 연결하는 방법에 대해 알아보겠습니다. 라즈베리파이(Raspberry Pi) 리눅스 VNC 서버 실행 라즈베리파이(Raspberry Pi)에 그래픽으로 원격 접촉을 하기 위해서는 VNC 방식을 사용합니다. VNC란 라즈베리파이의 리눅스에 윈도우 X (GUI) 프로그램을 실행시켜주는 그래픽 서버로 생각하시면 됩니다. 1. 리눅스에 접속해서 아래와 같이 입력하여 vnc server를 설치 해줍니다. sudo apt-get install realvnc-vnc-server 2..

[라즈베리파이]Putty로 원격 접속하기(윈도우 PC, 통신, Remote) [내부링크]

목차 Putty(푸티) 윈도우 OS에 설치하기 아무래도 라즈베리 파이(Raspberry Pi)에서 모니터와 키보드 마우스 등을 다 연결해서 사용하기 불편한점이 있습니다. 이러한 부분을 해결하기 위해 라즈베리 파이(Raspberry Pi) 리눅스(Linux) OS에서 서버를 만들고 계정을 등록한 뒤 윈도우 운용체제를 가진 컴퓨터에서 Putty를 사용해서 쉽게 접근 할 수 있습니다. 일반적으로 리눅스에서 제공하는 원격 접속 방법은 아래와 같습니다. 텔넷(Telnet) SSH(Secure Shell) SSH가 암호화 방식의 통신을 사용하기 때문에 안정성이 높아 SSH 통신을 사용합니다. Putty는 SSH를 지원 합니다. 1. https://www.putty.org/ 사이트에 접속해서 Putty를 다운로드 합..

[라즈베리파이]리눅스 화면/스크린 캡쳐 방법(Linux, Screen, Image, 스크린샷) [내부링크]

목차 Raspberry Pi 화면 캡쳐하기 #1 첫번째 방법은 윈도우 OS와 동일한 방법으로 화면을 캡쳐합니다. 키보드에 "Print Screen" / "Prt Sc" 키를 눌러서 해당 화면을 프린트 스크린 해줍니다. 저장된 파일은 리눅스(Linux) 버젼에 따라 다른 폴더에 저장되는데 저같은 경우에는 아래 그림의 폴더와 같이 제 리눅스 아이디 fam 폴더 아래 캡쳐 파일들이 저장되었습니다. 이전 버전의 경우 /home/ID 에 저장되었습니다. Raspberry Pi 화면 캡쳐하기 #2 이번에는 터미널(Terminal)에서 명령어로 저장하는 방법에 대해 알아보겠습니다. scrot 위 scrot 명령어를 터미널에 입력하시면 해당 화면이 캡쳐되어서 앞서 폴더에 저장됩니다. scrot -s -s를 인자로 넣게..

[라즈베리파이]리눅스 삼바로 윈도우컴퓨터와 파일 공유하기(Samba, window, file share, linux) [내부링크]

목차 Linux 삼바 설치 및 설정(Samba Installation and Settings) 라즈베리파이는 리눅스(Linux) 운영체제에서 돌아갑니다. 여기 리눅스에서 삼바(samba)라는 프로그램을 사용해서 다른 컴퓨터와 인터넷 통신이 가능하게 만들어 줬습니다. 저는 앞으로 Raspberry Pi의 스크릿 샷이나 파일을 삼바로 이동해서 블로그를 작성할 예정이라 삼바를 설치하도록 하겠습니다. 1.아래와 같은 명령어를 터미널에 입력해서 Samba를 설치 합니다. sudo apt-get install samba samba-common-bin 설치 중에 스크린세이버가 켜지거나 라즈베리파이가 종료되어서 에러가 발생하면 다시 설치 해줍니다. 2. 설치 완료 후 아래와 같이 아이디를 설정합니다. 제 리눅스는 fa..

[라즈베리파이]Raspbeery PI OS(구 라즈비안, Raspbian) 설치 [내부링크]

목차 Raspbeery PI OS(구 라즈비안, Raspbian)설치 라즈베리 파이 보드에 리눅스 OS를 설치하기 위해서는 마이크로 SD카드가 필요 합니다. 1. 아래 그림과 같이 SD카드를 컴퓨터(노트북)에 연결합니다. 2. https://www.raspberrypi.com/software/ 사이트에 접속해서 아래 그림과 같이 윈도우(Windows)용 Raspberry Pi OS를 다운 받습니다. 3. 다운 받은 파일을 설치 후 아래와 같이 동작 시킵니다. 4. 운영체제 OS 선택을 클릭하고 Raspberry PI OS(32bit)를 선택합니다. 5. 저장소를 선택 후 SD카드 위치를 선택합니다. 그리고 쓰기를 시작합니다. Raspbeery PI 보드 하드웨어 연결 및 실행 앞서 5번 이후 과정을 진행..

[Python] 멀티스레딩과 Global 변수 공유 방법(Multi threading, thread) [내부링크]

목차 앞서 멀티스레드(Multi Thread)의 정의와 기본적인 사용방법에 대해 알아보았습니다(https://scribblinganything.tistory.com/568). 이번 시간에는 실제 여러개의 멀티 스레딩이 동작할 때 서로간에 변수(variable)를 공유하거나 주고 받아야 하는 일들이 있습니다. 이때 변수를 각 각의 스레드가 어떻게 이용하는지에 대해 알아보겠습니다. 예를 들어 pyserial과 같은 통신 모듈을 사용할 경우 통신 모듈은 별도의 thread에서 동작 시키고 모듈에서 나오는 값들을 다른 thread에서 값을 이용하고 싶은 일들이 발생합니다. 이럴때 사용하는 것이 변수 공유 방법입니다. 파이썬 멀티스레딩(Multi threading) Global 변수 앞서 멀티 프로세스(Proce..

[Python] 멀티스레드란? 사용법, 예제 (Multi thread, target, args, start, join) [내부링크]

목차 앞서 멀티 프로세스(Multi process)의 의미와 사용 방법에 대해 이야기 해보았습니다(https://scribblinganything.tistory.com/566). 이번 시간에는 멀티 쓰레드(Multithreading)에 대해 알아 보겠습니다. 파이썬 멀티스레드(Multi threading)란? 멀티프로세스는 각 각의 프로세스가 독립된 메모리를 가지고 동작한다고 하였습니다. 그러므로 컴퓨터 내의 자원을 많이 소모하게 됩니다. 하지만 드레드(Thread)의 경우 Thread라는 의미가 가지는 실과 같이 하나의 프로세스 내에서 여러개의 실들이 각 각 움직이게 됩니다. 그리고 그 실(Thread)은 내부의 메모리를 공유하면서 각 각 움직이므로 프로그램이 가벼워 집니다. Thread의 특징을 정리..

[Python] 멀티프로세스, 변수 교환 방법(Queue, Pipe, Multiprocess, Multitask, 파이썬)#2 [내부링크]

목차 앞서 포스트에서 멀티프로세서(Multiprocess) 선언과 사용법에 대해 알아보았습니다(https://scribblinganything.tistory.com/563). 이번 시간에는 각 프로세스 간에 통신을 하여 값을 주고 받거나 대기를 사용해서 하나씩 처리하는 방법에 대해 알아보겠습니다. 프로세스는 각 각 별도의 메모리를 사용하므로 pipe라는 장치를 사용해서 데이터를 주고 받아야 합니다. pipe : 멀티 프로세스(Multiprocess) 간에 통신으로 값을 주고 받기 queue : 멀티 프로스세(Multiprocess)의 입력 값을 queue에 넣고 원할 때 마다 처리 하기 파이썬 멀티프로세스(Multiprocess) 변수 교환 방법(Pipe) 프로세스 간에 값을 주고 받는 방식은 아래 예제..

[Python] 멀티프로세스, 동시 작업(Multiprocess, Multitask, 파이썬) #1 [내부링크]

목차 파이썬 멀티 프로세싱이란? (Multi Processing) 파이썬은 위에서 아래로 코드가 진행되고 while 문에 걸리면 그 동안 다른 프로그램을 실행 할 수 없습니다. 이를 해결 하기 위해 파이썬에서 아래와 같이 3가지 방법을 제공 합니다. 멀티프로세싱(Multiprocessing) 멀티스레드(Multithread, threading) 인터럽트(Interrupt) 사실 인터럽트는 동시에 진행하는 것처럼 보이지만 실제로는 말 그대로 중간에 인터럽트가 발생하면 잠시 인터럽트 일을 처리하고 나머지 남은 일을 처리 하는 것입니다. 실제 pyserial이나 blutooth 통신을 하거나 DB와 연결하거나 등 연결쪽을 위한 프로그램이 동작하면서 동시에 처리쪽도 멈추지 않고 동작해야하는 경우들이 종종 있습니..

[Python] Try Except Else Finally Raise 구문 사용 방법, 예제 (파이썬) [내부링크]

목차 파이썬 try except else finally 문이란? 파이썬을 구현하면서 파일을 처리하거나 인터넷이나 시리얼(Serial) 통신에 연결할때 예상치 못한 에러(error)가 발생할 수 있습니다. 이와 같이 프로그램에 발생하는 에러는 예외(Except) 처리가 되고 에러 메세지와 함께 프로그램이 종료 됩니다. 파이썬 내장 예외처리에서 위와 같은 작업을 진행하지만 사용자가 직접 예외처리를 만들 수 있는데 이때 사용하는 명령어가 try except 입니다. try : try 아래 블럭을 에러가 있어도 시행해봅니다. except : try 아래 블럭에서 에러 발생 시 에러를 어떻게 처리할지 결정합니다. else : try 아래에서 에러가 없을 경우 시행 합니다. finally : try 에러 여부에 관..

[회전체] 오더 분석이란? (Order Tracking, Analysis) [내부링크]

목차 [Rotating Machinery] Orders란? 오더란 회전체의 소음(Noise), 진동(Vibration) 신호 분석을 돕는 분석 방법입니다. 모터(Motor)나 엔진(Engine)과 같은 회전체는 하나의 부분만이 회전하는 것이 아닌 여러 파트(피스톤, 기어, 펌프 등) 가 다른 주기로 시스템을 이뤄서 회전 동력을 제공합니다. Order Tracking이라는 의미는 회전체의 속도 값인 RPM과 응답으로 발생하는 신호(소음, 진동)의 주파수와 신호의 크기에 따른 분석입니다. Orders 계산 방법(Calculation) Order 수식은 아래와 같습니다. 오더 값 = 주파수(Hz) x 60 / RPM RPM은 Revolution per Minute으로 분당 회전수 입니다. 예를 들면 600rp..

[Python] 파이썬 yield란? 사용목적 (Generator, 제너레이터) [내부링크]

목차 파이썬 yield와 generator의 의미 간단히 말해서 파이썬의 generator란 반복(iterator) 동작을 간단하게 실행시켜주는 방법입니다. generator를 만들때 일반적인 함수를 정의하면서 return 문구를 쓰는 것이 아닌 yield를 사용합니다. generator 함수는 최소 하나의 yield 를 포함 next() 메소드가 자동으로 실행됨 yield가 실행되면 함수는 중단하고 control이 콜러(caller)에게 넘어감 코드를 통해 직접 설명드리겠습니다. 예제 코드>> def gen_func(): yield 1 print(gen_func()) 결과>> 위 예제 코드와 같이 gen_func 함수에 yield가 포함되기 때문에 해당 함수는 generator가 됩니다. 파이썬 yie..

타코 미터란? 종류 및 사용법(Tachometer Sensor) [내부링크]

목차 타코미터(Tachometer) 란? 타코미터(Tachometer)는 회전체(Rotation Machinery)의 속도를 측정하는 장치 입니다. 주로 측정하는 파트는 아래와 같습니다. 회전체 Shaft 디스크(Disk) 측정 결과는 RPM으로 표현하는데 위 그림과 같이 차량에서도 RPM 표기 계기판이 있습니다. RPM은 Revolution per minute으로 분당 회전수를 의미 합니다. 타코미터(Tachometer)의 종류 Contact Type Non Contact Type Electronic tachometer Analog tachometer Digital tachometer Time measuring tachometer Frequency measuring tachometer Mechanica..

[Python] 람다 함수란? 사용하는 목적(Lambda Function, Why) [내부링크]

목차 파이썬 람다 함수(Lambda Function)란? 파이썬의 람다함수는 인자 값(arguments)들을 이용해서 하나의 표현으로 처리하는 함수를 의미합니다. Sytax는 아래와 같습니다. lambda arguments : expression arguments에는 인자 값을 입력하고 expression에 함수식을 입력합니다. 아래 예제를 통해 쉽게 이해해 보겠습니다. 예제 코드>> lam_func = lambda a, b : (a + b)/10 print(lam_func(2,8)) 1번 라인: 인자로 a, b를 넣고 함수는 (a+b)/10로 설정함 결과>> 1.0 위와 같이 함수를 1줄로 정의해서 간단하게 제작하였습니다. 인자 수는 원하는데로 여러개를 가지고 갈 수 있습니다. 파이썬 람다 함수(Lam..

[Python] 피보나치(Fibonacci) 수열이란? 파이썬으로 구현하기 [내부링크]

목차 피보나치 수열이란? 피보나치 수열이란 첫번째 두번째 수는 1로 결정되어 있고 그 뒤의 수는 항상 바로 앞 두 개의 값의 합으로 표현합니다. 1, 1, 2, 3, 5, 8, 13 .... 위처럼 처음에 1, 1은 정해지고 다음 2는 앞 두수의 합 1+1이 됩니다. 3은 그 앞 1+2가 되는 것입니다. 개념은 쉽지만 수식으로 접근하면 아래와 같이 복잡한 수식이 됩니다. 위 그림은 피보나치의 스파이럴(Spiral)로 피보나치 수열 전개에 따라 선을 그리면 그림처럼 이상적인 스파이럴(Spiral) 구조로 그림이 완성됩니다. 피보나치 수열 파이썬 구현 수학적으로 어렵지만 파이썬 구현은 간단하게 반복문으로 진행할 수 있습니다. 코드>> cnt = 1 pre =0 cur = 1 print("1") while c..

[Python]OpenCV 카메라로 얼굴, 눈 인식하고 모자이크 하기#2(CascadeClassifier) [내부링크]

목차 파이썬 OpenCV 카메라로 얼굴, 눈 인식하고 모자이크 하기 앞 포스터에서 CascadeClassifier 함수를 사용해서 컴퓨터 카메라로 나오는 얼굴을 인식하는 방법에 대해 알아보았습니다. (https://scribblinganything.tistory.com/554) 이번 시간에는 앞서 검출해낸 얼굴에 모자이크를 씌우는 방법에 대해 알아보겠습니다. 모자이크를 만드는 과정은 아래와 같은 단계가 필요 합니다. 1. 카메라 실행하기 2. 카메라에 이미지(Image) 가져오기 3. 이미지를 흑백으로 변환하기 4. 이미지에서 얼굴 인식하기 5. 얼굴의 위치 정보 가져오기(사각형) 6. 이미지에서 얼굴 위치 부분의 이미지 가져오기 7. 얼굴 위치 부분 이미지에 blur 함수로 모자이크 씌우기 8. 원본 ..

Strain Life Curve란? (EN 그래프, Manson Coffin Morrow, 변형률, 피로도, Fatigue) [내부링크]

목차 Strain Life Curve 란? 앞서 포스터에서 SN Curve에 대해 공부하였습니다(https://scribblinganything.tistory.com/553). SN Curve란 Stress(응력)과 Life 사이클과의 관계를 표현한 그래프입니다. SN Curve에서 탄성 구역(Elastic Region)과 소성 구역(Plastic Region)을 표현하는 재료들이 종종 있기는 하지만 대부분의 재료들은 Stress의 특성에 의해 탄성 구역에 대한 정보 표기만 되어 있습니다. SN Curve는 Stress(응력)과 Strain(변형률) 사이 선형성(Linear)이 유지되는 탄성 구간 분석이라는 한계가 있음 피로도(Fatigue) 분석 관점에서 Strain Life Curve (EN Curv..

[Python]OpenCV 카메라로 얼굴, 눈 인식하고 모자이크 하기#1(CascadeClassifier) [내부링크]

목차 파이썬 OpenCV 얼굴, 눈 인식 함수(CascadeClassifier) 이번 포스트에서는 OpenCV에서 제공하는 CascadeClassifier 함수를 사용해서 얼굴과 눈을 인식해서 출력해보겠습니다. 흔히 구글 지도나 네이버 지도 거리뷰를 보면 사람들 얼굴이 모자이크 처리가 된것을 볼 수 있습니다. 하나 하나 모자이크를 한다면 얼마나 힘들겠습니까.... 그래서 위와 같은 함수를 사용해서 사람 얼굴을 인식하고 모자이크 처리 해주는 것입니다. 이번 포스트에서는 사람 얼굴 부분과 눈 부분을 인식하는 방법에 대해 알아보고 다음 장에서 인식한 부분을 모자이크 처리하는 방법에 대해 알아보겠습니다. CascadeClassifier는 Haar Cascades 라는 사람의 논문에 Face Detection 방..

SN Curve 란? 피로도 내구 해석(Stress, Life, Fatigue, Endurance) [내부링크]

목차 SN Curve 란? SN Curve에서 S는 Stress(응력)을 의미 합니다. N은 Number of Cycles to Failure로 시편이 파손(Failure)가 발생하기 까지의 횟수(Cycle)를 의미 합니다. 즉, SN Curve는 AC 파형처럼 반복되는 응력(Stress)과 Failure가 발생하는 반복 횟수의 관계를 보여주는 그래프입니다. SN Curve는 독일 과학자 August Wöhler에 의해 개발되었습니다. 아래 그림은 nCode 소프트웨어의 재료 DB 중에 알루미늄 합금의 SN 그래프입니다. 응력에 따라 Life의 횟 수가 변화는 것을 빨간선을 따라 확인할 수 있습니다. 그래프는 위 그림처럼 Log 단위로 표현 합니다. SN Curve의 특징을 정리하면 아래와 같습니다. 시..

Goodman 관계식이란? (Goodman-Haigh / Haigh-Soderberg diagram) [내부링크]

목차 Goodman 관계식이란? (Goodman-Haigh / Haigh-Soderberg diagram) Goodman 관계식이란 간단하게 설명하면 평균(Mean) 응력(Stress)과 응력의 진폭(Alternating Stress)의 관계를 피로도 수명(Fatigue life) 관점에서 설명한 수식(Equation)입니다. 수식은 아래와 같습니다. σa : 응력 크기(Stress Amplitude, Alternating Stress) σm : 평균 응력(Mean Stress) σw : 피로 한계(Fatigue Limit) σb : 최대 인장 강도 (UTS, Ultimate Tensile Strength) n : Factor or safety Goodman 관계식 특성 및 전개 방법 Goodman 수식..

[Python] Request Post Get 함수 사용법 및 예제 실습 [내부링크]

목차 이번 시간에는 클라이언트(Client)가 웹서버로 보내는 요청 중 GET과 POST에 대해 알아보고 어떻게 사용하는지에 대해 알아보도록 하겠습니다. 파이썬(Python) Request GET 사용법 GET은 HTTP의 Method 중 하나로 페이지에 대한 정보를 요구하는 Method라고 생각하시면 됩니다. 파이썬에서 사용하는 방법은 아래와 같습니다. requests.get(접속할 웹주소, 파라미터, 타임아웃시간) 위와 같이 입력 값으로 접속하고자하는 웹주소와 보내고 싶은 정보를 파라미터에 넣고 웹서버가 반응을 하지 않는 다면 타임아웃시간 이후에 연결을 끊습니다. 여기서 파라미터와 같은 값들을 GET에서도 보낼 수 있지만 간단한 내용을 보내는 것이 가능 하고 POST와 다르게 GET은 암호화가 되지 ..

LG스탠바이미 실제 사용후기(장단점, 27ART10AKPL, 스마트티비) [내부링크]

목차 LG전자 스탠바이미 기본 정보(27ART10AKPL) 사실 저희 집은 티비를 많이 보는 편이 아니라 그때 그때 티비를 꺼내서 보는 식이었는데 너무 불편해서 이번 기회에 하나 장만 했습니다. ㅎㅎ 우선 기본 정보는 아래와 같습니다. 스마트 스크린(터치 가능) 화면 이동 가능(가로/세로 이동 가능) 높낮이 : 1,265~1065mm 조절 가능 로테이팅 : 180도 가능 무선 3시간 재생 가능(배터리) webOS로 앱 사용 가능 미러링(Mirroring) 지원 넷플릭스, 왓챠, 유튜브 등 직접 연결 가능 HDMI, USB 연결 지원 최근에 나온 스마트(Smart Device) 기능은 다 지원한다고 생각하시면 됩니다. LG전자 스탠바이미(27ART10AKPL) 실제 사용 장점 사실 스마트 티비의 기능은 다..

Ramberg-Osgood relation (램버그 오스굿 관계식, Strain, Stress, Fatigue) [내부링크]

목차 피로도 분석(Fatigue Analysis)에서 변형률(Strain)의 의미 시편의 피로도 분석(Fatigue Analysis)을 위해서는 아래 둘 중 하나의 입력 값이 필요 합니다. 응력(Stress) 변형률(Strain) 현실에서는 Fatigue 계산을 위해 스트레인 게이지(Strain Gauge)를 사용해서 스트레인 값으로 분석을 합니다. 응력(Stress)을 사용해서 피로도 분석을 하기에는 여러가지 한계가 있기 때문입니다. Stress 측정 값이 가지는 한계는 아래와 같습니다. Stress 값 측정이 어려움 탄성 구간(Elastic Region)에서만 적용 가능 Stress 측정을 위한 현장에서 사용하는 센서는 제가 아는 한도에서는 없습니다. 그리고 앞서 포스터에서 Stress와 Strain..

파이썬(Python)으로 스마트폰/웹서버에 메세지 보내기 받기(Slack, Application, Smart phone message)#2 [내부링크]

목차 파이썬(Python)으로 스마트폰(Smart Phone)에 메세지 보내기 받기: 진행 방법 앞서 시간에 파이썬에서 보낸 메세지가 Slack 웹서버로 전달되었음을 확인했습니다. 혹시 앞서 Slack 웹서버 가입 및 설치에 대한 내용을 보지 않고 오셨으면 괄호안의 링크를 통해 확인하시고 오시길 추천 드립니다(https://scribblinganything.tistory.com/547). 이번에는 Slack에서 제공하는 앱(Application, Apps)을 사용해서 파이썬에서 보낸 메세지를 확인할 것입니다. 웹스크롤링(Web Scrawling) 과정에서 공부한 주식 정보나 미세먼지와 같은 정보를 파이썬(Python)에서 가져와서 자동으로 Slack의 Smartphone Application으로 전달이 ..

파이썬(Python)으로 스마트폰/웹서버에 메세지 보내기 받기(Slack, Application, Smart phone message)#1 [내부링크]

목차 Slack 이란? 슬랙이란 스마트 기기(Smart Device) 를 사용해서 웹에 접속해서 메세지를 작성하고 보내기가 받기가 가능한 웹 서버(Web Server) 입니다. 간단하게 카카오톡(Kakao Talk, 카톡), 스카이프(Skype)와 같은 메세지 웹 서버라고 생가하시면 됩니다. 이번 포스터에서는 파이썬(Python)을 작성해서 Slack이 제공하는 API에 접속 해서 해당 웹서버를 사용합니다. API에 대한 기초적인 내용은 링크를 참조 하시면 됩니다. (https://scribblinganything.tistory.com/530) Slack 가입 및 API 주소 받기 1. https://slack.com/intl/ko-kr/ 에 접속하여 가입을 진행합니다. 2. 워크스페이스(Workspac..

Stress Strain 관계 특성, Young's Modulus 수식(응력, 변형률, 영률, 탄성계수, 취성) [내부링크]

목차 Young's Modulus 이란? 시편(Load)에 일정한 힘(Force)를 가하면 시편은 힘에 비례해서 변형되게 됩니다. 이때의 재료의 성질은 선형성(Linear)을 띄고 있다고 합니다. 위 그래프에 대한 설명은 앞서 포스터에서 간략하게 하였습니다.(https://scribblinganything.tistory.com/545) 그래프에서 항복강도(Yield Strength)라고 불리는 지점 전까지의 구간을 탄성 구간(Elastic Region)이라고 합니다. 탄성 구간(Elastic Region) : 항복 강도 지점 전까지의 Strain 구간 여기 선형(Linear) 구간에서 영율 값 E를 만들어 냅니다. 수식은 아래와 같습니다. 위 수식은 탄성 구간에서만 적용 됩니다. 참고로 이러한 선형의 관..

응력, 변형률이란? 수식, 관계 그래프, 단위(Stress, Strain, Equation, Graph) [내부링크]

목차 응력(Stress)이란? 응력(Stress)과 변형률(Strain)은 제품의 내구성(Durability)과 피로도(Fatigue)를 분석할 때 기본이 되는 측정 값입니다. 응력이란 그리스 문자로 σ 로 표현하고 시그마(Sigma)로 읽습니다. 간단하게 면적 당 받는 힘입니다. 단위는 파스칼 (MPa)을 사용 합니다. 수식은 아래와 같습니다. 면적이 A0인 표면에 힘 F가 가해질 때 응력은 위와 같이 표현 됩니다. 변형률(Strain)이란? 시편(DUT)이 받는 변형의 정도를 의미합니다. 예를 들어 어떤 시편에 인장력이 가해 졌을 경우 해당 시편은 인장력 방향에 의해 길이가 변하게 됩니다. 변형률은 측정 지점의 원래 길이에서 변화율의 비로 표현됩니다. 수식은 아래와 같습니다. 그리스 문자 ε 로 표현..

[Python]OpenCV 카메라 모션 감지(Motion Sensor)(countNonZero, bitwise_and, threshold, absdiff) [내부링크]

목차 파이썬 OpenCV 움직임 감지 카메라 구현 방법 이번 시간에는 파이썬 OpenCV를 사용해서 컴퓨터의 내장 카메라를 구현하고 카메라에서 촬영하고 있는 화면의 움직임(Motion)을 감지하고 출력하는 코드를 작성할 예정입니다. 해당 프로젝트를 진행하기 위해서는 아래와 같은 절차가 필요 합니다. 1. PC 카메라 동작 2. 카메라에서 읽은 이미지(Image) Delay 줘서 Capture 하기 3. 이미지 파일을 회색으로 반전하기 4. 회색으로 반전된 이미지 간에 값 차이 구하기 : 움직임이 있을 경우 값 차이 발생 5. 무의미한 움직임 제거를 위해 문턱값(Therhold)으로 필터링(Filtering) 6. 카운팅 함수를 사용해서 움직임이 발생한 픽셀 값을 카운트함 7. 모션을 출력 모션 센싱은 위..

레인플로 카운팅이란? (피로 해석, 내구, Rainflow Counting, 히스테리시스, Pagoda, 4 Points) [내부링크]

목차 레인플로 카운팅(Rainflow Counting) 정의 Rainflow Counting은 시간 도메인에서 하중(Load)의 변화를 측정해서 피로도(Fatigue)의 사이클(Cycle)을 구해주는 알고리즘(Algorithm)을 의미합니다. 여기서 하중은 아래의 3가지 값을 의미 하는데 Rainflow Counting을 사용하기 위해서는 Stress(응력)으로 변환해서 사용 합니다. Stress Strain Force 응력 카운팅(Stress Counting)의 어려움 위 그림은 시간이 흐름에 따른 Stress(응력, 하중)이 일정한 주기로 Loading, Unloading 하는 그래프 입니다. 위 그래프는 일정 사이클로 10~-10MPa의 힘이 반복되는 간단한 그래프로 약 9 사이클의 Counting..

3상 소비 전력 전류 계산(3 Phase, Line, Watt, Ampere) [내부링크]

목차 3상 소비 전력, 전류 계산식(Calculation) 상전압(Phase Voltage)은 위 그림에서 V1, V2, V3 이고 선전압(Line Voltage)은 VL입니다. 앞으로 계산에서 상전압은 VP로 표기하고 선전압은 VL로 표기 합니다. I1, I2, I3은 선 전류로 아래 수식에서는 IL로 표기 합니다. 상간 전압과 선간 전압의 관계는 링크를 참조하시길 바랍니다.(https://scribblinganything.tistory.com/528) 위 링크를 참조하시면 선간 전압과 상간 전압 관계를 아래와 같이 구할 수 있습니다. 3상(3 Phases)의 소비 전력을 구하는 식은 아래와 같습니다. (유도는 아래에서 진행하겠습니다.) 일반적으로 발전소에서 들어오는 선간 전압 380V을 고려 할 경우..

Compressor 란?(콤프레샤, 수냉식, 공냉식) [내부링크]

목차 Compressor란? 우리나라말로는 콤프레샤, 컴프레셔 등 표기합니다. Compressor는 아래 그림에서 오른쪽에 위치한 기계적 장치입니다. 콤프레서의 역할은 가스를 입력 받아서 가스에 압력(Pressure)을 가해서 가스의 부피(Volumn)를 줄여 줍니다. 일반적으로 등산가는 초입에 에어건(Air Gun)으로 신발 밑창을 청소하는 도구를 보았을텐데 이러한 에어건은 Air Compressor로 제작한 도구입니다. Air Compressor도 Gas Compressor의 한 종류 입니다. 앞서 콤프레셔를 통해 가스의 부피를 줄여주는 기능에 대해 알아보았는데 부피를 줄여주는 목적은 가스의 온도를 떨어뜨려주는 역할을 합니다. 가스가 부피가 줄어들면서 액화되게 되게 부피가 줄어 듭니다. 이 과정에서 ..

[수영장 리뷰] 에어 바운스, 키즈풀 제품 리뷰 [내부링크]

목차 키즐 풀장, 에어바운스 후기 (Kidz Pool, Air Bounce), 장단점 이번에 여름을 대비해서 저희는 멀리 안가고 마당에서 키즈 풀장/ 에어바운스를 구매해서 보내기로 했습니다. 사실 후기라고 할것도 없는 것이 설치도 간단하고 디자인 보고 결정한 것이라 특별히 리뷰 할 것도 없네요 ㅎㅎ 집이 시골이라 마당이 넓어서 위에 그림처럼 집에 마당에 설치했고 애들이 너무 좋아하네요 앞부분에 빨간 부분에 물 채워서 사용합니다. 옆부분은 애들이 점프하면서 뛸 수 있는 공간도 있습니다. 그리고 미끄럼틀이 있어서 미끄럼틀 타고 물속으로 뛰어 드는데 정말 재밌네요 워낙 장단점이 명확한 제품이라 장단점은 아래 정도로 정리될 수 있겠네요 ㅎ 장점 애들이 너무 좋아함 설치가 간편 여름철 최고 아이템 단점 공간이 많..

[Python] OpenCV PC 카메라 특정 색상만 출력하기 (Camera, BGR, HSV, inRange, bitwise_and) [내부링크]

목차 파이썬 카메라의 특정 색상만 보여주기 동작 방식 이번 포스트는 노트북에 카메라를 사용해서 화면의 빨간색(Red), 녹색(Green), 파란색(Blue)만을 구분해서 해당 색상만을 보여주는 화면을 각 각 띄울 예정입니다. 총 4개의 윈도우가 화면에 나오고 하나는 원본 나머지는 Red, Green, Blue 윈도우 입니다. 이를 구현하기 위해서는 아래의 과정이 필요 합니다. 1. 카메라 동작 구현 2. RGB 색상의 범위 결정 (HSV 사용) 3. RGB 색상의 임계값을 사용해서 마스크 생성 4. 마스크를 원본 화면에 적용 5. 화면 출력 우선 코드 작성에 앞서 2번 단계 "RGB 색상의 범위 결정"은 선행되어야 합니다. 아래 목차에서 확인하도록 하겠습니다. RGB 색상의 범위 결정 빨간색(Red), ..

토크란? 토크 파워, 마력, 모멘트 수식 정리(Torque, Horse Power, Moment) [내부링크]

목차 토크 란? (Torque Definition) 토크는 회전을 시키려는 성향의 정도를 의미하는 일종의 회전력입니다. 물체에 힘이 작용하면, 그 물체가 회전하는 원인이 되는 벡터(vector) 물리량 일반적으로 힘은 직선운동을 의미하지만 토크는 회전운동을 의미합니다. 토크를 다른 표현으로 모멘트(Moment) 또는 돌림힘이라고 표현 합니다. 위 그림처럼 토크(T)는 벡터 값이므로 방향성을 가집니다. 그림은 오른쪽 스크류(Screw) 법칙 처럼 엄지 손가락 방향(위쪽)이 토크의 방향이 됩니다. 수식은 T = r x F 입니다. 길이 r [m] 에 힘 F[N] 이 곱해진 [Nm]이 토크의 단위가 됩니다. 토크 파워 란? (Torque Power), 일률(Power), 마력(Horse Power), 모터 출..

Butterworth(버터워스) 필터란? 정의, 특징, 수식, 예제 구현 [내부링크]

목차 Butterworth(버터워스) 필터란? 정의, 수식 Butterworth Filter는 시간 도메인에서 측정한 결과에 적용되는 필터이고 원하지 않는 주파수 영역의 값을 필터 처리할 때 사용 합니다. 위 그림은 Butterworth, Chebyshev, Bessel, Elliptic 필터의 주파수 특성을 비교한 그림입니다. Butterworth 필터(Filter)는 그림과 같이 통과 대역이 평평하고 값이 떨어지는 부분을 스커트(Skirt)라고 부르는데 스커트가 Chebyshev 필터에 비해 완만합니다. 아래 수식은 Butterworth 저주파 통과(Low Pass filter)에 관한 수식 입니다. Butterworth(버터워스) 필터 특징 버터워스 필터의 특징은 아래와 같이 정의할 수 있습니다. ..

이동 평균이란? 종류, 목적, 수식 (Moving average, mean, Running, Simple) [내부링크]

목차 이동 평균 정의 및 목적 이동 평균이란 영어로 Moving Average라 하고 연속된 측정 값의 특정 크기의 Window를 이동하면서 평균을 내는 방식을 의미합니다. 이동 평균법을 사용하는 이유는 크게 아래와 같이 2개의 이유가 있습니다. 데이터의 전체에 대한 평균으로 실시간의 변화 경향을 파악하기 힘듦 데이터의 변화량(노이즈, Noise) 이 클 경우 이를 부드럽게(Smooth)하게 만들어 줌 (아래 그림 참조) 이동 평균 법 종류(Type) 단순 이동 평균 (Simple Moving Average) 단순 가중 이동 평균 (Simple Weighted Moving Average) 지수 이동 평균 (Exponential Moving Average) / 지수 가중 이동 평균 (Exponential ..

[내구] 변형률 정의, 수식, 단위 (수직,전단(shear), Strain, Deformation, Engineering) [내부링크]

목차 변형률이란? (Strain, Strain Rate) 응력(Stress)에 의해 재료에 변형(Deformation)이 발생하고 변형의 정도를 변형률이라고 함 변형의 종류는 크게 아래와 같이 2가지로 분류됨 Elastic Deformation (탄성 변형) Plastic Deformation (소성 변형) 탄성변형은 응력이나 하중이 없어지면 재료가 원래 모양으로 돌아가는 변형이고 소성 변형은 응렬/하중이 없어져도 재료가 원래 형상으로 돌아가지 못하고 영구적(Permanently)으로 변형되는 상태를 의미 합니다. 변형률 단위와 수식 변형률은 앱실론(epsilon)으로 표기하고 그리스문자 ε 를 사용 합니다. 수식은 아래와 같이 변형된 길이의 변화량을 원래 길이로 나눠준 값입니다. ε 앱실론의 단위는 [..

[Python] 정규표현식으로 파일(XML, txt, html) 내용 검색(필터)하기 (re, match, compile, finditer) [내부링크]

목차 이번 포스트에서는 정규표현식(Regex)을 사용해서 텍스트 파일이나 웹문서(html, xml) 파일을 검색(search)해서 필터링(filtering) 하는 방법에 대해 알아보겠습니다. 파일 검색에 필요한 정규표현식 함수 파일 검색에 사용할 정규표현식 함수는 아래와 같습니다. re.compile(정규표현식) re.finditer(compile 출력값, 문장) compile은 정규표현식을 입력으로 받습니다. 그리고 출력된 값을 변수에 저장하고 finditer 함수의 입력값으로 넣어주면 두번째 인자값인 문장에서 해당 정규표현식에 맞는 조건을 찾고 있으면 검색 결과를 출력 해줍니다. 실제 사용 방법은 아래 예제를 통해 쉽게 이해하실 수 있습니다. 미세먼지 데이터파일(XML) 검색하기 예제 예제를 실행하기..

[nCode] ENBW(equivalent noise bandwidth) 란? [내부링크]

목차 실습에 사용하는 소프트웨어는 nCode라는 제품으로 국내에서는 팜테크를 통해 구매하실 수 있습니다. (https://www.famtech.co.kr/main/main.php) ENBW(equivalent noise bandwidth) 란? 가속도 센서(Accelerometer)를 사용해서 측정한 가속도 값을 아래와 같이 시간 도메인으로 확인할 수 있습니다. 해당 값을 FFT(Fast Fourier Transformer) 변환하여 주파수 도메인의 값으로 출력 하려고 하는데 아래와 같이 FFT 설정 화면에서 "ENBW Correction" 이라는 항목을 확인 할 수 있습니다. ENBW란 버퍼에서 발생하는 Discontinuity를 제거하기 위해 사용하는 윈도우(Window)를 주파수 성분에서 봤을 때 ..

[nCode] FFT 출력, 평균, Window, Buffer, Overlap 이란? [내부링크]

목차 분석 도구는 nCode GlyphWorks 를 사용해서 진행합니다. 해당 소프트웨어 구입은 국내에서 팜테크사를 통해서 구매 가능 합니다. (https://www.famtech.co.kr/main/main.php) 이번 포스트에서는 가속도 센서(Accelerometer)에서 측정한 G 값의 시간 도메인 값을 주파수(Frequency)로 변환하면서 사용하는 용어 및 설정에 대해 알아보겠습니다. 주파수 변환은 FFT(Fast Fourier Transformer)로 진행합니다. 전체 구조는 위와 같습니다. 왼쪽에 윈도우창은 시간 도메인에서 측정한 가속도(Acceleration) 값 입니다. 가운데 2개의 창은 주파수 변환 박스로 생각하시면 됩니다. 그리고 오른쪽 두개 윈도우는 주파수 변환을 거쳐서 나온 출..

[Python] RE 모듈로 미세먼지 데이터 필터링하기(정규표현, 특수문자) [내부링크]

목차 미세먼지(PM10, PM25) 정보 가져오기 앞서 포스트에서 미세먼지 정보를 공공 데이터 포털에서 API를 사용해서 가져오는 방법에 대해 알아보았습니다. (https://scribblinganything.tistory.com/530) 상세 내용은 링크를 통해 확인하시면 됩니다. 결과는 아래와 같이 나왔습니다. 이번 포스트는 아래 결과를 사용해서 파이썬에서 제공하는 정규표현 함수 re 함수를 사용해서 원하는 결과를 가져오는 방법에 대해 알아보겠습니다. 미세먼지 결과>> 00 NORMAL_CODE 1 72 0.003 0.4 2 27 2 24 서울 1 2 2022-05-30 08:00 1 0.019 중구 1 0.040 #####생략##### 100 1 40 정규표현라이브러리 RE 기본 사용법(REGEX)..

[Python] 공공데이터포털에서 미세먼지 데이터 가져오기(크롤링, fine dust, API, 파이썬) [내부링크]

목차 이번 시간에는 파이썬을 사용해서 공공데이터 포탈의 API에 접속해서 미세먼지 정보를 가져오는 방법에 대해 알아보겠습니다. API(Application Programming Interface) 란? API란 데이터회사나 웹서버(Web server) 회사에서 제공하는 리모콘과 같은 것입니다. 사용자는 리모콘의 동작 방법을 이해하지는 못하지만 리모콘을 통해서 웹 서버 회사가 제공하는 데이터를 손쉽게 접근할 수 있게 되는 것입니다. 여기서 공공데이터 포탈은 API를 통해 미세 먼지 정보를 손쉽게 제공 합니다. 공공데이터포탈에서 API 요청하기 우선 구글에서 공공데이터포털로 검색하거나 https://www.data.go.kr/ 에 접속합니다. 정부기관 홈페이지므로 go.kr로 끝나는지 꼭 확인하시길 바랍니다..

[전력] 역률이란? VA와 Watt차이 (유효전력, 무효전력, 소비전력) [내부링크]

목차 역률이란? (Power Factor) 발전소에서 전원을 공급할때 발전방식과 효율에 의해 AC (교류)로 전달 됩니다. 아래 그림의 빨간색 선과 같이 전압이 발전소에서 가정으로 공급된다고 생각하겠습니다. 여기서 저항과 같은 일반적인 수동 소자(Passive)를 사용하면 전압(Voltage)과 전류(Current)는 동일 위상을 가집니다. 즉, 빨간색 선과 동일한 사인파가 전류에서도 생깁니다. 여기서 크기만 저항 사이즈에 따라 줄어들게 됩니다. 하지만 많은 전자 제품은 많은 캐패시터(Capacitor)나 인덕터(Inductor)와 같은 능동(Active) 소자로 구성되어 있습니다. 능동 소자의 특징은 아래 2가지만 기억하겠습니다. 1. 인덕터 부하를 통과하면 전류는 전압보다 90도 느려진다. 2. 캐패..

[전력] 상간 전압, 선간 전압 (벡터 계산, 루트3, Phase, Line, Voltage) [내부링크]

목차 상간 전압(Phase Voltage)이란? 선간 전압(Line Voltage)란? 장비를 설치하다 보면 공급 전력에 대해 얘기를 해야합니다. 여기서 전력이 root3에 의해 계산 되는 것을 보고 어떻게 전력이 root(3)을 곱해서 나오는지를 알아보는 과정에서 상간 전압, 선간 전압에 대해 알아보게 되었습니다. 우선 이번 포스트에서는 상간 전압, 선간 전압에 대해 알아보고 다음 포스트에서는 역률에 대해 알아보고 최종적으로 3상 전원에서 전력 계산하는 방법에 대해 알아보겠습니다. 위 그림과 같이 발전소에서 전원을 생산하면 발전소의 모터 효율과 동작에 의해 3개의 라인으로 전원을 공급하게 됩니다. 그림의 왼쪽 부분이 발전소 부분이고 빨간색, 파란색, 녹색 발전기 각 각에서 전원을 만들어 냅니다. 발전기..

[아두이노] 파이썬 threading timer 로 주기적으로 LED 켜고 끄기(타이머, 인터럽트, Interrupt) [내부링크]

목차 [Arduino] Python threading timer 함수 이번 포스트에서는 파이썬의 스레딩(Threading)의 타이머(timer) 함수에 대해 알아보겠습니다. 타이머의 말 자체가 알려 주듯이 타이머는 정해진 시간(Time)이 지났을 때 사용자가 원하는 동작을 하게 도와주는 함수 입니다. Syntax는 아래와 같습니다. 인스턴스명 = threading.Timer(타이머시간, 실행시킬함수명) 인스턴스명.daemon = True 인스턴스명.start() 입력 값에 타이머 시간은 시간 단위이고 밀리초 (mili second)는 소수점 형식으로 표기하시면 됩니다. 실행 시킬 함수 명은 타이머가 시간이 되었을 때 구현할 함수 명을 입력 하시면 됩니다. 리턴 값을 인스턴스(Instance)에 입력 하시..

[아두이노] 파이썬 threading 함수로 통신하기 (threading, target, daemon [내부링크]

목차 [Arduino] 파이썬 threading 함수 사용법 thread 는 실이라는 의미가 있습니다. 파이썬(Python)에서 threading(쓰레드, 드레딩) 이란 CPU 칩이 여러개의 실로 구성되어 있고 한 줄 한줄 다른 일을 처리할 수 있는 것입니다. 일반적으로 코드를 작성하면 위에서 아래로 순차적으로 진행되는 데 하나의 작업이 진행되는 동안 다른 작업을 실행할 수 없습니다. 하지만 thread 를 사용하면 2개 3개 멀티플(Multiple) 한 동작을 동시에 할 수 있게 됩니다. threading 함수에서 사용하는 주인자는 2개 입니다. target : threading으로 동작 시킬 함수를 연결합니다. daemon : True 일 경우 메인 프로그램이 종료 시 threading 함수도 종료 ..

[아두이노]파이썬 Pyserial로 아두이노 문자, 실수, 정수 값 읽기(수신하기, 송수신, 통신) [내부링크]

목차 Arduino에서 보낸 값 컴퓨터에서 읽기: 실행 방법 앞서 포스터에서 PC에서 Pyserial로 명령을 보내었고 아두이노에서 해당 명령을 읽어서 LED를 켰다가 끄는 예제를 구현하였습니다. (https://scribblinganything.tistory.com/524) 이번 포스트에서는 아두이노에서 주기적으로 문자열(String), 정수(Integer), 실수(Float) 값을 컴퓨터로 송신하고 (USB 케이블로 시리얼통신 사용) 노트북은 해당 값을 읽어서 출력하는 예제를 실행합니다. 파이썬(Python)에서 송신하는 메세지를 출력하기 위해서는 파이썬에서 아래의 함수 사용이 필요 합니다. 1. readline 함수 : "\n" 엔터키(다음줄)가 들어올때까지의 버퍼에 저장된 데이터를 읽어 옵니다. ..

[아두이노] 파이썬 Pyserial로 Blink 예제 실행하기 (PC to Arduino) [내부링크]

목차 이번 과정은 아두이노 보드와 컴퓨터(PC)를 USB 케이블을 이용해서 연결하고 파이썬(Python)의 Pyserial로 명령을 아두이노에 전달하고 아두이노는 이를 실행하는 예제를 해보겠습니다. 이 실습을 진행하기 위해서는 아래의 과정이 필요합니다. 1. 아두이노 보드 프로그램 : Serial 통신에서 특정 명령어가 전달되면 Blinking 예제 실행 2. 컴퓨터(Visual Studio)로 파이썬 작성하고 Serial로 특정 명령어 전달 1. 아두이노 보드 프로그램 : Serial 통신에서 특정 명령어가 전달되면 Blinking 예제 실행 우선 이번 코드는 아두이노의 시리얼(Serial) 통신을 열고 아래 명령이 들어오면 LED를 0.5초 단위로 깜빡이면서 켜거나 꺼지는 코드를 작성할 것입니다. 1..

[아두이노] String함수: indexof, substring, length (텍스트 검색, 위치 찾기) [내부링크]

목차 이번 포스트는 문자열 (String) 관련 함수들 중에 중요 함수에 대해 알아보도록 하겠습니다. 함수를 코드로 돌리고 확인은 Arduino에서 제공하는 시리얼 모니터로 하겠습니다. 시리얼(Serial) 통신 사용 방법 및 모니터링 방법은 아래 링크를 참조하시면 됩니다. (https://scribblinganything.tistory.com/512) Arduino String 함수 : indexOf indexOf 함수는 문자열에서 원하는 문자(Character)나 부분 문자열(String)을 검색해주고 해당 문자의 위치를 index 번호 0부터 시작해서 시작 위치를 정수(integer)로 알려 줍니다. indexOf 함수의 Syntax는 아래와 같습니다. 문자열변수.indexOf("찾을 문자", 찾기..

[Python]텍스트를 음성으로 변조(변환)하기 (gTTS 모듈) [내부링크]

목차 파이썬 gTTS, playsound 설치 파이썬(Python)에서 제공하는 모듈 중에 gTTS라는 모듈이 있습니다. gTTS는 Google Translate’s Text-to-Speech API 의 약자로 구글 번역에서 만든 text to speech 를 연결해주는 API 입니다. 텍스트(Text)를 소리나게 출력하기 위해 우선 텍스트에서 음성 파일로 변환할 수 있는 gTTS를 아래와 같이 설치 합니다. pip install gtts 다음으로 음악 파일을 읽어주는 playsound 라는 라이브러리(Library)를 설치합니다. pip install playsound 파이썬 텍스트 음성 파일로 저장하고 출력하기 gtts 함수는 사용법이 간단합니다. 인자 값(Parameter)으로 아래와 같은 값을 입..

[아두이노]1초마다 프로그램 동작 시키기(millis(),delay(), scheduling, 스케쥴링) [내부링크]

목차 Arduino 스케줄에 따라 프로그램 동작 시키기 원하는 시간(Timing)에 원하는 코드(Code)를 실행시키는 방법에 대해 알아보겠습니다. 일반적으로 Atmega 칩에서 이러한 스케쥴링(Scheduling)을 하기 위해서는 타이머 인터럽트(Timer Interrupt)를 사용해서 원하는 시간에 특정 코드가 동작하게 만들어 줍니다. 아두이노(Arduino)에는 다행이도 millis 라는 함수를 사용해서 해당 라인에 왔을때 당시 시간을 밀리세컨드(milli second)로 Return 해줍니다. Delay 함수는 입력 값으로 밀리세컨드를 입력 값으로 받아서 그 시간동안 다른 코드를 진행하지 않고 홀드(Hold) 해서 시간을 보냅니다. 아래의 예제 코드를 통해 쉽게 이해할 수 있습니다. Arduino..

[아두이노]메모리가 부족할 때 처리방법(프로그램 저장 공간, 전역 변수, 지역변수) [내부링크]

목차 Arduino 메모리(Memory) 공간이 작을 때 아두이노 스케치에서 코드를 작성하고 컴파일(Compile)을 진행하면 아래와 같은 메세지를 받을 수 있습니다. 스케치는 프로그램 저장 공간 3242 바이트(10%)를 사용. 최대 32256 바이트. 전역 변수는 동적 메모리 226바이트(11%)를 사용, 1822바이트의 지역변수가 남음. 최대는 2048 바이트. 앞서 아두이노를 구성하는 메모리(Memory) 공간에 대해 살펴 보았습니다. 메모리에 대해 잘 이해가 안되시면 괄호안의 링크를 참조하시길 바랍니다. (https://scribblinganything.tistory.com/519) 여기서 프로그램 저장 공간은 프로그램 메모리(Program Memroy, Flash Memory)를 의미 합니다...

[아두이노]메모리 종류와 기능 (Program Memory, Flash Memory, EEPROM) [내부링크]

목차 아두이노(Arduino) 메모리란? : 종류 아두이노는 위 그림과 같이 3가지의 메모리로 구성됩니다. Program Memory Data Memory EEPROM 아두이노(ATmega168)의 경우 Program Memory의 사이즈는 32KByte 이고 Data Memory는 2KByte의 크기이고 EEPROM은 0.5KByte 입니다. 아두이노(Arduino) 메모리란? : 기능 Program Memory는 플래시 메모리(Flash Memory)라고도 하는데 사용자가 스케치 소프트웨어에서 작성한 코드는 Program Memory로 올라 갑니다. Data Memory는 SRAM(Static Random Memory)로 구성되어 있는데 장점은 CPU에 가까이 위치하여 속도가 빠릅니다. 하지만 리셋(..

[닌텐도 스위치 게임 리뷰] 닌텐도 스위치 스포츠(Nintendo Switch Sports) [내부링크]

목차 닌텐도 스위치 스포츠(Nintendo Switch Sports) 구성품 평소에 게임을 많이 하지 않지만 닌텐도 댄스(Dance) 만큼은 즐기고는 있었습니다. 그러던 중에 닌텐도에서 스위치 스포츠라고 정말 몸만 써서 하는 운동 게임을 출시하는 것을 보고 바로 질렀습니다. 우선 구성품은 위에 사진과 같이 왼쪽에 케이스와 작은 게임칩과 다리에 센서를 묶을 수 있는 스트랩으로 이루어 져있습니다. 오른족이 닌텐도 스위치는 기본으로 가지고 있어야지 할 게임을 시행할 수 있습니다. 게임 종류는 아래와 같습니다. 발리볼(Volley Ball) 배드민턴(Badminton) 축구(Soccer) 볼링(Bowling) 칼싸움 테니스(Tennis) 축구의 경우 허벅지에 스트랩을 감고 해야하기 때문에 2인 플레이를 위해서는..

[아두이노]시리얼 통신: 컴퓨터에서 보드로 메세지 주고 받기(Send, Recieve, Serial) [내부링크]

목차 Arduino : Serial Communication 으로 PC와 데이터 주고 받기 이번 시간에는 Serial 통신 방법을 사용해서 컴퓨터의 USB 포트를 통해 메세지(Message)를 주고 받는 방법을 알아보겠습니다. 하드웨어 구성은 링크를 참조 하시면 됩니다. (https://scribblinganything.tistory.com/512) 코드는 간단하기 때문에 아래 예제 코드를 통해 설명하겠습니다. 예제 코드>> void setup() { Serial.begin(9600); while (!Serial) { ; } } void loop() { if (Serial.available() !=0 ) { String a_var = Serial.readStringUntil('\n'); String b_..

[아두이노] String함수: toInt, toFloat, toUpperCase, toLowerCase [내부링크]

목차 이번 포스트는 문자열 (String) 관련 함수들 중에 중요 함수에 대해 알아보도록 하겠습니다. 함수를 코드로 돌리고 확인은 Arduino에서 제공하는 시리얼 모니터로 하겠습니다. 시리얼(Serial) 통신 사용 방법 및 모니터링 방법은 아래 링크를 참조하시면 됩니다. (https://scribblinganything.tistory.com/512) Arduino 문자열 toInt 함수 toInt 함수(Function)는 문자열(String)을 정수(Integer)로 변경해줍니다. 정수로 변경 뒤에 수식(math)으로 처리하기 용이 합니다. 아래 예제 코드를 통해 쉽게 이해할 수 있습니다. 참고로 Integer 정수는 8비트(bits) 보드에서 사이즈는 2바이트로 16비트 입니다. 예제 코드>> vo..

[체중계 리뷰]인바디 다이얼 체중계 Review (Inbody H20B) [내부링크]

목차 인바디 다이얼 체중계 장단점 리뷰 위에 제품은 제가 구매한지 벌써 2년이 지난 제품입니다. 화장대 밑에 지저분하게 배치해 놓았는데 실용도 만큼은 최고인 제품입니다. 매일 측정하면서 체지방률을 검사하면 압박이 장난이 아닙니다. 사실 단점은 크게 없습니다. 화장대에 놓아서 머리카락이 위로 자주 올라가고 손잡이 부분 아래에 먼지가 끼는 정도가 단점일 듯 합니다. 그 외에는 장점만 있는 듯 합니다. 아래에 제가 생각하는 장점에 대해 간단하게 나열해보겠습니다. 1. 짧은 측정 시간 : 5~10초 2. 오래가는 배터리 수명 3. LCD 화면으로 간단하게 결과 확인 4. 인바디(Inbody) 앱 연동으로 추적 관리 우선 측정은 내 프로필을 장비에 입력합니다. 간단하게 키와 나이 정도만 입력하시면 됩니다. 그리고..

[아두이노] String함수: compareTo, equals, equalsIgnoreCase, length, replace [내부링크]

목차 이번 포스트는 문자열 (String) 관련 함수들 중에 중요 함수에 대해 알아보도록 하겠습니다. 함수를 코드로 돌리고 확인은 Arduino에서 제공하는 시리얼 모니터로 하겠습니다. 시리얼(Serial) 통신 사용 방법 및 모니터링 방법은 아래 링크를 참조하시면 됩니다. (https://scribblinganything.tistory.com/512) Arduino 문자열 compareTo 함수 compareTo 함수는 문자열(String)을 비교해서 동일한 경우 0을 return하고 다른 경우 ASCII 코드 차이 만큼을 return 합니다. 예제 코드>> void setup() { Serial.begin(9600); while (!Serial) { ; } } void loop() { String s..

[아두이노] 문자열, 정수, 실수 크기 비교 하기 (Comparison) [내부링크]

목차 Arduino 문자열(String) 비교하기 : 기호 사용하기 우선 문자열 비교에 앞서 문자열(String)을 비교하고 검증하기 위해 시리얼 통신(Serial Communication)을 사용해서 결과 값을 컴퓨터로 전달해서 확인해야 합니다. 해당 내용은 아래 링크를 통해 하드웨어 구성 부터 모니터링 보는 방법을 확인하시길 바랍니다. (https://scribblinganything.tistory.com/512) 문자열을 비교할 때 일반 부등식 기호를 사용하거나 equals(), equalsIgnoreCase() 와 같은 함수를 사용해서 비교 합니다. 우선 비교 기호는 아래와 같이 있습니다. comparison: == greater than: > greater than or equal to: >= ..

[아두이노] 시리얼 통신 기본 : 문자열(String) 보내기 [내부링크]

목차 Arduino Serial 통신 - 문자열 보내기 셋업 기본 하드웨어 구성은 아래와 같습니다. 아두이노 우노(Uno) + USB 케이블 + 노트북 아두이노 소프트웨어는 노트북에 설치되어 있습니다. 아두이노 포트가 연결된 Port 번호를 확인 후 보드와 연결해 줍니다. Arduino Serial 통신 - 문자열 보내기 코드 및 결과 시리얼 통신을 위한 코드는 아래와 같습니다. 코드>> void setup() { Serial.begin(9600); } void loop() { Serial.println("Hello, World"); delay(3000); } 1~3번 라인: Serial 통신 연결을 위한 초기화 과정 5~8번 라인: 반복문 6번 라인: println 함수를 사용해서 괄호안의 문자열과 \..

[스마트티비 리뷰] LG 스탠바이미 Review [내부링크]

목차 LG 스탠바이미 장점, 단점 (장단점) 이번에 엘지에서 출시한 27인치 TV 스팬드바이미(StanbyME)의 특징을 한마디로 표현하면 배터리(Battery)로 동작되는 휠이 달린 화면의 위치 조정이 편리한 스마트 티비(Smart TV) 입니다. 말하다 보니 표현이 길어졌는데 앞서 한마디에서 장점이 다 있습니다. 저처럼 애가 있는 집에서는 티비를 거실에서 놓기 보다는 여기 저기 이동하면서 아이들 상태에 따라서 조정하고 싶을 때가 많습니다. 스탠 바이미는 아래 그림처럼 바닥면에 바퀴가 달려 있어 이동이 용이 합니다. 그리고 내장형 배터리 충전으로 3시간 동안 무선으로 재생이 가능합니다. 아래판 끝쪽에 충전선을 꽂는 부분이 있는데 무선으로 사용하지 않을 때는 일반 티비 처럼 전원을 연결해서 사용하시면 됩..

[Python]OpenCV 임계값 비교하기 threshold [내부링크]

목차 이번 포스트에서는 이미지가 가지고 있는 픽셀값을 threshold 함수를 사용해서 사용자가 지정한 문턱 값과 비교해서 옵션에 따라 처리하는 예제를 실행합니다. 우선 원본으로 사용할 이미지는 아래와 같습니다. 예제 코드>> import cv2 img = cv2.imread('gradient.jpg') print(img) cv2.imshow("original", img) cv2.waitKey(0) cv2.destroyAllWindows() 결과>> [[[116 116 116] [116 116 116] [116 116 116] ... 원형태로 가운데로 갈수록 밝아지는(픽셀값은 255에 가까워짐) 그림입니다. 파이썬 OpenCV threshold 함수 Syntax 이미지(image)의 임계값을 확인해서 비..

[Python]OpenCV 픽셀 처리 함수: add, subtract, multiply, divide [내부링크]

목차 앞서 이미지(image)나 동영상(video) 파일을 읽어서 불러온 이미지는 픽셀(pixel)의 BGR(Blue, Green, Red) 값으로 구성 됨을 확인하였습니다. (https://scribblinganything.tistory.com/493) 이번 포스트는 픽셀을 비교 (연산) 분석할때 사용하는 주요 함수에 대해 알아보겠습니다. 함수는 더하기, 빼기, 곱하기 나누기 입니다. 함수 사용에 앞서 race_car.jpg 라는 그림 파일을 불러서 동일 사이즈로 BGR이 100, 100, 100인 그림을 만들어서 해당 그림과 비교하는 형식으로 예제를 실행하겠습니다. 예제 코드>> import numpy as np import cv2 img = cv2.imread("race_car.jpg") base_..

[Python]OpenCV 픽셀 처리 함수:max,min,absdiff,compare [내부링크]

목차 앞서 이미지(image)나 동영상(video) 파일을 읽어서 불러온 이미지는 픽셀(pixel)의 BGR(Blue, Green, Red) 값으로 구성 됨을 확인하였습니다. (https://scribblinganything.tistory.com/493) 이번 포스트는 픽셀을 비교 (연산) 분석할때 사용하는 주요 함수에 대해 알아보겠습니다. 함수 사용에 앞서 race_car.jpg 라는 그림 파일을 불러서 동일 사이즈로 BGR이 100, 100, 100인 그림을 만들어서 해당 그림과 비교하는 형식으로 예제를 실행하겠습니다. 예제 코드>> import numpy as np import cv2 img = cv2.imread("race_car.jpg") base_pixel = np.full(img.shape,..

[Python] Numpy 배열 값 채우기(1차, 2차, 3차 ....) [내부링크]

목차 파이썬 넘파이 행렬 어레이 채우기 행렬(Matrix) array 값을 채우는 방법은 간단합니다. 주로 full 과 fill 함수를 사용해서 채웁니다. fill 함수의 경우 empty 함수를 사용해서 비우는 작업을 하기 때문에 간단한 full로 설명을 대체 하겠습니다. full 함수의 Syntax는 아래와 같습니다. matrix = np.full((행렬사이즈 정보),넣을 값,dtype=데이터 종류) 아래 예제 코드를 통해 쉽게 이해해 보겠습니다. 예제 코드>> import numpy as np matrix = np.full((4),7,dtype=np.uint16) print("1차 행렬") print(matrix) matrix = np.full((3,4),7,dtype=np.uint16) print(..

[Python]OpenCV 3차원 이미지 스캔화면(2차원)처럼 바꾸기 [내부링크]

목차 [Python]OpenCV 기하학적 변형하기(Geometry formation) 이번 포스트는 이름을 어떻게 작성할까 고민 끝에 일반 사진(Picture) 파일을 2차원의 스캔(Scan)한 것과 같은 효과로 만드는 것 같아서 스캔하기로 적었습니다. 이전 장에서는 2차원 평면(Plane)의 그림(Image)을 원근(Perspective)을 줘서 3차원처럼 보이게 만들었는데 이번에는 반대로 3차원의 원근 거리감이 있는 이미지 파일을 거리감이 없어지게 변형하는 코드를 작성해 보았습니다. 설명에 앞서 아래 예제의 결과를 먼저 공유 해서 이번 포스트의 진행 방향을 쉽게 이해가도록 하겠습니다. 아래 예제 결과>> 최근에 위와 같은 예제를 명함이나 스마트폰의 사진 기술에서 많이 볼 수 있습니다. 명함을 비뚫게 ..

[Python]OpenCV 이미지 기울어지게 만들기, 원근감 주기(getPerspectiveTransform, warpPerspective) [내부링크]

목차 파이썬 OpenCV 이미지 파일 원근감 주기(Perspective) 이번 포스트에서는 파이썬의 OpenCV를 사용해서 사진 파일(Picture file)을 불러와서 2차원 평면을 기울려서 3차원과 같은 형태로 원근감을 줘보겠습니다. 그림이 멀리서 보이는 듯하게 보이게 하기 위해서는 아래 작업들이 필요 합니다. 1. 원본 이미지 픽셀 크기 확인 2. getPerspectiveTransform 함수 3. warpPerspective 함수 사실 함수 사용법만 알면 간단하게 할 수 있는 작업입니다. getPerspectiveTransform 함수 사용에 대해 알아보겠습니다. getPerspectiveTransform(원본 이미지 좌표, 변경할 이미지 좌표) 입력값으로 원본 이미지의 좌표와 변경할 이미지의 ..

[휴대용 스피커] 보스 사운드 링크 플렉스 블루투스 (Bose Soundlink Flex) 리뷰 [내부링크]

목차 보스 사운드 링크 플렉스 블루투스 (Bose Soundlink Flex) 장점 및 기능 이번에 출시된 보스 사운드 링크 플렉스 (Sound link flex)는 휴대 전용 스피커(Speaker) 입니다. 사진과 같이 스피커 끝단에 가방이나 고리에 걸 수 있게 걸이 훅이 있는 구조 입니다. Bose 사운드 링크 플렉스의 첫번째 장점은 스피커의 가장 중요한 덕목 중에 하나인 음질 입니다. 1. POSITIONIQ 보스(BOSE) 음질이야 이미 유명하고 야외 용 스피커의 장점을 살리기 위해 POSITIONIQ 기능을 넣었습니다. 이 기능은 스피커를 좌우 상하 어느면에 놓고 틀어도 해당 위치를 인식해서 위치에 맞춘 음질을 재생해 줍니다. 2. IP67 IP67은 방수 등급을 의미 합니다. 위에 영상처럼 사..

[Python]파이썬으로 PDF 자르기, 붙이기, 편집하기 [내부링크]

목차 [Python]파이썬으로 PDF 붙이기 파이썬에서 제공하는 PyPDF2 라이브러리를 사용하면 손쉽게 PDF 편집(Edit)을 할 수 있습니다. 우선 PDF 문서를 붙이는 (Append, Combine, Merge) 방법에 대해 알아 보겠습니다. 방법은 아래와 같이 간단하게 진행 됩니다. PdfFileReader 함수로 PDF 문서 페이지 일기 PdfFileWriter 함수로 읽은 문서를 저장 / 쓰기 아래 예제를 통해 구현해보겠습니다. 참고로 예제 구현을 위해 pdf001.pdf 파일과 pdf002.pdf 파일을 만들었고 문서(Document) 내용은 아래와 같습니다. 예제 코드>> from PyPDF2 import PdfFileReader, PdfFileWriter pdf_writer = PdfF..

[PDF] PDF파일 프로그램 설치 없이 기본 프로그램으로 잘라내기 [내부링크]

목차 크롬 웹 브라우저로 PDF 편집하기 윈도우(Window)를 사용하시면 PDF를 열때 기본 프로그램으로 Microsoft Edge에서 열어 줍니다. 확인하는 방법은 아래와 같이 pdf 파일에서 마우스 우클릭하면 아래와 같이 연결프로그램을 선택할 수 있습니다. 첫 번째로 Chrome 웹브라우져(Web Browser)를 사용해서 PDF 잘라내는 방법에 대해 알아 보겠습니다. 우선 크롬(Chrome)으로 pdf 파일을 열어 줍니다. 열면 아래와 같이 우측 상단에 프린터 그림이 있습니다. 프린터를 클릭 후 인쇄 대상을 "PDF로 저장"으로 변경합니다. 그리고 페이지는 "맞춤설정"을 하고 저장하길 원하는 페이지만 입력하면 원하지 않는 PDF를 잘라서 저장할 수 있습니다. 에지 웹 브라우저로 PDF 편집하기 에..

[Python]OpenCV 사람 얼굴 사진 겹치게 합성하기, 겹치면서 사진 바꾸기 [내부링크]

목차 [Python]OpenCV 사람 얼굴 사진 겹치게 합성하기 이번 포스트에서는 파이썬 OpenCV를 사용해서 사람 얼굴이 있는 이미지 파일 2개를 열어서 한 얼굴에서 다른 얼굴로 그라데이션 처럼 천천히 바뀌는 예제를 구현할 것입니다. 이번 예제(Example)를 구현하기 위해서는 OpenCV 로 읽은 이미지 파일(Image file)은 픽셀값을 저장한 Numpy 행렬 형태라는 사실을 이해 해야 하고 두 이미지 사이에 픽셀 값에 Weighting을 주면서 점차적으로 바꿔야 한다는 원리를 이해하여야 합니다. 픽셀값(Pixel value)에 대한 설명은 아래 포스터에 잘되어 있으니 참조 하시길 바랍니다. https://scribblinganything.tistory.com/493 [Python]OpenCV..

[Python]OpenCV 마우스 이벤트/클릭(Mouse Event, Click) 콜백함수 [내부링크]

목차 파이썬 마우스 클릭시 함수 구현 파이썬 OpenCV에서 이미지를 띄워 놓고 마우스 클릭 시 특정 함수가 동작되게 하기 위해서는 콜백 함수를 사용해야 합니다. 콜백 함수는 이벤트(Event)가 발생할 시 특정 함수를 시행하는 함수 입니다. 간단히 설명을 드리면 파이썬(Python) 함수는 라인 별로 구현을 하고 완료 합니다. 하지만 마우스 입력(Mouse Click)이나 키보드 입력(Keyboard input)시에 어떤 동작을 구현하길 원한다면 누군가는 코드가 진행되는 와중에도 event가 발생하는 지 모니터링(Monitoring)하고 있어야 합니다. 그리고 이벤트 발생 시 특정 동작을 이행하는데 이것이 콜백 함수의 역할 입니다. 아래는 OpenCV 라이브러리에서 마우스(Mouse) 이벤트 발생 시 ..

[Python]OpenCV 그림 영역 선택, 모자이크 처리하기(Image, Mosaic, Blur) [내부링크]

목차 파이썬 OpenCV Image File 모자이크 처리 이번 포스트는 파이썬 OpenCV의 Blur 함수를 사용해서 모자이크(Mosaic)처리 하는 방법에 대해 알아보겠습니다. 이번 포스트를 수행하기 위해서 아래 단계를 수행 합니다. 이미지 파일불러오기 모자이크할 영역 선택하기 선택 영역 blur함수로 모자이크하기 원본 영역에 blur 모자이크된 영역 덧붙이기 변경된 이미지 불러오기 1~2번 단계는 selectROI로 구현 합니다. selectROI 함수 사용법에 대해서는 아래 포스트에서 진행하였으니 궁금하시면 아래 포스트 참조하시면 됩니다. https://scribblinganything.tistory.com/496 [Python]OpenCV 이미지 마우스 클릭 좌표(위치) 값 확인(selectRO..

[과학상식] 도플러 효과란? 공식 (Doppler effect) [내부링크]

목차 도플러 효과란?(Doppler effect) 도플러 효과란 오스트리아 물리학자 크리스티안 도플러(Christian Doppler)가 1842년 발견한 현상을 얘기 합니다. 그림과 같이 음원(Sound source)나 광원(Light source)가 고정된 위치에서 소리나 빛을 낼 경우 그림처럼 일정한(Same frequency) 파장(wave)이 발생합니다. 만일 음원(Sound source)가 그림처럼 이동하는 경우 음원과 Sound의 파장이 같은 방향일 경우 상대 속도가 줄어 들어 짧은 주기(High frequency or Low period)의 파장이 발생합니다. 반대로 음원과 Sound의 파장 진행 방향이 반대인 경우 (위그림에서는 왼쪽) 상대 속도가 커져서 파장의 주기가 넓어지고 주파수는 ..

[Python] 키보드(keyboard) 이벤트(event) 값 읽기 [내부링크]

목차 파이썬 키보드 값 클릭 확인 함수 is_pressed 파이썬(Python)의 키보드 값을 입력하면 입력에 대응해서 뭔가를 처리하고 싶을 때가 있습니다. 이러한 이벤트(event)를 감지하기 위해 필요한 라이브러리가 keyboard 입니다. 만일 keyboard 라이브러리가 없다면 pip install keyboard로 먼저 설치를 하시길 바랍니다. 키보드를 통해 입력한 값이 맞는지를 확인하는 함수는 is_pressed 입니다. 아래 예제 코드를 보시면 쉽게 이해할 수 있습니다. 예제 코드>> import keyboard while True: if keyboard.is_pressed("1"): print("hello") break 4번 라인: 키보드 1버튼을 클릭하면 if 문 실행 결과>> 코드 실행..

[Python]OpenCV 이미지 마우스 클릭 좌표(위치) 값 확인(selectROI 함수) [내부링크]

목차 OpenCV 이미지 마우스 클릭 좌표 값 확인 파이썬 OpenCV의 함수 중에 selectROI 함수는 이미지(image) 파일이나 그림 파일을 읽었을 때 마우스로 원하는 이미지를 클릭하면 해당 위치(Location) 값을 return해 줍니다. selectROI 함수 사용법은 아래와 같습니다. Syntax>> cv2.selectROI(윈도우창 이름, 소스 이미지명, 격자형태 선택) 윈도우창 이름은 imshow를 사용했을 때 처럼 selectROI도 이미지 창을 만들어 주는데 이미지 창(window)의 이름을 설정합니다. 소스 이미지명은 imread로 읽은 이미지 파일(image file)의 return 값을 저장한 객체 명을 입력 합니다. 격자 형태는 마우스를 클릭하면 사각형이 만들어 지는데 Fa..

[주파수] Octave 계산 방법(Calculation), 파이썬으로 구현하기 [내부링크]

목차 Octave 계산 방법(Calculation) 주파수(Frequency)에서 이동 속도(Velocity)를 결정할 때 Octave/min 과 같은 단위를 볼 수 있습니다. 그리고 주파수(Frequency) 분석에서 Octave 단위로 분석하는 것을 볼 수 있습니다. 음악에서는 1/3 Octave로 분석을 종종 합니다. Octave란 간단하게 얘기해서 기준 주파수에서 2배되는 주파수를 1Octave 단위로 부릅니다. 수식은 아래와 같습니다. f1은 기준이되는 주파수이고 f2는 다음 주파수 값입니다. 만일 f1과 f2가 두배이면 log2/log2가되어 1octave가 됩니다. Octave 파이썬으로 구현하기 파이썬으로 Octave를 구하는 식을 만들기 위해서는 log를 사용하는 함수 numpy log ..

[Python]OpenCV 색변환 함수 cvtColor 사용 방법(Gray, HSV, RGB, LAB 비교) [내부링크]

목차 파이썬 OpenCV cvtColor 사용 방법 파이썬 openCV에서 제공하는 함수 중에 cvtColor 함수가 있습니다. 함수 가운데 C는 대문자로 작성하셔야 합니다. 그렇지 않으면 아래와 같은 에러 메세지가 발생 합니다. 에러 메세지>> Traceback (most recent call last): File "d:\Python\test02\test06.py", line 5, in modified_img = cv2.cvtcolor(img, cv2.COLOR_BGR2GRAY ) AttributeError: module 'cv2' has no attribute 'cvtcolor' 파이썬의 openCV의 imread 읽은 이미지(image)파일은 BGR(Blue, Green, Red) 형태로 읽습니다...

[Python]OpenCV 이미지 픽셀로 변경하여 수정하기(Numpy array) [내부링크]

목차 OpenCV 이미지 픽셀(Pixel)값 확인하기 우리가 사용하는 컴퓨터의 이미지 파일은 아시다 시피 디지털(Digital)로 되어 있습니다. 화면으로 보이는 값은 실상 픽셀이라는 작은 단위를 BGR(Blue, Green, Red)의 비율로 원하는 색상을 표현해주는 것입니다. 파이썬의 OpenCV 라이브러리를 사용해서 이미지 파일을 읽으면 출력 값은 Numpy(넘파이) array 형태로 숫자로 나옵니다. 즉 픽셀 위치에 따라 배열로 구성되고 구성 값은 BGR값이 되는 것입니다. 아래 예제는 이미지 파일을 읽고 읽은 파일의 종류와 값을 확이하는 작업입니다. 이미지는 무료이미지 사이트에서 포르쉐 자동차 사진을 다운 받아서 사용하였습니다. 예제 코드>> import cv2 img=cv2.imread("po..

[Python]OpenCV 동영상 저장하기, 코덱 종류와 사용방법(Video, fourcc, codec) [내부링크]

목차 파이썬 코덱 종류와 사용방법 파이썬 OpenCV에서 비디오 파일을 다루다 보면 코덱(Codec) 사용을 종종하게 됩니다. 코덱(Codec)이란 영상 파일의 Encode와 Decode를 처리함으로써 우리가 화면에서 보거나 파일로 저장하는 작업을 도와 줍니다. 이번 포스트에서는 코덱(Codec)을 사용해서 영상 파일을 저장하는 코드를 작성할 것입니다. 주로 사용하는 코덱은 아래와 같습니다. MJPG DIVX H264 H264의 경우 웹브라우져(Web browser) 용 비디오 코덱으로 많이 사용 됩니다. 그 외 각종 코덱은 텍스트의 링크를 통해 확인하실 수 있습니다. 코덱을 Python에서 사용하는 방법은 간단하게 아래와 같은 방법으로 진행하시면 됩니다. codec = "DIVX" fourcc = cv..

[Python] OpenCV 동영상 파일 재생하기 (화면 사이즈 변경) [내부링크]

목차 OpenCV 동영상 파일 재생하기 앞서 포스트에서 비디오(Video) 파일(mp4)의 영상 정보를 가져오는 방법에 대해 알아보 았습니다. 이번 포스트는 영상 파일의 사이즈 정보를 가져와서 크기를 변경하고 재생하는 코드를 작성하고 설명하겠습니다. 순서는 아래와 같습니다. 동영상 불러오기(VideoCapture) 동영상 정보가져오기(cv2.get) 동영상 읽기(cv2.read) 프레임(Frame) 크기 변경하기(cv2.resize) 프레임(Frame) 출력 하기(imshow) 코드는 위 순서대로 진행 되고 각 순서에서 사용되는 파이썬 openCV 함수(Function)은 괄호안에 넣었습니다. OpenCV 동영상 파일 재생하기 실습 예제 코드>> import cv2 Vid = cv2.VideoCaptur..

[OpenCV] Python 비디오 속성 값 불러오기(Video attributes) [내부링크]

목차 OpenCV 비디오 속성(Attribute) 파이썬의 OpenCV의 VideoCapture 함수를 사용해서 동영상 파일을 불러 올 수 있습니다. 불러온 비디오 파일을 처리할 때 속도나 크기 처리나 후속 처리를 위해서 특정 비디오가 가진 메타 정보들을 불러와야 합니다. 불러온 비디오 파일을 사용자 지정 객체에 저장하고 객체를 get 함수를 사용해서 속성 정보를 불러 올 수 있습니다. 주요 속성 값은 아래와 같습니다. CAP_PROP_POS_MSEC : 현재 비디오 파일의 위치 (ms, timestamp) CAP_PROP_POS_FRAMES : index 0 base frame CAP_PROP_POS_AVI_RATIO : 비디오 파일의 상대적 위치 (0: 시작점, 1 끝점) CAP_PROP_FRAME_..

[전기자전거]e까미노(CAMINO) 아톰 리뷰 (디자인이 멋진 접이식 자전거) [내부링크]

목차 e까미노(CAMINO) 아톰 리뷰 이번에 소개할 전기 자전거는 디자인이 제 마음에 쏙 드는 e까미노 아톰입니다. 현재 쿠팡에서 27% 할인된 최저가로 판매 중이어서 고민 중인 제품이라 정리할 겸 포스트를 작성 해봅니다. 위에 색상은 회색(Gray)로 검정(Black)과 흰색(White) 총 3가지 중에 선택 가능 합니다. 저는 개인적으로 회색이 가장 마음에 듭니다. 전기 자전거의 가장 중요한 성능 지표 중에 하나인 배터리는 36V 5.2Ah 팩으로 LG 리튬이온 셀을 사용합니다. 충전시간은 약 3~4시간 정도 걸립니다. 충전은 배터리를 탈착해서 배터리만 별도로 충전이 가능하고 아니면 자전거에 연결된 채로 충전이 가능 합니다. 위 그림에서 사이에 들어가 있는 것이 배터리고 쉽게 탈 부착이 가능 합니다..

[Python]OpenCV imread함수 사용법, 옵션(Option), 예제 [내부링크]

목차 OpenCV imread함수 사용법 파이썬의 cv2.imread 함수는 이미지(image)파일을 읽을 때 사용하는 함수 입니다. 이미지 파일은 Numpy arrary 형태로 숫자 값들이 넘어오고 이 숫자가 해당 위치에서의 색을 의미 합니다. cv2.imread 는 기본적인 기능은 이미지 파일을 읽는 것이지만 내부에 많은 Option 들이 있어서 사용 방법을 알아야 활용도를 높일 수 있습니다. 이번 포스트에서는 다양한 예제를 통해 이미지파일을 불러오는 것 이외에 다양한 기능에 대해 알아 보겠습니다. cv2.imread(파일명, 옵션 값) 파일명에는 이미지 파일의 경로와 파일명을 입력 합니다. 저는 코드와 동일 폴더에 이미지 파일을 넣을 예정으로 파일 경로를 입력하지 않습니다. 옵션 값으로는 아래와 같..

[Python] Numpy axe 값이란? 행/열에 따라 합치기 [내부링크]

목차 Numpy Axes 의 의미, 사용 방법 위 그림은 2차원 그래프의 x축과 y축을 표현한 도면입니다. 그래프 안의 모든 점은 x, y 축(axe) 값에 의해 위치가 결정 됩니다. 넘파이 Axes 도 결국 위 개념을 적용한 것입니다. x 축이 행(Row)이고 y 축이 열(Column) 값입니다. 주의할 점은 1차원 리스트(List)와 2차원 배열(Matrix)에서 axis 값을 다르게 사용해야 합니다. 1차원에서는 아래와 같이 axis 0이 x축이고 y값이 없습니다. axis0 = 열(Column) 2차원에서는 아래와 같이 행과 열의 위치를 정합니다. axis0 = 행(Row) axis1 = 열(Coulmn) 다음으로 주의해야할 점은 행렬의 크기 값이 일치해야 인식하고 함수가 진행됩니다. 만일 한줄 ..

[Python]Pandas 인덱스, 행/열 이름 List로 출력하기(Index, Value, Name) [내부링크]

목차 [Python]Pandas 인덱스, 행/열 이름 출력하기(Index, Value, Name) loc를 통해서 Pandas의 dataframe, series의 값을 출력 했습니다. 이번 포스트에서는 index 명이나 Column 최상단의 값을 list로 추출하는 방법에 대해 알아 보겠습니다. 출력 방법은 간단합니다. 아래 함수를 사용해서 출력 하면 됩니다. index : 인덱스 값을 불러 옵니다. values : dataframe 값을 불러 옵니다. columns : 열의 헤더(Header)값을 불러 옵니다. to_list : 불러 온 값을 리스트로 바꿔줍니다. 예제 코드- Index값>> import pandas as pd df = pd.DataFrame({ "name" : ["James", "Ja..

[Python] Numpy 행렬 array에 열(Column), 행(Row) 추가하기 [내부링크]

목차 파이썬 Numpy Array Matrix에 행 값 리스트(List) 추가하기 넘파이로 배열(Matrix)을 만들고 추가 행을 붙이는 방법에 대해서 알아 보겠습니다. 행(Row)을 붙이는 함수는 아래와 같습니다. np.r_(원본 어레이, 추가할 행) 함수는 r_ 함수를 사용하고 입력 값으로는 원본 array값에 추가할 행 값을 입력 합니다. 여기서 추가할 행에서 주의할 부분은 row의 개수에 맞춘 numpy array 값이여야 하고 list로 넣을 경우 [[ ]] 괄호를 두번 사용해서 동일 matrix라는 사실을 명기 해야 합니다. 그렇지 않으면 아래와 같은 에러 메세지가 발생 합니다. row_add_list = np.r_[np_list, insert_row] File "C:\Users\forgo\A..

[Python] Numpy 행렬(Matrix) 함수(Shape, Reshape) [내부링크]

목차 파이썬 Numpy 행렬(Matrix) 함수 : Shape Shpae 함수는 numpy array 로 만든 행렬의 행의 수와 열의 수를 카운트 해줍니다. 사용 방법은 아래와 같습니다. tuple 값(행,열) = numpy.shape(numpy array) 위와 같이 넘파이 어레이 값을 입력으로 넣으면 입력의 행과 열을 tuple(튜플)로 출력해 줍니다. arry에 들어 가는 [[ ]] 괄호를 두번 중첩해야지 matrix로 인식합니다. 한번만 사용하면 행만 있는 것으로 인식 합니다. 아래 예제를 보시면 쉽게 이해할 수 있습니다. 예제 코드>> import numpy as np; np_list0 = np.array([1,2,3,4]) np_list1 = np.array([[1,2,3,4]]) print(..

[Python]Numpy 기본 팁: Max, Min, 조건검색(where), 정렬(Sort) [내부링크]

목차 파이썬 Numpy 최대값 찾기 Numpy 리스트 중에서 최대값 찾는 것은 argmax 함수를 사용해서 검색 합니다. index 리턴 값 = np.argmax(리스트) 위와 같이 index 값을 return 해 줍니다. 예제 코드>> import random import numpy as np a_list = [random.randint(0,200) for x in range(10)] max_list = np.argmax(a_list) print("a_list : ", a_list) print("a_list max index : ", max_list) print("a_list max : ", a_list[max_list]) 4번 라인: 랜덤 함수로 임의의 리스트 값을 만듭니다. 9번 라인: 출력 값은 ..

[Python] 프로그램 동작 시간 측정 함수 timeit 사용방법(Visual Studio) [내부링크]

목차 파이썬 timeit 함수 Syntax sort (정렬)이나 랜덤(Random)값을 만들거나 함수를 만들어서 동작하는데 시간이 얼마나 걸리는지 확인하는 작업은 중요합니다. 코드가 얼마나 효율적으로 만들었는지 알 수 있는 지표이기 때문입니다. 시간 측정을 위해 파이썬(Python)에서 제공하는 timeit 이라는 함수를 사용하면 쉽게 동작 시간(Operation Time)을 측정 할 수 있습니다. Syntax는 아래와 같습니다. timeit.timeit(stmt='함수/코드', setup='경로포함', number=동작횟수) timeit.repeat(stmt='함수/코드', setup='경로포함', number=동작횟수, repeat=반복횟수) timeit 은 반복 측정이냐 한번 측정이냐에 따라 tim..

[Python] Pandas CSV 파일 읽기 (에러 발생/해결) [내부링크]

목차 파이썬 판다스로 CSV 파일 읽기 문제 발생 이번 포스트는 어떤 프로그램을 통해서 데이터를 저장하였고 저장은 csv file로 하였습니다. 데이터 분석을 위해 pandas dataframe을 사용하려고 하는데 csv 를 불러 오는 과정에서 에러가 발생하였습니다. 해결 방법에는 2가지가 있는데 아래에서 소개하겠습니다.(CSV file to dataframe/series)) 우선 아래 예제 코드 처럼 pandas의 read_csv 함수를 사용해서 동일 폴더 안에 있는 csv file을 읽는 코드를 작성했습니다. 예제 코드>> import pandas as pd data = pd.read_csv('Driving_data_long.csv') print(data) 에러 코드>> Traceback (most ..

[Pymongo] 엑셀파일 mongodb에 업로드하기(Excel to mongoDB) [내부링크]

목차 [Pymongo] 엑셀파일 mongodb에 업로드하기(Excel to mongoDB) 이번 포스트에서는 엑셀파일에 있는 데이터를 파이썬의 pymongo 라이브러리를 사용해서 Mongodb에 올려보겠습니다. 코드 실행에 앞서 아래 작업들이 선행되어있다고 생각하고 진행하겠습니다. 파이썬 설치 mongodb 설치 (윈도우 버전, windows) pymongo 라이브러리 설치 mongodb 연결은 localhost로 연결할 것이고 Port는 기본 default에서 변경하지 않은 27017번으로 사용 합니다. [Pymongo] MongoDB에 연결하기 예제 코드>> import pymongo def Connect_DB(): connect_to = pymongo.MongoClient("localhost", 2..

[Python]Matplotlib 그래프 그리기 팁(사이즈, subplot, 주석 [내부링크]

목차 파이썬 matplotlib을 사용하기 위해서는 pip install matplotlib으로 설치를 우선 진행하여야 합니다. 아래는 matplotlib을 효과적으로 사용하기 위한 팁과 트릭입니다. Plot 크기 조절하기 plot의 크기는 figure의 figsize로 x축과 y축 사이즈를 결정 합니다. 예제 코드>> import matplotlib.pyplot as plt import random fig=plt.figure(figsize=(4,4)) x=list(range(10)) y=[random.random() for _ in x] print(x) print(y) plt.title("graph title") plt.xlabel('x-axis') plt.ylabel('y-axis') plt.plot..

[Python]Pandas Dataframe 데이터 불러오기, loc, iloc 차이, 필터(Filter) 처리 [내부링크]

목차 [파이썬] Pandas Dataframe loc, iloc 함수 정의 및 차이 loc 함수는 라벨(Label) 기준으로 행(Row)과 열(Colum)을 필터(Filter)해 줍니다. 예를 들어 3번 index에 내용을 찾을 때 3번 Index가 가지는 라벨 이름(name)을 통해서 검색합니다. 그리고 index 값을 이용해서 검색도 가능해서 index 검색 시 형 전체를 표기 해줍니다. iloc는 정수로된 index를 기준으로 필터링 해줍니다. index 값을 이용해서 행과 열 모두 검색 가능합니다. 아래 예제를 통해 쉽게 이해할 수 있습니다. [파이썬] Pandas Dataframe loc label 필터링 예제 아래 예제는 loc에 조건식을 넣어서 조건에 맞는 값만 출력되게 만든 loc 예제 입..

[Python] Pandas dataframe 중복 (동일)값 찾고 삭제하는 방법 [내부링크]

목차 [파이썬] Pandas Dataframe 중복 값 찾기 판다스 Dataframe은 열과 행 (Column and row)로 구성되어 있습니다. 여기서 열 값 중에 같은 값들을 찾는 방법에 대해 알아 보겠습니다. 중복 값 찾기는 duplicate 함수로 구현 가능 합니다. 예제 코드>> import pandas as pd import numpy as np df = pd.DataFrame({ "name" : ["James", "James", "Kevin", "Adam", "David", "Adam"], "math" : [90,50,50,30,100,90], "physics" : [30,40,80,50,10,50], "english" : [90,70,30,90,90,40] }) print("Origial..

[Python] Pandas 여러가지 정렬방법(Multi Column, Index 제외 정렬 등) [내부링크]

목차 Python Pandas 정렬(Sorting) 파이썬의 판다스를 이용해서 정렬을 하려고 합니다. 엑셀에서 정렬을 해보시면 아시겠지만 열을 하나만 선택하거나 두개를 선택해서 정렬하거나 다양한 방법들이 있습니다. 이번 포스트는 index 사용 정렬이 아닌 column 관련 정렬로 sort_values 함수를 사용해서 정렬할 것입니다. 아래 예제 실습을 통해 사용 방법을 익혀보겠습니다. 기본 Column 하나로 정렬하기 예제 코드>> import pandas as pd import numpy as np df = pd.DataFrame({ "name" : ["James", "James", "Kevin", "Adam", np.nan], "math" : [90,50,50,30,100], "physics" : ..

[Python] 소수점 자리 올림, 반올림, 내림 [내부링크]

목차 파이썬 올림, 반올림, 내림 Syntax #반올림 round(value, 소수점자리) #올림 math.ceil(value) #내림 math.ceil(value) 파이썬 올림, 반올림, 내림 예제 예제 코드>> import math print(round(3.12,1)) print(math.ceil(3.12)) print(math.floor(3.12)) 결과>> 3.1 4 3

[Python]Pandas에서 CSV 파일 읽기 에러 해결 [내부링크]

목차 CSV 읽기 에러 현상 코드는 아래와 같이 단순하게 read_csv 함수로 csv 파일을 읽어 오는 것입니다. 문제코드>> import pandas as pd df=pd.read_csv("D:\\Driving_data.csv") print(df) 실행 결과 아래와 같은 에러 메세지가 발생하였습니다. 에러코드>> Traceback (most recent call last): File "d:\Python\test00\test02.py", line 3, in df=pd.read_csv("D:\\Driving_data.csv") File "C:\Users\forgo\AppData\Local\Programs\Python\Python310\lib\site-packages\pandas\util\_decorato..

[Python]OpenCV waitKey 함수 사용법, 이미지/동영상 파일 열고 닫기 [내부링크]

목차 파이썬 OpenCV waitKey 함수란? OpenCV에서 제공하는 함수 중에 waitKey라는 함수가 있습니다. Syntax 는 아래와 같습니다. cv2.waitKey(time) time에는 지연 시키고 싶은 시간 값을 입력합니다. 단위는 밀리세컨드(millisecond)입니다. 사용 방법은 크게 두가지가 있습니다. 단순 시간 Delay 로 사용하는 방법과 키 입력 이벤트(Keyboard event)와 함께 진행하게 만드는 방법입니다. 아래 3개의 예제를 통해 이해해 보겠습니다. waitKey 시간 지연 예제 이번 예제는 단순히 1초 마다 카운팅하는 코드를 작성해보겠습니다. 예제 코드>> import cv2 for _ in range (5): print("Counting : ", _) cv2.wa..

[Python]OpenCV 컴퓨터 카메라로 화면 캡쳐해서 저장하기(Camera capture, save) [내부링크]

목차 파이썬 OpenCV 기본 함수 설명 노트북 카메라 동작과 카메라 화면 캡쳐 후 이미지 파일로 저장하는 예제에 필요한 함수들에 설명하겠습니다. cap = cv.VideoCapture(0) VideoCapture 클래스에 0을 입력해서 현재 컴퓨터에 연결된 메인 카메라를 불러서 Return 해 줍니다. Cap은 return이 들어가는 객체명으로 원하는 이름을 사용할 수 있습니다. ret, img = cap.read() 비디오 카메라 객체로 연결된 cap에서 이미지를 읽어서 이미지는 img에 넣고 이미지 읽는 성공 여부(True/False)는 ret에 넣어 줍니다. cv.imshow('PC_camera', img) img 객체를 PC_camera 라는 윈도우 창에 띄웁니다. cv.waitKey(1) ==..

[Python]tkinter 마우스 클릭 이벤트 시 그림 이동하기(Mouse, event, click, move) [내부링크]

목차 tkinter 마우스 클릭 이벤트 Syntax 파이썬의 tkinter를 사용해서 키보드로 이벤트 발생 시 도형을 만들고 이동하는 예제를 구현해 보았습니다(https://scribblinganything.tistory.com/280). 이번에는 마우스 왼쪽, 오른쪽, 가운데 휠을 눌러 도형을 이동하는 예제를 구현해 보겠습니다. event 를 사용하기 위해서는 tkinter에서 만든 객체를 bind를 사용해서 함수와 묶어야 합니다. 묶는 방법은 아래와 같습니다. app.bind("", 함수명) Button-1 : 마우스 왼쪽 버튼 클릭 Button-2 : 마우스 가운데 휠 클릭 Button-3 : 마우스 오른쪽 버튼 클릭 함수 명 : 이벤트 발생 시 실행하고자 하는 함수 명 아래 실제 예제를 통해 이해..

[Python]OpenCV 이미지 파일 용량(화질) 변경(압축)해서 저장하기 [내부링크]

목차 [Python]OpenCV 이미지 파일 용량(화질) 변경해서 저장하기 : JPG 앞서 imwrite 함수 사용에 대해 간단하게 알아보았습니다. (https://scribblinganything.tistory.com/469) 이번에는 imwrite의 파라미터 값을 이용해서 원본의 화질 / 파일 크기를 줄여 보도록 하겠습니다. JPG, JPEG 파일의 경우 아래와 같은 파라미터 값을 넣습니다. 화질 정도는 0~100을 넣어 100은 원본 그대로 이고 0은 최저 화질로 생각하시면 됩니다. [cv2.IMWRITE_JPEG_QUALITY, 화질 정도] 예제 코드를 통해 어떻게 동작하는 지 쉽게 알아보겠습니다. 예제 코드>> import cv2 import os img_ori = cv2.imread('flow..

[Python]OpenCV 이미지 파일 저장, 파일 크기 확인하기(JPG, PNG, TIFF) [내부링크]

목차 OpenCV imwrite 함수 파이썬의 OpenCV에서 이미지 파일을 열거나 만든 다음에 파일을 다른이름으로 저장할 때 imwrite함수를 사용합니다. imwrite 함수의 Syntax는 아래와 같습니다. cv2.imwrite(filename, img, [parameters]) filename : 저장하고자 하는 파일명을 입력합니다. 확장자명까지 추가해서 이미지 파일(Image file)의 종류도 결정 합니다. img : 저장하고자 하는 이미지를 입력 합니다. parameters : 이미지 파일 포맷에 맞춰서 압축, 화질들을 결정하는 파라미터 값을 설정할 수 있습니다. OpenCV 이미지 파일 저장, 파일 크기 확인하기(JPG, PNG, TIFF) 예제를 통해 이미지 파일을 읽고 파일을 jpg, ..

[스마트 티비 리뷰]삼성 쉐리프 티비 1달 사용 후기(장단점) [내부링크]

목차 삼성 쉐리프(Samsung Serif) 티비 1달 사용 후기 이번에 큰 맘 먹고 스마트 티비를 구매하였습니다. 모델명은 KQ55LST01FFXKR로 55인치 스탠드 형입니다. 기존의 티비가 사이즈도 작고 스마트 기능이 없어서 크롬캐스트(Chrome cast)를 사용해서 넷플릭스, 유투브, 디즈니를 봤는데 발열 문제도 있고 불편해서 55인치 삼성 쉐리프 티비를 구매하게 되었습니다. 우선 정말 구매했는지를 보여 주기 위해 위에 사진을 첨부 했습니다. 구성은 티비와 리모컨 그리고 전원을 위한 케이블 정도로 심플 했습니다. 유선 티비를 사용하지 않는 저희로서는 그냥 티비에 와이파이만 연결하니 OTT 를 사용할 수 있었습니다. 구매를 210만원 정도에 했는데 쿠팡에 보니 10프로 할인해서 1,886,000원..

[Python]No module named numpy 관련 에러 해결 방법 [내부링크]

목차 파이썬 Numpy 에러 코드 import numpy 후 실행하였을 때 아래와 같이 에러 코드가 발생하였습니다. 에러코드 Modulenotfounderror no module named numpy 파이썬 Numpy 에러 발생 원인 발생 원인은 크게 2가지로 볼 수 있습니다. Numpy 설치 안됨 Numpy 설치 안된 Virtual Environment 에서 동작 설치 방법>> 터미널 창에서 아래와 같이 입력 합니다. pip install numpy 가상환경에서 numpy가 설치되었는지 확인 후 안되어 있다면 가상환경에서 pip install을 사용해서 설치 합니다. 파이썬 Numpy 그 외 에러와 해결책 에러메세지>> No module named numpy.core._multiarray_umath 해..

[Python]OpenCV 란? Visual Studio에서 설치하고 버전 확인 [내부링크]

목차 OpenCV 란? OpenCV는 Computer vision, machine learning, image processing을 위한 라이브러리 입니다. 예를 들어 이미지나 비디오를 분석해서 무엇인지를 식별하거나 이미지에서 텍스트를 추출하는 등 최신 기술에 필요한 핵심 기술 입니다. OpenCV를 사용해서 이미지의 패턴이나 특징, 정보를 추출하고 파이썬의 Numpy와 같이 사용해서 빅데이터와 같은 데이터 분석에도 이용됩니다. Visual Studio에서 설치하고 버전 확인 설치 코드>> pip install opencv-python pip install로 쉽게 설치 가능 합니다. 설치 완료 후 아래와 같이 정상 동작하는 지 버전을 확인할 수 있습니다. 버전 확인 코드>> import cv2 print..

[Python]지수 분포란? 파이썬으로 구현하고 그래프 만들기(Exponential Distribution) [내부링크]

목차 지수 분포란(Exponential Distribution)? 지수 분포는 푸아송 분포와 연결해서 생각할 수 있습니다. (아래 링크 참조) [Python]푸아송 분포란? 파이썬으로 구현하고 그래프 그리기(Poisson distribution) (tistory.com) 푸아송 분포는 간단하게 설명하면 λ = np를 사용해서 n번 시행하니 p의 확률이 발생했다는 비율을 사용해서 분포를 구하는 것입니다. 즉, 단위 시간당 n 번 발생 확률(Probability)을 이용해서 분포를 구성하는 것이고 지수 분포는 어떤 사건이 발생하기 까지의 시간의 확률로 분포를 만든 것입니다. 예를 들어 A는 매일 커피를 3잔 씩 마실 확률이 0.5면 λ(람다)값은 1.5가 되고 람다 값으로 발생률에 따른 푸아송 분포를 알수 ..

[Python]로지스틱 분포, 함수, 회귀란? 파이썬으로 구현하고 그래프 그리기(Logistic Distribution, Function, Regression) [내부링크]

목차 로지스틱 분포, 로지스틱 함수, 로지스틱 회귀란? 위 그림은 위키피디아에서 가져온 로지스틱 분포(Logistic distribution)의확률 밀도 함수(Probability density function)과 누적 분포 함수(Cumulative distribution function)의 그래프입니다. 그림을 참조하면 로지스틱에 대해 쉽게 이해할 수 있습니다. 로지스틱 분포(Logistic distribution)란? 세상의 현상은 선형(Linear)보다는 지수적(Exponential)으로 발생하는 일들이 많습니다. 가령 자동차를 예를 들면 사용 시간에 따른 차량이 고장날 확률을 생각할 경우 결과를 정상과 고장 두가지로 봤을 때 어느 시점에 고장 발생활률이 높게 증가함을 통계를 통해 알 수 있습니다...

[Python]Selenium BluetoothAvailability()에러 해결 방법 (usb_device_handle_win) [내부링크]

목차 [Python]Selenium BluetoothAvailability() 문제 현상 코드>> from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get('http://www.g2b.go.kr/index.jsp') 위 코드를 구현 하였고 아래와 같이 에러 메세지가 발생하였습니다. 에러메세지>> [3740:8148:0124/084133.199:ERROR:chrome_browser_main_extra_parts_metrics.cc(227)] START: ReportBluetoothAvailability(). If you don't see the END: message, this is crbug...

[블루투스 이어버드 리뷰] Sony WF-C500 [내부링크]

목차 Sony WF-C500 Review 이번에 출시된 WF-C500은 무선 이어폰으로 쿠팡에서 현재 4%할인된 가격으로 114,240원(로켓배송)에 판매하고 있습니다. 디자인은 위와 같이 XB700 제품에 비해더 현대적이고 심플한 미를 살렸습니다. 디자인 뿐만 아니라 기존의 XB700에서 되지 않았던 Sony의 Headphones Connect 어플리케이션을 사용해서 EQ를 커스텀 마이징 할 수 있습니다. 배터리 성능도 증가해서 연속 플레이로 10시간 지속 가능 합니다. 그리고 C500은 이어버드에 있는 커다란 버튼을 이용해서 쉽게 제어가 가능 합니다. 하지만 다른 고가의 이어버즈에 비해 가격을 저렴하게 유지 하기 위해 Active Noise Cancellation(노이즈 캔슬링)과 무선 충전 기능을 ..

[Python]푸아송 분포란? 파이썬으로 구현하고 그래프 그리기(Poisson distribution) [내부링크]

목차 푸아송 분포란(Poisson distribution)? 푸아송 분포는 이산 분포와 깊게 연관되어 있습니다. https://scribblinganything.tistory.com/457 [Python]이산 확률 분포란? 파이썬으로 구현하고 그래프로 그리기(Binomial/Discrete) 목차 이산 확률 분포란(Discrete Probability Distribution)? 이산 확률 분포는 영어로 Discrete Distribution 또는 Binomial Distribution 이라고 합니다. 이산이라는 의미가 설명하듯이 연속된 값이 아닌 별개.. scribblinganything.tistory.com 앞서 이산 분포(Discrete distribution)는 1회 당 발생 p 확률의 사건을 기준..

[Python] pip install 에러 발생 시 해결 책 [내부링크]

목차 에러 현상 PS D:\py_test\test00> pip pip : 'pip' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오. 위치 줄:1 문자:1 + pip + ~~~ + CategoryInfo : ObjectNotFound: (pip:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException 컴퓨터를 포맷 후 Visual Studio를 설치 후 pip 를 실행하니 위와 같이 에러 코드가 발생했습니다. 해결 방법 1. 파이썬 설치 파일을 다시 실행 후 아래..

[Python] 균등분포 란? 파이썬으로 구현하고 그래프 만들기(Uniform Distribution) [내부링크]

목차 균등분포란(Uniform Distribution)? 통계(Statistics)나 확률(Probability)이론에서 연속 균등 분포 (사각 분포, Rectangular distribution)은 대칭 확률 분포 중에 하나 입니다. 균등분포란(Uniform Distribution)는 실험이나 통계의 결과가 특정 범위 내에서 발생합니다. 일반적으로 범위는 a, b로 표현 합니다. 그리고 전체 확률의 합은 1로 표현되어 Uniform이라는 표현이 사용 됩니다. 그리고 각 인자들이 발생확률이 동일합니다. 아래는 균등 분포를 확률 밀도 함수(Probability density function)으로 표현한 수식과 그래프 입니다. 파이썬으로 균등 분포를 따르는 결과를 출력하기 코드>> from numpy imp..

[Python]이산 확률 분포란? 파이썬으로 구현하고 그래프로 그리기(Binomial/Discrete) [내부링크]

목차 이산 확률 분포란(Discrete Probability Distribution)? 이산 확률 분포는 영어로 Discrete Distribution 또는 Binomial Distribution 이라고 합니다. 이산이라는 의미가 설명하듯이 연속된 값이 아닌 별개의 값에 대한 확률을 부여해서 별개의 값이 발생할 확률을 그래프로 쉽게 알 수 있습니다. 예를 들어 동전을 100번 던져서 앞 뒤가 나오는 것을 기록해서 앞, 뒤라는 이산 값(Discrete Value)에 확률 값을 부여 합니다. 그리고 101번 째 던질 때 앞서 구한 이산 확률 분포를 통해 앞이 나올지 뒤가 나올지에 대한 확률을 알 수 있게 됩니다. 이산 확률 분포 수식은 아래와 같습니다. p는 한번 시행했을 때 발생 확률이고 위 시근 어떤 시..

[Python]정규분포(가우시안분포)란? 파이썬 랜덤으로 만들고 그래프 그리기(Normal/Gaussian Distribution) [내부링크]

목차 [Python]정규분포(가우시안분포)란? 정규 분포란 영어로는 "Normal Distribution"라고 합니다. 그리고 가우시안 분포(Gaussian Distribution)이라는 이름으로도 사용됩니다. 정규 분포는 독립적(Independent)이고 랜덤(random)으로 생성된 변수(Variable)을 표현한 분포입니다. 벨 형태의 그래프는 통계에서 흔하게 볼 수 있는 형태 입니다. 가령 비행기가 하늘을 날아가면서 발생하는 진동의 분포를 그래프로 그리면 시간이 흐름에 따라 가우시안 분포에 수렴하게 됩니다. 위 수식은 정규 분포 수식으로 확율 밀도를 표현한 식입니다. 수식은 평균값(mean)을 중심으로 표준편차(standard deviation)에 의해 그래프의 퍼짐 정도가 결정 됩니다. 파이썬을..

[Python]확률 밀도 함수 그래프 그리기 (Probability Density Function Graph, seabor, matplotlib [내부링크]

목차 [Python]확률 밀도 함수 그래프 그리기 : 필요 사항 앞서 포스트에서 확률 밀도 함수(Probability Density Function, PDF)에 대해 알아보고 파이썬 Numpy를 사용해서 특정 값에 확률 값을 대입해서 데이터 리스트(Data list)를 만들어 보았습니다. https://scribblinganything.tistory.com/454 [Python]확률밀도함수란? 데이터 셋 구현하기(Probability Density Function) 목차 확률밀도함수란(Probability Density Function, PDF)? 확률밀도함수란 연속 확률 변수를 나타내는 함수라고 합니다. 예를 들어 설명하면 어떤 통계학자가 테스트에 대한 시험을 동일 조건으로 여러 scribblingan..

[Python]확률밀도함수란? 데이터 셋 구현하기(Probability Density Function) [내부링크]

목차 확률밀도함수란(Probability Density Function, PDF)? 확률밀도함수란 연속 확률 변수를 나타내는 함수라고 합니다. 예를 들어 설명하면 어떤 통계학자가 테스트에 대한 시험을 동일 조건으로 여러번 진행하여 만들어진 데이터 셋으로 만든 확률 밀도에 대한 그래프를 만들고 다음 실험에서 특정 값이 발생할 확률 정보를 PDF(Probability Density Function)를 통해 알 수 있게 됩니다. 위 그래프는 Normal distribution 그래프로 평균값이 u이고 분산값이 시그마(σ)일 때로 자연 현상에서 가장 많이 수렴되는 확률 밀도 입니다. 가령 비행기가 날아갈때 공기 저항에 의한 진동에 대한 확률 밀도 함수에 대한 그래프를 그리면 표준 분포(Normal distrib..

[Python] 다양한 랜덤값 생성(정수,실수, 행렬, 선택, 범위선택) [내부링크]

목차 파이썬의 Numpy라는 라이브에서 제공하는 Random 메소드를 사용한 다양한 종류의 랜덤 값을 만들 수 있습니다. 아래에 예제를 통해 쉽게 이해해 보겠습니다. 파이썬 정수(Integer) 랜덤 값 만들기 randint 함수를 사용해서 정수 랜덤 값을 만들겠습니다. 예제>> from numpy import random x_list = [] for _ in range(10): x_list.append(random.randint(1,100)) print(x_list) 4~5번 라인: 1~100사이 정수에서 랜덤값을 만들어서 x_list에 채우기 결과>> [21, 12, 40, 29, 13, 82, 76, 29, 3, 12] 파이썬 실수(Float) 랜덤 값 만들기 random의 uniform 함수를 사..

[Python] 리스트 값에 필터 적용하기(Numpy, Filter, Mask, 조건 걸기) [내부링크]

목차 파이썬 리스트(List)에 필터 사용하기 리스트의 값을 사용자가 원하는 조건에 맞는 값만 출력하기 위해서는 Numpy의 Filtering 기술을 사용하면 됩니다. Filter를 적용하는 방법은 다양하게 있는 데 예제를 통해 차례 차례 알아 보겠습니다. 파이썬 리스트(List)에 필터 사용하기: True, False 사용하기 예제>> import numpy as np import random x_list = [] for _ in range(3): x_list.append(random.randint(1,10)) numpy_list = np.array(x_list) mask = [True, False, True] print(numpy_list) print(numpy_list[mask]) 4~6번 라인: ..

[Python] 리스트, 행렬 정렬 (Numpy, Matrix, List) [내부링크]

목차 파이썬 넘파이 Sort 메소드 파이썬의 리스트와 행렬 정렬을 위해 Numpy라는 라이브러리의 sort 함수를 사용하면 쉽게 할 수 있습니다. 사용 방법은 아래와 같습니다. numpy.sort(넘파이 행렬) numpy.sort(넘파이 행렬)[::-1] numpy.sort(넘파이 행렬, axis = 0) numpy.sort(넘파이 행렬, axis = 1) 1번 라인: 기본 정렬 2번 라인: 배열일 경우 리스트 간 정렬 3번 라인: 열(Column) 정렬 4번 라인: 행(Row) 정렬 위 그림을 통해 axis 방향을 참조 하시면 됩니다. 아래 예제 코드를 통해 쉽게 이해하실 수 있습니다. 배열 값 정렬 하기 (Matrix Sorting) 예제 예제 코드>> import numpy as np import ..

그림판/PPT 이용해서 동일 색상 찾기, 적용(Color 정보, Paint) [내부링크]

목차 그림판(Paint) 사용해서 동일한 색깔 찾기 1. 아래 그림과 같이 스포이드 형태의 아이콘을 클릭합니다. (빨간색원) 2. 그림판 화면에서 찾고 싶은 색이 있는 부분을 클릭하면 아래와 같이 색1의 색상이 동일 색상으로 변경됩니다. 3. 상세 정보는하단에 색편집을 클릭하면 아래 그림과 같이 색상, 채도, 명도에 대한 정보와 RGB 비율 정보를 얻을 수 있습니다. PPT(파워포인트) 사용해서 동일한 색깔 찾고 변경 해보기 1. 도형 내부의 색을 알고 싶을 경우 아래와 같이 도형 서식 설정화면에서 색을 클릭합니다. 스포이트 클릭 후 찾기를 원하는 색상에 클릭하면 동일 색깔이 클릭 됩니다. 그리고 적용하면 똑같은 색깔로 변경해서 적용 가능 합니다.

[Python]리스트 안의 내용 검색 (Numpy, where, search, 값 위치 찾기) [내부링크]

목차 [Python]리스트 안의 내용 검색 리스트의 value(값)을 검색하고 index로 위치 정보를 확인하는 방법으로 파이썬의 넘파이(Numpy)라는 라이브러리에서 제공하는 아래의 method를 사용하시면 됩니다. Numpy.where(조건, 조건에 맞는 값을 바꿀 형태, 조건에 맞지 않는 값 바꿀 형태) 위에서 조건 값만을 입력 할 경우 index 위치 정보만 얻을 수 있습니다. 위 조건 값을 모두 입력할 경우 원하는 조건에 맞추어 리스트(list)안의 값을 변경할 수 있습니다. 아래 예제를 통해 쉽게 이해하실 수 있습니다. Where을 사용해서 값 검색하고 변경도 해보기 검색 예제>> import numpy as np import random a_list = [] for _ in range(10)..

[Python]날짜 더하기 빼기(Numpy, Datetime) [내부링크]

목차 Numpy Dtype Datetime 파이썬의 Numpy라는 라이브러리를 사용해서 데이터 종류를 Datetime으로 설정하면 날짜에 대한 처리를 파이썬에서 할 수 있습니다. 정의 방법은 아래와 같습니다. today = np.array(["2022-01-11"],dtype="datetime64[D]") Numpy에서 데이터 타입 명을 datetime64 라고 설정하면 날짜의 형태로 데이터를 저장합니다. datetime64 라고 사용하는 이유는 datetime 라는 이름은 이미 파이썬에서 사용하고 있어서 Numpy에서는 datetime64를 사용합니다. [D]는 Day를 의미하고 Day 단위로 계산이 가능 합니다. 날짜 더하기 빼기 예제 예제 코드>> import numpy as np Date1 = n..

[Python]Numpy에서 dtype이란? (데이터 종류, Type) [내부링크]

목차 Python Basic Data Type (파이썬 데이터 종류) 파이썬의 데이터 종류는 아래와 같습니다. 정수 실수 Boolean 문자열(string) 복소수 아래는 데이터 종류를 확인하는 예제입니다. 파이선 데이터 종류 확인 예제코드>> print(type(1)) print(type(1.1)) print(type(True)) print(type("hi")) print(type(1+1j)) 결과>> Numpy Data Type (넘피 데이터 종류) 다음은 파이썬의 라이브러리 넘파이(Numpy)에서 제공하는 데이터 종류에 대해 알아 보겠습니다. integer, 표기방법: i Unsigned integer, 표기방법: u float, 표기방법: f complex, 표기방법: c boolean, 표기방법..

[Python]리스트와 Numpy 배열 슬라이싱 방법 (List, slicing, 나누기) [내부링크]

목차 [Python]리스트와 Numpy 배열 슬라이싱 방법 : Syntax 리스트(List)나 Numpy 배열을 조각 내거나 합칠 때 Index 를 사용해서 할 수 있고 동일한 문법이 적용 됩니다. 인덱스(Index) 값은 아래와 같이 정의 됩니다. [start:end] [start:end:step] 콜론으로 2개만 값이 들어가면 시작점과 끝점이고 1개가 더 있을 경우는 step 간격으로 시작 끝점을 표기 한것 입니다. 아래 예제를 통해 이해해보도록 하겠습니다. [Python]리스트와 Numpy 배열 슬라이싱 방법 : [start : end] 예제 코드>> import numpy as np import random a_list = [] for _ in range(10): a_list.append(rand..

[Python]리스트안의 동일 값 개수, 집합, 정렬하기(Numpy.unique) [내부링크]

목차 Numpy Unique 란? 앞서 포스트에서 Numpy를 사용하면 시간을 절얄하고 왜 효율적인지에 대해 설명하였습니다. 이번장에서는 Numpy로 사용할 수 있는 효율적인 함수에 대해 알아보겠습니다. Unique() Numpy Unique 는 Numpy 배열의 값을 검색해서 동일 값을 정리해거나, 정렬, 개수 확인 등을 해줍니다. Sytax는 아래와 같습니다. numpy.unique(배열값, return_index=False, return_inverse=False, return_counts=False, axis=None) 내부에 option 값은 아래 예제를 통해 쉽게 이해하도록 하겠습니다. 리스트(list) 안의 정렬하고 동일 값(Same value, element) 구하기 return_index ..

[C++언어]예외 처리 방법 (try, catch, throw) [내부링크]

목차 [C++언어]예외 처리 방법 (try, catch, throw) 파이썬에서 예외 처리 방법으로 try와 except 를 사용합니다. try에서 구문에 에러가 발생해도 except로 넘어가서 처리를 할 수 있게 도와 줍니다. 하지만 C 언어의 try, catch, throw는 파이썬과 달리 문법에 에러가 있으면 진행은 되지 않고 try 안에 프로그램을 테스트 하기 위해 사용 됩니다. 간단하게 설명하면 try 안에 내가 작성한 코드가 원하지 않는 방향으로 진행 되면 진행 방향에 throw를 통해 값을 던지고 catch에서는 그 값을 잡아서 원하는 형태로 출력 해 줍니다. try, throw, catch를 다시 설명하면 아래와 같습니다. try : try 내부에 시험할 코드 블럭을 넣습니다. throw ..

[Python]큰 용량(사이즈) 데이터 셋 처리 방법과 처리 시간 비교 [내부링크]

목차 [Python]리스트에 값이 많을 경우 효율적으로 처리하기 통계나 빅데이터, 머신러닝 등 처리하고자 하는 입력값의 크기가 큰 경우들이 있습니다. 데이터의 정렬이나 출력등 모든 값들을 불필요하게 다 꺼내서 처리하면 시간이 많이 소요 됩니다. 하지만 Numpy 라이브러리를 사용해서 데이터를 처리하면 불필요한 정보는 효율적으로 생략하고 처리에 필요한 과정만 진행합니다. 일반 리스트로 값을 처리하면 파이선의 type을 확인하면 아래와 같이 클래스 list 이지만 numpy의 경우는 ndarray로 처리 됩니다. [Python]큰 용량(사이즈) 데이터 셋 처리 방법과 처리 시간 비교 예제 아래 예제 코드를 보시면 numpy를 사용한 데이터 처리가 왜 유용한지 확인할 수 있습니다. 예제 코드>> import ..

[C++언어] 원하는 경로에 파일 읽고 쓰기 (Path, File Write/Read) [내부링크]

목차 [C++언어] 파일에 쓰기 C++프로그래밍에서 파일을 작성하거나 읽기 위해서는 아래 라이브러리가 있어야 합니다. fstream : ofstream + ifstream ofstream은 파일을 만들거나 쓸 때 필요한 라이브러리이고 ifstream은 파일을 읽을 때 필요한 라이브러리 입니다. fstream은 ofstream과 ifstream을 다 포함한 라이브러리 입니다. 파일에 쓸 때는 쌍꺽쇠 ( #include #include using namespace std; int main() { ofstream file_op("test.txt"); file_op > [C++언어] 파일에 읽기 위에서 작성한 파일을 불러와서 읽어 보도록 하겠습니다. 예제 코드>> #include #include #include..

[Python] Percent, Percentile 이란? 파이썬으로 쉽게 구해보기 [내부링크]

목차 Percent, Percentile 이란? Percentile 이란 우리나라말로는 백분위라고 합니다. 통계에서 주로 사용되는 용어로 간단하게 말하면 전체 데이터를 100이라고 하면 백분위를 구하고 싶은 값을 x라고 하면 x 미만에 놓여 있는 사례가 전체 100중에 몇인가가 백분위(Percentile)이라고 할 수 있습니다. 예를들어 한반에 30명이 있고 165cm의 백분위를 구하면 165cm 미만의 학생의 수를 30명으로 나누고 100을 곱하면 백분위가 됩니다. Percent는 백분율이라고 합니다. 전체 수량에서 백분율을 구하고 싶은 데이터가 전체 수량에서 차지하는 비율입니다. 비율에 100을 곱하면 백분율이 됩니다. 파이썬으로 Percentile, Percent 예제 구현하기 Percentile ..

삼성 Free Style 빔프로젝터 CES 출시, EKASN 빔 프로젝터 [내부링크]

목차 삼성 Freestyle 빔프로젝터 이번 미국에서 열린 CES에서 삼성이 배럴 형태의 Freestyle 빔프로젝터(Projector)를 선보였습니다. 1080p 의 이 프로젝터는 현재 선주문 가격으로 $899에 제공한다고 합니다. 빔프로젝터의 스펙도 스펙이지만 위 그림과 같이 이동성이 뛰어나고 쉽게 회전이 가능해서 설치가 쉽습니다. 그리고 내부에는 스피커가 내장되어 있고 음성인식을 지원 합니다. 무엇보다 디자인이 젊은 감성을 자극해서 사람들을 끌어 들입니다. 무게는 0.83kg으로 상당히 가볍습니다. 그리고 오토 포커스와 오토 레벨, 오토 키스톤(왜곡된 화면을 자동으로 보정해 주는 기술) 이미지를 제공 합니다. 그리고 반투명 렌즈캡을 사용해서 무드 조명등처럼 사용이 가능 합니다. 내장된 스피커는 36..

[Python] 리스트에서 가장 많이 나온 값 찾는 scipy의 mode (반복 횟수) [내부링크]

목차 [Python] Scipy.stats mode함수 파이썬의 라이브러리 중에 Scipy는 수학적 계산을 돕는 라이브러리 입니다. Scipy 내에 통계 관련 stats이 있고 stats에서 mode라는 함수가 있습니다. mode 함수는 입력 값으로 받은 list 값 중에 가장 많이 반복되어 나온 값을 출력하고 몇번 반복되었는지를 알려 줍니다. 사용법은 아래와 같습니다. stats.mode(리스트 입력값) 출력 값은 ModeResult 클래스로 나오므로 배열을 사용해서 원하는 값을 불러 올 수 있습니다. 아래 예제를 통해 쉽게 이해하실 수 있습니다. [Python] 리스트에서 가장 많이 나온 값 찾기 예제 코드>> import random from scipy import stats a_list = [] ..

[Python]지수승 불러오고 계산하기(Exponential Number, Nano, Pico, Micro, Milli, etc..) [내부링크]

목차 [Python]지수승 불러오기 파이썬의 라이브러리 중에 Scipy라는 라이브러리에서 다양한 수학에 대한 값들을 제공 합니다. 그 중에 10^x 승과 같이 여러 x 값에 대한 값을 쉽게 불러 오고 수식적으로도 처리 할 수 있게 도와 줍니다. Scipy에서 제공하는 지수 값들은 아래와 같습니다. yotta : 10^24 zetta : 10^21 exa : 10^18 peta : 10^15 tera : 10^12 giga : 10^9 mega : 10^6 kilo : 10^3 hecto : 10^2 deka : 10^1 deci : 10^-1 centi : 10^-2 milli : 10^-3 micro : 10^-6 nano : 10^-9 pico : 10^-12 femto : 10^-15 atto : ..

[C++언어]Class의 Protected 수정, 출력하여 사용하는 법 (예제 포함) [내부링크]

목차 [C++언어]Class의 Protected 수정, 출력하여 사용하는 법 앞서 포스트에서 상속(Inheritance)에 대해 알아 보았습니다. https://scribblinganything.tistory.com/435 [C++언어] 상속이란? 예제로 살펴보기(Inheritance) 목차 [C++언어] 상속이란? 상속이란 부모 클래스(Base Class)와 자식 클래스(Derived Class) 두개의 클래스가 있을 때 자식 클래스에서 부모 클래스의 method 나 attribute를 물려 받아서 동일하게 가지는 것 scribblinganything.tistory.com 이번에는 상속을 사용해서 Protected로 보호되고 있는 값을 불러오거나 수정하는 방법에 대해 알아 보겠습니다. protected..

[C++언어] 상속이란? 예제로 살펴보기(Inheritance) [내부링크]

목차 [C++언어] 상속이란? 상속이란 부모 클래스(Base Class)와 자식 클래스(Derived Class) 두개의 클래스가 있을 때 자식 클래스에서 부모 클래스의 method 나 attribute를 물려 받아서 동일하게 가지는 것을 의미 합니다. 상속은 : (콜론)을 사용해서 전달 합니다. : (콜론)으로 상속 정의 정의된 클래스의 속성과 메소드를 가져옴 [C++언어] 상속 예제 코드>> #include #include using namespace std; class family { public: string address = "Seoul"; }; class son : public family { public: int olds = 16; }; int main() { son James; cout

테슬라 2021년도 (배달 완료)전기차 판매량 (Tesla delivered in 2021) [내부링크]

테슬라 2021년도 (배달 완료)전기차 판매량 (Tesla delivered in 2021) 테슬라에서 발표한 보고서에 따르면 2021년 전체 판매되고 고객에게 전달된 배달량이 936,172 대로 최고 신기록에 도달하였다고 발표하였습니다. 이는 2020년 판매 완료 대수 499,550대에서 약 87% 증가된 수치라고 합니다. 21년 마지막 4분기에서 308,600 대로 20년의 4분기에서 241,300 대 증가한 수치 입니다. 4Q 모델별 판매 완료양은 아래와 같습니다. 모델S, X (Model S, X) : 11,750 모델3, Y (Model 3, Y) : 296,850 테슬라에서는 매년 약 50퍼센터의 판매량을 증가하겠다고 발표하였고 이번 판매는 이미 목표치를 상회하였습니다. 지난 11월 테스라 C..

[Wireshark]와이어샤크로 특정 raw 패킷 검색하기 (Byte Filter, Contains) [내부링크]

목차 [Wireshark]와이어샤크로 특정 패킷만 검색하기 이번 포스트에서는 텍스트 베이스가 아닌 바이트(Byte)를 필터링 해서 원하는 패킷을 찾는 방법에 대해 알아보겠습니다. 예제를 통해 바로 알아보겠습니다. 우선 제가 찾을려는 조건은 아래와 같습니다. 해당 패킷은 HTTP층을 가지고 있다. HTTP층에 "http"라는 문자와 "issue"라는 문자를 포함하고 있다. 위 조건을 찾기 위해서는 http와 issue에 해당하는 바이트 값을 ASCII를 통해서 알아보아야 합니다. ASCII는 아래 링크를 참조하시길 바랍니다. https://ko.wikipedia.org/wiki/ASCII ASCII - 위키백과, 우리 모두의 백과사전 1972 프린터 사용 설명서에 개시된 아스키 코드 차트표 미국정보교환표준..

[Wireshark]와이어샤크 디스플레이 필터 유용한 팁 및 예제 (Display Filter) [내부링크]

목차 Wireshark Display Filter 란? 와이어샤크에서 제공하는 필터 중에 대표적으로 아래와 같이 2가지 종류가 있습니다. Display Filter Capture Filter 두 필터는 표현부터 다릅니다. 표현 그대로 Capture filter는 필터링된 캡처만 저장합니다. 그렇기 때문에 와이어 샤크 저장파일 PCAP의 파일 사이즈가 줄어 듭니다. Display filter를 사용할 경우 캡쳐는 정상적으로 다 하지만 보이는 화면 (Display)에서 필터링된 정보만을 보여주는 차이가 있습니다. 표현 방식도 tcp.port = 443 으로 Display filter에서 사용하지만 Capture filter에서는 tcp port 443 으로 표현 합니다. Wireshark Display Fi..

[C++ 언어] 캡슐화란? Private 사용 방법 (Encapsulation) [내부링크]

목차 C++ Programming 캡슐화란? (Encapsulation) 앞서 포스트에서 public과 private에 대해 알아보았습니다. public의 사용방법은 알았으나 private의 실제 예제에 대해서는 다루지 않았습니다. https://scribblinganything.tistory.com/425 [C++언어] Public, Private 차이와 사용방법 목차 [C++언어] Public 정의 및 예제 Public은 한글로는 접근 지정자라고하고 영어로는 Access Specifier라고 합니다. 즉, 접근하는 방법에 대한 정의를 내려주는 단어 입니다. Class(클래스)의 Atribute나 metho scribblinganything.tistory.com 캡술화는 private의 사용과 관련되어..

XBOX 20주년 기념 아디다스 + 마이크로소프트 합작 신발 출시 (Adidas, Microsoft) [내부링크]

아디다스와 마이크로소프트가 XBOX 20주년 기념해서 합작해서 3종류의 신발을 미국에서 출시하였습니다. 이전 출시 제품과는 다르게 이번 Forum Tech Boost Series X는 전세계에 판매할 예정이라고 합니다. 판매는 아디다스와 리테일 샾에서 판매한다고 합니다. 현재 마이크로소프트 웹페이지에서 $140에 판매하고 있습니다.(https://www.microsoft.com/en-us/d/adidas-xbox-forum-tech-boost-shoe/8t7hzk8kpwt6) 전체 디자인과 색상은 XBOX의 특징을 따라서 제작하였습니다. 녹색 라인은 XBOX의 팬의 환기 부분을 모사하였습니다. 바닥 부분 반투명 바닥재는 20th XBOX 컨트롤러를 참조 하였다고 마이크로소프트에서 밝혔습니다. 아래는 최근..

[C++언어]Method와 ::(쌍클론,범위 지정 연산자, Scope resolution operator) [내부링크]

목차 C++ Programming에서 method란? 내부 정의 방법 method란 클래스(Class)에 속해 있는 함수(Function) 입니다. 클래스에 속하기 위해서는 2가지 방법이 있습니다. 클래스 내부에서 함수 정의 클래스 외부에서 함수 정의 내부에서 정의하는 방법이 가장 일반적이고 설명 보다는 아래 예제 코드를 보면 쉽게 이해할 수 있습니다. #include using namespace std; class EX_class { public: void EX_method() { cout > hi C++ Programming에서 method 외부 정의 방법, (::) 사용하기 외부 정의하는 방법은 아래 규칙을 따라야 합니다. 1. Class 내부에 외부에 정의할 함수 선언하기(Declare) 2. C..

미국 개인 소비지출 지수와 나스닥, 다우 비교해서 보는 법(PCE 확인 하기) [내부링크]

목차 미국 개인 소비지출 지수(PCE Index) 확인하는 방법 미국 개인 소비지출 지수는 PCE(Personal Consumption Expenditures)라고 합니다. 미국 사람들의 소비 정도를 매달 파악할 수 있는 지표 입니다. 일반적으로 소비가 증가하면 그만큼 생산을 더 해야 하므로 제조 증가는 후행적으로 따라 옵니다. 아래 링크를 통해 PCE를 확인할 수 있습니다. https://fred.stlouisfed.org/series/PCE Personal Consumption Expenditures Source: U.S. Bureau of Economic Analysis Release: Personal Income and Outlays Units: Billions of Dollars, Seasona..

무료 증권사 리포트 확인할 수 있는 사이트들 (한경, 네이버) [내부링크]

목차 평소에 증권사 리포트를 살펴 볼때 사용하는 사이트들입니다. 한경 컨센서스 사이트 주소는 아래와 같습니다. http://consensus.hankyung.com/ 메인화면은 아래와 같이 나옵니다. 여기서 "전체 Report" 를 클릭 합니다. 그러면 산업 전체의 최신 리포트를 확인할 수 있습니다. 그리고 상단에 보시면 검색창이 나오는데 검색기간과 검색하고 싶은 회사명을 입력하시면 원하시는 증권사 보고서를 확인할 수 있습니다. 아래는 "네이버"에 대한 검색 결과 입니다. 네이버 증권 (Naver Finance) 네이버 증권의 리서치 보고서 검색은 아래 주소에서 가능 합니다. https://finance.naver.com/research/ 접속을 하면 왼쪽 상단에 다음과 같은 리서치가 분류되어 있습니다...

[C++언어] Public, Private 차이와 사용방법 [내부링크]

목차 [C++언어] Public 정의 및 예제 Public은 한글로는 접근 지정자라고하고 영어로는 Access Specifier라고 합니다. 즉, 접근하는 방법에 대한 정의를 내려주는 단어 입니다. Class(클래스)의 Atribute나 method에 접근(Access)하는 방식에 대한 설명입니다. 여기서 Public은 Class 내부나 외부 어디든 접근이 가능 합니다. #include using namespace std; class Auto_maker { public: string a_var; }; int main() { Auto_maker hyundai; hyundai.a_var = "sonata"; // Allowed (x is public) cout sonata [C++언어] Private 정의 ..

[C/C++언어] OOP, Class, Object란? (Object Oriented Programming, 클래스, 객체) [내부링크]

목차 OOP란? (Object Oriented Programming) OOP는 Object Oriented Programming의 약자로 객체지향 프로그래밍이라고 합니다. Object Oriented Programming 은 객체(Object)를 만듭니다. 그리고 객체(Object)는 함수(Function)와 데이터(Data)를 포함 합니다. 반면에 Procedural Programing이란 절차지향 프로그래밍이라고 부르고 C언어가 대표적입니다. 말 그대로 순차적으로 프로그램을 처리하는 방식 입니다. 절차지향 프로그래밍의 단점은 순서대로 처리하기 때문에 중간에 오류를 수정하기가 어렵고 수정 후 결과에 영향을 주기 때문에 디버깅(Debugging)이 쉽지 않습니다. 반면에 객체지향 언어는 앞서 말한바와 같..

[Python]tkinter Entry위젯 method, option 사용법(Widget) [내부링크]

목차 파이썬 tkinter Entry 위젯(Widget) Entry 위젯 선언은 아래와 같이 진행 합니다. from tkinter import * app = Tk() en_ex = Entry(app, width=100) en_ex.pack(fill="x", padx=1, pady=1) app.title('scribblinganything.tistory.com') app.mainloop() 결과>> 1번 라인: tkinter를 import 합니다. 3번 라인: Tk()를 사용해서 tkinter를 app에 선언합니다. 4번 라인: Entry 라이브러리를 사용해서 en_ex에 선언합니다. 5번 라인: pack method를 사용해서 구현합니다. 예제를 통해 Entry의 사용법과 결과가 어떻게 나오는지 알아 보..

모베드(MobED), 현대차에서 공개한 소형 모빌리티(Mobility) [내부링크]

목차 현대 자동차 : 모베드(MobED) 현대 자동차는 지금까지 차량 개발에 집중 했지만, 이번에 선보이는 모베드(MobED)는 평소보다 훨씬 작은 소형 모빌리티 장치 입니다. 올해 CES에서 발표한 MobED라는 이름의 4륜 로봇은 택배부터 텔레비전, 서빙에 이르기까지 다양한 운반을 해줍니다. 모베드(MobED)는 67 x 60 크기로 각 악셀 끝에 3개의 모터(Motor)를 통해 독립적으로 제어할 수 있는 4개의 12인치 공압 타이어가 달려 있습니다. 서스펜션 시스템은 중앙 플랫폼이 어느 방향으로든 기울어질 수 있게 유지해주고, MobED가 경사로를 오르내릴 때 상품의 위치를 유지하고 화물의 각도를 조절해 줍니다. MobED가 정확히 무엇에 사용될지는 구체적으로 정해지진 않았지만 사용자의 자율에 ..

[Python]tkinter Frame과 Option 값 사용 예제(bg, bd, cursor, height, highlightbackground, highlightcolor, highlightthickness) [내부링크]

목차 파이썬(Python) 프레임(Frame) 이란? Frame 위젯(Frame)은 GUI 구성에서 중요한 요소입니다. 건물의 층과 같이 Frame을 사용해서 층을 구성하고 내부를 pack이나 grid를 사용해서 집들을 넣는 식으로 GUI도 구성이 가능 합니다. 사용 방식은 아래와 같습니다. Frame (master,options) mater는 부모가 되는 윈도우(Window)를 의미합니다. frame 안에 새로운 frame을 넣는 것도 가능 합니다. option은 아래와 같습니다. 예제와 함께 하나씩 사용 방법에 대해 알아 보겠습니다. bg bd cursor height highligtbackground highlightcolor highlightthickness relief width 우선 예제 코드..

[C/C++언어]함수 입력 값, Function(input, &input, input=x) [내부링크]

목차 함수 입력값: 파라미터(Parameter), 인자(Argument) C/C++ 언어에서 함수를 정의하고 함수에 입력값을 받을 수 있습니다. void function명(파라미터, 파라미터) { 코드 } int main() { function명(인자, 인자); return 0; } 구조는 위와 같습니다. void는 함수의 return 형태를 결정합니다. 파라미터(Paramter)는 위와 같이 정의 부분에 작성해주고 인자(Argument)는 실제 입력값을 의미 합니다. 파라미터를 선언할때 사용할 수 있는 방법들이 몇가지 있습니다. 초기값(Default Value) 설정 여러 파라미터 입력 참조(Reference, &, And표시)를 사용한 파라미터 입력 위 방법들은 아래 예제 코드와 결과를 통해 쉽게 이..

[Python] tkinter 그리드 Option (padx, pady, ipadx, ipady, sticky, columnspan, rowspan, Grid) [내부링크]

목차 [Python] tkinter Grid Option 파이썬 그리드의 입력 값으로 아래와 같은 Option을 적용할 수 있습니다. row : 열 개수 column : 행 개수 ipadx, ipady : 위젯(widget) 경계선 안으로의 픽셀(pixel) 패드 값 padx, pady : 위젯(widget) 경계선 밖으로의 픽셀(pixel) 패드 값 rowspan : 열 합치기 column : 행 합치기 sticky : 위젯(widget)이 row, column이 가리키는 셀(cell)크기 보다 작을 경우 N, E, S, W, NE, NW, SE, SW를 사용해서 붙임 위 옵션에 대한 설명은 예제 코드를 보면 쉽게 이해할 수 있습니다. [Python] tkinter Grid Option 예제 적용 우선..

[Python]tkinter로 파일 업로드 윈도우 만들기(File upload, window, download) #2 [내부링크]

목차 tkinter 경로(Path) 정보 가져 오기, 파일 복사하기 앞서 포스트에서 파일(File) 업로드를 위한 윈도우 창을 디자인 하였습니다. https://scribblinganything.tistory.com/417 [Python]tkinter로 파일 업로드 윈도우 만들기(File upload, window, download) #1 목차 [Python]tkinter로 파일 업로드 윈도우 만들기#1 - 진행 방법 이번 장에는 파일 업로드를 위한 window 창(팝업창)을 디자인 합니다. (Design) 다음 포스트에서 디자인된 창을 통해 함수를 적용해서 파 scribblinganything.tistory.com 이번 장에서는 디자인을 이용해서 파일을 불러오고 불러온 파일의 경로를 저장하고 다른 폴더..

[Python]tkinter로 파일 업로드 윈도우 만들기(File upload, window, download) #1 [내부링크]

목차 [Python]tkinter로 파일 업로드 윈도우 만들기#1 - 진행 방법 이번 장에는 파일 업로드를 위한 window 창(팝업창)을 디자인 합니다. (Design) 다음 포스트에서 디자인된 창을 통해 함수를 적용해서 파일을 받아오면 해당 파일을 특정 폴더로 옮기는 작업을 합니다. (Function) [Python]tkinter로 파일 업로드 윈도우 만들기#1 - 코드 실행 코드>> from tkinter import * app = Tk() en_filepath = Entry(app, width=100) en_filepath.pack(fill="x", padx=1, pady=1) fr_bt = Frame(app) fr_bt.pack(fill="x", padx=1, pady=1) bt_upload =..

[C/C++]포인터(*,Pointer)와 참조자란?(&, reference) [내부링크]

목차 [C/C++ 언어] 참조자란?(&, reference) C언어 코딩을 보다 보면 변수 앞에 & 기호가 붙어 있는 경우를 종종 볼 수 있습니다. 여기서 &기호를 변수에 붙힌 것을 참조자라고 합니다. 코드>> #include using namespace std; int main() { int a_var = 100; int &b_var = a_var; int &c_var = b_var; cout

[C++언어] 정수, 실수를 문자열로 변경하기(int, float, double to string) [내부링크]

목차 [C++언어] 정수, 실수를 문자열로 변경하기 (int, float, double to String) 앞서 포스트에서 변수의 정의 및 종류 등에 대해 살펴 보았습니다. 이번 포스트는 정수나 실수를 string으로 선언한 변수에 넣는 방법에 대해 살펴 보겠습니다. to_string 함수를 사용하면 실수와 정수를 문자열로 변경할 수 있습니다. to_string 함수(Function) Syntax #include return받을 string 변수명 = to_string(입력 변수명); to_string 함수를 사용하기 위해서는 string 헤더 파일을 include 해야 합니다. 입력 변수명에는 정수나 실수 값을 입력하시면 됩니다. return받을 string 변수명은 미리 string으로 선언한 변수명..

[Python]tkinter 그리드 빈 칸 만들기(Grid, Space, Blank) [내부링크]

목차 [Python]tkinter 그리드 빈 칸 만들기: 함수 정의 설명 grid 사용법에 대해 알고 싶으시면 아래 링크를 참조 하시길 바랍니다. https://scribblinganything.tistory.com/293 파이썬 tkinter - grid란? (간격, 배치, 정렬 방법) 예제로 쉽게 이해하기 Python tkinter grid란? grid는 우리가 일반적으로 사용하는 엑셀처럼 행(row)과 열(column)의 번호를 이용해서 text, label, button 을 배치하는 작업이다. 아래 예제 작업에서 버튼으로 예제를 시행할 것이다.. scribblinganything.tistory.com grid는 기본적으로 column 과 row의 번호를 설정하여 지정 합니다. btn_0 = But..

[C++언어] 문자열 정수, 실수로 변경하기(string to int, float, double, stringstream) [내부링크]

목차 [C++언어] 문자열 정수, 실수로 변경하기 (String to int, float, double) 앞서 포스트에서 변수의 정의 및 종류 등에 대해 살펴 보았습니다. 이번 포스트는 string으로 변수 선언하여 만든 문자열을 정수나 실수로 바꿔서 사용하는 방법에 대해 살펴 보겠습니다. stringstream 클래스를 사용하면 string을 실수와 정수로 변경할 수 있습니다. stringstream 클래스(Class)란? 문자열을 입력으로 받아서 해당 문자열을 변환하고자 하는 변수와 연결해서 사용할수 있습니다. stringstream 클래스를 사용하기 위해서는 sstream 헤더파일을 include 하여야 합니다. stringstream 클래스(Class) Syntax #include stringst..

[C/C++]연산자(Operator) 정리표 (비트, 논리, 산술 +=&^<<>>%~!) [내부링크]

목차 논리 연산자(Logical operator) 연산자(Operator) 의미(Description) 예제(Example) && 모두 같으면 true를 return (a-3) && b || 하나만 true 면 true를 return a >3 || b > 오른쪽으로 비트 이동, 빈 곳은 0 x>>5

[C/C++] 변수 선언 조건, Constant(const) 사용 방법 [내부링크]

목차 C/C++언어 변수 선언 조건 변수명을 정할 때는 아래의 법칙(Rule)을 따라서 형성해야 합니다. 변수명에는 문자, 숫자, _(underscore)를 사용해서 만들 수 있습니다. _(underscore)로 시작하거나 하나만으로도 변수를 만들 수 있습니다. 변수명은 대문자, 소문자를 구분 합니다. (a_var, A_var 다르게 인식) 변수명은 띄워쓰기나 특수문자(ex, !@#)를 넣으면 안됩니다. Reserved된 단어를 변수로 사용할 수 없습니다. (ex. int, char) 예제 코드>> #include using namespace std; int main() { int __ = 3; int a_var = 4; int A_var = 5; cout

[C++]변수 종류, 크기, 범위, 예제로 변수 확인(Variable Type, Size, Range) [내부링크]

목차 C++ 언어 변수 종류, 크기, 범위 (Variable Type, Size, Range) 변수는 데이터를 저장하는 공간 입니다. 데이터 사이즈와 타입에 맞춰 효율적으로 변수를 선언해야 합니다. C++에서 사용하는 기본 변수는 아래와 같습니다. 운영체제(Operating System, OS) 32비트 기준입니다. 아래 범위는 signed 기준으로 unsigned 의 범위는 0~2^(바이트크기)로 생각하시면 됩니다. bool true/false 1byte 범위 : true / false int 정수형 4byte 범위 : -2,147,483,648 ~ 2,147,483,647 __int8 정수형 1byte 범위 : -128 ~ 127 __int16 정수형 2byte 범위 : -32,768 ~ 32,767..

Visual Studio/ VS Code 선택 영역 주석 처리 방법(Python, C언어, HTML) [내부링크]

목차 Visual Studio C/C++ Programming 주석 처리 C언어에서 주석 처리는 간단하게 // 를 앞에 두면 됩니다. 선택 영역을 주석 처리하고 싶을 경우 아래 단축키를 사용 하시면 됩니다. Ctrl + K + C 주의 하실 점은 위 키를 순차적으로 누르셔야 한다는 것입니다. #include int main() { //char a_var[10]; //std::cout > a_var; //std::cout

[C/C++]C++의 std, 콜론, 꺽쇠(화살표), iostream, endl의 의미(::, <<,>>) [내부링크]

목차 C++ 기본 구조 Visual Code 를 실행하면 기본적으로 나오는 Hello World 출력 예제가 있습니다. 기본 구조를 변형해서 구조에 대해 설명할 예정입니다. 기본은 헤더 파일과 main 함수로 이루어 져있습니다. 헤더파일(Head file) 메인함수(Main function) C언어와 다르게 C++에서는 헤더 파일의 확장자(*.h)를 생략합니다. 그리고 실행을 하면 main 함수를 동작 합니다. 기본 구조는 아래와 같습니다. #include using namespace std; int main() { cout > #include int main() { char a_var[10]; std::cout > a_var; std::cout

[C/C++]Visual Code설치, C언어 Hello 예제 실행 [내부링크]

목차 Visual Code(VS Code) 윈도우(Win10)에 설치하기 1. https://visualstudio.microsoft.com/ko/ 사이트에 접속 후 아래에 "Community 2022"를 다운로드(Download) 합니다.. 2. 다운로드가 완료 되면 설치를 시작합니다. 설치 중간에 로그인을 하라고 하면 로그인 안해도 되니 건너 뛰고 설치하시면 됩니다. 설치 완료 후 아래 그림과 같이나오면 시작을 클릭합니다. Visual Code(VS Code) 윈도우(Win10)에 설치 후 C언어 실행하기 1. 설치 완료 후 Visual Code를 실행하면 아래와 같이나옵니다. 새 프로젝트 만들기를 클릭 합니다. 2. 콘솔(Console)로 결과를 확인하기 위해 아래와 같이 콘솔 앱을 선택합니다. 3..

[Bootstrap] HTML에 댓글창 추가하기 [내부링크]

목차 기본 Templates 구성하기 이번에는 기존에 가져온 무료 Bootstrap(부트스트랩) Templates에 댓글(Comment)창을 추가하려고 합니다. 기본 Templates 구조는 블로그 형태 입니다. 무료 Templates를 가져와서 사용하는 방법은 아래 링크를 참조 하시면 됩니다. https://scribblinganything.tistory.com/404 [Bootstrap] Templates 무료 예제로 Flask와 연동하기 목차 Templates 무료 예제 다운(Download) 받기 우선 Bootstrap으로 만든 HTML 무료 예제를 다운 받습니다. 이번 예제에 사용할 Template는 아래 링크에서 가져 왔습니다. https://startbootstrap.com/template/..

[Javascript] Jquery 기본 구조와 선택자(Selector) [내부링크]

목차 Jquery 기본 구조 Jquery는 Javascript를 기본으로 만들어진 라이브러리로 보시면 됩니다. Javascript의 복잡한 기능을 사용자가 사용하기 편하게 단순하게 만들었다고 보시면 됩니다. 우선 Jquery를 사용하기 위해서는 라이브러리를 불러와야 합니다. 마치 파이썬(Python)에서 라이브러리(Library)를 사용하기 위해 import를 하는 것과 마찬 가지 입니다. Jquery를 사용하고자 하는 HTML 문서의 사이에 아래와 같이 선언해 줍니다. 다음은 Jquery 사용 기본 골격입니다. 2번 라인: DOM 즉, html 문서가 준비 되면 function() 을 시행합니다. 3번 라인: $(selector).action() 으로 selector는 한국말로는 선택자로 HTML 문서..

[Bootstrap] Templates 무료 예제로 Flask와 연동하기 [내부링크]

목차 Templates 무료 예제 다운(Download) 받기 우선 Bootstrap으로 만든 HTML 무료 예제를 다운 받습니다. 이번 예제에 사용할 Template는 아래 링크에서 가져 왔습니다. https://startbootstrap.com/template/simple-sidebar Simple Sidebar - Bootstrap Sidebar Template - Start Bootstrap Like our free products? Our pro products are even better! Go Pro Today! startbootstrap.com 심플한 디자인이고 각 각 하나의 HTML, JS, CSS 파일로 구성되어 있습니다. "startbootstrap-simple-sidebar-gh-p..

[Python] Pymongo 데이터베이스 생성, 삭제, 변경, 정렬 (Collection, Database) [내부링크]

목차 Pymongo 데이터베이스(Database), 콜렉션(Collection) 생성, 데이터 입력 이번 포스트에서는 Pymongo를 사용해서 MongoDB의 Database, Collection을 생성, 삭제, 변경, 정렬, 추가 하는 예제를 구현할 것입니다. 기본 설치가 되어 있지 않다면 하단에 포스트를 참조 하시고 설치 후 아래 과정을 진행 하시면 됩니다. https://scribblinganything.tistory.com/195 [Python] MongoDB 설치, 파이썬과 연동(robomongo/robo 3t) 목차 Mongodb, robomongo 윈도우에 설치 Mongodb 설치 과정 1. 괄호안의 사이트를 들어가서 아래 그림1과 같이 "On-premises", "platform: Wind..

전기 자전거 리뷰 - FIIDO D11(접이식 전기자전거, 장단점) [내부링크]

목차 전기 자전거 리뷰 - FIIDO D11(접이식 전기자전거) 장점 비용 대비 고 스펙 크루즈 컨트롤 고용량 배터리 쉬운 폴딩 단점 배터리와 의자 분리가 용이(도난의 위험이 있음) 처음에 Fiido D11 배달을 받으면 박스 사이즈에 놀라실 겁니다. 다른 접이식 전기 자전거보다 더 컴팩트한 느낌을 받을 수 있습니다. 아래에 언박스 영상을 링크 걸었으니 참조 하시면 됩니다. https://www.youtube.com/watch?v=2sWC6eOhvLw D11의 참신한 디자인 중에하나는 418Wh 대용량 배터리가 들어간 좌석 기둥입니다. 배터리를 Slow 모드로 충전 시 약 7시간이 걸립니다. Cowboy3라는 전기자전거는 D11에 가격은 2배 이상이고 배터리 용량은 360Wh 를 사용 합니다. 용량이 적..

AI스피커 리뷰(장단점, 영어공부) - 구글 네스트 오디오 (Google Nest Audio) [내부링크]

목차 AI스피커 리뷰(장단점) - 구글 네스트 오디오 (Google Nest Audio) 현재 쿠팡에서 23% 할인된 가격(101,600원)으로 로켓직구 판매를 최저가로 하고 있습니다. 관심있으시면 링크를 통해 확인 해보시면 됩니다. 우선 가격은 기존의 Nest Audio mini (네스트 오디오 미니)와 Home Max(홈맥스)의 중간 가격으로 20년 말에 출시 하였습니다. 홈맥스에 비해 저렴하지만 구글 네스트 오디오는 여러 방면에서 발전하였습니다. 사이지는 크지만 디자인 형태가 심플해서 집 어디에도 어울립니다. 그리고 기존의 구글홈(Google home)보다 사운드 퀄리티가 많이 올라 갔습니다. 그리고 구글 홈 보다 빠르게 소리 명령(Voice Command)에 응답합니다. 영어로 명령을 내리기 때문..

[Python] Flask로 파일 업로드 웹페이지 만들기(werkzeug, files, upload) [내부링크]

목차 Flask 파일 업로드 방법 HTML의 enctype 속성의 값을 multipart/form-data 로 하고 올리고자 하는 파일을 form을 사용해서 특정 URL에 보냅니다. Flask에서는 해당 URL에서 request.files 객체를 사용해서 저장합니다. 파일을 올릴때 werkzeug 라이브러리의 secure_filename 함수를 사용하면 안정적으로 올릴 수 있습니다. werkzeug (벨져크)는 웹서버 interface를 설계할때 규약에 맞춰 설계할 수 있게 도와 주는 툴이라고 보시면 됩니다. 예전 버전은 아래와 같이 import 하였습니다. from werkzeug import secure_filename 하지만 최근 버젼을 사용한다면 아래와 같은 에러 메세지가 나옵니다. ImportE..

[Python] Flask 메세지창 만들기(로그인페이지 예제) (Alert, Flashing, Popup) [내부링크]

목차 Flask 메세지창 함수 사용법 (Message, Popup, Flash, Alert) 어떤 사이트를 들어갈 때 로그인이 안되거나 할때 팝업창에서 "로그인이 필요합니다." 라고 뜨면서 로그인페이지로 이동하는 경험을 대부분 해보았을 것으로 생각됩니다. 이처럼 메세지창을 flask의 flash 함수와 jinja2로 구현할 수 있습니다. flash(message, category) flash의 Syntax는 위와 같습니다. message 항목에 원하는 메세지를 입력 합니다. Category은 Option 항목으로 아래와 같은 타입들이 있습니다. error info wanring 차이는 메세지 창의 형태가 경고냐 에러냐에 따라 아이콘 모양 등이 변형 됩니다. {% with messages = get_fla..

[Python] Flask Redirect, Abort 함수 사용방법, HTTP 상태코드 보내기 예제(Status Code) [내부링크]

목차 Flask Redirect, Abort 함수(Function)이란? redirect 의 기능은 응답 객체를 보내고 사용자(Client)를 원하는 위치로 이동 시켜 줍니다. 함수 사용방법은 아래와 같습니다. redirect(location, statuscode, response) location : 보내고자 하는 위치 statuscode : 300번대 응답 코드 Default는 302번 response : 응답(Response) 시작에 필요한 파라미터 redirect를 일반적으로 url_for와 함께 사용하여 원하는 위치의 함수를 실행 해 줍니다. HTTP status code의 경우 3xx 번의 코드를 보낼 수 있습니다. 3XX는 Redirect 관련 응답입니다. Default로 사용되는 302번의..

[Python] 세션(Session)이란? flask에서 구현해보기(jinja2사용) [내부링크]

목차 세션(Session)이란? 앞서 포스트에서 쿠키(Cookie)에 대해 알아 보았습니다. 쿠키처럼 세션(Session)도 고객의 데이터이고 해당 데이터를 클라인트(Client) 브라우져(Browser)에 저장 해 놓습니다. 세션에서 보관하는 데이터는 flask에 의해 암호화 됩니다. 예를 들어 로그인한 상태에서 볼수 있는 페이지와 로그인이 되지 않은 상태에서 보이는 페이지 구분을 주고 싶을 때 세션에서 기록해서 Jinja2를 사용해서 해당 유져가 로그인 된 사용자인지 구분하여 다른 페이지를 보여 주는 것이 가능 합니다. Flask에서 세션(Session)을 사용하기 위해 필요한 선행 작업 app.secret_key = "My_Key" 앞서 세션이란 flask에서 암호화하여 정보를 client 브라우져..

[Python] Cookie란? flask로 쿠키 연동하기 [내부링크]

목차 Cookie란? 쿠키란 사용자가 특정 서버에 접속했을 때의 정보를 사용자 본인 컴퓨터에 저장하여 사이트를 이용하는 동안 원할한 사용을 위해 해당 데이터를 불러서 사용합니다. Requst 객체는 Cookie 속성을 가지고 있습니다. Dicationary 형태로 저장되고 해당 값은 사용자(Client) 컴퓨터에 저장되는 것입니다. 예를 들어 사용자가 로그인을 하고 ID 값을 전 페이지에서 이용할 경우 매번 ID 값을 전달하는 것은 비효율 적입니다. 그래서 쿠키에 넣고 필요할 때 마다 불러서 사용할 수 있습니다. flask에서 쿠키 값을 사용하려면 아래와 같은 함수들이 필요합니다. make_response() set_cookie() request.cookies.get() make_response 함수와 ..

[Python] Flask, Jinja2 form데이터 출력하기(for문, bootstrap 사용) [내부링크]

목차 [Python] Flask, Jinja2 데이터 출력하기 앞서 포스트에서는 if문을 사용해서 jinja2를 실행하였습니다. [Python] Flask와 Jinja2 사용하여 데이터 주고 받기 목차 [Python] Flask와 Jinja2 사용하여 데이터 주고 받기 앞서 Post 글을 통해서 웹페이지(HTML)에서 백엔드(Back end) 서버로 값을 보낼 때 GET, POST 와 같은 request를 이용해서 값을 전달하였습니다... scribblinganything.tistory.com 이번에는 jinja2를 사용해서 form으로 받은 id, pw 값을 다른 페이지에서 테이블로 출력하는 예제를 실행하겠습니다. 테이블은 bootstrap을 사용해서 꾸밀 생각 입니다. [Python] Flask, J..

[Python] Flask와 Jinja2 사용하여 데이터 주고 받기 [내부링크]

목차 [Python] Flask와 Jinja2 사용하여 데이터 주고 받기 앞서 Post 글을 통해서 웹페이지(HTML)에서 백엔드(Back end) 서버로 값을 보낼 때 GET, POST 와 같은 request를 이용해서 값을 전달하였습니다. jinja2는 백엔드 여기서는 flask를 이용해서 돌리는 서버에서 웹페이지(Web page)로 값을 보낼 때 사용하는 툴입니다. jinja2는 파이썬에서 지원하는 동적 templating으로 사용이 간단합니다. jinja2 Syntax {{ flask에서 보낸 값 }} {% 문법(if,for) 사용 %} {# comment #} 단순히 flask에서 보낸 값을 받을 경우 첫번째 방식으로 HTML 문서에 선언하면 됩니다. 문법이 포함될 경우 2번째 줄과 같이 사용하..

액션캠 리뷰 - DJI Action 2 [내부링크]

목차 액션캠 리뷰 - DJI Action 2 DJI 에서 오스모 액션 카메라 (Osmo Action Camera) 후속작으로 Action 2 를 출시 하였습니다. 기존의 오스모 디자인에서 180도 변경된 디자인을 가지고 왔습니다. 그리고 오스모(Osmo)라는 이름을 빼고 Action2로만 제품명을 변경하였습니다. 모듈의 연결을 자석으로 간편하게 할 수 있는 구조로 변경하였습니다. 위 그림에서 카메라 아래에 8개의 홀이 자석에 거치대는 부분입니다. 카메라 모듈 자체의 사이즈는 39mm x 39mm x 22mm 로 작습니다. 카메라에는 12MP 센서를 포함하여 4K 촬영을 가능하게 해줍니다. 렌즈는 155 도의 필드 뷰까지 허용해 줍니다. OLED 터치 스크린은 1.76인치로 "Gorilla Glass"로 ..

[Python] flask form 값 받기 (GET, POST) [내부링크]

목차 HTTP(Hypertext Transfer Protocol) 프로토콜 이란? HTTP는 인터넷 계층(OSI 7계층)에서 Application에 해당합니다. Request 방법에는 아래와 같이 9개의 방법이 있습니다. HTTP 패킷 안에 Request 정보가 같이 전달 됩니다. Request 종류 GET HEAD POST PUT DELETE CONNECT OPTIONS TRACE PATCH 실제 웹 서버를 설계하면 사용하는 request 는 GET, POST 크게 2개 정도만 사용합니다. 나머지 request에 대한 정보는 검색을 통해 확인하시면 됩니다. HTTP(Hypertext Transfer Protocol) GET GET는 말 그대로 데이터를 받기만 하고 다른 영향은 없습니다. 일반적으로 사용..

[Python] flask 주소 간에 이동 방법 (redirect, url_for) [내부링크]

목차 url_for 란? (인자값이 없는 경우) url_for는 flask 라이브러리에서 제공하는 함수입니다. syntax는 아래와 같습니다. url_for(url에 연결된 함수명, 전달할 인자값) url_for 함수는 함수값을 인자로 받습니다. 그리고 인자값(argument)도 보낼 수 있습니다. 이때 flask의 redirect를 연결해서 사용해야 합니다. 아래 예제를 보시면 쉽게 이해 됩니다. 예제는 인자 값이 없는 경우를 사용해보겠습니다. 코드>> from flask import Flask, redirect, url_for app = Flask(__name__) @app.route('/a_page') def go_a(): return 'This is a_page' @app.route('/c_pag..

[Python] flask 변수 사용 방법(Variables, string,int,float) [내부링크]

목차 [Python] flask 변수 사용 방법 flask 을 사용하여서 url 주소에 들어온 값을 변수(Variable)로 이용하여 파이썬 flask 내에서 해당 변수를 이용할 수가 있습니다. 기본 구조는 아래와 같이 괄호로 표기 합니다. 사용할 수 있는 변수 타입은 아래와 같이 총 3가지 입니다. 문자열(String) 정수(int) 실수(Float) 문자열을 default로 가져가기 때문에 앞서 기본 구조에서 문자열의 경우 변수타입을 입력 안해도 string으로 인식합니다. 하지만 정수와 실수는 변수 타입에 int나 float을 입력 해주어야 합니다. @app.route('/s/') def string_return(string_value): a_var = string_value print(a_var)..

[Python] flask 기본 예제, route(), run()함수 사용방법 [내부링크]

목차 [Python] flask 기본 예제 : route, run 함수 이번 포스트는 flask를 사용해서 간단하게 web server를 동작시키는 방법과 결과를 web browser 를 통해 확인해 보겠습니다. 예제 코드를 살펴 보기 전에 route 와 run 함수에 대해 알아보겠습니다. app.route(rule, options) route 함수의 syntax는 위와 같습니다. 입력값으로 받는 rule은 url의 주소부분이고 options에는 rule 객체의 파라미터 값이 들어 갑니다. app.run(host, port, debug, options) run 함수의 syntax는 위와 같습니다. host에 들어갈 값은 flask를 동작시키면서 모니터링 하고 있을 아이피(IP)에 대한 정의 입니다. De..

블루투스 이어폰 리뷰 - Sony WF1000XM3 (쿠팡 53% 할인 판매, 무선이어폰) [내부링크]

목차 블루투스 이어폰 리뷰 - Sony WF1000XM3 소니(Sony)에서 WF1000XM4를 출시 한 이후 M3에 대한 가격이 대폭 할인되어 판매를 하고 있습니다. 현재 쿠팡에서 53% 할인된 가격 139,000원에 판매 하고 있습니다. WF1000XM3 는 19년 8월에 출시 한 후 노이즈 캔슬링 분야에서 타사에 비해 월등한 성능으로 자리매김을 하였습니다. 디자인에서 깔끔하고 근대적인 디자인을살렸고 배터리 용량도 기존의 제품에서 확장하였습니다. 블루투스 이어폰 리뷰 - Sony WF1000XM3 : 장단점 장점 강력해진 노이즈 캔슬링(Noise Cancellation) 음질 깔끔한 디자인 배터리 용량 단점 방수 지원 안됨 장비 하나만 연결됨 (Multi point 연결안됨) 무선 충전 지원 안됨 이..

[Python] Flask란? (WSGI, Werkzeug, Jinja2, Web framework) [내부링크]

목차 플라스크란? (What is Flask?) Flask란 파이썬에서 사용 가능한 웹 어플리케이션 프레임워크(Web Application Framework)입니다. Pocco라는 파이선개발자 그룹의 Armin Ronacher에 의해 개발되었습니다. Flask는 Werkzeug WSGI 과 Jinja2 엔진에 의해 동작합니다. 가자 많이 사용하는 경우는 웹서버를 동작시킬 때 Backend를 동작시키는 엔진으로 생각하시면 됩니다. 파이썬에서 Flask를 사용해서 Backend 개발을 할 수 있습니다. 웹 어플리케이션 프레임워크(Web Application Framework) 란? 웹 어플리케이션 프레임워크(Web Application Framework)은 웹 엔진을 설계할 때 필요한 라이브러리를 모아놓은 ..

[Python] Pandas 이동평균 함수 사용법 (Rolling) [내부링크]

목차 [Python] Pandas 이동평균 함수 사용법 (Rolling) 파이썬의 판다스에서 제공하는 함수 중에 Rolling이라는 함수가 있습니다. 테이블에 많은 데이터가 있고 전체에 대한 평균이나 최소 최대값을 알고 싶은 것이아니라 Window 창이 이동하듯이 X축의 창을 이동하면서 Y값의 평균 최소 최대 값을 구해야 하는 경우들이 있습니다. 일반적인 코딩은 for문을 여러번 사용하여 복잡하게 계산하지만 Pandas rolling을 사용하게 되면 간단하게 이동하는 윈도우의 수치결과를 얻을 수 있습니다. 참고로 앞서 포스트에서 rolling 함수를 사용해서 30일간 이동 평균 Window를 이동시키면서 코스피 고점 대비 하락률을 계산하고 그리는 예제를 하였습니다. 해당 내용이 궁금하시면 아래 링크 참조..

스마트 시계 리뷰 - 레노버 스마트 클락(Lenovo Smart Clock) [내부링크]

목차 레노버 스마트 클락(Lenovo Smart Clock) 리뷰 현재 쿠팡에서 레노버 스마트 시계를 34% 할인된 가격에(82,030원)판매하고 있습니다. 해외 직구 이기 때문에 통관 번호가필요합니다. 만일 간단한 기능 정도 만을 원한다면 레노버 스마트 시계가 현재 할인가격을 생각한다면 탁월한 선택이 될 겁니다. 사이즈는 79.8mm x 113.88mm x 79.2mm 일반적으로 탁자에 올려 놓는 시계 사이즈를 생각하시면 됩니다. 구글 어시스턴트(Google Assitance)에 스마트 클락을 연결하시면 "Hey Google"로 연결해서 음악 재생, 스케쥴 관리 등을 할수 있습니다. 단점은 해외 직구제품이라 영어로 얘기해야 합니다. 하지만 단점이 될 수 있는 부분은 영어 공부를 한다고 생각하시면 구글 ..

[Python] 네이버 금융 주식 정보 가져오기 (ex. 삼성전자) [내부링크]

목차 [Python] 네이버 금융 주식 정보 가져오기 : pykrx 모듈 소개 BS4나 Selenium이나 Pandas의 html read 함수를 사용해서 주식 정보를 가져오려고 시도 했다면 그 과정이 만만치 않음을 알 수 있습니다. pykrx 모듈은 네이버금융(Naver finance)와 KRX 정보 데이터 시스템에서 주가 정보를 지속적으로 스크래핑(scraping) 하고 Github에서 업데이트 해줍니다. 해당 API를 사용하면 단 한줄로 주가 정보를 쉽게 가져 올 수 있습니다. pykrx의 상세 사용법을 알고 싶다면 위에 링크를 클릭해서 확인하시면 됩니다. pykrx를 사용하기 위해서는 아래와 같이 설치를 해주어야 합니다. pip install pykrx [Python] 네이버 금융 주식 정보 가져..

[Python] yfinance로 고점대비 하락율 그래프 그리기 (코스피, 코스닥, MDD) [내부링크]

목차 [Python] yfinance로 고점 대비 하락율 그래프 그리기 : 배경 지식 yfinance 는 야후파이낸스(Yahoo finance)에 나와 있는 데이터를 파이썬으로 쉽게 이용할 수 있게 만들어진 라이브러리 입니다. 이번 포스트의 목적은 yfinance를 사용해서 코스피(Kospi) 의 1년 간에 종가 데이터를 가져와서 고정 대비 하락율을 계산하는 MDD(Maximum Draw Down)와 DD(Draw Down)을 구해서 matplotlib 라이브러리를 사용해서 그래프로 표현할 생각 입니다. 개인적으로 주식을 하는데 MDD가 6프로 이상 떨어질때 주식을 구입하기 위해 해당 코드를 작성 했습니다. 필요하신 분들은 아래 코드를 통해 성투하시길 바랍니다 ㅎ 앞서 언급한 라이브러리에 대해 자세히 알..

[Javascript] Jquery HTML, TEXT, Atrribute(속성) 변경하기 [내부링크]

목차 [Javascript] Jquery HTML 내용 변경하기 javascript로 만든 Jquery에서 html(바꿀내용)함수를 사용하여서 기존의 내용을 변경할 수 있습니다. 우선 jquery 사용을 위해서 에 아래와 같이 선언해주어야 합니다. 사이에 아래와 같이 함수를 정의 합니다. 3번 라인 : #set_btn 이라는 아이디를 가진 버튼을 클릭할 경우 아래 함수를 실행합니다. 4번 라인 : #id_id의 html 구문을 괄호안의 값으로 변경 합니다. 전체 코드>> 나는누굴까? Set Html 결과>> [Javascript] Jquery TEXT(텍스트) 내용 변경하기 이번에는 앞서 동일 예제의 라벨의 텍스트값만 변경해보겠습니다. 구성은 동일하고 앞서 전체 코드에서 19~23번 라인만 아래와 같이 ..

[Javascript] Jquery HTML, TEXT, Atrribute(속성) 정보 가져오기 [내부링크]

목차 [Javascript] Jquery HTML 불러오기 javascript로 만든 Jquery에서 html()함수를 사용하게 되면 선택자(selector)로 선택된 범위 내에 html 구문 내용을 가져옵니다. 우선 jquery를 사용하기 위해 아이디는 무엇? 비밀번호 Get Html info 결과>> [Javascript] Jquery 텍스트(text)값 가져오기 선택한 태그내의 텍스트 값을 가져 옵니다. 구성은 위에 html 함수와 동일 합니다. 코드>> 아이디는 무엇? 비밀번호 Get Html info 결과>> [Javascript] Jquery 속성(attribute)값 가져오기 attr(속성값) 함수를 사용하여서 속성의 값을 가져옵니다. 구성은 앞 예제들과 동일 합니다. 코드>> 아이디는 무엇..

[Bootstrap]HTML 버튼,라벨,입력창 오른쪽 정렬/배치, 위, 아래 놓기 [내부링크]

목차 [Bootstrap]HTML 버튼(button) 오른쪽 정렬 HTML 문서를 작성하면 버튼(Button), 라벨(Label), 입력창(Input)을 마음대로 배치하고 싶은데, 생각한 위치로 가지가 않는 경우가 많습니다. 가령 오른쪽으로 정렬할 경우 버튼을 오른쪽 끝에 붙여서 아래로 하나 둘씩 배치하고 싶은데 일반적인 방법이 css의 float를 사용하는 방법인데 코드>> 로그인 로그인 이 경우 아래 그림 처럼 아래 위가 아닌 오른쪽에 붙어서 배치가 됩니다. 결과>> 코드 라인1 : bootstrap button class 를 사용해서 버튼을 만들고 style을 이용해서 float로 오른쪽에 배치하였습니다. 이방법이 인터넷에 일반적으로 오른쪽 정렬 방법으로 올라와 있습니다. [Bootstrap]HTM..

즉석 사진기(카메라) 리뷰 - Fuji 인스탁스 미니40(Instax Mini40) [내부링크]

목차 후지필름 인스탁 미니40(InstaX mini40) 리뷰 후지필름(Fujifilm)에서 Instax Mini 라인에 미니40이라는 제품을 추가 하였습니다. 외관은 작년 3월에 출시 한 미니 11과 유사합니다. 미니40은 사용이 편리한 인스턴트(즉석, Instant) 카메라로 2개의 세팅과 2개의 버튼으로만 구성 되어 있습니다. 타사의 즉석 사진기와 구분되는 점은 미니40의 빈티지한 디자인입니다. 플라스틱 Faux 가죽으로 바디 부분을 구성하였고 메탈 처리로 복고 감성을 살렸습니다. 가격은 현재 쿠팡 최저가로 136,000원에 판매하고 있습니다. 하단에 링크 있으니 관심 있으시면 참조 하시면 됩니다. 미니 40의 동작 방식은 미니 11과 유사합니다. 은색의 커다란 버튼을 클릭하면 렌즈 부분이 튀어 나..

[Python] yfinance 함수 사용법 정리 (코스피,테슬라) [내부링크]

목차 [Python] yfinance 함수: 차트 정보 가져오기 파이썬 yfinance 함수를 사용해서 야후 파이낸스(Yahoo Finance)의 차트(Chart)의 주가 정보를 가져오겠습니다. (시작가, 종가, etc). yfinance 는 판다스(Pandas)의 Dataframe 함수를 지원합니다. Pandas는 테이블 형식으로 데이터를 정리하여 여러 처리를 쉽게 해주는 라이브러리라고 생각하시면 됩니다. yfinance의 return으로 나온 결과 값은 dataframe 형태이므로 추후에 데이터 분석을 할 경우 dataframe의 내부 함수들을 알고 있다면 쉽게 변경 사용할 수 있습니다. 코드 실행에 앞서 아래와 같이 라이브러리 설치를 합니다. pip install pandas_datareader p..

[Python] 코스피 1년 차트 그리기(Pandas, Matplotlib) [내부링크]

목차 [Python] 코스피 1년 차트 그리기 : 진행 과정 이번 포스트에서는 지난 1년간의 코스피 차트를 그려볼 예정입니다. 이번 프로젝트를 진행하기 위해 아래와 같은 과정이 필요합니다. 코스피 1년 동안의 차트 데이터 수집 판다스를 이용해서 차트 데이터를 테이블로 정리하기 정리된 테이블 중 비교를 원하는 데이터를 가져오기 그래프로 만들기 데이터 분석하기 1번 과정은 Web Scrawling을 통해서 가능합니다. 웹 스크롤링의 방법은 아래 링크를 참조하시면 됩니다. https://scribblinganything.tistory.com/372 [Python] BS4로 네이버금융 종목분석-재무분석 값 가져오기 목차 [Python] BS4로 네이버금융 종목분석 : 사용 소프트웨어, 설치 이번 포스트에서는 웹..

액션캠 리뷰 - 고프로 히어로10 (GoPro Hero10) [내부링크]

목차 액션캠 리뷰 - 고프로 히어로10 (GoPro Hero10) 작년에 고프로에서 히어로 액션캠 Hero9 를 출시 하였습니다. 전면 스크린과 5K, 배터리 수명 증가 등 많은 기능들이 추가 되었습니다. 올해는 고프로에서 Hero10을 Hero9에 기초하여 출시 하였습니다. 가격은 히어로 9와 유사합니다. 현재 쿠팡에서 최저가로 649,000원에 판매(7%할인)하고 있습니다. 액션캠 리뷰 - 고프로 히어로10 (GoPro Hero10) : 장단점 장점 5.3K 60fp, 4K 120fps Quicker 사진, 동영상 기능 히어로 9 액세서리와 호환 가능 단점 고가 애매한 배터리 수명 고프로에서 주장하는 내용에 따르면 히어로10은 153그램으로 히어로9 (158그램)에 비해 3퍼센트 정도 가벼워 졌다고 ..

[Python] 코스피, 코스닥 값 불러와서 분석하기(pandas) [내부링크]

목차 [Python] 코스피, 코스닥 값 불러와서 분석하기 : 설정 주식에 관심이 많아서 코딩으로 투자에 접목해볼 만한것이 뭐가 있나 생각하던 참에 최근에 사용하고 있던 파이썬의 판다스(pandas)라는 모듈을 가지고 코스피(Kospi), 코스닥(Kosdaq)을 분석 해보려고 합니다. 판다스(Padas)는 최근에 많이 사용되는 라이브러리(Library)로 데이터 분석을 효율적으로 처리해줍니다. 데이터를 엑셀과 같은 테이블에 배치하여 내부 값을 쉽게 처리해줍니다. 가령 최소값(min), 최대값(max), 표준편차(standard deviation), 퍼센트(Percentile)에 따른 값 찾기 등을 명령어 하나로 간단하게 처리 할수 있게 도와 줍니다. 해당 내용에 대해서는 아래에서 다루도록 하겠습니다. 우..

스마트 태그 비교 리뷰 (삼성 SmartTag Plus, 애플 AirTag, 타일 Pro) [내부링크]

목차 스마트 태그 비교 리뷰 위치 찾기 태그가 이제 출시 된지 어느정도 시간이 지났습니다. 타일 프로(Tile Pro)가 스마트 태그 분야에서 가장 알려진 제품이었지만 삼성과 애플이 스마트 태그에 진출하면서 판도가 변경 되었습니다. 지금 스마트 태그 구매를 고려하신다면 아래에 삼성 스마트태그 플러스(SmartTag Plus), 애플 에어태그(Apple AirTag), 타일 프로(Tile Pro)의 장단점을 비교 정리를 확인하시고 결정하시면 됩니다. 삼성 스마트태그 플러스 리뷰 (Samsung SmartTag Plus Review) 우선 삼성 스마트태그 플러스의 장단점부터 언급하자면 아래와 같습니다. 장점 삼성 스마트홈 제품의 리모트 제어 가능 스마트폰의 카메라와 연계해서 AR(증강현실)로 위치 찾아줌 네..

[Python] BS4로 네이버금융 종목분석-재무분석 값 가져오기 [내부링크]

목차 [Python] BS4로 네이버금융 종목분석 : 사용 소프트웨어, 설치 이번 포스트에서는 웹스크롤링(Web scrawling) 기술로 네이버금융의 재무제표 항목들을 가져올 것 입니다. 웹 스크롤링에 이용할 라이브러리는 뷰티풀숩(BeautifulSoup, BS4) 라고 불리는 모듈입니다. 우선 저는 Visual Studio Code 라는 마이크로 소프트웨어에서 출시한 프로그램으로 파이썬을 작성합니다. 만일 설치가 되어있다면 명령 Prompt에 아래와 같이 입력하면 BS4를 설치할 수 있습니다. pip install bs4 우선 정상적으로 설치 되었는지 간단하게 확인하는 방법은 아래와 같이 import를 하고 run 시켜 보면 됩니다. from bs4 import BeautifulSoup 만일 동작을 ..

[Python] Pandas DataFrames이란? 선언, 데이터 찾기, 정렬하기 예제(find, sort) [내부링크]

목차 [Python] Pandas DataFrames이란? 파이썬의 판다스는 데이터 처리에 용이한 라이브러리 입니다. 앞서 설명한 Pandas Series와 마찬가지로 DataFrames은 데이터를 엑셀과 비슷한 방식으로 관리하기 위해 필요한 함수 입니다. Dataframes은 2차원 배열로 행과 열로 구성되어 있습니다. 간단히 설명하자면 우리가 사용하는 엑셀의 대부분의 기능을 Dataframes의 내장 함수를 이용해서 사용할 수 있다고 생각하시면 됩니다. Series와의 차이는 Series는 1차원 배열(array)였고 Dataframes은 2차원 배열이라는 것입니다. 아래는 간단하게 DataFrame 사용에 대한 예제 코드 입니다. 코드 & 결과>> import pandas as pd dict_var..

[Python] String 위치 별 공백 없애기 (strip, replace, re) [내부링크]

목차 [Python] String 공백 없애기 (split()함수) Syntax string.strip(characters) 위 Syntax에서 처럼 string 내용 중에 제거하고 싶은 글자를 characters에 넣으면 됩니다. default 은 blank(빈칸입니다.) strip으로 공백을 제거할 경우 문장 사이는 제거가 안되고 양끝만 제거 됩니다. 예제 코드>> string_ex = " Hi My Name is John " print(string_ex.strip()) 결과>> Hi My Name is John [Python] String 공백 없애기 (replace()함수) Syntax string.replace(oldvalue, newvalue, count) oldvalue에는 바꾸고자 하는 내..

[nslookup] IP로 도메인 주소 찾기, 도메인 주소로 IP 찾기 [내부링크]

목차 [nslookup] 도메인 주소로 IP 찾기 nslookup 은 윈도우에서 제공하는 라이브러리 입니다. 실행 방법은 cmd 명령창을 열고 아래와 같은 Sytax를 실행하면 됩니다. Syntax 는 아래와 같습니다. nsloop 도메인주소 예제 구현>> C:\Users\forgo>nslookup daum.net 서버: kns.kornet.net Address: 168.126.63.1 권한 없는 응답: 이름: daum.net Addresses: 203.133.167.16 203.133.167.81 211.231.99.80 211.231.99.17 C:\Users\forgo> 주석>> 위처럼 명령창에서 다음 주소를 검색했고 kns.kornet.net이라는 dns에서 daum.net에 대한 ip정보를 전달..

[Python] Pandas로 네이버 금융 재무분석 항목 가져오기(에러해결 추가) [내부링크]

목차 [Python] 설치에 필요한 라이브러리 Pandas로 네이버 금융의 재무분석 정보를 가져오려고 합니다. Pandas의 장점은 데이터를 엑셀과 같은 양식으로 쉽게 관리하고 내부에 강력한 수학 함수들이 있어서 주식의 차트 분석이나 수학의 확률 분석 그리고 빅데이터로 데이터 분석을 하는 데 유용합니다. 네이버 파이넌스에서 정보를 가져올 것인데 해당 HTML의 정보를 테이블로 쉽게 정리해서 전달해주는 함수가 Pandas에 Html_read라는 함수가 있습니다. 저는 Visual Studio Code를 사용해서 Pandas를 설치했는데 Html_read 함수를 사용하기 위해 아래와 같이 추가적인 라이브러리를 설치해야합니다. 웹크롤링(web crawling)과 관련된 라이브러리로 Html_read함수가 해당..

[Python] Pandas Series란? 선언방법, 합치기 (append) [내부링크]

목차 [Python] Pandas Series란? Pandas Series란 엑셀의 행열 중에 한줄의 열로만 구성된 테이블입니다. 다양한 데이터 타입을 지원하는 1차원 배열이라고도 합니다. import pandas as pd a_var = [2, "hi", 5, "안녕"] pd_var = pd.Series(a_var) print(pd_var) ###결과### 0 2 1 hi 2 5 3 안녕 dtype: object 위 예제처럼 리스트 값을 Series에 넣으면 1차원 열(Column)의 테이블이 생기고 print를 하면 index번호와 value와 data type을 알려줍니다. [Python] Pandas Series 인덱싱 하기 아래 코드 4번째 라인처럼 라벨을 직접 설정할 수 있습니다. 그리고 설정..

[Javascript] 자바스크립트에서 CSS 변경 하기 (HTML Style) [내부링크]

목차 [Javascript] 자바스크립트에서 CSS 변경 하기 (HTML Style) 자바스크립트를 이용해서 고정된 css 값을 동적으로 변경할 수 있습니다. 변경에 필요한 함수는 아래와 같습니다. Syntax>> document.getElementById(id명).style.property = new style 위에 Syntax와 같이 변경하고자 하는 부분을 getElementById 로 찾은 다음에 style을 넣고 변경하고자 하는 css property를 입력하면 됩니다. 앞서 언급한 내용처럼 대부분 자바스크립트로 css 스타일을 변경하는 이유는 페이지 내에서 어떠한 이벤트(event)에 대한 동적인 반응을 위해 넣습니다. 아래 예제를 통해 쉽게 이해 할 수 있습니다. [Javascript] 자바스..

블루투스 이어폰 리뷰 -자브라 엘리트3(Jabra Elite3) [내부링크]

목차 블루투스 이어폰 리뷰 -자브라 Elite3 (Jabra) 마지막으로 출시한 자브라의 Elite75t 이후에 총 3개의 새로운 모델을 출시하였습니다. Elite7 Pros Elite7 Active earbuds Elite 3 earbuds 이번에 가장 최근에 출시된 엘리트3 이어버즈에 대해 리뷰 해보고자 합니다. 엘리트3 이어버즈는 처음으로 자브라에서 10만원 이하의 가격으로 출시한 최초의 블루투스 이어폰입니다. 쿠팡에서 현재 5% 할인된 가격 94,050원에 판매하고 있습니다. 관심 있으시면 하단 쿠팡 최저가 링크를 통해 구매하시면 됩니다. 가격이 저렴하여 현재 이어펀, Anker, JLab과 같은 저가 모델과 경쟁 중입니다. 물론 저가 정책의 제품을 출시하면 포기한 기능이 크게 두가지가 있습니다...

[Javascript] 타입 확인하는 방법, 정수(int)/문자(string) 변환 [내부링크]

목차 [Javascript] 타입 확인하는 방법 자바스크립트에서 데이타(data) 타입은 아래와 같습니다. string number boolean object function 자바스크립트 객체(object)의 종류는 아래와 같습니다. Object Date Array String Number Boolean 그리고 아무런 정보를 포함하지 않은 형태는 아래와 같습니다. null undefined 자바스크립트에서 타입을 확인하는 방법은 파이썬과 유사하게 typeof 라는 함수를 사용합니다. 아래 예제를 통해 사용 방법을 익힐 수 있습니다. 예제 코드>> 결과>> [Javascript] 숫자를 문자로, 문자를 숫자로 변환(int2string, string2int) 문자열을 숫자로 변경하는 함수는 String()입..

키즈 블루투스 헤드폰 리뷰 - Cosmos Plus, BuddyPhones [내부링크]

목차 코스모스 버디폰 헤드폰 리뷰 어린이들이 어른용 헤드폰을 사용하게 되면 많은 문제 들이 있습니다. 가장 우선적으로 머리 사이즈에서 맞지 않고 그리고 어른용 헤드폰은 최고 음량에 대한 제한이 없기 때문에 어린이들의 청각에 안좋은 영향을 줄 수 있습니다. 버디폰즈 코스모스는 키즈용으로 최적화된 무선 헤드셋입니다. 현재 쿠팡에서 최저가로 4% 할인된 114,240원에 판매하고 있습니다. 하단에 링크가 있으니 관심있으시면 하단 링크를 통해 확인하시면 됩니다. 우선 키즈용 헤드폰에 필요한 요소들이 무엇이 있을까요? 블루투스? 있습니다. 볼륨 제한? 3단계로 관리합니다. 노이즈 캔슬링? 노이즈 캔슬링 제공합니다. 아이들이 좋아할만한 디자인? 유니콘 핑크와 드래곤 다크 블루로 제공합니다. USB-C 타입으로 충전..

[Javascript] 변수, 함수 - 예제 HTML 출력(변수 입력 받아서 더하기 빼기 alert 출력) [내부링크]

목차 자바스크립트 변수란? 자바스크립트 변수는 아래와 같이 3가지로 정의 됩니다. var let const 파이썬이나 C언어와 달리 정수 실수 string 등을 구분 짓지 않고 모든 변수는 var로 정의할수 있습니다. 변수의 특성에 따라 let이나 const를 사용합니다. let은 다시 선언이 불가능 합니다. 아래와 같이 중복 선언을 하였습니다. 그 결과 아래처럼 var i는 문제가 없었지만 let j는 declared 문제가 발생했습니다. Uncaught SyntaxError: Identifier 'j' has already been declared const는 다시 할당이 안됩니다. 아래와 같이 let과 const를 할당해보았습니다. 그 결과 아래처럼 let k 는 문제가 없었지만 const k 아래..

[Python] Numpy와 list 차이 (정의, 사용법, 예제코드) [내부링크]

목차 넘파이란? (What is Numpy?) NumPy는 Numerical Python 의 줄임말로 파이썬에서 제공하는 Libary 중에 하나 입니다. Numpy는 배열(array) 값을 입력으로 받아서 처리를 합니다. 넘파이에서 주요하게 처리하는 과정은 아래와 같습니다. linear algebra (선형 대수) fourier transform (후리에/푸리에 변환) matrices (행렬) 넘파이(Numpy) 사용하는 이유 Numpy 사용 전에 배열을 처리할때 리스트(list)를 사용해서 값을 리스트에 받아서 처리하였습니다. 배열을 수학적으로 처리할때 코딩이 복잡해질 수 있고 코딩의 효율에 따라 시간이 오래 걸립니다. 그래서 Numpy가 등장했습니다. C코드로 파이썬 기저에서 작동하고 일반적으로 파이..

SONY WF-1000XM4 리뷰, 장단점 (소니 블루투스 이어폰) [내부링크]

목차 SONY WF-1000XM4 리뷰 소니에서 WF-1000XM3 이어버즈를 출시한지 벌써 2년이 지났습니다. 경쟁사의 애플 AirPods Pro, 보스의 QuietComfort Earbuds와 같은 고퀄 블루투스 이어폰을 상대로 최고의 노이즈 캔슬링(Noise Cancellation) 기능을 탑재한 제품으로 돌아왔습니다. 현재 쿠팡에서 28% 할인된 가격으로 279,000원에 판매를 하고 있습니다. (포스트 하단에 구매 링크 있습니다.) 기존의 WF-1000XM3에 비해 소리를 더 정제하고 IPX4 등급에 맞는 방수 기능을 추가하였다고 합니다. WF-1000XM4는 무선 오디오의 바를 높이고 노이즈 캔슬링 상태에서의 배터리 사용시간을 증가하였습니다. SONY WF-1000XM4 장점, 단점 장점 강력..

[Javascript] HTML 이벤트 발생 시 동작 함수 (마우스 클릭, 키보드 클릭 등) [내부링크]

목차 [Javascript] HTML 이벤트 발생 시 동작 함수 HTML 문서에서 자바스크립트를 이용해서 특정 동작이 발생하면 자바스크립트를 동작시키게 할 수 있습니다. 우선 아래 Syntax를 통해 설명 하겠습니다. HTML "element"에서 특정 "event"가 발생하면 "some JavaScript"가 동작 하는 구조 입니다. element는 div, a, h1, button과 같은 tag가 될 수 있습니다. HTML DOM에서 제공하는 event가 많이 있는데 주요 이벤트만 정리해서 아래와 같이 테이블로 만들었습니다. Event 명 설명 onchange HTML element가 변경될 때 onclick HTML element를 클릭할 때 onmouseover HTML element에 마우스 커..

삼성 외장하드 T7 장단점 리뷰 (지문인식, 암호화, 보안 설정 가능) [내부링크]

목차 삼성 외장하드(SSD) Touch MU-PC1T0S/WW 리뷰 외장 하드(SSD)를 선택하는 중요한 기준은 사이즈, 속도, 포트 연결, 가격 정도 입니다. 삼성 전자에서 출시한 T7 지문 인식 외장 하드를 출시하여 기존의 SSD에 보안 기능을 강화하였습니다. Capactive 지문인식기가 외장 하드 윗면에 설치되어 있습니다. 해당 방식은 최근에 적용된 스마트폰이나 노트북에 사용되는 기술과 동일합니다. 우선 지문을 하드에 있는 앱(app)을 통해 저장하면 노트북이나 스마트폰에 SSD를 연결(Mount) 하기 전에 항상 지문 검사를 시행 합니다. 해당 지문 기술은 AES 256 비트 암호화 방식을 사용하고 있습니다. SSD에 들어간 삼성 소프트웨어는 아래 OS와 호환이 가능합니다. Windows 7 이..

[Javascript] HTML 태그 사이 글짜, 요소 가져오기 (getElementById, getElementsByClassName, getElementsByName, getElementsByTagName) [내부링크]

목차 [Javascript] HTML 태그 사이 element 가져오기 - getElementById() HTML 문서에서 id 값을 이용해서 위치를 파악하고 해당 태그의 정보를 가져 오는 방법입니다. Syntax는 아래와 같습니다. document.getElementById(elementID) 찾은 element는 일반적으로 변수에 넣고 속성을 변경하거나 속성 정보를 가져 올 수 있습니다. 예제 코드>> H1 입니다 두번 째 H1 입니다 1st_li 2nd_li 3rd_li ########출력 결과######### 결과>> [Javascript] HTML 태그 사이 element 가져오기 - getElementsByClassName() HTML 문서에서 class 값을 이용해서 위치를 파악하고 해당 태..

[Python, matplotlib] 선 스타일, 선 색상, 선 두께 [내부링크]

목차 [Python, matplotlib] 선 스타일 Sytax는 아래와 같습니다. y 값을 선으로 표현하고 선의 스타일을 "linestyle"로 정의 합니다. plt.plot(y, linestyle = value) value 값의 항목은 아래 테이블과 같습니다. 스타일명을 사용해도 되고 값을 입력해도 됩니다. 스타일 명 값 soild "-" dotted ":" dashed "--" dashdot "-." None "" 예제 코드>> import matplotlib.pyplot as plt import random x = [0, 1, 2, 3] #임의의 y값 넣기 y = [] for _ in range(4): y.append(random.randrange(0,10)) plt.plot(x,y, linest..

[Javascript] HTML문서에 시간 입력하거나 글쓰기 (document.write) [내부링크]

목차 HTML DOM write(), writeln() Method 란? write() 메소드는 괄호안의 입력값을 HTML 문서에 표현해줍니다. 입력값으로 HTML 코드나 자바스크립트 코드를 받습니다. HTML을 바로 쓰기 때문에 실제로 write()를 사용해서 코드를 짜지는 않습니다. write() 는 일반적으로 내 코드가 정상적으로 동작하는지 확인하기 위해 debugging 용으로 사용합니다. writeln() 은 write()와 동일한데 마지막에 줄넘김이 들어가있다는 차이 입니다. HTML DOM write() Syntax document.write(exp1, exp2, exp3, ...) 여러개의 코드를 입력에 넣을 수 있습니다. write() 는 별도의 return 값은 없고 HTML 페이지에 ..

저가 노트북(Laptop) 비교 리뷰 #1 [내부링크]

목차 저가 노트북(Laptop) 비교 리뷰 소개글 사람들은 저렴한 가격에 고성능 노트북을 구매하길 원할 겁니다. 여기서 중요한 것은 저렴한 비용으로는 모든 분야에서 고성능을 유지할 수 없기 때문에 어느 부분의 기능을 포기하고 어느 부분에 집중하는가 입니다. 어느정도의 비용으로 터치스크린, 프리미엄 샤시, HDMI 포트, 백릿(Backlit) 키보드, 스타일러스 펜 기능을 가질수 있지만 어느 기능에 집중할지 어느 기능을 버릴지를 판단해야 합니다. 아래 제품들은가격은 100만원대 이하의 제품에서 선정했습니다. 개인적으로는 "제품 1. HP ENVY X360 13"이 마음에 들지만 3제품 중에 가격이 제일 비쌉니다. ㅎ "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."..

[Python, matplotlib] 여러 그래프에 한 화면에 그리기 (subplot) [내부링크]

목차 [Python, matplotlib] 여러 그래프에 한 화면에 그리기 (subplot) 이번 포스트의 주제는 크게 두가지로 진행됩니다. 여러개의 서브 그래프(Subplot) 만들기 2개 이상의 그래프를 한개의 화면에 나타내기 (Multiple plots in one graph) 위 작업을 위한 핵심 모듈은 subplots 입니다. Syntax 는 아래와 같습니다. matplotlib.pyplot.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw) 내부 속성에 대한 정의는 링크에서 확인하시면 됩니다. 하지만 일반적으로 사용하는 속성은 아래 예제 ..

[Python, matplotlib] 그래프에 Grid 그리기 예제 (옵션사용) [내부링크]

목차 [Python, matplotlib] 그래프에 Grid 그리기 예제 (옵션사용) matplotlib 그래프를 보면 뒷면에 격자 무늬의 그리드 선들이 있습니다. 이번 포스트에서는 그리드를 그리는 방법과 유용한 option을 사용해서 그리드를 꾸며 보도록 하겠습니다. Grid Syntax matplotlib.pyplot.grid(b=None, which='major', axis='both', **kwargs) Grid Syntax는 위와 같습니다. 위에서 실제 사용하는 값은 axis 값과 **kwargs 정도 입니다. axis의 값은 'both', 'x', 'y'가 있습니다. 선택하지 않으면 default로 'both' 값이 선택 됩니다. **kwargs 는 선을 그리는데 필요한 일반적인 option ..

Python Hex, Decimal, Binary (16진수, 10진수, 2진수) 변환 함수 [내부링크]

목차 Python Hex, Decimal, Binary (16진수, 10진수, 2진수) 서로 변환하기 몇 진수의 값이든 십진수로 변환을 쉽게 할 수 있습니다. 파이썬에서 제공하는 int 함수를 사용하면 어떤 값이든 10진수로 변환 가능합니다. int(value, base) int의 Syntax는 위와 같습니다. Option 값의 특성은 아래와 같습니다. value : string으로 된 변환하고 자 하는 수 base : value 값의 진수 16진수와 2진수 변환 함수는 아래와 같습니다. hex(value) bin(value) value 값은 integer(정수) 값을 입력으로 받습니다. 16진수 수를 10진수 2진수 그리고 다시 16진수 수로 변환해 보기 예제 예제 코드>> hex_value = "1f..

Bose 사운드링크 플렉스 스피커 리뷰 (SoundLink Flex) [내부링크]

목차 Bose 사운드링크 플렉스 스피커 리뷰 (SoundLink Flex) Bose 에서 이번에 포터블 블루투스 스피커를 출시했습니다. 현재 쿠팡에서 17,9000원에 최저가로 판매 중입니다. 이번 제품은 IP67 수준의 방수 인증을 받았습니다. 배터리 수명은 약 12시간 입니다. (기존 SoundLink Mini II와 동일) Bose에서 주장하는 바에 의하면 SoundLink Flex 사이즈의 제품 크기에 비해 음질이 탁월하다고 합니다. 사이즈는 아래와 같습니다. 7.9 x 3.6 x 2.1 (inches) 위에 달려있는 스트랩으로 외부에 걸기도 쉽고 보관이 간단합니다. 내부로 들어가면 SoundLink Flex는 자체 제작한 Transducer를 사용한다고 합니다. 사이즈는 해당 크기에서 딱 맞춘 ..

[Python] String 대문자/소문자 바꾸기/ 카운트 함수 (capitalize, upper, lower, count) [내부링크]

목차 Python String 대문자로 바꾸기 함수 String에 내장된 함수로 Upper를 사용하면 string 안의 소문자를 모두 대문자로 변경해줍니다. Syntax는 아래와 같습니다. string.upper() upper는 별도의 parameter 값을 가지지 않습니다. 예제 코드>> words = "HelLo, mY nAme is Scribble" print(words.upper()) 결과>> HELLO, MY NAME IS SCRIBBLE Python String 대문자로 바꾸기 함수 String에 내장된 함수로 lower를 사용하면 string 안의 대문자를 모두 소문자로 변경해줍니다. Syntax는 아래와 같습니다. string.lower() lower는 별도의 parameter 값을 가지지..

[Python] String 단어 나누기, 단어 바꾸기 (split, replace) [내부링크]

목차 Python String 단어 나누기 함수 String에 내장된 함수로 split를 사용하면 string 안의 단어를 나눠 줄 수 있습니다. Syntax는 아래와 같습니다. string.split(separator, maxsplit) parameter 값으로 separator와 maxsplit이 있습니다. separator : 나누는 기준점, default는 띄워쓰기(스페이스) 입니다. maxsplit : 몇 개까지 나눌지를 정합니다. default는 -1이고 의미는 모든 경우입니다. 예제 코드>> words = "HelLo, mY nAme is Scribble" print(words.split()) print(words.split(",")) 결과>> ['HelLo,', 'mY', 'nAme', '..

[Python] String 인코딩, 디코딩 함수 (encode, decode) [내부링크]

목차 [Python] String 인코딩, 디코딩 함수 (encode, decode) 이번 포스트에서는 스티링의 문장을 인코딩하거나 디코딩해서 binary(바이너리)로 변경하는 함수에 대해 알아보겠습니다. encode() 와 decode()는 string 내부에 내장된 함수 입니다. encoding에는 많은 종류가 있는데 대표적으로 사용되는 encoding은 아래와 같습니다. utf-8 utf-16 euc-kr ascii Encode, Decode 함수 Syntax Str.encode(encoding='UTF-8',errors='strict') Str.decode(encoding='UTF-8',errors='strict') encoding 속성의 값은 앞서 언급한 encoding 종류를 입력하면 됩니다...

[갤럭시] Z 폴드3, Z 플립3 내구성 입증 시험 영상 [내부링크]

[삼성 갤럭시] Z 폴드3, Z 플립3 내구성 입증 삼성에서 Galaxy Z Fold 3, Z Flip 3의 내구성을 입증하는 시험 영상을 공유 하였습니다. 이미 8월에 출시된 제품에 대해서 지금에서야 가혹 시험 통과 영상을 공유한 이유는 불확실 합니다. 추측건데 최근에 보고된 갤럭시 Z 플립3의 스크린에 발생한 크랙에 의한 고객 불만을 잠재우려는 시도로 생각됩니다. 현재 상단에 공유된 영상에서 삼성은 총 4가지의 시험을 진행합니다. 환경챔버 시험 : 가혹한 온도에서 정상 동작 시험 물에 담구기 시험 로봇팔로 S펜 사용 시험 반복 접기 시험 2012년에도 삼성에서는 스트레스 시험한 영상을 공유하였습니다. 물론 애플에서도 예전에 안테나 관련 시험을 공유하기도 하였습니다. 이번에 공유한 영상이 Z 플립 3의..

HTML - Bootstrap 사용해서 공간(레이아웃) 배치하기 (Grid) [내부링크]

목차 글 시작에 앞서 visual studio에서 bootstrap 코드를 작성하고 확인하는 방법을 괄호 링크에 있으니 참조하길 바랍니다 (https://scribblinganything.tistory.com/298) HTML - Bootstrap 사용해서 공간 배치하기 (Grid) Bootstrap의 Grid를 사용한다는 의미는 웹 화면의 Front end를 엑셀처럼 열과 행으로 나눠서 사용하겠다는 의미 입니다. Bootstrap에서 제공하는 클래스(Class)의 클래스명을 row와 column을 사용해서 정의할 수있습니다. row : 행 지정 column : 열 지정 행의 경우 웹화면에서 스크롤을 내려서 계속 만들 수 있지만 열의 경우 12개의 열로 고정되어 있습니다. 아래 그림은 최대치로 열을 설정..

Python 파일 (한글 포함) 읽어서 동일한 문장 개수 카운트 하기 [내부링크]

목차 Python 파일 읽어서 동일한 문장 개수 세기 코드>> #리스트, 딕션너리 선언 list_words = [] dic_words = {} #파일에서 내용 읽어오기 file = open('D:\\test.txt', "r", encoding="utf-8") words = file.read() #띄워쓰기로 나눈 단어 리스트로 넣기 list_words = words.split() #단어들을 키값으로 넣고 새로운 단어가 나오면 0 + 1로 카운터 시작 for word in list_words: dic_words[word] = dic_words.get(word, 0) + 1 keys = sorted(dic_words.keys()) for word in keys: print("{0} 단어 개수 : {1} 개"...

티스토리 블로그 꾸미기 - 코드블럭 줄번호 매기기 [내부링크]

목차 목적 / 현재 블로그 상태 사실 이전에 코드블럭의 코딩에 대해 라인 번호를 넣으려고 시도 했으나 실패했습니다. 당시 사용하던 스킨은 Square(스퀘어) 였습니다. 여러가지 변경을 해보았으나 Square 스킨에서는 라인 넘버 넣는 작업이 잘 되지 않아서 스킨을 북클럽(Book Club)으로 변경해서 적용하니 바로 동작 하였습니다. 아마 Square 스킨에서도 변경하는 방법은 있겠지만 저는 아직 방법을 찾지 못해서 Book Club 스킨에서 변경하는 과정을 설명하도록 하겠습니다. 코드 블럭 라인을 넣는 작업은 하이라이트 자바스크립트(highlight.js)를 가져와서 적용하는 과정입니다. 적용 방법은 순서대로 따라만 하면 되기 때문에 자바스크립트에 대한 이해는 크게 필요 없습니다. 사용 중인 스킨(S..

애플 워치 7 - 고속 충전 케이블 (Apple Watch Series 7, Fast Charging) [내부링크]

목차 애플 워치 7 - 고속 충전 케이블 (Apple Watch Series 7, Fast Charging) Apple Watch 시리즈 7에 새롭게 추가된 기능 중에 하나가 고속 충전입니다. 애플사에 따르면 80% 충전을 약 45분에 가능하게 한다고 합니다. 하지만 고속 충전의 이점을 이용하고 싶다면 애플 워치 7과 함께 포함된 충전 케이블을 사용하라고 합니다. 이번 충전 케이블은 기존의 모델과는 다른 "Apple Watch Magnetic Fast Charger"라고 합니다. 기존의 USB-C 충전 케이블과 이번에 나온 새 모델은 외관은 동일하게 보인다고 합니다. 하지만 새로 나온 케이블만 최대 속도로 충전이 가능합니다. 애플사에서 기존의 고속 충전이 안되는 USB-C 충전 케이블 판매를 중단하였지만..

CSS 선택자 - 별표(*)샵(#)점(.)콜롬(:)괄호(>, [])캐럿(^)달러($) 의미와 예제 [내부링크]

목차 참조글 글 시작에 앞서 visual studio에서 bootstrap 코드를 작성하고 확인하는 방법을 괄호 링크에 있으니 참조하길 바란다. (https://scribblinganything.tistory.com/298) CSS 기본 구조 위 예제 구조는 제 티스토리(tistory)의 CSS에서 일부 입니다. 구성은 총 2개로 아래와 같이 구성됩니다. 선택자(Selector) : 녹색 부분으로 CSS를 적용할 부분을 선택 합니다. 선언부(Declarative) : { } 괄호 부분으로 선택자에서 선택한 부분에 괄호안의 CSS 속성을 적용합니다. 선언부는 다시 아래와 같이 2개로 구성됩니다. 속성명(Property) : 위 그림의 빨간색 부분입니다. 속성값(Value) : 위 그림에서 파란색 부분입니다..

무선이어폰 리뷰 - BOSE QC 이어버드 6개월 실제 사용 후기 [내부링크]

목차 BOSE QuietComfort Earbuds 특징 노이즈 캔슬링 (Noise Cancelling) 생생한 사운드 귀에서 잘 빠지지 않는 구조 심플 터치 컨트롤 완충 시 최대 6시간 사용 가능 노이즈 캔슬링에는 Active와 Passive 형태로 제공합니다. Active의 경우 이어버드에 탑재된 마이크가 주변 소리를 모니터링 한 후 반대 음파를 만들어서 소음을 차단합니다. Passive 형태는 이어버즈의 노즐이 귀 모양에 맞게 완전 밀착되어 물리적으로 차음 기능을 제공합니다. Bose에서 제공하는 어플리케이션을 사용하면 11단계의 노이즈 캔슬링을 설정할 수 있습니다. BOSE Volume Optimized EQ 기술로 자동으로 저음과 고음의 음질을 향상 시켯습니다. 위와 같은 구조는 귀에 딱 맞게 ..

HTML - Bootstrap 사용해서 공간(레이아웃) 배치하기 (Container) [내부링크]

목차 글 시작에 앞서 visual studio에서 bootstrap 코드를 작성하고 확인하는 방법을 괄호 링크에 있으니 참조하길 바랍니다 (https://scribblinganything.tistory.com/298) HTML - Bootstrap 사용해서 공간 배치하기 (Container) Web에서 Frontend 디자인에서 레이아웃을 설정하는 것은 어려운 일입니다. 사이즈를 고정하면 웹브라우져의 화면에 따라 유연하게 반응하기 어렵습니다. Container 클래스 값을 적용하는 것만으로 쉽게 배치 문제를 해결할 수 있습니다. Container 클래스의 종류는 아래와 같습니다. container container-sm container-md container-md container-xl Bootstra..

Python tkinter - Scrollbar 예제와 사용방법 [내부링크]

목차 TKINTER Scrollbar 란? / Syntax scrollbar = ttk.Scrollbar( container, orient='vertical', command=widget.yview ) 스크롤바 위젯은 Listbox, Text, Canvas 와 같은 위젯의 내용이 클 경우 스크롤바의 Slide를 통해 확인할 수 있게 도와 줍니다. 수직형 뿐만 아니라 수평형 스크롤바 제작이 가능합니다. scrollbar를 사용하는 방법은 아래와 같습니다. Scrollbar 위젯 생성 스크롤 가능한 위젯과 scrollbar 연결 TKINTER Scrollbar 파라미터 container : 스크롤바를 위치할 window나 frame을 이름 값을 넣습니다. orient : 스크롤바의 수직 수평 값을 정합니다...

티스토리 블로그 꾸미기 - 텍스트 CSS 적용하기 [내부링크]

목차 목적 / 현재 내 블로그 상태 위에 목적처럼 제목이나 글에 효과를 주는 방법을 공유하려고 합니다. 티스토리 블로그를 사용해보시면 아시겠지만 글을 꾸미기에는 최적화되어 있지 않습니다. 제대로 꾸미려고 한다면 HTML, CSS, JQUERY 등 언어를 조금은 사용할 줄 알아야 합니다. 저도 배우는 입장에서 최대한 쉽게 블로그를 정리하면서 꾸며보려고 합니다 :) 스킨의 종류에 따라 효과들이 안먹히는 경우들이 있어서 제 조건을 먼저 알려드리겠습니다. 사용 중인 스킨 : 북클럽 (Book Club) H 태그(Tag) 변경하기(1) : 태그 값 확인하기 글을 작성 후에 위 그림1의 오른쪽 상단처럼 기본 모드에서 "HTML"로 변경해 줍니다. 그림2에서 "목적/...." 을 "제목2"로 적용해서 썼는데 HTML..

Bootstrap 팝업창(modal, dialog box) 만들기 (크기 조절) [내부링크]

목차 참조 글 시작에 앞서 visual studio에서 bootstrap 코드를 작성하고 확인하는 방법을 괄호 링크에 있으니 참조하길 바란다. (https://scribblinganything.tistory.com/298) Bootstrap 팝업창(modal, dialog box) 만들기 (크기 조절) Bootstrap에서 말풍선을 만드는 방법은 크게 두가지가 있다. tooltip modal 툴팁의 경우 마우스를 올려만 놓아도 박스가 생기고 마우스를 옮기면 사라진다. 모달의 경우 클릭과 같은 행동을 통해 새로운 창을 만들고 그 창을 원하는 형태로 꾸며 줄 수 있다. 예제 코드로 이해해보기 코드>> 버튼을 클릭하면 말풍선/팝업창이 생깁니다 클릭 × 헤더 부분 바디 부분 테일부분 닫기 결과>> 주석>> 모달..

올인원 무선충전기 구매 리뷰 (워치, 스마트폰, 무선이어폰 한번에 충전 가능-만렙 3in1) [내부링크]

목차 더코너스톤 만렙 3in1 애플워치 충전독 무선 충전기 위 사진은 제가 실제로 6개월간 사용해보고 올린 사진 입니다. 구매 후기는 아래와 같이 간단하게 정리 하였습니다. 3WCC101 구성품 충전 케이블 본체 (흰색/검은색 선택가능) 설명서 3WCC101 크기(Size) 3WCC101 장점 하나의 본체로 워치, 스마트폰, 무선이어폰 충전 가능 호환모델 애플워치 2세대부터 Series2 ~6 SE 갤럭시워치(무선충전모델) 에어팟, 갤럭시버즈, 기타 이어폰 무선충전 가능 모델은 모두 호환됨 아이폰, 갤럭시시리즈, 기타 스마트폰 무선충전이 가능한 모델은 모두 호환 가능 아이폰12미니는 제품 규격상 충전이 원활하게 지원이 안됨 충전 중일 경우 전면에 초록색 LED로 알려줌 완료 후 LED 가 꺼짐 충전 케이..

부트스트랩 - 말풍선(Tooltip) 만들기 (예제로 쉽게 이해하기) [내부링크]

글 시작에 앞서 visual studio에서 bootstrap 코드를 작성하고 확인하는 방법을 괄호 링크에 있으니 참조하길 바란다. (https://scribblinganything.tistory.com/298) Bootstrap - 말풍선(Tooltip) 만들기 부트스트랩에서 제공하는 "tooltip.js"를 이용하면 간단한 구문으로 툴팁(말풍선)을 만들 수 있다. 바로 코드로 설명하겠다. 코드>> 버튼에 마우스를 올리면 말풍선이 생깁니다 오른쪽 왼쪽 결과>> 주석>> 위 결과와 같이 말풍선 박스가 생겼다. 툴팁 위치(배치) 지정하는 법 아래를 참조해서 코드에 값을 넣도록 하자 오른쪽 오른쪽 오른쪽 오른쪽

Data type 크기 - Byte, Halfword, Word, Doubleword, Quadword, int, long, short, char, long long, float, double, bool, void* [내부링크]

Data type 크기 Main processor에서 정의하는 Data Size는 아래와 같다. Data 명 크기(Bits) ARM 구조 Byte 8 32bits, 64bits Halfword 16 32bits, 64bits Word 32 32bits, 64bits Doubleword 64 32bits, 64bits Quadword 128 64bits 프로그램 언어를 사용하면 데이터 타입에 따라서 크기를 얘기할 때 Byte, Word로 표현한다. 해당 크기는 위의 테이블 값을 참조 하면 된다. C언어. C++언어에서 Data 종류에 따른 크기 Data 종류 크기(Data type) 크기(bits) int word 32 long word 32 short Halfword 16 char Byte 8 long ..

닌텐도 스위치 OLED 리뷰 (Nintendo Switch OLED) [내부링크]

닌텐도 스위치 OLED 리뷰 미국에서 21년 10월 8일 출시될 닌텐도 스위치 OLED 판매가는 $349.99 이다. 기능적으로는 2017년에 출시된 스위치 제품과 동일하다. 외관을 17년 스위치 제품과 비교하면 아래와 같다. 동일 게임 동일 인터페이스 동일 컨트롤러 받침대는 발전됨 저장공간은 기존보다 커짐 동일 배터리 수명 (4.5 ~ 9시간) 하지면 화질에서 차이를 크게 느낄 수 있다. 우선 LCD 디스플레이가 더 커졌고 OLED를 사용해서 화면이 더 밝아졌음을 알 수 있다. 우선 간단히 장점과 단점을 나열하면 아래와 같다. 장점 선명한 화질의 OLED 스크린 받침대 구조 저장공간 확장 (64GB internal 저장공간) 단점 동일한 조이콘 컨트롤러 (Joy Con) 동일 디자인 우선 OLED 스크..

log함수란? 파이썬으로 계산, 그래프 그리기 (예제로 이해) [내부링크]

log함수란? 간단하게 지수함수를 역으로 표현한것이다. 간단한 예제로 아래와 같이 지수값이 log를 취하면 값이 되는 것이다. 수식으로 표현하면 아래와 같다. 그리고 A에 해당하는 숫자가 없다면 일반적으로 10으로 이해하면 된다. 그리고 A가 exponential(e) 일 경우 log는 ln으로 표현 한다. 로그 함수 파이썬으로 계산하고 그래프로 그리기 코드>> import matplotlib.pyplot as plt import numpy as np # x값 설정 x = np.arange(0,10,0.5); # log 예제 amplitude = np.log(np.e) print(amplitude) amplitude = np.log10(10) print(amplitude) amplitude = np.lo..

Microsoft Surface Pro 8 장단점 리뷰 (마이크로소프트 서피스 프로8) [내부링크]

장점 현대적 디자인 스타일러스 펜에 haptic 모터 탑재(진동 모터) 120Hz 디스플레이 키보드에 펜 거치대 단점 비쌈 (미국 기본 모델 판매가 : $1,099.99) 스타일러스 펜, 키보드 별도 구매 포트 종류 제한적 서피스 프로8의 화면은 2880 x 1920, 13인치 터치 스크린이다. Pro7보다 1인치 증가했다. 그리고 베젤(모니터 옆에 공간)이 기존보다 작아졌다. 눈에 띄는 변화는 120Hz로 디스플레이를 리플레쉬한다는 것이다. 일반적으로 게이밍 장비에서 사용하는 주파수 대역이다. 빠른 리플레쉬 주파수로 커서를 움직일때 좀 더 자연스럽게 느껴 질 것이다. Color Profile 기능은 주변 환경에 따라 색깔을 자동으로 조절해주는 기능이다. 정교하게 수정하기 때문에 실제로 사용자가 변화를 ..

사인, 역사인, 코사인,역코사인, 탄젠트, 역탄젠트 파이썬으로 계산하고 그리기 (Sine, Arcsine, Cosine, Arccosine, Tangent, Arctangent) [내부링크]

Sine, Inverse Sine(Arcsine) 파이썬으로 계산하고 그리기 사인과 아크사인을 계산하기 위해서는 numpy 모듈이 필요하고 그래프로 그리기 위해서는 matplotlib 모듈이 필요하다. 없다면 "pip install 모듈명" 으로 설치하길 바란다. numpy matplotlib 사인 계산 및 그래프 구현 하기 코드>> import matplotlib.pyplot as plt import numpy as np # x값 설정 x = np.arange(-10,10,0.1); # y값 설정 amplitude = np.sin(x) print("amp: ", amplitude) # 축 이름 설정 plt.xlabel('x axis(radian)') plt.ylabel('y axis') # 그리드 추가..

볼보(Volvo) Polester 상장 계획 - 전기자동차 전환 위한 자금 확보 [내부링크]

스웨덴 럭셔리 자동차 브랜드 볼보는 중국 지리(Geely)에 인수된 뒤에도 볼보라는 이름으로 판매를 유지하고 있다. 최근 볼보에서 전기자동차 전향을 위한 자금 확보를 위해 IPO(initial public offering, 상장)을 준비 중이라고 한다. 상장 회사에 대한 간략 한 정보는 아래와 같다. Polestar 볼보 + 지리 합작 회사 SPAC을 통해 스톨홀럼(Stockholm) 상장 준비 중 상장가는 $20 billion 규모로 예상 현재 2가지 모델만 개발됨 하이브리드 쿠페 EV 세단 SPAC 상장에 대한 내용과 주가의 관계를 알고 싶다면 괄호안의 링크를 참조하길 바란다. (https://scribblinganything.tistory.com/304) 볼보가 작년에 발표한 첫번째 전기차는 XC4..

파이썬 방정식(함수) 그래프 그리기 [내부링크]

파이썬 방정식(함수) 그래프 그리기 1차식 함수는 쉽게 상상할 수 있다. 하지만 3차식 부터는 상상하기 어려운 영역이다. 파이선의 numpy와 matplotlib.pyplot을 사용하여 간단하게 그래프를 작성할 수 있다. 바로 코드를 보고 이해해보자 1차식 함수 그리기 코드>> import matplotlib.pyplot as plt import numpy as np # x값 설정 x = np.array(range(-10,11)) print("x: ", x) # 축 이름 설정 plt.xlabel('x axis') plt.ylabel('y axis') # 그리드 추가 plt.grid(color = "gray", alpha=.5,linestyle='--') # 방정식 추가하기 plt.plot(x,30*x+1..

파이썬 Excel 파일 읽기, 값 변경(덮어쓰기) (예제로 이해하기) [내부링크]

Python Excel 파일 읽기, 값 변경(덮어쓰기) (예제로 이해하기) 파이썬에서 Excel 자동화를 위해 가장 많이 사용되는 라이브러리 중에 하나인 "openpyxl"을 설치하였다. 설치는 아래와 같이 간단하게 진행된다. PS C:\Users\forgo\Documents\python_ex> pip install openpyxl Requirement already satisfied: openpyxl in c:\users\forgo\appdata\local\programs\python\python39\lib\site-packages (3.0.7) Requirement already satisfied: et-xmlfile in c:\users\forgo\appdata\local\programs\pytho..

파이썬 Excel 파일 생성, 쓰기, 저장하기 (예제로 이해하기) [내부링크]

파이썬 Excel 파일 생성, 쓰기, 저장하기 (예제로 이해하기) 파이썬에서 Excel 자동화를 위해 가장 많이 사용되는 라이브러리 중에 하나인 "openpyxl"을 설치하였다. 설치는 아래와 같이 간단하게 진행된다. PS C:\Users\forgo\Documents\python_ex> pip install openpyxl Requirement already satisfied: openpyxl in c:\users\forgo\appdata\local\programs\python\python39\lib\site-packages (3.0.7) Requirement already satisfied: et-xmlfile in c:\users\forgo\appdata\local\programs\python\pyt..

분산, 표준 편차란? 파이썬으로 쉽게 계산하기 (예제로 이해하기) [내부링크]

분산, 표준 편차란? 앞서 평균 제곱, 분산,자유도 (Mean Square, Variance,DOF)에 대해 설명하였다. 상세 내용을 보고 싶다면 괄호안의 링크를 참조하길 바란다. (https://scribblinganything.tistory.com/265) 다시 정의 하면 아래와 같다. 분산을 수식으로 전개하면 아래와 같다. 알려진 평균값 u에서 어느정도 벗어 났는지를 알려준다. 제곱을 치함으로써 평균 대비 아래 위로 방향성에 상관없이 크기로 결정한다. 표준 편차는 분산에 root를 씌운값으로 아래와 같다. 파이썬으로 계산하기 (예제로 이해하기) 앞서 수식을 통해 분산을 구하기 위해서는 평균값을 먼저 구한 뒤 일일이 차를 더해서 나눠주는 과정을 거쳐야 한다. 하지만 아래와 같이 코드를 사용할 경우 몇..

미국 연방정부 셧다운이란? 주가(증시)에 영향 (예제로 분석) [내부링크]

미국 연방 정부(Federal government of the United States)는 미국 헌법에 의해 세워진 중앙 집권화된 미국 정부이다. 연병 정부의 구성은 아래와 같다. 미국 연방 정부(Federal government of the United States) 입법부 미국 의회 미국 상원 미국 하원 행정부 미국 연방 행정부 미국의 대통령 고문단 미국의 대통령 사법부 미국 연방 대법원 미국 연방 항소법원 미국 지방법원 셧다운이란? 셧다운(Shut down)이란 말그대로 미국 연방정부의 업무가 중단됨을 의미한다. 다만 국민의 생명과 재산 보호와 관련된 필수 서비스들은 진행되지만 그 외 업무들은 셧다운 진행일 부터 중단된다. 셧다운이 발생하는 원인? 입법부의 미국 상원 하원의 의회에서 예산이 통과 못..

전도모멘트란? 계산 방법 (Overturning Moment) [내부링크]

전도 모멘트란(Overturning Moment)? 오버터닝 모멘트 또는 전도 모멘트라 불리는 이 모멘트는 시편이나 구조물에 힘을 가했을 때 넘어지게 만드는 모멘트를 의미한다. 진동 시험기의 경우 위 그림과 같이 슬립테이블 위에 시편을 놓고 화살표 방향으로 좌우로 힘을 주게 될때 전도 모멘트가 발생한다. 이를 최소화 하기 위해서 진동시험기 (Shaker) 업체에서는 슬립테이블에 오일을 넣어서 모멘트를 줄여 준다. 일반적으로 시편의 높이가 높을 수록 모멘트가 증가 한다. 전도모멘트 계산 예제 다음 예제는 괄호안의 링크 페이지에서 가져온 예제이다. (Calculation Example: Overturning Moment for Shear panel | thestructuralengineer.info) 4m의..

전원이 꺼졌을 때도 아이폰 찾는 방법(미국사이트 참조), 내폰에서는 동작안됨 [내부링크]

전원이 꺼졌을 때도 아이폰 찾는 방법 우선 이 글은 미국 사이트에서 참조한 글이라 세팅이 한국과 다를 수도 있다는 점을 참조하길 바란다. 애플의 "Find My app"을 이용하면 잃어버린 아이폰을 찾는데 유용하다. iOS 15 운영체제부터는 배터리가 방전되거나 핸드폰이 꺼졌을때(off)도 찾을 수 있게 도와 준다. 이 기능이 가능한 아이폰 종류는 아래와 같다. iPhone 11 iPhone 11 Pro / iPhone 11 Pro Max iPhone 12 / iPhone 12 Mini iPhone 12 Pro / iPhone 12 Pro Max iPhone 13 / iPhone 13 Mini iPhone 13 Pro / iPhone 13 Pro Max 설정하기 설정에 앞서 소프트웨어를 iOS15로 업데..

[Javascript]Jquery callback 함수란? (알람창(alert) 띄우는 예제로 이해해보기) [내부링크]

목차 글 시작에 앞서 visual studio에서 jquery 코드를 작성하고 확인하는 방법을 괄호 링크에 있으니 참조하길 바란다. (https://scribblinganything.tistory.com/298) jquery callback 함수 : 정의 앞서 게시판에서 fadeIn으로 selector가 천천히 나타나게 하는 함수를 배웠다. (jquery - fade 기능, 천천히 사라지거나 나타내게 하기(예제로 이해하기) (tistory.com)) $(selector).fadeIn(speed,callback); $(selector).fadeOut(speed,callback); $(selector).fadeToggle(speed,callback); $(selector).fadeTo(speed,opacit..

데시벨이란? 계산방법과 dB 값 별 증폭 비 정리 테이블(Decibel, 비율 값) [내부링크]

데시벨이란? 영어로 decibel이라고 하고 일반 심볼로 dB로 표기한다. deci는 10을 의미한다. dB 단위가 발생하게 된 이유는 사람의 귀에 형태는 소리를 인식할 때 1, 2, 3, 크기를 인식하는게 아니고 10배 크기의 비율로 소리를 인식하기 때문이다. 예를 들어 10 크기의 소리를 듣고 다음에 100 크기 소리를 들었을때 느끼는 차이와 100 크기의 소리를 듣고 1000 크기의 소리를 들었을 때 차이는 동일하다는 것이 데시벨이 발생하게 된 계기 이다. Decibel 계산법 데시벨 계산시 중요한 요소가 있는데 파워(Power)를 비를 비교하는 지 크기(Magnitude)를 비교 하는지에 따라 수식이 달라진다. 소리의 경우 SPL (Sound pressure level)은 크기를 의미하고 SIL ..

[Javascript] jquery animate() 애니매이션 기능 [내부링크]

목차 글 시작에 앞서 visual studio에서 jquery 코드를 작성하고 확인하는 방법을 괄호 링크에 있으니 참조하길 바란다. (https://scribblinganything.tistory.com/298) jquery-animate() 애니매이션 기능 animate 기능을 사용하면 웹 브라우져의 요소들을 애니매이션처럼 움직일 수 있다. 다만 애니매이션을 움직일 때 주의 해야 할 점은 css 설정에서 position 정보를 아래와 같이 설정하여야 한다. position 설정값 absolute fixed relative 애니매이션 함수는 아래와 같다. $(selector).animate({params},speed,callback); selector는 웹에서 요소들이고 params는 css의 인자 값들..

시카고 옵션 거래소란? (CBOE), 비트코인(XBT)을 선물 넣으면서 가격 변동 확인 [내부링크]

시카고 옵션 거래소란 (Cboe Options Exchange, Chicago Board Options Exchange)? 1973년에 설립된 시카고 옵션 거래소(CBOE)는 옵션을 거래하는 증권 거래소이다. 옵션 거래에 대한 내용은 괄호안의 내용을 참조하길 바란다. (https://scribblinganything.tistory.com/296) 옵선(Option)이란 간단히 말하면 계약된 날에 정해진 가격에 주식을 사거나 팔 수 있는 권리이다. CBOE의 개설로 16개 종목에 대해 콜옵션 거래를 진행하였고 74년에는 32종의 콜옵션으로 거래하고 77년 5개의 종목에 대해 풋옵션을 상장하였다. CBOE 옵션 리스트 다음은 시카고 옵션/선물 거래소에서 제공하는 옵션 항목이다. S&P 500 Index (t..

SPAC(Special Purpose Acquisition Company)이란? (스팩 예제 확인) [내부링크]

SPAC(Special Purpose Acquisition Company)이란? SPAC(Special Purpose Acquisition Company)이란 기업활동을 하지 않는 페이퍼 컴패니(Paper company)로 IPO(기업 상장)을 통해 돈을 모으고 이돈으로 기업을 합병하는 것을 목적으로 한다. SPAC은 인수할 회사를 정하지 않고 IPO를 통해 돈부터 모우는 방식이어서 백지수표회사(Blank check companies)라고도 알려져있다. SPAC이 존재한지는 몇 십년이되었는데 (미국 기준), 19년과 20년에 많은 투자자를 유치하면서 더 유명해졌다. 20년 8월에는 50개 이상의 SPAC이 설립되었고 모금 금액은 $21.5billion에 달한다. SPAC 진행 과정 (미국 주식의 경우) ..

[Javascript] jquery slide 효과로 화면이 나오거나 사라지게 하기 [내부링크]

목차 글 시작에 앞서 visual studio에서 jquery 코드를 작성하고 확인하는 방법을 괄호 링크에 있으니 참조하길 바란다. (https://scribblinganything.tistory.com/298) jquery - slide 효과로 화면이 나오거나 사라지게 하기 : 정의 jquery slide 관련 함수는 슬라이드처럼 화면이 내려오거나 올라가면서 나오거나 사라지게 만들 수 있다. 관련 함수는 아래와 같다. $(selector).slideDown(speed,callback); $(selector).slideUp(speed,callback); $(selector).slideToggle(speed,callback); slideDown 은 말 그대로 글이 슬라이방식으로 아래로 나오게 만든다. sl..

게임기 리뷰 - 닌텐도 스위치 온라인 Expansion pack (N64, Genesis 게임) [내부링크]

Nintendo Switch Online 닌텐도 스위치 온라인에서 새로운 멤버쉽을 추가했다. 새 멤버쉽에서는 Nintendo 64 게임과 Sega Genesis 게임을 할 수 있다. Nintendo Switch Online + Expansion Pack 라고 불리는 멤버쉽은 10월 말에 발매한다고 한다. 닌텐도에서 이번에도 NES와 SNES 컨트롤러를 제작했듯이 N64와 Sega Genesis를 위해 그림과 같은 콘트롤러를 발매한다고 하였다. 멤버쉽 회원에게 $49.99 (58,892원)에 각 각 판매한다고 발표하였다. 아직 닌텐도 측에서 멤버쉽 가격에 대한 정보를 제공하지는 않았다. 하지만 어떠한 게임이 포함되는지에 대한 정보는 아래와 같이 공유 하였다. 기존의 콘솔에서 유명 했던 클래식 게임들이 상당..

[Javascript] jquery fade 기능, 천천히 사라지거나 나타내게 하기 [내부링크]

목차 글 시작에 앞서 visual studio에서 jquery 코드를 작성하고 확인하는 방법을 괄호 링크에 있으니 참조하길 바란다. (https://scribblinganything.tistory.com/298) jquery - fade 기능, 천천히 사라지거나 나타내게 하기 fade 라는 의미 그대로 천천히 진행되는 것이다. jquery에서 제공하는 fade 기능은 아래와 같다. $(selector).fadeIn(speed,callback); $(selector).fadeOut(speed,callback); $(selector).fadeToggle(speed,callback); $(selector).fadeTo(speed,opacity,callback); fadeIn은 천천히 나타나게 하고, fadeO..

[Javascript] jquery 버튼 클릭 해서 글자 지우고 나타나게 하기 [내부링크]

목차 글 시작에 앞서 visual studio에서 코드를 작성하고 확인하는 방법을 괄호 링크에 있으니 참조하길 바란다. (https://scribblinganything.tistory.com/298) jquery - 버튼 클릭 해서 글짜 지우고 나타나게 하기 : hide, show $(selector).hide(speed,callback); $(selector).show(speed,callback); selector 를 선정하여 사라지게 하고 싶은 부분이나 나타나게 할 부분을 정한다. 입력인자로 speed와 callback 이 있다. speed는 반응속도를 조절하는 것이고 callback은 hide와 show 이후 실행될 함수를 정의한다. 코드>> 버튼을 누르면 글짜가 사라집니다. 숨기기 결과>> 주석>..

전기 자전거 리뷰 - Radcity 5 Plus [내부링크]

Geared Hub Motor : 750W 충전 당 주행거리 : 50마일(80킬로) 배터리 용량 : 48V, 14Ah 페이로드 : 124.7kg Rad Power Bike 에서 Radcity 5 Plus를 출시하였다. 시애틀에 위치한 이 회사는 자전거 파워트레인을 재설계하였다. 배터리를 반 통합시켰고 라이딩을 더 쉽게, 빠르게, 직관적으로 변경하였다. Radcity 5 Plus 는 Rad Power Bike 에서 출시한 자전거 중 flagship RadRover fat-tire bike 이 후 두번째로 디자인 변경을 많이한 제품이다. Rad Power Bike 사에 따르면 기존의 제품보다 언덕을 40퍼센트 더 빠르게 올라간다고 한다. 자체 개발한 타이어는 도로에서 더 효율적으로 동작하게 도와준다고 한다...

Visual Studio Code에서 Javascript, HTML, Jquery 결과 확인하기 (실행) [내부링크]

Visual Studio Code에서 Javascript, HTML 결과 확인하기 (실행) 1. 아래 그림과 같이 비쥬얼 스튜디오를 실행하고 html 파일 하나를 만들어서 html 코드와 javascript 코드를 작성한다. 2. 아래 그림과 같이 "확장" 탭을 누르고 "live server"를 검색한 후 설치 한다. 3. 다시 코드로 돌아가서 오른쪽 하단에 "Go Live" 를 클릭한다. 4. 아래 그림처럼 결과화면을 볼 수 있다. 6. 코드를 업데이트 할때 마다 브라우져를 껏다 킬 필요 없이 새로고침 해주면 변경된 결과가 반영 된다.

MIL-STD-810H 이란? (데모로 시험해보기) [내부링크]

MIL-STD-810H 이란? MIL-STD-810은 미국 육군에서 개발한 시험 규격으로 다양한 환경에서 시험을 규격에 맞추어 진행하여 시편이 문제가 없는지를 검증하는 규격이다. G버젼까지 개발된 상태였고 2019년에 MIL-STD-810의 H 버젼이 개발되었다. 이번 H 업데이트는 군방 시험 사업(Defense industry)에 중대한 변화였다. 왜 MIL-STD-810이 시험 사업에서 중요한가? MIL-STD-810는 미국 국방부에서 정의한 환경 랩 시험 방법으로 군용 하드웨어의 모든 부분에 대한 규격을 명시하였다. 해당 문서는 1089페이지에 달하는 내용이고 균에 의한 부식 부터 총격에 의한 충격까지 모든 테스트 종류를 포함한다. 해당 규격은 public standard로 누구나 다운 받아 사용할..

(주식) 옵션이란? (Option), 콜옵션/풋옵션, CB콜옵션 예제로 이해하기 [내부링크]

옵션이란? (What is option) 옵선이란 간단히 말하면 계약된 날에 정해진 가격에 주식을 사거나 팔 수 있는 권리이다. 옵션은 사는냐 파느냐에 따라 아래와 같이 두가지로 분류 된다. 콜옵션(Call Option) 풋옵션(Put Option) 콜옵션이란? 미래에 정한 날짜에 정해진 금액으로 계약을 맺은 회사의 주식을 살 수있는 권리이다. 콜옵션을 매수하는 것은 이러한 권리를 가진다는 의미하고 이 권리를 가지기 위해 프리미업(Premium)을 매도자에게 지불해야한다. 매도자는 계약에 따라 콜옵션 매수자가 정해진 날에 정해진 금액으로 주식을 사길 원하면 매도자는 이행해야하는 의무가 있다. 그렇기 때문에 매도자는 옵션 프리미엄을 받게 되는 것이다. 만일 주가가 올라서 저렴하게 콜옵션 매수자가 해당 주식..

전자제품 리뷰 - Amazon Kindle Paperwhite (아마존 킨들 페이퍼화이트) [내부링크]

목차 아마존 킨들 페이퍼화이트 제품 리뷰 아마존에서 3년만에 킨들 업데이트 버젼을 출시하였다. 6.8인치 E-ink 디스플레이화면은 이전 보다 넓은 밝기 대역을 가지고 있고 색깔에 따른 변경이 가능하다. USB-C 타입 충전, 더 빠른 프로세서, 배터리도 이전에 비해 몇 주 더 지속된다. 하드웨어적으로 발전하였지만 3년전 모델의 기본은 충실하게 유지 하였다. 우선 디자인에 큰 변화가 없고 백라이트 내장, 300PPI 해상도, IPX8 방수는 기존과 동일하다. 디스플레이 : 6.8인치 사이즈 : 124.6 x 174.2 x 8.1 mm 무게 : 205g 저장공간 : 8GB / 32GB 배터리 : 빛을 13에 맞추고 하루 30분씩 와이파이 전원을 끈채 사용 시 10주간 사용가능 충전 시간: 9W USB로 충..

파이썬 tkinter - pack란? (간격, 배치, 정렬 방법) 예제로 쉽게 이해하기 [내부링크]

Python tkinter pack 이란? (What is tkinter pack?) grid가 엑셀처럼 행과 열로 위치를 배치했다면(https://scribblinganything.tistory.com/293), pack은 말 그대로 공간에 채워넣는 방법으로 배치하는 것이다. 아래 예제들을 통해 쉽게 이해 해보자 tkinter pack으로 배치하기 코드>> from tkinter import * app = Tk() btn_0 = Button(app, text="top0") btn_0.pack(side="top") btn_1 = Button(app, text="top1") btn_1.pack(side="top") btn_2 = Button(app, text="left0") btn_2.pack(side="..

파이썬 tkinter - grid란? (간격, 배치, 정렬 방법) 예제로 쉽게 이해하기 [내부링크]

Python tkinter grid란? grid는 우리가 일반적으로 사용하는 엑셀처럼 행(row)과 열(column)의 번호를 이용해서 text, label, button 을 배치하는 작업이다. 아래 예제 작업에서 버튼으로 예제를 시행할 것이다. 이유는 네모 모양이라 사이 간격이나 배치 모양이 눈에 바로 들어오기 때문이다. tkinter 배치하기 코드>> from tkinter import * app = Tk() btn_0 = Button(app, text="(0, 0)") btn_0.grid(column=0, row=0) btn_1 = Button(app, text="(1, 1)") btn_1.grid(column=1, row=1) btn_2 = Button(app, text="(2, 2)") btn_..

전기 자동차 리뷰 - 루시드 에어 (Lucid Air Dream Edition) [내부링크]

Air Dream Edition(19인치 휠) : 520마일 Air Dream Edition(21인치 휠) : 481마일 Air Dream Edition Performance(19인치 휠): 471마일 Air Dream Edition Performance(21인치 휠): 451마일 Grand Touring(19인치 휠): 516마일 Grand Touring(21인치 휠): 469마일 Lucid Motor 사의 Air Dream 에디션이 발표되었다. 520마일(836km)로 현재 출시된 전기 자동차 중 가장 긴 주행 거리를 가진다. 이미 EPA(Environmental Protection Agency)에서 일년 전 부터 루시드 에어가 전기차중 가장 긴 주행 거리를 보장할 것이라고 주장했었다. 예전 테슬라 ..

(미국주식)EV, EBITDA란? (야후금융에서 BLNK, CHPT비교해보기) [내부링크]

EV (Enterprise Value) 란? EBITDA (Earnings Before Interest, Taxes, Depreciation and Amortization) 이란? EV와 EBITDA 확인 방법 상대적 지표로 저평가 / 고평가 분석해보기 EV (Enterprise Value) 란? "시총 + 순부채" 로 회사가 가진 총 자산을 의미한다. EBITDA (Earnings Before Interest, Taxes, Depreciation and Amortization) 이란? 영업이익(Earning)을 의미하는데 이자(Interest), 세금(Tax), 감가상각비(Depreciation and Amortization) 를 적용하기 전의 금액이다. 기업이 투자를 위해 사용한 금액이나 영업활동을 ..

파이썬 tkinter 변수값 가져오기(StringVar, IntVar, DoubleVar, BooleanVar) - 예제로 이해하기 [내부링크]

목차 파이썬 tkinter 변수값 가져오기(StringVar, IntVar, DoubleVar, BooleanVar) tkinter에서 만일 텍스트 박스에 텍스트를 입력하고 해당 입력값을 이용하고 싶을 때 그냥 일반 파이썬으로 하듯이 변수를 가져오면 에러가 발생합니다. 변수 선언은 tkinter에서 제공하는 함수를 사용해서 선언해야 합니다. 종류는 아래와 같습니다. StringVar : string 변수를 선언 IntVar : Integer (정수) 변수를 선언 DoubleVar : float (실수) 변수를 선언 BooleanVar : True Flase 변수를 선언 tkinter 변수 예제로 이해해보기 아래 예의 코드는 텍스트 박스와 버튼을 만들고 텍스트 박스에 값을 입력하고 버튼을 누르면 아래에 라..

스태그플래이션이란? 주가방향 (stagflation) [내부링크]

스테그플래이션이란?(What is stagflation?) 스태그플래이션은 간단하게 느린 경제 성장 (Slow economic growth)와 높은 실업률(High unemployment)가 같이오는 상황을 말한다. 느린 경제 성장 높은 실업률 위 두 요소는 높은 물가 상승 (인플레이션, Inflation)을 일으킨다. 스태그플래이션은 다른말로 인플래이션 + GDP(Gross Domestic Product)의 상황으로 불린다. 스태그플레이션은 1970년에 처음으로 인정되었다. 당시 오일충격으로 인플레션을 겪으면서 동시에 많은 실업률이 발생했다. 스태그플래이션 발생 원인 앞서 스태그플레이션은 느린 경제성장과 높은 실업률 (경제 stagnation)이 인플레이션과 함께 올때라고 하였다. 이는 많은 경제 이론..

Gyroscope 센서란? [내부링크]

자이로스코프란? (Gyro senro) 자이로스코프, 자이로 센서(Gyro sensor)는 각속도 센서(angular rate sensor)라고 불린다. 위에 그림처럼 자이로스코프 센서로 각 회전 속도를 잴수가 있다. X, Y, Z 축 각 각의 회전을 Roll, Yaw, Pitch 라고 부른다. 가속도센서(Accelerometer)와 함께 측정하면 진동시험을 진행할 때 시편의 절대적 방향 정보 (Absolute orientation)을 알 수 있다. Gyroscope 장점 회전을 측정 MEM으로 제작되므로 저비용 단점 방향 측정을 위해 가속도 센서와 함꼐 사용해야함 자이로스코프 동작 방식 대부분의 자이로 스코프는 MEMS 기술을 사용한다. MEMS는 Micro Electro Mechanical Syste..

FOMC(연방공개시장위원회)란? FOMC 의사결정과 주가의 향방(연준) [내부링크]

FOMC(연방공개시장위원회)란? FOMC 는 Federal Open Market Committee 의 줄임말로 미국의 연방기금금리를 결정하는 곳으로 간단하게 말하자면 미국내 돈을 풀지 회수할 지를 미국 국채를 통해 조절하는 위원회라고 할 수 있다. 채권을 구매하는 것은 금리인하를 일으키고 금리 인하는 사람들이나 기업이 돈을 더 쉽게 빌릴 수 있게 되어 시장에 유동성을 풍부하게 만들어 준다. 해당 내용은 https://scribblinganything.tistory.com/274 을 참조 하길 바란다. FOMC는 미국정부의 국채를 사고 파는 결정을 하여 미국의 금리를 조절할 수 있다. 즉, 궁극적으로 시중에 돈의 량을 조절할 수 있는 것이다. FOMC의 의사결정 방법 & FOMC 회의 날짜 FOMC는 6주..

(Python, tkinter) jpg, png, jpeg 이미지 파일 업로드 하기 [내부링크]

(Python, tkinter) jpg, png, jpeg 이미지 파일 업로드 하기 예전에 gif를 tkinter를 사용해서 canvas에 업로드 하였고 문제 없이 사용할 수 있었다. 이번에 png 파일을 아래와 같이 동일 코드를 사용해서 업로드 하려고 하였으나 아래처럼 에러 코드가 발생하였다. 문제 코드>> from tkinter import * app = Tk() width = 600 height = 400 pos_x = width/2 pos_y = height/2 canvas = Canvas(app, width=width, height=height) canvas.pack(padx=10, pady=10) img_path = PhotoImage(file=r"C:\Users\forgo\Desktop\fo..

전기자전거 리뷰 - FIIDO X (접이식) [내부링크]

전기자전거 - FIIDO X (접이식) Indiegogo에서 작년에 출시한 Fiido D11 e-bike 이 후 후속 모델이다. 2016년에 설립된 이 중국회사는 이전 D11의 단점을 모두 제거한 모델이라고 자신했다. 가격은 $1,298 (약152만원)으로 기존 D11보다 300달라 정도 정가하였다. 피도 엑스 모델은 아래와 같이 총 3가지 모델이 있다. Fiido X 17kg 수압식 브레이크 417.6Wh 배터리 250W 모터 $1,298 (152만원) Fiido X Lite 16.7kg 디스크 브레이크 208.8Wh 배터리 250W 모터 $1,098 (128만원) Fiido X US 17.5kg 수압식 브레이크 417.6Wh 배터리 350W 모터 $1,298 (152만원) X와 X Lite 의 최고 ..

전기자동차 리뷰 - 벤츠 AMG EQS [내부링크]

Mercedes-Benz AMG EQS 벤츠는 2030년부터는 전기차만을 생산하겠다고 선언했다. 그 중 AMG EQS를 살펴 보겠다. 초고속 세단, 정지 상태에서 60mph 까지 3.4초 걸리고 최고 속도는 155mph(249km/h) 이다. 처음으로 2021년 IAA Mobility show 독일 전시회장에서 첫 선을 보였다. AMG EQS는 사내 자회사에서 처음으로 개발한 전기자동차이다. 구조는 그림처럼 에어로다이나믹하고 부드러운 선 형태이다. 기존의 고객을 전기차로 어떻게 끌오오냐는 기존의 "감정을 자극하는 엔진소리"의 공백을 어떻게 메꾸는가 이다. 이번 AMG EQS의 특징은 아래와 같다. 파워풀한 배터리: 400volt, 107.8kWh 200kW DC 고속 충전, 15분으로 300Km 주행 가..

Python tkinter Canvas 함수 및 옵션 예제로 이해하기 [내부링크]

Python tkinter Canvas 함수 및 옵션 예제로 이해하기 파이썬 tkinter에서 도형 그리기 라이브러리 canvas를 사용해서 그림을 그리고 옵션 기능을 예제를 통해서 설명하겠다. Canvas 선그리기 create_line - 코드>> from tkinter import * app = Tk() width = 600 height = 400 pos_x = width/2 pos_y = height/2 canvas = Canvas(app, width=width, height=height, bg="white") canvas.pack(padx=10, pady=10) shapes = canvas.create_line(width/2, height/2, pos_x+30, pos_y+30, pos_x+50,..

전기자동차 - 복스바겐(VW) Microbus 리뷰 [내부링크]

복스바겐(Volkswagen)에서 처음으로 마이크로버스 컨셉카를 선보인 이후 5년만에 도로 주행하는 마이크로버스를 목격할 수 있었다. 컨센카가 공객된 곳은 2021년 IAA Mobility 전시회 였다. 출시일은 독일에서 2025년 선보일 예정이라고 한다. 복스바겐에서 자율주행 시스템을 ID Buzz라고 명하고 처음으로 Munich 일반 도로에서 운행하였다. 마이크로버스의 내부 하드웨어와 소프트웨어는 피츠버그에 주재한 Argo AI라는 회사에서 개발하였다. 자율주행 시스템 ID Buzz는 400미터 범위의 라이더 센서를 채택했다. 내부는 위 사진처럼 넓은 공간을 가지고 있고 총 7명의 어른을 태울 수 있는 구조이다. 예상 배터리 용량은 225kW로 명기하였다. 아래 그림과 같이 전방에 헥사 형태의 LED..

미국주식) 베타(Beta)계수 란? 확인 방법, 수치 별 의미, 계산 방법 [내부링크]

베타 계수란? 베타 계수란 시장 전체 지수와 비교하여 변동성 정도를 측정한 값이다. S&P 500 Index 는 미국 자체의 지수로 보고 베타(Beta) 값이 1이다. 그리고 다른 일반 기업 주가는 시장 전체 지수와 비교해서 얼마만큰 벗어났는지를 베타(Beta)값을 통해 알려 준다. 간단하게 S&P500 이 +/- 10으로 흔들렸을때 A라는 회사의 주가가 +/- 10이하로 흔들리면 베타(beta) 값이 1보다 작고 +/-10 이상 흔들리면 베타(beta) 값은 1이상 인것이다. 즉, 베타 값이 높으면 투자 관점에서 위험할 수 있으나 더 큰 수익을 줄 수 있다는 의미 이다. 요점을 정리하면 아래와 같다. 베타는 전체 지수 움직임 대비 변동성을 측정하는 지표임 1보다 큰 베타는 지수 대비 변동성이 큰 주식이..

(파이썬) 키보드 입력으로 도형 생성, 움직이는 그림 예제 (canvas, tkinter) [내부링크]

Python - 키보드 event 값 받아서 도형 만들고 키보드 방향키로 도형 움직여 보기 이번 예제는 제목과 같이 tkinter의 canvas 기능을 사용해서 도형을 만들고, 방향키 입력에 맞춰 해당 도형이 움직이는 코드를 작성할 것이다. 예제의 기능은 아래와 같다. 키보드 "o" 클릭 시 원 생성 키보드 "l" 클릭 시 라인 생성 키보드 "s" 클릭 시 사각형 생성 방향키 →←↑↓ 클릭 시 방향에 맞춰서 도형 이동 참고로 파이썬 tkinter canvas 함수들의 기능 및 옵션에 대한 설명은 https://scribblinganything.tistory.com/283 를 참조하길 바란다. 결과 화면 - s 클릭>> 결과 화면 - l 클릭>> 결과 화면 - o 클릭>> 결과화면 - 왼쪽으로 여러번 방향..

전기자전거 - Hummingbird Gen2 리뷰 [내부링크]

접이식 2세대 허밍버드 전기자전거 (The Hummingbird Folding Electric Bike Gen 2.0) 허밍버드는 영국의 3개 유명 전기자전거 제작사 중에 하나이다. 이번에 출시된 접이식 2세대 허밍버드 전기자전거는 $6,224.5 달러 가격으로 책정되었다. 원화로 약 720만원 정도이다. 고스펙 다른 전기자전거에 비교해도 비싼가격이다. (Gocycle에서 발매한 G4 자전거가 $3,999 (462만원)에 판매하고 있다.) 장점 가벼운 무게 쉽게 접히는 구조 고출력 모터 단점 가격 접었을때 컴팩트하지 않음 어설픈 무선 리모콘 기능 위 그림 처럼 래치하나만 풀어도 쉽게 접을 수 있는 형태이다. 쉽게 접을 수 있는 형태이지만 Brompton 과 비교 했을 때 접은 형태가 컴팩트하지 않다. 접..

(파이썬) 새 윈도우창 만들기, 클릭 시 특정 함수 실행하기 예제 (tkinter) [내부링크]

Python) New window 만들기, 새로 만들어진 윈도우 창 클릭 시 색깔 변경하는 예제 만들기 이번 파이썬 예제는 tkinter로 윈도우창을 만들고 윈도우창에 버튼 클릭 시 새로운 창을 만든다. 그리고 그 창을 마우스로 클릭 시 창의 색깔을 변경한다. 기능을 요약정리하면 아래와 같다. 버튼있는 윈도우창 만들기 버튼 클릭 시 새로운 윈도우창 생성하기 새로운 윈도우창 클릭 시 새윈도우 창 색을 빨간 색으로 변경하기 코드 - 새로운 윈도우창만들기>> from tkinter import * import tkinter.ttk as ttk app = Tk() def new_window(): global new new = Toplevel() making_window_btn = Button(app, text=..

파이썬 윈도우창 투명(흐리)하게 조절하는 슬라이드바 만들기 (tkinter) [내부링크]

Python tkinter 모듈로 화면 투명도 변경 예제 만들기 이번 예제는 슬라이드 바를 조절해서 투명도(Blur, Transparent)를 조절하는 코드를 작성할 것이다. 해당 코드에 들어가는 기능을 아래와 같이 정리해보았다. 슬라이드바 구현 버튼 구현 슬라이드바의 정도를 수치로 표기 수치에 따라 화면의 투명도 조절 가능 버튼 클릭 시 투명도 0 상태로 돌리기 우서 코드를 보기 전에 결과 화면을 확인하고 그 뒤 코드를 보도록 하겠다. 결과>> 코드>> from tkinter import * import tkinter.ttk as ttk app = Tk() # alpha는 창의 투명도를 설정함, 1은 투명도0, 0은 완전 투명 def slide(_): app.attributes('-alpha', sli..

(nmap) filtered 의미와 와이어샤크로 filtered 결과 차이 확인해보기 [내부링크]

(nmap) filtered 의미와 와이어샤크로 filtered 결과 차이 확인해보기 C:\windows\system32>nmap -p 443 211.43.203.70 Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-30 18:01 Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn Nmap done: 1 IP address (0 hosts up) scanned in 3.53 seconds C:\windows\system32>nmap -p 443 211.43.203.70 -Pn Host discovery disabled (-Pn). All addresses will be..

IP 검색으로 상세 정보 가져오기 (nmap) [내부링크]

IP 검색으로 상세 정보 가져오기 (nmap) 앞서 포스트에서 nmap을 설치하는 방법(https://scribblinganything.tistory.com/235), nmap으로 동일네트워크에 살아있는 ip 주소 검색하는 방법(https://scribblinganything.tistory.com/272)와 검색에 걸리지 않으면서 ip주소 검색하는 방법과 와이어 샤크에서 확인하는 내용(https://scribblinganything.tistory.com/273)에 대해 알아 보았다. 이번에는 상대방 ip주소를 알고 있을 경우 상대방이 네트워크에 연결되어 있다면 어떤 포트가 열려있는지 어떤 OS(운영체제)를 사용하는지 등 상세 정보를 가져오는 방법에 대한 nmap 기능을 사용해 보겠다. IP 주소로 운영체..

레버리징,디레버리징,제로금리,양적완화의 의미와 관계 (테이퍼링) [내부링크]

래버리징이란? (leveraging) 경제나 일상생활에서도 종종 사용하는 레버리징은 간단하게 말해서 부채를 발생시킨다는 뜻이다. 즉, 돈을 빌려온다는 개념으로 사용할 수 있다. 주식에서 레버리징은 자신의 자본금 이외에 증권사로 부터 돈을 빌려서 투자를 하는 것이고 부동산에서는 전세를 주고 집을 구입하거나 은행에서 대출을 통해 집을 구매하는 것을 레버리징 하였다고 한다. 디레버리징이란? (Deleveraging) 간단히 레버리징의 반대말임 빌린 빚을 갚는 것을 디레버리징이라고 한다. 디레버리징으로 발생하는 문제점 대출상환의 압박으로 자본이 부족할 경우 자산을 팔게됨 매도가 많은 경우 자산의 가치 하락이 발생함 소비가 위축됨 디플레이션 유발 디플레이션으로 상품 경쟁력을 갖추기 위해 기업들은 인원감축 등으로 ..

TCP stealth scan이란? (와이어샤크로 확인하기,nmap) [내부링크]

TCP stealth scan이란? 네트워크 인터페이스(interface) 들을 검색하고 싶을 때 nmap을 통해 쉽게 찾을 수 있다. 우선 nmap 설치는 아래 포스트에서 설명하였으니 혹시 모른다면 참조 하길 바란다. https://scribblinganything.tistory.com/235 앞서 IP 범위를 정해 놓고 해당 IP 중에 살아있는 IP들을 검색할 때 nmap -sT -p 80,443 192.168.0.0/24 를 사용해서 검색하였다. 이때 -sT는 TCP 3핸드쉐이크(3 way hand shake) 방식을 사용하는 데 방법은 아래와 같다 Client -> Sever : TCP SYN 보냄 Client Sever : TCP ACK 보냄 (SYN ACK 받았다는 의미) 위 3단계로 연결이 ..

동일 네트워크에 연결된 IP와 Port 찾기 (nmap) [내부링크]

네트워크에 연결된 IP와 Port 찾기 나와 같은 wifi나 유선/무선 LAN을 사용하는 이웃 인터페이스(interface) 들을 검색하고 싶을 때 nmap을 통해 쉽게 찾을 수 있다. 우선 nmap 설치는 아래 포스트에서 설명하였으니 혹시 모른다면 참조 하길 바란다. https://scribblinganything.tistory.com/235 nmap을 설치하였다면 cmd 창에서 쉽게 검색할 수 있다. 윈도우 검색창에 cmd라고 입력하면 cmd 프롬프트가 열린다. 우선 내 네트워크 정보를 알아야 하므로 아래와 같이 ipconfig 를 입력한다. 내 컴퓨터는 현재 무선(wifi)과 유선 랜으로 동시에 접속하고 있다. 두개 모두 하나의 AP(Access point)에 연결되어있다. 이 AP를 통해 외부 인..

총자산/자기자본/비유동자산 회전율이란? (네이버금융 재무분석 예로 알아보기) [내부링크]

총자산/자기자본/비유동자산 회전율이란? 총자산 회전율 = 매출액 / 총자산 자기자본 회전율 = 매출액 / 자기자본 비유동자 회전율 = 매출액 / 비유동자산 회전율이란 회사에서 자산이나 자본이 매출 대비 어느정도로 회전이 가능한지를 알려주는 지표이다(1년간). 자산 자본 대비 매출액이 증가하면 그만큼 회사의 규모에 비해 매출이 잘나오므로 회전이 빠르다는 얘기이다. 즉, 회전율이 높을 수록 좋은 지표로 볼 수 있다. 총자산 회전율이란 매출 대비 어느정도 총자산에 회수되었는지 알 수 있는 지표이다. 규모가 큰 제조업은 2회전 이상을 긍정적으로 보고 일반적으로 3회전 이상을 긍정적으로 본다. 자기자본회전율은 매출 대비 어느정도 자본이 회수 되었는지를 알 수 있는 지표이다. 5회전 이상을 긍정적으로 본다. 비유동..

가속도센서란? (Accelerometer) [내부링크]

가속도센서란? (What is Accelerometer) 그림1은 Kislter(키슬러)사의 가속도 센서를 나열한 것이다. 국내에는 팜테크에서 키슬러사의 가속도 센서를 판매하고 있다. (www.famtech.co.kr) 제품의 상세 스펙은 아래 링크를 참조하길 바란다. (Measuring range, Frequency response, operating temperature) https://www.kistler.com/fileadmin/files/divisions/sensor-technology/test-and-measurement/t-m-_acceleration/900-380a.pdf 가속도 센서는 진동 센서(vibration sensor) 종류 중에서 현재까지 가장 유명한 타입이라고 할 수 있다. 명..

전환사채란, 향후 주가 방향? (예제로 비교해보기) [내부링크]

전환사채란? 전환사채란? 그리고 전환사채를 발행한 회사의 주가의 미래는 호재로 작용할 것인가 악재로 작용할 것인가? 결론부터 말하자면 호재인지 악재인지를 단기적으로 결정하기는 어렵다 전환사채를 간단히 설명하면 회사에서 전환사채를 발행 하면 투자자는 사채에 보장된 금액을 지급하고 정해진 기간동안 이자를 받는다. 그리고 기간이 지난 후 주식으로 전환할 수 있게 된다. 전환 사채 확인 방법 (ex. 와이더플래닛) 그림1은 와이더플래닛에서 공시한 전환사채권발행결정의 일부 내용이다. 내용 확인은 dart 또는 네이버 금융 전자공시에서 확인 가능하다. 전환가액(행사가액) 이란 돈을 빌려준 투자자는 1주당 24,500원 가치에 주식을 매입한것과 비슷하고 해당 주식을 전환가능기간에 전환가능주식수 내에서 매매가 가능한것..

Pseudo velocity(의사속도) 란? 계산방법과 분석하는 방법 [내부링크]

Pseudo velocity 란? Pseudo velocity = relative displacement(상대변위) x 공진주파수(2 x pi x natural frequency) 그림1은 50g 10ms 충격 시험 결과 30Hz, 85Hz, 250Hz의 시스템 응답의 상대적 변위 (입력 펄스 대비) 값을 측정한 것이다. 30Hz 저주파에서 상대적 변위가 더 큼을 확인할 수 있다. 위 그림1을 주파수 영역에서 확인한 값이다. 저주파에서 높은 변위를 가진다. 앞서 pseudo 속도는 변위에 비례함을 보았다. 그림3은 오토방이 충돌 결과를 저주파 필터를 써서 측정한 값이다. 파란선이 필터전 결과이고 필터를 썼을 경우 선이 깔끔하게 보기가 편하다. 하지만 가속도값이 많이 줄어든다. 줄어든 가속도에 의해 분석에..

비유동비율이란? (네이버금융 ex.신일전자) [내부링크]

비유동비율이란? 비유동비율은 고정비율이라고도 불린다. 일반적으로 설비 투자와 자본의 비율을 보아서 안정적인 투자였는지 판단하는 근거가 된다. 비유동 비율(%) = ( 비유동 자산 / 자본 ) x 100 유동 / 비유동 / 자산 / 자본 에 대한 설명은 앞서 포스트에서 하였다. 상세 내용은 괄호안의 링크를 참조 하길 바란다. (https://scribblinganything.tistory.com/217) 비유동자산이란 간단히 1년안에 현금화가 어려운 자산을 의미 한다. 자본이란 간단히 설명하면 전체 자산에서 부채를 뺀 것을 의미한다. 비유동 비율의 의미는 위 수식에서 드러난다. 비유동자산이란 이미 투자된 자산인것이다. 그리고 자본이란 현재 가진 자본이므로 자본 범위내에서 비유동자산을 가지고 있다는 말은 설..

파이썬 엑셀 파일 읽어서 그래프 이미지(img)파일로 만들기 [내부링크]

파이썬 엑셀 파일 읽어서 그래프 이미지(img)파일로 만들기 이번 프로젝트는 python으로 엑셀 파일에 데이터들을 불러와서 해당 데이터들로 bar graph를 만들어야 하는 일이 었다. 우선 프로젝트 진행 사항은 아래와 같이 정리하였다. openpyxl 로 excel 파일안의 데이터를 5줄씩 가져오기 가져온 데이터를 리스트와 딕셔너리에 저장하기 데이터를 바(bar) 그래프 만드는 클래스 만들기 5줄의 데이터로 그래프를 만들어서 파일로 저장하기 다시 엑셀의 그 다음 5줄 데이터를 불러오기 앞서 동작을 데이터가 없을 때까지 진행하기 엑셀파일>> 임의의 값들로 채웠다. 코드>> 본인 컴퓨터에서 복사해서 실행을 하고 싶다면 주의할 점은 엑셀 파일 위치 경로를 변경해야한다. import matplotlib.py..

평균 제곱, 분산,자유도 (Mean Square, Variance,DOF) 이란? (의미, 계산법) [내부링크]

평균 제곱 (Mean Square) 이란? 평균제곱이란 아래와 같은 수식으로 전개 된다. mean-square 란 신호의 평균 힘(Strength) 또는 파워(Power)를 측정 한 값이다. 그림1은 자동차 진동 신호의 mean-square 측정 값이다. 랜덤 진동 신호의 평균 값은 0이다. mean-square 값은 두개의 신호를 합칠 때 합쳐진 양으로 표현된다. 예를 들어 A와 B라는 신호의 mean-square를 구하면 (A+B)^2 = A^2 + 2 A·B + B^2 만일 A와 B가 평균값이 0인 독립적인 랜덤 변수이면 2AB는 0이고 각 신호의 mean-square를 합친 값이 전체 mean-square 값이 된다. 분산(Variance) 이란? 분산을 수식으로 전개하면 아래와 같다. 알려진 평..

파이썬 엑셀 파일 열 때 에러 해결(SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape) [내부링크]

Python Excel file Open 시 에러 해결 아래 코드는 엑셀 파일을 열고 엑셀의 행과 열에 내용을 var 라는 리스트에 순차적으로 저장하는 코드이다. 코드>> from openpyxl import load_workbook wb = load_workbook("C:\Users\forgo\Documents\data.xlsx") ws = wb.active data = [] cnt = 0 var = [] for x in range(1, ws.max_row + 1): for y in range(1, ws.max_column + 1): var.append(ws.cell(row=x, column=y).value) print(var[0]) print(var[1]) 엑셀파일을 불러오는 과정에서 아래와 같은 메..

당좌비율이란? (계산방법, 네이버금융에서 확인해보기 ex.AP 시스템) [내부링크]

당좌비율이란? 당좌란 "예금자가 수표를 발행하면 은행이 어느 때나 예금액으로 그 수표에 대한 지급을 하도록 되어 있는 예금" 을 의미한다. 간단히 말하면 즉각적으로 현금화가 가능하다는 뜻이다. 당좌비율(%) = (당좌자산 / 유동부채) x 100 당좌비율이란 위 식과 같이 1년안에 갚아야하는 유동부채와 즉각적으로 현금화 할 수 있는 당좌자산과의 비율이다. 즉 높을수록 언제든지 갚을 수 있는 능력이 크므로 긍정적으로 볼 수 있다. 당좌자산은 즉각적으로 현금화할 수 있는 유동자산으로 아래와 같은 형태들이 있다. 현금 예금 외상매출금 받을어음 MMF(Money Market Fund) RP(환매조건부채권) 네이버금융에서 당좌비율 확인해보기 (ex. AP 시스템) 그림1과 같이 AP시스템을 검색하고 "종목분석" ..

Delta Sigma Encoder 란? (델타 시그마 인코딩(필터)), 계산 방법 [내부링크]

Delta Sigma Encoder 란? ADC, DAC 등 변환(Convert)를 하는 과정에서 노이즈가 발생하고 이를 최소화 하는 인코더를 델타 시그마 인코더라고 한다. 그림1은 Delta-sigma encoder의 topology를 표현한 것이다. 그리고 그림2은 해당 그림1을 라플라스(Laplace)변환을 하여 s-domin(s도메인)으로 간략화 한것이다. 적분식은 간단하게 1/s 로 표현된다. 그림에서 보면 알겠지만 입력으로 x(t), v(t) 가 있다. x(t)는 실제 입력 값이고 v(t)는 양자화(Quantization)로 인한 노이즈 입력 값이다. Quantization은 아날로그 신호를 디지털로 바꾸는 과정에서 어쩔수 없이 발생하는 노이즈 성분으로 값이 빠르게 바뀌는 디지털로 인해 고주파..

내부자 거래란? (Insiders, 거래내역 확인방법) [내부링크]

(미국 주식) 내부자 거래란? 주가의 방향을 결정하는 중요한 지표 중에 하나가 내부자 거래이다. 예를 들어 주가가 계속 떨어지고 매출도 좋지 않은 상황인데 회사 CEO나 주요 임원들이 사내 주식을 계속 모은다면 일반적으로 회사의 미래가 밝다고 내부에서 판단했다고 생각될 수 있다. 물론 이를 절대적인 지표로 삼을 수 는 없지만 시총 대비 내부자들이 회사 주식을 사는 량이 많다면 긍적적인 신호로 볼 수 있다. 내부자로 분류 되는 조건은 아래와 같다. (해당 내용은 미국 시장을 기준임) 기업 이사회 발행 주 10% 이상 보유 주주 기업 임원 기업 내부 정보 접속이 가능한 인원 위 조건에 해당하는 사람이 해당 주식을 거래한다면 2거래일 내로 공시하여야 한다. Tiprank 사이트를 이용해서 내부자 거래 확인해보..

Python NMAP 포트스캐너 만들기(wireshark로 결과 확인하기) [내부링크]

파이썬 nmap으로 port scanner 만들기 nmap은 네트워크 검사, 모니터, 시험에 유용한 소프트웨어이다. 파이썬에도 라이브러리를 제공해서 파이썬과 연결해서 사용할 수 있다. nmap을 설치하고 간단하게 파이썬에서 사용하는 방법은 https://scribblinganything.tistory.com/235 글을 참조하길 바란다. 앞선 포스트에서 socket으로 포트스캔을 하였다. (https://scribblinganything.tistory.com/258) socket은 파이썬 내장 함수로 별도의 설치 없이 바로 실행할 수 있다. 이번에는 nmap을 사용해서 실행 해보겠다. 구현하기 코드>> import nmap import ipaddress import re port_regex = re.co..

투자활동/재무활동으로인한현금흐름 이란? (ex. 원익피앤이 네이버금융으로 확인해보기) [내부링크]

투자활동으로인한현금흐름이란? 투자활동으로 인한 현금 흐름이란 회사에서 진행하는 비유동자산이나 투자유가증권 등에 투자에 의해 발생하는 현금의 변화량을 수치화 한것이다. 간단히 말해 회사가 미래를 위해 얼마나 투자를 했는지 투자 규모가 얼마나 증가 했는지를 알게 해준다. 만일 공장 증축에 투자를 하게 되면 투자활동으로 인한 현금은 마이너스가 되지만 장기적으로 긍정적으로 판단할 수있다. 반대로 회사가 사정이 어려워 공장을 팔아야 해서 투자활동으로 인한 현금이 플러스가 되면 이는 현금은 들어왔지만 결과적으로 부정적이라고 볼 수 있다. 투자의 규모는 자본을 고려해서 진행하여야 한다. 해당 내용은 링크를 참조하길 바란다. (https://scribblinganything.tistory.com/255) 재무활동으로인..

Python Socket 만으로 포트 스캐너 만들기(Port Scanner) [내부링크]

Python Socket 만으로 포트 스캐너만들기(Port Scanner) 이번 파이썬 프로젝트는 파이선 내부 라이브러리 socket으로 해당 IP주소의 포트가 열려있는지 검색하는 코드를 제작할 것이다. 포트 검색을 위한 조건으로 아래 2개의 입력을 받을 것이다. IP주소 또는 도메인 주소 (Ex. 127.0.0.1 or www.famtech.co.kr) 포트 범위 (Ex. 0-65535) 구현 방식을 간단하게 설명하면 IP주소값인지 도메인 주소인지 구분을 위해 정규 표현식을 사용해서 구분한다. 정규표현식 구현에 대한 설명은 괄호안에 링크를 참조하길 바란다. (https://scribblinganything.tistory.com/256) 그렇게 받은 입력 받은 값으로 socket.socket 함수를 사용..

(Trailling, Forward) P/E ratio 란? (계산방법, 야후금융에서 확인하기) [내부링크]

P/E ratio 란? P/E ratio = Price Earning ratio 주가수익비율(P/E multiple)은 가장 많이 사용하는 Index중 하나로 수익 대비 주식 시장가로 평가한다. P/E는 해당 회사의 과거 P/E나 동종 기업의 P/E와 비교하여 현재 수준의 주식가격이 과대평가인지 저평가인지 여부를 분석하는 데 도움이 된다. P/E 계산법 P/E = 현재 주가 / EPS (Earning per shares) EPS는 주식당 수익으로 상세 내용은 괄호링크를 참조 하길 바란다. (https://scribblinganything.tistory.com/245) Trailing P/E, Forward P/E EPS를 과거 12개월 값을 사용하느냐 아니면 앞으로 추정하는 12개월 값을 사용하느냐에 따..

(python)정규표현식 예제로 이해하기 - 아이디,이메일,전화번호,포트 [내부링크]

(python)정규표현식 예제로 이해하기 정규식은 일련의 규칙을 이용해서 검색이나 잘못된 양식을 선별할 때 사용한다. 아래 예제들을 통해 기본적인 정규 표현식을 이해해 보자 참고사항(역슬래시 + 문자) \d : [0-9]와 동일 \D : [^0-9]와 동일 \w : [a-zA-Z0-9_]와 동일 \W : [^a-zA-Z0-9_]와 동일 아이디(ID) Regular Expression [ - ] 안은 범위를 의미한다. 예를 들어 [a - c] 는 a,b,c를 가능하게 보는 것이다. [A-za-z]는 소문자 대문자 모두 가능하다. {5,15} 는 최소 5개~15개 반복되어야 한다. 코드>> import re ID_regex = re.compile("([A-za-z]{5,15})") ID_input = inp..

비유동자산, 비유동부채, 자본의 사이의 의미 (네이버금융 예제로 알아보기) [내부링크]

비유동자산, 비유동부채, 자본의 사이의 의미 비유동자산이란 1년 내로 현금화 하기 어려운 자산을 의미한다. 비유동 부채는 1년 내로 값을 필요 없는 부채를 의미한다. 자본이란 자산에서 부채를 뺀 것이다. 위 정의에 대한 상세 내용은 괄호 링크를 참조하길 바란다. (https://scribblinganything.tistory.com/217) 비유동자산 > 비유동부채 + 자본 위와 같은 관계의 재무제표라면 투자 시 상환에 문제가 발생할 수 있다. 비유동자산 < 비유동부채 + 자본 위와 같은 관계의 재무제표라면 투자에 문제가 발생할 가능성이 적다. 비유동 부채 + 자본이란 회사가 운용할 수 있는 돈을 의미한다. 일반적으로 비유동자산 - (비유동 부채 + 자본) 의 차액을 설비투자를 할 경우 자금 조달에 큰 ..

윈도우 포맷 없이 하드 드라이브(디스크) 나누기 [내부링크]

윈도우(Window10) 포맷없이 하드 드라이브(디스크) 나누기 목적>> 현재 C드라이브가 하나이기 때문에 포맷을 하거나 예전으로 설정을 복귀 시 C드라이브에 저장된 파일이 다 지워진다. 만일 D드라이브를 만들어서 개인 파일을 여기에 저장하고 C드라이브만 포맷을 하면 기존의 파일들을 보존할 수 있다. 그래서 이번 포스트에서는 간단하게 윈도우에서 제공하는 하드 Disk 파티션(Partition) 기능에 대해 알아 보겠다. 순서>> 1. 그림1과 같이 검색창에서 pc를 검색하고 "내 PC"를 마우스 우측 클릭하여 관리를 누른다. 2. 그림2와 같이 "저장소" -> "디스크 관리" 에서 (C:) 를 선택하고 (C:) 영역에서 마우스 오른쪽 클릭 후에 불륨 축소를 누른다. 3. 그림3과 같이 디스크 사이즈를 1..

락업이란? 기간과 해지 후 주가 변동을 예제와 함께 보기 (Lock up period) [내부링크]

락업 기한이란? 락업(Lock up)은 간단하게 말하면 투자자가 일정 기간동안 락업이 걸린 회사의 주식을 팔지 못하는 것이다. 일반적으로 락업이 해제되면 기존 투자자들이 가진 주식이 시장에 나오기 때문에 주가가 떨어지는 경우가 많다. 락업이 걸리는 예제로는 크게 2가지가 있다. 헤지 펀드(Hedge fund) 약 30~90일 정도의 기한으로 헤지펀드 매니저가 투자에서 뺄수 있는 시간을 주는 것이다. 스타트업(Start-up), IPO 준비 중인 업체 회사의 리더쉽을 유지 시켜주고 단단한 기반을 유지하는 데 사용 된다. 락업 해제 기한 검색 방법 간단하게 찾고자 하는 회사명과 lockup expiration date를 검색하면 구글에서 정보를 얻을 수 있다. 그림1은 락업 해제 기한을 정리한 사이트이다. ..

Aliasing 이란? Anti-aliasing Filter 이란? [내부링크]

Aliasing 이란? Nyquist-Shanon 샘플링 이론은 연속된 시간 흐름의 파형에서 이산적인 시간흐름의 파형으로 변경하는 과정에서 최소한의 필요한 샘플링 주파수를 얘기한다. 간단히 말하자면 외부에 아날로그 센서로 측정한 값을 디지털로 샘플링해서 변환하는데 측정한 아날로그 값의 훼손을 최소한으로 인정하는 샘플비를 Nyquist frequency 라고 한다. 그림1은 30hz 사인파(녹색)이다. 빨간색 X는 60Hz로 샘플링하는 sampling rate이다. 샘플링을 따라 선을 그으면 어느정도 사인파와 유사하게는 간다. 만일 샘플링 주파수를 60Hz 이하로 하게 된다면 디지털 된 신호는 원신호에서 모양이 많이 다를 것이다. 이렇게 형태가 샘플링 주파수에 의해 변경 되는 것을 Aliasing(앨리어싱..

VIX 지수란? 나스닥,다우,S&P500과 비교해서 투자시점 고민하기 [내부링크]

목차 VIX 지수란? 일반적으로 공포 지수라고도 알려져있는 VIX 지수란 변동성지수(Volatility Index)를 의미한다. 변동성 측정 방법은 S&P500 지수를 이용해서 계산하는 것으로 알려져있다. 공포지수라고 불리는 이유는 미국 지수의 하락에 맞물려서 사람들의 공포심이 증가하는 수치와 유사해서 공포지수라고 불린다. VIX 지수 확인 방법 / 나스닥,다우,S&P500과 비교 그림1은 구글금융에서 확인한 6개월 간의 VIX지수와 그 외 지표들을 백분율로 비교한 것이다. https://www.google.com/finance 사이트에 접속 후 VIX를 검색하면 된다. 다른 Index 추가 방법은 왼쪽 아래 " + 비교추가"라고 적힌 항목을 눌러서 추가하면 된다. 그림1과 같이 미국 Index들과 VI..

Python 버퍼보다 큰 데이터 주고받기 (패킷 보내기, 받기) [내부링크]

Python 버퍼보다 큰 데이터 주고받기 앞서 포스트에서 socket을 이용해서 간단하게 packet을 주고 받았다. 동일 컴퓨터에서 server와 client를 만들어서 간단한 문장을 네트워크 연결 후에 전달하였다. TCP 프로토콜로 주고 받았는데 해당내용은 괄호 안에 링크를 참조하길 바란다. (https://scribblinganything.tistory.com/247) 만일 주고받고자 하는 데이터가 파일이거나 용량이 큰 메세지일 경우 그것에 대비해서 무작정 큰 버퍼를 사용하는 것은 자원 낭비이다. 이번장에서 구현할 코드는 보낼 패킷에 패킷의 크기 정보를 같이 보내서 받는 쪽에서 거기에 맞춰어 패킷이 다 들어올때까지 기다리는 형태로 구현 할 것이다. 이 아이디어는 일반적인 네트워크 프로토콜에서 가져왔..

THD(Total Harmonic Distortion, 고조파왜곡)이란? THD 계산방법 [내부링크]

THD(Total Harmonic Distortion, 고조파왜곡)이란? 그림1은 VibrationView 라는 소프트웨어로 30Hz 사인파를 만들어서 그래프로 나타낸 것이다. 그림1의 위쪽 그림은 시간에 따른 30Hz 사이파이고 아래 그림은 주파수에 따른 그래프이다. 만일 완벽한 30Hz 사인파라면 그림1의 아래 그림은 30Hz에서 하나의 선으로 표기된 형태가 되어야 하지만 보다시피 30Hz에서 큰 값을 가지고 주변 주파수에서도 에너지가 있음을 알 수 있다. 현실에서 완벽한 사인파(Sine wave)는 존재할 수 없다. 위 명제에 따라 엔지니어가 만들어내는 사이파는 이상적인 값이 아니라는 점을 인지하고 진행하여야 한다. 하지만 최대한 사인파에 가까워야지 사인파 관련 이론들을 적용할 수 있다. 그렇기 때..

파이썬 문장(string)을 왼쪽, 오른쪽 끝에 배치하고 싶을 때 (":>" 와 ":<"의 의미, 여백 넣기) [내부링크]

Python 문장(string)을 왼쪽, 오른쪽 끝에 배치하고 싶을 때 일반적으로 string을 작성할 때 앞에 여백을 5칸 넣고 싶을 때 가장 간단하게 작성하는 방법은 아래와 같다. string_test = " start" start 문구 앞에 5번 띄워 쓰기를 해서 작성하는 것이다. 만일 20번 이상 띄우거나 할경우 중간에 띄워 쓰기를 실수할 수 도 있다. 그래서 이를 간단하게 해결 하기 위해 제공 되는 문법이 {총 string 숫자 :>}, {총 string 숫자 :> msg = "hi" print(f"{'start':>10}" + "end") print(f'{len(msg):

python socket이란? AF_INET, SOCK_STREAM 의미, 간단하게 텍스트 주고 받는 서버 만들기 [내부링크]

python socket이란? Socket(소켓)이란 간단히 설명하면 네트워크에서 패킷을 주고 받을 때 각 end 단에서 application으로 넘어가기전에 받아는 버퍼와 같은 것이다. 서버의 경우 서버에 들어오기 전에 Load balancer가 소켓으로 동작한다고 볼 수 있다. 그리고 클라이언트 측에서는 웹브라우저에 들어가기전에 버퍼역할을 하는 것이 소켓이라고 할 수 있다. AF_INET, SOCK_STREAM 의미 AF_INET, SOCK_STREAM 는 socket을 설정할 때 특성 값이다. AF_INET 는 해당 소켓은 IP version 4 용으로 사용하겠다는 의미이다. SOCK_STREAM 는 해당 소켓에 TCP 패킷을 받겠다는 의미이다. 간단하게 텍스트 주고 받는 서버 만들기 코드 - 서버..

PER, PEGR이란? 차이점, 계산법 (네이버금융 종목분석으로 이해해보기 ex.HMM) [내부링크]

PER 이란? PER (Price Earning Rate) PER = 주가 / EPS EPS에 대한 설명은 https://scribblinganything.tistory.com/245 를 참조 하길 바란다. 위 용어가 의미하는 것처럼 "주가수익비율"이 PER 이다. 즉, 주가당 어느정도의 수익을 낼수있는지를 알려주는 척도이다. 일반적으로 PER 이 1이면 1년안에 원금을 회복할 수 있고 0.5이면 반년안에 원금을 회복한다는 식으로 직관적으로 설명하기도 한다. 주식을 통한 원금 회수는 배당을 통해서거나 주가가 올라가서 원금만큼 회수하는 방식이다. 그래서 EPS를 살펴 보면 배당금과 당기순이익의 개념이 들어가있는데 배당은 말그대로 배당이고 당기순이익은 올라가면 주가도 결국 비례해서 올라가기 때문에 EPS에 ..

EPS, PER, PCR, PSR, PBR 이란? (재무제표 예제로 쉽게 이해해보기) [내부링크]

EPS, PER, PCR, PSR, PBR 이란? 정의를 간단하게 설명하면 아래와 같다 EPS Earning per Shares 주식당 이익금 (당기순이익 - 배당금) / 발행주식수 PER이란? 기업이란 이익을 내는 것이 목적이므로 이익 대비 주가로 평가한다. 일반적으로 PER을 3이라고 생각하면 3년안에 원금 회복이 가능하다고 보는 식으로 계산한다. PER Price Earning Ratio 주가와 이익간의 비율 보통주 수정주가 / 최근 분기 EPS PBR이란? 회사의 자본 가치 대비 주가를 평가하는 항목으로 회사에 자본이 많다면 PBR이 낮고 안정적인 투자로 생각할 수 있다. PBR Price Bookvalue Ratio 자산에서 부채를 빼고 난 자본 대비 주가 보통주 수정주가 / 자본 PCR이란? ..

Python으로 wifi 주소 확인하고 비밀번호 입력하여 연결하기 (윈도우 환경) [내부링크]

Python으로 wifi 주소 확인하고 비밀번호 입력하여 연결하기 앞서 블로그에서 wifi 주소 확인할 때 윈도우에 이미 비밀번호가 저장된 환경에서 파이썬으로 접속하였다. 아래 링크 참조하길 바란다. https://scribblinganything.tistory.com/243 만일 저장된 비밀번호를 확인하는 파이썬 코드를 보고 싶다면 아래 링크를 참조하길 바란다. https://scribblinganything.tistory.com/190 이번 장에는 wifi에 새로운 프로필에 접속시 처음으로 비밀번호를 입력해야 하는 경우 와이파이 SSID 주소와 비밀번호를 입력해서 접속하는 코드이다. 코드>> import os os.system("netsh wlan show networks interface=Wi-Fi..

Python으로 wifi 주소 확인하고 연결하기 (윈도우 환경) [내부링크]

Python으로 wifi 주소 확인하고 연결하기 (윈도우 환경) 조건>> window os 환경에서 visual studio 로 python을 사용하여 접속할 수 있는 와이파이 주소 목록을 가져오고 그중에 하나를 접속할 예정이다. 한가지 유의할 점은 접속할 와이파이 비밀번호가 내 윈도우에 이미 저장되어 있다. 그러므로 파이썬에서 비밀번호 없이 접속이 가능하다는 점을 염두해 두자. 다음 글에서 수동으로 SSID와 비밀번호를 입력해서 접속하는 코드를 올리겠다. 코드>> import os os.system("netsh wlan show networks interface=Wi-Fi") Selected_SSID = input('접속을 원하는 SSID를 입력하세요 :') try: os.system(f'''cmd /..

3축 진동(3 Axis) 시험기 - VR로 세팅해보기 [내부링크]

3축 진동 시험기 3축 진동 시험기는 그림1과 같이 3개의 진동 시험기가 X, Y, Z축 3방향으로 밀어준다. 3축 진동 시험을 하기 위해서는 위와 같은 장비에 헤드 익스팬더(Head Expander)가 부드럽게 3방향으로 움직일 수 있게 내부에 베어링 설계가 잘되어야 한다. 2축 진동 시험에서는 한개의 VR Controller 만으로 제어가 가능했다. 하지만 3축 진동 시험의 경우 다른 프로파일(Profile)로 진동을 줄 수 있어야 하므로 3개의 제어기가 필요 하다. 각 VR9500 제어기는 가속도센서를 통해서 진동값을 받아오고 Drive 채널을 통해 진동 시험기 가진을 준다. 3축 진동 시험 특징 3개의 제어기에서 각 축의 진동 시험기 제어를 맡음 각 축의 테스트 프로파일(Test Profile)은..

윈도우 화면 우측 아래 광고 차단(삭제)하기 [내부링크]

문제 현상>> 그림1과 같이 윈도우 화면 아래에 광고 팝업이 뜰 때가 있다. 광고의 원인은 아래와 같이 크게 2가지로 나눌 수 있다. 카카오톡, 알집, 곰플레이어와 같은 프로그램에서 동작시키는 광고 크롬에서 허용된 알람에 의한 광고 해결 방법>> 첫번째 원인의 경우 프로그램을 삭제하거나 시작 프로그램에서 제외 시켜야 한다. 시작 프로그램 제외 방법은 https://scribblinganything.tistory.com/215 글을 참조 하길 바란다. 하지만 프로그램을 제거하지 않는 이상 해당 프로그램을 실행 시키면 광고는 나오게 되어있다. 두번째 원인의 경우 아래와 같은 순서로 알람을 차단한다. 1. 크롬 브라우져 오른쪽 상단에 점세개를 클릭 하고 "설정" -> "개인정보 및 보안" -> "사이트설정" ..

2축 진동 시험 (Dual axis 제어) - VR9500 으로 설정해보기 [내부링크]

2축 진동 시험 (Dual axis 제어) 그림1과 같이 2개의 진동 장비를 사용하여 2축으로 흔드는 시험을 Dual Axis Vibration Test 라고 한다. 2축 진동 시험을 하는 경우는 그림1처럼 시편이 길어서 하나의 진동 시험기로 시험하기가 어렵거나 2개의 축을 다른 Phase로 진동을 하거나 할 때 필요 하다. Dual Axis 제어 실험의 종류 - 그림2와 같이 진동 시험기를 나란히 배치하고 동일 진동 파형으로 주는 경우이다. 변위(Phase)에 따라 다른 형태의 진동이 된다. - 그림3은 진동 시험기를 위에서 본 형태이다. Slip table을 이용해서 한쪽은 밀고 한쪽은 당기고를 번갈아 진행하는 형태이다. 위와 같은 형태의 시험을 하기 위해서는 파형이 정확하게 동일하고 변위가 180도..

법인세비용차감전계속사업이익/손실 이란? -관리/상장폐지 조건 [내부링크]

법인세비용차감전계속사업이익/손실 이란? 홈택스에서는 아래와 같이 법입세비용차감전계속사업손익을 표현하고 있다. " 법인세비용차감전계속사업손익이란 기업의 계속적인 사업활동과 그와 관련된 부수적인 활동에서 발생하는 손익으로서 중단사업손익에 해당하지 않는 모든 손익을 말한다. 법인세비용차감전계속사업손익은 중단사업손익이 있을 경우에만 나타나며 영업손익에 영업외수익을 가산하고 영업외비용을 차감하여 산출한다" 법인세비용차감전계속사업이익 = 계속사업이익 + 중단사업이익 + 법인세비용 위 수식은 법입세비용차감전계속사업손익을 간략하게 표기한 것이다. 계속사업이익, 중단사업이익에 대한 내용은 https://scribblinganything.tistory.com/231 를 참조하길 바란다. 네이버금융에서 직접 검색해서 알아보..

(유상/무상)감자란 하는 이유? (자본, 자본금, 예제로 이해해보기) [내부링크]

감자란? 감자는 간단히 말하여 발행한 주식을 없애는 것이다. 예를 들어 10분의 1 감자는 주식 10개 중에 9개를 없앤다. 즉, 주주 입장에서는 감자를 통해 보유하는 주식이 없어지는 것이다. 유상감자 : 감자를 통해 주식을 태울때 주식당 일정 금액을 주주에게 돌려줌 무상감자 : 감자를 통해 주식을 태우고 주주에게 돌려주는 부분 없음 그러므로 유상감자는 주식당 돌려주는 금액에 의해 호재가 될 수 도 있고 아닐수도 있다. 하지만 일반적으로 무상감자의 경우 악재로 본다. 감자를 하는 이유? 감자를 하는 이유를 알기 위해서는 아래 수식을 알아야 한다. 자본 = 자본금 + 자본잉여금 + 이익잉여금 간단히 말하자면 자본금은 회사가 주식을 발행할 때 액면금액 x 주식수 이다. 자본잉여금은 현재주식금액 x 주식수 -..

시스템응답(System Response) S-plane 의 Pole의 위치에 따른 의미 [내부링크]

시스템 응답 (System Response) 시스템 응답은 전달함수(transfer function)을 통해 알 수 있다. 전달 함수를 표현하는 방식은 아래와 같이 크게 두가지로 분류 된다. 주파수 도메인 (Freqeuncy domain) 주파수 도메인으로 시스템 응답을 표혀하는 방식은 Bode diagram, Nyquist diagrams, Nicholts chart 방식이 있다. s-plane s-plane(평면)는 전달함수의 pole과 zero 값을 표기 한다. y축은 허수이고 x축은 실수 이다. https://scribblinganything.tistory.com/151 글과 같이 라플라스 변환을 통해 s에 대해 분모 가 0이 되게 하는 값이 pole 값이다. 이 pole 값에 의해 System ..

자본잠식이란(계산방법)? - 상장폐지/관리 조건 [내부링크]

자본잠식이란? - 상장폐지 조건 자본 잠식이란 회사가 가진 자본금과 자본총계의 비율이다. 자본잠식 = 100% - (자산총계/자본금) x 100% 아래 네이버금융을 이용해서 솔루스첨단소재 재무제표를 통해 자본 잠식률을 어떻게 계산하는지 알아보자 네이버에서 솔루스첨단소재를 검색하고 종목분석 - 기업현황 을 클릭하면 아래와 같은 차트를 볼 수 있다. 그림1에서 자본잠식과 관련된 지표는 자산총계와 자본금이다. 19년 12월 지표를 보면 100 - 100 x 4942/40 하면 마이너스이므로 문제 없다. 자본잠식에 의한 상장 폐지 조건은 아래와 같다. 유가증권시장 관리 : 자본금 50%이상 잠식 상폐 : 자본금 전액 잠식, 자본금 50%이상잠식 2년 연속 코스닥시장 관리 사업연도(반기)말 자본잠식률 50%이상 ..

Python 에서 Nmap 설치 하고 네트워크 검색(port)해보기(설치시 에러 해결) [내부링크]

Python 에서 Nmap 설치 하고 네트워크 검색해보기 현재 나는 윈도우 OS를 사용하고 파이썬 프로그래밍 툴로 Visual Studio를 사용한다. 이를 기초로 Nmap을 설치하고 동작 시켜볼 예정이다. Nmap 설치 코드>> import nmap nm = nmap.PortScanner() print(nm.scan('127.0.0.1', '22-443')) 위와 같이 단순한 코드를 동작 시켰다. 하지만 아래와 같은 에러메세지가 발생하였다. AttributeError: module 'nmap' has no attribute 'PortScanner' 웹 검색결과 "pip install nmap" 으로 설치하는 것이 아닌 "pip install python-nmap" 으로 설치하라고 하여 다시 아래와 같이..

파이썬 List 최대, 최소 값 차이 구하기 (feat. 파이썬 동작 시간 측정으로 가장 빠르게 구하는 방법은?) [내부링크]

Python List 최대, 최소 값 차이 구하기 (feat. 파이썬 동작 시간 측정으로 가장 빠르게 구하는 방법은?) 리스트 안에 많은 값들이 있다고 가정을 하고 이 중에 가장 큰 값과 작은 값을 구하는 방법은 여러가지가 있다. 이 중에서 대표적인 2가지 방법으로 아래 2가지 방법을 사용하겠다. min, max 함수를 사용하여 구하기 Python 내장 함수 sort를 사용하여 정렬로 구하기 예제 코드를 통해 구해 보기 코드>> import sys import time import random def max_diff0(values: list[int]) -> int: temp_max = 0 temp_min = sys.maxsize for value in values : temp_min = min(temp_..

스트레인 게이지(Strain Guage)란? - VR에서 테스트 세팅해보기 [내부링크]

스트레인 게이지란? 그림1이 Strain Guage이다. 이름 그대로 스트레인 값을 측정한다. 그림의 포일(Foil)이 구부러지거나 꼬이면서 게이지에서 전기저항이 발생하고 이를 Wheatstone Bridge 방식으로 측정한다. 그림2는 앞서 전기저항을 측정 하는 방법으로 Half Bridge와 Quarter Bridge 방식을 사용한다. 그리고 측정된 전압은 Conditioner 라고 불리는 증폭기(Amplifer)를 거쳐서 VR9500 과 같은 장비에서 읽어낸다. 증폭기의 Gain을 분석 장비가 받을 수 있는 전원으로 변경해야 한다. VR9500 은 +/- 1, 10 ,20V 전원으로 읽는 것이 가능하다. VR9500에 연결해서 테스트 세팅해보기 1. 그림3과 같이 진동 장비 위에 빔의 위쪽과 아래 ..

Charge Accelerometer (차지 가속도센서) 란? - 데모 프로그램으로 설정해보기 [내부링크]

전하 가속도 센서란? (Charge Accelerometer) 이름에서 알 수 있 듯이 가속도 센서는 가속도를 측정하는 센서이다. Charge Accelerometer 에서 Charge는 전하를 의미한다. 분석기에서 측정값을 읽기 위해서 전압을 사용하기 때문에 전하를 전압으로 변경하여야 하낟. 그렇기 때문에 별도의 전원(Power source)가 Charge Accelerometer에 공급 되어야 한다. 앞으로 데모 프로그램(VibrationViewer) 을 사용하는데 이 소프트웨어는 VR9500 하드웨어를 통해 분석하는 툴이다. VR9500에서 Charge Accelerometer를 사용하기 위한 전원을 공급해준다. 그림1에서 검은색 박스가 VR9500 제품이고 여기서 채널을 통해서 전원을 공급한다. ..

재무제표 - 계속사업이익, 중단사업이익 이란? (ex, 두산중공업) [내부링크]

계속사업이익, 중단사업이익 이란? 우선 간단히 말하자면 재무제표에서 계속사업이익과 중단사업이익은 아래와 같다. 당기순이익 = 계속사업이익 + 중단사업이익 어떤 회사가 A와 B라는 사업을 진행한다고 생각을 하자 A라는 사업에서 영업이익이 발생하는데 B라는 사업에서는 적자만 발생하여 B라는 사업을 접기로 하였다. 간단히 말하자면 계속사업이익은 A라는 사업의 영업이익에 영업외비용을 제한 금액이고 중단사업이익은 B라는 사업의 영업이익에 영업외비용을 제한 금액인것이다. 이를 통해 만일 단기적으로 당기순이익이 안좋게 나올 수 있지만 앞으로 중단사업의 적자가 없어진다고 예측 할 수 있다. 네이버금융에서 "두산중공업" 예제로 이해하기 아래 차트는 네이버 금융에서 두산중공업을 검색하고 "종목분석" 탭을 클릭후 "재무분석..

노트북 팬 소음 심하게 클 때 CPU 사용량 조정으로 소음 없애기(윈도우) [내부링크]

원인>> 노트북이나 데스크탑을 사용하다보면 쿨링 팬(Fan)에서 소리가 크게 나서 거슬릴때가 많다. 소음이 많이 발생한다는 의미는 CPU에서 발열이 높게 발생하였을 가능성이 높다. 그래서 일반적으로 CPU의 열을 낮추는 것으로 해결 한다. 해결방법>> 1. 먼지 제거 그림1처럼 만일 침대나 먼지가 많은 곳에서 랩탑을 사용하다보면 저렇게 먼지가 끼인다. 먼지만 제거 해도 소음을 많이 잡을 수 있다. 2. 먼지가 아닌 컴퓨터의 CPU가 감당할 수 없는 크기의 어플리케이션이 동작 하거나 나도 모르게 전원을 키면 시작 프로그램으로 여러 프로그램이 동작 할 수 도 있다. - 그림2와 같이 작업 관리자를 실행 시킨다. - 그림3과 같이 "프로세스" 탭에서 CPU 항목을 클릭하면 높은 순으로 정렬된다. 만일 CPU ..

매출액, 영업이익, 당기순이익의 관계와 상장폐지 조건 [내부링크]

매출액, 영업이익, 당기순이익의 관계는? 결론부터 정리하면 아래와 같다. 매출액 = 매출원가 + 매출 총이익 매출 총이익 = 판매비 및 일반관리비 + 영업이익 영업이익 = 영업외이익/비용 + 특별이익/손실 + 법인세 + 당기순이익 아래는 "뷰웍스"라는 회사의 재무제표를 네이버 금융에서 확인한 자료이다. 종목분석 - 재무분석 - 포괄손익 계산서 에서 확인이 가능하다. 그림1에서 볼 수 있듯이 위 수식에 따라 매출액, 매출 총이익, 영업이익, 당기 순이익을 구할 수 있다. 앞서 https://scribblinganything.tistory.com/222 에서 왜 당기순이익의 결과를 왜곡할 수있는지에 대해 언급하고 "영업 활동으로인한 현금흐름" 수치가 중요한지 언급하였다. 실적에 따른 상장폐지 조건 상장폐지 ..

국제 규격에 따른 Random/Sine/Shock Test(진동 시험) 정리 [내부링크]

Random Test (랜덤 시험) DOF (Degrees of Freedom) 규격 그림1은 Mil Std 810, Def STAN00-35, RTCA DO160, AECTP-400, ISO 60068-2-64 규격에 따른 DOF를 정리한 것이다. 그림2 위의 공식은 DOF의 갯수를 계산하는 식이다. 2를 곱한 이유는 FFT 당 2개의 DOF를 제공하는 것이다. 그리고 (내 생각으로는) 주파수 정밀도(Frequency Resolution)과 Averaging Time을 곱해서 몇개의 프레임(Time Domain)을 사용하였는지 갯수를 알 수 있다. 그림2의 그래프는 DOF 갯수에 따른 정밀도인데 RTCA 160에 따라 100DOF를 사용하고 -1.5dB 범위를 가져가게 되면 그래프에 따라 Accurac..

사인진동시험(Sine Testing)이란? - VibrationView으로 시뮬레이션해보기 [내부링크]

사인시험이란? (Sine Test) 현실에는 없는 진동 (Not Real World) 특정 주파수로 주는 진동 사인진동 사용 목적 Engineering Evaluation 시편의 공진 주파수 (Resonance) 찾기 FEM (Finite Element Model, 유한 요소 모델) 검증 시편의 기능, 디자인 검증 공진 주파수에서 피로도(Fatigue) 시험 Production Testing 시험 스펙에 따라 Pass / Fail 기준으로 사용 사인 시험 파라미터 사인(Sine) 시험에서 가속도(G), 속도, 변위, 주파수 4가지로 결정됨 변위는 Peak to Peak를 사용하고 가속도, 속도는 Peak 값임 4가지 요소중 2가지를 알면 그림1의 식에 따라 다른 요소를 계산할 수 있음 사인 시험 종류 F..

사업/반기/분기보고서 제출기한 (재무제표 발표일정) [내부링크]

회사의 실적을 발표에 따라 주가의 방향이 결정된다. 그래서 Dart에서 빠른 확인이 필요하다. 1년의 결산 발표를 사업보고서라고 하고 4개월단위로 발표하는 보고서를 분기보고서라고 한다. 그리고 6개월 단위로발표하는 보고서를 반기 보고서라고 한다. 1, 3분기에 발표는 반기가 되고, 2분기 발표는 반기이고 4분기에 발표는 사업보고서가 된다. 사업/반기/분기보고서 제출기한 위 그림은 Dart에서 가져온 제출 일정이다. (https://dart.fss.or.kr/introduction/content2.do) 2020년 사업보고서 최종 제출일 : 2021년 3월 31일 2021년 1분기보고서 최종 제출일 : 2021년 5월 17일 2021년 반기보고서 최종 제출일 : 2021년 8월 16일 2021년 3분기보고..

Cross Axis Acceleration (교차축 가속도) - 규격에 따른 내용 정리 [내부링크]

Cross Axis Acceleration (교차축 가속도) 이란? 그림1, 그림2와 같이 진동 시험기(진동장치, Shaker)의 헤드 익스팬더(Head Expander)는 주파수에 따라 모드가 그림2처럼 변한다. 그리고 시편을 올리게 되면 이에 따른 mode shape이 변경된다. mode shape에 따른 교차되는 축의 움직임을 Cross axis motion 이라고 한다. Cross axis motion이 크게 발생하게 되면 원치 않는 에너지가 시편에 전달 되므로 이를 최소로 관리 하여야 한다. 그래서 아래와 같은 국제 규격에서 Cross axis motion 에 대한 규격을 설정 하였다. MIL-STD-810 그림3은 Military Standard 규격이다. D, E에서는 Cross Axis M..

Nose Floor 문제 - Ground Loop 이란? [내부링크]

셋업 상황>> VRC Controller 가 가속도 센서를 통해 진동 시험기를 제어함. VRC Controller에서 보낸 신호는 Amplifier를 통해 증폭되어 진동 시험기에 들어가고 진동시험기에서 읽은 가속도 값은 Closed loop 형태로 제어됨 문제 현상>> 위 그림1과 같이 Controller에서 신호를 보내지 않았는데 가속도 센서에서 측정된 Noise floor 중 특정 주파수가 높게 나옴 해결 방법>> 시편에 비해 큰용량의 진동 시험기를 사용할 경우 노이즈가 들어 올 수 있음. 먼저 진동시험기에 손을 올려 진동이 있는지 느껴보고 없을 경우 Ground Loop일 가능성이 높음 Ground Loop 란? 제어를 위한 Controller와 증폭을 위한 Amplifer는 각 각 전원을 공급 받..

Chrome(크롬)이 멈추거나 실행이 안될때 (열리지 않을때) 해결 방법 [내부링크]

문제 현상 >> 브라우져로 크롬을 사용하는 데 사용 중에 가끔씩 동작이 안되거나 멈춤현상이 발생한다. 그 뒤에 브라우져(Browser)를 열려고 하면 열리지가 않았다. 하지만 윈도우 Edge 브라우져는 정상적으로 동작 하였다. 재 부팅을 하면 다시 크롬을 사용할 수 있었지만 문제는 종종 발생하였다. 해결 방법 >> 1. 우선 가장 간단하게 할 수 있는 방법이 컴퓨터 재부팅을 하거나 "Ctrl+Alt+Delete" 키를 입력하여 아래 그림1처럼 작업관리자를 실행하고 크롬을 강제 종료 후 실행한다. 2. 일시적인 문제가 아니고 지속적으로 발생하는 경우 크롬에 설치된 확장 프로그램을 확인하고 불필요한 프로그램을 삭제한다. 크롬 우측 상단에 확장프로그램 관리에서 삭제가 가능하다. 3. 유해한 프로그램 삭제 및 ..

현금흐름 - 영업활동으로인한현금흐름 이란? (네이버금융, ex.두산퓨어셀) [내부링크]

현금흐름 - 영업활동으로인한현금흐름이란? 재무분석을 할때 이익을 당기거나 수익을 왜곡하는 식의 변형이 어려운 재무 값들이 있다. 현금흐름이 그 중 하나이다. 그러므로 현금흐름에 대한 재무 분석이 중요하다. 아래 예제를 통해 이해해보자 네이버 금융에서 현금흐름 확인하는 법 (ex.두산 퓨어셀) 현금흐름 분석을 위해 두산퓨어셀을 검색해서 알아보겠다. 그림1과 같이 "재무분석"을 클릭하고 아래에 "현금흐름표" 탭을 클릭하면 현금흐름을 확인할 수 있다. 영업활동으로 인한 현금흐름 " 영업활동으로 인한 현금흐름 = 당기순이익 + 현금유출이 없는 비용 등가산 - 현금유입이 없는 수익 등차감 (+/-) 영업활동으로 인한 자산부채 " 당기순이익은 앞서 언급한대로 여러 요인(재고조작, 이익시기조작)으로 왜곡이 가능하지만..

Bootstrap(부트스트랩)예제 가져와서 Visual Studio에서 실행하고 웹브라우져에서 확인하기(browser) [내부링크]

사용방법에 대해 간략한 소개 Bootstrap 에서는 많은 무료 예제 Front end (Html + CSS)를 제공한다. 예제를 비쥬얼 스튜디어에서 실행해서 HTML을 즉각적으로 확인하면서 변경할 필요가 있다. 이를 위해 필요한 확장 툴 "Live Server"가 필요 하다. 다음은 설치 부터 사용에 대한 방법을 알려주겠다. 설치 순서 및 확인 1. 그림1과 같이 Visual Studio를 실행하고 왼쪽에 조각난 네모그림(확장)을 클릭하면 필요한 확장 툴을 찾을 수 있는 검색창이 나온다. 검색창에 "live server" 라고 검색한다. 2. 그림1처럼 설치가 완료 되면 오른쪽 하단과 같이 "Go Live"라는 텍스트가 생긴다. 3. 그림2와 같이 Bootstrap 예제 화면에 접속한다. (https:..

selenium 에러발생 시 해결방법 "selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element" [내부링크]

Xpath 검색 시 문제 사항 나라장터 사이트에서 검색을 통해 들어간 페이지에서 text를 가져오려고 하는 파이썬 셀레니움(selenium)을 실행하는 코드를 작성하였다. 하지만 xpath를 통해 검색하였으나 아래와 같은 에러메세지와 함께 코드가 동작되지 않았다. selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element 내가 해결한 방법을 공유하겠다. 공유하기에 앞서 동일한 에러메세지라도 상황에 따라 내 해결책이 적용되지 않을 수 있음을 감안하길 바란다. 해결 코드>> import time from selenium import webdriver driver = webdriver.C..

사업 보고서에서 유상(무상)증자 확인(검색)하는 방법 (Dart) [내부링크]

사업 보고서에서 유상증자 확인하는 방법 (Dart) 주식을 함에 있어 주의 해야하는 부분이 유상 증자이다. 회사가 유상 증자를 한다는 것은 자본이 부족하여 추가로 주식을 발행하여 돈을 끌어들이겠다는 의미이기 때문이다. 그러므로 유상증자를 자주 하는 회사의 경우 투자를 하지 않는 게 장기적으로 현명한 판단이 아닐까 싶다. 이 회사가 유상 증자를 했는 지 확인하는 방법은 전자 공시 시스템을 통해서 알 수 있다. 1. 그림1 과 같이 http://dart.fss.or.kr/ 에 접속한다. 2. 그림2와 같이 회사명을 입력하고 "정기공시"를 클릭하고 "사업보고서"를 클릭한다. 그리고 나오는 사업보고서를 클릭한다. 3. 그림3과 같이 사업보고서 목차에서 "I.회사의 개요" -> "3.자본금 변동사항" 을 클릭하면..

PSD(Power Spectral Density)란? 계산하는 방법 [내부링크]

PSD(Power Spectral Density)란? Power 신호의 크기를 제곱 평균 (Mean Sqaure) 로 표현한 것이다. 실제 마력이나 와트와 같은 Power 값을 의미하는 것이 아닌 수학적인 의미에서 제곱 평균은 파워를 의미한다. 예를 들어 교류 전기의 파워는 전류의 제곱 평균을 저항으로 나눈 것이다. 이처럼 파워 값은 제곱 평균에 연결되어 있다. Spectral 주파수 도메인에서 PSD를 표현한다. 파장의 스펙트럼(spectrum)에 따라 빛의 색깔이 다르게 표현 되듯이 PSD는 주파수 스펙트럼에 따라 표현한다. Density PSD의 크기(magnitude)는 Bin이라고 부르는 주파수(frequency, Hz) bandwidth로 normalized 되어 표현된다. 즉, G^2/Hz ..

재무상태표(대차대조표) - (유동/비유동)자산, 부채, 자본 이란? 네이버 재무재표 보면서 이해하기 [내부링크]

자산, 부채, 자본 이란? 간단히 말하면 자산 = 부채 + 자본 이다. 예를 들어 아파트를 샀을 때 은행에 진 빚을 부채라고 생각할 수 있고 나머지를 자신의 돈으로 지불했을 때 자신의 돈을 자본이라 하고 자산은 아파트 전체 가치 인것이다. 간단히 말해서 자산보다 자본이 많은 회사가 튼튼한 회사이다. 그림1은 네이버의 재무재표표이다. 20년3월 자산 총계는 137,660 이다. 자산총계 = 유동자산 + 비유동자산 유동 자산, 비유동자산 이란? 위 유동자산 65,336 에 비유동자산 72,324 를 더하면 자산 총계가 나온다. 유동 자산은 1년안에 현금화 할수 있는 자산을 말하고 비유동 자산은 현금화가 1년 이상 걸리는 자산을 얘기 한다. 유동 부채, 비유동 부채 란? 그림2는 네이버 재무재표 중 일부이다...

CSD (Cross Spectrum Density) 이란? [내부링크]

CSD (Cross Spectrum Density) 이란? CSD(Cross Spectrum Density) plot 은 주로 랜덤(random) 이나 충격(shock) 시험에서 분석을 위해 사용하는 그래프이다. 해당 Plot 은 서로 다른 신호를 비교해서 Correlation을 알려 준다. 예를 들어 진동 시험기에서 Drive 신호와 Input 신호를 비교 할 수 있다. 측정에서 측정 값 사이에 시간차(time delay)가 발생한다. 그 결과 신호 사이에 위상(phase) 차가 발생한다. CSD 는 두 신호 사이의 위상 정보와 크기(amplitude) 정보를 가진다. 위상과 크기 정보를 가진다는 점에서 CSD는 전달함수(Transfer function)과 유사하다. 하지만 weighting 함수가 C..

윈도우(win) 부팅 시 시작 프로그램(자동실행) 추가/제거 2가지 방법(작업관리자, Registry) [내부링크]

윈도우에서 프로그램 설치 시 자동으로 실행되는 프로그램들이 있다. 사용하지 않는 프로그램이 자동으로 실행되면 메모리와 CPU 파워를 소모하므로 좋지 않다. 아래에 2가지 방법을 통해 자동으로 실행되는 프로그램을 추가 하거나 제거 할 수 있다. 1. "작업 관리자"를 사용하여 시작 프로그램 추가 제거 - 그림1과 같이 "작업 관리자"를 검색하여 실행하거나 "Ctrl + Shift + Esc" 키를 입력하여 작업관리자를 실행한다. - 그림2와 같이 "시작프로그램" 탭에서 마우스 오른쪽 클릭 후에 "상태"를 사용 안함으로 변경하면 시작프로그램에서 제거되는 것이고 사용 하면 사용 되는 것이다. 2. Registry (레지스트리) 에서의 시작 프로그램 추가/ 제거 - 그림3 과 같이 "registry" 를 검색해..

파이썬으로 이메일 보내기 (gmail 예제 해보기) [내부링크]

Python으로 Gmail에서 이메일 보내기 Gmail을 이용해서 파이썬으로 이메일을 자동으로 보내려고 한다. 우선 기본적인 개념에 대해 설명하자면 smtp라는 이메일을 위한 프로토콜(protocol)이 있다. 이메일을 주고 받을 때 해당 프로토콜에 맞추어 메일 보내야지 컴퓨터나 서버는 문제 없이 읽을 수 있다. 파이썬에서는 이러한 프로토콜을 자동으로 지원하는 smtplib 라는 모듈/라이브러리 가 있다. 해당 모듈을 사용하면 프로토콜을 신경 쓰지 않고 보내는 사람, 받는 사람, 참조(CC), 비밀참조(BCC), 제목, 내용 등 실제 이메일 보낼때 필요한 정보만 입력 하면된다. 우선 GMAIL에서 제공하는 smtp 서버에 접속해서 보내야 하는데 smtp 서버에 접속하려면 아이디와 비밀번호가 필요 하다. ..

충격 시험(Shock Test)이란? (종류, 정의) - 시물레이션으로 검증 [내부링크]

Half Sine Pulse Traditional / Common Method 펄스가 빨리게 상승하는 모양이 아니기 때문에 고주파 영역 전달 에너지가 적음 고주파 영역에서 공진을 가지는 시편 시험에 적합하지 않음 Terminal Peak (Sawtooth) Shock Pulse 고주파에서 동작시키는 전자제품과 같은 시편 테스트에 적합 가파르게 올라가는 가속도 구간이 고주파 영역의 에너지를 증가시킴 주파수 도메인에서 평평한 형상을 보여줌 주파수 영역에서 시험 비교 (Half Sine vs Terminal) 고주파 영역에서 Half Sine Pulse(녹색선)은 구멍(hole)처럼 ESD(Energy Spectral Density)가 떨어짐 그외 충격 시험들 (Sqaure, Traiangle, Haversi..

진동 시험기(Vibration Tester, Shaker)에서 충격 시험(Shock Test) [내부링크]

진동 시험기 vs 충격 시험기 에서의 충격시험 진동 시험기(shaker)는 다양한 모양의 Pulse를 만들 수 있다. 그리고 반복적인 시험이 가능하고 시간, 비용 면에서 효율적이다. 하지만 진동 장비로 충격시험을 진행할 때 고려해야할 점들이 있다. 일반적인 충격 시험기(Shock machine)으로 충격 시험을 하면 충격 시험기의 무게, 브레이크, 가스 피스톤(gas piston), 기계적 장치에 의해 충격 시험후 테이블을 멈추게 할 수 있다. 하지만 진동 시험기는 테이블을 멈추게 할 기계적인 장치들이 없다. 그리고 진동시험기(shaker)가 낼 수 있는 속도(velocity)와 변위(displacement)가 장비에 따라 고정되어 있다. 이러한 제한점을 해결하기 위해 VibrationViewer 와 같..

Shock Response Spectra (SRS) 이란? (시뮬레이션으로 확인해보기) [내부링크]

Shock Response Spectra (SRS) Shock에 대해 SDOF(Single Degree of Freedom)이 반응하는 것을 그래픽으로 표현한 것이다. (가속도 변화) 충격 응답은 시간 도메인보다 주파수에서의 분석을 주요하게 다룬다. 주파수 변환 방법에는 2가지가 있다. SRS은 아래 2가지 방법중 2번째 방법을 사용한다. FFT (Fast Fourier Transformer) : Magnitude(크기)와 Phase(위상) 정보를 줌 - 다시 원 충격 pulse 재현 가능 일련(an array of)의 SDOF 응답(Peak hold 값) : Magnitude정보만 존재 Phase 정보는 없음 - 원 충격 pulse 재현 불가능 1933년 Dr.Maurice Bigot가 지진에 대한 빌..

파이썬 리스트(list) 합치기, 중복 내용 지우기, 정렬하기 (예제로 바로 이해하기) [내부링크]

Python list 값 합치고 중복 내용 지우고 정렬하기 코드>> #################################################################### # Raw data #################################################################### x = [0,20,40,60,80,90,100,105,110,115] cae_x = [0,10,20,30,40,50,60,70,80,90,100,115] #################################################################### # Combine x and cae_x # Remove repeated x data # Sort x ..

진동 시험기 VR Controller 10가지 추가 기능 [내부링크]

1. Unit Calculator 그림1과 같이 Unit 단위 변경 이나 추가가 가능하고 오른쪽 상단처럼 계산이 가능하다. 2. Multiple Instance 하나의 컴퓨터로 2개의 VR Controller 제어가 가능하다. 그림2단계를 거쳐서 수동으로 아이피를 만들고 고급으로 하나 더 추가한다. 그림3에서 앞서 설정한 두개의 아이피를 Controller를 연결한다. (상세 내용은 https://vibrationresearch.com/webinar/10-things-you-can-do-with-your-vr9500-version-2014/ 참조할 것) 3. Hardware Clock 그림3에 Option에서 제공하는 기능이다. 다른 VR Controller 같에 읽어오는 data의 Sync 를 기존에 ..

진동에서 Transmissibility란? (진동 전달률) [내부링크]

Transfer function(전달 함수)와 Transmissibility 의 차이 전달함수(Transfer function)은 일반적으로 대문자 H로 표기하고 시스템의 Resonance(공진)과 Anti Resonance(반공진)의 주파수 값을 알려준다. Transmissibility 는 일반적으로 대문자 T로 표기한다. 우리나라말로 전달률이라고 하는데 전달함수와 의미가 비슷하게 다가 온다. 하지만 아래 수식처럼 의미가 다르다. Tyx(f) ≜ Ŝyy(f) / Ŝxx(f) (real ÷ real = real) Ĥ1(f) ≜ Ŝyy(f) / Ŝyx(f) (real ÷ complex = complex) 수식에서 x는 입력을 의미하고 y는 출력을 의미한다. 그리고 f는 주파수를 나타낸고 S는 신호이다. H..

SRTD(Sine Resonance Track & Dwell), 사인스윕으로 공진주파수 찾기 [내부링크]

SRTD 예제와 함께 익혀 보기 진동 시험기(가진기, Shaker)는 Controller로 제어를 통해 사인 진동, 랜덤 진동과 같은 진동을 줄 수 있다. 사인 파형을 이용한 진동 시험에 대한 내용은 괄호안에 링크를 참조하길 바란다. (https://scribblinganything.tistory.com/179). 참고로 예제 구현은 VR에서 제공하는 Controller 소프트웨어의 데모 버전을 이용해서 시뮬레이션 하였다. (무료) (https://vibrationresearch.com/products/). 국내 대리점(https://www.famtech.co.kr/main/main.php) Sine Sweep test Controller에 사인파형의 주파수를 바꾸면서 공진 주파수를 찾는 과정이다. 공진..

파이썬 scapy 모듈에서 에러메세지 발생할 때 해결방법 (네트워크 scanner) [내부링크]

예제 목적 scapy 라이브러리를 이용해서 네트워크에 ARP 패킷을 보내어 접속되어 있는 네트워크 장치를 검색하는 코드를 작성하였다. 코드 >> import scapy.all as scapy network_info = scapy.arping("192.168.0.0/16") 코드 설명>> scapy 모듈을 import 한다. scapy 에 있는 arping이라는 함수를 사용하여 IP 대역을 위처럼 입력하면 해당 구간에 자동으로 ARP 요청을 보내서 정보를 받는다. 그리고 만일 해당 아이피에 네트워크 장치가 있다면 자동으로 결과 값을 print 로 return 해 준다. 결과-에러발생>> "WARNING: No libpcap provider available ! pcap won't be used" "WARN..

파이썬 @staticmethod 란? (예제로 이해하기, 골뱅이마크 의미) [내부링크]

staticmethod란? staticmethod 는 Class 안에서 보통 정의 된다. 그리고 앞에 골뱅이 (at) 마크와 함께 표기 한다. Class에 대한 내용을 알고 싶다면 괄호안의 링크를 참조하길 바란다. (https://scribblinganything.tistory.com/203) 그리고 골뱅이 마크 (앳 마크)가 의미하는 것을 알고 싶다면 옆에 괄호안의 링크를 참조하길 바란다. (https://scribblinganything.tistory.com/160) 간단히 골뱅이 마크의 의미를 설명하자면 골뱅이 마크 옆에 쓰인 함수가 그 밑에 정의된 함수를 인자로 가져다가 쓰는 것이다. 여기서 staticmethod는 파이썬에서 제공하는 함수로 생각하면 된다. 기능은 간단하게 말하자면 staticm..

파이썬 Class 상속(Inheritance)란? (예제로 알아보기) [내부링크]

앞서 포스트에서 python의 Class와 Object에 대해 예제를 통해 이해해 보았다. 해당 내용은 괄호 안에 링크를 통해 확인할 수 있다. (https://scribblinganything.tistory.com/203) 이번 장에서는 파이썬 클래스의 상속에 대해 알아보겠다. Python Class 상속이란? 상속이란 말 그대로 물려 받는 다는 의미 이다. 다른 클래스의 특성을 물려 받는다고 간단하게 생각할 수 있다. 상속을 설명하기 위해 두가지 용어를 사용한다. 1. 추상화(abstraction) 2. 상속(inheritance) 추상화란 내가 만들 여러개의 Class에서 공통된 성질이 있다면 공통된 성질을 모아서 Class를 만드는 것을 추상화 작업이라고 한다. 상속이란 이렇게 추상화 작업을 통해..

파이썬 Class와 Object란? (예제로 알아보기, 내장함수 확인하기) [내부링크]

python 에서 class와 object 를 설명할 때 붕어빵을 비유하여 설명을 많이 한다. Class는 붕어빵을 만드는 틀이고 Object는 틀에서 만들어진 붕어빵인 것이다. Class 는 변수와 함수로 구성된다. 예제를 통해 이해해보기 코드 >> class parent: def __init__(self, father, mother): self.pop = father self.mom = mother def description(self, no_ch): self.no_children = no_ch print("My father is ", self.pop) print("My mother is ", self.mom) print("I have ",self.no_children,"children") A_fam..

Fatigue Damage Spectrum (FDS) 란? [내부링크]

랜덤 진동 (random vibration) 시험에서 PSD(Power Spectral Density) 는 랜덤 파형을 분석하기 위한 표준이 되는 툴이다. PSD는 시간에 따른(Time frame) 실제 환경(real world)에 비교되는 시험환경을 제공한다. 만일 전체 life damage를 알고 싶다면? 시험 엔지니어가 오랜기간동안 damage가 제품에 쌓이고 이에 따른 제품의 반응을 알고 싶다면 Fatigue 시험이 필요하다. Fatigue testing을 통해 제품의 예상 수명 (Life expectancy)와 예상 고장 모드 (Potential product failure)를 알 수있다. FDS (Fatigue Damage Spectrum) 이란? FDS는 시험 개발 툴 (test develo..

Octave 란? (FFT 방식과의 차이, Octave band) [내부링크]

Acousitic (음향) 측정 값을 이용해서 엔지니어는 Acoustic environment (음향 환경) 이나 디자인의 문제를 발견하고 해결 한다. 하지만 acoustic 측정 값은 주파수 정보를 가지고 있지 않기 때문에 sound(소리) vs vibration(진동) 관계를 분석하기에는 적합하지 않다. 이러한 상황을 해결하기 위해 엔지니어는 octave 분석이라는 주파수 분석 방법을 사용한다. Octave 란? 옥타브는 간단히 말하면 주파수 2배 차이를 1 Octave 라고 한다. 음향(Acoustic)을 분석할 때 Octave 분석을 하게 되는 데 이는 사람의 인지와 상관이 있다. 사람이 100Hz ~ 110Hz 주파수에서 동일 크기로 소리가 날때 10Hz 차이를 느꼈다고 가정하면 동일한 사람이 ..

무선인터넷 카드 Mac address 바꾸기 (윈도우 registry 사용해서 변경) [내부링크]

무선 인터넷 카드 MAC 주소 변경하기 앞서 유선 인터넷 카드의 맥 주소를 쉽게 변경하였다. 해당 내용은 괄호안의 링크를 참조하길 바란다. (https://scribblinganything.tistory.com/199) 해당 링크에서 MAC Address 에 대한 설명 및 확인 방법이 자세하게 나와있다. 앞서 유선 인터넷 카드에서 변경이 가능했던 이유는 항목이 있어서 쉽게 변경이 되었는데 와이파이를 사용하기 위해 무선 인터넷 카드가 필요한데 여기 카드에는 변경 항목이 없다. 그러므로 registry 에서 변경하여야 한다. 변경 방법은 아래와 같다. 네트워크 카드 MAC 주소 변경 실습 1. 그림1과 같이 "레지스트리 편집기" 또는 "registry editor"를 검색해서 실행한다. 2. 그림2와 같이 ..

윈도우에서 mac 주소 확인하고 변경하기 (무료와이파이 연장 팁) [내부링크]

window 10 에서 mac address 찾아보고 변경하기 공항이나 기차역에서 무료로 와이파이를 제공한다. 하지만 대부분 시간 제한이 걸려 있다. 제한을 거는 방식은 일반적으로 이용자의 컴퓨터 맥주소(mac address)를 기반으로 한다. 그러므로 맥 어드레스를 변경함으로 써 와이파이 시간 제한이 걸릴때 피할 수 있는 것이다. Mac address 란? (맥 어드레스) 그림 1과 같이 6바이트(48비트)로 구성되고 앞에 3바이트는 OUI (Organisationally Unique Identifier) 로 개인적으로 주어지는 고유 번호이고 NIC (Network Interface Controller)는 네트워크 카드 회사에서 정해 놓은 고유 번호이다. NIC 를 알면 어느 회사에 어떤 제품인지 알 ..

random time history 파형 (field 가속도 값 PSD로 바꿔 보기) [내부링크]

Random time history 파형 랜덤 시간 파형은 예를 들어 간단히 설명하면 차량에 가속도 센서를 붙이고 시험자가 원하는 길에서 주행을 하면서 측정한 필드 값이다. 필드 값은 현실 상황을 가장 잘 반영하는 파형이라고 할 수 있다. Random time history waveform을 사용하는 이유는 아래와 같다. 1. 제품의 failure의 원인(cause) 파악 2. 시험 방법 검증 3. 현재 시험 방식과 현실(real-world) 시험 방식 비교 Random 시간파형(Field 측정값) 을 사용하여 PSD(Power Spectral Density) 만들기 예제 참고로 PSD에 대한 자세한 내용을 알고싶다면 괄호안에 링크를 참조하길 바란다.(https://scribblinganything.ti..

파이썬에서 DB에 비밀번호 암호화(hash)해서 저장하기(flask,mongodb) [내부링크]

hash 암호화 해서 DB에 저장하는 법 파이썬에서 웹페이지를 만들때 사용자의 암호를 평문으로 데이터베이스에 저장하면 안된다. 암호화 방법 중에 가장 많이 사용하는 방법으로 hash를 사용하는 방법이 있다. 나는 hash를 사용해서 암호화를 사용하는방법에 대해서 예제를 통해 구현하려고 하기 때문에 hash에 대한 자세한 설명은 생략하고 자 한다. hash 란 간단한 의미? hash에는 SHA-1, SHA-256, SHA-512 등 다양한 기법이 있는데 간단하게 말하면 입력으로 일정한 값이 있으면 출력은 입력의 사이즈에 상관없이 일정한 크기로 나온다. 그리고 입력에 1비트만 바뀌어도 출력은 완전 다른 값이 나온다. 물론 길이는 동일하다. 앞서 말한 hash 기법에 따라 출력 길이나 출력이 나오는 값이 달라..

flask와 mongodb를 사용해서 회원가입페이지 간단히 만들어보기(signup) [내부링크]

회원 가입 페이지 만들기 이번예제의 목표는 flask와 mongodb를 연동해서 사용하는 것이다. 구성은 가입할수 있는 html 페이지를 만들고 가입 신청을 하면 mongodb에 저장하고 저장한 값을 print로 읽어 볼 것이다. 이번 예제에서 구현할 기능은 아래와 같다. html에서 email과 password 입력하는 form 테이블 만들기 값을 입력하지 않으면 flash 로 경고창 띄우기 데이터베이스(mongodb)에 저장하고 읽기 비록 간단한 예제이지만 구현하기 위해 flask 기본, flash 사용방법, mongodb 설치가 필요하다. 각 각에 대한 설명은 아래 링크를 보면 간단한 예제와 함께 설명 되어 있으니 참조하길 바란다. flask 기본 : https://scribblinganything..

[Python] MongoDB 설치, 파이썬과 연동(robomongo/robo 3t) [내부링크]

목차 Mongodb, robomongo 윈도우에 설치 Mongodb 설치 과정 1. 괄호안의 사이트를 들어가서 아래 그림1과 같이 "On-premises", "platform: Windows", "Package:msi" 로 설정하고 msi 파일을 다운 받는다. (https://www.mongodb.com/try/download/community). 내 컴퓨터에 mongodb를 윈도우 버전으로 설치하는 파일을 받는 것이다. 2. Next 를 누른다. (그림2) 3. 체크박스를 체크하고 Next를 누른다. (그림3) 4. Complete 를 실행한다. 설치하고자 하는 폴더를 변경하고 싶으면 Custom을 실행한다(그림4) 5. 그림5와 같이 설정하고 Data와 Log를 다른 폴더로 관리한다. 여기서 폴더 경..

sinc 함수란? (파이썬으로 그래프 그려보기) [내부링크]

Sinc function 이란? sinc(x) = sin(πx) / πx ------- 식(1) Sinc function을 수식으로 표현하면 식(1)과 같이 나온다. Sinc 함수를 처음 접하게 된 계기는 샘플링 된 신호를 다시 Continuous 한 신호로 변경하는데 Sinc interpolation을 사용하면서 이다. Interpolation에 대한 간략한 설명은 링크를 참조하길 바란다. (https://scribblinganything.tistory.com/193) 파이썬 코드로 Sinc 함수 그려 보기 식(1)을 우선 Python을 통해 그래프로 그려보자 코드>> import matplotlib.pyplot as plt import numpy as np x = np.linspace(-4, 4, 4..

Interpolation 이란? (Lagrange interpolation 설명 및 파이썬으로 구현해보기) [내부링크]

Interpolation 이란? 샘플링(sampling)이란 연속적인(Continuous) 신호를 컴퓨터에서 처리하기 위해 이산(discrete) 신호로 변경하는 작업이다. 가령 온도 센서가 있으면 컴퓨터가 온도 센서를 읽기 위해 ADC(analog to digital conversion) 과정을 거쳐서 디지털 값을 컴퓨터가 읽게 된다. 인터포레이션(Interpolation)은 샘플링에 반대 되는 개념이다. 그림1과 같이 샘플링 된 값을 다시 연속적인 신호로 바꾸는 작업이다. 여기서 중요한 부분은 얼마나 원 신호에 가깝게 복원하는가 이다. (waveform approximation) 라그랑지안 다항식 보간법 (Lagrange polynomial interpolation) 라그란주, 라그랑주, 라그랑지안 ..

[Python] MySql 생성, 삭제, 검색 (pymysql, create, delete, search 예제 포함) [내부링크]

목차 데이터베이스(Database, DB) 생성(Create) 코드>> import pymysql db_connect = pymysql.connect( host='localhost', port=3306, user='kc', passwd='toor', charset='utf8' ) db_connected = db_connect.cursor() sql_cmd = 'create database users_db;' print(db_connected.execute(sql_cmd)) 결과>> print 값은 1로 나옴, 하나가 생성되었다는 의미 주석>> 그림1과 같이 MySQL에서 제공하는 CMD를 이용해서 database 를 "show databases;"로 확인하였고 users_db가 생성됨을 알 수있다. 코드..

Rainflow counting 이란? [내부링크]

Rainflow Counting Algorithm 정의 / 의미 레인플로우 카운팅 알고리즘은 피로(Fatigue) 분석에 사용됩니다. 그림1과 같이 시간에 따른 응력(stress) 변화가 그림처럼 전개 되면 피로 분석이 쉽지 않다. Rainflow Counting algorithm은 여러 성분이 포함된 그래프를 단순한 형태의 stress reversal (양과 음으로 변환하는 형태)로 바꾸어 준다. y축은 stress, strain 등 가해지는 입력에 따라 다양하게 적용 가능하다. Rainflow counting 전개는 아래 그림2와 같이 진행 된다. 그림2의 위에 그림은 그림1과 같은 그래프를 눕혀 놓은 것이다. 시간이 흐름에 따라 0 -> 1 -> 2 -> 3 -> 2' -> 4 -> 5 식으로 전개..

(파이썬)subprocess, os.system, re.findall, re.search를 사용한 간단 예제 - wifi 비번찾기 [내부링크]

컴퓨터에 저장된 와이파이 비밀번호 파이썬으로 출력하기 예제의 목적 및 구현 방법 예제는 앞서 "cmd" 명령프롬프트로 구현한 wifi 비밀번호 찾기를 python으로 구현한것이다. 해당 예제는 괄호안에 링크를 참조하길 바란다. (https://scribblinganything.tistory.com/188) cmd에서 우리가 사용하는 명령어를 쉘이라고 하고 파이썬에서는 쉘 명령어를 os 모듈 또는 subprocess 모듈에서 지원해 준다. os 모듈과 subprocess 모듈의 차이점은 사실 비전문가 입장에서 사용방법을 제외하고는 거의 유사하다. 가령 나중에 나올 예제에서 chcp, netsh 라는 쉘명령어는 os.system에서 실행되지만 subprocess.run에서는 netsh은 되지만 chcp는 실..

Fatigue Damage 란? 분석 방법 (피로도, 피로 손상, SN curve, FDS) [내부링크]

피로손상 (Fatigue Damage) 피로 손상이란? UUT(Unit under test)는 다음의 2가지 원인에 의해 손상된다. Unit이 가지는 Stress limit을 넘어선 충격 장기간(Long term)에 피로(fatigue)로 인한 손상(damage) 시험 시간을 줄이기 위해 동일한 양의 피로 손상(Fatigue Damage)을 UUT에 가속으로 가한다. 피로도 계산 방법 (Fatigue Calculation) - SN curve, Miner's 법칙 MIL-STD-810G 에 따르면 시험 시간을 줄이기 위해 가장 일반적으로 사용되는 방법은 Miner Palmgren의 가설(hypothesis)이다. Power law(지수)로 fatigue의 관계를 정리하기 때문에 Log-Log plot에서..

컴퓨터에 저장된 와이파이(wifi)명과 비밀번호 확인하는 방법 - 윈도우(window) [내부링크]

와이파이(wifi) 이름과 비밀번호(password) 확인하는 방법 목적 누군가 집에 왔을 때 내가 사용하고 있는 무선 인터넷의 비밀번호를 알려주어서 무선인터넷을 같이 사용하게 해줄때가 있다. 하지만 비밀번호를 분실하거나 잊어버릴 경우 무선공유기에 접속해서 비밀번호를 확인해야한다. 하지만 무선공유기에서 로그인하는 과정을 거쳐야하기 때문에 이 또한 피곤한 일이다. 간단하게 내 컴퓨터가 해당 와이파이에 비밀번호를 입력해서 접속한 기록이 있으면 그 기록을 간단하게 읽을 수 있다. 해결 방법 1. 그림1과 같이 윈도우(window) 검색창에 "cmd"를 입력해서 명령 프롬프트를 실행한다. 2. 그림2와 같이 "netsh wlan show profiles" 명령어를 입력해서 이 컴퓨터가 접속한 무선인터넷(wlan..

mysql 아이디, 비번 분실 시 부분 재설치로 아이디 비밀번호 다시 만들기 - 윈도우 환경 [내부링크]

mysql 아이디(ID), 비밀번호(재설정) 문제상황 mysql을 설치하고 몇주 지난뒤에 사용하려고 하니 아이디와 비밀번호가 기억이 나지 않았다. 검색을 통해 보니 "mysqld.exe --skip-grant"로 접속하여 flush로 다 날리고 다시 하라고 하였다. 하지만 Access denied for user ~ (using password: YES) 나 Access denied for user ~ (using password: NO) 와 같은 메세지와 함께 접속이 안되어서 서버만 재설치하여 아이디와 비번을 새로 만들기로 한다. 주의할 점은 기존의 DB는 삭제된다. 해결책 1. 그림1과 같이 윈도우 검색창에 "MySQL Installer - Community" 프로그램을 검색해서 실행한다. 2. 그림..

사인 진동시험 vs 랜덤 진동시험 비교 (Sine vibration test, Random vibration test) [내부링크]

Sine 진동 테스트와 Random 진동 테스트 싸인 진동시험과 랜덤 진동시험 프로파일(Profile) 예시 그림1의 왼쪽은 사인 Sweep 진동 시험 Profile 예제이다. 3.5G from 5 to 50Hz 1.5G from 50 to 300Hz Limit to 0.4inch double amplitude Test all axes to same level 그림1의 오른쪽은 랜덤 진동 시험 profile 예제이다. 0.015G^2/Hz from 10 to 40Hz 0.015G^2/Hz at 40Hz to 0.00015G^2/Hz at 500Hz Test all axes to same level Sine 진동 테스트와 Random 진동 테스트 비교 Sine vibration 은 Gpk (가속도 피크값)..

[Python] 파이썬으로 mysql 연동하기 - 윈도우(window)환경 [내부링크]

목차 MySQL 설치 및 Database 만들기 1. 우선 window에 mysql을 설치한다. https://dev.mysql.com/downloads/installer/ 사이트에서 "MySQL Installer for Windows" 를 선택해서 다운 받았다. 2. 설치과정에서 user ID와 비밀번호를 설정할 수 있는데 나는 user ID를 'kc'로 하고 비밀번호를 'toor'로 설정하였다. 3. port 번호는 DB에 접속하기 위한 포트번호인데 mysql에서 default로 3306번을 준다. 변경 가능하지만 그냥 default port 번호를 사용하였다. 4. 아래 그림1과 같은 MySQL 8.0 Command Line Clinet 를 실행하고 앞서 만든 비밀번호 입력하고 접속한다. 5. 그림..

Kurtosis(첨도), Crest factor(파고율) 란? [내부링크]

Kurtosis(첨도) Kurtosis 정의 Kurtosis는 아래 그림과 같이 뾰족하게 나온 응답의 "peakiness"을 통계적으로 알려주는 척도이다. High Kurtosis = High Peak Low Kurtosis = Low Peak Crest factor Crest factor 는 실제 현실 입력값과 진동장비(shaker) 시험 입력 값을 비교하기 위해 사용한다. 수식으로 아래와 같이 표기한다. Crest Factor = Peak값 / RMS값 Kurtosis 값을 변경하여 Random test 입력값을 실제 현실(Real world) 값에 가깝게 변경가능하다. 랜덤진동시험(random vibration test)에서 Kurtosis를 사용하는 이유 일반적인 진동은 가우시안(Gaussian)..

오버샘플링(Oversampling)이란? (Fourier Transformer) [내부링크]

Oversampling Over-sampling 이란? 나이퀴스트(Nyquist) 샘플링 이론에 따르면 신호의 Aliasing(앨리어싱)을 막고자 샘플링 주파수를 최소 신호 주파수의 2배 이상을 하도록 한다. 오버 샘플링(Over-sampling)이란 샘플 횟수가 Nyquist rate 보다 크게 하는 것을 의미한다. 샘플링을 한 값을 푸리에 변환을 하게 되면 DTFT (Discrete Time Fourier Transformer) 방식을 사용하게 된다. 그러므로 오버 샘플링과 DTFT 주파수 변환 값 사이의 관계를 이해하는 것이 중요하다. Over-sampling vs DTFT 관계 Over-sampling vs DTFT 관계를 이해하기 위해서 우선 FT(Fourier Transformer)와 DTFT..

FT(Fourier Transformer) 와 DTFT(Discrete time) 비교, 그래프와 수식으로 이해하기 (푸리에 vs 이산시간 푸리에변환) [내부링크]

FT(Fourier Transformer, 푸리에 변환) vs DTFT(Discrete Time Fourier Transformer, 이산 시간 푸리에 변환) FT(Fourier Transformer, 푸리에 변환)와 DTFT(Discrete Time Fourier Transformer, 이산 시간 푸리에 변환) 결과 차이 1. x(t)라는 신호에 대해 푸리에 변환을 하고 X(ω)로 표기하자. 2. x(t) 신호를 τ 시간 간격으로 샘플링을 하고 나온 그래프를 y(n) 이라고 하자. y(n) = x(n x τ) 3 . y(n)을 DTFT를 하여 나온 값을 Y(ω)로 표기하자. 질문) 1~3번 과정을 통해서 x(t)라는 신호에서 FT를 이용해서 X(ω)와 샘플링과 DTFT를 이용해 Y(ω)를 구하였다. X..

FFT(Fast Fourier Transform)이란? 샘플링 rate, Bandwidth, 측정시간, 주파수정밀도(resolution) 사이 trade off 관계 예제로 이해하기 [내부링크]

FFT(Fast Fourier Transform) - Sampling rate, Bandwidth, 측정시간, 주파수정밀도(resolution) FFT(Fast Fourier Transform)란? 푸리에(Fourier) 변환을 수식으로 보면 그림1과 같다. 전 시간 영역을 적분하여 주파수 영역에 대한 수식으로 변환해주는 것이다. 푸리에 변환을 사용한다면 주파수 분석하고 싶은 신호를 다 받은 다음에 처리가 가능하다. 하지만 실시간으로 신호의 주파수 분석에 대한 요구가 생겼고 이를 가능하게 해주는 것이 FFT(Fast Fourier Transform) 이다. 실제로 실시간 분석은 아니고 아래 그림과 같이 시간(T)을 조각내서 주파수 분석을 올려준다. 빠른 컴퓨팅 기술을 사용해서 사용자는 마치 실시간과 같이..

확률분포함수, 누적분포함수, 가우시안분포란? 정말 쉬운 예제로 이해해보기(PDF, CDF, Gaussian) [내부링크]

확률분포함수, 누적분포함수, 가우시안분포란? 확률분포함수란? (PDF, Probability distribution function) 어떤 일련의 사건을 확률변수(random variable)를 이용해서 확률값을 실수로 표현하고, 분포 그래프를 알면 해당 이벤트의 확률적 특성을 알 수 있게 된다. 그림1과 같이 간단히 동전을 예로 들어 설명하면 동전을 던졌을 때 앞면과 뒷면이 나올 확률을 확률분포함수(PDF, Probability distribution function)로 표현할 수 있다. 여기서 앞면이냐 뒷면이냐가 확률변수(random variable) 이다. PDF는 소문자 f(x)를 사용해서 x값 중에 확률변수 값이 정해지면 그 변수가 나올 확률을 아래 그림처럼 표현해준다. 참고로 그림3은 대칭 그..

사인 진동이란 그리고 사인 진동 적용분야? (Controller 예제를 통한 사인진동 구현, Sine Sinusoidal vibration) [내부링크]

사인 진동 (Sine, Sinusoidal wave vibration) 사인 진동이란? 그림1과 같이 Vibration controller에서 만든 진동 파형을 Amplifer 를 거쳐 진동기에서 파형에 따라서 동일한 진동을 만들어 준다. 여기서 사인 파형을 사용하여 만든 진동을 사인 진동이라고 한다. 사인 진동의 특성은 sin(2*pi*f*t) 에서 일정한 주파수 성분을 가지고 있다. 하지만 현실 환경(Real world environment)는 랜덤 진동과 관련이 있고 특정 주파수만 가지는 가진은 현실에서 보기 어렵다. 사인 진동 (Sine wave vibration) 적용 사례 아래 항목들이 사인파 진동을 사용하는 경우이다. 사인 스윕(sweep)를 이용해서 순차적으로 주파수를 이동하면서 시편의 응..

파이썬 blueprint 란? 간단한 예제로 이해해보기(flask, python) [내부링크]

Python flask blueprint blueprint란? blueprint를 간단하게 설명하면 우리가 윈도우에서 게임은 게임별로 사진은 사진별로 깔끔하게 폴더를 정리하듯이 blueprint는 flask에서 제공하는 라이브러리로 페이지나 기능에 맞게 백엔드를 분류해서 사용하기 편하게 해준다. 사용법을 간단히 말하면 아래와 같다. 1. "from flask import Blueprint" 를 해서 blueprint를 가져온다. 2. Blueprint를 사용하여 객체를 만들고 만들어진 객체를 통해 동일한 url로 묶어 준다. 가령 책을 읽는 페이지와 쓰는 페이지를 책이라는 url에 묶어서 /book/write와 /book/read 를 쓸때 /book 이라는 url로 묶은 것이다. 자세한 내용은 아래 예제..

파이썬 폴더위치에 따른 import 방법 (상위,하위,동일 폴더 위치)을 예제로 이해하기 [내부링크]

Python folder 모듈 import Python folder 상대적인 위치에 따른 모듈 import 방법 일반적으로 *.py 파이썬 파일을 만들고 다른 파일에 함수나 클래스를 가져와서 사용해야 하는 경우가 있다. 하위 폴더에서 단순히 가져 오는 방법은 from 파일명 import 모듈명 방식으로 처리가 가능하다. 하지만 동일 폴더 위치거나 하위 폴더 파이썬 파일에서 상위 파이썬파일의 모듈을 가져올 때 해당 방식이 적용되지 않는다. 그럴 때는 아래와 같은 순서로 해결 한다. 1. import sys 를 한다. 2. import os 를 한다. 3. sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__)))) 를 실행한다. ..

파이썬 before_first_request, before_request, after_request 함수 쉬운 예제로 이해하기 [내부링크]

before_first_request, before_request, after_request 함수 before_first_request, before_request, after_request 함수 사용 방법 URI를 통해 접속 전 후에 사용자가 원하는 동작을 시행할 수 있다. 1. Flask 내장 함수이므로 flask를 import 한다. 2. before_first_request 는 첫번째 해당 URI 접근 시 동작한다 3. before_request URI 접근 할 때마다 동작한다. 4. after_request 는 접근 후 동작한다. return 값을 입력으로 받아 처리 가능하다. 예제와 결과로 이해해보기 코드 - test.py>> from flask import Flask app = Flask(_..

파이썬 flash 사용해서 팝업창 만들기 (alert, popup, flash) [내부링크]

Python Flash Flash 사용방법 경고나 알람을 팝업창 형식으로 알려주기위해 flask에서 flash 라는 모듈을 사용해서 간단하게 알려준다. 1. python flask (Back end) 에서 flash 모듈을 import 한다. 2. secret_key를 선언하여 html (front end)와 flask 사이 flash 메세지 전달을 암호화 해준다. 3. html에서 jinja2 를 사용하여서 flask로 부터 메세지가 있다면 팝업으로 알람을 알려(alert)준다. 예제와 결과로 이해해보기 코드 - flash.py>> from flask import Flask, request, render_template, flash, jsonify app = Flask(__name__) app.secr..

진동 시험 장비 절연 (Vibrator/Shaker Isolation) 방법 및 수식 정리 [내부링크]

진동 시험기 절연 (Vibration Test Machine Isolation) 시험기에서 진동 발생 원인 진동 장비를 사용하여 수직(vertical)으로 가진을 하게 되면 수직 방향으로 힘(Force)이 들어 간다. 그림1과 같이 힘이 DUT에 가해지면 뉴턴(Newton)의 제 3법칙 작용 반작용에 의해서 반작용 힘이 아래로 가해지게 된다. 즉, DUT에 가해지는 반대되는 힘이 진동장비를 받치는 바닦에 가해지게 된다. 바닦에 발생하는 진동 해결책 1. 진동 시험기 설치 바닦에 가진을 흡수할 콘크리트 바닥을 설치한다. 콘크리트 바닦의 무게는 진동 시험기의 피크 가진 힘 (peak force)에 10배 이상의 크기로 한다. (그림2 참조) 2. 지지대와 움직이는 아마추어(armature) 사이에 에어백 (..

소리의 속도, 파장 길이, 주파수 관계와 각 분야별 진동 주파수 발생 범위 [내부링크]

소리의 속도, 파장 길이, 주파수 관계와 각 분야별 주파수 발생 범위 소리의 속도, 파장 길이, 주파수 관을 통해 소리를 내면 압축된 (compressed) 파형(wave) 이 발생한다. 아래 그림처럼 파형은 왼쪽에서 오른쪽으로 진행된다. 공기 분자가 에너지를 발생해서 전달하는데 사람이 인지할 수 있는 주파수(frequency)의 파장을 사운드(Sound) 라고 한다. 1초당 소리가 얼마나 가느냐를 소리의 속도(velocity)라고 하고 "C" 로 표기한다. (20도의 온도에서 소리의 속도는 344 m/s 이다.) 진폭의 최대값에서 다음 최대값까지의 거리를 파장 길이 (wavelength) 라고 한다. 표기는 그리스 문자 λ 람다로 표기한다. C = λ x f ------식(1) 식(1)에 따르면 소리의..

진동장비 스펙 계산하는 방법 - Stroke(변위,Displacement), 속도, 힘 [내부링크]

전자식 가진기(Shaker) 그림1은 동링(Dongling)의 진동장비이다. 제품의 신뢰성(reliability) 를 담당하고 있다면 한번쯤은 사용하게 될 제품이 Electrodynamic shaker 이다. 위와 같은 진동 시험기를 선정할때 시편의 특성, 시편에 가해질 시험 규격에 따라 진동 시험기를 정해야 한다. 그림2은 팜테크에서 제공하는 동링 진동기의 스펙 중 일부이다. 진동 시험기(Shaker) 선정에서 가장 중요한 부분은 위쪽 항목 이다. Rated Sine/Random Force (kN) Shock Force (kN) Frequency Range (Hz) Max Acceleration (m/s^2) Max Velocity (m/s) Max Displacement (mm) Max Load (k..

make_response 함수란? 예제를 통한 사용 방법 학습(flask, python) [내부링크]

make_response 함수란? 간단하게 flask 로 backend (서버)를 동작 시킬 때 외부에서 URI로 접속을 할 때 HTTP Status 상태와 함께 원하는 값을 쉽게 반환하기 위해 사용한다. HTTP Status Code (상태코드) 외부에서 HTTP 프로토콜로 요청을 하면 요청을 받은 서버는 자신의 상태에 따라 상태코드를 전송한다. 1xx : 숫자 백번대는 정보를 의미한다. 2xx : 숫자 이백번대는 요청의 성공 관련 상태 코드이다. 3xx : 숫자 삼백번대는 redirect 관련 상태 코드이다. 4xx : 숫자 사백번대는 에러 관련 상태 코드이다. make_reponse 예제 test.py 코드>> from flask import Flask, make_response, jsonify, ..

Nyquist Plot 이란? (파이썬으로 그리기 예제 포함) [내부링크]

Nyquist Plot 이란? (파이썬으로 그리기 예제 포함) Nyquist Plot (나이퀴스트, 나이키스트) ? Nyquist plot 은 선형(linear) 시스템의 주파수 함수 응답을 극좌표(Polar) 선도(plot)으로 표현한 것이다. 일반적으로 제어 시스템의 안정성과 성능을 예측할 때 사용한다. 그리고 진동(vibration) 분석에서는 모달(modal) 파라미터를 얻기 위해도 사용한다. 그림1은 임팩트 해머를 시편에 가하고 측정한 FRF(Frequency response function)을 Nyquist plot 으로 전개한 화면이다. x축은 Real 값이고 Y축은 Imaginary 값이다. FRF에 대해 더 자세히 알고 싶다면 아래 링크를 참조하길 바란다. scribblinganythin..

Bode Plot 이란? 사용 방법과 그리는 방법, 파이썬을 사용하여 그래프 검증 [내부링크]

Bode Plot (보드선도) 란? 회로나 기계장치 등 선형적인 성질을 가진 제품에 대해 입력을 넣으면 그에 따른 응답이 나온다. 그림1은 어떤 시스템에 입력 X 를 넣고 Y라는 응답을 얻어서 H라는 전달 함수를 가져왔다. 여기서 전달함수 H 를 계산할 수 있다. 그리고 위 그림1에서 알 수 있는 점은 X, Y 입력 값을 s를 사용하였는데 이는 시간 함수를 라플라스 변환하여 주파수 성분 변경한 것이다. 주파수 변경을 위해서 전제되어야 하는 점은 시스템이 LTI (Linear Time Invariant) 라는 것이다. 즉, 시간에 관계없이 동일한 주파수 특성을 가지는 것이다. 보드선도는 x축을 주파수 축으로 y축은 전달함수의 크기(amplitude) 가 된다. 크기는 일반적으로 dB로 표기한다. 전달함수는..

Jinja2 조건문, 반복문 예제로 익혀보기 (if문, for문, flask) [내부링크]

Jinja2 란? 간단히 설명하면 HTML과 같은 웹페이지에서 파이썬과 유사한 문법을 사용해서 페이지 프로그램을 지원하는 템플릿임. 예를 들어 파이선(python) flask에서 어떤 값을 보내주면 웹페이지에서 해당 값을 프로그램해서 상황에 맞게 동작시킬 수있다. jinja2 사용 양식>> {{ 입력받은 값 }} {% 프로그램 언어 %} 위 코드처럼 HTML 문서에서 jinja2를 사용할 경우 일반 변수만을 화면에 출력할 경우 {{ }} 에 넣어주면된다. if나 for와 같은 프로그램을 작성할 경우 {% %} 안에서 작성하여야 한다. Jinja2 조건문 예제 (if문) 예제 동작을 간단하게 설명하면, http://localhost:9999/jinja_test 에 접속하면 var1, var2 변수를 넣는 ..

사인 스윕파(Sine Sweep)의 사이클(Cycle) 계산 방법(Calculation) [내부링크]

사인 스윕이란? 그리고 사이클 갯수가 필요한 이유 Sinusoidal Sweep wave, 사이파는 그림1처럼 시간이 흐름에 따라서 사인파의 주파수가 변경된다. 즉, 주파수가 시간에 연계되어 변하는 것이다. 주파수 변경 방법은 아래와 같이 2가지 방법이 있다. 선형적(Linear) 사인 sweep wave : 주파수가 시간에 비례해서 증가한다. 대수적(Logarithmic) 사인 sweep wave : 주파수가 시간에 지수적으로 비례해서 증가한다. Sine sweep 파형은 시험 규격에서 종종 나오는데 Sine sweep으로 진동이나 시험을 진행하여 몇 번의 싸이클(Cycle)로 시편에 힘을 가했는지에 따라 피로도(Fatigue)나 내구성(Durability)를 확인할 수 있다. 일반 사인파의 경우 사이..

파이썬 flask에서 render_template 함수 예제로 이해해보기 [내부링크]

render_template 란? render_template 함수는 flask에서 제공하는 함수로 templates에 저장된 html을 불러올 때 사용하는 함수 이다. 아래 예제를 통해 이해해보자. render_template 실습 예제 a_page.html >> a_page goto_b_page b_page.html>> b_page test.py>> from flask import Flask, render_template app = Flask(__name__) @app.route('/goto_a_page') def goto_a_page(): return render_template('a_page.html') @app.route('/b_page') def goto_b_page(): return rend..

랜덤 진동 이란? (Random Vibration Testing)? [내부링크]

Random Vibration (랜덤진동) 도로 위의 차량, 로켓 발사, 터뷸런스 중에 비행기 날개 등에서 발생하는 진동은 반복적이지 않고 예측이 어렵다(Not repetitive, Unpredictable). 그림1은 운전중에 대시보드에 가속도 센서를 부착하고 측정한 가속도 값이다. 그래프에서 볼수 있듯이 예측이 어렵고 반복적이지 않다. 그러므로 현실을 반영하기 위해서 Random vibration 시험이 필요하다. Random (랜덤) vs Sine (사인) 사인파 진동 시험은 특정 주파수에 맞추어 진동을 일으킨다. 하지만 랜덤 진동 시험의 경우 규정된 스펙트럼(Spectrum)의 모든 주파수에서 가진 시켜준다. Tustin의 랜덤파형 정의에 따르면 "사람들은 10~2000Hz의 범위가 있다면 199..

진동에서 변위,속도,가속도의 관계 (Vibration, Displacement, Velocity, Acceleration) [내부링크]

진동에서 변위,속도,가속도의 관계 그림1과 같이 고정된 축이 흔들릴 경우 y축의 시간에 따른 움직임은 사인파(Sine wave)이다. 즉, 변위(Displacement)에 대한 파형을 알 수 있으면 시간에 따른 미분으로 속도(Velocity), 가속도(Acceleration)의 파형도 그릴 수 있다. 반대로 가속도를 알 수 있으면 적분으로 나머지 변위와 속도에 대한 정보를 얻을 수 있다. 사인파에서 가속도, 속도, 변위의 차이는 위상(Phase)이다. 진동(vibration)에서 가속도, 속도, 변위의 위상 관계는 중요하지 않다. 주파수 영역에서 가속도, 속도, 변위의 진폭(amplitude)가 변하는 데 이 점을 유의 해야한다. 예제를 통해 진동에서 변위,속도,가속도의 관계 이해하기 가속도센서(Acce..

Visual studio, HTML 자동 완성 설정하는 방법(HTML:5) [내부링크]

Visual studio, HTML 자동 완성 설정하는 방법 1. Extensions 에서 HTML Snippets 설치 위 그림과 같이 HTML Snippets을 설치한다. 2. View - Command Palette 실행 또는 Ctrl+Shift+P 실행 그림처럼 팔레트를 실행한다. 3. Extension: HTML Snippets 을 아래 그림처럼 실행 4. 아래 그림처럼 오른쪽 하단(파란색에 흰색글)에 값을 HTML로 변경 (만일 HTML이면 변경 필요 없음, 다른 값일 경우 클릭해서 HTML로 변경) 5. 프로그램 종료후 다시 실행 후 html 파일을 만들고 html을 천천히치면 아래 화면처럼 html:5 가 나옴 6. 아래 그림처럼 자동 완성됨

REST API란? flask를 통해 예제 실습하기 [내부링크]

REST API 개념 REST 는 REpresentational State Transfer 의 줄임말이다. 검색을 통해 찾아보면 일반적으로 자원(resource)을 이름으로 구분해서 자원의 정보를 주고 받는 것을 의미한다라고 나와 있다. 위처럼 정의로 의미를 알기는 어려워서 내가 사용하는 환경(파이썬)의 예를 통해 설명하려고 한다. flask를 통해서 인구 정보를 가진 웹을 구축하였다고 예를 들어 보자. 그리고 해당 인구 정보는 DB에서 관리된다. 인구 정보를 DB에서 가져오려고 하는데 해당 웹페이지를 모두 로딩할 필요없이 사전에 약속된 주소로 DB값만 요청이 가능하게 만들 수 있다. 여기서 약속된 주소를 자원(resource)을 표현(representation)하였다고 한다. 한마디로 (flask에서 ..

파이썬 *args, **kwargs 의미와 예제를 통해 이해하기 [내부링크]

파이썬 *args, **kwargs 의미와 예제를 통해 이해하기 예제 코드>> def a_func(*args, **kwargs): print(args) print("###########") for key, value in kwargs.items(): print(key) print(value) print("1번 예제") a_func(name='kc') print("") print("2번 예제") a_func("hi", name='kc') print("") print("3번 예제") a_func("hi", {"myname",'kc'}) print("") print("4번 예제") a_func(1,2,3) print("") 코드 결과>> 1번 예제 () ########### name kc 2번 예제 ('hi'..

파이썬에서 @(골뱅이, 데코레이터라고 불림)이란? 사용방법과 예제 [내부링크]

파이썬 @ (Decorator) 사용예제와 방법 #골뱅이 마크 사용 예시 @wraps(f) @app.route @login_required @templated() Python flask를 사용하다 보면 위 코드와 같이 Decorator로 이루어진 구문이 있는데 동작 방식은 알지만 실제 "at" 기호가 앞에 붙을때 어떻게 움직이는지는 잘 몰라 조사하게 되었다. def a_func(b_func): print("a_func") def c_func(): print("b_func") b_func() return c_func @a_func def d_func(): print("d_func") print("############") d_func() >>결과 a_func ############ b_func d_func..

파이썬 함수 안에 중첩(nested)해서 함수 넣기 [내부링크]

함수 안에 함수 중첩해서 넣기 예제와 특징 예제1 코드>> def a_func(): def b_func(): print("it's b_func") print("it's a_func") b_func() a_func() # b_func() #주석처리 결과>> it's a_func it's b_func 예제1 코드 주석>> 위 코드 예제는 a_func 함수 안에 b_func 함수를 넣어서 실행하고 있다. a_func()에 의해 함수가 실행되었다고 생각하자. 그러면 해당함수는 컴퓨터 메모리의 스택(Stack)이라는 공간에 저장되어 실행 된다. 스택의 a_func 함수 시작점 주소부터 코드가 진행되는데 그 내부에서 b_func 함수도 선언된다. 그리고 print("it's a_func") 가 실행되고 b_func..

Autocorrelation 과 Crosscorrelation 이란(어디에 쓰일까?) [내부링크]

Autocorrelation(자기 상관) 와 Crosscorrelation(비교 상관) 이란? Sinus apollo 장비로 실험 중에 주파수 분석 이외에 Correlation 분석을 할 수 있다는 것을 알게 되었다. 일반적으로 해머 같은 입력을 주면 시편에서 가속도와 같은 형태의 응답이 나온다. 이 사이에 관계는 FRF(Frequency Response Function)으로 나오고 전달함수로 표현되기도 한다. 그러면 Correlation이란 무엇일까? Correlation은 우리나라 말로 상관관계라는 뜻이다. 간단히 말하자면 유사성을 알려주는 지표라고 할 수 있다. 앞서 입력과 응답을 주파수로 분석하였는데 Correlation은 시간 도메인에서 분석을 한다. Auto Correlation은 자기 자신의..

파이썬(Python) 속성 중 __name__ 이란? [내부링크]

__name__ 이란? 파이썬 코드 예제를 살펴 보면 아래와 같은 코드를 종종 볼수 있다. if __name__ == '__main__': 간단히 설명하면 __name__은 파이썬에 들어가 있는 기본 속성으로 해당 모듈의 위치를 알려 준다. 참고로 파이썬의 기본 속성은 아래와 같이 확인할 수 있다. print(dir()) # 결과 ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__'] name은 실행이 발생하는 위치인데 아래 예제를 통해 이해해보겠다. __name__ 예제 print(__name__) 위 코드처럼 test1.py 파일에 ..

flask 기본 예제 실행이 안될 때 (에러메세지도 안뜨는 경우) [내부링크]

flask.palletsprojects.com/en/1.1.x/quickstart/#a-minimal-application Quickstart — Flask Documentation (1.1.x) For web applications it’s crucial to react to the data a client sends to the server. In Flask this information is provided by the global request object. If you have some experience with Python you might be wondering how that object can be global and how flask.palletsprojects.com 위 링크의 기본..

SRS (Shock Response Spectrum) 이란? [내부링크]

SRS (충격 응답 스펙트럼) 이란? 처음에는 지진에 대한 구조물의 응답을 보기위해 고안된 방법이었다. SRS은 환경실험 중 하나로 복합 (Complex) Trasient 충격 실험이다. 엔지니어는 SRS 실험을 이용해서 시편의 순간적인 이벤트에 대한 응답을 확인한다. SRS은 전통적인 충격실험보다 더 복합적인 충격 펄스를 만들어 준다. 엔지니어는 특정 SRS 응답을 위해 원하는 충격 펄스를 합성하여 만든다. SRS (Shock Response Spectrum) 구성 및 분석 그림1의 왼쪽 그림은 SRS 실험을 위한 구성을 보여 준다. 가진기(shaker) 위에 검증하고자 하는 시편을 올려 놓았다. 시편의 내부는 일련의 Mass-spring-damper 시스템으로 구성되었다고 생각한다. 자연계 물질들의 ..

PSD(Power Spectral Density) vs Autopower 비교 [내부링크]

광역대역(Broadband)에서의 PSD(Power Spectral Density) 와 Autopower PSD와 Autopower는 주파수 영역에서 신호의 파워를 측정한 것이다. 그림1의 예제를 통해 PSD와 Autopower를 쉽게 이해해보자. 그림1은 주파수 영역에서 일정한 가속도를 가지는 그래프라고 생각하자. 왼쪽 그림은 Autopower를 표현한것이다. Y축은 가속도(g)로 표현된다. 컴퓨터에서 FFT(Fast Fourier Transformer)를 통해 실시간 신호를 주파수로 변경할때 주파수 값들은 디지털 과정을 거친다. 만일 그림처럼 분해능(resolution)을 4hz로 설정하면 4hz당 한번의 A 크기를 가지게 되고 2hz로 설정하면 샘플링이 2배더 발생하므로 A/2의 크기로 표기해야 동..

진동 제어(Vibration Control) 실험 이란? [내부링크]

Vibration Control Testing (진동 제어 실험) 진동제어 실험이란 엔지니어가 제품의 신뢰성(Reliability)를 확인하기 위해 진행하는 실험이다. 제품의 수명(Warranty) 기간을 검증 하기위해 가속화하여 진행한다. 가속화된 진동제어 실험을 성공적으로 진행한 제품은 고객 만족과 신뢰성 높은 제품을 생산하여 높은 ROI(Return on Investment)를 가질 수 있다. 진동제어 실험은 제품이 겪을 수 있는 진동(Vibration) 이나 충격(Shock)을 유사하게 재현한 실험이다. 일반적으로 Shaker라고 알려진 가진기 장치를 통해 실험을 진행한다. 그림1은 Shaker에 제품을 올려놓고 모니터를 통해 검증하고 있는 장면이다. Vibration control test는 환..

OMA(Operational Modal Analysis) vs EMA(Experimental Modal Analysis) 란? [내부링크]

OMA(Operational Modal Analysis) 란? OMA 는 시편의 구조적 상태(Dynamics)을 알아보기 위한 기법이다. OMA의 "Operational"이 의미하는 바처럼 OMA 측정은 시편의 동작중에 실시한다. 일반적으로 개발이나 분석을 위해 시편을 테스트 할때 실험실에서 규정된 환경에서 검사하는 것이 일반적이나 OMA는 실제 환경에서 검사를 하는 것이다. 동작중에 시편에 가해지는 힘(N)에 의해 발생하는 응답을 변위, 주파수, 오더 분석과 같은 결과로 얻을 수 있다. 가령 차량이나 비행기 같은 시편에 측정하고자하는 부분에 센서를 장착하고 동작시키면서 모달 분석을 하는 것이다. 운행중에 모달 분석을 함에 있어서 단점은 정확한 입력값을 측정할 수 없다는 것이다. 그러므로 OMA는 응답(..

SDOF(Single degree of freedom)에서 Mass-Spring-Damper 이해하기 [내부링크]

SDOF(Single degree of freedom, 단자유도계) 에서 Mass Spring Damper SDOF에서 DOF 는 질량을 구성하는 입자의 위치를 정의하는 데 필요한 좌표계의 수를 의미한다. 그러므로 SDOF는 간단하게 한개의 축의 방향으로 설명이 된다. 그림1과 같이 무게 m 을 가진 물체가 힘 f 를 가하여 아래 위로 움직인다. 여기서 각 parameter에 대한 정의를 하면 아래와 같다. m : 무게, 단위는 [kg] c : 댐핑 계수, 단위는 [Ns/m] k : 스프링 계수, 단위는 [N/m] f : 가해지는 힘, 단위는 [N] x : 이동거리, 변위, 단위는 [m] Mass Spring Damper 시스템 수식으로 이해하기 그림1을 수식으로 표현하면 그림2와 같이 된다. 입력으로 ..

FRF (Frequency Response Function, 주파수 응답)이란? [내부링크]

주파수 응답 함수란? FRF은 특정 입력(힘)을 넣어서 나오는 반응(g)을 주파수 도메인에서 보는 것이다. FRF를 사용하는 목적은 시편의 공진주파수(Resonant frequency), 댐핑(damping), 모드 형태(mode shape)의 정보를 가져 오기 위함이다. FRF는 입력과 출력의 전달함수(Transfer function)으로도 불린다. FRF는 LTI (Linear time invariant) 시스템에서 입력과 출력의 관계이다. 간단히 말하자면 그림1처럼 임팩트 해머로 시편을 치면 임팩트 해머에 달린 센서에서 펄스 형태의 힘을 측정한다. 이상적인 펄스 신호는 주파수 전지역에서 일정한 크기를 가진 형태지만 현실은 그림1의 오른쪽 그림처럼 주파수가 올라가면서 힘이 떨어진다. 시편에 달린 가속..

파이썬(Python) Selenium Click() 동작이 안될 때 [내부링크]

예약 사이트를 자동화로 만드는 과정에서 몇 몇 버튼이나 a, href 링크들이 클릭이 안되는 경우들이 종종 있었다. element click intercepted ElementClickInterceptedException is not clickable at point 위 와 같은 메세지가 발생하거나 다운이되는 현상들이 있었다. 내가 예약사이트 자동화중에 만난 경우들을 아래와 같이 정리하고 해결 했던 방법도 정리해 보았다. Case 1 그림1과 같이 화면의 아래 김해CC를 클릭하고 날짜를 클릭 후에 예약하기 버튼을 눌러야 하여서 아래와 같이 코드를 짰다. kimhae_check = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((B..

GameStop(게임스탑) 에서 GPU 판매시작? [내부링크]

게임스톱은 노트북, 모니터, 헤드폰, 마우스, 스피커 등 게임 용 하드웨어를 판매해왔지만 Best Buy와 Newegg의 데스크탑 관련 제품 판매 사업에도 관심을 가지기 시작했다. 우선 엔비디아 RTX 3000 시리즈 그래픽 카드를 판매하기 시작했다. 판매를 시작하였지만 다른 GPU 공급업체처럼 재고확보가 어려운 상황이다. PC Gamer에서 보도한 바와 같이, 게임스톱은 이번 주 주간 광고지에 여러 개의 GPU, 마더보드, 전원 공급 장치, PC 게임을 중심으로 광고하였다. 게임스톱도 다른 GPU 소매업과 마찬가지로 며칠 전에 GPU들을 모두 팔았다. GameStop의 트윗에 대한 응답은 다음과 같다. 현재 GameStop의 PC 관련 부품은 2개의 마더보드 밖에 없다. 엔비디아(Nvidia)와 AMD..

마이크로소프트웨어(Microsoft) 윈도우10(window10) 아이콘 업데이트 (휴지통 포함) [내부링크]

Microsoft는 이번 업데이트를 통해 윈도우10(Windows10)에서 File Explorer의 아이콘을 새롭게 재구성하였다. 마이크로소프트웨어는 휴지통, 문서 폴더, 디스크 드라이브와 같은 장치를 포함하여 파일 탐색기에서 찾을 수 있는 시스템 아이콘의 변경을한 Windows 10의 테스트 버젼을 출시하기 시작했다. "폴더 아이콘의 방향과 기본 파일 형식 아이콘과 같은 변경 사항을 Microsoft 제품 전반에 걸쳐 일관성을 높이기 위해 적용되었습니다." 라고 Microsoft의 Windows 인사이더 책임자인 Amanda Langowski가 말하였다. 최상위 사용자 폴더에서 한 눈에 쉽게 구분할 수 있도록 데스크톱, 문서, 다운로드, 사진 폴더의 새로운 설계가 적용되었다. 이러한 아이콘 변경은 윈..

HC-06 블루투스 아두이노에 연결해보기 (AT명령어, 안드로이드폰에 연결하기) [내부링크]

하드웨어 연결(Arduino + HC-06) 그림1은 Frizting이라는 툴을 사용해서 회로도를 작성한 것이다. HC-06 블루투스 모듈과 아두이노는 통신라인과 전원라인만 간단히 연결하면 된다. RXD(HC06)은 3번에 TXD(HC06)은 2번에 연결한다. 3번 2번은 아두이노 코드에서 설정한 값이라 다른 포트로 변경도 가능하다. 전원은 5V와 GND에 연결한다. 그림2은 실제 자리에서 연결한 사진이다. 브래드보드 오른편에 연결되어 있는 것이 HC-06 블루투스 모듈이고 왼편에 있는 것은 가속도 센서이다. 이번 실험에서는 단순 블루투스 연결만을 위해 사용하므로 왼쪽에 모듈은 신경안써도 된다. 최종 연결은 가속도 센서에서 읽은 값을 블루투스를 통해 PC에 보내는 동작을 할 것이다. 아두이노 코드 #in..

지프(Jeep) 전기차 랭글러 "마그네토"(Magneto) 공개 [내부링크]

지프(Jeep)는 X-Men에서 영감을 받은 이름인 마그네토라는 랭글러 버전의 새로운 전기 자동차를 출시했다. 하지만, 마그네토 랭글러 전기차에 대한 기대를 너무 크게 가지지는 말기 바란다. 마그네토는 현재 컨셉트카(concept car)로 나온 상태이고 실제 출시는 결정된 바가 없다. 지프에 따르면 이 차의 디자인은 2020년형 지프 랭글러 루비콘(Rubicon)을 기반으로 하였다. 최대 273파운드의 토크와 285마력을 제공하는 전기 모터를 탑재했으며, 800볼트 시스템의 4개의 배터리 팩을 탑재했다. 지프는 마그네토가 한번의 충전으로 얼마나 멀리 갈 수 있는지에 대한 범위를 공유하지 않았다. 하지만 이것이 컨셉트카라는 점을 감안하면 그리 놀라운 일은 아니다. 마그네토의 재미있는 특징은 6단 수동 변..

아마존에서 투자한 Rivian 전기차회사 미국과 캐나다에 10,000 전기충전소 설치 계획 [내부링크]

아마존이(Amazon) 지원하는 전기차 스타트업 리비안(Rivian)이 오는 2023년까지 미국과 캐나다 전역에 1만 대 이상의 급속충전기를 설치할 예정이라고 회사 측이 밝혔다. 리비안 "Rivian Adventure Network"는 고속도로를 따라 주행하는 빠른 충전이 필요한 환경을 위해 설계되었으며, 또한 공원 및 기타 목적지 근처의 더 외진 곳에서 레벨 2 충전도 가능하다. 각 사이트에는 여러 개의 충전기가 설치될 예정이며, 사이트는 주로 고속도로와 간선도로에 위치될 것이다. 그리고 사이트는 충전소와 함께 카페, 상점을 같이 만들 예정이다. 이러한 DC 급속 충전기는 리비안 소유자에게만 제공될 예정이며, 가격 및 관련 프로그램에 대한 세부 정보가 곧 제공될 예정이라고 리비안에서 밝혔다. 리비안의 ..

Dolby Atmos 사운드를 장착한 첫번째 루시드(Lucid) 전기차 출시 예 [내부링크]

루시드 모터스는 자사의 첫 전기차인 루시드 에어 세단의 출시를 준비하고 있다. SXSW에서 21 스피커 "Surreal Sound" 의 Dolby Atmos 사운드를 제공하는 최초의 자동차가 될 것이라 공개했다. 새로운 사운드 설정을 자세히 설명하는 4분 이상의 비디오에서 이 회사는 차량의 소음 위치를 수평면(차량의 좌우 또는 전면에서 후면으로 이동)에서 조정할 뿐만 아니라 차 내부에서 음악 또는 주변 차량 신호가 더 높거나 낮게 겨냥될 수 있도록 수직적으로 조정할 수 있는 능력을 강조하였다. "루시드가 기존의 컨셉과 다른 것을 하려고 하고 자동차 시장에서 독특한 것을 하려고 한다는 것은 매우 명백했습니다,"라고 돌비의 책임자에서 이 회사는 차량의 소음 위치를 수평면(차량의 좌우 또는 전면에서 후면으로 ..

엘런머스크(Elon Musk), NFT(non-fungible tokens)관련 노래를 NFT로 제작 [내부링크]

Elon Musk가 자신이 NFT(non-fungible tokens)로 제작한 새로운 전자 음악 트랙을 판매함으로써 NFT(non-fungible tokens) 골드러시에 뛰어 들었다. NTF는 요즘 유행하는 디지털 자산으로 자신의 자산에 대한 정보를 블록체인으로 제작하여 원제작자에 대한 정보를 보장받는 디지털 토큰이다. 이 곡은 머스크가 블록체인를 이용하여 제작한 NTF인데 노래가 NTF에 대한 노래이다. 머스크는 NFT에 대한 링크를 포함하지 않아 머스크가 추후 판매를 개시할 계획인지는 명확하지 않다. 머스크가 어느 플랫폼에서 NFT를 매각할 것인지도 명확하지 않다. 우리도 그 노래에 이름이 있는지 모르지만, 몇 가지 단서가 있다. 머스크가 21일 트위터에 올린 노래에 첨부된 루프 영상에는 'Van..

Space X Falcon 9 로켓 아홉번째로 60개의 Starlink 위성을 궤도로 보냄 [내부링크]

스페이스X 팔콘9 로켓이 14일(현지시간) 일요일 최신 60개의 스타링크 위성을 궤도에 쏘아올리고 성공적으로 지구로 귀환했다고 밝혔다. 스페이스X는 일요일의 임무로 팰컨 9의 9번째 비행과 착륙을 기록했다고 밝혔다. 스페이스X는 이번 발사는 이전의 5번의 스타링크 발사와 Crew Dragon 캡슐 DM-1 임무의 일부였다고 말했다. 이번 60개의 위성들은 스타링크 별자리 프로젝트의 일부로서 스페이스X가 지구상 모든 지역 인터넷 연결을 제공하기 위해 진행하는 프로젝트이다. 이 회사는 프로젝트의 일환으로 12,000개의 인공위성을 발사할 수 있는 허가를 받았으며 지금까지 1,000개 이상의 위성이 궤도를 돌고있다. 스타링크도 지난해 출시한 베타 프로그램을 1만여 명의 사용자에게 제공하고 있다. 라우터와 안테..

MPU6050 가속도 센서, 자이로 센서로 측정값 읽어 보기 [내부링크]

MPU-6050 센서란? MPU-6050는 그림1과 같다. 모듈로 되어 있는 PCB 인데 내부에는 MEMS 가속도센서(Accelerometer)와 MEMS 자이로센서(gyro)를 포함하고 있다. 그림처럼 SCL, SDA 통신라인을 이용하는 I2C 통신을 사용한다. 내부에 16비트 ADC 장치를 가지고 있어서 정밀한 결과를 출력해준다. 참고로 나는 MPU-6050을 네이버 쇼핑에서 구입했는데 약 3천원 정도 했다. MPU6050에는 1024바이트 FIFO 버퍼가 있는데 만일 센서 값을 읽어서 버퍼에 저장하면 Arduino에 Interrupt 신호를 보내고 아두이노는 이 신호를 통해 버퍼에 데이터가 있음을 알고 읽어 온다. SCL, SDL 라인을 사용하면 MPU6050은 자동으로 I2C에서 Slave 역할을..

기아(KIA) EV6 전기차 티저 이미지 출시 [내부링크]

기아차는 이번 출시 전기차에 이름을 붙이고 몇 주 안에 전기차 신차의 론칭을 준비하고 있다. 'EV6'로 불리는 이 자동차는 기아차가 모기업인 현대와 공유하는 새로운 플랫폼에 최초로 탑재되는 전기 자동차로, 애플이 관심을 가졌던 플랫폼과 동일하다. 정확히 애플이 한국 자동차 회사들과의 어떤 협상을 진행하였는지 그리고 어떻게 결렬되었는지는 밝혀진바는 없다. 기아차는 측면에서 비스듬히 바라본 차량 이미지를 몇 장 공개했는데, EV6가 해치백(hatchback) 스타일의 형태를 띠고 있음을 알 수 있다. 자동차 뒷면 전체를 가로지르는 후방등(taillight)의 클로즈업 이미지가 있습니다. 전기 자동차 디자인에서 상당히 흔하게 볼 수 있는 디자인이다. 그리고 EV6 헤드라이트 중 하나와 함께 후방등이 켜지는 ..

인터넷 망 중립화(Net neutrality)를 위해 준비하는 민주당(Democrats) [내부링크]

오픈 인터넷 열성적인 옹호자들이 지지하는 망 중립성 법안이 진행되고 있다. 지난 달 한 옹호 행사에서 상원의원이었다. 에드 마키(D-MA)는 앞으로 몇 주 내에 제한 금지, 차단 또는 유료 고속 차선 규정을 법률로 새기는 방안을 도입할 것이라고 발표했다. 지난달 법 개정 지지 행사에서 에드 마키(D-MA)는 앞으로 몇 주 안에 인터넷 규제 금지, 차단, 유료 고속 인터넷 금지를 법으로 도입할 것이라고 발표했다. 코로나 바이러스 유행으로 광대역인터넷통신이 전기나 기타 유틸리티만큼 필수적이라는 것을 입증했다. 우리는 우리의 인터넷이 개방되고 자유로운 상태를 유지하고 소비자들이 이 중요한 인프라로부터 계속 이익을 얻을 수 있도록 망 중립성 보호를 회복할 필요가 있다고 하였다. Markey가 계획하는 법안이 도..

스타링크(Starlink) 인터넷 (장거리이동)트럭, 보트, 비행기 등 거대 운송장비에 제공 협의 [내부링크]

빠르게 성장하고 있는 스타링크 위성 네트워크를 자동차, 트럭, 선박, 항공기에 연결하기 위해 스페이스X에서 규제 승인을 진행하고 있다. 지난 금요일 연방통신위원회(FCC)에 요청서를 보냈다. 이는 스타링크를 자동차 부문과 연결시키기 위한 스페이스X의 가장 큰 발걸음이다. 현재 인터넷 사용이 어려운 산골, 외지 곳곳까지 인터넷 서비스를 확장할 수 있는 잠재성이 큰 사업이다. 이번 3월 5일에 FCC에 제출된 요청서는 "Earth Stations in Motion(자동차, 배, 비행선을 총칭하는 프로젝트)"의 Starlink 터미널 연결에 대한 라이센스 허가이다. "더 이상 인터넷 사용자들이 나라/대륙 간 이동 중에 인터넷 연결을 잃지 않게 할 것이다."라고 이 문서에 나와 있다. 소형 승용차는 스타링크 연..

엘런머스크(Elon Musk) 테슬라 FSD자율주행(Full Self Driving beta) 확대적용 계획을 트위터로 발표 [내부링크]

일론 머스크 최고경영자(CEO)는 "테슬라 완전자율주행 베타(Full Self Driving beta)를 확대하고 있고 새로운 소프트웨어 업데이트로 FSD 규모를 두 배로 늘렸고, FSD 프로젝트 인원을 10배로 늘렸다"고 말했다. 머스크는 금요일 트위터를 통해 "아직도 조심하고 있지만 점점 발전 있다"고 트위터를 통해 말했다. 테슬라는 출시일에 디스플레이에 나타날 다운로드 버튼을 통해서 업데이트를 진행할 것이다. 테슬라는 지난 10월 Early Access Program에서 차량 소유자들에게 FSD 베타를 처음 선보였다. 당시 머스크는 소프트웨어 업데이트를 매우 조심스럽게 다루고 있다고 말했다. 운전자들은 여전히 운전대를 잡고 있어야 하고 언제든지 테슬라를 통제할 준비를 하여야 한다. Electrek에..

포르쉐(Porsche) 고가의 전기 자전거 출시 [내부링크]

포르쉐는 전기 자전거 제작 판매를 시작하였다. 현재 나온 상품은 흥미지만 가격은 상상 이상의 고가이다. 복스바겐 소유의 자회사인 포르쉐는 올 봄에 Full suspension e-bike를 팔기 시작할 것이라고 발표했다. 오늘 막 공개된 Porsche Taycan Cross Turismo와 함께 자전거가 발표되었다. 포르쉐 e-bike에는 스포츠(Sport)와 크로스(Cross)라는 두 가지 모델이 있습니다. 스포츠는 풀 서스펜션 탄소섬유 프레임, 전면과 후면 조명 통합, Shimano mid-drive 모터로 구성되었습니다. 그리고 Jeff Bezos를 놀랠킬 정도의 가격표가 달린 일상용 로드 바이크다. 무게가 48파운드보다 조금 작은 이 스포츠는 약 10,700달러입니다. 그렇지만 탄소 섬유 프레임 ..

Space X 최신 Starship SN10 첫 착륙 성공 [내부링크]

스페이스X의 최신형 스타쉽 시제품이 미국 텍사스주에서 고고도 시험비행을 한 뒤 수요일 첫 착륙에 성공했다. SN10이라고 불리는 초기 시험 버전인 이 로켓은 안전하게 착륙하기 전에 공중에서 몇 가지 복잡한 비행을 보여주었다. 이번 착륙은 완전히 재사용 가능한 로켓 시스템을 구축하려는 일론 머스크의 캠페인에 중요한 이정표를 세웠다. 이날 오전 초기 발사 시도를 중단한 후, SN10은 오후 6시 14분에 이륙하여 스페이스X의 Boca Chica, 텍사스 시설 위로 6마일이나 치솟았다. SN8과 SN9을 사용한 지난 두 번의 시험에서는 성공적으로 발사는 되었지만 착륙 시도에서 폭발하였다. 이번 SN10은 발사대에서 멀지 않은 콘크리트 슬래브에 안전하게 착륙했다. 스페이스X의 엔지니어이자 생방송 진행자인 Joh..

98년 iMac과 동일한 프로세서를 사용하는 NASA 최신 화성 탐사선 [내부링크]

NASA의 신형 Peserverance 탐사선은 지금까지 화성에 착륙한 것 중 가장 최신 장비입니다. 하지만 여기서 최신이란 상대적이라고 봐야할 것 같다. "Pserverance" 탐사선은 다름아닌 PowerPC 750 싱글 코어 233MHz 프로세서로 동작한다. PowerPC 750은 Bondi blue라는 iMac을 98년 동작시킨 것으로 유명하다. 이것은 NASA가 Curiosity 탐사선에 이미 사용하고 있는 것과 같은 종류의 프로세서입니다. 요즘 컴퓨터 부품 구입이 어렵더라도 NASA는 인텔의 500달러짜리 코어 i9-10900K CPU(코어 10개, 최대 클럭 속도 5.3개)와 같은 최신 칩을 쉽게 구할 수 있다. 예산 27억 달러의 Perseverance 탐사선 비용 중 크게 차지하지 않는다..

접을(Folding) 수 있는 아이폰(iPhone) 2023년 출시 예정(?) [내부링크]

폴더블 아이폰에 대한 소문은 예전부터 있어왔다. Ming-Chi Kuo 애널리스트는 애플이 2023년 출시하려고 하고 있고, 7.5에서 8인치 사이의 화면 크기의 출시를 고려한다고 MacRumors를 통해 말하였다. 화면은 아이폰 12 프로 맥스 크기에 더 가까워질 것이라고 하였다. 애플이 폴더블 아이폰 프로토타입으로 제작했다는 수많은 보도가 있었지만 MacRumors에 따르면 아직 공식적으로 출시되지는 않았다고 말했다. 한편, 삼성, 모토로라, 그리고 Royole과 같은 경쟁업체들은 다수의 폴더블 폰을 출시했다. Kuo에 따르면 화면을 접으면 아이패드 미니 크기가 되기 때문에 Z Flip이나 Razr 방식이 아니라 소형 태블릿을 접는 갤럭시 폴드 방식을 택할 것으로 보인다. (이것은 저에게 유감스러운 ..

틱톡(TikTok) 개인 정보 소송 합의금 9천 2백만 달러에 달함 [내부링크]

틱톡은 9천2백만 달러를 지불하고 개인정보 침해 혐의에 대한 집단소송을 해결하기로 합의했다. 여기에는 앱이 사용자를 추적하여 광고를 하기 위해 '민감한 개인 데이터'를 수집했다는 주장이 포함되어 있다. TikTok은 이러한 주장을 거부했지만 이 문제로 소송하는데 시간을 보내고 싶지는 않다고 말했다. 틱톡은 이러한 주장에 동의하지 않지만, 긴 소송보다는 틱톡 커뮤니티를 위해 안전하고 즐거운 경험을 쌓는 데 힘을 쏟고 싶다고 언론사에 발표하였다. 이번 합의는 틱톡을 상대로 제기된 일련의 사생활 침해에 대한 21건의 집단소송을 결합한 것이다. 이번 소송은 틱톡이 사용자의 얼굴을 분석해 인종, 성별, 연령 등을 파악했다는 주장부터 개인 데이터 전송에 대한 사기 및 남용법 위반으로 추정된다는 주장까지 나오고 있다..

부트스트랩 Margin vs Padding 배치 방법, 예제 [내부링크]

HTML에서 Bootstrap의 margin, padding 사용방법 Padding 이나 Margin을 넣고 싶은 태그에 Class 를 선언하고 클래스 값을 입력한다. 값의 첫번째 문장은 margin이냐 padding이냐를 결정한다. 아래와 같이 m은 margin을 의미하고 p는 padding을 의미한다. m - for classes that set margin p - for classes that set padding 다음으로 위치를 정하는 letter를 넣는다. 위,아래,왼쪽,오른쪽을 여기서 정할 수 있다. 아래 letter를 보고 결정하면 된다. t - for classes that set margin-top or padding-top b - for classes that set margin-bot..

블로그만들기(4) - 웹에디터 글쓰기 html 부트스트랩과 css로 꾸미기 [내부링크]

블로그 만들기(3)에서 만들었던 내용에서 bulletin_wr.html을 bootstrap과 css 를 사용해서 이쁘게 꾸미려고 한다. 우선 bootstrap과 css를 전문적으로 배운적이 없기 때문에 인터넷 검색을 통해서 작성했으니 감안하고 확인하길 바란다. 이전에 꾸미지 않은 상태의 화면은 블로그 만들기(3)에서 확인하길 바란다. 그리고 코드를 수정해서 아래와 같이 변경하였다. 변경후 bulletin_wr.html>> 결과 화면에 대한 주석>> 결과 화면에서 Home 과 search 부분은 파이썬에서 구현 된 것은 없다. HTML에 미리 만들어 놓고 나중에 파이썬과 연결할 생각이다. 제목 부분은 input으로 받고 내용은 summernote를 적용하였다. 코드 bulletin_wr.html>> Hom..

블로그만들기(3) - (파이썬, summernote)웹에디터 게시판 글쓰기에 추가하기 [내부링크]

블로그 만들기(2)에서 만들었던 내용에서 웹에디터를 추가해보겠다. 웹에디터란 흔히 티스토리나 네이버 블로그에서 글을 작성할때 색깔이나 편집을 편하게 하도록 만들어진 UI이다. 직접 만드는 것은 javascript 나 css에 굉장한 노력이 들어간다. 하지만 이를 간단히 해결하는 방법은 summernote라는 오픈 소스를 사용하는 것이다. 오픈 소스를 통해 아래와 같은 웹에디터를 가질 수 있다. 아래는 summernote 웹페이지 주소이다. 해당 링크로 들어가면 어떻게 사용하는지 자세히 설명 되어 있다. summernote.org/ Summernote - Super Simple WYSIWYG editor Super Simple WYSIWYG Editor on Bootstrap Summernote is a ..

블로그만들기(2) - 게시판 작성한 글 확인하기(파이썬) [내부링크]

블로그만들기(1)에서 게시판 글쓰는 환경을 구축하였다. 이제 글쓰면 바로 글 내용을 확인할 수있는 게시판 읽기 기능을 만들 것이다. 동작원리는 아래와 같다. 1. 게시물 쓰기가 완료 되면 해당 게시물을 읽는 페이지로 HTTP GET 요청을 보낸다. 2. 요청과 함께 db 인덱스 번호인 _id 값을 GET 신호와 같이 보낸다. 3. _id 값으로 db에 접근해서 읽고 html로 출력해준다. 코드 - bulletin_wr.html >> {{db_data.title}} {{db_data.pubdate}} {{db_data.contents}} 주석>> bulletin_rd 주소로 HTTP GET 요청을 받으면 flask를 통해 db_data를 전달 받고 받은 값을 html로 보여준다. 코드 - board_01...

Stress - Life 그래프란(2)? (SN 그래프) [내부링크]

Stress - Life 그래프 앞에 "Stress - Life 그래프란(1)? (SN 그래프)" 포스트 이후 계속 정리하겠다 "Stress - Life 그래프란(2)? (SN 그래프)"는 아래 링크를 참조 하길 바랍니다. 링크 : scribblinganything.tistory.com/122 평균 응력 효과 (Mean Stress Effects) 실험실에서 수집된 대부분의 기본 S-N 피로 데이터는 "reversed stress cycle"을 사용하여 생성된다. "reversed stress cycle" 는 응력이 양수와 음수 크기로 왔다갔다하는 것이다. 그러나 실제 하중 적용에는 아래 그림과 같이 진동 응력이 중첩되는 평균 응력이 수반된다(양수 측에서만 동작). 다음 정의는 교대(alternating..

샤오미(Xiaomi)에서 공중에서 충전가능한 기술 개발했다고 발표 (수 미터안에서 가능) [내부링크]

www.youtube.com/watch?v=xsFHKCcV2rg 샤오미는 '수 미터 반경 내에서' 기기를 충전할 수 있는 무선충전 시스템인 '미 에어 차지 테크놀로지 'Mi Air Charge Technology'를 발표했다. 샤오미에 따르면 여러 기기를 동시에 5W로 충전할 수 있으며 물리적 장애로 충전 효율이 떨어지지 않는 다고 하였다. 샤오미는 이 기술이 스마트워치와 피트니스 팔찌에서도 작동할 것이라고 말한다. 또 다른 목표는 스피커, 램프, 스마트 홈 기기 모두가 동일한 원격 시스템에 의해 구동되는 "무선 거실"을 만드는 것이다. 샤오미 관계자는 그러나 올해 상용 제품에는 이 기술이 포함되지 않을 것이라고 말하고 출시 일정을 밝히지 않았다. 샤오미가 말한 Mi Air Charge Technolog..

E-Trade 에서 GameStop과 AMC 거래 중지, 금요일부터 재계 [내부링크]

금융 서비스 회사인 E-Trade는 GameStop과 AMC 주식의 매입을 제한했으며, Robinhood와 마찬가지로 금요일부터 두 주식의 거래를 재개할 계획이다. 이 두 종목은 지난 1주 동안 r/WallStreetBets subreddit 같은 포럼에서 인기를 끌며 유례 없는 최고가로 치솟았다. GameStop은 목요일 오전 483달러를 기록했고 장중 잠시 그 이상을 기록했다. 지난주 목요일, 주식은 43달러에 불과했었다. 다음은 E-Trade의 발표이다. GME와 AMC의 엄청난 물량들 속에서, 우리는 더 넓은 고객 기반으로 계속 봉사할 수 있도록 거래일 말에 고객 활동을 제한하기로 결정했습니다. 우리는 이런 주식변동을 심각하게 받아들이고, 특별 경우에서만 행동을 개시합니다. 내일 정상적인 거래 업..

Stress - Life 그래프란(1)? (SN 그래프) [내부링크]

Stress - Life 그래프 Stress - Life 그래프는 아래 그림처럼 2개의 도식으로 도식화된 Wohler S-N 다이어그램을 기본으로 만들어 졌다. S-N 다이어그램은 응력 진폭 S 대 고장주기 N을 표시한다. 적절한 S-N 다이어그램에 필요한 데이터를 만들기 위해 수많은 테스트를 진행하였다. S-N 데이터는 일반적으로 log-log 그래프에 표시되며, 실제 S-N 선은 여러 데이터 값의 평균을 나타낸다. 내구성 한계치 (Endurance Limit) 특정 재료는 피로 한계 또는 내구성 한계가 있으며, 이는 재료가 망가지지 않고 무한번의 주기로 줄 수 있는 스트레스 수준을 나타낸다. 적용된 응력 수준이 재료의 내구성 한계(Endurance limit) 이하일 경우 구조는 무한 수명을 갖는다고..

파이썬 Flask 기능 정리 - render_template, jinja2 [내부링크]

참조 링크 (link)>> flask.palletsprojects.com/en/1.1.x/quickstart/ Python flask에서 HTML과 변수 주고 받기 파이썬에서 HTML을 만들고 변경하는 것은 쉬운 작업이 아니다. application 보안을 위해 동적으로 바뀌는 값을 escape 처리 해서 작성해야하기 때문이다. Flask에서 jinja2 엔진을 공급한다. 간단하게 render_template 함수로 html 에 접근하면서 원하는 변수도 같이 보내 줄 수 있다. html 문서에서는 받은 변수 값을 {% %} {{ }} 괄호 안에서 사용 전자는 문법용이고 후자는 변수를 바로 사용할때 사용한다. 이렇게 사용이 가능하게 해주는 것을 jinja2 엔진이 가능하게 해주는 것이다. 아래 예제 코드를..

파이썬 Flask 기능 정리 - url_for, HTTP 요청(GET,POST,PUT,DELETE,OPTIONS)과 처리방법 [내부링크]

참조 링크 (link)>> flask.palletsprojects.com/en/1.1.x/quickstart/ url_for 함수 url_for 함수는 url 주소값을 가져 온다. url_for( ) 괄호안에 route 함수 명을 넣으면 해당 route가 가지는 url 주소를 가져온다. 그리고 괄호에 다른 항목은 변수명이다. 변수 명을 넣으면 변수명을 포함한 주소값을 가져온다. 해당 내용은 아래 예제 코드를 통해 이해하는 것이 쉽다. 아래 코드에서 with 는 파일 같은 형식을 열때 사용한다. (파일은 with 로 열때 별도의 close 문을 사용하지 않아 편리하다. close 문에 __exit__으로 종료 한다. test_request_context 도 dir 로 읽어 보면 __exit__ 문이 있다 ..

파이썬 Flask 기능 정리 - route, 변수(variable)<괄호>로 보내기, url 표기 방법 [내부링크]

참조 링크 (link)>> flask.palletsprojects.com/en/1.1.x/quickstart/ 1. Route 기능 라우트는 외부 웹브라우져에서 웹서버로 접근 시 해당 주소로 입력을 하게 되면 특정 함수가 실행되게 도와주는 기능을 한다. 아래 예제 코드는 /hello 라는 주소에 접근하면 return 으로 'Hello, World' 을 보낸다. 코드 >> from flask import * ######################################################### # Flask 선언 app = Flask(__name__, template_folder="templates") @app.route('/hello') def hello(): return 'Hello, ..

피로도(fatigue)란? 재료 특성(Material Properties), 환경 로드(Loading), 기하학(Geometry)구조에 따른 피로도 계산 방법 [내부링크]

피로도(fatigue)란? 피로도는 수명주기(life cycle), 내구성(durability) 요건을 충족하는 제품을 개발하기 위해 반드시 인지하고 이해해야 하는 구조적 고장 모드이다. 경량화 시대에 피로도는 개발자가 내구성에 영향을 미치지 않으면서 엄격한 중량 제한을 충족시키기 위해 고려되어야 하는 설계 요건이다. 반복적으로 다양한 응력(Stress)이 재료에 가해져서 어느 부분을 약하게 만드는 것을 피로도(fatigue)라고 한다. Fatigue 크랙은 주기적인 하중(Loading)에 의해 발생한다. 재료의 2가지 Failure 형태 1. 정적(Static) 실패 모드 한번에 재료가 가진 인장 강도(tensile strength) 이상으로 응력을 가할때 2. Fatigue 실패 모드 응력에 크기가 ..

블로그만들기(1) - 게시판 글쓰기 만들기(파이썬(python),Mongodb) [내부링크]

개인 블로그를 처음부터 만들면서 공부할 예정이다. 우선 웹서버를 동작 시켜줄 프로그램은 Flask를 사용할 생각이다. 그리고 블로그 컨텐츠들은 mongo db에 저장하고 robo 로 결과를 확인할 생각이다. flask 와 mongodb에 대한 부분은 내 블로그 카테고리 또는 검색을 통해 알아보자. 아래 코드는 파이썬에서 flask 모듈을 가져와서 선언해주고 mongodb와 연결한 코드이다. 제대로 연결이 되었는지 확인을 위해 임의로 작성한 데이터를 mongodb에 업로드 해보고 결과를 확인해보겠다. 코드>> from flask import * from flask_pymongo import PyMongo import time #############################################..

Xbox Game Pass 가입자 1,800만 명 돌파 [내부링크]

마이크로소프트(MS)는 계속해서 Xbox Game Pass 서비스로 사람들을 끌어들이고 있다. '넷플릭스 포 비디오 게임' 서비스는 현재 1,800만 명의 가입자를 보유하고 있으며, 이는 앞서 9월에 보고된 1,500만 명보다 늘어난 것이다. 엑스박스 게임 패스(Xbox Game Pass)는 월 9.99달러에 100개 이상의 Xbox 게임을 선택할 수 있는 게임 서비스이다. 마이크로소프트는 지금까지 1년 이상 엑스박스 게임 패스를 추진해 왔고, 마이크로소프트는 미래에 많은 투자를 하고 있는 것이 분명하다. Bungie의 데스티니2 타이틀은 지난해 말 엑스박스 게임패스에 추가 되었고, 엑스박스와 PC 모두 "Control"이 이용 가능하다. 마이크로소프트의 최고 경영자인 Satya Nadella도 오늘 실..

유투브(YouTube) 지난 3년간 크리에이터, 아티스트에서 300억달라 이상 지불 / 유투브 정책 위한에 대한 채널 정지에 대한 방향성 [내부링크]

Wojcicki 최고경영자(CEO)가 최근에 발간한 서한에 따르면 유튜브는 지난 3년 동안 크리에이터, 아티스트, 미디어 단체에 약 300억 달러 이상을 지불했다고 한다. 워치키치가 2021년 크리에이터들에게 보낸 첫 서한에는 CEO는 유튜브의 성장에 시간을 보냈다고 하였다. 크리에이터가 광고 수익을 올릴 수 있는 이 회사의 파트너 프로그램에 가입한 신규 채널은 2020년 두 배 이상 늘었다. 워치키치가 강조하는 옥스포드 이코노믹스 보도에 따르면 유튜브는 2019년 미국 GDP에 약 160억 달러를 기여하고 34만5000개의 정규직 일자리를 창출하였다고 했다고 한다. 이 서한은 유튜브 팀이 여전히 그들 앞에 두고 있는 일에 초점을 맞추고 있다고 하였다. 주로 투명성, 특히 콘텐츠 정지와 광고비 지급을 우..

Amazon 사의 알렉사(Alexa) 스스로 판단해서 불을 끄는 등의 행동 가능 [내부링크]

알렉사가 사용자의 습관과 요청에 따라 불을 끄는 등 집안 일을 능동적으로 진행하게끔 아마존에서 새로운 기능을 활성화하고 있다. 알렉사는 2018년부터 사용자의 습관을 감지하고 이에 대해 물어볼 수 있었다. 회사에서는 이를 "감(hunch)"라고 명했다. 하지만 업데이트를 하기 전에는 사용자가 잠자리에 들기 전에 온도 조절기를 낮추는 것과 같은 동작을 진행하기 전에 허락을 구했다. "Proactive hunch"를 활성화하면 알렉사는 해당 작업에 대한 허락을 구하지 않고 그냥 진행 할 것이다. 아래 비디오는 알렉사 동작을 설명하는 애니매이션이다. www.youtube.com/watch?v=whahElqS5eA&feature=youtu.be "Proactive hunch" 기능은 알렉사를 훨씬 유용하게 만들..

내구성 (Durability) 이란? 설계 시 고려할 점은? [내부링크]

내구성이란? 내구성은 제품이 설계 수명(보증기간) 동안에 정상 작동을 할 수 있게 하고 문제에 직면했을 때 많은 유지보수나 수리를 필요로 하지 않고 기존 기능을 유지할 수 있는 능력이다. 사용 수명(years of life), 사용 시간(hours of use) 및 작동 주기 수(number of operational cycles)등이 주로 내구성을 수치화 하는 척도가 된다. 경제학에서는 사용 수명이 긴 상품을 내구재(Durable goods)라 한다. 내구성 좋은 제품의 설계는 3가지 특성을 지녀야 한다. 1. 지속성 (Last) 2. 데이지에 강한 성질 (Resist damage) 3. 마모에 강한 성질 (Resist wear) 내구성 (Durability) 관련 5가 Failure 모드 1. Fat..

바이든(Biden) 정부 관용 차량 전기 자동차로 교체 지시 [내부링크]

조 바이든 대통령의 지시로 연방정부는 가스 차량 사용을 단계적으로 폐지하고, 이를 전기 차량으로 교체하는 작업에 착수하였다. 이번 발표는 바이든 대통령이 유세장에서 정부 차량을 미국제 EV로 교환하겠다는 공약을 이행한 것이다. 바이든은 '바이 아메리칸(Buy American)' 행정명령을 발표한 월요일 브리핑에서 "연방정부는 엄청난 규모의 차량을 소유하고 있다"며 "이곳 미국에서 생산된 깨끗한 전기차로 연방정부의 차량을 대체할 것"이라고 말했다. 전기차 생산에 수십억 달러의 투자한 테슬라(Tesla), 리비안(Rivian), 로드스타운(Lordstown) 등 미국계 EV 제조업체는 물론 포드(Ford), 제너럴모터스(GM) 등 기존 자동차 업체들에게도 희소식이다. 미국 연방 서비스국에 따르면 2019년 ..

파이썬으로 인스타그램 자동 댓글 남기기(python instagram comment automation) [내부링크]

앞서 장에서는 처음에 인스타 자동 로그인을 실행하였다. 그리고 해시태그를 이용해서 자동 검색을 하였다. 그리고 원하는 페이지만큼 자동으로 좋아요를 클릭하였다. (앞에 내용을 확인하고 싶다면 블로그에 인스타그램 카테고리에서 확인할 수 있다.) 이번장에는 좋아요를 클릭하고 동시에 해당 페이지에 "hello BTS" 라는 댓글을 남길 것이다. 이번 코드의 진행 순서는 아래와 같다. 1. 자동 로그인 2. #BTS 로 검색하기 3. 페이지 "좋아요" 클릭하기 4. 댓글로 "hello BTS" 남기기 5. 다음페이지로 넘기기 6. 3~5번을 8번 반복하기. 우선 댓글에 xpath 위치를 instagram에서 확인해보자. xpath에 대한 내용은 아래 링크에서 확인할 수 있다. scribblinganything.t..

타겟에서 Xbox 시리즈 X 재입고 판매 [내부링크]

Microsoft의 주력 제품인 Xbox Series X는 현재 플레이스테이션과 함께 강력한 게임 콘솔 중 하나입니다. 구매에 어려움이있는 경우 Target(미국)에서 오늘 Xbox Series X를 재입고 했으므로 소모품이 소진 될 때까지 구매 가능합니다. 시리즈x를 구매하는 것이 어려운 점을 감안할 때 재고는 오래 가지 않을 것입니다. 매장에서 직접 구매할 수는 없지만 주문 후 집으로 배송하거나 매장 내 픽업을 요청할 수 있습니다. 모든 주요 하드웨어 출시와 마찬가지로 Xbox Series X 와 경쟁사 PlayStation 5에 대한 요청이 끊이지 않고 있습니다. 팬데믹 상황에 두 콘솔의 수요와 공급 불일치가 더 심화되었습니다. 많은 소매 업체가 콘솔을 온라인으로 독점 판매했습니다. 구매를 원하는 ..

여러방향으로 응력(stress)이 발생 시 표현하는 방법, 응력 표현방법 [내부링크]

응력(stress)은 아래와 같이 3가지 종류가 있다. 1. 인장 응력 (tension) 2. 압축 응력 (compressive) 3. 전단 응력 (shear) 우선은 응력은 아래와 같이 표현한다. p는 응력이 작용하는 면을 의미한다. q는 응력이 작용되는 방향을 의미한다. 수평 응력 (Normal Stress) 표현 위 그림에서 힘이 P처럼 들어가면 응력(감마)는 반대 화살 방향으로 면적에 반비례해서 생긴다. P/A P가 양의 방향이면 응력은 음수가 되고 P가 음의 방향이면 응력은 양수가 된다. 수직 응력, 전단(shear) 응력 표현 위 그림은 shear 힘을 받을 때 이다. 이때 F의 방향을 y라고 생각하면 전단 응력은 내부의 면(x축)에서 받고 가해지는 방향은 y축이다. 즉 응력은 아래와 같이 표..

Uber 전 "Postmates" 회사 직원 185명 해고 [내부링크]

우버가 약 185명의 이전 Postmates 직원들을 해고 하였다. 그리고 Postmates 팀을 Uber Eats 팀으로 통합시킬 계획이라고 뉴욕타입즈에서 보고 했다. 우버는 음식 배달 업체 Grubhub을 합병하려는 시도의 실패로 지난 7월에 26억달러에 Postmates 사를 합병하였다. 음식 배달 사업읜 전망은 패데믹이 발생한 가운데 밝은 사업이 되었다. 우버를 이용하는 고객이 약 50 퍼센트가 급감한 가운데 우버이츠로 배달시켜 먹는 비율이 작년 대비 135퍼센트 증가였다. 2021 년 말까지 수익을 내기 위해 회사의 다른 부분을 통합하였다. 12월에는 Uber Elevate 비행 택시 사업부를 Joby Aviation에 매각하였고 자율 주행 차량 부문은 Aurora Innovation에 매각하였..

티스토리 카테고리 삭제하는 방법 (비활성화되서 삭제가 안될때) [내부링크]

위 그림처럼 카테고리를 삭제하고 싶은데 삭제 버튼이 비활성화 되어있다. 결론부터 얘기하자면 카테고리안에 아직 게시물이 있기 때문이다. 먼저 게시물을 삭제해야 한다. 게시물 삭제 방법은 아래와 같다. 관리 페이지에서 왼쪽에 글관리를 클릭한다. 아래 그림처럼 내가 삭제하고 싶은 카테고리에 글만 선택하기 위해 카테고리를 탭 메뉴에서 선택한다. 그리고 카테고리의 글을 모두 한번에 삭제하고 싶으면 아래 그림처럼 탭메뉴를 사용해서 삭제를 선택한다. 이제 다시 카테고리 메뉴로 가서 카테고리를 삭제하기 위해 버튼을 누르면 버튼이 활성화 되어있고 원하는 카테고리를 삭제할 수있다.

열변형율 / 열응력 이란? (HEAT STRESS, HEAT STRAIN) [내부링크]

열변형의 예 전자 장치나 자동차의 전장 장치들의 부품을 보면 동작 온도 범위를 데이터 시트에서 쉽게 찾아 볼 수 있다. 가령 차량의 전장 부품들은 보통 80도까지는 버텨야한다. 많이 해당 부품에 80도 이상의 온도가 발생하면 문제가 발생한다. 이는 온도가 높아지면 열팽창이 발생하고 이것은 열응력의 증가로 이어져서 부품에 이상이 발생하는 것이다. 가공이나 용접에 의한 접합부분에 열이 발생해서 해당 부분에 열팽창이나 열응력이 발생해서 해당 재료의 정밀도가 떨어져서 내구성이 안좋아 질 수 있다. 기차선로나 도로를 자세히 보면 철로, 도로는 여름과 겨울사이 온도 변화로 인한 열변형율을 고려해서 틈새를 줘서 제작한다. 위 그림은 도로에 틈새를 준 설계이다. 1. 열변형률(Heat Strain) 재료에 온도가 올라..

파이썬 Selenium 페이지 로딩 대기하는 방법 [내부링크]

최근 웹 어플리케이션은 AJAX를 많이 사용한다. 즉, 페이지 전체를 로딩하는 것이 아닌 일부만 서버와 AJAX 통신을 하는 것이다. 그래서 브라우져에서 페이지를 로딩시 페이지에 element 들이 다른 시간대에 도착할 수 있다. 만일 페이지는 불렀고 우너하는 element가 아직 로딩 안된 상태에서 해당 위치를 selenium으로 찾으려고 하면 실패한다. ElementNotVisibleException 를 리턴해주게 된다. 셀레늄에는 두가지 방법으로 원하는 element가 로딩되는 시간을 기다려 준다. - Explicit Waits - Implicit Waits 1. Explicit Waits Explicit Waits 는 파이썬 개발자가 정한 조건이 될때까지 기다렸다가 되면 다음으로 진행한다. 조건문..

애플 2021년도 맥북 프로(Macbook Pro) SD 카드 슬롯 다시 복구 계획 [내부링크]

"Bloomberg’s Mark Gurman" 보고서에 따르면 이번에 출시될 2021년 맥북 프로 노트북에는 SD카드 슬랏이 다시 생길 예정이다. 이번 계획으로 회사의 유명한 포트 기준을 다시 회복하게 될것이다. 2016년 디자인 변경으로 SD 카드 슬랏을 제거한 뒤 MacBook Pro 제품군에서는 더이상 해당 슬랏을 포함하지 않았다. 디자인 변경에서는 USB C 포트를 제외하고 모든 포트를 제거 하였다. 해당 디자인 변경은 메모리 카드를 사용해서 컴퓨터에 사진이나 영상을 옮겨서 작업을 하던 많은 사용자들을 비평을 많이 받던 동글(케이블장치)를 사용할 수 밖에 없게끔 만들었다. 해당 뉴스가 나온 Gurman의 초기 보고서에는 애플의 14인치 16인치 디자인의 몇 몇 변화의 계획을 포함하고 있다. 변경되..

사이버펑크 2077(Cyberpunk 2077) 첫번째 패치 출시(버그 수정 버전) [내부링크]

사이버펑크 2077(Cyberpunk 2077)의 첫번째 업데이트 이용이 지금 가능하다. 이번 업데이트는 이전에 버그로 악명 높았던 해당 게임의 버그를 수정해준다고 한다. 개발자 "CD Projekt Red"는 트위터를 통해서 이번 업데이트는 향후 업데이트의 기초를 다지는 작업이 될 것이라고 했다. 사이버펑크 2077(Cyberpunk 2077)의 불안정한 출시 이후 한달 이후에 1.1패치가 나왔다. 해당 게임은 많은 버그와 이슈로 유명했다. 특히 예전 콘솔에서 그 현상이 더하였다. 개발자 "CD Projekt Red"는 3개의 긴급 수정(hotfix)를 통해 몇 문제를 보수하였다. 21년 12월 171일 소니사에서 플레이션스토어에서 게임을 회수하고 보상을 시작했다.하지만 아직 게임은 스토어로 돌아 오지..

Alphabet 사(구글 모 회사) 의 인터넷 풍선회사(Loon) 사업 종료 [내부링크]

구글 모회사 Alphabet 사는 자회사 Loon의 사업을 종료하기로 하였다. Loon은 열기구 형태의 풍선에서 인터넷을 제공하는 사업을 진행하고 있었다고 Alphabet’s X moonshot division 블로그에서 밝혔다. "상업적 실행 가능성 여부는 우리가 기대했던것 보다 더 많은 인내와 위험이 존재했다." 라고 X프로젝트를 총괄했던 Astro Teller가 블로그에서 말했다. "다음달부터 우리는 해당 프로젝트를 종료할 것이고 Other Bet within Alphabet 부에서 나올것이다." 라고 언급했다. Alphabet 사는 2013년 6월에 처음으로 Loon 프로젝트를 시작하였다. 그리고 2018년 Alpabet 사 내의 독립적인 회사로 출법하였다. Loon은 7월 케냐에서 첫번째 상업적..

셀레늄(Selenium) id, name, xpath, link_text, partial_link_text, tag_name, class_name, css_selector 로 엘리먼트(elements) 찾기 및 실습 [내부링크]

웹 페이지 element를 찾는 방법은 여러가지가 있다. 사용자는 셀레늄을 사용해서 가장 적절한 방법으로 찾으면 된다. Selenium 에서는 아래 방법들을 통해 element를 찾을 수 있게 도와 준다. - find_element_by_id - find_element_by_name - find_element_by_xpath - find_element_by_link_text - find_element_by_partial_link_text - find_element_by_tag_name - find_element_by_class_name - find_element_by_css_selector 여러개의 element를 리스트형의 리턴으로 받으려면 아래 방법을 사용하면 된다. - find_element_by_..

SPAC 합병으로 전기차 충전 회사 EVgo 상장 [내부링크]

전기자동차 시장의 또 다른 기업이 SPAC 합병을 통해 상장을 하고 있다. 이번에는 미국 전기차 충전소 선도업체인 EVGO 이다. 이번 거래로 EVGO에 5억7500만 달라가 유입될 것으로 보고 있다. 상장이 성공적으로 끝나면 EVgo는 뉴욕 증권 거래소에서의 상장사가 될 것이다. 합병에 들어갈 투자펀드는 기후 투자자인 David Crane에 의해 시작되었다. Crane은 10년 전 EVgo 시작을 도와 준 에너지 회사 NRG의 CEO 이다. 수익 중 약 1억 7500만 달러는 Crane의 SPAC에서 조달할 것이다. 나머지 4억 달라는 BlackRock 과 Pacific Investment Management Company (PIMCO) 와 같은 기관 투자자들을 포함하는 Crane의 SPAC에서 제공한..

삼성 디스플레이 노트북용 (세계 최초)90Hz OLED 스크린 대량 생산 [내부링크]

대표사진 삭제 사진 설명을 입력하세요. 노트북용으로 세계 최초 90Hz OLED 스크린 대량생산 계획을 삼성 디스플레이에서 발표하였다. 그리고 여러 글로벌 IT 회사들이 올해 해당 스크린을 탑재한 모델들을 출시할 계획이라고 밝혔다. 양산은 올해 3월 부터 시작할것이고 "매우 많은 양"이라고 최주선 CEO의 성명을 통해 말하였다. 비율이나 화질에대한 디테일은 나오지 않았지만 패널은 14인치 사이즈라고 한다. 여러 버전으로 출시가 될 것이라고 했다. 삼성에 따르면 이번 패널은 이전보다 빠른 반응속도의 OLED 패널이고 화면이 빠르게 전개 시 "사용상" 120Hz LCD정도의 흐림(Blurring)이라고 한다. 아직 성명에서는 노트북 OEM 파트너사에 대한 언급은 없다. OLED 디스플레이는 노트북에서 전례가..

어몽어스 새 기능(features) 업데이트 지연 이유 [내부링크]

어몽어스는 2020년 메가 히트 게임 중 하나이다. 11월 보고에 따르면 거의 5억명에 가까운 유저를 보유했다고 한다. 최근에 기대되는 업데이트가 있다고 발표 하였다. 업데이트에는 새로운 비행선 지도(airship map)과 계정 시스템에 대한 내용도 포함되었다. 어제 포스트된 블로그에 따르면 게임의 엄청난 인기에 맞추어 얼마나 많은 변화가 있었는지와 왜 새 기능 출시가 늦어지는지에 대해 개발자 Innersloth가 언급하였다. " 어몽어스는 2020년 후반에 예상치 못한 많은 유저 증가를 이루었다. 그리고 많은 유저의 증가는 어몽어스 개발자에게는 많은 변화를 의미한다." 라고 4명의 개발자 중 한명인 Innersloth가 말했다. 2개월 동안 코드 구조 변경을 해야만 했다. 프로세스 방향을 잡아야 했고..

변형율,푸아송 비율 (Strain, Poisson's Ratio) [내부링크]

푸아송 비율? : 압축(compression), 인장 (tension) 힘이 위 그림처럼 가해지면 재료의 길이가 힘에 따라 늘어나거나 줄어든다. 그리고 수직방향으로는 길이와 반대로 줄어들거나 늘어난다. : 푸아송 비율은 이때 길이의 변화율 과 수직방향 길이의 변화율의 비율이다. : 푸아송 값은 절대값으로 표현한다. : 푸아송비는 위 식처럼 가로쪽 변형률(Transverse strain)과 세로쪽 변형률(Longitudinal strain) 비율이다. : 푸아송 범위는 0~0.5 사이다. : 재료에 따라 푸아송 비는 바뀐다. : 대표적인 예로 철강은 0.3 알루미늄은 0.33 정도이다. : 전단탄성계수(Shear modulus of elasticity)는 선형탄성계수(modulus of elasticity..

후크, 훅의 법칙 (Hooke's law) / 응력-변형률 [내부링크]

훅의 법칙 : 재료에 따라 응력(stress, 시그마)-변형률(strain, 입실론) 그래프가 달랐지만 공통적으로 직선 구간이 존재함 : 직선 구간을 1차 함수로 표현이 가능함, 해당 표현식을 훅의 법칙이라고 함 : E 는 탄성 계수(modulus of elasticity) 이다. : 탄성 계수(modulus of elasticity) 는 열처리에도 변하지 않는 재료의 고유 특성이다. : 대표적인 탄성 계수(modulus of elasticity) 예 - 철강 207GP, 알루미늄 72GP

응력(stress), 변형률(strain) 그래프 [내부링크]

응력-변형률 그래프(curve) : 응력-변형률 커브는 동일한 재료에 대해 단면적과 길이가 달라도 동일한 그래프를 그린다. : 재료에 따라 커브 특성이 바뀐다. 비례한도(Proportional limit) : 그래프의 직선 구간의 마지막 점 탄성한도(Elastic limit) : 탄성한도 이하의 하중은 하중을 준다음 제거하면 시험편이 원래 길이로돌아간다. : 탄성한도 이상의 하중을 주고 제거하면 해당지점에서 직선구간과 동일한 기울기로 힘이 제거되고 영구변형률(permanent set)이 발생한다. 항복강도(Yield point) : 그림에서 C 위치 정도 됨 : 탄성한도에서 더 큰 힘을 가하면 재료로서 자기기능을 더 이상 발휘하기 어려운 점 : 일반적으로 0.2% 영구변형률(permanent set)을 ..

삼성 군용등급(Military grade) 태블릿 미국 출시(시작가 $489), 갤럭시 탭 Active 3 [내부링크]

작년 9월에 삼성 갤럭시 탭 Active3이 발표되었다. 이제 미국에서 시작가 $489.99 에 구매할 수 있다. 이 투박한 8인치 안드로이드 태블릿은 제조, 소매, 작업 현장용으로 설계되었다. 이 제품은 IP68 등급(물, 먼지 저항 인증)을 받았다. 삼성에 따르면 해당 태블릿은 23가지의 환경 테스트를 통과했다고 한다. (MIL-STD-810 군용등급을 맞추는 진동, 높은 고도 테스트 포함). 케이스는 1.5미터 추락을 견디고 IP68 인증 받은 S 펜은 박스 내에 포함된다. Active 3 터치스크린은 중장비 용 장갑만 아니라면 일반 작업 장갑을 착용한채로도 조작이 가능하다. 그리고 별도의 네비게이션 버튼이 있고 두개의 단축 버튼이 있다. 단축버튼으로 원하는 앱에 바로 접근 가능하다. 후면 13메가..

스토리텔링 왓트패드사(Wattpad) 5억달라 이상에 판매 - 네이버 사에서 구매 [내부링크]

Wattpad 는 신예 작가들의 작품을 헐리우드 영화나 티비, Hulu, 넷플릭스에 연결한 등용문의 역할을 했다. 키싱부스, Light as a Feather, After We Collided 와 같은 제목의 작품으로 번안되었다. 하지만 Wattpad 가 더이상 등용문의 역할을 하지않을 것으로 보인다. 대한민국에 위치한 네이버(Naver)사에서 Wattpad를 600백만불 이상을 지불해서 구매했고 오늘 발표 했다. 자세한 내용은 공개되지 않았지만 네이버 사에서 자사 웹툰과 Wattpad를 연결시킬 것으로 보인다. - 웹툰에서도 작가들이 자신의 작품을 포털에 올리고 유사하게 TV나 애니매이션으로 각색한다. (각색 작품의 리스트는 위키피디아에서 쉽게 확인할 수 있다.) Wattpad 사 프레스를 통해 네이버..

변형율(strain)이란? [내부링크]

변형율(strain)? : 같은 힘으로 동일한 재료, 동일한 단면적의 시편에 대해 인장시험 결과 변형량이 다르게 나옴 : 늘어나는 길이에 따라 차이가 발생함을 확인함 : 늘어난 길이를 초기 길이로 나누면 동일한 결과를 얻을 수 있다는 사실을 확인함 : 인장(당기는힘)은 변형율을 양수이고, 압축(미는힘)은 변형율을 음수로 표현함 : 응력(stress)와 달리 단면적은 변형율에 포함안됨. 전단 변형률(shear strain) :전단 응력처럼 물체를 자를 때 발생하는 변형율이다. : 전단 변형률의 각이 아주 작을 격우 tan 함수와 각도는 거의 비슷하다.

응력(stress)이란? 종류? [내부링크]

응력? : 수식적 표현식을 풀이해서 말하자면 힘의 크기를 단면적으로 나눈 값이다. (1Pa(파스칼) = N/m^2) : 인장(tensile, 당기는힘) 실험 중에 같은 재료에 동일한 힘을 단면적으로 나누면 유사한 결과를 얻는 다는 것을 확인함 응력 종류, 아래 그림 참조 - 압축응력(compressive stress) : 외부에서 미는 방향의 , 음수 값 - 인장응력(tensile stress) : 외부에서 당기는 방향의 힘, 양수값 - 전단응력(shearing stress) : 가위로 종이를 자르듯이 재료를 자를 때 발생하는 힘, 면에 수평방향으로 발생하는 내부 힘 - 수직응력(normal stress) : 인장 응력과 압축응력을 합친 것.

고체 물질 종류 [내부링크]

철금속 :철(Fe) 가 들어간 재료로 탄소(C)의 양에 의해 순철, 강철(탄소 ~0.15%), 주철(탄소 2.06~6.67%)로 분류 된다. 비철금속 :철(Fe)이 포함되지 않은 금속재료, 알루미늄, 구리, 마그네슘 등. 금속들을 2개이상 섞으면 합금 세라믹 : 1개 이상의 금속 원소와 비금속원소의 조합, 비금속 원소로 산소, 탄소, 질소 가 있음. 예, 알루미나, 지르코니아, 탄화규소, 질화규소 고분자(macromolecule, Polymer) 재료 : 분자량이 큰 화학물질, 일반적으로 분자량이 1만 이상인 큰 분자 : 열경화성 플라스틱(고온에서 녹지않고 탐), 열가소성 플라스틱(고온에서 녹음), 고무(천연, 합성)

닌텐도 스위치 사이즈 게이밍 PC (Aya Neo vs GPD win3) [내부링크]

일년전 CES2020에서 Alienware 제품으로 닌텐도 스위치와 유사하게 동작하는 모듈 게이밍 PC를 선보여서 큰 파장을 일으켰다. 윈도우 10 테블릿과 양 옆에 한 쌍의 게임 패드로 구성되었다. 안타깝게도 레노버 사의 이번 년도 아이디어처럼 Alienware 제품의 UFO는 컨셉 버젼이었다. 하지만 이 두 회사는 해당 제품에 crowd 펀드를 받아 제대로 불을 지폈다. 아마 살아있는 동안에는 볼 수 있을 것이다. 5.5인치 GPD Win3 와 7인치 Aya Neo 는 다른 방식으로 제품에 대해 접근하고 있다. Aya는 닌텐도 콘솔의 사이즈 모양, 게이밍 컨트롤 등을 비슷하게 따라가고있다. GPD는 손바닥 크기의 컴퓨터형식을 유지하고 스크린을 위로 밀어내면 키보드가 나오는 슬라이드업 스크린을 가지고 ..

애플사에서 Apple TV+ trial 7월까지 연장 (미국) [내부링크]

9to5Mac 에 따르면 애플에서 현재 진행중인 애플 TV플러스의 1년 시범 사용을 21년 7월까지 연장하기로 했다. Trial 은 아이폰, 아이패드 맥, 애플 티비 와 같은 애플 제품 구매시 제공해주었다. 원래 계획은 20년 11월까지 무료 제공이었다. 하지만 이번 연장 발표로 7월 까지 사용 가능하게 되었다. 무료 구독을 한 구독자들은 21년 2월에 만기되기로 되었으나 7월로 연장되었다. 이번 연장안은 제품의 출시 연기뒤에 나왔다. 현재 서비스가 시작한지 하나의 작품만 (Dickinson) 두번째 시즌 프리미어를 가졌다. 다른 For all Mankind, The morning Show, See 와 같은 작품은 여전히 시즌2가 나오기를 기다리고 있다. 코로나 바이러스러 인한 작품들의 발표 연기는 이해..

American Robotics 자동 스마트 드론 [내부링크]

대표사진 삭제 사진 설명을 입력하세요. FAA(Federal Aviation Administration, 연방 항공 행정부)에서 자동 운행 스마트 드론에 대한 규제를 10월에 크게 줄여주었다. 북 캐롤리나에 있는 어느 다리에서든 자동운행 스마트 드론(Skydio 사)으로 4년 동안 조사할 수 있도록 허가해주었다. 단 사람이 먼저 해당 다리 확인한 다음에 가능하다. 현재 US 에어스페이스 법 집행관은 더 크게 규제를 풀어주었다 : "American Robotics" 사는 드론 주변에 조정하는 사람 없이 운행할 수 있는 첫번째 회사가 되었다고 한다. 하지만 언론에서 발표한 "FAA에서 승인한 첫번째 상업용 자동운행 드론"은 기대에는 못미치고 있다. 왜냐하면 여전히 사람이 필요하기 때문이다. 법적으로는 승인되..

Asus 사에서 팬(Fan) 없는 크롬박스(Chrome box) 출시 [내부링크]

아수스(Asus) 사에서 쿨링팬이 없는 새로운 크롬박스(Chromebox)를 발표하였다 : Asus Fanless Chromebox 이전 모델과 마찬가지로 Asus Fanless Chromebox 는 컴팩트한 크기를 가지고 있고 모니터 뒤에 쉽게 설치할 수 있게 되어 있다. 공간을 많이 차지 않아 책상 같은 곳에 놔두어도 된다. 의도 하지 않았겠지만 디자인이 다소 무선 라우터와 비슷하게 생겼다. Asus Fanless Chromebox 는 8.15 x 5.82 x 1.26 인치 크기이다. 그리고 외부 샤시는 알루미늄으로 되어있고 사각형 박스 모양이다. 디자인 특징은 박스 윗 부분에 이랑(ridged)과 후면에 두개의 안테나에 있다. 이번 크롬박스의 특징은 10세대 Intel 코어 또는 Celeron 프로..

엔비디아(Nvidia), AMD의 GPU 부족 사태 [내부링크]

엔비디아의 새 출시품인 RTX 3080, 3070, 3060 Ti와 AMD의 RX 6800, 6800 XT 모두 현재 수급이 어렵다. 출시 되면 즉각적으로 팔리고 있다. 이와 같은 믿을수 없는 수요는 GPU 가격을 수백불에 달하게끔 상승시키고 있다. 트럼프 정부의 세금과 치솟는 cryptocurrecy 가격이 GPU의 가격(비트 코인 채굴에 이용)을 더 높게 만들었다. 심지어 예전 GPU 모델들도 온라인에서 빠르게 팔리고 있다. 이번주 엔비디아와 AMD에서 업데이트 뉴스를 발표했다. AMD 사에서 발표하기를 2021년 1분기에 고정된 가격으로 본사의 웹사이트에서 자사 대표 모델인 RX 6800, 6800 XT, RX 6900 XT를 판매하기로 하였다. 가격은 $579, $649, $999로 별도의 증가는..

JSON 개념, 의미, 사용 목적, Python Flask 와의 연동 예제 설명 [내부링크]

JSON 의 의미와 사용 목적 JavaScript Object Notation (JSON) 는 텍스트 형식으로 구조화된 형태로 자바스크립트 구문을 사용한다. JSON은 데이터를 웹 application에 전송할때 주로 사용된다. 가령 데이터를 서버에서 클라이언트의 웹브라우저로 보내거나 반대로 웹에서 서버로 보낼 때 사용된다. JSON 이 비록 자바스크립트의 형태를 따르기는 하지만 자바스크립에서 독립적으로 사용될 수 있고 많은 프로그램 환경에서도 JSON 기능을 제공한다. 현재 내가 개발하고 있는 환경은 파이썬 Flask를 이용해서 웹서버를 만들고 웹서버에서 주기적으로 웹브라우저에 데이터를 보내주는 예제이다. 만일 JSON을 사용하지 않고 데이터를 보내려고 한다면 python에서 별도의 encoding 과..

소니 (Sony) 사의 Airpeak 드론 [내부링크]

소니도 드론 사업을 시작 하였습니다. Airpeak 라는 이름의 드론을 올해 2021 미국 CES에서 처음으로 간략하게 선보였습니다. 새로 출시되는 이 드론은 Alpha 카메라는 운반할 수 있는 드론 중 가장 작은 크기라고 알려져 있습니다. Airpeak의 주 사용은 비디오 컨텐츠 제작 및 전문 사진 촬영입니다. 소니 측에서 해당 드론은 지형이나 도시 촬영용으로 사용된다고 얘기 하였지만 그 외에는 알려진 정보가 거의 없습니다. 이번 CES 쇼케이스에서는 소니사의 컨셉차량 Vision-S의 추적 촬영을 선보였습니다. CES2021에서 보여준 모델은 quadcopter(4개의 프로펠러) 였습니다. 두개의 착륙 장치가 있었고 이륙 시에는 위 쪽으로 접혔습니다. 드론 사업이 소니가 처음하는 분야이지만 카메라에 ..

아두이노에서 온도값 주면 db에서 저장한 값을 webGUI에서 그래프로 출력하기 [내부링크]

이번 프로젝트는 아두이노에서 온도값을 컴퓨터로 serial 통신을 사용해서 전달한다. (1초단위) serial로 받은 값은 파이썬과 mongodb를 이용해서 db에 저장한다. 동시에 다른 파이썬 프로그램에서는 web GUI 를 flask를 이용해서 실행시키고 db에서 읽은 값을 웹브라우져를 통해 그래프로 표현하다. 여기서는 그래프로 출력하는 파이썬 flask와 html 코드를 설명하겠다. 코드 - flask python>> from flask import Flask, Response, render_template from pymongo import MongoClient from datetime import datetime import json import time import random ..

bootstrap, container-fluid,container 클래스 비교 [내부링크]

코드 >> 결과>> 코드>> 결과>> 주석>> bootstrap container 클래스는 두번째 결과처럼 양 옆에 여분을 주고 container-fluid 는 옆에 여분없이 가져간다. 해당 성질은 bootstrap.css에서 가져 온것이다.

javascript css html head에서 정의(선언) [내부링크]

html 문서에서 head 내에 필요한 css나 js(javascript) 문서 링크를 선언한다. 코드>> 주석>> web 브라우저에 그래프를 그리기 위해서 필요한 js와 css를 가져오는 가정이다. link 문에는 css 문서를 css 서버에서 가져온다. script 는 js 자바스크립트 문서를 가져온다. jquery는 javascript 코드를 사용하기 편하게 만들어놓은 일종의 라이브러리로 앞으로 진행할 프로젝트에 필요하다. bootstrap은 jquery 처럼 누군가 구현하기 피곤한 javascript를 객체로 제공하는 것으로 우리는 필요한 부분만 빼서 사용하면 된다. Chart는 그래프 그릴때 필요한 자바스크립트로 이미 구현된 것을 명령어들을 가져와서 사용하면된다.

javascript 객체지향 [내부링크]

자바스크립트의 객체 지향을 공부했다. 파이썬의 Class 와 유사했다. 파이썬의 클래스에서 init에서 변수를 선언하고 그 뒤에 함수들을 선언해서 사용하는 것과 유사하게 javascript 에서 사용할 수 있다. 아래 예를 통해 이해해 보자. 코드>> 결과>> 주석>> a_var 라는 객체 안에 변수들을 키값하나에 다시 객체로 넣었다. 그리고 함수를 'function'이라는 키값 안에 넣었다. for 문 안에 this가 있는데 이것은 python에서 self를 말하는 것처럼 여기서는 a_var 자신을 가리키는 것이다. 그래서 a_var에서 변수 키값인 "variables"를 사용해서 값을 가져와서 함수에 적용한 것이다.

javascript 배열 명령어들 정리 (추가, 삭제, 정렬) [내부링크]

코드 예제를 통해 바로 이해해보자 코드>> 결과>> 주석>> push 는 배열 마지막에 추가해준다. concat은 배열 마지막에 여러값을 추가해준다. unshift는 배열 앞에 추가해준다. splice는 원하는 인덱스 위치에 여러 값을 넣어준다. pop은 배열 마지막 값을 빼준다. shift는 배열 앞의 값을 빼준다. sort는 숫자나 string을 정렬해준다. reverse는 역순으로 정렬해준다.

javascript breakpoint 디버깅 방법 [내부링크]

크롬 브라우저에서 디버깅 하는 방법을 정리하겠다. 아래와 같은 코드를 실행한다고 가정하겠다. 코드>> hello1 hello2 주석>> 코드를 실행하고 한줄 한줄 내용을 확인하고 싶을때 break point를 정하고 그 부분부터 한줄씩 코드를 실행하면서 변수가 값의 변화를 확인하는 것을 debugging 이라고 한다. 위와 같은 코드는 간단해서 쉽게 알수 있지만 만일 코드가 복잡하고 많은 변수가 있다면 변수의 변화를 직관적으로 확인하기 힘들 때가 있다. 그럴때 코드를 실행 후 웹 브라우져에서 마우스 오른쪽을 클릭하고 검사를 누른다. 그럼 아래 그림처럼 나온다. 그림에서 위에 탭중에 Source를 선택한다. 그럼 아래처럼 코드를 확인할 수 있고 원하는 break point 지점의 숫자를 클릭한다. 여기 예..

javascript documnet write 란 [내부링크]

자바스크립트로 웹페이지에 텍스트를 표현하고 싶을 때 사용하는 명령어 이다. 아래 코드로 애해해보자. 코드 >> hello1 hello2 결과>> 주석>> 자바스크립트로 write를 이용해서 글을 쓰는 이유는 반복적인 동작이나 논리에 따른 텍스트의 변화를 주고 싶을때 write와 함께 사용할 수 있다.

javascript prompt 로 입력값 받기 [내부링크]

자바스크립트 prompt는 웹 화면에서 입력을 받아서 넘겨 주는 역할을 한다. 아래 코드를 통해 이해해 보자. 코드 >> 결과>>

javascript 결과 확인을 위한 alert, console log [내부링크]

이제부터 자바스크립트 기초부터 정리하려고 한다. 파이썬의 print 와 비슷하게 결과들을 확인 하는 방법으로 alert와 console log로 확인하는 방법이 있다. 아래 코드로 이해해 보자 코드>> 결과 >> 주석>> html 파일을 열면 위처럼 alert 메세지가 바로 뜨고 console log는 크롬에서 개발자 모드로 들어가면 위 그림처럼 console 탭이 있다. console 탭을 선택하면 위처럼 메세지 값을 확인할 수 있다.

serial 통신으로 받은 값 DB에 저장하기 [내부링크]

이번 프로젝트는 미리 만들어 놓은 아두이노에서 온도 습도 가스 등등의 값들을 측정해서 serial 통신으로 1초 간격으로 보내주는데 받은 값을 파이썬으로 mongodb에 저장하는 파이썬 프로그램을 만들 것이다. 저장값은 robo 프로그램으로 확인할 것이다. 아래 값은 아두이노에서 보내는 값들이다 이중에 온도와 습도를 의미하는 Tv와 Hv 값을 가져오겠다. As0 Vs10 Es0 Cs400 Ts4000 Hs0 Lv0 Cv1129 Tv6855 Hv1561 Vv0 Ev400 Dv3 파이썬 코드를 통해 이해해보자 코드 >> from pymongo import MongoClient from time import sleep import serial import time class SertoDB_OOP(): def ..

PS5에서도 HBO Max 시청 가능 (미국) [내부링크]

HBO Max 가 다음 세대 PS5 콘솔에서 시청이 가능해질 것이라고 수요일에 소니측에서 발표 했다. PS 콘솔에서는 스트리밍 서비스를 하지 않았던 HBO가 PlayStation 트윗 계정을 통해 이 같은 사실 발혔다. PS4 에는 안타깝게도 해당 사항이 없다. PS5 사용자들은 내년 HBO 스트리밍 서비스로 출시할 Wonder Woman 1984를 4K HDR로 볼 수 있을 것이다. (Xbox Series X/S 사용자들은 해당 HBO 앱을 이용 사용이 가능함) 처음에 PS5에서 HBO Max를 다운 받았을 때 PS4에서만 사용가능하다고 나왔지만 reboot 이후에 다운로드가 가능했다. 만일 HBO Max 앱 다운을 원한다면 PS5 홈 스크린에서 media 탭에서 찾을 수 있다. 원문>> Son..

mongodb 두개의 프로그램으로 쓰면서 읽기 [내부링크]

이번 주제는 하나의 프로그램이 db에 쓰기만을 하는 동안 다른 프로그램에서 해당 db에 접속해서 읽는동작만 하는 것을 구현하였다. 일초 단위로 읽고 쓰고 읽는 값은 마지막 3개의 값만 출력하는 것으로 하였다. 파이썬으로 작성하였고 pymongo로 동작한다. 아래 코드를 통해 이해해 보자. 코드 - write.py>> from pymongo import MongoClient from time import sleep my_client = MongoClient("mongodb://localhost:27017/") db = my_client['number_inc'] db_col = db.numbers idx = 0 while True: post = { "num": idx, } db_col.insert_one(p..

flask, pyserial 동시에 사용하기 [내부링크]

이번 주제는 flask로 웹서버를 동작시키면서 동시에 serial 통신으로 아두이노로 부터 값을 계속 받아오고 싶었다. 처음에 사용한것은 thread 모듈이었는데 웹서버와 같이 thread를 돌리는 방법은 시도하다가 잘안되서 포기하였다. 그렇게 찾은 것이 flask의 Response 함수 였다. Reponse는 말그대로 실시간 (on the fly)로 데이터를 처리해주는 것이다. 아래 링크를 통해 공부하였다. https://flask.palletsprojects.com/en/1.1.x/patterns/streaming/ Streaming Contents — Flask Documentation (1.1.x) Streaming Contents Sometimes you want to send an enormo..

Gmail 오류 현상 발생 (Youtube 먹통 현상 하루 뒤 발생) [내부링크]

Google에서 화요일 오후(미국시간) 상당 수의 Gmail 사용자들이 Gmail 서버스 사용에 오류를 겪었다고 발표했다. 사용자이 inbox 에 접속할 때 에러 메세지나 이상 현상 등이 발생하였다고 서비스 페이지에 발표하였다. Google은 해당 문제를 6:51PM ET에 해결 하였다고 발표 했다. 해당 에러는 Gmail, YouTube, Google Docs 과 같은 Google 제품의 먹통 현상이 발생한지 하루 뒤에 발생한 것이다. Downdetector(웹사이트 문제현상 모니터프로그램)이 약 3PM ET에 Gmail 문제 현상을 발견했다. 사용자들은 inbox 접속 불량, 이메일 송신 실패(gmail간) 등을 보고 했다. 원문>> Google says that a “significant subse..

bootstrap 예제 가져와서 사용해보기(로그인페이지) [내부링크]

bootstrap을 간단하게 말하자면 트위터에서 개발한 일종의 라이브러리/템플릿 정도로 보면 된다. 우리가 웹사이트를 개발할때 사람들에서 보여지는 front end를 개발해야 하는데 이부분이 미적감각도 있어야 하고 javascript css 등 신경써야할 부분이 많다. 이런 노동들을 줄이고자 많은 bootstrap template를 유료 또는 무료로 사용할 수 있다. 여기서는 간단히 로그인 페이지를 무료 template를 가져와서 flask와 연동해서 만들어 보겠다. https://getbootstrap.com/docs/5.0/examples/ 위 링크에서 example를 다운로드 한다. 그중에 bootstrap-5.0.0-beta1-examples\bootstrap-5.0.0-beta1-examples..

jquery 예제 설명, cdn이란 [내부링크]

jquery란 javascript의 라이브러리이다. 라이브러리의 일반적인 기능처럼 구현하기 복잡한 javascript 코드나 기능들을 사용자들이 쉽게 사용할 수 있게 해준다. jquery를 사용하기 위해서 html head에 사용한다고 선언해주어야 하는데 여기서 라이브러리 위치를 지정해줘야 한다. 보통 서버에 jquery를 저장하거나 jquery 웹이나 google웹에 위치한 라이브러리를 가져오는데 웹에서 가져오는 장점은 전세계에 서버가 많이 퍼져 있어서 라이브러리를 이용하는 사용자가 자신 가까이 위치한 웹서버에서 가져온다. cdn (content delivery network)는 해당서버에서 가져오는 내용(라이브러리)라고 보면된다. 기초적인 명령어는 코드 예제를 통해 이해해보자. 코드-flask.py>..

Flask route란 [내부링크]

flask route는 입력 인자의 위치를 웹브라우져를 통해 접속 했을 때 route 바로 밑에 정의 된 함수를 실행해서 return 값을 웹브라우져에 표현해 주는 것이다. 아래 예를 통해 이해해보자. 코드 - test.py>> from flask import Flask from flask import request from flask import render_template web_gui = Flask(__name__) @web_gui.route('/') def hello_fnc(): return 'Hello' @web_gui.route("/page", methods = ["GET", "POST"]) def page_fnc(): if request.method == "POST": return 'POST..

Samsung Galaxy S21 Plus 새 비디오 공개 [내부링크]

1월 출시 예정을 앞두고 삼성갤럭시 S21 Plus에 대한 정보들이 공개되고 있다. 새로 공개된 비디오에서는 flat display와 display를 감싸는 bezel과 펀치구멍 처럼 일렬로 배치된 카메라를 볼 수 있다. Ramdon Stuff2 라는 유저에 의해 공객된 비디오 상태는 좋지않았다. 갤럭시 S21의 후면에 대한 정보가 없었고 산만하게 만드는 음악이 감상을 방해 한다. 3가지 Galaxy S21 모델이 출시될 예정이다. Standard / Plus / Ultra. 유출된 비디오를 통해 확인한 결과 Ultra 모델은 5개의 카메라를 가지고 있고 나머지 두 모델은 3개의 카메라가 있었다. Android Police 가 지난달에 발표한 바에 따르면 Standard는 6.2인치, Plus는 6.7인..

post form 으로 보낸 데이터 mongodb에 저장하기 [내부링크]

이 프로젝트의 최종 목적은 아두이노에서 모은 가스, 온도, 습도 정보를 web GUI(Graphic User Interface)로 표현하는 것이다. 우선 첫단계로 일반적인 페이지에서 정보를 받아서 POST form으로 서버의 DB에 저장하는 예제를 실행하겠다. 파이썬 flask로 web GUI를 만들 예정이고, db는 Mongo 를 이용할 것이다. 코드-data_send.html>> raw data0 주석-data_send.html>> form으로 묶어서 POST를 보내는 것이다. action은 form을 진행한 다음 동작인데 그냥 원래 위치 그대로 유지한다. raw_data0을 동일한 이름으로 name에 묶어서 보내주는 역할을 한다. 코드- run.py>> from flask import Flask f..

virtualenv 가상환경 만들기 [내부링크]

파이썬에서 가상환경을 만드는 주 목적은 프로젝트별 내가 설치한 library를 추적하기 편하게 하기 위해서 이다. 여러 프로젝트를 돌리다 보면 다양한 library를 설치하는데 이를 서버나 다른 PC에 옮길때 virtualenv로 독립된 공간을 만들면 옮기기 용이하다. 설치 방법>> visual studio 에서 가상환경을 만들 폴더를 만든다. 나는 webgui_project라는 폴더를 만들고 pip install virtualenv 위 명령을 실행해서 virtualenv 를 설치했다. (이미 설치해서 설치되어있다는 결과가 나옴) virtualenv venv 위 명령어로 해당 폴더에 venv (이름은 사용자 마음대로 변경 가능) 라는 가상환경을 만들었다. venv 폴더 밑에 일반적인 python 프로그램..

list copy [:] 리스트안에 콜롬(:) 사용하는 이유 [내부링크]

코드>> a_var = [0,1,2,3] b_var = a_var c_var = a_var.copy() d_var = a_var[:] print(type(a_var)) print(a_var) print(b_var) print(c_var) print(d_var) print(id(a_var)) print(id(b_var)) print(id(c_var)) print(id(d_var)) 결과>> [0, 1, 2, 3] [0, 1, 2, 3] [0, 1, 2, 3] [0, 1, 2, 3] 3000420137536 3000420137536 3000421627328 3000421627136 주석>> 파이썬은 객체 언어이다. int 값을 정하는 것도 모두 객체이다. 위 코드는 리스트 값을 복사하는 여러 방법을 표현했다..

Royole FlexPai2 폴더폰 [내부링크]

Royole FlexPai 라는 첫번 째 폴더폰을 기억하시나요? 안타깝게도 기대 이하였습니다. 그 뒤 FlexPai2 는 좋은면으로 다른 제품입니다. FlexPai2 는 기존에 안으로 접는 형태와 다르게 화면 바깥으로 접습니다. 그래서 접어도 화면을 볼 수 있습니다. 구조도 탄탄해 보입니다. 하지만 화면상에 단점이 있습니다. 접히는 면이 넓다는 것입니다. 그리고 펼치고 화면에 손을 대었을 때 경첩부분이 느껴 집니다. 9,998 위안으로 싼가격은 아닙니다. 폴더폰을 사라고 추천은 하고 싶지 않지만 초기 폴더 폰에 대한 노력은 인정해줘야 합니다. 원문>> Remember the first folding phone, the Royole FlexPai? Unfortunately, it was bad. But t..

MongoDB 기본 명령어 모음, 파이썬 [내부링크]

코드>> import pymongo a_var = { "name": "James", "age": 25, "city": "Daejeon", "profile_pic" : [ "pic_a.png", "pic_b.png" ] } b_var = { "name": "Brown", "age": 29, "profile_pic" : [ "pic_c.png", "pic_d.png" ] } c_var = { "name": "Judy", "age": 22, "city": "Seoul", "profile_pic" : [ "pic_e.png" ] } # mongodb와 연결 형성 connect_to = pymongo.MongoClient("localhost", 27017) mdb = connect_to.test_db # coll..

데이터 베이스 (DB) 개념 [내부링크]

이번 프로 젝트는 파이썬으로 웹서버를 만들 것이다. 웹서버를 운영하기 위해 웹프로그램이 필요한데 이를 파이썬으로 할 것이다. 웹서버에는 사용자 정보나 각종 서버에 정보를 쓰고 읽고 하는 공간이 필요 하다. 이 공간이 데이터베이스다. 기존의 DB는 RDBMS(Relational Data Base Management System)라고 불렸다. Relational 은 엑셀과 같이 테이블로 구조를 가진것 처럼 생각하면 된다. 구조의 상대적 위치를 통해 자료를 찾는 것이다. SQL(Structured Query Language)이 Relational을 사용한다. SQL은 행과 열의 구조가 갖춰진 채로 저장하는 것이다. 나머지 DB 형태는 No SQL이라고 하는데 Document, Search engine, Key..

파이썬 함수안에 함수, 중첩함수 [내부링크]

가끔 함수안에 함수를 쓰는 경우가 있는데 하나의 함수로 코드를 끝내고 싶을 때 쓰긴하지만 비효율 적이라 보통은 class를 사용한다. 함수안에 함수를 사용하게 되면 가장 바깥에서 선언된 변수는 함수 내에서는 전역변수 처럼 동작하고 함수 안의 함수에서 선언된 변수는 지역변수 처럼 동작한다. 아래 코드를 통해 이해해보자. 코드>> def f_out0(a_var): b_var = a_var print(id(a_var)) print(id(b_var)) print(b_var) print("#######") def f_in0(): b_var = "hi" print(id("hi")) print(id(b_var)) print(b_var) print("#######") def f_in1(): print(id(a_var)..

AirPods Max headphone 출시 [내부링크]

애플이 새로 출시한 AirPods Max headphone 은 경쟁사 Bose와 Sony 제품에 비해 프리미엄 가격이 붙은 549달러에 판매된다. 제어를 위한 디지털 크라운과 자석으로 탈부착이 가능한 earcup 등 디자인은 호불호가 갈릴 듯 하다. 원문>> Apple’s new $549 over-hear AirPods Max headphones cost a premium over the competition from Bose and Sony. With a digital crown for controls, magnetically removable earcups, and a design that may end up being polarizing, even our first look has a lot to ..

인스타그램 자동 "좋아요" 클릭 (like click) 파이썬 [내부링크]

좋아요 자동 동작 코드를 보기 전에 자동 로그인과 자동 검색을 아래 링크서 먼저 확인하고 보는것을 추천한다. scribblinganything.tistory.com/20?category=943911 인스타그램 자동 로그인 (Instagram Log in) 코드>> from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions a.. scribblinganything.tistory.com scribblinganything.tistor..

파이썬 zip함수, 별표(*) [내부링크]

코드 >> a_var = [0,1,2,3,4] b_var = [0,1,2,3] c_var = [2,4,6,8] print(zip(a_var,b_var,c_var)) print(list(zip(a_var,b_var,c_var))) print(*list(zip(a_var,b_var,c_var))) 결과 >> [(0, 0, 2), (1, 1, 4), (2, 2, 6), (3, 3, 8)] (0, 0, 2) (1, 1, 4) (2, 2, 6) (3, 3, 8) 주석 >> zip 함수는 iterable 의 반복 가능한 자료형을 입력으로 받는다. 입력받은 인자 값의 갯수 중 최소 갯수를 받아서 묶어서 튜플로 보내 준다. 위의 예제에서는 b_var, c_var의 갯수가 4개로 가장 작으므로 4개의 튜플이 생긴다. 첫..

파이썬 functools reduce 사용법 [내부링크]

간단히 코드를 통해 이해 해보자. 코드>> import functools a_var = [1,2,3,4,5,6,7] print(functools.reduce(lambda x, y: 10 * x + y, a_var, 0)) 결과>> 1234567 주석>> 위 코드는 리스트에 숫자를 꺼내서 정수형태로 합치는 코드이다. 우선 functools의 reduce 함수는 인자를 하나씩 꺼내어 표현식에 누적해서 넣는 방식이다. 함수 설명 부분을 visual studio에서 가져왔다. def reduce(function, sequence, initial=None) reduce(function, sequence[, initial]) -> value Apply a function of two arguments cumulat..

ESP8266 와이파이내에 다른 station과 ping 주고 받기 [내부링크]

지난 번 구성과 동일하게 코드를 올리고 보드를 설정해서 테스트 하겠다. 지난번 구성은 아래 링크에서 확인하면 된다. https://blog.naver.com/forgodbok/222162696366 작업을 스텝별로 진행하겠다. 1. AT+RST >> 리셋을 하자마자 이전에 저장해놓은 와이파이 아이디와 비번때문에 자동으로 와이파이 연결되었지만 무시하고 진행하겠다. 2. AT+CWMODE=1 >> station mode로 ESP8266을 설정하였다. station mode를 간단히 설명하자면 와이파이 AP에 연결된 핸드폰 같은 end user 라고 생각하면 된다. 3. AT+CWJAP="your SSID","your SSID password" >> 그림처럼 와이파이에 접속했다. 4. AT+CIFSR AP에 ..

파이썬 deque 사용하는 이유 / popleft [내부링크]

파이썬 deque는 list와 dictionary와 거의 동일하게 생각하면 된다. 차이는 popleft의 시간 차이다. list의 경우 pop()으로 마지막 값을 꺼내는 경우 O(1) (일정한 시간) 시간이 걸리는데, pop(0)으로 가장 앞단에 값을 꺼낼때는 list 크기에 따라 읽어 오는 시간이 달라진다. O(n) 시간이 걸린다. 하지만 deque를 사용할 경우 popleft()를 사용하면 리스트의 pop(0)과 같은 기능을 주면서 걸리는 시간은 O(1)이 걸린다. pop을 사용하는 경우 말고 index로 값을 읽어 오는 경우는 리스트나 deque 모두 O(1)로 일정한 시간만 걸린다. 즉, index의 주소 값으로 바로 값을 찾는 것이다. 아래 코드는 각 상황에 따라 시간을 측정한 값이다. 0.00..

linked list / 연결리스트 란? 파이썬 [내부링크]

링크드 리스트는 파이썬 동적 구조를 잘 설명해 주는 개념이다. 일반적인 정적인 언어들은 변수 선언을 통해 메모를 순차적으로 채워 간다. linked list 는 본인의 값과 다음 노드를 알려주는 포인터를 지녀서 메모리에서 연속적으로 사용되지 않고 포인터로 연결된 형태로 사용이 가능하다. 아래 예제를 통해 이해해 보자. 코드>> class linked_node: def __init__(self, x): self.val = x self.next = None class node_value_extract: def extract(self, linked_n): a_var = [] node = linked_n # 리스트 변환 while node is not None: a_var.append(node.val) node..

파이썬 typing모듈 왜 사용하나? , mypy 검사 [내부링크]

코드 >> import typing a_var: str = "hello" a_var = 5 print(a_var) def typing_check(b_var: str): print(b_var) typing_check(6) c_var: typing.List[int] = [1, 2, 3] c_var.append("hi") print(c_var) 결과 >> 5 6 [1, 2, 3, 'hi'] 주석>> 파이썬은 동적 할당을 한다. 예를 들어 리스트가 있으면 append로 추가적으로 리스트 값을 늘릴 수도 있고 변수에 int 를 넣었다가 string으로 변경도 가능하다. 컴파일 언어들은 컴파일 과정에서 문제를 발견할 수 있다. 하지만 파이썬의 경우 코드를 짜는 사람의 휴먼 에러로 잘못된 값을 할당하고도 모르고 지나..

ESP8266 기본 명령어 (AT) [내부링크]

전제 조건>> https://blog.naver.com/forgodbok/222162696366 위 링크 구성으로 연결된 상태에서 기본 명령어 실행을 하겠다. 간단히 구성을 설명하자면 컴퓨터와 메가2580 아두이노가 시리얼 통신을 하고 입출력은 ESP8266와 주고 받는다. 와이파이 접속하기>> 본인 와이파이 id와 비번을 입력하여서 위처럼 명령어를 입력하면 와이파이 접속이 된다. IP와 MAC 주소 확인>> MAC 주소는 고유값이라 표기를 지웠다. 웹사이트 접속하기>> 웹사이트에서 흔히 우리가 쓰는 http (https아님) 는 80번 포트를 사용한다. 그리고 TCP 통신으로 3 hand shake를 한다. AT+CIPSTART="TCP","222.122.84.24",80 AT+CIPSTART="TCP..

아두이노 와이파이 통신 기본 코드 실행 (ESP8266) [내부링크]

재료 >> 1. 아두이노 메가보드 2560 (호환) / 정품아님 2. ESP8266 3. ESP-01 어댑터 보드 구성>> ESP8266 전원은 메가 보드 5V와 GND에 연결했다. 메가보드 RX는 ESP8266 TX에 연결, TX는 ESP8266의 RX에 연결함. 어댑터는 내부 레귤레이터가 메가에서 나온 5V를 3.3V로 변경해줌, RX,TX전원도 5V에서 3.3V로 변경해줌. USB의 전류가 ESP8266을 돌리는데 부족한 경우가 발생하기도 함. 그런 상황을 방지 하기 위해 메가 전원선을 연결하는게 좋음. 메가 보드르 사용한 이유는 serial 통신(RX/TX)가 여러개 있어서 PC와 serial 통신하면서 wifi를 다른 serial 라인에 연결해서 debug가 가능하다. 코드>> void setu..

파이썬 sys.getsizeof 변수 크기/사이즈 확인 [내부링크]

파이썬에서 변수의 사이즈를 확인하는 방법은 sys 모듈에서 getsizeof를 사용하면 된다. 아래 예제를 참조 하자 예제>> import sys a_var = sys.maxsize b_var = 1 c_var = float('inf') print(a_var) print(b_var) print(c_var) print("#####################") print(sys.getsizeof(a_var)) print(type(a_var)) print(sys.getsizeof(b_var)) print(type(b_var)) print(sys.getsizeof(c_var)) print(type(c_var)) print("#####################") a_var = 3.1212312312312..

인스타그램 자동검색(해시태그) [내부링크]

지난번 자동 로그인 다음으로 자동 검색을 실행하겠다. 코드>> from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.keys import Keys import time class InstagramAutomation(): def log_in(self): options = webdriver.ChromeOptions() # options.headless = Tru..

if in 구문, for in 구문 [내부링크]

if A in B 구문은 B에 값들 중에 A가 있는지 확인하는 것이다. for A in B 구문은 B 값들을 하나씩 A 변수에 넣어주는 것이다. 아래 코드로 확인해 보자 코드>> list_var = [2,11,15,7,5,14,8,9] def compare0(list_var, goal): for i, val in enumerate(list_var): print(i,":",val) if goal == val: return i, list_var.index(val) def compare1(list_var, goal): if goal in list_var: print("값이 존재합니다.") a_var, b_var = compare0(list_var, 14) print(a_var) print(b_var) prin..

ASCII vs Unicode(유니코드) vs UTF-8 차이 [내부링크]

처음에 코드에서 문자를 표현하던 방식은 ASCII 인코딩 방식이 었다. ASCII 는 8비트(1바이트) 공간만 차지 한다. 한 비트는 checksum으로 사용하고 2^7 = 128 개는 글자를 표현하는데 사용 되었다. 하지만 영어를 표현할 수 있지만 한글같은 문자는 1바이트로 표현이 안되어서 나온 방식이 유니코드 인코딩이다. 2~4바이트의 여유 공간을 가지고 문자를 표현 해준다. 유니코드의 문제는 영어는 한바이트로 표현이 가능함에도 2바이트 이상의 공간을 차지하므로 메모리를 불필요하게 사용하게 된것이다. 그래서 나온 방식이 UTF-8로 문자 종류에 따라 가변적으로 메모리를 할당해서 효율적으로 사용할 수 있게 해준다.

sorted 와 key 값, lambda 사용법, 키 값으로 함수사용 [내부링크]

코드>> a_var = ["4444", "333", "222", "455", "505", "770"] def key_ex(x): return x[-1],x[1] print(sorted(a_var, key=len)) print("#################") print(sorted(a_var, key=key_ex)) print("#################") print(sorted(a_var, key=lambda x: x[0])) 결과>> ['333', '222', '455', '505', '770', '4444'] ################# ['770', '222', '333', '4444', '505', '455'] ################# ['222', '333', '4444'..

sort vs sorted 차이 join 함수 [내부링크]

코드>> a_var = ["abc", "ccc", "fff", "ddd", "111", "bbb"] b_var = "".join(sorted(a_var)) c_var = sorted(a_var) d_var = c_var.sort() print(b_var) print(c_var) print(d_var) print("############") print(a_var) a_var.sort() print(a_var) 결과>> 111abcbbbcccdddfff ['111', 'abc', 'bbb', 'ccc', 'ddd', 'fff'] None ############ ['abc', 'ccc', 'fff', 'ddd', '111', 'bbb'] ['111', 'abc', 'bbb', 'ccc', 'ddd', 'fff..

인스타그램 자동 로그인 (Instagram Log in) [내부링크]

코드>> from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import time def log_in(): options = webdriver.ChromeOptions() # options.headless = True options.add_experimental_option("excludeSwitches", ["enable-logging"]) # options.add_argument("user-agent=Moz..

collections Counter 로 가장 많이 사용한 단어 찾기 [내부링크]

신문이나 책에서 가장 많이 사용된 단어를 찾고 싶을때 유용한 모듈이다. collections 의 Counter는 파이썬 모듈로 입력값으로 받은 값을 카운팅해서 dictionary 형태로 해당 단어와 단어가 사용된 횟수를 알려 준다. 리스트를 입력값으로 넣으면 리스트내의 값을 비교해주고 string으로 입력하면 한단어를 기준으로 파악해준다. 아래 코드를 통해 쉽게 이해해 보자 import re import collections paragraph = "윤석열 검찰총장에 대한 징계 심의를 \ 하루 앞두고 오늘 법무부 감찰위원회가 긴급 소집됩니다.\ 윤 총장에 대한 감찰이 타당한지 등을 논의할 전망인데, \ 어떤 권고가 나올 지 주목됩니다.법무부 나가있는 취재기자 \ 연결해 자세한 내용 들어보겠습니다.이재희 기..

파이썬 list 와 슬라이싱(slicing) [내부링크]

슬라이싱은 [ : : ] 로 표현된다. 세미콜론(:)이 두개 들어 가는데 첫번째 인자는 리스트로 생각하면 index의 시작 점, 두 번째는 끝점, 마지막 인자는 index를 몇 칸씩 움직일지를 알려 준다. 슬라이싱의 장점은 파이썬에서 일반 list를 사용할 경우 내부 값의 위치를 변경할 경우 index를 참조해서 움직이므로 그에 따른 시간이 걸린다. 하지만 슬라이싱은 파이썬 내부에서 C로 구현된 구조체여서 빠른 속도로 변경이 가능하다. 그리고 string의 경우 리스트에 넣어서 변경해야 하는것에 반해 슬라이싱은 string도 자유롭게 변경할 수 있다. 아래 예제를 통해 이해해 보자 a_var = "ABCdef12345" b_var = a_var[1:7:2] c_var = a_var[::-1] print(..

파이썬 replace, strip 함수란 [내부링크]

string 을 변경할 때 유용한 함수가 replace와 strip 이다. 우선 strip은 string의 제일 앞 또는 끝의 내용이 인자와 일치 할 경우 삭제해준다. 만일 인자를 넣지 않으면 \n(줄넘김), 빈공백을 없애 준다. 줄넘김과 빈공백 또한 string의 앞 또는 끝에 위치 할 경우 만이다. string 중간에 위치한 줄넘김, 공백을 없애고 싶을 경우나 내용을 변경하고 싶을 때 replace 를 사용한다. 아래 코드와 결과를 보면 쉽게 이해 될 것이다. a_var = "12 3@abc\ndef\n" print(a_var) print("##################") print(a_var.strip()) print("##################") print(a_var.strip("1..

continue, break, pass 차이 [내부링크]

조건문을 사용할 때 continue, break, pass 를 어떻게 사용하는 냐에 따라 조건문 진행 방법이 달라 진다. 아래 코드를 통해 간단하게 이해해보자 for a_var in range(5): if a_var == 3: print("a_var종료") continue print(a_var) print("") for b_var in range(5): if b_var == 3: print("b_var종료") break print(b_var) print("") for c_var in range(5): if c_var == 3: print("c_var종료") pass print(c_var) print("") 결과>> 0 1 2 a_var종료 4 0 1 2 b_var종료 0 1 2 c_var종료 3 cont..

xpath란 [내부링크]

요즘 나오는 웹페이지들은 마우스 오른쪽 클릭으로 아래 그림 처럼 페이지 소스 보기를 하면 복잡한 코드를 확인할 수 있다. 웹 크롤링이나 웹 자동화를 위해서는 특정 부분의 조작이나 정보를 가져와야 하는데 이를 구분 짓기 쉽게 해주는 것이 xpath이다. 한마디로 모든 코드들이 가지는 unique 한 주소 값 정도로 생각하면 되겠다. xpath를 가져오는 방법은 아래와 같다. 나는 크롬만 사용하므로 크롬 기준으로 설명하겠다. 우선 크롬에서 원하는 웹페이지를 들어 간다. 그리고 오른쪽 상단에 점 세개 있는 부분을 클릭하면 도구 더보기 >> 개발자 도구 로 들어 간다. 대표사진 삭제 사진 설명을 입력하세요. 또는 웹 화면에서 마우스 오른쪽 클릭 하여 검사를 클릭 한다. 대표사진 삭제 사진 설명을 입력하세요. 그..

collections.defaultdict 이란 [내부링크]

딕셔너리는 존재하지 않는 키 값을 출력 할 경우 아래 코드 처럼 에러가 발생 한다. 이러한 에러를 없애기 위해 try 문을 사용한다. import collections a_var = {"k_1":"v_1","k_2":"v_2","k_3":"v_3","k_4":"v_4"} try: print(a_var["k_5"]) except: print("에러발생") 결과>> 에러발생 defaultdict 객체는 위의 딕셔너리 문제를 쉽게 해결해 준다. defaultdict에 인자 값은 int, list, set 을 받을 수 있다. 아래 코드 처럼 키의 value 값은 default로 int 0이 자동으로 들어 간다. 그리고 인자를 int로 사용했을 경우에도 다른 값 (여기서는 string) 을 선언해서 사용할 수 있..

locals(), globals() [내부링크]

locals 와 global의 현재 namespace (전역, 지역, builtin) 을 딕션너리(dict)으로 정리해서 넣어 준다. 둘의 차이는 locals은 말그대로 locals()가 실행되어지는 함수내의 지역 namespace 들을 정리해서 넣어주고 globals는 전역, 지역, builtin 정보 모두 dict 형태로 정리해 준다. 아래 예제를 통해 이해해 보자. a_var = range(2) def locals_test(): b_var = 3 c_var = "hi" d_var = locals() print(d_var) locals_test() e_var = globals() print(e_var) 결과>> {'b_var': 3, 'c_var': 'hi'} {'__name__': '__main__..

enumerate, index값 불러오기 [내부링크]

자료형 list, set, tuple 들은 값의 순서를 왼쪽부터 index를 매길 수 있다. enumerate를 사용하지 않는 다면 아래 코드 처럼 갯수를 알기 위해 len라는 함수를 불러 추가적인 작업이 필요하다. a_var = range(5) for index in range(len(a_var)): print(index, a_var[index]) enumerate를 사용하면 아래 코드 처럼 함수 하나로 index와 값을 추출 할 수 있다. 여기서 우리는 enumerate의 return 값은 index, value 두 개가 나옴을 알 수 있다. a_var = range(5) for index, x in enumerate(a_var): print(index, x) 결과>> 0 0 1 1 2 2 3 3 4 4

별표하나 별표두개 (*arg, **kwarg) [내부링크]

파이썬에서 함수 인자 앞에 별표 한개를 쓰느냐 두개를 쓰는 것에 대해 간단히 설명하겠다. 별표 없이 인자만 선언되어 있을 경우는 함수에 인자 갯수는 정의에 따라 고정되고 항상 동일한 수로 입력 해야한다. 하지만 별표 한개로 (*)로 정의 하면 인자 수를 제한 없이 사용할 수 있는 장점이 있다. 함수 내부에서는 해당 인자를 튜플로 인식해서 사용 된다. 별표 두개는 key 값과 value로 받아서 dictionary로 만들어 준다. 함수 내부에서는 해당 dictionary 형태로 사용할 수 있는 것이다. 또는 미리 key 값을 선언해 놓으면 dictionary로 넣을 경우 value 값만 받는 형태로도 사용할 수 있다. def arg_test(*args): print(type(args)) print(args..

파이썬 변수는 객체이다 [내부링크]

파이썬은 모든 변수를 선언할때 객체에 의해서 선언된다. 아래 예를 통해 이해해 보자. a_var = 3 b_var = a_var print(type(a_var)) print(id(a_var)) print(id(3)) print(id(b_var)) b_var = 5 print(id(5)) print(id(b_var)) 결과>> 1668610000 1668610000 1668610000 1668610032 1668610032 C언어의 경우를 생각해보면 a_var와 b_var는 다른 메모리 주소를 가리킬 것이고 해당 메모리 주소를 따라가면 3이라는 값을 읽을 수있다. 하지만 파이썬의 경우 모두 int라는 클래스 안에 할당되고 a_var, b_var, 3이라는 값 모두 해당 주소 값을 가리키는 것을 알 수 있다.

graph내에 event 처리 방법 - 마우스 클릭, 롤오버 [내부링크]

matplotbli으로 graph를 그리고 난 뒤 마우스 클릭이나 키보드 동작같은 event에 따라 다른 동작을 시킬 때(bind) 유용한 기능이다. 아래 예제 코드를 통해 사용법을 알아 보자. 아래 코드 예제는 참조 링크에서 가져왔다. from matplotlib import pyplot as plt class LineBuilder: def __init__(self, line): self.line = line self.xs = list(line.get_xdata()) self.ys = list(line.get_ydata()) self.cid = line.figure.canvas.mpl_connect('button_press_event', self) def __call__(self, event): pri..

선언 전 메모리절약, range, getsizeof [내부링크]

파이썬 코딩을 할때 유용한 팁으로 원하는 값을 미리 생성하느냐 아니면 문법으로 정의해 놓고 필요할때 마다 빼는 방식이냐에 따라 메모리 사용량이 달라 진다. 아래 예제 코드를 살펴 보도록 하자 import sys a_var = range(30) b_var = list(a_var) c_var = [i for i in range(30)] print(a_var) print(b_var) print(c_var) print(len(a_var)) print(len(b_var)) print(len(c_var)) print(sys.getsizeof(a_var)) print(sys.getsizeof(b_var)) print(sys.getsizeof(c_var)) 결과>> range(0, 30) [0, 1, 2, 3, 4, ..

yield, next 란 [내부링크]

파이썬 문법 중 yield와 next가 있다. 일반적으로 함수에서 값을 뽑아 낼때는 return으로 값을 보내 준다. 그리고 생성된 함수는 값을 return 함으로서 역할을 종료 한다. 가령 while 문이 무한으로 돌고 있어도 return을 맞이하면 종료 한다. yield는 값을 보내줄때 사용하는데 return 과 다른 점은 함수의 종료가 아닌 지속적으로 보내 줄 수 있다. 이때 값을 받을 수 있는 방식이 next이다. 아래 예제를 통해 이해해 보도록 하자. def func_yield(): a_var = 2 yield a_var while True: a_var = a_var + 1 yield a_var b_var = func_yield() c_var = func_yield() print(next(b_v..

list comprehension, for if문 써서 한줄로 list 만들기 [내부링크]

파이썬 예제들을 살펴 보면 한줄로 for문 if문을 사용해서 list를 만드는 것을 볼 수 있다. 효율적인 코딩을 위해 사용하는 방식으로 아래 파이썬 예제를 통해 이해해 보자. 아래 코드는 여러 리스트들 중에 가장 작은 숫자를 찾는 예제이다. yValues0 = [6,13,8,7] yValues1 = [9,6.5,40,6,12] yValues2 = [8,7,3,1] yUpperLimit = 30 yAll = [yValues0, yValues1, yValues2] minY = min([y for yValues in yAll for y in yValues]) maxY = max([y for yValues in yAll for y in yValues if y < yUpperLimit]) print(minY) ..

multiple plot in one figure (여러 plot 한 화면에 표기) [내부링크]

해당 코드는 아래 참조 링크에서 가져왔다. 아래는 코드, 코드 해석, 결과 화면이다. import matplotlib.pyplot as plt def make_patch_spines_invisible(ax): ax.set_frame_on(True) ax.patch.set_visible(False) for sp in ax.spines.values(): sp.set_visible(False) fig, host = plt.subplots() fig.subplots_adjust(right=0.75) par1 = host.twinx() par2 = host.twinx() # Offset the right spine of par2. The ticks and label have already been # placed..

lambda, map 함수 [내부링크]

lambda 인자 : 표현식 map(함수, 리스트) lambda와 map은 위 와같은 표현을 따른다. 두 함수는 같이 연계해서 사용하기 편해서 같이 설명한다. 예제를 통해 이해해보도록 하자 bb = (lambda aa: aa*2)(3) cc = map(lambda aa: aa*2, range(3)) dd = list(map(lambda aa: aa*2, range(3))) print(bb) print(cc) print(dd) 결과 6 [0, 2, 4] 람다는 인자 값을 받아서 표현식에 맞춰 실행해 준다. 이때 인자 값은 여러개를 한번에 넣을 수도 있다. map 함수는 리스트로 받은 값을 함수에 하나씩 실행해 준다. 여기서 range(3)은 [0,1,2]의 리스트와 동일하다. map으로 끝내면 해당함수의 ..

파일 처리 - 읽기 모드 [내부링크]

파이썬에서 파일을 읽거나 쓰거나 만들때 open() 이라는 function을 사용합니다. open()은 파이썬에 이미 내장된 function으로 따로 library를 추가 (import) 하지 않고 사용 가능합니다. open()의 괄호 안에는 두 개의 인자 값을 넣을 수 있습니다. 첫 번째는 filename이고 두 번째는 용도를 선언하는 값입니다. 파일 객체 = open("파일명", "모드") 두 번째 인자 값인 mode는 아래와 같이 4 종류가 있습니다. r 읽기 a 추가 w 쓰기 x 새로 만들기 읽기 Mode f = open("file_ex.txt", "r", encoding = "utf-8") print(f.read()) 위 예에서처럼 파일을 읽어 올 때 r 을 사용해서 읽으면 됩니다. 이때 문서에..

deque, list 차이 [내부링크]

deque, list 은 거의 유사 하다. 하지만 간단히 차이를 설명하자면 코드 실행 속도가 차이난다. 아래 예를 통해 이해하도록 해보자. list사용 예 import time s_time = time.time() def stringtest(s:str): b_var..

Fatigue (피로도) 란? - nCode [내부링크]

제품에 관심이 있으시면 아래 연락처로 연락 주시면 됩니다. :) ------------------------------------------------------------------------------------------------------------ TEL : 055-262-3730 FAX : 055-..

Piezoresistive 압력 센서 - KISTLER [내부링크]

제품에 관심이 있으시면 아래 연락처로 연락 주시면 됩니다. :) ------------------------------------------------------------------------------------------------------------ 조경흠 TEL : 055-262-3730 FAX..

진동(압력)종류 와 측정/Quasi,pulsation,dynamic- KISTLER [내부링크]

측정하고자 하는 진동 종류에 따라 설정을 적절히 변경해주어야 한다. 아래 테이블은 진동 종류와 설정에 따른 결과가 어떻게 나오는지를 알려주고 있다. Dynamic 진동의 경우 짧은 시간에 압력이 빠르게 변한다...

전하 증폭기 - Reset / 측정 - KISTLER [내부링크]

piezoelectric 측정은 절대적인 zero reference 가 없다. piezoelectric 센서에서 나오는 출력은 전하량이다. 그리고 증폭기에서 이를 전압으로 바꾸는데 증폭기 형태는 적분기 형태이다. 아래 그림처럼 reset을..

piezoelectric 센서 셋업(전하 증폭기, 커플러) - KISTLER [내부링크]

센서의 출력값을 DAQ 에서 읽을 수 있는 형태의 신호로 만들어주는 셋업을 "Signal conditioning" 이라고 한다. "Signal conditioning" 은 최고의 결과를 얻기 위해 중요한 과정이다. 키슬러사에서는 "Signal cond..

Piezoelectric 압력센서 케이블 설명 - KISTLER [내부링크]

제품에 관심이 있으시면 아래 연락처로 연락 주시면 됩니다. :) ------------------------------------------------------------------------------------------------------------ 조경흠 TEL : 055-262-3730 FAX..

Piezoelectric 압력센서 마운팅(mounting) 설치 부품 소개 및 설명 - KISTLER [내부링크]

제품에 관심이 있으시면 아래 연락처로 연락 주시면 됩니다. :) ------------------------------------------------------------------------------------------------------------ 조경흠 TEL : 055-262-3730 FAX..

PE, IEPE 스펙 분석 [내부링크]

PE 압력 센서 스펙 분석 위 테이블은 PE 압력 센서의 specification 이다. 압력 범위와 온도, 감도가 다른 것은 601CAA 는 키슬러 자체 제작한 PiezoStar 라 불리는 Crystal을 사용하였고 나머지는 일반 Quartz..

Piezoelectric 압력 센서(PE, IEPE) [내부링크]

제품에 관심이 있으시면 아래 연락처로 연락 주시면 됩니다. :) ------------------------------------------------------------------------------------------------------------ 조경흠 TEL : 055-262-3730 FAX..

Piezoelectric vs piezoresistive 압력센서 차이 비교 - KISTLER [내부링크]

제품에 관심이 있으시면 아래 연락처로 연락 주시면 됩니다. :) ------------------------------------------------------------------------------------------------------------ 조경흠 TEL : 055-262-3730 FAX..

압력 측정 기술 - KISTLER [내부링크]

제품에 관심이 있으시면 아래 연락처로 연락 주시면 됩니다. :) ------------------------------------------------------------------------------------------------------------ 조경흠 TEL : 055-262-3730 FAX..

가속도 센서: Spring Mass System - 절대적 측정 - KISTLER [내부링크]

Spring Mass System, 절대적 측정 위는 절대적 측정 진동 센서의 대표적인 형태이다. 상대적 측정은 비교를 통해 측정하였고 절대적 측정은 자신의 이전 위치에서의 변화 거리를 측정하여 가속도 값을 얻어 낸다...

가속도 센서: vibration shock(진동충격), acoustic 음향 전파 측정의 기초 이론 - 상대적 측정 - KISTLER [내부링크]

제품에 관심이 있으시면 아래 연락처로 연락 주시면 됩니다. :) ------------------------------------------------------------------------------------------------------------ 조경흠 TEL : 055-262-3730 FAX..

Charge Output 가속도 센서 - KISTLER [내부링크]

제품에 관심이 있으시면 아래 연락처로 연락 주시면 됩니다. :) ------------------------------------------------------------------------------------------------------------ 조경흠 TEL : 055-262-3730 FAX..

MEMS Capacitive 가속도 센서 동작 원리 [내부링크]

------------------------------------------------------------------------------------------------------------ 조경흠 TEL : 055-262-3730 FAX : 055-262-3702 E-mail : [email protected] https://www.fam..

MEMS 정의, 사용범위, 장단점 - KISTLER [내부링크]

------------------------------------------------------------------------------------------------------------ 조경흠 // TEL : 055-262-3730 FAX : 055-262-3702 E-mail : [email protected] https://www...

Piezoelectricity(압전기) 란 [내부링크]

설명에 앞서 제품에 관심이 있으시면 아래 홈페이지 또는 전화로 연락 바랍니다. ------------------------------------------------------------------------------------------------------------ 조경흠 // TEL..

충방전기 제품리뷰 (5V 제품) - BTS4000 [내부링크]

설명에 앞서 제품에 관심이 있으시면 아래 홈페이지 또는 전화로 연락 바랍니다. https://www.famtech.co.kr/main/main.php TEL : 055-262-3730 FAX : 055-262-3702 E-mail : [email protected] TEL : 055-262-3..