전체 글 191

awk를 이용해서 앞 뒤로 string 붙이기

text파일이 있는데, text 파일을 이용해서 앞뒤로 다른 string들을 붙여야 하는 경우가 발생하였습니다. 물론 파이썬을 활용해서 할 수도 있겠지만, awk를 배워보고자 시도했는데, 정말 쉽게 사용할 수 있었습니다. 예를 들어서, a b c d e f 이런 파일이 있다면, 그 각각의 라인에 str_front, str_back 을 붙이고 싶다고 하면, str_front a str_back str_front b str_back str_front c str_back str_front d str_back str_front e str_back 어떻게 할까요? awk '{print "str_front" $1 "str_back"}' file.txt 이렇게 하면 됩니다. 더한 awk에 대한 튜토리얼은 아래 링크를..

Utils 2021.12.21

Python3 에서 Dictionary 새로운 값 입력하기 및 수정

Python에서 Dictionary는 Java의 HashMap과 같은 기능을 하며, 가장 중요한 Data structure (자료구조) 중 하나입니다. Dictionary 를 만들고 나서 Key Value pair를 넣을 때, 두 가지 방법이 있는데, 그것은 value assignment로 subscription을 이용하여 데이터를 넣는 방법과, update를 사용하는 방법 두 가지가 있습니다. # dictionary 생성 this_dict = {} # dictionary value assignment this_dict["k"] = "v" # dictionary update method this_dict.update({"k": "v"}) 둘 다 하는 일은 같습니다. 심지어 새로 만드는 것 뿐만 아니라 있..

Python/Basics 2021.12.17

Node.js로 .env 활용하기

사용하는 이유: 개발서버에서 잘 돌아가던 서버가 라이브 프로덕션 서버에서 안돌아가는 것을 확인하였습니다. 확인해보니, 개발서버에서 Node.js 에서 Python process를 콜하기 위해서 파이썬을 부르는 과정에서 절대경로를 사용해야만 돌아가야 하는 라이브러리가 있었는데, (로깅과 nssm 서비스 관련) 파이썬 절대경로의 위치가 개발서버와 라이브서버가 다르기 때문이었습니다. 물론 이를 해결하는 방법으로는 여러 가지가 있겠지만, 가장 바람직한 방법으로는, .env 파일과 같은 파일을 만들어놓고, 그 파일에서 변수들을 가져오는 방법이 가장 좋은 방법이라고 생각됩니다. .env 파일 같은 경우에는 .gitignore 파일에 적어놓음으로써 업데이트 되지 않도록 합니다. 물론, example.env 같은 파일..

python opencv 를 이용해서 동영상에서 이미지 추출 (이미지에서 동영상)

먼저 opencv를 설치합니다. >>> pip install opencv-python #For python 2.x >>> pip3 install opencv-python #For python 3.x >>> conda install opencv-python #If you directly install in anaconda with all dependencies. 다음은 비디오에서 이미지를 추출하는 방법입니다. 레퍼런스에서는 없었지만 디렉토리 안에서 모든 파일들의 이미지들을 비디오에서 추출할 수 있게 만들었습니다. import cv2 import os pwd = os.getcwd() print(pwd) print(os.listdir(pwd)) files = os.listdir(pwd) def getFrame..

Recoil 에서 다른 페이지에서 Recoil Atom 값을 잘 불러들이지 못하는 경우

갑자기 Recoil 관련 컨텐츠를 올리게 되었네요. Recoil은, 상태 관리 library입니다. React를 사용하는데 있어서, Global State Management tool로 보통 대표적으로 Redux를 많이 씁니다. 하지만 Redux의 단점은, boilerplate 코드가 너무 많다는 점입니다. Reducer, Store, Action 등등, 알아야 하는 코드가 많고, 직관적이지 않다는 단점이 있습니다. 단, 여러 사람들이 같이 작업하는 경우 정형화하기 쉽다는 장점이 있습니다. 하지만 Recoil의 경우에는 간단하게 Atom이라는 단위만 가지고도 충분히 global State를 잘 구현할 수 있습니다. 하지만 Atom을 이용해서 global State를 구현했음에도 다른 페이지로 redire..

Web Programming 2021.12.06

labelImg 맥에다 설치하기

https://github.com/tzutalin/labelImg GitHub - tzutalin/labelImg: 🖍️ LabelImg is a graphical image annotation tool and label object bounding boxes in images 🖍️ LabelImg is a graphical image annotation tool and label object bounding boxes in images - GitHub - tzutalin/labelImg: 🖍️ LabelImg is a graphical image annotation tool and label object bounding b... github.com pipenv 로 설치하는 방법도 있지만, 파이썬 3.6..

nssm을 사용하여 node.js를 windows 서비스로 만들기(+ log)

node.js서버를 만들어서 windows server에 사용하였는데, 재부팅 할 때마다 새로 CLI를 열어서 node server.js를 해줘야 하는 불편함이 있었습니다. 이를 해결하기 위해서 찾은게 nssm입니다. nssm을 이용해서 node.js를 서비스로 만드는 법은, 의외로 간단합니다. nssm.exe file을 다운받은 후, command line에서 다음과 같이 쳐줍니다. $ nssm.exe install 그럼 gui가 뜨고, 알맞은 parameter들을 입력합니다. console.log를 print할 수도 있습니다. (io tab을 통해) 여기서 error 가 떠서 고생했었는데, 알고보니 Python script를 node가 부르는 과정에서 (spawn) 그냥 python을 부르는 것이 아..

Utils/Program 2021.11.08

Deep Learning이란? (인공 신경망)

Housing Price Prediction에서 보면, linear Regression의 형태로 이루어지는 걸 볼 수 있습니다. Deep Learning의 관점에서 보면, 하나의 Neuron을 여러 개로 연결하는 형태로 이루어져 있는 걸 볼 수 있습니다. 이 경우에는, 하나의 Neuron(신경)만 사용하면 될 거 같네요. 하나의 뉴런에는 인풋과 아웃풋이 있고, 그 인풋과 아웃풋을 연결하는 함수를 Activation function (활성화 함수) 라고 합니다. Activation function에는 여러가지가 있지만, 가장 많이 사용하는 것은 RELU(Rectified Linear Unit)입니다. Relu, Sigmoid, Step function등 여러가지가 있고, 나중에 정리를 하도록 하겠습니다. ..

Machine Learning 2021.10.02

Regularization과 Normalization

Machine Learning에서 Regularization과 normalization이라는 개념이 있는데, 둘다 정규화라고도 해석이 가능합니다. 네이버에 검색해보니, Regularization - 조직화, 규칙화 Normalization - 표준화, 정상화 라고 나오는군요. 하지만 많은 사람들이 Regularization과 normalization을 둘 다 정규화라고 사용하는 듯 합니다. Machine Learning에서 이 둘은 뜻이 완전히 다른데요, Normalization은 사실 Machine Learning뿐만 아니라 다른 개념에서도 사용되는 개념이기도 합니다. 수학에서도 사용하고, Database에서의 Normalization의 경우에는 테이블간의 서로 겹치는 정보를 배제한다는 의미로 사용하기..

Machine Learning 2021.09.03